@copilotkit/react-textarea 1.51.3-next.7 → 1.51.3
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/CHANGELOG.md +23 -0
- package/dist/index.umd.js +140 -0
- package/dist/index.umd.js.map +1 -0
- package/package.json +10 -8
- package/rollup.config.mjs +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js","../../../../../node_modules/.pnpm/@rollup+plugin-typescript@12.3.0_rollup@4.57.0_tslib@2.8.1_typescript@5.9.2/node_modules/tslib/tslib.es6.js","../../../../../node_modules/.pnpm/react@19.1.0/node_modules/react/cjs/react-jsx-runtime.development.js","../../../../../node_modules/.pnpm/react@19.1.0/node_modules/react/jsx-runtime.js","../../../../../node_modules/.pnpm/react@19.1.0/node_modules/react/cjs/react-jsx-runtime.production.js","../../../../../node_modules/.pnpm/is-plain-object@5.0.0/node_modules/is-plain-object/dist/is-plain-object.mjs","../../../../../node_modules/.pnpm/immer@9.0.21/node_modules/immer/dist/immer.esm.mjs","../../../../../node_modules/.pnpm/slate@0.94.1/node_modules/slate/dist/index.es.js","../../../../../node_modules/.pnpm/direction@1.0.4/node_modules/direction/index.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/throttle.js","../../../../../node_modules/.pnpm/compute-scroll-into-view@1.0.20/node_modules/compute-scroll-into-view/dist/index.mjs","../../../../../node_modules/.pnpm/scroll-into-view-if-needed@2.2.31/node_modules/scroll-into-view-if-needed/es/index.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../../../../../node_modules/.pnpm/is-hotkey@0.1.8/node_modules/is-hotkey/lib/index.js","../../../../../node_modules/.pnpm/slate-react@0.98.4_react-dom@19.1.0_react@19.1.0__react@19.1.0_slate@0.94.1/node_modules/slate-react/dist/index.es.js","../../../../../node_modules/.pnpm/tailwind-merge@1.14.0/node_modules/tailwind-merge/dist/lib/tw-join.mjs","../../../../../node_modules/.pnpm/tailwind-merge@1.14.0/node_modules/tailwind-merge/dist/lib/class-utils.mjs","../../../../../node_modules/.pnpm/tailwind-merge@1.14.0/node_modules/tailwind-merge/dist/lib/lru-cache.mjs","../../../../../node_modules/.pnpm/tailwind-merge@1.14.0/node_modules/tailwind-merge/dist/lib/modifier-utils.mjs","../../../../../node_modules/.pnpm/tailwind-merge@1.14.0/node_modules/tailwind-merge/dist/lib/merge-classlist.mjs","../../../../../node_modules/.pnpm/tailwind-merge@1.14.0/node_modules/tailwind-merge/dist/lib/create-tailwind-merge.mjs","../../../../../node_modules/.pnpm/tailwind-merge@1.14.0/node_modules/tailwind-merge/dist/lib/config-utils.mjs","../../../../../node_modules/.pnpm/tailwind-merge@1.14.0/node_modules/tailwind-merge/dist/lib/from-theme.mjs","../../../../../node_modules/.pnpm/tailwind-merge@1.14.0/node_modules/tailwind-merge/dist/lib/validators.mjs","../../../../../node_modules/.pnpm/tailwind-merge@1.14.0/node_modules/tailwind-merge/dist/lib/default-config.mjs","../../../../../node_modules/.pnpm/tailwind-merge@1.14.0/node_modules/tailwind-merge/dist/lib/tw-merge.mjs","../src/lib/debouncer.ts","../../../../../node_modules/.pnpm/clsx@1.2.1/node_modules/clsx/dist/clsx.m.js","../src/lib/utils.ts","../src/types/base/editor-autocomplete-state.ts","../../../../../node_modules/.pnpm/slate-history@0.93.0_slate@0.94.1/node_modules/slate-history/dist/index.es.js","../src/lib/slatejs-edits/with-partial-history.ts","../src/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.tsx","../src/lib/get-text-around-cursor.ts","../src/lib/slatejs-edits/replace-text.ts","../src/lib/slatejs-edits/clear-autocompletions.ts","../src/types/base/base-autosuggestions-config.tsx","../src/components/hovering-toolbar/hovering-editor-provider.tsx","../../../../../node_modules/.pnpm/@emotion+sheet@1.4.0/node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../../../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Enum.js","../../../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Utility.js","../../../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Tokenizer.js","../../../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Parser.js","../../../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Serializer.js","../../../../../node_modules/.pnpm/@emotion+memoize@0.9.0/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../../../node_modules/.pnpm/@emotion+cache@11.14.0/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Middleware.js","../../../../../node_modules/.pnpm/@emotion+unitless@0.10.0/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../../../node_modules/.pnpm/@emotion+serialize@1.3.3/node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../../../../../node_modules/.pnpm/@emotion+hash@0.9.2/node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../../../../node_modules/.pnpm/@emotion+utils@1.4.2/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../../../../../node_modules/.pnpm/@emotion+css@11.13.5/node_modules/@emotion/css/create-instance/dist/emotion-css-create-instance.esm.js","../../../../../node_modules/.pnpm/@emotion+css@11.13.5/node_modules/@emotion/css/dist/emotion-css.esm.js","../src/components/hovering-toolbar/hovering-toolbar-components.tsx","../src/hooks/misc/use-autosize-textarea.tsx","../../../../../node_modules/.pnpm/cmdk@0.2.1_@types+react@19.2.7_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/cmdk/dist/chunk-XJATAMEX.mjs","../../../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/extends.js","../../../../../node_modules/.pnpm/@radix-ui+primitive@1.0.0/node_modules/@radix-ui/primitive/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-compose-refs@1.0.0_react@19.1.0/node_modules/@radix-ui/react-compose-refs/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-context@1.0.0_react@19.1.0/node_modules/@radix-ui/react-context/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.0.0_react@19.1.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-id@1.0.0_react@19.1.0/node_modules/@radix-ui/react-id/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.0.0_react@19.1.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.0.0_react@19.1.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-slot@1.0.0_react@19.1.0/node_modules/@radix-ui/react-slot/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-primitive@1.0.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@radix-ui/react-primitive/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-dismissable-layer@1.0.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@radix-ui/react-dismissable-layer/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-use-escape-keydown@1.0.0_react@19.1.0/node_modules/@radix-ui/react-use-escape-keydown/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-focus-scope@1.0.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@radix-ui/react-focus-scope/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-portal@1.0.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@radix-ui/react-portal/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-presence@1.0.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@radix-ui/react-presence/dist/index.module.js","../../../../../node_modules/.pnpm/@radix-ui+react-focus-guards@1.0.0_react@19.1.0/node_modules/@radix-ui/react-focus-guards/dist/index.module.js","../../../../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../../../../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@19.2.7_react@19.1.0/node_modules/use-callback-ref/dist/es2015/assignRef.js","../../../../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@19.2.7_react@19.1.0/node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../../../../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@19.2.7_react@19.1.0/node_modules/use-callback-ref/dist/es2015/useRef.js","../../../../../node_modules/.pnpm/use-sidecar@1.1.3_@types+react@19.2.7_react@19.1.0/node_modules/use-sidecar/dist/es2015/medium.js","../../../../../node_modules/.pnpm/use-sidecar@1.1.3_@types+react@19.2.7_react@19.1.0/node_modules/use-sidecar/dist/es2015/exports.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.5.4_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/medium.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.5.4_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/UI.js","../../../../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@19.2.7_react@19.1.0/node_modules/react-style-singleton/dist/es2015/singleton.js","../../../../../node_modules/.pnpm/get-nonce@1.0.1/node_modules/get-nonce/dist/es2015/index.js","../../../../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@19.2.7_react@19.1.0/node_modules/react-style-singleton/dist/es2015/component.js","../../../../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@19.2.7_react@19.1.0/node_modules/react-style-singleton/dist/es2015/hook.js","../../../../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../../../../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll-bar/dist/es2015/component.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.5.4_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.5.4_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.5.4_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.5.4_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/sidecar.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.5.4_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/Combination.js","../../../../../node_modules/.pnpm/aria-hidden@1.2.6/node_modules/aria-hidden/dist/es2015/index.js","../../../../../node_modules/.pnpm/@radix-ui+react-dialog@1.0.0_@types+react@19.2.7_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@radix-ui/react-dialog/dist/index.module.js","../../../../../node_modules/.pnpm/cmdk@0.2.1_@types+react@19.2.7_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/cmdk/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+primitive@1.1.3/node_modules/@radix-ui/primitive/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.2_@types+react@19.2.7_react@19.1.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-context@1.1.2_@types+react@19.2.7_react@19.1.0/node_modules/@radix-ui/react-context/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.1_@types+react@19.2.7_react@19.1.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-slot@1.2.3_@types+react@19.2.7_react@19.1.0/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-primitive@2.1.3_@types+react-dom@19.2.3_@types+react@19.2.7__@types+rea_06b84d2729a05f17c3bed352f05b824c/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.1_@types+react@19.2.7_react@19.1.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-dismissable-layer@1.1.11_@types+react-dom@19.2.3_@types+react@19.2.7__@_6781cf0a75b2769e836313d7f2b80b2a/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-use-escape-keydown@1.1.1_@types+react@19.2.7_react@19.1.0/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-focus-scope@1.1.7_@types+react-dom@19.2.3_@types+react@19.2.7__@types+r_f4528f557c6bbbdf88d05e63f805e360/node_modules/@radix-ui/react-focus-scope/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-portal@1.1.9_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@_c63f8f662711e9b2669a29fde9bfb85b/node_modules/@radix-ui/react-portal/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-presence@1.1.5_@types+react-dom@19.2.3_@types+react@19.2.7__@types+reac_772240588e507d8d2b1d23f7e89d285d/node_modules/@radix-ui/react-presence/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-focus-guards@1.1.3_@types+react@19.2.7_react@19.1.0/node_modules/@radix-ui/react-focus-guards/dist/index.mjs","../../../../../node_modules/.pnpm/react-remove-scroll@2.7.2_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/medium.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.7.2_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/UI.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.7.2_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.7.2_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.7.2_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.7.2_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/sidecar.js","../../../../../node_modules/.pnpm/react-remove-scroll@2.7.2_@types+react@19.2.7_react@19.1.0/node_modules/react-remove-scroll/dist/es2015/Combination.js","../../../../../node_modules/.pnpm/@radix-ui+react-dialog@1.1.15_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react_358cec090459c2d9281241def631f30b/node_modules/@radix-ui/react-dialog/dist/index.mjs","../../../../../node_modules/.pnpm/lucide-react@0.274.0_react@19.1.0/node_modules/lucide-react/dist/esm/defaultAttributes.js","../../../../../node_modules/.pnpm/lucide-react@0.274.0_react@19.1.0/node_modules/lucide-react/dist/esm/createLucideIcon.js","../../../../../node_modules/.pnpm/lucide-react@0.274.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/x.js","../src/components/ui/dialog.tsx","../src/components/ui/command.tsx","../src/components/source-search-box/source-search-box.tsx","../../../../../node_modules/.pnpm/@radix-ui+react-slot@1.2.4_@types+react@19.2.7_react@19.1.0/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../../../node_modules/.pnpm/class-variance-authority@0.6.1/node_modules/class-variance-authority/dist/index.mjs","../src/components/ui/button.tsx","../../../../../node_modules/.pnpm/@radix-ui+react-primitive@2.1.4_@types+react-dom@19.2.3_@types+react@19.2.7__@types+rea_e6c6486d30d85e24556afa6dada97239/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-label@2.1.8_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@1_b9fa94346212f3ea206c6589fda3d877/node_modules/@radix-ui/react-label/dist/index.mjs","../src/components/ui/label.tsx","../../../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js","../../../../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js","../../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/has.js","../../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/checkPropTypes.js","../../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithTypeCheckers.js","../../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js","../../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js","../../../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../../../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/clamp/clamp.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/colorManipulator.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/capitalize/capitalize.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/resolveProps/resolveProps.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","../../../../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../../../node_modules/.pnpm/@emotion+use-insertion-effect-with-fallbacks@1.2.0_react@19.1.0/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../../../../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0/node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../../../../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0/node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.js","../../../../../node_modules/.pnpm/@emotion+is-prop-valid@1.4.0/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../../../../../node_modules/.pnpm/@emotion+styled@11.14.1_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@types+react@19.2.7_react@19.1.0/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../../../../../node_modules/.pnpm/@emotion+styled@11.14.1_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@types+react@19.2.7_react@19.1.0/node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../../../../../node_modules/.pnpm/@mui+styled-engine@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emo_aca71b4fb5f298c522bc4b144ef01f5c/node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","../../../../../node_modules/.pnpm/@mui+styled-engine@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emo_aca71b4fb5f298c522bc4b144ef01f5c/node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../../../../../node_modules/.pnpm/@mui+styled-engine@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emo_aca71b4fb5f298c522bc4b144ef01f5c/node_modules/@mui/styled-engine/index.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../../../../../node_modules/.pnpm/react-is@19.2.3/node_modules/react-is/cjs/react-is.production.js","../../../../../node_modules/.pnpm/react-is@19.2.3/node_modules/react-is/cjs/react-is.development.js","../../../../../node_modules/.pnpm/react-is@19.2.3/node_modules/react-is/index.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/createTheme/shape.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/responsivePropType.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/merge.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/breakpoints.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/style.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/spacing.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/memoize.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/compose.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/borders.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/cssGrid.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/palette.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/sizing.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/createTheme/applyStyles.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/createTheme/createTheme.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/createTheme/createSpacing.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../../../../../node_modules/.pnpm/@mui+system@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+st_01764a9051c1f84d6c839afac9101c44/node_modules/@mui/system/createStyled.js","../../../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/extends.js","../../../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/colors/common.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/colors/grey.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/colors/purple.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/colors/red.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/colors/orange.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/colors/blue.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/colors/lightBlue.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/colors/green.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/styles/createPalette.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/styles/createTypography.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/styles/shadows.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/styles/createTransitions.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/styles/zIndex.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/styles/createTheme.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/styles/defaultTheme.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/styles/createMixins.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/styles/rootShouldForwardProp.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/styles/styled.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/styles/identifier.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/styles/slotShouldForwardProp.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/SvgIcon/svgIconClasses.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/SvgIcon/SvgIcon.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/utils/createSvgIcon.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/internal/svg-icons/Cancel.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/setRef/setRef.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/refType/refType.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/elementTypeAcceptingRef/elementTypeAcceptingRef.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/chainPropTypes/chainPropTypes.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/useLazyRef/useLazyRef.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/useOnMount/useOnMount.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/useIsFocusVisible/useIsFocusVisible.js","../../../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/react-transition-group/esm/TransitionGroupContext.js","../../../../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/react-transition-group/esm/utils/ChildMapping.js","../../../../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/react-transition-group/esm/TransitionGroup.js","../../../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/ButtonBase/Ripple.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/ButtonBase/touchRippleClasses.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/ButtonBase/TouchRipple.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/ButtonBase/ButtonBase.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/Chip/chipClasses.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/Chip/Chip.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/unsupportedProp/unsupportedProp.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/internal/svg-icons/Person.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/Avatar/avatarClasses.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/utils/useSlot.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","../../../../../node_modules/.pnpm/@mui+utils@5.17.1_@types+react@19.2.7_react@19.1.0/node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","../../../../../node_modules/.pnpm/@mui+material@5.18.0_@emotion+react@11.14.0_@types+react@19.2.7_react@19.1.0__@emotion+_795ea91ed4d855125bc7b816301cafb9/node_modules/@mui/material/Avatar/Avatar.js","../src/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.tsx","../src/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.tsx","../src/lib/stream-promise-flatten.ts","../src/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.tsx","../src/components/hovering-toolbar/hovering-toolbar.tsx","../src/components/base-copilot-textarea/render-element.tsx","../src/lib/editor-to-text.ts","../src/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.tsx","../src/components/base-copilot-textarea/base-copilot-textarea.tsx","../src/hooks/base-copilot-textarea-implementation/use-autosuggestions.ts","../src/lib/slatejs-edits/add-autocompletions.ts","../src/components/base-copilot-textarea/render-placeholder.tsx","../src/components/base-copilot-textarea/use-add-branding-css.tsx","../src/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.ts","../src/lib/retry.tsx","../src/types/autosuggestions-config/suggestions-api-config.tsx","../src/types/autosuggestions-config/insertions-api-config.tsx","../src/types/autosuggestions-config/editing-api-config.tsx","../src/types/autosuggestions-config/autosuggestions-config.tsx","../../../../../node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.js","../src/components/copilot-textarea/copilot-textarea.tsx","../src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx","../src/hooks/make-autosuggestions-function/use-make-standard-insertion-function.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\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\nexport function __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\nexport var __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\nexport function __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\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __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\nexport function __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\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof 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};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexport { isPlainObject };\n","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if(\"production\"!==process.env.NODE_ENV){var i=Y[n],o=i?\"function\"==typeof i?i.apply(null,t):i:\"unknown error nr: \"+n;throw Error(\"[Immer] \"+o)}throw Error(\"[Immer] minified error nr: \"+n+(t.length?\" \"+t.map((function(n){return\"'\"+n+\"'\"})).join(\",\"):\"\")+\". Find the full error at: https://bit.ly/3cXEKWf\")}function r(n){return!!n&&!!n[Q]}function t(n){var r;return!!n&&(function(n){if(!n||\"object\"!=typeof n)return!1;var r=Object.getPrototypeOf(n);if(null===r)return!0;var t=Object.hasOwnProperty.call(r,\"constructor\")&&r.constructor;return t===Object||\"function\"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!(null===(r=n.constructor)||void 0===r?void 0:r[L])||s(n)||v(n))}function e(t){return r(t)||n(23,t),t[Q].t}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&\"symbol\"==typeof e||r(e,n[e],n)})):n.forEach((function(t,e){return r(e,t,n)}))}function o(n){var r=n[Q];return r?r.i>3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?n.add(t):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]})}return Object.create(Object.getPrototypeOf(n),r)}function d(n,e){return void 0===e&&(e=!1),y(n)||r(n)||!t(n)||(o(n)>1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0)),n}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function g(n){O(n),n.p.forEach(S),n.p=null}function O(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.g=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.O||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(g(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),g(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o,u=o,a=!1;3===e.i&&(u=new Set(o),o.clear(),a=!0),i(u,(function(r,i){return A(n,e,o,r,i,t,a)})),x(n,o,!1),t&&n.u&&b(\"Patches\").N(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s,v){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var p=M(e,c,s&&i&&3!==i.i&&!u(i.R,a)?s.concat(a):void 0);if(f(o,a,p),!r(p))return;e.m=!1}else v&&o.add(c);if(t(c)&&!y(c)){if(!e.h.D&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),!n.l&&n.h.D&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function N(n,r,t){var e=s(r)?b(\"MapSet\").F(r,t):v(r)?b(\"MapSet\").T(r,t):n.O?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function R(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=D(r,c),u.I=!1}else e=D(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function D(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function F(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e<r.length;e++)if(!r.hasOwnProperty(e))return!0;return!1}function f(r){r.g&&n(3,JSON.stringify(p(r)))}var s={};m(\"ES5\",{J:function(n,r){var e=Array.isArray(n),i=function(n,r){if(n){for(var e=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(e,\"\"+i,t(i,!0));return e}var o=rn(r);delete o[Q];for(var u=nn(o),a=0;a<u.length;a++){var f=u[a];o[f]=t(f,n||!!o[f].enumerable)}return Object.create(Object.getPrototypeOf(r),o)}(e,n),o={i:e?5:4,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:i,o:null,g:!1,C:!1};return Object.defineProperty(i,Q,{value:o,writable:!0}),i},S:function(n,t,o){o?r(t)&&t[Q].A===n&&e(n.p):(n.u&&function n(r){if(r&&\"object\"==typeof r){var t=r[Q];if(t){var e=t.t,o=t.k,f=t.R,c=t.i;if(4===c)i(o,(function(r){r!==Q&&(void 0!==e[r]||u(e,r)?f[r]||n(o[r]):(f[r]=!0,k(t)))})),i(e,(function(n){void 0!==o[n]||u(o,n)||(f[n]=!1,k(t))}));else if(5===c){if(a(t)&&(k(t),f.length=!0),o.length<e.length)for(var s=o.length;s<e.length;s++)f[s]=!1;else for(var v=e.length;v<o.length;v++)f[v]=!0;for(var p=Math.min(o.length,e.length),l=0;l<p;l++)o.hasOwnProperty(l)||(f[l]=!0),void 0===f[l]&&n(o[l])}}}}(n.p[0]),e(n.p))},K:function(n){return 4===n.i?o(n):a(n)}})}function T(){function e(n){if(!t(n))return n;if(Array.isArray(n))return n.map(e);if(s(n))return new Map(Array.from(n.entries()).map((function(n){return[n[0],e(n[1])]})));if(v(n))return new Set(Array.from(n).map(e));var r=Object.create(Object.getPrototypeOf(n));for(var i in n)r[i]=e(n[i]);return u(n,L)&&(r[L]=n[L]),r}function f(n){return r(n)?e(n):n}var c=\"add\";m(\"Patches\",{$:function(r,t){return t.forEach((function(t){for(var i=t.path,u=t.op,f=r,s=0;s<i.length-1;s++){var v=o(f),p=i[s];\"string\"!=typeof p&&\"number\"!=typeof p&&(p=\"\"+p),0!==v&&1!==v||\"__proto__\"!==p&&\"constructor\"!==p||n(24),\"function\"==typeof f&&\"prototype\"===p&&n(24),\"object\"!=typeof(f=a(f,p))&&n(15,i.join(\"/\"))}var l=o(f),d=e(t.value),h=i[i.length-1];switch(u){case\"replace\":switch(l){case 2:return f.set(h,d);case 3:n(16);default:return f[h]=d}case c:switch(l){case 1:return\"-\"===h?f.push(d):f.splice(h,0,d);case 2:return f.set(h,d);case 3:return f.add(d);default:return f[h]=d}case\"remove\":switch(l){case 1:return f.splice(h,1);case 2:return f.delete(h);case 3:return f.delete(t.value);default:return delete f[h]}default:n(17,u)}})),r},N:function(n,r,t,e){switch(n.i){case 0:case 4:case 2:return function(n,r,t,e){var o=n.t,s=n.o;i(n.R,(function(n,i){var v=a(o,n),p=a(s,n),l=i?u(o,n)?\"replace\":c:\"remove\";if(v!==p||\"replace\"!==l){var d=r.concat(n);t.push(\"remove\"===l?{op:l,path:d}:{op:l,path:d,value:p}),e.push(l===c?{op:\"remove\",path:d}:\"remove\"===l?{op:c,path:d,value:f(v)}:{op:\"replace\",path:d,value:f(v)})}}))}(n,r,t,e);case 5:case 1:return function(n,r,t,e){var i=n.t,o=n.R,u=n.o;if(u.length<i.length){var a=[u,i];i=a[0],u=a[1];var s=[e,t];t=s[0],e=s[1]}for(var v=0;v<i.length;v++)if(o[v]&&u[v]!==i[v]){var p=r.concat([v]);t.push({op:\"replace\",path:p,value:f(u[v])}),e.push({op:\"replace\",path:p,value:f(i[v])})}for(var l=i.length;l<u.length;l++){var d=r.concat([l]);t.push({op:c,path:d,value:f(u[l])})}i.length<u.length&&e.push({op:\"replace\",path:r.concat([\"length\"]),value:i.length})}(n,r,t,e);case 3:return function(n,r,t,e){var i=n.t,o=n.o,u=0;i.forEach((function(n){if(!o.has(n)){var i=r.concat([u]);t.push({op:\"remove\",path:i,value:n}),e.unshift({op:c,path:i,value:n})}u++})),u=0,o.forEach((function(n){if(!i.has(n)){var o=r.concat([u]);t.push({op:c,path:o,value:n}),e.unshift({op:\"remove\",path:o,value:n})}u++}))}(n,r,t,e)}},M:function(n,r,t,e){t.push({op:\"replace\",path:[],value:r===H?void 0:r}),e.push({op:\"replace\",path:[],value:n})}})}function C(){function r(n,r){function t(){this.constructor=n}a(n,r),n.prototype=(t.prototype=r.prototype,new t)}function e(n){n.o||(n.R=new Map,n.o=new Map(n.t))}function o(n){n.o||(n.o=new Set,n.t.forEach((function(r){if(t(r)){var e=N(n.A.h,r,n);n.p.set(r,e),n.o.add(e)}else n.o.add(r)})))}function u(r){r.g&&n(3,JSON.stringify(p(r)))}var a=function(n,r){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var t in r)r.hasOwnProperty(t)&&(n[t]=r[t])})(n,r)},f=function(){function n(n,r){return this[Q]={i:2,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,R:void 0,t:n,k:this,C:!1,g:!1},this}r(n,Map);var o=n.prototype;return Object.defineProperty(o,\"size\",{get:function(){return p(this[Q]).size}}),o.has=function(n){return p(this[Q]).has(n)},o.set=function(n,r){var t=this[Q];return u(t),p(t).has(n)&&p(t).get(n)===r||(e(t),k(t),t.R.set(n,!0),t.o.set(n,r),t.R.set(n,!0)),this},o.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),e(r),k(r),r.t.has(n)?r.R.set(n,!1):r.R.delete(n),r.o.delete(n),!0},o.clear=function(){var n=this[Q];u(n),p(n).size&&(e(n),k(n),n.R=new Map,i(n.t,(function(r){n.R.set(r,!1)})),n.o.clear())},o.forEach=function(n,r){var t=this;p(this[Q]).forEach((function(e,i){n.call(r,t.get(i),i,t)}))},o.get=function(n){var r=this[Q];u(r);var i=p(r).get(n);if(r.I||!t(i))return i;if(i!==r.t.get(n))return i;var o=N(r.A.h,i,r);return e(r),r.o.set(n,o),o},o.keys=function(){return p(this[Q]).keys()},o.values=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.values()},n.next=function(){var n=t.next();return n.done?n:{done:!1,value:r.get(n.value)}},n},o.entries=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.entries()},n.next=function(){var n=t.next();if(n.done)return n;var e=r.get(n.value);return{done:!1,value:[n.value,e]}},n},o[V]=function(){return this.entries()},n}(),c=function(){function n(n,r){return this[Q]={i:3,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,t:n,k:this,p:new Map,g:!1,C:!1},this}r(n,Set);var t=n.prototype;return Object.defineProperty(t,\"size\",{get:function(){return p(this[Q]).size}}),t.has=function(n){var r=this[Q];return u(r),r.o?!!r.o.has(n)||!(!r.p.has(n)||!r.o.has(r.p.get(n))):r.t.has(n)},t.add=function(n){var r=this[Q];return u(r),this.has(n)||(o(r),k(r),r.o.add(n)),this},t.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),o(r),k(r),r.o.delete(n)||!!r.p.has(n)&&r.o.delete(r.p.get(n))},t.clear=function(){var n=this[Q];u(n),p(n).size&&(o(n),k(n),n.o.clear())},t.values=function(){var n=this[Q];return u(n),o(n),n.o.values()},t.entries=function(){var n=this[Q];return u(n),o(n),n.o.entries()},t.keys=function(){return this.values()},t[V]=function(){return this.values()},t.forEach=function(n,r){for(var t=this.values(),e=t.next();!e.done;)n.call(r,e.value,e.value,this),e=t.next()},n}();m(\"MapSet\",{F:function(n,r){return new f(n,r)},T:function(n,r){return new c(n,r)}})}function J(){F(),C(),T()}function K(n){return n}function $(n){return n}var G,U,W=\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol(\"x\"),X=\"undefined\"!=typeof Map,q=\"undefined\"!=typeof Set,B=\"undefined\"!=typeof Proxy&&void 0!==Proxy.revocable&&\"undefined\"!=typeof Reflect,H=W?Symbol.for(\"immer-nothing\"):((G={})[\"immer-nothing\"]=!0,G),L=W?Symbol.for(\"immer-draftable\"):\"__$immer_draftable\",Q=W?Symbol.for(\"immer-state\"):\"__$immer_state\",V=\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\",Y={0:\"Illegal state\",1:\"Immer drafts cannot have computed properties\",2:\"This object has been frozen and should not be mutated\",3:function(n){return\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \"+n},4:\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",5:\"Immer forbids circular references\",6:\"The first or second argument to `produce` must be a function\",7:\"The third argument to `produce` must be a function or undefined\",8:\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",9:\"First argument to `finishDraft` must be a draft returned by `createDraft`\",10:\"The given draft is already finalized\",11:\"Object.defineProperty() cannot be used on an Immer draft\",12:\"Object.setPrototypeOf() cannot be used on an Immer draft\",13:\"Immer only supports deleting array indices\",14:\"Immer only supports setting array indices and the 'length' property\",15:function(n){return\"Cannot apply patch, path doesn't resolve: \"+n},16:'Sets cannot have \"replace\" patches.',17:function(n){return\"Unsupported patch operation: \"+n},18:function(n){return\"The plugin for '\"+n+\"' has not been loaded into Immer. To enable the plugin, import and call `enable\"+n+\"()` when initializing your application.\"},20:\"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",21:function(n){return\"produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '\"+n+\"'\"},22:function(n){return\"'current' expects a draft, got: \"+n},23:function(n){return\"'original' expects a draft, got: \"+n},24:\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"},Z=\"\"+Object.prototype.constructor,nn=\"undefined\"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t)})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p(n);if(!u(e,r))return function(n,r,t){var e,i=I(r,t);return i?\"value\"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t(i)?i:i===z(n.t,r)?(E(n),n.o[r]=N(n.A.h,i,n)):i},has:function(n,r){return r in p(n)},ownKeys:function(n){return Reflect.ownKeys(p(n))},set:function(n,r,t){var e=I(p(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z(p(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.R[r]=!1,!0;if(c(t,i)&&(void 0!==t||u(n.t,r)))return!0;E(n),k(n)}return n.o[r]===t&&(void 0!==t||r in n.o)||Number.isNaN(t)&&Number.isNaN(n.o[r])||(n.o[r]=t,n.R[r]=!0),!0},deleteProperty:function(n,r){return void 0!==z(n.t,r)||r in n.t?(n.R[r]=!1,E(n),k(n)):delete n.R[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||\"length\"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n(11)},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n(12)}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}})),on.deleteProperty=function(r,t){return\"production\"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&n(13),on.set.call(this,r,t,void 0)},on.set=function(r,t,e){return\"production\"!==process.env.NODE_ENV&&\"length\"!==t&&isNaN(parseInt(t))&&n(14),en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.O=B,this.D=!0,this.produce=function(r,i,o){if(\"function\"==typeof r&&\"function\"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return(t=i).call.apply(t,[r,n].concat(e))}))}}var f;if(\"function\"!=typeof i&&n(6),void 0!==o&&\"function\"!=typeof o&&n(7),t(r)){var c=w(e),s=N(e,r,void 0),v=!0;try{f=i(s),v=!1}finally{v?g(c):O(c)}return\"undefined\"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw g(c),n})):(j(c,o),P(f,c))}if(!r||\"object\"!=typeof r){if(void 0===(f=i(r))&&(f=r),f===H&&(f=void 0),e.D&&d(f,!0),o){var p=[],l=[];b(\"Patches\").M(r,f,p,l),o(p,l)}return f}n(21,r)},this.produceWithPatches=function(n,r){if(\"function\"==typeof n)return function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))};var t,i,o=e.produce(n,r,(function(n,r){t=n,i=r}));return\"undefined\"!=typeof Promise&&o instanceof Promise?o.then((function(n){return[n,t,i]})):[o,t,i]},\"boolean\"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),\"boolean\"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze)}var i=e.prototype;return i.createDraft=function(e){t(e)||n(8),r(e)&&(e=R(e));var i=w(this),o=N(this,e,void 0);return o[Q].C=!0,O(i),o},i.finishDraft=function(r,t){var e=r&&r[Q];\"production\"!==process.env.NODE_ENV&&(e&&e.C||n(9),e.I&&n(10));var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.D=n},i.setUseProxies=function(r){r&&!B&&n(20),this.O=r},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,R as current,J as enableAllPlugins,F as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","import { isPlainObject } from 'is-plain-object';\nimport { createDraft, finishDraft, isDraft, produce } from 'immer';\n\nvar PathRef = {\n transform(ref, op) {\n var {\n current,\n affinity\n } = ref;\n\n if (current == null) {\n return;\n }\n\n var path = Path.transform(current, op, {\n affinity\n });\n ref.current = path;\n\n if (path == null) {\n ref.unref();\n }\n }\n\n};\n\nvar PointRef = {\n transform(ref, op) {\n var {\n current,\n affinity\n } = ref;\n\n if (current == null) {\n return;\n }\n\n var point = Point.transform(current, op, {\n affinity\n });\n ref.current = point;\n\n if (point == null) {\n ref.unref();\n }\n }\n\n};\n\nvar RangeRef = {\n transform(ref, op) {\n var {\n current,\n affinity\n } = ref;\n\n if (current == null) {\n return;\n }\n\n var path = Range.transform(current, op, {\n affinity\n });\n ref.current = path;\n\n if (path == null) {\n ref.unref();\n }\n }\n\n};\n\nvar DIRTY_PATHS = new WeakMap();\nvar DIRTY_PATH_KEYS = new WeakMap();\nvar FLUSHING = new WeakMap();\nvar NORMALIZING = new WeakMap();\nvar PATH_REFS = new WeakMap();\nvar POINT_REFS = new WeakMap();\nvar RANGE_REFS = new WeakMap();\n\n// eslint-disable-next-line no-redeclare\nvar Path = {\n ancestors(path) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n reverse = false\n } = options;\n var paths = Path.levels(path, options);\n\n if (reverse) {\n paths = paths.slice(1);\n } else {\n paths = paths.slice(0, -1);\n }\n\n return paths;\n },\n\n common(path, another) {\n var common = [];\n\n for (var i = 0; i < path.length && i < another.length; i++) {\n var av = path[i];\n var bv = another[i];\n\n if (av !== bv) {\n break;\n }\n\n common.push(av);\n }\n\n return common;\n },\n\n compare(path, another) {\n var min = Math.min(path.length, another.length);\n\n for (var i = 0; i < min; i++) {\n if (path[i] < another[i]) return -1;\n if (path[i] > another[i]) return 1;\n }\n\n return 0;\n },\n\n endsAfter(path, another) {\n var i = path.length - 1;\n var as = path.slice(0, i);\n var bs = another.slice(0, i);\n var av = path[i];\n var bv = another[i];\n return Path.equals(as, bs) && av > bv;\n },\n\n endsAt(path, another) {\n var i = path.length;\n var as = path.slice(0, i);\n var bs = another.slice(0, i);\n return Path.equals(as, bs);\n },\n\n endsBefore(path, another) {\n var i = path.length - 1;\n var as = path.slice(0, i);\n var bs = another.slice(0, i);\n var av = path[i];\n var bv = another[i];\n return Path.equals(as, bs) && av < bv;\n },\n\n equals(path, another) {\n return path.length === another.length && path.every((n, i) => n === another[i]);\n },\n\n hasPrevious(path) {\n return path[path.length - 1] > 0;\n },\n\n isAfter(path, another) {\n return Path.compare(path, another) === 1;\n },\n\n isAncestor(path, another) {\n return path.length < another.length && Path.compare(path, another) === 0;\n },\n\n isBefore(path, another) {\n return Path.compare(path, another) === -1;\n },\n\n isChild(path, another) {\n return path.length === another.length + 1 && Path.compare(path, another) === 0;\n },\n\n isCommon(path, another) {\n return path.length <= another.length && Path.compare(path, another) === 0;\n },\n\n isDescendant(path, another) {\n return path.length > another.length && Path.compare(path, another) === 0;\n },\n\n isParent(path, another) {\n return path.length + 1 === another.length && Path.compare(path, another) === 0;\n },\n\n isPath(value) {\n return Array.isArray(value) && (value.length === 0 || typeof value[0] === 'number');\n },\n\n isSibling(path, another) {\n if (path.length !== another.length) {\n return false;\n }\n\n var as = path.slice(0, -1);\n var bs = another.slice(0, -1);\n var al = path[path.length - 1];\n var bl = another[another.length - 1];\n return al !== bl && Path.equals(as, bs);\n },\n\n levels(path) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n reverse = false\n } = options;\n var list = [];\n\n for (var i = 0; i <= path.length; i++) {\n list.push(path.slice(0, i));\n }\n\n if (reverse) {\n list.reverse();\n }\n\n return list;\n },\n\n next(path) {\n if (path.length === 0) {\n throw new Error(\"Cannot get the next path of a root path [\".concat(path, \"], because it has no next index.\"));\n }\n\n var last = path[path.length - 1];\n return path.slice(0, -1).concat(last + 1);\n },\n\n operationCanTransformPath(operation) {\n switch (operation.type) {\n case 'insert_node':\n case 'remove_node':\n case 'merge_node':\n case 'split_node':\n case 'move_node':\n return true;\n\n default:\n return false;\n }\n },\n\n parent(path) {\n if (path.length === 0) {\n throw new Error(\"Cannot get the parent path of the root path [\".concat(path, \"].\"));\n }\n\n return path.slice(0, -1);\n },\n\n previous(path) {\n if (path.length === 0) {\n throw new Error(\"Cannot get the previous path of a root path [\".concat(path, \"], because it has no previous index.\"));\n }\n\n var last = path[path.length - 1];\n\n if (last <= 0) {\n throw new Error(\"Cannot get the previous path of a first child path [\".concat(path, \"] because it would result in a negative index.\"));\n }\n\n return path.slice(0, -1).concat(last - 1);\n },\n\n relative(path, ancestor) {\n if (!Path.isAncestor(ancestor, path) && !Path.equals(path, ancestor)) {\n throw new Error(\"Cannot get the relative path of [\".concat(path, \"] inside ancestor [\").concat(ancestor, \"], because it is not above or equal to the path.\"));\n }\n\n return path.slice(ancestor.length);\n },\n\n transform(path, operation) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!path) return null; // PERF: use destructing instead of immer\n\n var p = [...path];\n var {\n affinity = 'forward'\n } = options; // PERF: Exit early if the operation is guaranteed not to have an effect.\n\n if (path.length === 0) {\n return p;\n }\n\n switch (operation.type) {\n case 'insert_node':\n {\n var {\n path: op\n } = operation;\n\n if (Path.equals(op, p) || Path.endsBefore(op, p) || Path.isAncestor(op, p)) {\n p[op.length - 1] += 1;\n }\n\n break;\n }\n\n case 'remove_node':\n {\n var {\n path: _op\n } = operation;\n\n if (Path.equals(_op, p) || Path.isAncestor(_op, p)) {\n return null;\n } else if (Path.endsBefore(_op, p)) {\n p[_op.length - 1] -= 1;\n }\n\n break;\n }\n\n case 'merge_node':\n {\n var {\n path: _op2,\n position\n } = operation;\n\n if (Path.equals(_op2, p) || Path.endsBefore(_op2, p)) {\n p[_op2.length - 1] -= 1;\n } else if (Path.isAncestor(_op2, p)) {\n p[_op2.length - 1] -= 1;\n p[_op2.length] += position;\n }\n\n break;\n }\n\n case 'split_node':\n {\n var {\n path: _op3,\n position: _position\n } = operation;\n\n if (Path.equals(_op3, p)) {\n if (affinity === 'forward') {\n p[p.length - 1] += 1;\n } else if (affinity === 'backward') ; else {\n return null;\n }\n } else if (Path.endsBefore(_op3, p)) {\n p[_op3.length - 1] += 1;\n } else if (Path.isAncestor(_op3, p) && path[_op3.length] >= _position) {\n p[_op3.length - 1] += 1;\n p[_op3.length] -= _position;\n }\n\n break;\n }\n\n case 'move_node':\n {\n var {\n path: _op4,\n newPath: onp\n } = operation; // If the old and new path are the same, it's a no-op.\n\n if (Path.equals(_op4, onp)) {\n return p;\n }\n\n if (Path.isAncestor(_op4, p) || Path.equals(_op4, p)) {\n var copy = onp.slice();\n\n if (Path.endsBefore(_op4, onp) && _op4.length < onp.length) {\n copy[_op4.length - 1] -= 1;\n }\n\n return copy.concat(p.slice(_op4.length));\n } else if (Path.isSibling(_op4, onp) && (Path.isAncestor(onp, p) || Path.equals(onp, p))) {\n if (Path.endsBefore(_op4, p)) {\n p[_op4.length - 1] -= 1;\n } else {\n p[_op4.length - 1] += 1;\n }\n } else if (Path.endsBefore(onp, p) || Path.equals(onp, p) || Path.isAncestor(onp, p)) {\n if (Path.endsBefore(_op4, p)) {\n p[_op4.length - 1] -= 1;\n }\n\n p[onp.length - 1] += 1;\n } else if (Path.endsBefore(_op4, p)) {\n if (Path.equals(onp, p)) {\n p[onp.length - 1] += 1;\n }\n\n p[_op4.length - 1] -= 1;\n }\n\n break;\n }\n }\n\n return p;\n }\n\n};\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys$e(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$e(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$e(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$e(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar applyToDraft = (editor, selection, op) => {\n switch (op.type) {\n case 'insert_node':\n {\n var {\n path,\n node\n } = op;\n var parent = Node.parent(editor, path);\n var index = path[path.length - 1];\n\n if (index > parent.children.length) {\n throw new Error(\"Cannot apply an \\\"insert_node\\\" operation at path [\".concat(path, \"] because the destination is past the end of the node.\"));\n }\n\n parent.children.splice(index, 0, node);\n\n if (selection) {\n for (var [point, key] of Range.points(selection)) {\n selection[key] = Point.transform(point, op);\n }\n }\n\n break;\n }\n\n case 'insert_text':\n {\n var {\n path: _path,\n offset,\n text\n } = op;\n if (text.length === 0) break;\n\n var _node = Node.leaf(editor, _path);\n\n var before = _node.text.slice(0, offset);\n\n var after = _node.text.slice(offset);\n\n _node.text = before + text + after;\n\n if (selection) {\n for (var [_point, _key] of Range.points(selection)) {\n selection[_key] = Point.transform(_point, op);\n }\n }\n\n break;\n }\n\n case 'merge_node':\n {\n var {\n path: _path2\n } = op;\n\n var _node2 = Node.get(editor, _path2);\n\n var prevPath = Path.previous(_path2);\n var prev = Node.get(editor, prevPath);\n\n var _parent = Node.parent(editor, _path2);\n\n var _index = _path2[_path2.length - 1];\n\n if (Text.isText(_node2) && Text.isText(prev)) {\n prev.text += _node2.text;\n } else if (!Text.isText(_node2) && !Text.isText(prev)) {\n prev.children.push(..._node2.children);\n } else {\n throw new Error(\"Cannot apply a \\\"merge_node\\\" operation at path [\".concat(_path2, \"] to nodes of different interfaces: \").concat(Scrubber.stringify(_node2), \" \").concat(Scrubber.stringify(prev)));\n }\n\n _parent.children.splice(_index, 1);\n\n if (selection) {\n for (var [_point2, _key2] of Range.points(selection)) {\n selection[_key2] = Point.transform(_point2, op);\n }\n }\n\n break;\n }\n\n case 'move_node':\n {\n var {\n path: _path3,\n newPath\n } = op;\n\n if (Path.isAncestor(_path3, newPath)) {\n throw new Error(\"Cannot move a path [\".concat(_path3, \"] to new path [\").concat(newPath, \"] because the destination is inside itself.\"));\n }\n\n var _node3 = Node.get(editor, _path3);\n\n var _parent2 = Node.parent(editor, _path3);\n\n var _index2 = _path3[_path3.length - 1]; // This is tricky, but since the `path` and `newPath` both refer to\n // the same snapshot in time, there's a mismatch. After either\n // removing the original position, the second step's path can be out\n // of date. So instead of using the `op.newPath` directly, we\n // transform `op.path` to ascertain what the `newPath` would be after\n // the operation was applied.\n\n _parent2.children.splice(_index2, 1);\n\n var truePath = Path.transform(_path3, op);\n var newParent = Node.get(editor, Path.parent(truePath));\n var newIndex = truePath[truePath.length - 1];\n newParent.children.splice(newIndex, 0, _node3);\n\n if (selection) {\n for (var [_point3, _key3] of Range.points(selection)) {\n selection[_key3] = Point.transform(_point3, op);\n }\n }\n\n break;\n }\n\n case 'remove_node':\n {\n var {\n path: _path4\n } = op;\n var _index3 = _path4[_path4.length - 1];\n\n var _parent3 = Node.parent(editor, _path4);\n\n _parent3.children.splice(_index3, 1); // Transform all of the points in the value, but if the point was in the\n // node that was removed we need to update the range or remove it.\n\n\n if (selection) {\n for (var [_point4, _key4] of Range.points(selection)) {\n var result = Point.transform(_point4, op);\n\n if (selection != null && result != null) {\n selection[_key4] = result;\n } else {\n var _prev = void 0;\n\n var next = void 0;\n\n for (var [n, p] of Node.texts(editor)) {\n if (Path.compare(p, _path4) === -1) {\n _prev = [n, p];\n } else {\n next = [n, p];\n break;\n }\n }\n\n var preferNext = false;\n\n if (_prev && next) {\n if (Path.equals(next[1], _path4)) {\n preferNext = !Path.hasPrevious(next[1]);\n } else {\n preferNext = Path.common(_prev[1], _path4).length < Path.common(next[1], _path4).length;\n }\n }\n\n if (_prev && !preferNext) {\n _point4.path = _prev[1];\n _point4.offset = _prev[0].text.length;\n } else if (next) {\n _point4.path = next[1];\n _point4.offset = 0;\n } else {\n selection = null;\n }\n }\n }\n }\n\n break;\n }\n\n case 'remove_text':\n {\n var {\n path: _path5,\n offset: _offset,\n text: _text\n } = op;\n if (_text.length === 0) break;\n\n var _node4 = Node.leaf(editor, _path5);\n\n var _before = _node4.text.slice(0, _offset);\n\n var _after = _node4.text.slice(_offset + _text.length);\n\n _node4.text = _before + _after;\n\n if (selection) {\n for (var [_point5, _key5] of Range.points(selection)) {\n selection[_key5] = Point.transform(_point5, op);\n }\n }\n\n break;\n }\n\n case 'set_node':\n {\n var {\n path: _path6,\n properties,\n newProperties\n } = op;\n\n if (_path6.length === 0) {\n throw new Error(\"Cannot set properties on the root node!\");\n }\n\n var _node5 = Node.get(editor, _path6);\n\n for (var _key6 in newProperties) {\n if (_key6 === 'children' || _key6 === 'text') {\n throw new Error(\"Cannot set the \\\"\".concat(_key6, \"\\\" property of nodes!\"));\n }\n\n var value = newProperties[_key6];\n\n if (value == null) {\n delete _node5[_key6];\n } else {\n _node5[_key6] = value;\n }\n } // properties that were previously defined, but are now missing, must be deleted\n\n\n for (var _key7 in properties) {\n if (!newProperties.hasOwnProperty(_key7)) {\n delete _node5[_key7];\n }\n }\n\n break;\n }\n\n case 'set_selection':\n {\n var {\n newProperties: _newProperties\n } = op;\n\n if (_newProperties == null) {\n selection = _newProperties;\n } else {\n if (selection == null) {\n if (!Range.isRange(_newProperties)) {\n throw new Error(\"Cannot apply an incomplete \\\"set_selection\\\" operation properties \".concat(Scrubber.stringify(_newProperties), \" when there is no current selection.\"));\n }\n\n selection = _objectSpread$e({}, _newProperties);\n }\n\n for (var _key8 in _newProperties) {\n var _value = _newProperties[_key8];\n\n if (_value == null) {\n if (_key8 === 'anchor' || _key8 === 'focus') {\n throw new Error(\"Cannot remove the \\\"\".concat(_key8, \"\\\" selection property\"));\n }\n\n delete selection[_key8];\n } else {\n selection[_key8] = _value;\n }\n }\n }\n\n break;\n }\n\n case 'split_node':\n {\n var {\n path: _path7,\n position,\n properties: _properties\n } = op;\n\n if (_path7.length === 0) {\n throw new Error(\"Cannot apply a \\\"split_node\\\" operation at path [\".concat(_path7, \"] because the root node cannot be split.\"));\n }\n\n var _node6 = Node.get(editor, _path7);\n\n var _parent4 = Node.parent(editor, _path7);\n\n var _index4 = _path7[_path7.length - 1];\n var newNode;\n\n if (Text.isText(_node6)) {\n var _before2 = _node6.text.slice(0, position);\n\n var _after2 = _node6.text.slice(position);\n\n _node6.text = _before2;\n newNode = _objectSpread$e(_objectSpread$e({}, _properties), {}, {\n text: _after2\n });\n } else {\n var _before3 = _node6.children.slice(0, position);\n\n var _after3 = _node6.children.slice(position);\n\n _node6.children = _before3;\n newNode = _objectSpread$e(_objectSpread$e({}, _properties), {}, {\n children: _after3\n });\n }\n\n _parent4.children.splice(_index4 + 1, 0, newNode);\n\n if (selection) {\n for (var [_point6, _key9] of Range.points(selection)) {\n selection[_key9] = Point.transform(_point6, op);\n }\n }\n\n break;\n }\n }\n\n return selection;\n}; // eslint-disable-next-line no-redeclare\n\n\nvar GeneralTransforms = {\n transform(editor, op) {\n editor.children = createDraft(editor.children);\n var selection = editor.selection && createDraft(editor.selection);\n\n try {\n selection = applyToDraft(editor, selection, op);\n } finally {\n editor.children = finishDraft(editor.children);\n\n if (selection) {\n editor.selection = isDraft(selection) ? finishDraft(selection) : selection;\n } else {\n editor.selection = null;\n }\n }\n }\n\n};\n\n// eslint-disable-next-line no-redeclare\nvar NodeTransforms = {\n insertNodes(editor, nodes, options) {\n editor.insertNodes(nodes, options);\n },\n\n liftNodes(editor, options) {\n editor.liftNodes(options);\n },\n\n mergeNodes(editor, options) {\n editor.mergeNodes(options);\n },\n\n moveNodes(editor, options) {\n editor.moveNodes(options);\n },\n\n removeNodes(editor, options) {\n editor.removeNodes(options);\n },\n\n setNodes(editor, props, options) {\n editor.setNodes(props, options);\n },\n\n splitNodes(editor, options) {\n editor.splitNodes(options);\n },\n\n unsetNodes(editor, props, options) {\n editor.unsetNodes(props, options);\n },\n\n unwrapNodes(editor, options) {\n editor.unwrapNodes(options);\n },\n\n wrapNodes(editor, element, options) {\n editor.wrapNodes(element, options);\n }\n\n};\n\n// eslint-disable-next-line no-redeclare\nvar SelectionTransforms = {\n collapse(editor, options) {\n editor.collapse(options);\n },\n\n deselect(editor) {\n editor.deselect();\n },\n\n move(editor, options) {\n editor.move(options);\n },\n\n select(editor, target) {\n editor.select(target);\n },\n\n setPoint(editor, props, options) {\n editor.setPoint(props, options);\n },\n\n setSelection(editor, props) {\n editor.setSelection(props);\n }\n\n};\n\n/*\r\n Custom deep equal comparison for Slate nodes.\r\n\n We don't need general purpose deep equality;\r\n Slate only supports plain values, Arrays, and nested objects.\r\n Complex values nested inside Arrays are not supported.\r\n\n Slate objects are designed to be serialised, so\r\n missing keys are deliberately normalised to undefined.\r\n */\n\nvar isDeepEqual = (node, another) => {\n for (var key in node) {\n var a = node[key];\n var b = another[key];\n\n if (isPlainObject(a) && isPlainObject(b)) {\n if (!isDeepEqual(a, b)) return false;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n\n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n } else if (a !== b) {\n return false;\n }\n }\n /*\r\n Deep object equality is only necessary in one direction; in the reverse direction\r\n we are only looking for keys that are missing.\r\n As above, undefined keys are normalised to missing.\r\n */\n\n\n for (var _key in another) {\n if (node[_key] === undefined && another[_key] !== undefined) {\n return false;\n }\n }\n\n return true;\n};\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nvar _excluded$4 = [\"anchor\", \"focus\"];\n\nfunction ownKeys$d(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$d(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$d(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$d(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Range = {\n edges(range) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n reverse = false\n } = options;\n var {\n anchor,\n focus\n } = range;\n return Range.isBackward(range) === reverse ? [anchor, focus] : [focus, anchor];\n },\n\n end(range) {\n var [, end] = Range.edges(range);\n return end;\n },\n\n equals(range, another) {\n return Point.equals(range.anchor, another.anchor) && Point.equals(range.focus, another.focus);\n },\n\n includes(range, target) {\n if (Range.isRange(target)) {\n if (Range.includes(range, target.anchor) || Range.includes(range, target.focus)) {\n return true;\n }\n\n var [rs, re] = Range.edges(range);\n var [ts, te] = Range.edges(target);\n return Point.isBefore(rs, ts) && Point.isAfter(re, te);\n }\n\n var [start, end] = Range.edges(range);\n var isAfterStart = false;\n var isBeforeEnd = false;\n\n if (Point.isPoint(target)) {\n isAfterStart = Point.compare(target, start) >= 0;\n isBeforeEnd = Point.compare(target, end) <= 0;\n } else {\n isAfterStart = Path.compare(target, start.path) >= 0;\n isBeforeEnd = Path.compare(target, end.path) <= 0;\n }\n\n return isAfterStart && isBeforeEnd;\n },\n\n intersection(range, another) {\n var rest = _objectWithoutProperties(range, _excluded$4);\n\n var [s1, e1] = Range.edges(range);\n var [s2, e2] = Range.edges(another);\n var start = Point.isBefore(s1, s2) ? s2 : s1;\n var end = Point.isBefore(e1, e2) ? e1 : e2;\n\n if (Point.isBefore(end, start)) {\n return null;\n } else {\n return _objectSpread$d({\n anchor: start,\n focus: end\n }, rest);\n }\n },\n\n isBackward(range) {\n var {\n anchor,\n focus\n } = range;\n return Point.isAfter(anchor, focus);\n },\n\n isCollapsed(range) {\n var {\n anchor,\n focus\n } = range;\n return Point.equals(anchor, focus);\n },\n\n isExpanded(range) {\n return !Range.isCollapsed(range);\n },\n\n isForward(range) {\n return !Range.isBackward(range);\n },\n\n isRange(value) {\n return isPlainObject(value) && Point.isPoint(value.anchor) && Point.isPoint(value.focus);\n },\n\n *points(range) {\n yield [range.anchor, 'anchor'];\n yield [range.focus, 'focus'];\n },\n\n start(range) {\n var [start] = Range.edges(range);\n return start;\n },\n\n transform(range, op) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return produce(range, r => {\n if (r === null) {\n return null;\n }\n\n var {\n affinity = 'inward'\n } = options;\n var affinityAnchor;\n var affinityFocus;\n\n if (affinity === 'inward') {\n // If the range is collapsed, make sure to use the same affinity to\n // avoid the two points passing each other and expanding in the opposite\n // direction\n var isCollapsed = Range.isCollapsed(r);\n\n if (Range.isForward(r)) {\n affinityAnchor = 'forward';\n affinityFocus = isCollapsed ? affinityAnchor : 'backward';\n } else {\n affinityAnchor = 'backward';\n affinityFocus = isCollapsed ? affinityAnchor : 'forward';\n }\n } else if (affinity === 'outward') {\n if (Range.isForward(r)) {\n affinityAnchor = 'backward';\n affinityFocus = 'forward';\n } else {\n affinityAnchor = 'forward';\n affinityFocus = 'backward';\n }\n } else {\n affinityAnchor = affinity;\n affinityFocus = affinity;\n }\n\n var anchor = Point.transform(r.anchor, op, {\n affinity: affinityAnchor\n });\n var focus = Point.transform(r.focus, op, {\n affinity: affinityFocus\n });\n\n if (!anchor || !focus) {\n return null;\n }\n\n r.anchor = anchor;\n r.focus = focus;\n });\n }\n\n};\n\n/**\r\n * Shared the function with isElementType utility\r\n */\n\nvar isElement = value => {\n return isPlainObject(value) && Node.isNodeList(value.children) && !Editor.isEditor(value);\n}; // eslint-disable-next-line no-redeclare\n\n\nvar Element = {\n isAncestor(value) {\n return isPlainObject(value) && Node.isNodeList(value.children);\n },\n\n isElement,\n\n isElementList(value) {\n return Array.isArray(value) && value.every(val => Element.isElement(val));\n },\n\n isElementProps(props) {\n return props.children !== undefined;\n },\n\n isElementType: function isElementType(value, elementVal) {\n var elementKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'type';\n return isElement(value) && value[elementKey] === elementVal;\n },\n\n matches(element, props) {\n for (var key in props) {\n if (key === 'children') {\n continue;\n }\n\n if (element[key] !== props[key]) {\n return false;\n }\n }\n\n return true;\n }\n\n};\n\nvar _excluded$3 = [\"children\"],\n _excluded2$3 = [\"text\"];\nvar IS_NODE_LIST_CACHE = new WeakMap(); // eslint-disable-next-line no-redeclare\n\nvar Node = {\n ancestor(root, path) {\n var node = Node.get(root, path);\n\n if (Text.isText(node)) {\n throw new Error(\"Cannot get the ancestor node at path [\".concat(path, \"] because it refers to a text node instead: \").concat(Scrubber.stringify(node)));\n }\n\n return node;\n },\n\n *ancestors(root, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n for (var p of Path.ancestors(path, options)) {\n var n = Node.ancestor(root, p);\n var entry = [n, p];\n yield entry;\n }\n },\n\n child(root, index) {\n if (Text.isText(root)) {\n throw new Error(\"Cannot get the child of a text node: \".concat(Scrubber.stringify(root)));\n }\n\n var c = root.children[index];\n\n if (c == null) {\n throw new Error(\"Cannot get child at index `\".concat(index, \"` in node: \").concat(Scrubber.stringify(root)));\n }\n\n return c;\n },\n\n *children(root, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n reverse = false\n } = options;\n var ancestor = Node.ancestor(root, path);\n var {\n children\n } = ancestor;\n var index = reverse ? children.length - 1 : 0;\n\n while (reverse ? index >= 0 : index < children.length) {\n var child = Node.child(ancestor, index);\n var childPath = path.concat(index);\n yield [child, childPath];\n index = reverse ? index - 1 : index + 1;\n }\n },\n\n common(root, path, another) {\n var p = Path.common(path, another);\n var n = Node.get(root, p);\n return [n, p];\n },\n\n descendant(root, path) {\n var node = Node.get(root, path);\n\n if (Editor.isEditor(node)) {\n throw new Error(\"Cannot get the descendant node at path [\".concat(path, \"] because it refers to the root editor node instead: \").concat(Scrubber.stringify(node)));\n }\n\n return node;\n },\n\n *descendants(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var [node, path] of Node.nodes(root, options)) {\n if (path.length !== 0) {\n // NOTE: we have to coerce here because checking the path's length does\n // guarantee that `node` is not a `Editor`, but TypeScript doesn't know.\n yield [node, path];\n }\n }\n },\n\n *elements(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var [node, path] of Node.nodes(root, options)) {\n if (Element.isElement(node)) {\n yield [node, path];\n }\n }\n },\n\n extractProps(node) {\n if (Element.isAncestor(node)) {\n var properties = _objectWithoutProperties(node, _excluded$3);\n\n return properties;\n } else {\n var properties = _objectWithoutProperties(node, _excluded2$3);\n\n return properties;\n }\n },\n\n first(root, path) {\n var p = path.slice();\n var n = Node.get(root, p);\n\n while (n) {\n if (Text.isText(n) || n.children.length === 0) {\n break;\n } else {\n n = n.children[0];\n p.push(0);\n }\n }\n\n return [n, p];\n },\n\n fragment(root, range) {\n if (Text.isText(root)) {\n throw new Error(\"Cannot get a fragment starting from a root text node: \".concat(Scrubber.stringify(root)));\n }\n\n var newRoot = produce({\n children: root.children\n }, r => {\n var [start, end] = Range.edges(range);\n var nodeEntries = Node.nodes(r, {\n reverse: true,\n pass: _ref => {\n var [, path] = _ref;\n return !Range.includes(range, path);\n }\n });\n\n for (var [, path] of nodeEntries) {\n if (!Range.includes(range, path)) {\n var parent = Node.parent(r, path);\n var index = path[path.length - 1];\n parent.children.splice(index, 1);\n }\n\n if (Path.equals(path, end.path)) {\n var leaf = Node.leaf(r, path);\n leaf.text = leaf.text.slice(0, end.offset);\n }\n\n if (Path.equals(path, start.path)) {\n var _leaf = Node.leaf(r, path);\n\n _leaf.text = _leaf.text.slice(start.offset);\n }\n }\n\n if (Editor.isEditor(r)) {\n r.selection = null;\n }\n });\n return newRoot.children;\n },\n\n get(root, path) {\n var node = root;\n\n for (var i = 0; i < path.length; i++) {\n var p = path[i];\n\n if (Text.isText(node) || !node.children[p]) {\n throw new Error(\"Cannot find a descendant at path [\".concat(path, \"] in node: \").concat(Scrubber.stringify(root)));\n }\n\n node = node.children[p];\n }\n\n return node;\n },\n\n has(root, path) {\n var node = root;\n\n for (var i = 0; i < path.length; i++) {\n var p = path[i];\n\n if (Text.isText(node) || !node.children[p]) {\n return false;\n }\n\n node = node.children[p];\n }\n\n return true;\n },\n\n isNode(value) {\n return Text.isText(value) || Element.isElement(value) || Editor.isEditor(value);\n },\n\n isNodeList(value) {\n if (!Array.isArray(value)) {\n return false;\n }\n\n var cachedResult = IS_NODE_LIST_CACHE.get(value);\n\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n\n var isNodeList = value.every(val => Node.isNode(val));\n IS_NODE_LIST_CACHE.set(value, isNodeList);\n return isNodeList;\n },\n\n last(root, path) {\n var p = path.slice();\n var n = Node.get(root, p);\n\n while (n) {\n if (Text.isText(n) || n.children.length === 0) {\n break;\n } else {\n var i = n.children.length - 1;\n n = n.children[i];\n p.push(i);\n }\n }\n\n return [n, p];\n },\n\n leaf(root, path) {\n var node = Node.get(root, path);\n\n if (!Text.isText(node)) {\n throw new Error(\"Cannot get the leaf node at path [\".concat(path, \"] because it refers to a non-leaf node: \").concat(Scrubber.stringify(node)));\n }\n\n return node;\n },\n\n *levels(root, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n for (var p of Path.levels(path, options)) {\n var n = Node.get(root, p);\n yield [n, p];\n }\n },\n\n matches(node, props) {\n return Element.isElement(node) && Element.isElementProps(props) && Element.matches(node, props) || Text.isText(node) && Text.isTextProps(props) && Text.matches(node, props);\n },\n\n *nodes(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n pass,\n reverse = false\n } = options;\n var {\n from = [],\n to\n } = options;\n var visited = new Set();\n var p = [];\n var n = root;\n\n while (true) {\n if (to && (reverse ? Path.isBefore(p, to) : Path.isAfter(p, to))) {\n break;\n }\n\n if (!visited.has(n)) {\n yield [n, p];\n } // If we're allowed to go downward and we haven't descended yet, do.\n\n\n if (!visited.has(n) && !Text.isText(n) && n.children.length !== 0 && (pass == null || pass([n, p]) === false)) {\n visited.add(n);\n var nextIndex = reverse ? n.children.length - 1 : 0;\n\n if (Path.isAncestor(p, from)) {\n nextIndex = from[p.length];\n }\n\n p = p.concat(nextIndex);\n n = Node.get(root, p);\n continue;\n } // If we're at the root and we can't go down, we're done.\n\n\n if (p.length === 0) {\n break;\n } // If we're going forward...\n\n\n if (!reverse) {\n var newPath = Path.next(p);\n\n if (Node.has(root, newPath)) {\n p = newPath;\n n = Node.get(root, p);\n continue;\n }\n } // If we're going backward...\n\n\n if (reverse && p[p.length - 1] !== 0) {\n var _newPath = Path.previous(p);\n\n p = _newPath;\n n = Node.get(root, p);\n continue;\n } // Otherwise we're going upward...\n\n\n p = Path.parent(p);\n n = Node.get(root, p);\n visited.add(n);\n }\n },\n\n parent(root, path) {\n var parentPath = Path.parent(path);\n var p = Node.get(root, parentPath);\n\n if (Text.isText(p)) {\n throw new Error(\"Cannot get the parent of path [\".concat(path, \"] because it does not exist in the root.\"));\n }\n\n return p;\n },\n\n string(node) {\n if (Text.isText(node)) {\n return node.text;\n } else {\n return node.children.map(Node.string).join('');\n }\n },\n\n *texts(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var [node, path] of Node.nodes(root, options)) {\n if (Text.isText(node)) {\n yield [node, path];\n }\n }\n }\n\n};\n\nfunction ownKeys$c(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$c(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Operation = {\n isNodeOperation(value) {\n return Operation.isOperation(value) && value.type.endsWith('_node');\n },\n\n isOperation(value) {\n if (!isPlainObject(value)) {\n return false;\n }\n\n switch (value.type) {\n case 'insert_node':\n return Path.isPath(value.path) && Node.isNode(value.node);\n\n case 'insert_text':\n return typeof value.offset === 'number' && typeof value.text === 'string' && Path.isPath(value.path);\n\n case 'merge_node':\n return typeof value.position === 'number' && Path.isPath(value.path) && isPlainObject(value.properties);\n\n case 'move_node':\n return Path.isPath(value.path) && Path.isPath(value.newPath);\n\n case 'remove_node':\n return Path.isPath(value.path) && Node.isNode(value.node);\n\n case 'remove_text':\n return typeof value.offset === 'number' && typeof value.text === 'string' && Path.isPath(value.path);\n\n case 'set_node':\n return Path.isPath(value.path) && isPlainObject(value.properties) && isPlainObject(value.newProperties);\n\n case 'set_selection':\n return value.properties === null && Range.isRange(value.newProperties) || value.newProperties === null && Range.isRange(value.properties) || isPlainObject(value.properties) && isPlainObject(value.newProperties);\n\n case 'split_node':\n return Path.isPath(value.path) && typeof value.position === 'number' && isPlainObject(value.properties);\n\n default:\n return false;\n }\n },\n\n isOperationList(value) {\n return Array.isArray(value) && value.every(val => Operation.isOperation(val));\n },\n\n isSelectionOperation(value) {\n return Operation.isOperation(value) && value.type.endsWith('_selection');\n },\n\n isTextOperation(value) {\n return Operation.isOperation(value) && value.type.endsWith('_text');\n },\n\n inverse(op) {\n switch (op.type) {\n case 'insert_node':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'remove_node'\n });\n }\n\n case 'insert_text':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'remove_text'\n });\n }\n\n case 'merge_node':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'split_node',\n path: Path.previous(op.path)\n });\n }\n\n case 'move_node':\n {\n var {\n newPath,\n path\n } = op; // PERF: in this case the move operation is a no-op anyways.\n\n if (Path.equals(newPath, path)) {\n return op;\n } // If the move happens completely within a single parent the path and\n // newPath are stable with respect to each other.\n\n\n if (Path.isSibling(path, newPath)) {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n path: newPath,\n newPath: path\n });\n } // If the move does not happen within a single parent it is possible\n // for the move to impact the true path to the location where the node\n // was removed from and where it was inserted. We have to adjust for this\n // and find the original path. We can accomplish this (only in non-sibling)\n // moves by looking at the impact of the move operation on the node\n // after the original move path.\n\n\n var inversePath = Path.transform(path, op);\n var inverseNewPath = Path.transform(Path.next(path), op);\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n path: inversePath,\n newPath: inverseNewPath\n });\n }\n\n case 'remove_node':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'insert_node'\n });\n }\n\n case 'remove_text':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'insert_text'\n });\n }\n\n case 'set_node':\n {\n var {\n properties,\n newProperties\n } = op;\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n properties: newProperties,\n newProperties: properties\n });\n }\n\n case 'set_selection':\n {\n var {\n properties: _properties,\n newProperties: _newProperties\n } = op;\n\n if (_properties == null) {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n properties: _newProperties,\n newProperties: null\n });\n } else if (_newProperties == null) {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n properties: null,\n newProperties: _properties\n });\n } else {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n properties: _newProperties,\n newProperties: _properties\n });\n }\n }\n\n case 'split_node':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'merge_node',\n path: Path.next(op.path)\n });\n }\n }\n }\n\n};\n\nvar IS_EDITOR_CACHE = new WeakMap();\nvar isEditor = value => {\n var cachedIsEditor = IS_EDITOR_CACHE.get(value);\n\n if (cachedIsEditor !== undefined) {\n return cachedIsEditor;\n }\n\n if (!isPlainObject(value)) {\n return false;\n }\n\n var isEditor = typeof value.addMark === 'function' && typeof value.apply === 'function' && typeof value.deleteFragment === 'function' && typeof value.insertBreak === 'function' && typeof value.insertSoftBreak === 'function' && typeof value.insertFragment === 'function' && typeof value.insertNode === 'function' && typeof value.insertText === 'function' && typeof value.isElementReadOnly === 'function' && typeof value.isInline === 'function' && typeof value.isSelectable === 'function' && typeof value.isVoid === 'function' && typeof value.normalizeNode === 'function' && typeof value.onChange === 'function' && typeof value.removeMark === 'function' && typeof value.getDirtyPaths === 'function' && (value.marks === null || isPlainObject(value.marks)) && (value.selection === null || Range.isRange(value.selection)) && Node.isNodeList(value.children) && Operation.isOperationList(value.operations);\n IS_EDITOR_CACHE.set(value, isEditor);\n return isEditor;\n};\n\nvar Editor = {\n above(editor, options) {\n return editor.above(options);\n },\n\n addMark(editor, key, value) {\n editor.addMark(key, value);\n },\n\n after(editor, at, options) {\n return editor.after(at, options);\n },\n\n before(editor, at, options) {\n return editor.before(at, options);\n },\n\n deleteBackward(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n unit = 'character'\n } = options;\n editor.deleteBackward(unit);\n },\n\n deleteForward(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n unit = 'character'\n } = options;\n editor.deleteForward(unit);\n },\n\n deleteFragment(editor, options) {\n editor.deleteFragment(options);\n },\n\n edges(editor, at) {\n return editor.edges(at);\n },\n\n elementReadOnly(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return editor.elementReadOnly(options);\n },\n\n end(editor, at) {\n return editor.end(at);\n },\n\n first(editor, at) {\n return editor.first(at);\n },\n\n fragment(editor, at) {\n return editor.fragment(at);\n },\n\n hasBlocks(editor, element) {\n return editor.hasBlocks(element);\n },\n\n hasInlines(editor, element) {\n return editor.hasInlines(element);\n },\n\n hasPath(editor, path) {\n return editor.hasPath(path);\n },\n\n hasTexts(editor, element) {\n return editor.hasTexts(element);\n },\n\n insertBreak(editor) {\n editor.insertBreak();\n },\n\n insertFragment(editor, fragment, options) {\n editor.insertFragment(fragment, options);\n },\n\n insertNode(editor, node) {\n editor.insertNode(node);\n },\n\n insertSoftBreak(editor) {\n editor.insertSoftBreak();\n },\n\n insertText(editor, text) {\n editor.insertText(text);\n },\n\n isBlock(editor, value) {\n return editor.isBlock(value);\n },\n\n isEdge(editor, point, at) {\n return editor.isEdge(point, at);\n },\n\n isEditor(value) {\n return isEditor(value);\n },\n\n isElementReadOnly(editor, element) {\n return editor.isElementReadOnly(element);\n },\n\n isEmpty(editor, element) {\n return editor.isEmpty(element);\n },\n\n isEnd(editor, point, at) {\n return editor.isEnd(point, at);\n },\n\n isInline(editor, value) {\n return editor.isInline(value);\n },\n\n isNormalizing(editor) {\n return editor.isNormalizing();\n },\n\n isSelectable(editor, value) {\n return editor.isSelectable(value);\n },\n\n isStart(editor, point, at) {\n return editor.isStart(point, at);\n },\n\n isVoid(editor, value) {\n return editor.isVoid(value);\n },\n\n last(editor, at) {\n return editor.last(at);\n },\n\n leaf(editor, at, options) {\n return editor.leaf(at, options);\n },\n\n levels(editor, options) {\n return editor.levels(options);\n },\n\n marks(editor) {\n return editor.getMarks();\n },\n\n next(editor, options) {\n return editor.next(options);\n },\n\n node(editor, at, options) {\n return editor.node(at, options);\n },\n\n nodes(editor, options) {\n return editor.nodes(options);\n },\n\n normalize(editor, options) {\n editor.normalize(options);\n },\n\n parent(editor, at, options) {\n return editor.parent(at, options);\n },\n\n path(editor, at, options) {\n return editor.path(at, options);\n },\n\n pathRef(editor, path, options) {\n return editor.pathRef(path, options);\n },\n\n pathRefs(editor) {\n return editor.pathRefs();\n },\n\n point(editor, at, options) {\n return editor.point(at, options);\n },\n\n pointRef(editor, point, options) {\n return editor.pointRef(point, options);\n },\n\n pointRefs(editor) {\n return editor.pointRefs();\n },\n\n positions(editor, options) {\n return editor.positions(options);\n },\n\n previous(editor, options) {\n return editor.previous(options);\n },\n\n range(editor, at, to) {\n return editor.range(at, to);\n },\n\n rangeRef(editor, range, options) {\n return editor.rangeRef(range, options);\n },\n\n rangeRefs(editor) {\n return editor.rangeRefs();\n },\n\n removeMark(editor, key) {\n editor.removeMark(key);\n },\n\n setNormalizing(editor, isNormalizing) {\n editor.setNormalizing(isNormalizing);\n },\n\n start(editor, at) {\n return editor.start(at);\n },\n\n string(editor, at, options) {\n return editor.string(at, options);\n },\n\n unhangRange(editor, range, options) {\n return editor.unhangRange(range, options);\n },\n\n void(editor, options) {\n return editor.void(options);\n },\n\n withoutNormalizing(editor, fn) {\n editor.withoutNormalizing(fn);\n }\n\n};\n\nvar Location = {\n isLocation(value) {\n return Path.isPath(value) || Point.isPoint(value) || Range.isRange(value);\n }\n\n}; // eslint-disable-next-line no-redeclare\n\nvar Span = {\n isSpan(value) {\n return Array.isArray(value) && value.length === 2 && value.every(Path.isPath);\n }\n\n};\n\nfunction ownKeys$b(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$b(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Point = {\n compare(point, another) {\n var result = Path.compare(point.path, another.path);\n\n if (result === 0) {\n if (point.offset < another.offset) return -1;\n if (point.offset > another.offset) return 1;\n return 0;\n }\n\n return result;\n },\n\n isAfter(point, another) {\n return Point.compare(point, another) === 1;\n },\n\n isBefore(point, another) {\n return Point.compare(point, another) === -1;\n },\n\n equals(point, another) {\n // PERF: ensure the offsets are equal first since they are cheaper to check.\n return point.offset === another.offset && Path.equals(point.path, another.path);\n },\n\n isPoint(value) {\n return isPlainObject(value) && typeof value.offset === 'number' && Path.isPath(value.path);\n },\n\n transform(point, op) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return produce(point, p => {\n if (p === null) {\n return null;\n }\n\n var {\n affinity = 'forward'\n } = options;\n var {\n path,\n offset\n } = p;\n\n switch (op.type) {\n case 'insert_node':\n case 'move_node':\n {\n p.path = Path.transform(path, op, options);\n break;\n }\n\n case 'insert_text':\n {\n if (Path.equals(op.path, path) && (op.offset < offset || op.offset === offset && affinity === 'forward')) {\n p.offset += op.text.length;\n }\n\n break;\n }\n\n case 'merge_node':\n {\n if (Path.equals(op.path, path)) {\n p.offset += op.position;\n }\n\n p.path = Path.transform(path, op, options);\n break;\n }\n\n case 'remove_text':\n {\n if (Path.equals(op.path, path) && op.offset <= offset) {\n p.offset -= Math.min(offset - op.offset, op.text.length);\n }\n\n break;\n }\n\n case 'remove_node':\n {\n if (Path.equals(op.path, path) || Path.isAncestor(op.path, path)) {\n return null;\n }\n\n p.path = Path.transform(path, op, options);\n break;\n }\n\n case 'split_node':\n {\n if (Path.equals(op.path, path)) {\n if (op.position === offset && affinity == null) {\n return null;\n } else if (op.position < offset || op.position === offset && affinity === 'forward') {\n p.offset -= op.position;\n p.path = Path.transform(path, op, _objectSpread$b(_objectSpread$b({}, options), {}, {\n affinity: 'forward'\n }));\n }\n } else {\n p.path = Path.transform(path, op, options);\n }\n\n break;\n }\n }\n });\n }\n\n};\n\nvar _scrubber = undefined;\n/**\r\n * This interface implements a stringify() function, which is used by Slate\r\n * internally when generating exceptions containing end user data. Developers\r\n * using Slate may call Scrubber.setScrubber() to alter the behavior of this\r\n * stringify() function.\r\n *\r\n * For example, to prevent the cleartext logging of 'text' fields within Nodes:\r\n *\r\n * import { Scrubber } from 'slate';\r\n * Scrubber.setScrubber((key, val) => {\r\n * if (key === 'text') return '...scrubbed...'\r\n * return val\r\n * });\r\n *\r\n */\n// eslint-disable-next-line no-redeclare\n\nvar Scrubber = {\n setScrubber(scrubber) {\n _scrubber = scrubber;\n },\n\n stringify(value) {\n return JSON.stringify(value, _scrubber);\n }\n\n};\n\nvar _excluded$2 = [\"text\"],\n _excluded2$2 = [\"anchor\", \"focus\"];\n\nfunction ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$a(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Text = {\n equals(text, another) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n loose = false\n } = options;\n\n function omitText(obj) {\n var rest = _objectWithoutProperties(obj, _excluded$2);\n\n return rest;\n }\n\n return isDeepEqual(loose ? omitText(text) : text, loose ? omitText(another) : another);\n },\n\n isText(value) {\n return isPlainObject(value) && typeof value.text === 'string';\n },\n\n isTextList(value) {\n return Array.isArray(value) && value.every(val => Text.isText(val));\n },\n\n isTextProps(props) {\n return props.text !== undefined;\n },\n\n matches(text, props) {\n for (var key in props) {\n if (key === 'text') {\n continue;\n }\n\n if (!text.hasOwnProperty(key) || text[key] !== props[key]) {\n return false;\n }\n }\n\n return true;\n },\n\n decorations(node, decorations) {\n var leaves = [_objectSpread$a({}, node)];\n\n for (var dec of decorations) {\n var rest = _objectWithoutProperties(dec, _excluded2$2);\n\n var [start, end] = Range.edges(dec);\n var next = [];\n var leafEnd = 0;\n var decorationStart = start.offset;\n var decorationEnd = end.offset;\n\n for (var leaf of leaves) {\n var {\n length\n } = leaf.text;\n var leafStart = leafEnd;\n leafEnd += length; // If the range encompasses the entire leaf, add the range.\n\n if (decorationStart <= leafStart && leafEnd <= decorationEnd) {\n Object.assign(leaf, rest);\n next.push(leaf);\n continue;\n } // If the range expanded and match the leaf, or starts after, or ends before it, continue.\n\n\n if (decorationStart !== decorationEnd && (decorationStart === leafEnd || decorationEnd === leafStart) || decorationStart > leafEnd || decorationEnd < leafStart || decorationEnd === leafStart && leafStart !== 0) {\n next.push(leaf);\n continue;\n } // Otherwise we need to split the leaf, at the start, end, or both,\n // and add the range to the middle intersecting section. Do the end\n // split first since we don't need to update the offset that way.\n\n\n var middle = leaf;\n var before = void 0;\n var after = void 0;\n\n if (decorationEnd < leafEnd) {\n var off = decorationEnd - leafStart;\n after = _objectSpread$a(_objectSpread$a({}, middle), {}, {\n text: middle.text.slice(off)\n });\n middle = _objectSpread$a(_objectSpread$a({}, middle), {}, {\n text: middle.text.slice(0, off)\n });\n }\n\n if (decorationStart > leafStart) {\n var _off = decorationStart - leafStart;\n\n before = _objectSpread$a(_objectSpread$a({}, middle), {}, {\n text: middle.text.slice(0, _off)\n });\n middle = _objectSpread$a(_objectSpread$a({}, middle), {}, {\n text: middle.text.slice(_off)\n });\n }\n\n Object.assign(middle, rest);\n\n if (before) {\n next.push(before);\n }\n\n next.push(middle);\n\n if (after) {\n next.push(after);\n }\n }\n\n leaves = next;\n }\n\n return leaves;\n }\n\n};\n\n/**\r\n * Get the default location to insert content into the editor.\r\n * By default, use the selection as the target location. But if there is\r\n * no selection, insert at the end of the document since that is such a\r\n * common use case when inserting from a non-selected state.\r\n */\n\nvar getDefaultInsertLocation = editor => {\n if (editor.selection) {\n return editor.selection;\n } else if (editor.children.length > 0) {\n return Editor.end(editor, []);\n } else {\n return [0];\n }\n};\n\nvar matchPath = (editor, path) => {\n var [node] = Editor.node(editor, path);\n return n => n === node;\n};\n\n// Character (grapheme cluster) boundaries are determined according to\n// the default grapheme cluster boundary specification, extended grapheme clusters variant[1].\n//\n// References:\n//\n// [1] https://www.unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table\n// [2] https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakProperty.txt\n// [3] https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakTest.html\n// [4] https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakTest.txt\n\n/**\r\n * Get the distance to the end of the first character in a string of text.\r\n */\nvar getCharacterDistance = function getCharacterDistance(str) {\n var isRTL = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var isLTR = !isRTL;\n var codepoints = isRTL ? codepointsIteratorRTL(str) : str;\n var left = CodepointType.None;\n var right = CodepointType.None;\n var distance = 0; // Evaluation of these conditions are deferred.\n\n var gb11 = null; // Is GB11 applicable?\n\n var gb12Or13 = null; // Is GB12 or GB13 applicable?\n\n for (var char of codepoints) {\n var code = char.codePointAt(0);\n if (!code) break;\n var type = getCodepointType(char, code);\n [left, right] = isLTR ? [right, type] : [type, left];\n\n if (intersects(left, CodepointType.ZWJ) && intersects(right, CodepointType.ExtPict)) {\n if (isLTR) {\n gb11 = endsWithEmojiZWJ(str.substring(0, distance));\n } else {\n gb11 = endsWithEmojiZWJ(str.substring(0, str.length - distance));\n }\n\n if (!gb11) break;\n }\n\n if (intersects(left, CodepointType.RI) && intersects(right, CodepointType.RI)) {\n if (gb12Or13 !== null) {\n gb12Or13 = !gb12Or13;\n } else {\n if (isLTR) {\n gb12Or13 = true;\n } else {\n gb12Or13 = endsWithOddNumberOfRIs(str.substring(0, str.length - distance));\n }\n }\n\n if (!gb12Or13) break;\n }\n\n if (left !== CodepointType.None && right !== CodepointType.None && isBoundaryPair(left, right)) {\n break;\n }\n\n distance += char.length;\n }\n\n return distance || 1;\n};\nvar SPACE = /\\s/;\nvar PUNCTUATION = /[\\u0021-\\u0023\\u0025-\\u002A\\u002C-\\u002F\\u003A\\u003B\\u003F\\u0040\\u005B-\\u005D\\u005F\\u007B\\u007D\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E3B\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/;\nvar CHAMELEON = /['\\u2018\\u2019]/;\n/**\r\n * Get the distance to the end of the first word in a string of text.\r\n */\n\nvar getWordDistance = function getWordDistance(text) {\n var isRTL = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var dist = 0;\n var started = false;\n\n while (text.length > 0) {\n var charDist = getCharacterDistance(text, isRTL);\n var [char, remaining] = splitByCharacterDistance(text, charDist, isRTL);\n\n if (isWordCharacter(char, remaining, isRTL)) {\n started = true;\n dist += charDist;\n } else if (!started) {\n dist += charDist;\n } else {\n break;\n }\n\n text = remaining;\n }\n\n return dist;\n};\n/**\r\n * Split a string in two parts at a given distance starting from the end when\r\n * `isRTL` is set to `true`.\r\n */\n\nvar splitByCharacterDistance = (str, dist, isRTL) => {\n if (isRTL) {\n var at = str.length - dist;\n return [str.slice(at, str.length), str.slice(0, at)];\n }\n\n return [str.slice(0, dist), str.slice(dist)];\n};\n/**\r\n * Check if a character is a word character. The `remaining` argument is used\r\n * because sometimes you must read subsequent characters to truly determine it.\r\n */\n\nvar isWordCharacter = function isWordCharacter(char, remaining) {\n var isRTL = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (SPACE.test(char)) {\n return false;\n } // Chameleons count as word characters as long as they're in a word, so\n // recurse to see if the next one is a word character or not.\n\n\n if (CHAMELEON.test(char)) {\n var charDist = getCharacterDistance(remaining, isRTL);\n var [nextChar, nextRemaining] = splitByCharacterDistance(remaining, charDist, isRTL);\n\n if (isWordCharacter(nextChar, nextRemaining, isRTL)) {\n return true;\n }\n }\n\n if (PUNCTUATION.test(char)) {\n return false;\n }\n\n return true;\n};\n/**\r\n * Iterate on codepoints from right to left.\r\n */\n\n\nvar codepointsIteratorRTL = function* codepointsIteratorRTL(str) {\n var end = str.length - 1;\n\n for (var i = 0; i < str.length; i++) {\n var char1 = str.charAt(end - i);\n\n if (isLowSurrogate(char1.charCodeAt(0))) {\n var char2 = str.charAt(end - i - 1);\n\n if (isHighSurrogate(char2.charCodeAt(0))) {\n yield char2 + char1;\n i++;\n continue;\n }\n }\n\n yield char1;\n }\n};\n/**\r\n * Is `charCode` a high surrogate.\r\n *\r\n * https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Surrogates\r\n */\n\nvar isHighSurrogate = charCode => {\n return charCode >= 0xd800 && charCode <= 0xdbff;\n};\n/**\r\n * Is `charCode` a low surrogate.\r\n *\r\n * https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Surrogates\r\n */\n\n\nvar isLowSurrogate = charCode => {\n return charCode >= 0xdc00 && charCode <= 0xdfff;\n};\n\nvar CodepointType;\n\n(function (CodepointType) {\n CodepointType[CodepointType[\"None\"] = 0] = \"None\";\n CodepointType[CodepointType[\"Extend\"] = 1] = \"Extend\";\n CodepointType[CodepointType[\"ZWJ\"] = 2] = \"ZWJ\";\n CodepointType[CodepointType[\"RI\"] = 4] = \"RI\";\n CodepointType[CodepointType[\"Prepend\"] = 8] = \"Prepend\";\n CodepointType[CodepointType[\"SpacingMark\"] = 16] = \"SpacingMark\";\n CodepointType[CodepointType[\"L\"] = 32] = \"L\";\n CodepointType[CodepointType[\"V\"] = 64] = \"V\";\n CodepointType[CodepointType[\"T\"] = 128] = \"T\";\n CodepointType[CodepointType[\"LV\"] = 256] = \"LV\";\n CodepointType[CodepointType[\"LVT\"] = 512] = \"LVT\";\n CodepointType[CodepointType[\"ExtPict\"] = 1024] = \"ExtPict\";\n CodepointType[CodepointType[\"Any\"] = 2048] = \"Any\";\n})(CodepointType || (CodepointType = {}));\n\nvar reExtend = /^(?:[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09BE\\u09C1-\\u09C4\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3E\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE\\u0BC0\\u0BCD\\u0BD7\\u0C00\\u0C04\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC2\\u0CC6\\u0CCC\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D3E\\u0D41-\\u0D44\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81\\u0DCA\\u0DCF\\u0DD2-\\u0DD4\\u0DD6\\u0DDF\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1AC0\\u1B00-\\u1B03\\u1B34-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u200C\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA82C\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9BD\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFF9E\\uFF9F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDF46-\\uDF50]|\\uD804[\\uDC01\\uDC38-\\uDC46\\uDC7F-\\uDC81\\uDCB3-\\uDCB6\\uDCB9\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD2B\\uDD2D-\\uDD34\\uDD73\\uDD80\\uDD81\\uDDB6-\\uDDBE\\uDDC9-\\uDDCC\\uDDCF\\uDE2F-\\uDE31\\uDE34\\uDE36\\uDE37\\uDE3E\\uDEDF\\uDEE3-\\uDEEA\\uDF00\\uDF01\\uDF3B\\uDF3C\\uDF3E\\uDF40\\uDF57\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC38-\\uDC3F\\uDC42-\\uDC44\\uDC46\\uDC5E\\uDCB0\\uDCB3-\\uDCB8\\uDCBA\\uDCBD\\uDCBF\\uDCC0\\uDCC2\\uDCC3\\uDDAF\\uDDB2-\\uDDB5\\uDDBC\\uDDBD\\uDDBF\\uDDC0\\uDDDC\\uDDDD\\uDE33-\\uDE3A\\uDE3D\\uDE3F\\uDE40\\uDEAB\\uDEAD\\uDEB0-\\uDEB5\\uDEB7\\uDF1D-\\uDF1F\\uDF22-\\uDF25\\uDF27-\\uDF2B]|\\uD806[\\uDC2F-\\uDC37\\uDC39\\uDC3A\\uDD30\\uDD3B\\uDD3C\\uDD3E\\uDD43\\uDDD4-\\uDDD7\\uDDDA\\uDDDB\\uDDE0\\uDE01-\\uDE0A\\uDE33-\\uDE38\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE56\\uDE59-\\uDE5B\\uDE8A-\\uDE96\\uDE98\\uDE99]|\\uD807[\\uDC30-\\uDC36\\uDC38-\\uDC3D\\uDC3F\\uDC92-\\uDCA7\\uDCAA-\\uDCB0\\uDCB2\\uDCB3\\uDCB5\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD90\\uDD91\\uDD95\\uDD97\\uDEF3\\uDEF4]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF8F-\\uDF92\\uDFE4]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65\\uDD67-\\uDD69\\uDD6E-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDD30-\\uDD36\\uDEEC-\\uDEEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC20-\\uDC7F\\uDD00-\\uDDEF])$/;\nvar rePrepend = /^(?:[\\u0600-\\u0605\\u06DD\\u070F\\u0890\\u0891\\u08E2\\u0D4E]|\\uD804[\\uDCBD\\uDCCD\\uDDC2\\uDDC3]|\\uD806[\\uDD3F\\uDD41\\uDE3A\\uDE84-\\uDE89]|\\uD807\\uDD46)$/;\nvar reSpacingMark = /^(?:[\\u0903\\u093B\\u093E-\\u0940\\u0949-\\u094C\\u094E\\u094F\\u0982\\u0983\\u09BF\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u0A03\\u0A3E-\\u0A40\\u0A83\\u0ABE-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0B02\\u0B03\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0C01-\\u0C03\\u0C41-\\u0C44\\u0C82\\u0C83\\u0CBE\\u0CC0\\u0CC1\\u0CC3\\u0CC4\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0D02\\u0D03\\u0D3F\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D82\\u0D83\\u0DD0\\u0DD1\\u0DD8-\\u0DDE\\u0DF2\\u0DF3\\u0E33\\u0EB3\\u0F3E\\u0F3F\\u0F7F\\u1031\\u103B\\u103C\\u1056\\u1057\\u1084\\u1715\\u1734\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u1A19\\u1A1A\\u1A55\\u1A57\\u1A6D-\\u1A72\\u1B04\\u1B3B\\u1B3D-\\u1B41\\u1B43\\u1B44\\u1B82\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2\\u1BF3\\u1C24-\\u1C2B\\u1C34\\u1C35\\u1CE1\\u1CF7\\uA823\\uA824\\uA827\\uA880\\uA881\\uA8B4-\\uA8C3\\uA952\\uA953\\uA983\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BE-\\uA9C0\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA4D\\uAAEB\\uAAEE\\uAAEF\\uAAF5\\uABE3\\uABE4\\uABE6\\uABE7\\uABE9\\uABEA\\uABEC]|\\uD804[\\uDC00\\uDC02\\uDC82\\uDCB0-\\uDCB2\\uDCB7\\uDCB8\\uDD2C\\uDD45\\uDD46\\uDD82\\uDDB3-\\uDDB5\\uDDBF\\uDDC0\\uDDCE\\uDE2C-\\uDE2E\\uDE32\\uDE33\\uDE35\\uDEE0-\\uDEE2\\uDF02\\uDF03\\uDF3F\\uDF41-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF62\\uDF63]|\\uD805[\\uDC35-\\uDC37\\uDC40\\uDC41\\uDC45\\uDCB1\\uDCB2\\uDCB9\\uDCBB\\uDCBC\\uDCBE\\uDCC1\\uDDB0\\uDDB1\\uDDB8-\\uDDBB\\uDDBE\\uDE30-\\uDE32\\uDE3B\\uDE3C\\uDE3E\\uDEAC\\uDEAE\\uDEAF\\uDEB6\\uDF26]|\\uD806[\\uDC2C-\\uDC2E\\uDC38\\uDD31-\\uDD35\\uDD37\\uDD38\\uDD3D\\uDD40\\uDD42\\uDDD1-\\uDDD3\\uDDDC-\\uDDDF\\uDDE4\\uDE39\\uDE57\\uDE58\\uDE97]|\\uD807[\\uDC2F\\uDC3E\\uDCA9\\uDCB1\\uDCB4\\uDD8A-\\uDD8E\\uDD93\\uDD94\\uDD96\\uDEF5\\uDEF6]|\\uD81B[\\uDF51-\\uDF87\\uDFF0\\uDFF1]|\\uD834[\\uDD66\\uDD6D])$/;\nvar reL = /^[\\u1100-\\u115F\\uA960-\\uA97C]$/;\nvar reV = /^[\\u1160-\\u11A7\\uD7B0-\\uD7C6]$/;\nvar reT = /^[\\u11A8-\\u11FF\\uD7CB-\\uD7FB]$/;\nvar reLV = /^[\\uAC00\\uAC1C\\uAC38\\uAC54\\uAC70\\uAC8C\\uACA8\\uACC4\\uACE0\\uACFC\\uAD18\\uAD34\\uAD50\\uAD6C\\uAD88\\uADA4\\uADC0\\uADDC\\uADF8\\uAE14\\uAE30\\uAE4C\\uAE68\\uAE84\\uAEA0\\uAEBC\\uAED8\\uAEF4\\uAF10\\uAF2C\\uAF48\\uAF64\\uAF80\\uAF9C\\uAFB8\\uAFD4\\uAFF0\\uB00C\\uB028\\uB044\\uB060\\uB07C\\uB098\\uB0B4\\uB0D0\\uB0EC\\uB108\\uB124\\uB140\\uB15C\\uB178\\uB194\\uB1B0\\uB1CC\\uB1E8\\uB204\\uB220\\uB23C\\uB258\\uB274\\uB290\\uB2AC\\uB2C8\\uB2E4\\uB300\\uB31C\\uB338\\uB354\\uB370\\uB38C\\uB3A8\\uB3C4\\uB3E0\\uB3FC\\uB418\\uB434\\uB450\\uB46C\\uB488\\uB4A4\\uB4C0\\uB4DC\\uB4F8\\uB514\\uB530\\uB54C\\uB568\\uB584\\uB5A0\\uB5BC\\uB5D8\\uB5F4\\uB610\\uB62C\\uB648\\uB664\\uB680\\uB69C\\uB6B8\\uB6D4\\uB6F0\\uB70C\\uB728\\uB744\\uB760\\uB77C\\uB798\\uB7B4\\uB7D0\\uB7EC\\uB808\\uB824\\uB840\\uB85C\\uB878\\uB894\\uB8B0\\uB8CC\\uB8E8\\uB904\\uB920\\uB93C\\uB958\\uB974\\uB990\\uB9AC\\uB9C8\\uB9E4\\uBA00\\uBA1C\\uBA38\\uBA54\\uBA70\\uBA8C\\uBAA8\\uBAC4\\uBAE0\\uBAFC\\uBB18\\uBB34\\uBB50\\uBB6C\\uBB88\\uBBA4\\uBBC0\\uBBDC\\uBBF8\\uBC14\\uBC30\\uBC4C\\uBC68\\uBC84\\uBCA0\\uBCBC\\uBCD8\\uBCF4\\uBD10\\uBD2C\\uBD48\\uBD64\\uBD80\\uBD9C\\uBDB8\\uBDD4\\uBDF0\\uBE0C\\uBE28\\uBE44\\uBE60\\uBE7C\\uBE98\\uBEB4\\uBED0\\uBEEC\\uBF08\\uBF24\\uBF40\\uBF5C\\uBF78\\uBF94\\uBFB0\\uBFCC\\uBFE8\\uC004\\uC020\\uC03C\\uC058\\uC074\\uC090\\uC0AC\\uC0C8\\uC0E4\\uC100\\uC11C\\uC138\\uC154\\uC170\\uC18C\\uC1A8\\uC1C4\\uC1E0\\uC1FC\\uC218\\uC234\\uC250\\uC26C\\uC288\\uC2A4\\uC2C0\\uC2DC\\uC2F8\\uC314\\uC330\\uC34C\\uC368\\uC384\\uC3A0\\uC3BC\\uC3D8\\uC3F4\\uC410\\uC42C\\uC448\\uC464\\uC480\\uC49C\\uC4B8\\uC4D4\\uC4F0\\uC50C\\uC528\\uC544\\uC560\\uC57C\\uC598\\uC5B4\\uC5D0\\uC5EC\\uC608\\uC624\\uC640\\uC65C\\uC678\\uC694\\uC6B0\\uC6CC\\uC6E8\\uC704\\uC720\\uC73C\\uC758\\uC774\\uC790\\uC7AC\\uC7C8\\uC7E4\\uC800\\uC81C\\uC838\\uC854\\uC870\\uC88C\\uC8A8\\uC8C4\\uC8E0\\uC8FC\\uC918\\uC934\\uC950\\uC96C\\uC988\\uC9A4\\uC9C0\\uC9DC\\uC9F8\\uCA14\\uCA30\\uCA4C\\uCA68\\uCA84\\uCAA0\\uCABC\\uCAD8\\uCAF4\\uCB10\\uCB2C\\uCB48\\uCB64\\uCB80\\uCB9C\\uCBB8\\uCBD4\\uCBF0\\uCC0C\\uCC28\\uCC44\\uCC60\\uCC7C\\uCC98\\uCCB4\\uCCD0\\uCCEC\\uCD08\\uCD24\\uCD40\\uCD5C\\uCD78\\uCD94\\uCDB0\\uCDCC\\uCDE8\\uCE04\\uCE20\\uCE3C\\uCE58\\uCE74\\uCE90\\uCEAC\\uCEC8\\uCEE4\\uCF00\\uCF1C\\uCF38\\uCF54\\uCF70\\uCF8C\\uCFA8\\uCFC4\\uCFE0\\uCFFC\\uD018\\uD034\\uD050\\uD06C\\uD088\\uD0A4\\uD0C0\\uD0DC\\uD0F8\\uD114\\uD130\\uD14C\\uD168\\uD184\\uD1A0\\uD1BC\\uD1D8\\uD1F4\\uD210\\uD22C\\uD248\\uD264\\uD280\\uD29C\\uD2B8\\uD2D4\\uD2F0\\uD30C\\uD328\\uD344\\uD360\\uD37C\\uD398\\uD3B4\\uD3D0\\uD3EC\\uD408\\uD424\\uD440\\uD45C\\uD478\\uD494\\uD4B0\\uD4CC\\uD4E8\\uD504\\uD520\\uD53C\\uD558\\uD574\\uD590\\uD5AC\\uD5C8\\uD5E4\\uD600\\uD61C\\uD638\\uD654\\uD670\\uD68C\\uD6A8\\uD6C4\\uD6E0\\uD6FC\\uD718\\uD734\\uD750\\uD76C\\uD788]$/;\nvar reLVT = /^[\\uAC01-\\uAC1B\\uAC1D-\\uAC37\\uAC39-\\uAC53\\uAC55-\\uAC6F\\uAC71-\\uAC8B\\uAC8D-\\uACA7\\uACA9-\\uACC3\\uACC5-\\uACDF\\uACE1-\\uACFB\\uACFD-\\uAD17\\uAD19-\\uAD33\\uAD35-\\uAD4F\\uAD51-\\uAD6B\\uAD6D-\\uAD87\\uAD89-\\uADA3\\uADA5-\\uADBF\\uADC1-\\uADDB\\uADDD-\\uADF7\\uADF9-\\uAE13\\uAE15-\\uAE2F\\uAE31-\\uAE4B\\uAE4D-\\uAE67\\uAE69-\\uAE83\\uAE85-\\uAE9F\\uAEA1-\\uAEBB\\uAEBD-\\uAED7\\uAED9-\\uAEF3\\uAEF5-\\uAF0F\\uAF11-\\uAF2B\\uAF2D-\\uAF47\\uAF49-\\uAF63\\uAF65-\\uAF7F\\uAF81-\\uAF9B\\uAF9D-\\uAFB7\\uAFB9-\\uAFD3\\uAFD5-\\uAFEF\\uAFF1-\\uB00B\\uB00D-\\uB027\\uB029-\\uB043\\uB045-\\uB05F\\uB061-\\uB07B\\uB07D-\\uB097\\uB099-\\uB0B3\\uB0B5-\\uB0CF\\uB0D1-\\uB0EB\\uB0ED-\\uB107\\uB109-\\uB123\\uB125-\\uB13F\\uB141-\\uB15B\\uB15D-\\uB177\\uB179-\\uB193\\uB195-\\uB1AF\\uB1B1-\\uB1CB\\uB1CD-\\uB1E7\\uB1E9-\\uB203\\uB205-\\uB21F\\uB221-\\uB23B\\uB23D-\\uB257\\uB259-\\uB273\\uB275-\\uB28F\\uB291-\\uB2AB\\uB2AD-\\uB2C7\\uB2C9-\\uB2E3\\uB2E5-\\uB2FF\\uB301-\\uB31B\\uB31D-\\uB337\\uB339-\\uB353\\uB355-\\uB36F\\uB371-\\uB38B\\uB38D-\\uB3A7\\uB3A9-\\uB3C3\\uB3C5-\\uB3DF\\uB3E1-\\uB3FB\\uB3FD-\\uB417\\uB419-\\uB433\\uB435-\\uB44F\\uB451-\\uB46B\\uB46D-\\uB487\\uB489-\\uB4A3\\uB4A5-\\uB4BF\\uB4C1-\\uB4DB\\uB4DD-\\uB4F7\\uB4F9-\\uB513\\uB515-\\uB52F\\uB531-\\uB54B\\uB54D-\\uB567\\uB569-\\uB583\\uB585-\\uB59F\\uB5A1-\\uB5BB\\uB5BD-\\uB5D7\\uB5D9-\\uB5F3\\uB5F5-\\uB60F\\uB611-\\uB62B\\uB62D-\\uB647\\uB649-\\uB663\\uB665-\\uB67F\\uB681-\\uB69B\\uB69D-\\uB6B7\\uB6B9-\\uB6D3\\uB6D5-\\uB6EF\\uB6F1-\\uB70B\\uB70D-\\uB727\\uB729-\\uB743\\uB745-\\uB75F\\uB761-\\uB77B\\uB77D-\\uB797\\uB799-\\uB7B3\\uB7B5-\\uB7CF\\uB7D1-\\uB7EB\\uB7ED-\\uB807\\uB809-\\uB823\\uB825-\\uB83F\\uB841-\\uB85B\\uB85D-\\uB877\\uB879-\\uB893\\uB895-\\uB8AF\\uB8B1-\\uB8CB\\uB8CD-\\uB8E7\\uB8E9-\\uB903\\uB905-\\uB91F\\uB921-\\uB93B\\uB93D-\\uB957\\uB959-\\uB973\\uB975-\\uB98F\\uB991-\\uB9AB\\uB9AD-\\uB9C7\\uB9C9-\\uB9E3\\uB9E5-\\uB9FF\\uBA01-\\uBA1B\\uBA1D-\\uBA37\\uBA39-\\uBA53\\uBA55-\\uBA6F\\uBA71-\\uBA8B\\uBA8D-\\uBAA7\\uBAA9-\\uBAC3\\uBAC5-\\uBADF\\uBAE1-\\uBAFB\\uBAFD-\\uBB17\\uBB19-\\uBB33\\uBB35-\\uBB4F\\uBB51-\\uBB6B\\uBB6D-\\uBB87\\uBB89-\\uBBA3\\uBBA5-\\uBBBF\\uBBC1-\\uBBDB\\uBBDD-\\uBBF7\\uBBF9-\\uBC13\\uBC15-\\uBC2F\\uBC31-\\uBC4B\\uBC4D-\\uBC67\\uBC69-\\uBC83\\uBC85-\\uBC9F\\uBCA1-\\uBCBB\\uBCBD-\\uBCD7\\uBCD9-\\uBCF3\\uBCF5-\\uBD0F\\uBD11-\\uBD2B\\uBD2D-\\uBD47\\uBD49-\\uBD63\\uBD65-\\uBD7F\\uBD81-\\uBD9B\\uBD9D-\\uBDB7\\uBDB9-\\uBDD3\\uBDD5-\\uBDEF\\uBDF1-\\uBE0B\\uBE0D-\\uBE27\\uBE29-\\uBE43\\uBE45-\\uBE5F\\uBE61-\\uBE7B\\uBE7D-\\uBE97\\uBE99-\\uBEB3\\uBEB5-\\uBECF\\uBED1-\\uBEEB\\uBEED-\\uBF07\\uBF09-\\uBF23\\uBF25-\\uBF3F\\uBF41-\\uBF5B\\uBF5D-\\uBF77\\uBF79-\\uBF93\\uBF95-\\uBFAF\\uBFB1-\\uBFCB\\uBFCD-\\uBFE7\\uBFE9-\\uC003\\uC005-\\uC01F\\uC021-\\uC03B\\uC03D-\\uC057\\uC059-\\uC073\\uC075-\\uC08F\\uC091-\\uC0AB\\uC0AD-\\uC0C7\\uC0C9-\\uC0E3\\uC0E5-\\uC0FF\\uC101-\\uC11B\\uC11D-\\uC137\\uC139-\\uC153\\uC155-\\uC16F\\uC171-\\uC18B\\uC18D-\\uC1A7\\uC1A9-\\uC1C3\\uC1C5-\\uC1DF\\uC1E1-\\uC1FB\\uC1FD-\\uC217\\uC219-\\uC233\\uC235-\\uC24F\\uC251-\\uC26B\\uC26D-\\uC287\\uC289-\\uC2A3\\uC2A5-\\uC2BF\\uC2C1-\\uC2DB\\uC2DD-\\uC2F7\\uC2F9-\\uC313\\uC315-\\uC32F\\uC331-\\uC34B\\uC34D-\\uC367\\uC369-\\uC383\\uC385-\\uC39F\\uC3A1-\\uC3BB\\uC3BD-\\uC3D7\\uC3D9-\\uC3F3\\uC3F5-\\uC40F\\uC411-\\uC42B\\uC42D-\\uC447\\uC449-\\uC463\\uC465-\\uC47F\\uC481-\\uC49B\\uC49D-\\uC4B7\\uC4B9-\\uC4D3\\uC4D5-\\uC4EF\\uC4F1-\\uC50B\\uC50D-\\uC527\\uC529-\\uC543\\uC545-\\uC55F\\uC561-\\uC57B\\uC57D-\\uC597\\uC599-\\uC5B3\\uC5B5-\\uC5CF\\uC5D1-\\uC5EB\\uC5ED-\\uC607\\uC609-\\uC623\\uC625-\\uC63F\\uC641-\\uC65B\\uC65D-\\uC677\\uC679-\\uC693\\uC695-\\uC6AF\\uC6B1-\\uC6CB\\uC6CD-\\uC6E7\\uC6E9-\\uC703\\uC705-\\uC71F\\uC721-\\uC73B\\uC73D-\\uC757\\uC759-\\uC773\\uC775-\\uC78F\\uC791-\\uC7AB\\uC7AD-\\uC7C7\\uC7C9-\\uC7E3\\uC7E5-\\uC7FF\\uC801-\\uC81B\\uC81D-\\uC837\\uC839-\\uC853\\uC855-\\uC86F\\uC871-\\uC88B\\uC88D-\\uC8A7\\uC8A9-\\uC8C3\\uC8C5-\\uC8DF\\uC8E1-\\uC8FB\\uC8FD-\\uC917\\uC919-\\uC933\\uC935-\\uC94F\\uC951-\\uC96B\\uC96D-\\uC987\\uC989-\\uC9A3\\uC9A5-\\uC9BF\\uC9C1-\\uC9DB\\uC9DD-\\uC9F7\\uC9F9-\\uCA13\\uCA15-\\uCA2F\\uCA31-\\uCA4B\\uCA4D-\\uCA67\\uCA69-\\uCA83\\uCA85-\\uCA9F\\uCAA1-\\uCABB\\uCABD-\\uCAD7\\uCAD9-\\uCAF3\\uCAF5-\\uCB0F\\uCB11-\\uCB2B\\uCB2D-\\uCB47\\uCB49-\\uCB63\\uCB65-\\uCB7F\\uCB81-\\uCB9B\\uCB9D-\\uCBB7\\uCBB9-\\uCBD3\\uCBD5-\\uCBEF\\uCBF1-\\uCC0B\\uCC0D-\\uCC27\\uCC29-\\uCC43\\uCC45-\\uCC5F\\uCC61-\\uCC7B\\uCC7D-\\uCC97\\uCC99-\\uCCB3\\uCCB5-\\uCCCF\\uCCD1-\\uCCEB\\uCCED-\\uCD07\\uCD09-\\uCD23\\uCD25-\\uCD3F\\uCD41-\\uCD5B\\uCD5D-\\uCD77\\uCD79-\\uCD93\\uCD95-\\uCDAF\\uCDB1-\\uCDCB\\uCDCD-\\uCDE7\\uCDE9-\\uCE03\\uCE05-\\uCE1F\\uCE21-\\uCE3B\\uCE3D-\\uCE57\\uCE59-\\uCE73\\uCE75-\\uCE8F\\uCE91-\\uCEAB\\uCEAD-\\uCEC7\\uCEC9-\\uCEE3\\uCEE5-\\uCEFF\\uCF01-\\uCF1B\\uCF1D-\\uCF37\\uCF39-\\uCF53\\uCF55-\\uCF6F\\uCF71-\\uCF8B\\uCF8D-\\uCFA7\\uCFA9-\\uCFC3\\uCFC5-\\uCFDF\\uCFE1-\\uCFFB\\uCFFD-\\uD017\\uD019-\\uD033\\uD035-\\uD04F\\uD051-\\uD06B\\uD06D-\\uD087\\uD089-\\uD0A3\\uD0A5-\\uD0BF\\uD0C1-\\uD0DB\\uD0DD-\\uD0F7\\uD0F9-\\uD113\\uD115-\\uD12F\\uD131-\\uD14B\\uD14D-\\uD167\\uD169-\\uD183\\uD185-\\uD19F\\uD1A1-\\uD1BB\\uD1BD-\\uD1D7\\uD1D9-\\uD1F3\\uD1F5-\\uD20F\\uD211-\\uD22B\\uD22D-\\uD247\\uD249-\\uD263\\uD265-\\uD27F\\uD281-\\uD29B\\uD29D-\\uD2B7\\uD2B9-\\uD2D3\\uD2D5-\\uD2EF\\uD2F1-\\uD30B\\uD30D-\\uD327\\uD329-\\uD343\\uD345-\\uD35F\\uD361-\\uD37B\\uD37D-\\uD397\\uD399-\\uD3B3\\uD3B5-\\uD3CF\\uD3D1-\\uD3EB\\uD3ED-\\uD407\\uD409-\\uD423\\uD425-\\uD43F\\uD441-\\uD45B\\uD45D-\\uD477\\uD479-\\uD493\\uD495-\\uD4AF\\uD4B1-\\uD4CB\\uD4CD-\\uD4E7\\uD4E9-\\uD503\\uD505-\\uD51F\\uD521-\\uD53B\\uD53D-\\uD557\\uD559-\\uD573\\uD575-\\uD58F\\uD591-\\uD5AB\\uD5AD-\\uD5C7\\uD5C9-\\uD5E3\\uD5E5-\\uD5FF\\uD601-\\uD61B\\uD61D-\\uD637\\uD639-\\uD653\\uD655-\\uD66F\\uD671-\\uD68B\\uD68D-\\uD6A7\\uD6A9-\\uD6C3\\uD6C5-\\uD6DF\\uD6E1-\\uD6FB\\uD6FD-\\uD717\\uD719-\\uD733\\uD735-\\uD74F\\uD751-\\uD76B\\uD76D-\\uD787\\uD789-\\uD7A3]$/;\nvar reExtPict = /^(?:[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u2388\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2605\\u2607-\\u2612\\u2614-\\u2685\\u2690-\\u2705\\u2708-\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763-\\u2767\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC00-\\uDCFF\\uDD0D-\\uDD0F\\uDD2F\\uDD6C-\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDAD-\\uDDE5\\uDE01-\\uDE0F\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE3C-\\uDE3F\\uDE49-\\uDFFA]|\\uD83D[\\uDC00-\\uDD3D\\uDD46-\\uDE4F\\uDE80-\\uDEFF\\uDF74-\\uDF7F\\uDFD5-\\uDFFF]|\\uD83E[\\uDC0C-\\uDC0F\\uDC48-\\uDC4F\\uDC5A-\\uDC5F\\uDC88-\\uDC8F\\uDCAE-\\uDCFF\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDEFF]|\\uD83F[\\uDC00-\\uDFFD])$/;\n\nvar getCodepointType = (char, code) => {\n var type = CodepointType.Any;\n\n if (char.search(reExtend) !== -1) {\n type |= CodepointType.Extend;\n }\n\n if (code === 0x200d) {\n type |= CodepointType.ZWJ;\n }\n\n if (code >= 0x1f1e6 && code <= 0x1f1ff) {\n type |= CodepointType.RI;\n }\n\n if (char.search(rePrepend) !== -1) {\n type |= CodepointType.Prepend;\n }\n\n if (char.search(reSpacingMark) !== -1) {\n type |= CodepointType.SpacingMark;\n }\n\n if (char.search(reL) !== -1) {\n type |= CodepointType.L;\n }\n\n if (char.search(reV) !== -1) {\n type |= CodepointType.V;\n }\n\n if (char.search(reT) !== -1) {\n type |= CodepointType.T;\n }\n\n if (char.search(reLV) !== -1) {\n type |= CodepointType.LV;\n }\n\n if (char.search(reLVT) !== -1) {\n type |= CodepointType.LVT;\n }\n\n if (char.search(reExtPict) !== -1) {\n type |= CodepointType.ExtPict;\n }\n\n return type;\n};\n\nfunction intersects(x, y) {\n return (x & y) !== 0;\n}\n\nvar NonBoundaryPairs = [// GB6\n[CodepointType.L, CodepointType.L | CodepointType.V | CodepointType.LV | CodepointType.LVT], // GB7\n[CodepointType.LV | CodepointType.V, CodepointType.V | CodepointType.T], // GB8\n[CodepointType.LVT | CodepointType.T, CodepointType.T], // GB9\n[CodepointType.Any, CodepointType.Extend | CodepointType.ZWJ], // GB9a\n[CodepointType.Any, CodepointType.SpacingMark], // GB9b\n[CodepointType.Prepend, CodepointType.Any], // GB11\n[CodepointType.ZWJ, CodepointType.ExtPict], // GB12 and GB13\n[CodepointType.RI, CodepointType.RI]];\n\nfunction isBoundaryPair(left, right) {\n return NonBoundaryPairs.findIndex(r => intersects(left, r[0]) && intersects(right, r[1])) === -1;\n}\n\nvar endingEmojiZWJ = /(?:[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u2388\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2605\\u2607-\\u2612\\u2614-\\u2685\\u2690-\\u2705\\u2708-\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763-\\u2767\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC00-\\uDCFF\\uDD0D-\\uDD0F\\uDD2F\\uDD6C-\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDAD-\\uDDE5\\uDE01-\\uDE0F\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE3C-\\uDE3F\\uDE49-\\uDFFA]|\\uD83D[\\uDC00-\\uDD3D\\uDD46-\\uDE4F\\uDE80-\\uDEFF\\uDF74-\\uDF7F\\uDFD5-\\uDFFF]|\\uD83E[\\uDC0C-\\uDC0F\\uDC48-\\uDC4F\\uDC5A-\\uDC5F\\uDC88-\\uDC8F\\uDCAE-\\uDCFF\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDEFF]|\\uD83F[\\uDC00-\\uDFFD])(?:[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09BE\\u09C1-\\u09C4\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3E\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE\\u0BC0\\u0BCD\\u0BD7\\u0C00\\u0C04\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC2\\u0CC6\\u0CCC\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D3E\\u0D41-\\u0D44\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81\\u0DCA\\u0DCF\\u0DD2-\\u0DD4\\u0DD6\\u0DDF\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1AC0\\u1B00-\\u1B03\\u1B34-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u200C\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA82C\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9BD\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFF9E\\uFF9F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDF46-\\uDF50]|\\uD804[\\uDC01\\uDC38-\\uDC46\\uDC7F-\\uDC81\\uDCB3-\\uDCB6\\uDCB9\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD2B\\uDD2D-\\uDD34\\uDD73\\uDD80\\uDD81\\uDDB6-\\uDDBE\\uDDC9-\\uDDCC\\uDDCF\\uDE2F-\\uDE31\\uDE34\\uDE36\\uDE37\\uDE3E\\uDEDF\\uDEE3-\\uDEEA\\uDF00\\uDF01\\uDF3B\\uDF3C\\uDF3E\\uDF40\\uDF57\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC38-\\uDC3F\\uDC42-\\uDC44\\uDC46\\uDC5E\\uDCB0\\uDCB3-\\uDCB8\\uDCBA\\uDCBD\\uDCBF\\uDCC0\\uDCC2\\uDCC3\\uDDAF\\uDDB2-\\uDDB5\\uDDBC\\uDDBD\\uDDBF\\uDDC0\\uDDDC\\uDDDD\\uDE33-\\uDE3A\\uDE3D\\uDE3F\\uDE40\\uDEAB\\uDEAD\\uDEB0-\\uDEB5\\uDEB7\\uDF1D-\\uDF1F\\uDF22-\\uDF25\\uDF27-\\uDF2B]|\\uD806[\\uDC2F-\\uDC37\\uDC39\\uDC3A\\uDD30\\uDD3B\\uDD3C\\uDD3E\\uDD43\\uDDD4-\\uDDD7\\uDDDA\\uDDDB\\uDDE0\\uDE01-\\uDE0A\\uDE33-\\uDE38\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE56\\uDE59-\\uDE5B\\uDE8A-\\uDE96\\uDE98\\uDE99]|\\uD807[\\uDC30-\\uDC36\\uDC38-\\uDC3D\\uDC3F\\uDC92-\\uDCA7\\uDCAA-\\uDCB0\\uDCB2\\uDCB3\\uDCB5\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD90\\uDD91\\uDD95\\uDD97\\uDEF3\\uDEF4]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF8F-\\uDF92\\uDFE4]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65\\uDD67-\\uDD69\\uDD6E-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDD30-\\uDD36\\uDEEC-\\uDEEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*\\u200D$/;\n\nvar endsWithEmojiZWJ = str => {\n return str.search(endingEmojiZWJ) !== -1;\n};\n\nvar endingRIs = /(?:\\uD83C[\\uDDE6-\\uDDFF])+$/g;\n\nvar endsWithOddNumberOfRIs = str => {\n var match = str.match(endingRIs);\n\n if (match === null) {\n return false;\n } else {\n // A RI is represented by a surrogate pair.\n var numRIs = match[0].length / 2;\n return numRIs % 2 === 1;\n }\n};\n\nvar TextTransforms = {\n delete(editor, options) {\n editor.delete(options);\n },\n\n insertFragment(editor, fragment, options) {\n editor.insertFragment(fragment, options);\n },\n\n insertText(editor, text) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n voids = false\n } = options;\n var {\n at = getDefaultInsertLocation(editor)\n } = options;\n\n if (Path.isPath(at)) {\n at = Editor.range(editor, at);\n }\n\n if (Range.isRange(at)) {\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var end = Range.end(at);\n\n if (!voids && Editor.void(editor, {\n at: end\n })) {\n return;\n }\n\n var start = Range.start(at);\n var startRef = Editor.pointRef(editor, start);\n var endRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at,\n voids\n });\n var startPoint = startRef.unref();\n var endPoint = endRef.unref();\n at = startPoint || endPoint;\n Transforms.setSelection(editor, {\n anchor: at,\n focus: at\n });\n }\n }\n\n if (!voids && Editor.void(editor, {\n at\n }) || Editor.elementReadOnly(editor, {\n at\n })) {\n return;\n }\n\n var {\n path,\n offset\n } = at;\n if (text.length > 0) editor.apply({\n type: 'insert_text',\n path,\n offset,\n text\n });\n });\n }\n\n};\n\nfunction ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$9(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar Transforms = _objectSpread$9(_objectSpread$9(_objectSpread$9(_objectSpread$9({}, GeneralTransforms), NodeTransforms), SelectionTransforms), TextTransforms);\n\nvar apply = (editor, op) => {\n for (var ref of Editor.pathRefs(editor)) {\n PathRef.transform(ref, op);\n }\n\n for (var _ref of Editor.pointRefs(editor)) {\n PointRef.transform(_ref, op);\n }\n\n for (var _ref2 of Editor.rangeRefs(editor)) {\n RangeRef.transform(_ref2, op);\n }\n\n var oldDirtyPaths = DIRTY_PATHS.get(editor) || [];\n var oldDirtyPathKeys = DIRTY_PATH_KEYS.get(editor) || new Set();\n var dirtyPaths;\n var dirtyPathKeys;\n\n var add = path => {\n if (path) {\n var key = path.join(',');\n\n if (!dirtyPathKeys.has(key)) {\n dirtyPathKeys.add(key);\n dirtyPaths.push(path);\n }\n }\n };\n\n if (Path.operationCanTransformPath(op)) {\n dirtyPaths = [];\n dirtyPathKeys = new Set();\n\n for (var path of oldDirtyPaths) {\n var newPath = Path.transform(path, op);\n add(newPath);\n }\n } else {\n dirtyPaths = oldDirtyPaths;\n dirtyPathKeys = oldDirtyPathKeys;\n }\n\n var newDirtyPaths = editor.getDirtyPaths(op);\n\n for (var _path of newDirtyPaths) {\n add(_path);\n }\n\n DIRTY_PATHS.set(editor, dirtyPaths);\n DIRTY_PATH_KEYS.set(editor, dirtyPathKeys);\n Transforms.transform(editor, op);\n editor.operations.push(op);\n Editor.normalize(editor, {\n operation: op\n }); // Clear any formats applied to the cursor if the selection changes.\n\n if (op.type === 'set_selection') {\n editor.marks = null;\n }\n\n if (!FLUSHING.get(editor)) {\n FLUSHING.set(editor, true);\n Promise.resolve().then(() => {\n FLUSHING.set(editor, false);\n editor.onChange({\n operation: op\n });\n editor.operations = [];\n });\n }\n};\n\n/**\r\n * Get the \"dirty\" paths generated from an operation.\r\n */\n\nvar getDirtyPaths = (editor, op) => {\n switch (op.type) {\n case 'insert_text':\n case 'remove_text':\n case 'set_node':\n {\n var {\n path\n } = op;\n return Path.levels(path);\n }\n\n case 'insert_node':\n {\n var {\n node,\n path: _path\n } = op;\n var levels = Path.levels(_path);\n var descendants = Text.isText(node) ? [] : Array.from(Node.nodes(node), _ref => {\n var [, p] = _ref;\n return _path.concat(p);\n });\n return [...levels, ...descendants];\n }\n\n case 'merge_node':\n {\n var {\n path: _path2\n } = op;\n var ancestors = Path.ancestors(_path2);\n var previousPath = Path.previous(_path2);\n return [...ancestors, previousPath];\n }\n\n case 'move_node':\n {\n var {\n path: _path3,\n newPath\n } = op;\n\n if (Path.equals(_path3, newPath)) {\n return [];\n }\n\n var oldAncestors = [];\n var newAncestors = [];\n\n for (var ancestor of Path.ancestors(_path3)) {\n var p = Path.transform(ancestor, op);\n oldAncestors.push(p);\n }\n\n for (var _ancestor of Path.ancestors(newPath)) {\n var _p = Path.transform(_ancestor, op);\n\n newAncestors.push(_p);\n }\n\n var newParent = newAncestors[newAncestors.length - 1];\n var newIndex = newPath[newPath.length - 1];\n var resultPath = newParent.concat(newIndex);\n return [...oldAncestors, ...newAncestors, resultPath];\n }\n\n case 'remove_node':\n {\n var {\n path: _path4\n } = op;\n\n var _ancestors = Path.ancestors(_path4);\n\n return [..._ancestors];\n }\n\n case 'split_node':\n {\n var {\n path: _path5\n } = op;\n\n var _levels = Path.levels(_path5);\n\n var nextPath = Path.next(_path5);\n return [..._levels, nextPath];\n }\n\n default:\n {\n return [];\n }\n }\n};\n\nvar getFragment = editor => {\n var {\n selection\n } = editor;\n\n if (selection) {\n return Node.fragment(editor, selection);\n }\n\n return [];\n};\n\nvar normalizeNode = (editor, entry) => {\n var [node, path] = entry; // There are no core normalizations for text nodes.\n\n if (Text.isText(node)) {\n return;\n } // Ensure that block and inline nodes have at least one text child.\n\n\n if (Element.isElement(node) && node.children.length === 0) {\n var child = {\n text: ''\n };\n Transforms.insertNodes(editor, child, {\n at: path.concat(0),\n voids: true\n });\n return;\n } // Determine whether the node should have block or inline children.\n\n\n var shouldHaveInlines = Editor.isEditor(node) ? false : Element.isElement(node) && (editor.isInline(node) || node.children.length === 0 || Text.isText(node.children[0]) || editor.isInline(node.children[0])); // Since we'll be applying operations while iterating, keep track of an\n // index that accounts for any added/removed nodes.\n\n var n = 0;\n\n for (var i = 0; i < node.children.length; i++, n++) {\n var currentNode = Node.get(editor, path);\n if (Text.isText(currentNode)) continue;\n var _child = currentNode.children[n];\n var prev = currentNode.children[n - 1];\n var isLast = i === node.children.length - 1;\n var isInlineOrText = Text.isText(_child) || Element.isElement(_child) && editor.isInline(_child); // Only allow block nodes in the top-level children and parent blocks\n // that only contain block nodes. Similarly, only allow inline nodes in\n // other inline nodes, or parent blocks that only contain inlines and\n // text.\n\n if (isInlineOrText !== shouldHaveInlines) {\n Transforms.removeNodes(editor, {\n at: path.concat(n),\n voids: true\n });\n n--;\n } else if (Element.isElement(_child)) {\n // Ensure that inline nodes are surrounded by text nodes.\n if (editor.isInline(_child)) {\n if (prev == null || !Text.isText(prev)) {\n var newChild = {\n text: ''\n };\n Transforms.insertNodes(editor, newChild, {\n at: path.concat(n),\n voids: true\n });\n n++;\n } else if (isLast) {\n var _newChild = {\n text: ''\n };\n Transforms.insertNodes(editor, _newChild, {\n at: path.concat(n + 1),\n voids: true\n });\n n++;\n }\n }\n } else {\n // Merge adjacent text nodes that are empty or match.\n if (prev != null && Text.isText(prev)) {\n if (Text.equals(_child, prev, {\n loose: true\n })) {\n Transforms.mergeNodes(editor, {\n at: path.concat(n),\n voids: true\n });\n n--;\n } else if (prev.text === '') {\n Transforms.removeNodes(editor, {\n at: path.concat(n - 1),\n voids: true\n });\n n--;\n } else if (_child.text === '') {\n Transforms.removeNodes(editor, {\n at: path.concat(n),\n voids: true\n });\n n--;\n }\n }\n }\n }\n};\n\nvar shouldNormalize = (editor, _ref) => {\n var {\n iteration,\n initialDirtyPathsLength\n } = _ref;\n var maxIterations = initialDirtyPathsLength * 42; // HACK: better way?\n\n if (iteration > maxIterations) {\n throw new Error(\"Could not completely normalize the editor after \".concat(maxIterations, \" iterations! This is usually due to incorrect normalization logic that leaves a node in an invalid state.\"));\n }\n\n return true;\n};\n\nvar above = function above(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n voids = false,\n mode = 'lowest',\n at = editor.selection,\n match\n } = options;\n\n if (!at) {\n return;\n }\n\n var path = Editor.path(editor, at);\n var reverse = mode === 'lowest';\n\n for (var [n, p] of Editor.levels(editor, {\n at: path,\n voids,\n match,\n reverse\n })) {\n if (Text.isText(n)) continue;\n\n if (Range.isRange(at)) {\n if (Path.isAncestor(p, at.anchor.path) && Path.isAncestor(p, at.focus.path)) {\n return [n, p];\n }\n } else {\n if (!Path.equals(path, p)) {\n return [n, p];\n }\n }\n }\n};\n\nfunction ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$8(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar addMark = (editor, key, value) => {\n var {\n selection\n } = editor;\n\n if (selection) {\n var match = (node, path) => {\n if (!Text.isText(node)) {\n return false; // marks can only be applied to text\n }\n\n var [parentNode, parentPath] = Editor.parent(editor, path);\n return !editor.isVoid(parentNode) || editor.markableVoid(parentNode);\n };\n\n var expandedSelection = Range.isExpanded(selection);\n var markAcceptingVoidSelected = false;\n\n if (!expandedSelection) {\n var [selectedNode, selectedPath] = Editor.node(editor, selection);\n\n if (selectedNode && match(selectedNode, selectedPath)) {\n var [parentNode] = Editor.parent(editor, selectedPath);\n markAcceptingVoidSelected = parentNode && editor.markableVoid(parentNode);\n }\n }\n\n if (expandedSelection || markAcceptingVoidSelected) {\n Transforms.setNodes(editor, {\n [key]: value\n }, {\n match,\n split: true,\n voids: true\n });\n } else {\n var marks = _objectSpread$8(_objectSpread$8({}, Editor.marks(editor) || {}), {}, {\n [key]: value\n });\n\n editor.marks = marks;\n\n if (!FLUSHING.get(editor)) {\n editor.onChange();\n }\n }\n }\n};\n\nfunction ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar after = function after(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var anchor = Editor.point(editor, at, {\n edge: 'end'\n });\n var focus = Editor.end(editor, []);\n var range = {\n anchor,\n focus\n };\n var {\n distance = 1\n } = options;\n var d = 0;\n var target;\n\n for (var p of Editor.positions(editor, _objectSpread$7(_objectSpread$7({}, options), {}, {\n at: range\n }))) {\n if (d > distance) {\n break;\n }\n\n if (d !== 0) {\n target = p;\n }\n\n d++;\n }\n\n return target;\n};\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar before = function before(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var anchor = Editor.start(editor, []);\n var focus = Editor.point(editor, at, {\n edge: 'start'\n });\n var range = {\n anchor,\n focus\n };\n var {\n distance = 1\n } = options;\n var d = 0;\n var target;\n\n for (var p of Editor.positions(editor, _objectSpread$6(_objectSpread$6({}, options), {}, {\n at: range,\n reverse: true\n }))) {\n if (d > distance) {\n break;\n }\n\n if (d !== 0) {\n target = p;\n }\n\n d++;\n }\n\n return target;\n};\n\nvar deleteBackward = (editor, unit) => {\n var {\n selection\n } = editor;\n\n if (selection && Range.isCollapsed(selection)) {\n Transforms.delete(editor, {\n unit,\n reverse: true\n });\n }\n};\n\nvar deleteForward = (editor, unit) => {\n var {\n selection\n } = editor;\n\n if (selection && Range.isCollapsed(selection)) {\n Transforms.delete(editor, {\n unit\n });\n }\n};\n\nvar deleteFragment = function deleteFragment(editor) {\n var {\n direction = 'forward'\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n selection\n } = editor;\n\n if (selection && Range.isExpanded(selection)) {\n Transforms.delete(editor, {\n reverse: direction === 'backward'\n });\n }\n};\n\nvar edges = (editor, at) => {\n return [Editor.start(editor, at), Editor.end(editor, at)];\n};\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar elementReadOnly = function elementReadOnly(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Editor.above(editor, _objectSpread$5(_objectSpread$5({}, options), {}, {\n match: n => Element.isElement(n) && Editor.isElementReadOnly(editor, n)\n }));\n};\n\nvar end = (editor, at) => {\n return Editor.point(editor, at, {\n edge: 'end'\n });\n};\n\nvar first = (editor, at) => {\n var path = Editor.path(editor, at, {\n edge: 'start'\n });\n return Editor.node(editor, path);\n};\n\nvar fragment = (editor, at) => {\n var range = Editor.range(editor, at);\n return Node.fragment(editor, range);\n};\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar getVoid = function getVoid(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Editor.above(editor, _objectSpread$4(_objectSpread$4({}, options), {}, {\n match: n => Element.isElement(n) && Editor.isVoid(editor, n)\n }));\n};\n\nvar hasBlocks = (editor, element) => {\n return element.children.some(n => Element.isElement(n) && Editor.isBlock(editor, n));\n};\n\nvar hasInlines = (editor, element) => {\n return element.children.some(n => Text.isText(n) || Editor.isInline(editor, n));\n};\n\nvar hasPath = (editor, path) => {\n return Node.has(editor, path);\n};\n\nvar hasTexts = (editor, element) => {\n return element.children.every(n => Text.isText(n));\n};\n\nvar insertBreak = editor => {\n Transforms.splitNodes(editor, {\n always: true\n });\n};\n\nvar insertNode = (editor, node, options) => {\n Transforms.insertNodes(editor, node, options);\n};\n\nvar insertSoftBreak = editor => {\n Transforms.splitNodes(editor, {\n always: true\n });\n};\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar insertText = function insertText(editor, text) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n selection,\n marks\n } = editor;\n\n if (selection) {\n if (marks) {\n var node = _objectSpread$3({\n text\n }, marks);\n\n Transforms.insertNodes(editor, node, {\n at: options.at,\n voids: options.voids\n });\n } else {\n Transforms.insertText(editor, text, options);\n }\n\n editor.marks = null;\n }\n};\n\nvar isBlock = (editor, value) => {\n return !editor.isInline(value);\n};\n\nvar isEdge = (editor, point, at) => {\n return Editor.isStart(editor, point, at) || Editor.isEnd(editor, point, at);\n};\n\nvar isEmpty = (editor, element) => {\n var {\n children\n } = element;\n var [first] = children;\n return children.length === 0 || children.length === 1 && Text.isText(first) && first.text === '' && !editor.isVoid(element);\n};\n\nvar isEnd = (editor, point, at) => {\n var end = Editor.end(editor, at);\n return Point.equals(point, end);\n};\n\nvar isNormalizing = editor => {\n var isNormalizing = NORMALIZING.get(editor);\n return isNormalizing === undefined ? true : isNormalizing;\n};\n\nvar isStart = (editor, point, at) => {\n // PERF: If the offset isn't `0` we know it's not the start.\n if (point.offset !== 0) {\n return false;\n }\n\n var start = Editor.start(editor, at);\n return Point.equals(point, start);\n};\n\nvar last = (editor, at) => {\n var path = Editor.path(editor, at, {\n edge: 'end'\n });\n return Editor.node(editor, path);\n};\n\nvar leaf = function leaf(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = Editor.path(editor, at, options);\n var node = Node.leaf(editor, path);\n return [node, path];\n};\n\nfunction* levels(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n at = editor.selection,\n reverse = false,\n voids = false\n } = options;\n var {\n match\n } = options;\n\n if (match == null) {\n match = () => true;\n }\n\n if (!at) {\n return;\n }\n\n var levels = [];\n var path = Editor.path(editor, at);\n\n for (var [n, p] of Node.levels(editor, path)) {\n if (!match(n, p)) {\n continue;\n }\n\n levels.push([n, p]);\n\n if (!voids && Element.isElement(n) && Editor.isVoid(editor, n)) {\n break;\n }\n }\n\n if (reverse) {\n levels.reverse();\n }\n\n yield* levels;\n}\n\nvar _excluded$1 = [\"text\"],\n _excluded2$1 = [\"text\"];\nvar marks = function marks(editor) {\n var {\n marks,\n selection\n } = editor;\n\n if (!selection) {\n return null;\n }\n\n if (marks) {\n return marks;\n }\n\n if (Range.isExpanded(selection)) {\n var [match] = Editor.nodes(editor, {\n match: Text.isText\n });\n\n if (match) {\n var [_node] = match;\n\n var _rest = _objectWithoutProperties(_node, _excluded$1);\n\n return _rest;\n } else {\n return {};\n }\n }\n\n var {\n anchor\n } = selection;\n var {\n path\n } = anchor;\n var [node] = Editor.leaf(editor, path);\n\n if (anchor.offset === 0) {\n var prev = Editor.previous(editor, {\n at: path,\n match: Text.isText\n });\n var markedVoid = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isVoid(editor, n) && editor.markableVoid(n)\n });\n\n if (!markedVoid) {\n var block = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n)\n });\n\n if (prev && block) {\n var [prevNode, prevPath] = prev;\n var [, blockPath] = block;\n\n if (Path.isAncestor(blockPath, prevPath)) {\n node = prevNode;\n }\n }\n }\n }\n\n var rest = _objectWithoutProperties(node, _excluded2$1);\n\n return rest;\n};\n\nvar next = function next(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match,\n at = editor.selection\n } = options;\n\n if (!at) {\n return;\n }\n\n var pointAfterLocation = Editor.after(editor, at, {\n voids\n });\n if (!pointAfterLocation) return;\n var [, to] = Editor.last(editor, []);\n var span = [pointAfterLocation.path, to];\n\n if (Path.isPath(at) && at.length === 0) {\n throw new Error(\"Cannot get the next node from the root node!\");\n }\n\n if (match == null) {\n if (Path.isPath(at)) {\n var [parent] = Editor.parent(editor, at);\n\n match = n => parent.children.includes(n);\n } else {\n match = () => true;\n }\n }\n\n var [next] = Editor.nodes(editor, {\n at: span,\n match,\n mode,\n voids\n });\n return next;\n};\n\nvar node = function node(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = Editor.path(editor, at, options);\n var node = Node.get(editor, path);\n return [node, path];\n};\n\nfunction* nodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n at = editor.selection,\n mode = 'all',\n universal = false,\n reverse = false,\n voids = false,\n ignoreNonSelectable = false\n } = options;\n var {\n match\n } = options;\n\n if (!match) {\n match = () => true;\n }\n\n if (!at) {\n return;\n }\n\n var from;\n var to;\n\n if (Span.isSpan(at)) {\n from = at[0];\n to = at[1];\n } else {\n var first = Editor.path(editor, at, {\n edge: 'start'\n });\n var last = Editor.path(editor, at, {\n edge: 'end'\n });\n from = reverse ? last : first;\n to = reverse ? first : last;\n }\n\n var nodeEntries = Node.nodes(editor, {\n reverse,\n from,\n to,\n pass: _ref => {\n var [node] = _ref;\n if (!Element.isElement(node)) return false;\n if (!voids && (Editor.isVoid(editor, node) || Editor.isElementReadOnly(editor, node))) return true;\n if (ignoreNonSelectable && !Editor.isSelectable(editor, node)) return true;\n return false;\n }\n });\n var matches = [];\n var hit;\n\n for (var [node, path] of nodeEntries) {\n if (ignoreNonSelectable && Element.isElement(node) && !Editor.isSelectable(editor, node)) {\n continue;\n }\n\n var isLower = hit && Path.compare(path, hit[1]) === 0; // In highest mode any node lower than the last hit is not a match.\n\n if (mode === 'highest' && isLower) {\n continue;\n }\n\n if (!match(node, path)) {\n // If we've arrived at a leaf text node that is not lower than the last\n // hit, then we've found a branch that doesn't include a match, which\n // means the match is not universal.\n if (universal && !isLower && Text.isText(node)) {\n return;\n } else {\n continue;\n }\n } // If there's a match and it's lower than the last, update the hit.\n\n\n if (mode === 'lowest' && isLower) {\n hit = [node, path];\n continue;\n } // In lowest mode we emit the last hit, once it's guaranteed lowest.\n\n\n var emit = mode === 'lowest' ? hit : [node, path];\n\n if (emit) {\n if (universal) {\n matches.push(emit);\n } else {\n yield emit;\n }\n }\n\n hit = [node, path];\n } // Since lowest is always emitting one behind, catch up at the end.\n\n\n if (mode === 'lowest' && hit) {\n if (universal) {\n matches.push(hit);\n } else {\n yield hit;\n }\n } // Universal defers to ensure that the match occurs in every branch, so we\n // yield all of the matches after iterating.\n\n\n if (universal) {\n yield* matches;\n }\n}\n\nvar normalize = function normalize(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n force = false,\n operation\n } = options;\n\n var getDirtyPaths = editor => {\n return DIRTY_PATHS.get(editor) || [];\n };\n\n var getDirtyPathKeys = editor => {\n return DIRTY_PATH_KEYS.get(editor) || new Set();\n };\n\n var popDirtyPath = editor => {\n var path = getDirtyPaths(editor).pop();\n var key = path.join(',');\n getDirtyPathKeys(editor).delete(key);\n return path;\n };\n\n if (!Editor.isNormalizing(editor)) {\n return;\n }\n\n if (force) {\n var allPaths = Array.from(Node.nodes(editor), _ref => {\n var [, p] = _ref;\n return p;\n });\n var allPathKeys = new Set(allPaths.map(p => p.join(',')));\n DIRTY_PATHS.set(editor, allPaths);\n DIRTY_PATH_KEYS.set(editor, allPathKeys);\n }\n\n if (getDirtyPaths(editor).length === 0) {\n return;\n }\n\n Editor.withoutNormalizing(editor, () => {\n /*\r\n Fix dirty elements with no children.\r\n editor.normalizeNode() does fix this, but some normalization fixes also require it to work.\r\n Running an initial pass avoids the catch-22 race condition.\r\n */\n for (var dirtyPath of getDirtyPaths(editor)) {\n if (Node.has(editor, dirtyPath)) {\n var entry = Editor.node(editor, dirtyPath);\n var [node, _] = entry;\n /*\r\n The default normalizer inserts an empty text node in this scenario, but it can be customised.\r\n So there is some risk here.\r\n As long as the normalizer only inserts child nodes for this case it is safe to do in any order;\r\n by definition adding children to an empty node can't cause other paths to change.\r\n */\n\n if (Element.isElement(node) && node.children.length === 0) {\n editor.normalizeNode(entry, {\n operation\n });\n }\n }\n }\n\n var dirtyPaths = getDirtyPaths(editor);\n var initialDirtyPathsLength = dirtyPaths.length;\n var iteration = 0;\n\n while (dirtyPaths.length !== 0) {\n if (!editor.shouldNormalize({\n dirtyPaths,\n iteration,\n initialDirtyPathsLength,\n operation\n })) {\n return;\n }\n\n var _dirtyPath = popDirtyPath(editor); // If the node doesn't exist in the tree, it does not need to be normalized.\n\n\n if (Node.has(editor, _dirtyPath)) {\n var _entry = Editor.node(editor, _dirtyPath);\n\n editor.normalizeNode(_entry, {\n operation\n });\n }\n\n iteration++;\n dirtyPaths = getDirtyPaths(editor);\n }\n });\n};\n\nvar parent = function parent(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = Editor.path(editor, at, options);\n var parentPath = Path.parent(path);\n var entry = Editor.node(editor, parentPath);\n return entry;\n};\n\nvar pathRef = function pathRef(editor, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n affinity = 'forward'\n } = options;\n var ref = {\n current: path,\n affinity,\n\n unref() {\n var {\n current\n } = ref;\n var pathRefs = Editor.pathRefs(editor);\n pathRefs.delete(ref);\n ref.current = null;\n return current;\n }\n\n };\n var refs = Editor.pathRefs(editor);\n refs.add(ref);\n return ref;\n};\n\nvar pathRefs = editor => {\n var refs = PATH_REFS.get(editor);\n\n if (!refs) {\n refs = new Set();\n PATH_REFS.set(editor, refs);\n }\n\n return refs;\n};\n\nvar path = function path(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n depth,\n edge\n } = options;\n\n if (Path.isPath(at)) {\n if (edge === 'start') {\n var [, firstPath] = Node.first(editor, at);\n at = firstPath;\n } else if (edge === 'end') {\n var [, lastPath] = Node.last(editor, at);\n at = lastPath;\n }\n }\n\n if (Range.isRange(at)) {\n if (edge === 'start') {\n at = Range.start(at);\n } else if (edge === 'end') {\n at = Range.end(at);\n } else {\n at = Path.common(at.anchor.path, at.focus.path);\n }\n }\n\n if (Point.isPoint(at)) {\n at = at.path;\n }\n\n if (depth != null) {\n at = at.slice(0, depth);\n }\n\n return at;\n};\n\nvar pointRef = function pointRef(editor, point) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n affinity = 'forward'\n } = options;\n var ref = {\n current: point,\n affinity,\n\n unref() {\n var {\n current\n } = ref;\n var pointRefs = Editor.pointRefs(editor);\n pointRefs.delete(ref);\n ref.current = null;\n return current;\n }\n\n };\n var refs = Editor.pointRefs(editor);\n refs.add(ref);\n return ref;\n};\n\nvar pointRefs = editor => {\n var refs = POINT_REFS.get(editor);\n\n if (!refs) {\n refs = new Set();\n POINT_REFS.set(editor, refs);\n }\n\n return refs;\n};\n\nvar point = function point(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n edge = 'start'\n } = options;\n\n if (Path.isPath(at)) {\n var path;\n\n if (edge === 'end') {\n var [, lastPath] = Node.last(editor, at);\n path = lastPath;\n } else {\n var [, firstPath] = Node.first(editor, at);\n path = firstPath;\n }\n\n var node = Node.get(editor, path);\n\n if (!Text.isText(node)) {\n throw new Error(\"Cannot get the \".concat(edge, \" point in the node at path [\").concat(at, \"] because it has no \").concat(edge, \" text node.\"));\n }\n\n return {\n path,\n offset: edge === 'end' ? node.text.length : 0\n };\n }\n\n if (Range.isRange(at)) {\n var [start, end] = Range.edges(at);\n return edge === 'start' ? start : end;\n }\n\n return at;\n};\n\nfunction* positions(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n at = editor.selection,\n unit = 'offset',\n reverse = false,\n voids = false,\n ignoreNonSelectable = false\n } = options;\n\n if (!at) {\n return;\n }\n /**\r\n * Algorithm notes:\r\n *\r\n * Each step `distance` is dynamic depending on the underlying text\r\n * and the `unit` specified. Each step, e.g., a line or word, may\r\n * span multiple text nodes, so we iterate through the text both on\r\n * two levels in step-sync:\r\n *\r\n * `leafText` stores the text on a text leaf level, and is advanced\r\n * through using the counters `leafTextOffset` and `leafTextRemaining`.\r\n *\r\n * `blockText` stores the text on a block level, and is shortened\r\n * by `distance` every time it is advanced.\r\n *\r\n * We only maintain a window of one blockText and one leafText because\r\n * a block node always appears before all of its leaf nodes.\r\n */\n\n\n var range = Editor.range(editor, at);\n var [start, end] = Range.edges(range);\n var first = reverse ? end : start;\n var isNewBlock = false;\n var blockText = '';\n var distance = 0; // Distance for leafText to catch up to blockText.\n\n var leafTextRemaining = 0;\n var leafTextOffset = 0; // Iterate through all nodes in range, grabbing entire textual content\n // of block nodes in blockText, and text nodes in leafText.\n // Exploits the fact that nodes are sequenced in such a way that we first\n // encounter the block node, then all of its text nodes, so when iterating\n // through the blockText and leafText we just need to remember a window of\n // one block node and leaf node, respectively.\n\n for (var [node, path] of Editor.nodes(editor, {\n at,\n reverse,\n voids,\n ignoreNonSelectable\n })) {\n /*\r\n * ELEMENT NODE - Yield position(s) for voids, collect blockText for blocks\r\n */\n if (Element.isElement(node)) {\n // Void nodes are a special case, so by default we will always\n // yield their first point. If the `voids` option is set to true,\n // then we will iterate over their content.\n if (!voids && (editor.isVoid(node) || editor.isElementReadOnly(node))) {\n yield Editor.start(editor, path);\n continue;\n } // Inline element nodes are ignored as they don't themselves\n // contribute to `blockText` or `leafText` - their parent and\n // children do.\n\n\n if (editor.isInline(node)) continue; // Block element node - set `blockText` to its text content.\n\n if (Editor.hasInlines(editor, node)) {\n // We always exhaust block nodes before encountering a new one:\n // console.assert(blockText === '',\n // `blockText='${blockText}' - `+\n // `not exhausted before new block node`, path)\n // Ensure range considered is capped to `range`, in the\n // start/end edge cases where block extends beyond range.\n // Equivalent to this, but presumably more performant:\n // blockRange = Editor.range(editor, ...Editor.edges(editor, path))\n // blockRange = Range.intersection(range, blockRange) // intersect\n // blockText = Editor.string(editor, blockRange, { voids })\n var e = Path.isAncestor(path, end.path) ? end : Editor.end(editor, path);\n var s = Path.isAncestor(path, start.path) ? start : Editor.start(editor, path);\n blockText = Editor.string(editor, {\n anchor: s,\n focus: e\n }, {\n voids\n });\n isNewBlock = true;\n }\n }\n /*\r\n * TEXT LEAF NODE - Iterate through text content, yielding\r\n * positions every `distance` offset according to `unit`.\r\n */\n\n\n if (Text.isText(node)) {\n var isFirst = Path.equals(path, first.path); // Proof that we always exhaust text nodes before encountering a new one:\n // console.assert(leafTextRemaining <= 0,\n // `leafTextRemaining=${leafTextRemaining} - `+\n // `not exhausted before new leaf text node`, path)\n // Reset `leafText` counters for new text node.\n\n if (isFirst) {\n leafTextRemaining = reverse ? first.offset : node.text.length - first.offset;\n leafTextOffset = first.offset; // Works for reverse too.\n } else {\n leafTextRemaining = node.text.length;\n leafTextOffset = reverse ? leafTextRemaining : 0;\n } // Yield position at the start of node (potentially).\n\n\n if (isFirst || isNewBlock || unit === 'offset') {\n yield {\n path,\n offset: leafTextOffset\n };\n isNewBlock = false;\n } // Yield positions every (dynamically calculated) `distance` offset.\n\n\n while (true) {\n // If `leafText` has caught up with `blockText` (distance=0),\n // and if blockText is exhausted, break to get another block node,\n // otherwise advance blockText forward by the new `distance`.\n if (distance === 0) {\n if (blockText === '') break;\n distance = calcDistance(blockText, unit, reverse); // Split the string at the previously found distance and use the\n // remaining string for the next iteration.\n\n blockText = splitByCharacterDistance(blockText, distance, reverse)[1];\n } // Advance `leafText` by the current `distance`.\n\n\n leafTextOffset = reverse ? leafTextOffset - distance : leafTextOffset + distance;\n leafTextRemaining = leafTextRemaining - distance; // If `leafText` is exhausted, break to get a new leaf node\n // and set distance to the overflow amount, so we'll (maybe)\n // catch up to blockText in the next leaf text node.\n\n if (leafTextRemaining < 0) {\n distance = -leafTextRemaining;\n break;\n } // Successfully walked `distance` offsets through `leafText`\n // to catch up with `blockText`, so we can reset `distance`\n // and yield this position in this node.\n\n\n distance = 0;\n yield {\n path,\n offset: leafTextOffset\n };\n }\n }\n } // Proof that upon completion, we've exahusted both leaf and block text:\n // console.assert(leafTextRemaining <= 0, \"leafText wasn't exhausted\")\n // console.assert(blockText === '', \"blockText wasn't exhausted\")\n // Helper:\n // Return the distance in offsets for a step of size `unit` on given string.\n\n\n function calcDistance(text, unit, reverse) {\n if (unit === 'character') {\n return getCharacterDistance(text, reverse);\n } else if (unit === 'word') {\n return getWordDistance(text, reverse);\n } else if (unit === 'line' || unit === 'block') {\n return text.length;\n }\n\n return 1;\n }\n}\n\nvar previous = function previous(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match,\n at = editor.selection\n } = options;\n\n if (!at) {\n return;\n }\n\n var pointBeforeLocation = Editor.before(editor, at, {\n voids\n });\n\n if (!pointBeforeLocation) {\n return;\n }\n\n var [, to] = Editor.first(editor, []); // The search location is from the start of the document to the path of\n // the point before the location passed in\n\n var span = [pointBeforeLocation.path, to];\n\n if (Path.isPath(at) && at.length === 0) {\n throw new Error(\"Cannot get the previous node from the root node!\");\n }\n\n if (match == null) {\n if (Path.isPath(at)) {\n var [parent] = Editor.parent(editor, at);\n\n match = n => parent.children.includes(n);\n } else {\n match = () => true;\n }\n }\n\n var [previous] = Editor.nodes(editor, {\n reverse: true,\n at: span,\n match,\n mode,\n voids\n });\n return previous;\n};\n\nvar rangeRef = function rangeRef(editor, range) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n affinity = 'forward'\n } = options;\n var ref = {\n current: range,\n affinity,\n\n unref() {\n var {\n current\n } = ref;\n var rangeRefs = Editor.rangeRefs(editor);\n rangeRefs.delete(ref);\n ref.current = null;\n return current;\n }\n\n };\n var refs = Editor.rangeRefs(editor);\n refs.add(ref);\n return ref;\n};\n\nvar rangeRefs = editor => {\n var refs = RANGE_REFS.get(editor);\n\n if (!refs) {\n refs = new Set();\n RANGE_REFS.set(editor, refs);\n }\n\n return refs;\n};\n\nvar range = (editor, at, to) => {\n if (Range.isRange(at) && !to) {\n return at;\n }\n\n var start = Editor.start(editor, at);\n var end = Editor.end(editor, to || at);\n return {\n anchor: start,\n focus: end\n };\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar removeMark = (editor, key) => {\n var {\n selection\n } = editor;\n\n if (selection) {\n var match = (node, path) => {\n if (!Text.isText(node)) {\n return false; // marks can only be applied to text\n }\n\n var [parentNode, parentPath] = Editor.parent(editor, path);\n return !editor.isVoid(parentNode) || editor.markableVoid(parentNode);\n };\n\n var expandedSelection = Range.isExpanded(selection);\n var markAcceptingVoidSelected = false;\n\n if (!expandedSelection) {\n var [selectedNode, selectedPath] = Editor.node(editor, selection);\n\n if (selectedNode && match(selectedNode, selectedPath)) {\n var [parentNode] = Editor.parent(editor, selectedPath);\n markAcceptingVoidSelected = parentNode && editor.markableVoid(parentNode);\n }\n }\n\n if (expandedSelection || markAcceptingVoidSelected) {\n Transforms.unsetNodes(editor, key, {\n match,\n split: true,\n voids: true\n });\n } else {\n var marks = _objectSpread$2({}, Editor.marks(editor) || {});\n\n delete marks[key];\n editor.marks = marks;\n\n if (!FLUSHING.get(editor)) {\n editor.onChange();\n }\n }\n }\n};\n\nvar setNormalizing = (editor, isNormalizing) => {\n NORMALIZING.set(editor, isNormalizing);\n};\n\nvar start = (editor, at) => {\n return Editor.point(editor, at, {\n edge: 'start'\n });\n};\n\nvar string = function string(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n voids = false\n } = options;\n var range = Editor.range(editor, at);\n var [start, end] = Range.edges(range);\n var text = '';\n\n for (var [node, path] of Editor.nodes(editor, {\n at: range,\n match: Text.isText,\n voids\n })) {\n var t = node.text;\n\n if (Path.equals(path, end.path)) {\n t = t.slice(0, end.offset);\n }\n\n if (Path.equals(path, start.path)) {\n t = t.slice(start.offset);\n }\n\n text += t;\n }\n\n return text;\n};\n\nvar unhangRange = function unhangRange(editor, range) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n voids = false\n } = options;\n var [start, end] = Range.edges(range); // PERF: exit early if we can guarantee that the range isn't hanging.\n\n if (start.offset !== 0 || end.offset !== 0 || Range.isCollapsed(range) || Path.hasPrevious(end.path)) {\n return range;\n }\n\n var endBlock = Editor.above(editor, {\n at: end,\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n voids\n });\n var blockPath = endBlock ? endBlock[1] : [];\n var first = Editor.start(editor, start);\n var before = {\n anchor: first,\n focus: end\n };\n var skip = true;\n\n for (var [node, path] of Editor.nodes(editor, {\n at: before,\n match: Text.isText,\n reverse: true,\n voids\n })) {\n if (skip) {\n skip = false;\n continue;\n }\n\n if (node.text !== '' || Path.isBefore(path, blockPath)) {\n end = {\n path,\n offset: node.text.length\n };\n break;\n }\n }\n\n return {\n anchor: start,\n focus: end\n };\n};\n\nvar withoutNormalizing = (editor, fn) => {\n var value = Editor.isNormalizing(editor);\n Editor.setNormalizing(editor, false);\n\n try {\n fn();\n } finally {\n Editor.setNormalizing(editor, value);\n }\n\n Editor.normalize(editor);\n};\n\nvar deleteText = function deleteText(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var _Editor$void, _Editor$void2;\n\n var {\n reverse = false,\n unit = 'character',\n distance = 1,\n voids = false\n } = options;\n var {\n at = editor.selection,\n hanging = false\n } = options;\n\n if (!at) {\n return;\n }\n\n var isCollapsed = false;\n\n if (Range.isRange(at) && Range.isCollapsed(at)) {\n isCollapsed = true;\n at = at.anchor;\n }\n\n if (Point.isPoint(at)) {\n var furthestVoid = Editor.void(editor, {\n at,\n mode: 'highest'\n });\n\n if (!voids && furthestVoid) {\n var [, voidPath] = furthestVoid;\n at = voidPath;\n } else {\n var opts = {\n unit,\n distance\n };\n var target = reverse ? Editor.before(editor, at, opts) || Editor.start(editor, []) : Editor.after(editor, at, opts) || Editor.end(editor, []);\n at = {\n anchor: at,\n focus: target\n };\n hanging = true;\n }\n }\n\n if (Path.isPath(at)) {\n Transforms.removeNodes(editor, {\n at,\n voids\n });\n return;\n }\n\n if (Range.isCollapsed(at)) {\n return;\n }\n\n if (!hanging) {\n var [, _end] = Range.edges(at);\n var endOfDoc = Editor.end(editor, []);\n\n if (!Point.equals(_end, endOfDoc)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n }\n\n var [start, end] = Range.edges(at);\n var startBlock = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at: start,\n voids\n });\n var endBlock = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at: end,\n voids\n });\n var isAcrossBlocks = startBlock && endBlock && !Path.equals(startBlock[1], endBlock[1]);\n var isSingleText = Path.equals(start.path, end.path);\n var startNonEditable = voids ? null : (_Editor$void = Editor.void(editor, {\n at: start,\n mode: 'highest'\n })) !== null && _Editor$void !== void 0 ? _Editor$void : Editor.elementReadOnly(editor, {\n at: start,\n mode: 'highest'\n });\n var endNonEditable = voids ? null : (_Editor$void2 = Editor.void(editor, {\n at: end,\n mode: 'highest'\n })) !== null && _Editor$void2 !== void 0 ? _Editor$void2 : Editor.elementReadOnly(editor, {\n at: end,\n mode: 'highest'\n }); // If the start or end points are inside an inline void, nudge them out.\n\n if (startNonEditable) {\n var before = Editor.before(editor, start);\n\n if (before && startBlock && Path.isAncestor(startBlock[1], before.path)) {\n start = before;\n }\n }\n\n if (endNonEditable) {\n var after = Editor.after(editor, end);\n\n if (after && endBlock && Path.isAncestor(endBlock[1], after.path)) {\n end = after;\n }\n } // Get the highest nodes that are completely inside the range, as well as\n // the start and end nodes.\n\n\n var matches = [];\n var lastPath;\n\n for (var entry of Editor.nodes(editor, {\n at,\n voids\n })) {\n var [node, path] = entry;\n\n if (lastPath && Path.compare(path, lastPath) === 0) {\n continue;\n }\n\n if (!voids && Element.isElement(node) && (Editor.isVoid(editor, node) || Editor.isElementReadOnly(editor, node)) || !Path.isCommon(path, start.path) && !Path.isCommon(path, end.path)) {\n matches.push(entry);\n lastPath = path;\n }\n }\n\n var pathRefs = Array.from(matches, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n var startRef = Editor.pointRef(editor, start);\n var endRef = Editor.pointRef(editor, end);\n var removedText = '';\n\n if (!isSingleText && !startNonEditable) {\n var _point = startRef.current;\n var [_node] = Editor.leaf(editor, _point);\n var {\n path: _path\n } = _point;\n var {\n offset\n } = start;\n\n var text = _node.text.slice(offset);\n\n if (text.length > 0) {\n editor.apply({\n type: 'remove_text',\n path: _path,\n offset,\n text\n });\n removedText = text;\n }\n }\n\n pathRefs.reverse().map(r => r.unref()).filter(r => r !== null).forEach(p => Transforms.removeNodes(editor, {\n at: p,\n voids\n }));\n\n if (!endNonEditable) {\n var _point2 = endRef.current;\n var [_node2] = Editor.leaf(editor, _point2);\n var {\n path: _path2\n } = _point2;\n\n var _offset = isSingleText ? start.offset : 0;\n\n var _text = _node2.text.slice(_offset, end.offset);\n\n if (_text.length > 0) {\n editor.apply({\n type: 'remove_text',\n path: _path2,\n offset: _offset,\n text: _text\n });\n removedText = _text;\n }\n }\n\n if (!isSingleText && isAcrossBlocks && endRef.current && startRef.current) {\n Transforms.mergeNodes(editor, {\n at: endRef.current,\n hanging: true,\n voids\n });\n } // For Thai script, deleting N character(s) backward should delete\n // N code point(s) instead of an entire grapheme cluster.\n // Therefore, the remaining code points should be inserted back.\n\n\n if (isCollapsed && reverse && unit === 'character' && removedText.length > 1 && removedText.match(/[\\u0E00-\\u0E7F]+/)) {\n Transforms.insertText(editor, removedText.slice(0, removedText.length - distance));\n }\n\n var startUnref = startRef.unref();\n var endUnref = endRef.unref();\n var point = reverse ? startUnref || endUnref : endUnref || startUnref;\n\n if (options.at == null && point) {\n Transforms.select(editor, point);\n }\n });\n};\n\nvar insertFragment = function insertFragment(editor, fragment) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n hanging = false,\n voids = false\n } = options;\n var {\n at = getDefaultInsertLocation(editor)\n } = options;\n\n if (!fragment.length) {\n return;\n }\n\n if (Range.isRange(at)) {\n if (!hanging) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var [, end] = Range.edges(at);\n\n if (!voids && Editor.void(editor, {\n at: end\n })) {\n return;\n }\n\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at\n });\n at = pointRef.unref();\n }\n } else if (Path.isPath(at)) {\n at = Editor.start(editor, at);\n }\n\n if (!voids && Editor.void(editor, {\n at\n })) {\n return;\n } // If the insert point is at the edge of an inline node, move it outside\n // instead since it will need to be split otherwise.\n\n\n var inlineElementMatch = Editor.above(editor, {\n at,\n match: n => Element.isElement(n) && Editor.isInline(editor, n),\n mode: 'highest',\n voids\n });\n\n if (inlineElementMatch) {\n var [, _inlinePath] = inlineElementMatch;\n\n if (Editor.isEnd(editor, at, _inlinePath)) {\n var after = Editor.after(editor, _inlinePath);\n at = after;\n } else if (Editor.isStart(editor, at, _inlinePath)) {\n var before = Editor.before(editor, _inlinePath);\n at = before;\n }\n }\n\n var blockMatch = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at,\n voids\n });\n var [, blockPath] = blockMatch;\n var isBlockStart = Editor.isStart(editor, at, blockPath);\n var isBlockEnd = Editor.isEnd(editor, at, blockPath);\n var isBlockEmpty = isBlockStart && isBlockEnd;\n var mergeStart = !isBlockStart || isBlockStart && isBlockEnd;\n var mergeEnd = !isBlockEnd;\n var [, firstPath] = Node.first({\n children: fragment\n }, []);\n var [, lastPath] = Node.last({\n children: fragment\n }, []);\n var matches = [];\n\n var matcher = _ref => {\n var [n, p] = _ref;\n var isRoot = p.length === 0;\n\n if (isRoot) {\n return false;\n }\n\n if (isBlockEmpty) {\n return true;\n }\n\n if (mergeStart && Path.isAncestor(p, firstPath) && Element.isElement(n) && !editor.isVoid(n) && !editor.isInline(n)) {\n return false;\n }\n\n if (mergeEnd && Path.isAncestor(p, lastPath) && Element.isElement(n) && !editor.isVoid(n) && !editor.isInline(n)) {\n return false;\n }\n\n return true;\n };\n\n for (var entry of Node.nodes({\n children: fragment\n }, {\n pass: matcher\n })) {\n if (matcher(entry)) {\n matches.push(entry);\n }\n }\n\n var starts = [];\n var middles = [];\n var ends = [];\n var starting = true;\n var hasBlocks = false;\n\n for (var [node] of matches) {\n if (Element.isElement(node) && !editor.isInline(node)) {\n starting = false;\n hasBlocks = true;\n middles.push(node);\n } else if (starting) {\n starts.push(node);\n } else {\n ends.push(node);\n }\n }\n\n var [inlineMatch] = Editor.nodes(editor, {\n at,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids\n });\n var [, inlinePath] = inlineMatch;\n var isInlineStart = Editor.isStart(editor, at, inlinePath);\n var isInlineEnd = Editor.isEnd(editor, at, inlinePath);\n var middleRef = Editor.pathRef(editor, isBlockEnd && !ends.length ? Path.next(blockPath) : blockPath);\n var endRef = Editor.pathRef(editor, isInlineEnd ? Path.next(inlinePath) : inlinePath);\n Transforms.splitNodes(editor, {\n at,\n match: n => hasBlocks ? Element.isElement(n) && Editor.isBlock(editor, n) : Text.isText(n) || Editor.isInline(editor, n),\n mode: hasBlocks ? 'lowest' : 'highest',\n always: hasBlocks && (!isBlockStart || starts.length > 0) && (!isBlockEnd || ends.length > 0),\n voids\n });\n var startRef = Editor.pathRef(editor, !isInlineStart || isInlineStart && isInlineEnd ? Path.next(inlinePath) : inlinePath);\n Transforms.insertNodes(editor, starts, {\n at: startRef.current,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids\n });\n\n if (isBlockEmpty && !starts.length && middles.length && !ends.length) {\n Transforms.delete(editor, {\n at: blockPath,\n voids\n });\n }\n\n Transforms.insertNodes(editor, middles, {\n at: middleRef.current,\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n mode: 'lowest',\n voids\n });\n Transforms.insertNodes(editor, ends, {\n at: endRef.current,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids\n });\n\n if (!options.at) {\n var path;\n\n if (ends.length > 0 && endRef.current) {\n path = Path.previous(endRef.current);\n } else if (middles.length > 0 && middleRef.current) {\n path = Path.previous(middleRef.current);\n } else if (startRef.current) {\n path = Path.previous(startRef.current);\n }\n\n if (path) {\n var _end = Editor.end(editor, path);\n\n Transforms.select(editor, _end);\n }\n }\n\n startRef.unref();\n middleRef.unref();\n endRef.unref();\n });\n};\n\nvar collapse = function collapse(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n edge = 'anchor'\n } = options;\n var {\n selection\n } = editor;\n\n if (!selection) {\n return;\n } else if (edge === 'anchor') {\n Transforms.select(editor, selection.anchor);\n } else if (edge === 'focus') {\n Transforms.select(editor, selection.focus);\n } else if (edge === 'start') {\n var [start] = Range.edges(selection);\n Transforms.select(editor, start);\n } else if (edge === 'end') {\n var [, end] = Range.edges(selection);\n Transforms.select(editor, end);\n }\n};\n\nvar deselect = editor => {\n var {\n selection\n } = editor;\n\n if (selection) {\n editor.apply({\n type: 'set_selection',\n properties: selection,\n newProperties: null\n });\n }\n};\n\nvar move = function move(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n selection\n } = editor;\n var {\n distance = 1,\n unit = 'character',\n reverse = false\n } = options;\n var {\n edge = null\n } = options;\n\n if (!selection) {\n return;\n }\n\n if (edge === 'start') {\n edge = Range.isBackward(selection) ? 'focus' : 'anchor';\n }\n\n if (edge === 'end') {\n edge = Range.isBackward(selection) ? 'anchor' : 'focus';\n }\n\n var {\n anchor,\n focus\n } = selection;\n var opts = {\n distance,\n unit,\n ignoreNonSelectable: true\n };\n var props = {};\n\n if (edge == null || edge === 'anchor') {\n var point = reverse ? Editor.before(editor, anchor, opts) : Editor.after(editor, anchor, opts);\n\n if (point) {\n props.anchor = point;\n }\n }\n\n if (edge == null || edge === 'focus') {\n var _point = reverse ? Editor.before(editor, focus, opts) : Editor.after(editor, focus, opts);\n\n if (_point) {\n props.focus = _point;\n }\n }\n\n Transforms.setSelection(editor, props);\n};\n\nvar select = (editor, target) => {\n var {\n selection\n } = editor;\n target = Editor.range(editor, target);\n\n if (selection) {\n Transforms.setSelection(editor, target);\n return;\n }\n\n if (!Range.isRange(target)) {\n throw new Error(\"When setting the selection and the current selection is `null` you must provide at least an `anchor` and `focus`, but you passed: \".concat(Scrubber.stringify(target)));\n }\n\n editor.apply({\n type: 'set_selection',\n properties: selection,\n newProperties: target\n });\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar setPoint = function setPoint(editor, props) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n selection\n } = editor;\n var {\n edge = 'both'\n } = options;\n\n if (!selection) {\n return;\n }\n\n if (edge === 'start') {\n edge = Range.isBackward(selection) ? 'focus' : 'anchor';\n }\n\n if (edge === 'end') {\n edge = Range.isBackward(selection) ? 'anchor' : 'focus';\n }\n\n var {\n anchor,\n focus\n } = selection;\n var point = edge === 'anchor' ? anchor : focus;\n Transforms.setSelection(editor, {\n [edge === 'anchor' ? 'anchor' : 'focus']: _objectSpread$1(_objectSpread$1({}, point), props)\n });\n};\n\nvar setSelection = (editor, props) => {\n var {\n selection\n } = editor;\n var oldProps = {};\n var newProps = {};\n\n if (!selection) {\n return;\n }\n\n for (var k in props) {\n if (k === 'anchor' && props.anchor != null && !Point.equals(props.anchor, selection.anchor) || k === 'focus' && props.focus != null && !Point.equals(props.focus, selection.focus) || k !== 'anchor' && k !== 'focus' && props[k] !== selection[k]) {\n oldProps[k] = selection[k];\n newProps[k] = props[k];\n }\n }\n\n if (Object.keys(oldProps).length > 0) {\n editor.apply({\n type: 'set_selection',\n properties: oldProps,\n newProperties: newProps\n });\n }\n};\n\nvar insertNodes = function insertNodes(editor, nodes) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n hanging = false,\n voids = false,\n mode = 'lowest'\n } = options;\n var {\n at,\n match,\n select\n } = options;\n\n if (Node.isNode(nodes)) {\n nodes = [nodes];\n }\n\n if (nodes.length === 0) {\n return;\n }\n\n var [node] = nodes;\n\n if (!at) {\n at = getDefaultInsertLocation(editor);\n select = true;\n }\n\n if (select == null) {\n select = false;\n }\n\n if (Range.isRange(at)) {\n if (!hanging) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var [, end] = Range.edges(at);\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at\n });\n at = pointRef.unref();\n }\n }\n\n if (Point.isPoint(at)) {\n if (match == null) {\n if (Text.isText(node)) {\n match = n => Text.isText(n);\n } else if (editor.isInline(node)) {\n match = n => Text.isText(n) || Editor.isInline(editor, n);\n } else {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n }\n\n var [entry] = Editor.nodes(editor, {\n at: at.path,\n match,\n mode,\n voids\n });\n\n if (entry) {\n var [, matchPath] = entry;\n var pathRef = Editor.pathRef(editor, matchPath);\n var isAtEnd = Editor.isEnd(editor, at, matchPath);\n Transforms.splitNodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var path = pathRef.unref();\n at = isAtEnd ? Path.next(path) : path;\n } else {\n return;\n }\n }\n\n var parentPath = Path.parent(at);\n var index = at[at.length - 1];\n\n if (!voids && Editor.void(editor, {\n at: parentPath\n })) {\n return;\n }\n\n for (var _node of nodes) {\n var _path = parentPath.concat(index);\n\n index++;\n editor.apply({\n type: 'insert_node',\n path: _path,\n node: _node\n });\n at = Path.next(at);\n }\n\n at = Path.previous(at);\n\n if (select) {\n var point = Editor.end(editor, at);\n\n if (point) {\n Transforms.select(editor, point);\n }\n }\n });\n};\n\nvar liftNodes = function liftNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n at = editor.selection,\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match\n } = options;\n\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n\n if (!at) {\n return;\n }\n\n var matches = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(matches, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n\n for (var pathRef of pathRefs) {\n var path = pathRef.unref();\n\n if (path.length < 2) {\n throw new Error(\"Cannot lift node at a path [\".concat(path, \"] because it has a depth of less than `2`.\"));\n }\n\n var parentNodeEntry = Editor.node(editor, Path.parent(path));\n var [parent, parentPath] = parentNodeEntry;\n var index = path[path.length - 1];\n var {\n length\n } = parent.children;\n\n if (length === 1) {\n var toPath = Path.next(parentPath);\n Transforms.moveNodes(editor, {\n at: path,\n to: toPath,\n voids\n });\n Transforms.removeNodes(editor, {\n at: parentPath,\n voids\n });\n } else if (index === 0) {\n Transforms.moveNodes(editor, {\n at: path,\n to: parentPath,\n voids\n });\n } else if (index === length - 1) {\n var _toPath = Path.next(parentPath);\n\n Transforms.moveNodes(editor, {\n at: path,\n to: _toPath,\n voids\n });\n } else {\n var splitPath = Path.next(path);\n\n var _toPath2 = Path.next(parentPath);\n\n Transforms.splitNodes(editor, {\n at: splitPath,\n voids\n });\n Transforms.moveNodes(editor, {\n at: path,\n to: _toPath2,\n voids\n });\n }\n }\n });\n};\n\nvar _excluded = [\"text\"],\n _excluded2 = [\"children\"];\n\nvar hasSingleChildNest = (editor, node) => {\n if (Element.isElement(node)) {\n var element = node;\n\n if (Editor.isVoid(editor, node)) {\n return true;\n } else if (element.children.length === 1) {\n return hasSingleChildNest(editor, element.children[0]);\n } else {\n return false;\n }\n } else if (Editor.isEditor(node)) {\n return false;\n } else {\n return true;\n }\n};\n\nvar mergeNodes = function mergeNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n match,\n at = editor.selection\n } = options;\n var {\n hanging = false,\n voids = false,\n mode = 'lowest'\n } = options;\n\n if (!at) {\n return;\n }\n\n if (match == null) {\n if (Path.isPath(at)) {\n var [parent] = Editor.parent(editor, at);\n\n match = n => parent.children.includes(n);\n } else {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n }\n\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n\n if (Range.isRange(at)) {\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var [, end] = Range.edges(at);\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at\n });\n at = pointRef.unref();\n\n if (options.at == null) {\n Transforms.select(editor, at);\n }\n }\n }\n\n var [current] = Editor.nodes(editor, {\n at,\n match,\n voids,\n mode\n });\n var prev = Editor.previous(editor, {\n at,\n match,\n voids,\n mode\n });\n\n if (!current || !prev) {\n return;\n }\n\n var [node, path] = current;\n var [prevNode, prevPath] = prev;\n\n if (path.length === 0 || prevPath.length === 0) {\n return;\n }\n\n var newPath = Path.next(prevPath);\n var commonPath = Path.common(path, prevPath);\n var isPreviousSibling = Path.isSibling(path, prevPath);\n var levels = Array.from(Editor.levels(editor, {\n at: path\n }), _ref => {\n var [n] = _ref;\n return n;\n }).slice(commonPath.length).slice(0, -1); // Determine if the merge will leave an ancestor of the path empty as a\n // result, in which case we'll want to remove it after merging.\n\n var emptyAncestor = Editor.above(editor, {\n at: path,\n mode: 'highest',\n match: n => levels.includes(n) && hasSingleChildNest(editor, n)\n });\n var emptyRef = emptyAncestor && Editor.pathRef(editor, emptyAncestor[1]);\n var properties;\n var position; // Ensure that the nodes are equivalent, and figure out what the position\n // and extra properties of the merge will be.\n\n if (Text.isText(node) && Text.isText(prevNode)) {\n var rest = _objectWithoutProperties(node, _excluded);\n\n position = prevNode.text.length;\n properties = rest;\n } else if (Element.isElement(node) && Element.isElement(prevNode)) {\n var rest = _objectWithoutProperties(node, _excluded2);\n\n position = prevNode.children.length;\n properties = rest;\n } else {\n throw new Error(\"Cannot merge the node at path [\".concat(path, \"] with the previous sibling because it is not the same kind: \").concat(Scrubber.stringify(node), \" \").concat(Scrubber.stringify(prevNode)));\n } // If the node isn't already the next sibling of the previous node, move\n // it so that it is before merging.\n\n\n if (!isPreviousSibling) {\n Transforms.moveNodes(editor, {\n at: path,\n to: newPath,\n voids\n });\n } // If there was going to be an empty ancestor of the node that was merged,\n // we remove it from the tree.\n\n\n if (emptyRef) {\n Transforms.removeNodes(editor, {\n at: emptyRef.current,\n voids\n });\n } // If the target node that we're merging with is empty, remove it instead\n // of merging the two. This is a common rich text editor behavior to\n // prevent losing formatting when deleting entire nodes when you have a\n // hanging selection.\n // if prevNode is first child in parent,don't remove it.\n\n\n if (Element.isElement(prevNode) && Editor.isEmpty(editor, prevNode) || Text.isText(prevNode) && prevNode.text === '' && prevPath[prevPath.length - 1] !== 0) {\n Transforms.removeNodes(editor, {\n at: prevPath,\n voids\n });\n } else {\n editor.apply({\n type: 'merge_node',\n path: newPath,\n position,\n properties\n });\n }\n\n if (emptyRef) {\n emptyRef.unref();\n }\n });\n};\n\nvar moveNodes = (editor, options) => {\n Editor.withoutNormalizing(editor, () => {\n var {\n to,\n at = editor.selection,\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match\n } = options;\n\n if (!at) {\n return;\n }\n\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n\n var toRef = Editor.pathRef(editor, to);\n var targets = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(targets, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n\n for (var pathRef of pathRefs) {\n var path = pathRef.unref();\n var newPath = toRef.current;\n\n if (path.length !== 0) {\n editor.apply({\n type: 'move_node',\n path,\n newPath\n });\n }\n\n if (toRef.current && Path.isSibling(newPath, path) && Path.isAfter(newPath, path)) {\n // When performing a sibling move to a later index, the path at the destination is shifted\n // to before the insertion point instead of after. To ensure our group of nodes are inserted\n // in the correct order we increment toRef to account for that\n toRef.current = Path.next(toRef.current);\n }\n }\n\n toRef.unref();\n });\n};\n\nvar removeNodes = function removeNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n hanging = false,\n voids = false,\n mode = 'lowest'\n } = options;\n var {\n at = editor.selection,\n match\n } = options;\n\n if (!at) {\n return;\n }\n\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n\n var depths = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(depths, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n\n for (var pathRef of pathRefs) {\n var path = pathRef.unref();\n\n if (path) {\n var [node] = Editor.node(editor, path);\n editor.apply({\n type: 'remove_node',\n path,\n node\n });\n }\n }\n });\n};\n\nvar setNodes = function setNodes(editor, props) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n match,\n at = editor.selection,\n compare,\n merge\n } = options;\n var {\n hanging = false,\n mode = 'lowest',\n split = false,\n voids = false\n } = options;\n\n if (!at) {\n return;\n }\n\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n\n if (split && Range.isRange(at)) {\n if (Range.isCollapsed(at) && Editor.leaf(editor, at.anchor)[0].text.length > 0) {\n // If the range is collapsed in a non-empty node and 'split' is true, there's nothing to\n // set that won't get normalized away\n return;\n }\n\n var rangeRef = Editor.rangeRef(editor, at, {\n affinity: 'inward'\n });\n var [start, end] = Range.edges(at);\n var splitMode = mode === 'lowest' ? 'lowest' : 'highest';\n var endAtEndOfNode = Editor.isEnd(editor, end, end.path);\n Transforms.splitNodes(editor, {\n at: end,\n match,\n mode: splitMode,\n voids,\n always: !endAtEndOfNode\n });\n var startAtStartOfNode = Editor.isStart(editor, start, start.path);\n Transforms.splitNodes(editor, {\n at: start,\n match,\n mode: splitMode,\n voids,\n always: !startAtStartOfNode\n });\n at = rangeRef.unref();\n\n if (options.at == null) {\n Transforms.select(editor, at);\n }\n }\n\n if (!compare) {\n compare = (prop, nodeProp) => prop !== nodeProp;\n }\n\n for (var [node, path] of Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n })) {\n var properties = {};\n var newProperties = {}; // You can't set properties on the editor node.\n\n if (path.length === 0) {\n continue;\n }\n\n var hasChanges = false;\n\n for (var k in props) {\n if (k === 'children' || k === 'text') {\n continue;\n }\n\n if (compare(props[k], node[k])) {\n hasChanges = true; // Omit new properties from the old properties list\n\n if (node.hasOwnProperty(k)) properties[k] = node[k]; // Omit properties that have been removed from the new properties list\n\n if (merge) {\n if (props[k] != null) newProperties[k] = merge(node[k], props[k]);\n } else {\n if (props[k] != null) newProperties[k] = props[k];\n }\n }\n }\n\n if (hasChanges) {\n editor.apply({\n type: 'set_node',\n path,\n properties,\n newProperties\n });\n }\n }\n });\n};\n\n/**\r\n * Convert a range into a point by deleting it's content.\r\n */\n\nvar deleteRange = (editor, range) => {\n if (Range.isCollapsed(range)) {\n return range.anchor;\n } else {\n var [, end] = Range.edges(range);\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at: range\n });\n return pointRef.unref();\n }\n};\n\nvar splitNodes = function splitNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match,\n at = editor.selection,\n height = 0,\n always = false\n } = options;\n\n if (match == null) {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n\n if (Range.isRange(at)) {\n at = deleteRange(editor, at);\n } // If the target is a path, the default height-skipping and position\n // counters need to account for us potentially splitting at a non-leaf.\n\n\n if (Path.isPath(at)) {\n var path = at;\n var point = Editor.point(editor, path);\n var [parent] = Editor.parent(editor, path);\n\n match = n => n === parent;\n\n height = point.path.length - path.length + 1;\n at = point;\n always = true;\n }\n\n if (!at) {\n return;\n }\n\n var beforeRef = Editor.pointRef(editor, at, {\n affinity: 'backward'\n });\n var afterRef;\n\n try {\n var [highest] = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n\n if (!highest) {\n return;\n }\n\n var voidMatch = Editor.void(editor, {\n at,\n mode: 'highest'\n });\n var nudge = 0;\n\n if (!voids && voidMatch) {\n var [voidNode, voidPath] = voidMatch;\n\n if (Element.isElement(voidNode) && editor.isInline(voidNode)) {\n var after = Editor.after(editor, voidPath);\n\n if (!after) {\n var text = {\n text: ''\n };\n var afterPath = Path.next(voidPath);\n Transforms.insertNodes(editor, text, {\n at: afterPath,\n voids\n });\n after = Editor.point(editor, afterPath);\n }\n\n at = after;\n always = true;\n }\n\n var siblingHeight = at.path.length - voidPath.length;\n height = siblingHeight + 1;\n always = true;\n }\n\n afterRef = Editor.pointRef(editor, at);\n var depth = at.path.length - height;\n var [, highestPath] = highest;\n var lowestPath = at.path.slice(0, depth);\n var position = height === 0 ? at.offset : at.path[depth] + nudge;\n\n for (var [node, _path] of Editor.levels(editor, {\n at: lowestPath,\n reverse: true,\n voids\n })) {\n var split = false;\n\n if (_path.length < highestPath.length || _path.length === 0 || !voids && Element.isElement(node) && Editor.isVoid(editor, node)) {\n break;\n }\n\n var _point = beforeRef.current;\n var isEnd = Editor.isEnd(editor, _point, _path);\n\n if (always || !beforeRef || !Editor.isEdge(editor, _point, _path)) {\n split = true;\n var properties = Node.extractProps(node);\n editor.apply({\n type: 'split_node',\n path: _path,\n position,\n properties\n });\n }\n\n position = _path[_path.length - 1] + (split || isEnd ? 1 : 0);\n }\n\n if (options.at == null) {\n var _point2 = afterRef.current || Editor.end(editor, []);\n\n Transforms.select(editor, _point2);\n }\n } finally {\n var _afterRef;\n\n beforeRef.unref();\n (_afterRef = afterRef) === null || _afterRef === void 0 ? void 0 : _afterRef.unref();\n }\n });\n};\n\nvar unsetNodes = function unsetNodes(editor, props) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!Array.isArray(props)) {\n props = [props];\n }\n\n var obj = {};\n\n for (var key of props) {\n obj[key] = null;\n }\n\n Transforms.setNodes(editor, obj, options);\n};\n\nvar unwrapNodes = function unwrapNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n mode = 'lowest',\n split = false,\n voids = false\n } = options;\n var {\n at = editor.selection,\n match\n } = options;\n\n if (!at) {\n return;\n }\n\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n\n if (Path.isPath(at)) {\n at = Editor.range(editor, at);\n }\n\n var rangeRef = Range.isRange(at) ? Editor.rangeRef(editor, at) : null;\n var matches = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(matches, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n } // unwrapNode will call liftNode which does not support splitting the node when nested.\n // If we do not reverse the order and call it from top to the bottom, it will remove all blocks\n // that wrap target node. So we reverse the order.\n ).reverse();\n\n var _loop = function _loop(pathRef) {\n var path = pathRef.unref();\n var [node] = Editor.node(editor, path);\n var range = Editor.range(editor, path);\n\n if (split && rangeRef) {\n range = Range.intersection(rangeRef.current, range);\n }\n\n Transforms.liftNodes(editor, {\n at: range,\n match: n => Element.isAncestor(node) && node.children.includes(n),\n voids\n });\n };\n\n for (var pathRef of pathRefs) {\n _loop(pathRef);\n }\n\n if (rangeRef) {\n rangeRef.unref();\n }\n });\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar wrapNodes = function wrapNodes(editor, element) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n mode = 'lowest',\n split = false,\n voids = false\n } = options;\n var {\n match,\n at = editor.selection\n } = options;\n\n if (!at) {\n return;\n }\n\n if (match == null) {\n if (Path.isPath(at)) {\n match = matchPath(editor, at);\n } else if (editor.isInline(element)) {\n match = n => Element.isElement(n) && Editor.isInline(editor, n) || Text.isText(n);\n } else {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n }\n\n if (split && Range.isRange(at)) {\n var [start, end] = Range.edges(at);\n var rangeRef = Editor.rangeRef(editor, at, {\n affinity: 'inward'\n });\n Transforms.splitNodes(editor, {\n at: end,\n match,\n voids\n });\n Transforms.splitNodes(editor, {\n at: start,\n match,\n voids\n });\n at = rangeRef.unref();\n\n if (options.at == null) {\n Transforms.select(editor, at);\n }\n }\n\n var roots = Array.from(Editor.nodes(editor, {\n at,\n match: editor.isInline(element) ? n => Element.isElement(n) && Editor.isBlock(editor, n) : n => Editor.isEditor(n),\n mode: 'lowest',\n voids\n }));\n\n for (var [, rootPath] of roots) {\n var a = Range.isRange(at) ? Range.intersection(at, Editor.range(editor, rootPath)) : at;\n\n if (!a) {\n continue;\n }\n\n var matches = Array.from(Editor.nodes(editor, {\n at: a,\n match,\n mode,\n voids\n }));\n\n if (matches.length > 0) {\n var _ret = function () {\n var [first] = matches;\n var last = matches[matches.length - 1];\n var [, firstPath] = first;\n var [, lastPath] = last;\n\n if (firstPath.length === 0 && lastPath.length === 0) {\n // if there's no matching parent - usually means the node is an editor - don't do anything\n return \"continue\";\n }\n\n var commonPath = Path.equals(firstPath, lastPath) ? Path.parent(firstPath) : Path.common(firstPath, lastPath);\n var range = Editor.range(editor, firstPath, lastPath);\n var commonNodeEntry = Editor.node(editor, commonPath);\n var [commonNode] = commonNodeEntry;\n var depth = commonPath.length + 1;\n var wrapperPath = Path.next(lastPath.slice(0, depth));\n\n var wrapper = _objectSpread(_objectSpread({}, element), {}, {\n children: []\n });\n\n Transforms.insertNodes(editor, wrapper, {\n at: wrapperPath,\n voids\n });\n Transforms.moveNodes(editor, {\n at: range,\n match: n => Element.isAncestor(commonNode) && commonNode.children.includes(n),\n to: wrapperPath.concat(0),\n voids\n });\n }();\n\n if (_ret === \"continue\") continue;\n }\n }\n });\n};\n\n/**\r\n * Create a new Slate `Editor` object.\r\n */\n\nvar createEditor = () => {\n var editor = {\n children: [],\n operations: [],\n selection: null,\n marks: null,\n isElementReadOnly: () => false,\n isInline: () => false,\n isSelectable: () => true,\n isVoid: () => false,\n markableVoid: () => false,\n onChange: () => {},\n // Core\n apply: function apply$1() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return apply(editor, ...args);\n },\n // Editor\n addMark: function addMark$1() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return addMark(editor, ...args);\n },\n deleteBackward: function deleteBackward$1() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return deleteBackward(editor, ...args);\n },\n deleteForward: function deleteForward$1() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return deleteForward(editor, ...args);\n },\n deleteFragment: function deleteFragment$1() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return deleteFragment(editor, ...args);\n },\n getFragment: function getFragment$1() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return getFragment(editor, ...args);\n },\n insertBreak: function insertBreak$1() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return insertBreak(editor, ...args);\n },\n insertSoftBreak: function insertSoftBreak$1() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n\n return insertSoftBreak(editor, ...args);\n },\n insertFragment: function insertFragment$1() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n return insertFragment(editor, ...args);\n },\n insertNode: function insertNode$1() {\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n\n return insertNode(editor, ...args);\n },\n insertText: function insertText$1() {\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\n }\n\n return insertText(editor, ...args);\n },\n normalizeNode: function normalizeNode$1() {\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\n }\n\n return normalizeNode(editor, ...args);\n },\n removeMark: function removeMark$1() {\n for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n args[_key13] = arguments[_key13];\n }\n\n return removeMark(editor, ...args);\n },\n getDirtyPaths: function getDirtyPaths$1() {\n for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n args[_key14] = arguments[_key14];\n }\n\n return getDirtyPaths(editor, ...args);\n },\n shouldNormalize: function shouldNormalize$1() {\n for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n args[_key15] = arguments[_key15];\n }\n\n return shouldNormalize(editor, ...args);\n },\n // Editor interface\n above: function above$1() {\n for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {\n args[_key16] = arguments[_key16];\n }\n\n return above(editor, ...args);\n },\n after: function after$1() {\n for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {\n args[_key17] = arguments[_key17];\n }\n\n return after(editor, ...args);\n },\n before: function before$1() {\n for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {\n args[_key18] = arguments[_key18];\n }\n\n return before(editor, ...args);\n },\n collapse: function collapse$1() {\n for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {\n args[_key19] = arguments[_key19];\n }\n\n return collapse(editor, ...args);\n },\n delete: function _delete() {\n for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {\n args[_key20] = arguments[_key20];\n }\n\n return deleteText(editor, ...args);\n },\n deselect: function deselect$1() {\n for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {\n args[_key21] = arguments[_key21];\n }\n\n return deselect(editor, ...args);\n },\n edges: function edges$1() {\n for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {\n args[_key22] = arguments[_key22];\n }\n\n return edges(editor, ...args);\n },\n elementReadOnly: function elementReadOnly$1() {\n for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {\n args[_key23] = arguments[_key23];\n }\n\n return elementReadOnly(editor, ...args);\n },\n end: function end$1() {\n for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {\n args[_key24] = arguments[_key24];\n }\n\n return end(editor, ...args);\n },\n first: function first$1() {\n for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {\n args[_key25] = arguments[_key25];\n }\n\n return first(editor, ...args);\n },\n fragment: function fragment$1() {\n for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {\n args[_key26] = arguments[_key26];\n }\n\n return fragment(editor, ...args);\n },\n getMarks: function getMarks() {\n for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {\n args[_key27] = arguments[_key27];\n }\n\n return marks(editor, ...args);\n },\n hasBlocks: function hasBlocks$1() {\n for (var _len28 = arguments.length, args = new Array(_len28), _key28 = 0; _key28 < _len28; _key28++) {\n args[_key28] = arguments[_key28];\n }\n\n return hasBlocks(editor, ...args);\n },\n hasInlines: function hasInlines$1() {\n for (var _len29 = arguments.length, args = new Array(_len29), _key29 = 0; _key29 < _len29; _key29++) {\n args[_key29] = arguments[_key29];\n }\n\n return hasInlines(editor, ...args);\n },\n hasPath: function hasPath$1() {\n for (var _len30 = arguments.length, args = new Array(_len30), _key30 = 0; _key30 < _len30; _key30++) {\n args[_key30] = arguments[_key30];\n }\n\n return hasPath(editor, ...args);\n },\n hasTexts: function hasTexts$1() {\n for (var _len31 = arguments.length, args = new Array(_len31), _key31 = 0; _key31 < _len31; _key31++) {\n args[_key31] = arguments[_key31];\n }\n\n return hasTexts(editor, ...args);\n },\n insertNodes: function insertNodes$1() {\n for (var _len32 = arguments.length, args = new Array(_len32), _key32 = 0; _key32 < _len32; _key32++) {\n args[_key32] = arguments[_key32];\n }\n\n return insertNodes(editor, ...args);\n },\n isBlock: function isBlock$1() {\n for (var _len33 = arguments.length, args = new Array(_len33), _key33 = 0; _key33 < _len33; _key33++) {\n args[_key33] = arguments[_key33];\n }\n\n return isBlock(editor, ...args);\n },\n isEdge: function isEdge$1() {\n for (var _len34 = arguments.length, args = new Array(_len34), _key34 = 0; _key34 < _len34; _key34++) {\n args[_key34] = arguments[_key34];\n }\n\n return isEdge(editor, ...args);\n },\n isEmpty: function isEmpty$1() {\n for (var _len35 = arguments.length, args = new Array(_len35), _key35 = 0; _key35 < _len35; _key35++) {\n args[_key35] = arguments[_key35];\n }\n\n return isEmpty(editor, ...args);\n },\n isEnd: function isEnd$1() {\n for (var _len36 = arguments.length, args = new Array(_len36), _key36 = 0; _key36 < _len36; _key36++) {\n args[_key36] = arguments[_key36];\n }\n\n return isEnd(editor, ...args);\n },\n isNormalizing: function isNormalizing$1() {\n for (var _len37 = arguments.length, args = new Array(_len37), _key37 = 0; _key37 < _len37; _key37++) {\n args[_key37] = arguments[_key37];\n }\n\n return isNormalizing(editor, ...args);\n },\n isStart: function isStart$1() {\n for (var _len38 = arguments.length, args = new Array(_len38), _key38 = 0; _key38 < _len38; _key38++) {\n args[_key38] = arguments[_key38];\n }\n\n return isStart(editor, ...args);\n },\n last: function last$1() {\n for (var _len39 = arguments.length, args = new Array(_len39), _key39 = 0; _key39 < _len39; _key39++) {\n args[_key39] = arguments[_key39];\n }\n\n return last(editor, ...args);\n },\n leaf: function leaf$1() {\n for (var _len40 = arguments.length, args = new Array(_len40), _key40 = 0; _key40 < _len40; _key40++) {\n args[_key40] = arguments[_key40];\n }\n\n return leaf(editor, ...args);\n },\n levels: function levels$1() {\n for (var _len41 = arguments.length, args = new Array(_len41), _key41 = 0; _key41 < _len41; _key41++) {\n args[_key41] = arguments[_key41];\n }\n\n return levels(editor, ...args);\n },\n liftNodes: function liftNodes$1() {\n for (var _len42 = arguments.length, args = new Array(_len42), _key42 = 0; _key42 < _len42; _key42++) {\n args[_key42] = arguments[_key42];\n }\n\n return liftNodes(editor, ...args);\n },\n mergeNodes: function mergeNodes$1() {\n for (var _len43 = arguments.length, args = new Array(_len43), _key43 = 0; _key43 < _len43; _key43++) {\n args[_key43] = arguments[_key43];\n }\n\n return mergeNodes(editor, ...args);\n },\n move: function move$1() {\n for (var _len44 = arguments.length, args = new Array(_len44), _key44 = 0; _key44 < _len44; _key44++) {\n args[_key44] = arguments[_key44];\n }\n\n return move(editor, ...args);\n },\n moveNodes: function moveNodes$1() {\n for (var _len45 = arguments.length, args = new Array(_len45), _key45 = 0; _key45 < _len45; _key45++) {\n args[_key45] = arguments[_key45];\n }\n\n return moveNodes(editor, ...args);\n },\n next: function next$1() {\n for (var _len46 = arguments.length, args = new Array(_len46), _key46 = 0; _key46 < _len46; _key46++) {\n args[_key46] = arguments[_key46];\n }\n\n return next(editor, ...args);\n },\n node: function node$1() {\n for (var _len47 = arguments.length, args = new Array(_len47), _key47 = 0; _key47 < _len47; _key47++) {\n args[_key47] = arguments[_key47];\n }\n\n return node(editor, ...args);\n },\n nodes: function nodes$1() {\n for (var _len48 = arguments.length, args = new Array(_len48), _key48 = 0; _key48 < _len48; _key48++) {\n args[_key48] = arguments[_key48];\n }\n\n return nodes(editor, ...args);\n },\n normalize: function normalize$1() {\n for (var _len49 = arguments.length, args = new Array(_len49), _key49 = 0; _key49 < _len49; _key49++) {\n args[_key49] = arguments[_key49];\n }\n\n return normalize(editor, ...args);\n },\n parent: function parent$1() {\n for (var _len50 = arguments.length, args = new Array(_len50), _key50 = 0; _key50 < _len50; _key50++) {\n args[_key50] = arguments[_key50];\n }\n\n return parent(editor, ...args);\n },\n path: function path$1() {\n for (var _len51 = arguments.length, args = new Array(_len51), _key51 = 0; _key51 < _len51; _key51++) {\n args[_key51] = arguments[_key51];\n }\n\n return path(editor, ...args);\n },\n pathRef: function pathRef$1() {\n for (var _len52 = arguments.length, args = new Array(_len52), _key52 = 0; _key52 < _len52; _key52++) {\n args[_key52] = arguments[_key52];\n }\n\n return pathRef(editor, ...args);\n },\n pathRefs: function pathRefs$1() {\n for (var _len53 = arguments.length, args = new Array(_len53), _key53 = 0; _key53 < _len53; _key53++) {\n args[_key53] = arguments[_key53];\n }\n\n return pathRefs(editor, ...args);\n },\n point: function point$1() {\n for (var _len54 = arguments.length, args = new Array(_len54), _key54 = 0; _key54 < _len54; _key54++) {\n args[_key54] = arguments[_key54];\n }\n\n return point(editor, ...args);\n },\n pointRef: function pointRef$1() {\n for (var _len55 = arguments.length, args = new Array(_len55), _key55 = 0; _key55 < _len55; _key55++) {\n args[_key55] = arguments[_key55];\n }\n\n return pointRef(editor, ...args);\n },\n pointRefs: function pointRefs$1() {\n for (var _len56 = arguments.length, args = new Array(_len56), _key56 = 0; _key56 < _len56; _key56++) {\n args[_key56] = arguments[_key56];\n }\n\n return pointRefs(editor, ...args);\n },\n positions: function positions$1() {\n for (var _len57 = arguments.length, args = new Array(_len57), _key57 = 0; _key57 < _len57; _key57++) {\n args[_key57] = arguments[_key57];\n }\n\n return positions(editor, ...args);\n },\n previous: function previous$1() {\n for (var _len58 = arguments.length, args = new Array(_len58), _key58 = 0; _key58 < _len58; _key58++) {\n args[_key58] = arguments[_key58];\n }\n\n return previous(editor, ...args);\n },\n range: function range$1() {\n for (var _len59 = arguments.length, args = new Array(_len59), _key59 = 0; _key59 < _len59; _key59++) {\n args[_key59] = arguments[_key59];\n }\n\n return range(editor, ...args);\n },\n rangeRef: function rangeRef$1() {\n for (var _len60 = arguments.length, args = new Array(_len60), _key60 = 0; _key60 < _len60; _key60++) {\n args[_key60] = arguments[_key60];\n }\n\n return rangeRef(editor, ...args);\n },\n rangeRefs: function rangeRefs$1() {\n for (var _len61 = arguments.length, args = new Array(_len61), _key61 = 0; _key61 < _len61; _key61++) {\n args[_key61] = arguments[_key61];\n }\n\n return rangeRefs(editor, ...args);\n },\n removeNodes: function removeNodes$1() {\n for (var _len62 = arguments.length, args = new Array(_len62), _key62 = 0; _key62 < _len62; _key62++) {\n args[_key62] = arguments[_key62];\n }\n\n return removeNodes(editor, ...args);\n },\n select: function select$1() {\n for (var _len63 = arguments.length, args = new Array(_len63), _key63 = 0; _key63 < _len63; _key63++) {\n args[_key63] = arguments[_key63];\n }\n\n return select(editor, ...args);\n },\n setNodes: function setNodes$1() {\n for (var _len64 = arguments.length, args = new Array(_len64), _key64 = 0; _key64 < _len64; _key64++) {\n args[_key64] = arguments[_key64];\n }\n\n return setNodes(editor, ...args);\n },\n setNormalizing: function setNormalizing$1() {\n for (var _len65 = arguments.length, args = new Array(_len65), _key65 = 0; _key65 < _len65; _key65++) {\n args[_key65] = arguments[_key65];\n }\n\n return setNormalizing(editor, ...args);\n },\n setPoint: function setPoint$1() {\n for (var _len66 = arguments.length, args = new Array(_len66), _key66 = 0; _key66 < _len66; _key66++) {\n args[_key66] = arguments[_key66];\n }\n\n return setPoint(editor, ...args);\n },\n setSelection: function setSelection$1() {\n for (var _len67 = arguments.length, args = new Array(_len67), _key67 = 0; _key67 < _len67; _key67++) {\n args[_key67] = arguments[_key67];\n }\n\n return setSelection(editor, ...args);\n },\n splitNodes: function splitNodes$1() {\n for (var _len68 = arguments.length, args = new Array(_len68), _key68 = 0; _key68 < _len68; _key68++) {\n args[_key68] = arguments[_key68];\n }\n\n return splitNodes(editor, ...args);\n },\n start: function start$1() {\n for (var _len69 = arguments.length, args = new Array(_len69), _key69 = 0; _key69 < _len69; _key69++) {\n args[_key69] = arguments[_key69];\n }\n\n return start(editor, ...args);\n },\n string: function string$1() {\n for (var _len70 = arguments.length, args = new Array(_len70), _key70 = 0; _key70 < _len70; _key70++) {\n args[_key70] = arguments[_key70];\n }\n\n return string(editor, ...args);\n },\n unhangRange: function unhangRange$1() {\n for (var _len71 = arguments.length, args = new Array(_len71), _key71 = 0; _key71 < _len71; _key71++) {\n args[_key71] = arguments[_key71];\n }\n\n return unhangRange(editor, ...args);\n },\n unsetNodes: function unsetNodes$1() {\n for (var _len72 = arguments.length, args = new Array(_len72), _key72 = 0; _key72 < _len72; _key72++) {\n args[_key72] = arguments[_key72];\n }\n\n return unsetNodes(editor, ...args);\n },\n unwrapNodes: function unwrapNodes$1() {\n for (var _len73 = arguments.length, args = new Array(_len73), _key73 = 0; _key73 < _len73; _key73++) {\n args[_key73] = arguments[_key73];\n }\n\n return unwrapNodes(editor, ...args);\n },\n void: function _void() {\n for (var _len74 = arguments.length, args = new Array(_len74), _key74 = 0; _key74 < _len74; _key74++) {\n args[_key74] = arguments[_key74];\n }\n\n return getVoid(editor, ...args);\n },\n withoutNormalizing: function withoutNormalizing$1() {\n for (var _len75 = arguments.length, args = new Array(_len75), _key75 = 0; _key75 < _len75; _key75++) {\n args[_key75] = arguments[_key75];\n }\n\n return withoutNormalizing(editor, ...args);\n },\n wrapNodes: function wrapNodes$1() {\n for (var _len76 = arguments.length, args = new Array(_len76), _key76 = 0; _key76 < _len76; _key76++) {\n args[_key76] = arguments[_key76];\n }\n\n return wrapNodes(editor, ...args);\n }\n };\n return editor;\n};\n\nexport { Editor, Element, Location, Node, Operation, Path, PathRef, Point, PointRef, Range, RangeRef, Scrubber, Span, Text, Transforms, above, addMark, after, apply, before, collapse, createEditor, deleteBackward, deleteForward, deleteFragment, deleteText, deselect, edges, elementReadOnly, end, first, fragment, getDirtyPaths, getFragment, getVoid, hasBlocks, hasInlines, hasPath, hasTexts, insertBreak, insertFragment, insertNode, insertNodes, insertSoftBreak, insertText, isBlock, isEdge, isEditor, isEmpty, isEnd, isNormalizing, isStart, last, leaf, levels, liftNodes, marks, mergeNodes, move, moveNodes, next, node, nodes, normalize, normalizeNode, parent, path, pathRef, pathRefs, point, pointRef, pointRefs, positions, previous, range, rangeRef, rangeRefs, removeMark, removeNodes, select, setNodes, setNormalizing, setPoint, setSelection, shouldNormalize, splitNodes, start, string, unhangRange, unsetNodes, unwrapNodes, withoutNormalizing, wrapNodes };\n//# sourceMappingURL=index.es.js.map\n","'use strict'\n\nmodule.exports = direction\n\nvar RTL = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nvar LTR =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\nvar rtl = new RegExp('^[^' + LTR + ']*[' + RTL + ']')\nvar ltr = new RegExp('^[^' + RTL + ']*[' + LTR + ']')\n\nfunction direction(value) {\n value = String(value || '')\n\n if (rtl.test(value)) {\n return 'rtl'\n }\n\n if (ltr.test(value)) {\n return 'ltr'\n }\n\n return 'neutral'\n}\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","function t(t){return\"object\"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||\"hidden\"!==t)&&\"visible\"!==t&&\"clip\"!==t}function n(t,n){if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){var r=getComputedStyle(t,null);return e(r.overflowY,n)||e(r.overflowX,n)||function(t){var e=function(t){if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}}(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)}(t)}return!1}function r(t,e,n,r,i,o,l,d){return o<t&&l>e||o>t&&l<e?0:o<=t&&d<=n||l>=e&&d>=n?o-t-r:l>e&&d<n||o<t&&d>n?l-e+i:0}var i=function(e,i){var o=window,l=i.scrollMode,d=i.block,f=i.inline,h=i.boundary,u=i.skipOverflowHiddenElements,s=\"function\"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError(\"Invalid target\");for(var a,c,g=document.scrollingElement||document.documentElement,p=[],m=e;t(m)&&s(m);){if((m=null==(c=(a=m).parentElement)?a.getRootNode().host||null:c)===g){p.push(m);break}null!=m&&m===document.body&&n(m)&&!n(document.documentElement)||null!=m&&n(m,u)&&p.push(m)}for(var w=o.visualViewport?o.visualViewport.width:innerWidth,v=o.visualViewport?o.visualViewport.height:innerHeight,W=window.scrollX||pageXOffset,H=window.scrollY||pageYOffset,b=e.getBoundingClientRect(),y=b.height,E=b.width,M=b.top,V=b.right,x=b.bottom,I=b.left,C=\"start\"===d||\"nearest\"===d?M:\"end\"===d?x:M+y/2,R=\"center\"===f?I+E/2:\"end\"===f?V:I,T=[],k=0;k<p.length;k++){var B=p[k],D=B.getBoundingClientRect(),O=D.height,X=D.width,Y=D.top,L=D.right,S=D.bottom,j=D.left;if(\"if-needed\"===l&&M>=0&&I>=0&&x<=v&&V<=w&&M>=Y&&x<=S&&I>=j&&V<=L)return T;var N=getComputedStyle(B),q=parseInt(N.borderLeftWidth,10),z=parseInt(N.borderTopWidth,10),A=parseInt(N.borderRightWidth,10),F=parseInt(N.borderBottomWidth,10),G=0,J=0,K=\"offsetWidth\"in B?B.offsetWidth-B.clientWidth-q-A:0,P=\"offsetHeight\"in B?B.offsetHeight-B.clientHeight-z-F:0,Q=\"offsetWidth\"in B?0===B.offsetWidth?0:X/B.offsetWidth:0,U=\"offsetHeight\"in B?0===B.offsetHeight?0:O/B.offsetHeight:0;if(g===B)G=\"start\"===d?C:\"end\"===d?C-v:\"nearest\"===d?r(H,H+v,v,z,F,H+C,H+C+y,y):C-v/2,J=\"start\"===f?R:\"center\"===f?R-w/2:\"end\"===f?R-w:r(W,W+w,w,q,A,W+R,W+R+E,E),G=Math.max(0,G+H),J=Math.max(0,J+W);else{G=\"start\"===d?C-Y-z:\"end\"===d?C-S+F+P:\"nearest\"===d?r(Y,S,O,z,F+P,C,C+y,y):C-(Y+O/2)+P/2,J=\"start\"===f?R-j-q:\"center\"===f?R-(j+X/2)+K/2:\"end\"===f?R-L+A+K:r(j,L,X,q,A+K,R,R+E,E);var Z=B.scrollLeft,$=B.scrollTop;C+=$-(G=Math.max(0,Math.min($+G/U,B.scrollHeight-O/U+P))),R+=Z-(J=Math.max(0,Math.min(Z+J/Q,B.scrollWidth-X/Q+K)))}T.push({el:B,top:G,left:J})}return T};export{i as default};\n//# sourceMappingURL=index.mjs.map\n","import compute from 'compute-scroll-into-view';\nfunction isOptionsObject(options) {\n return options === Object(options) && Object.keys(options).length !== 0;\n}\nfunction defaultBehavior(actions, behavior) {\n if (behavior === void 0) {\n behavior = 'auto';\n }\n var canSmoothScroll = ('scrollBehavior' in document.body.style);\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n if (el.scroll && canSmoothScroll) {\n el.scroll({\n top: top,\n left: left,\n behavior: behavior\n });\n } else {\n el.scrollTop = top;\n el.scrollLeft = left;\n }\n });\n}\nfunction getOptions(options) {\n if (options === false) {\n return {\n block: 'end',\n inline: 'nearest'\n };\n }\n if (isOptionsObject(options)) {\n return options;\n }\n return {\n block: 'start',\n inline: 'nearest'\n };\n}\nfunction scrollIntoView(target, options) {\n var isTargetAttached = target.isConnected || target.ownerDocument.documentElement.contains(target);\n if (isOptionsObject(options) && typeof options.behavior === 'function') {\n return options.behavior(isTargetAttached ? compute(target, options) : []);\n }\n if (!isTargetAttached) {\n return;\n }\n var computeOptions = getOptions(options);\n return defaultBehavior(compute(target, computeOptions), computeOptions.behavior);\n}\nexport default scrollIntoView;","var resizeObservers = [];\nexport { resizeObservers };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * Constants.\n */\n\nvar IS_MAC = typeof window != 'undefined' && /Mac|iPod|iPhone|iPad/.test(window.navigator.platform);\n\nvar MODIFIERS = {\n alt: 'altKey',\n control: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey'\n};\n\nvar ALIASES = {\n add: '+',\n break: 'pause',\n cmd: 'meta',\n command: 'meta',\n ctl: 'control',\n ctrl: 'control',\n del: 'delete',\n down: 'arrowdown',\n esc: 'escape',\n ins: 'insert',\n left: 'arrowleft',\n mod: IS_MAC ? 'meta' : 'control',\n opt: 'alt',\n option: 'alt',\n return: 'enter',\n right: 'arrowright',\n space: ' ',\n spacebar: ' ',\n up: 'arrowup',\n win: 'meta',\n windows: 'meta'\n};\n\nvar CODES = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n control: 17,\n alt: 18,\n pause: 19,\n capslock: 20,\n escape: 27,\n ' ': 32,\n pageup: 33,\n pagedown: 34,\n end: 35,\n home: 36,\n arrowleft: 37,\n arrowup: 38,\n arrowright: 39,\n arrowdown: 40,\n insert: 45,\n delete: 46,\n meta: 91,\n numlock: 144,\n scrolllock: 145,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n '\\'': 222\n};\n\nfor (var f = 1; f < 20; f++) {\n CODES['f' + f] = 111 + f;\n}\n\n/**\n * Is hotkey?\n */\n\nfunction isHotkey(hotkey, options, event) {\n if (options && !('byKey' in options)) {\n event = options;\n options = null;\n }\n\n if (!Array.isArray(hotkey)) {\n hotkey = [hotkey];\n }\n\n var array = hotkey.map(function (string) {\n return parseHotkey(string, options);\n });\n var check = function check(e) {\n return array.some(function (object) {\n return compareHotkey(object, e);\n });\n };\n var ret = event == null ? check : check(event);\n return ret;\n}\n\nfunction isCodeHotkey(hotkey, event) {\n return isHotkey(hotkey, event);\n}\n\nfunction isKeyHotkey(hotkey, event) {\n return isHotkey(hotkey, { byKey: true }, event);\n}\n\n/**\n * Parse.\n */\n\nfunction parseHotkey(hotkey, options) {\n var byKey = options && options.byKey;\n var ret = {};\n\n // Special case to handle the `+` key since we use it as a separator.\n hotkey = hotkey.replace('++', '+add');\n var values = hotkey.split('+');\n var length = values.length;\n\n // Ensure that all the modifiers are set to false unless the hotkey has them.\n\n for (var k in MODIFIERS) {\n ret[MODIFIERS[k]] = false;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var value = _step.value;\n\n var optional = value.endsWith('?') && value.length > 1;\n\n if (optional) {\n value = value.slice(0, -1);\n }\n\n var name = toKeyName(value);\n var modifier = MODIFIERS[name];\n\n if (length === 1 || !modifier) {\n if (byKey) {\n ret.key = name;\n } else {\n ret.which = toKeyCode(value);\n }\n }\n\n if (modifier) {\n ret[modifier] = optional ? null : true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return ret;\n}\n\n/**\n * Compare.\n */\n\nfunction compareHotkey(object, event) {\n for (var key in object) {\n var expected = object[key];\n var actual = void 0;\n\n if (expected == null) {\n continue;\n }\n\n if (key === 'key' && event.key != null) {\n actual = event.key.toLowerCase();\n } else if (key === 'which') {\n actual = expected === 91 && event.which === 93 ? 91 : event.which;\n } else {\n actual = event[key];\n }\n\n if (actual == null && expected === false) {\n continue;\n }\n\n if (actual !== expected) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Utils.\n */\n\nfunction toKeyCode(name) {\n name = toKeyName(name);\n var code = CODES[name] || name.toUpperCase().charCodeAt(0);\n return code;\n}\n\nfunction toKeyName(name) {\n name = name.toLowerCase();\n name = ALIASES[name] || name;\n return name;\n}\n\n/**\n * Export.\n */\n\nexports.default = isHotkey;\nexports.isHotkey = isHotkey;\nexports.isCodeHotkey = isCodeHotkey;\nexports.isKeyHotkey = isKeyHotkey;\nexports.parseHotkey = parseHotkey;\nexports.compareHotkey = compareHotkey;\nexports.toKeyCode = toKeyCode;\nexports.toKeyName = toKeyName;","import getDirection from 'direction';\nimport debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\nimport React, { createContext, useContext, useRef, useEffect, useLayoutEffect, useState, memo, forwardRef, useCallback, Component, useReducer, useMemo } from 'react';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { Transforms, Element as Element$1, Editor, Scrubber, Range, Path, Point, Node, Text as Text$1 } from 'slate';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { isHotkey } from 'is-hotkey';\nimport ReactDOM from 'react-dom';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n/**\r\n * A React context for sharing the editor object.\r\n */\n\nvar EditorContext = /*#__PURE__*/createContext(null);\n/**\r\n * Get the current editor object from the React context.\r\n */\n\nvar useSlateStatic = () => {\n var editor = useContext(EditorContext);\n\n if (!editor) {\n throw new Error(\"The `useSlateStatic` hook must be used inside the <Slate> component's context.\");\n }\n\n return editor;\n};\n\nvar REACT_MAJOR_VERSION = parseInt(React.version.split('.')[0], 10);\nvar IS_IOS = typeof navigator !== 'undefined' && typeof window !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\nvar IS_APPLE = typeof navigator !== 'undefined' && /Mac OS X/.test(navigator.userAgent);\nvar IS_ANDROID = typeof navigator !== 'undefined' && /Android/.test(navigator.userAgent);\nvar IS_FIREFOX = typeof navigator !== 'undefined' && /^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);\nvar IS_WEBKIT = typeof navigator !== 'undefined' && /AppleWebKit(?!.*Chrome)/i.test(navigator.userAgent); // \"modern\" Edge was released at 79.x\n\nvar IS_EDGE_LEGACY = typeof navigator !== 'undefined' && /Edge?\\/(?:[0-6][0-9]|[0-7][0-8])(?:\\.)/i.test(navigator.userAgent);\nvar IS_CHROME = typeof navigator !== 'undefined' && /Chrome/i.test(navigator.userAgent); // Native `beforeInput` events don't work well with react on Chrome 75\n// and older, Chrome 76+ can use `beforeInput` though.\n\nvar IS_CHROME_LEGACY = typeof navigator !== 'undefined' && /Chrome?\\/(?:[0-7][0-5]|[0-6][0-9])(?:\\.)/i.test(navigator.userAgent);\nvar IS_ANDROID_CHROME_LEGACY = IS_ANDROID && typeof navigator !== 'undefined' && /Chrome?\\/(?:[0-5]?\\d)(?:\\.)/i.test(navigator.userAgent); // Firefox did not support `beforeInput` until `v87`.\n\nvar IS_FIREFOX_LEGACY = typeof navigator !== 'undefined' && /^(?!.*Seamonkey)(?=.*Firefox\\/(?:[0-7][0-9]|[0-8][0-6])(?:\\.)).*/i.test(navigator.userAgent); // UC mobile browser\n\nvar IS_UC_MOBILE = typeof navigator !== 'undefined' && /.*UCBrowser/.test(navigator.userAgent); // Wechat browser (not including mac wechat)\n\nvar IS_WECHATBROWSER = typeof navigator !== 'undefined' && /.*Wechat/.test(navigator.userAgent) && !/.*MacWechat/.test(navigator.userAgent); // avoid lookbehind (buggy in safari < 16.4)\n// Check if DOM is available as React does internally.\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\n\nvar CAN_USE_DOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined'); // COMPAT: Firefox/Edge Legacy don't support the `beforeinput` event\n// Chrome Legacy doesn't support `beforeinput` correctly\n\nvar HAS_BEFORE_INPUT_SUPPORT = (!IS_CHROME_LEGACY || !IS_ANDROID_CHROME_LEGACY) && !IS_EDGE_LEGACY && // globalThis is undefined in older browsers\ntypeof globalThis !== 'undefined' && globalThis.InputEvent && // @ts-ignore The `getTargetRanges` property isn't recognized.\ntypeof globalThis.InputEvent.prototype.getTargetRanges === 'function';\n\n/**\r\n * Two weak maps that allow us rebuild a path given a node. They are populated\r\n * at render time such that after a render occurs we can always backtrack.\r\n */\nvar NODE_TO_INDEX = new WeakMap();\nvar NODE_TO_PARENT = new WeakMap();\n/**\r\n * Weak maps that allow us to go between Slate nodes and DOM nodes. These\r\n * are used to resolve DOM event-related logic into Slate actions.\r\n */\n\nvar EDITOR_TO_WINDOW = new WeakMap();\nvar EDITOR_TO_ELEMENT = new WeakMap();\nvar EDITOR_TO_PLACEHOLDER_ELEMENT = new WeakMap();\nvar ELEMENT_TO_NODE = new WeakMap();\nvar NODE_TO_ELEMENT = new WeakMap();\nvar NODE_TO_KEY = new WeakMap();\nvar EDITOR_TO_KEY_TO_ELEMENT = new WeakMap();\n/**\r\n * Weak maps for storing editor-related state.\r\n */\n\nvar IS_READ_ONLY = new WeakMap();\nvar IS_FOCUSED = new WeakMap();\nvar IS_COMPOSING = new WeakMap();\nvar EDITOR_TO_USER_SELECTION = new WeakMap();\n/**\r\n * Weak map for associating the context `onChange` context with the plugin.\r\n */\n\nvar EDITOR_TO_ON_CHANGE = new WeakMap();\n/**\r\n * Weak maps for saving pending state on composition stage.\r\n */\n\nvar EDITOR_TO_SCHEDULE_FLUSH = new WeakMap();\nvar EDITOR_TO_PENDING_INSERTION_MARKS = new WeakMap();\nvar EDITOR_TO_USER_MARKS = new WeakMap();\n/**\r\n * Android input handling specific weak-maps\r\n */\n\nvar EDITOR_TO_PENDING_DIFFS = new WeakMap();\nvar EDITOR_TO_PENDING_ACTION = new WeakMap();\nvar EDITOR_TO_PENDING_SELECTION = new WeakMap();\nvar EDITOR_TO_FORCE_RENDER = new WeakMap();\n/**\r\n * Symbols.\r\n */\n\nvar PLACEHOLDER_SYMBOL = Symbol('placeholder');\nvar MARK_PLACEHOLDER_SYMBOL = Symbol('mark-placeholder');\n\n/**\r\n * Types.\r\n */\nvar DOMText = globalThis.Text;\n/**\r\n * Returns the host window of a DOM node\r\n */\n\nvar getDefaultView = value => {\n return value && value.ownerDocument && value.ownerDocument.defaultView || null;\n};\n/**\r\n * Check if a DOM node is a comment node.\r\n */\n\nvar isDOMComment = value => {\n return isDOMNode(value) && value.nodeType === 8;\n};\n/**\r\n * Check if a DOM node is an element node.\r\n */\n\nvar isDOMElement = value => {\n return isDOMNode(value) && value.nodeType === 1;\n};\n/**\r\n * Check if a value is a DOM node.\r\n */\n\nvar isDOMNode = value => {\n var window = getDefaultView(value);\n return !!window && value instanceof window.Node;\n};\n/**\r\n * Check if a value is a DOM selection.\r\n */\n\nvar isDOMSelection = value => {\n var window = value && value.anchorNode && getDefaultView(value.anchorNode);\n return !!window && value instanceof window.Selection;\n};\n/**\r\n * Check if a DOM node is an element node.\r\n */\n\nvar isDOMText = value => {\n return isDOMNode(value) && value.nodeType === 3;\n};\n/**\r\n * Checks whether a paste event is a plaintext-only event.\r\n */\n\nvar isPlainTextOnlyPaste = event => {\n return event.clipboardData && event.clipboardData.getData('text/plain') !== '' && event.clipboardData.types.length === 1;\n};\n/**\r\n * Normalize a DOM point so that it always refers to a text node.\r\n */\n\nvar normalizeDOMPoint = domPoint => {\n var [node, offset] = domPoint; // If it's an element node, its offset refers to the index of its children\n // including comment nodes, so try to find the right text child node.\n\n if (isDOMElement(node) && node.childNodes.length) {\n var isLast = offset === node.childNodes.length;\n var index = isLast ? offset - 1 : offset;\n [node, index] = getEditableChildAndIndex(node, index, isLast ? 'backward' : 'forward'); // If the editable child found is in front of input offset, we instead seek to its end\n\n isLast = index < offset; // If the node has children, traverse until we have a leaf node. Leaf nodes\n // can be either text nodes, or other void DOM nodes.\n\n while (isDOMElement(node) && node.childNodes.length) {\n var i = isLast ? node.childNodes.length - 1 : 0;\n node = getEditableChild(node, i, isLast ? 'backward' : 'forward');\n } // Determine the new offset inside the text node.\n\n\n offset = isLast && node.textContent != null ? node.textContent.length : 0;\n } // Return the node and offset.\n\n\n return [node, offset];\n};\n/**\r\n * Determines whether the active element is nested within a shadowRoot\r\n */\n\nvar hasShadowRoot = node => {\n var parent = node && node.parentNode;\n\n while (parent) {\n if (parent.toString() === '[object ShadowRoot]') {\n return true;\n }\n\n parent = parent.parentNode;\n }\n\n return false;\n};\n/**\r\n * Get the nearest editable child and index at `index` in a `parent`, preferring\r\n * `direction`.\r\n */\n\nvar getEditableChildAndIndex = (parent, index, direction) => {\n var {\n childNodes\n } = parent;\n var child = childNodes[index];\n var i = index;\n var triedForward = false;\n var triedBackward = false; // While the child is a comment node, or an element node with no children,\n // keep iterating to find a sibling non-void, non-comment node.\n\n while (isDOMComment(child) || isDOMElement(child) && child.childNodes.length === 0 || isDOMElement(child) && child.getAttribute('contenteditable') === 'false') {\n if (triedForward && triedBackward) {\n break;\n }\n\n if (i >= childNodes.length) {\n triedForward = true;\n i = index - 1;\n direction = 'backward';\n continue;\n }\n\n if (i < 0) {\n triedBackward = true;\n i = index + 1;\n direction = 'forward';\n continue;\n }\n\n child = childNodes[i];\n index = i;\n i += direction === 'forward' ? 1 : -1;\n }\n\n return [child, index];\n};\n/**\r\n * Get the nearest editable child at `index` in a `parent`, preferring\r\n * `direction`.\r\n */\n\nvar getEditableChild = (parent, index, direction) => {\n var [child] = getEditableChildAndIndex(parent, index, direction);\n return child;\n};\n/**\r\n * Get a plaintext representation of the content of a node, accounting for block\r\n * elements which get a newline appended.\r\n *\r\n * The domNode must be attached to the DOM.\r\n */\n\nvar getPlainText = domNode => {\n var text = '';\n\n if (isDOMText(domNode) && domNode.nodeValue) {\n return domNode.nodeValue;\n }\n\n if (isDOMElement(domNode)) {\n for (var childNode of Array.from(domNode.childNodes)) {\n text += getPlainText(childNode);\n }\n\n var display = getComputedStyle(domNode).getPropertyValue('display');\n\n if (display === 'block' || display === 'list' || domNode.tagName === 'BR') {\n text += '\\n';\n }\n }\n\n return text;\n};\n/**\r\n * Get x-slate-fragment attribute from data-slate-fragment\r\n */\n\nvar catchSlateFragment = /data-slate-fragment=\"(.+?)\"/m;\nvar getSlateFragmentAttribute = dataTransfer => {\n var htmlData = dataTransfer.getData('text/html');\n var [, fragment] = htmlData.match(catchSlateFragment) || [];\n return fragment;\n};\n/**\r\n * Check whether a mutation originates from a editable element inside the editor.\r\n */\n\nvar isTrackedMutation = (editor, mutation, batch) => {\n var {\n target\n } = mutation;\n\n if (isDOMElement(target) && target.matches('[contentEditable=\"false\"]')) {\n return false;\n }\n\n var {\n document\n } = ReactEditor.getWindow(editor);\n\n if (document.contains(target)) {\n return ReactEditor.hasDOMNode(editor, target, {\n editable: true\n });\n }\n\n var parentMutation = batch.find(_ref => {\n var {\n addedNodes,\n removedNodes\n } = _ref;\n\n for (var node of addedNodes) {\n if (node === target || node.contains(target)) {\n return true;\n }\n }\n\n for (var _node of removedNodes) {\n if (_node === target || _node.contains(target)) {\n return true;\n }\n }\n });\n\n if (!parentMutation || parentMutation === mutation) {\n return false;\n } // Target add/remove is tracked. Track the mutation if we track the parent mutation.\n\n\n return isTrackedMutation(editor, parentMutation, batch);\n};\n\n/**\r\n * An auto-incrementing identifier for keys.\r\n */\nvar n = 0;\n/**\r\n * A class that keeps track of a key string. We use a full class here because we\r\n * want to be able to use them as keys in `WeakMap` objects.\r\n */\n\nclass Key {\n constructor() {\n this.id = \"\".concat(n++);\n }\n\n}\n\nvar ReactEditor = {\n androidPendingDiffs: editor => EDITOR_TO_PENDING_DIFFS.get(editor),\n androidScheduleFlush: editor => {\n var _EDITOR_TO_SCHEDULE_F;\n\n (_EDITOR_TO_SCHEDULE_F = EDITOR_TO_SCHEDULE_FLUSH.get(editor)) === null || _EDITOR_TO_SCHEDULE_F === void 0 ? void 0 : _EDITOR_TO_SCHEDULE_F();\n },\n blur: editor => {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n IS_FOCUSED.set(editor, false);\n\n if (root.activeElement === el) {\n el.blur();\n }\n },\n deselect: editor => {\n var {\n selection\n } = editor;\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n var domSelection = root.getSelection();\n\n if (domSelection && domSelection.rangeCount > 0) {\n domSelection.removeAllRanges();\n }\n\n if (selection) {\n Transforms.deselect(editor);\n }\n },\n findDocumentOrShadowRoot: editor => {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = el.getRootNode();\n\n if ((root instanceof Document || root instanceof ShadowRoot) && root.getSelection != null) {\n return root;\n }\n\n return el.ownerDocument;\n },\n findEventRange: (editor, event) => {\n if ('nativeEvent' in event) {\n event = event.nativeEvent;\n }\n\n var {\n clientX: x,\n clientY: y,\n target\n } = event;\n\n if (x == null || y == null) {\n throw new Error(\"Cannot resolve a Slate range from a DOM event: \".concat(event));\n }\n\n var node = ReactEditor.toSlateNode(editor, event.target);\n var path = ReactEditor.findPath(editor, node); // If the drop target is inside a void node, move it into either the\n // next or previous node, depending on which side the `x` and `y`\n // coordinates are closest to.\n\n if (Element$1.isElement(node) && Editor.isVoid(editor, node)) {\n var rect = target.getBoundingClientRect();\n var isPrev = editor.isInline(node) ? x - rect.left < rect.left + rect.width - x : y - rect.top < rect.top + rect.height - y;\n var edge = Editor.point(editor, path, {\n edge: isPrev ? 'start' : 'end'\n });\n var point = isPrev ? Editor.before(editor, edge) : Editor.after(editor, edge);\n\n if (point) {\n var _range = Editor.range(editor, point);\n\n return _range;\n }\n } // Else resolve a range from the caret position where the drop occured.\n\n\n var domRange;\n var {\n document\n } = ReactEditor.getWindow(editor); // COMPAT: In Firefox, `caretRangeFromPoint` doesn't exist. (2016/07/25)\n\n if (document.caretRangeFromPoint) {\n domRange = document.caretRangeFromPoint(x, y);\n } else {\n var position = document.caretPositionFromPoint(x, y);\n\n if (position) {\n domRange = document.createRange();\n domRange.setStart(position.offsetNode, position.offset);\n domRange.setEnd(position.offsetNode, position.offset);\n }\n }\n\n if (!domRange) {\n throw new Error(\"Cannot resolve a Slate range from a DOM event: \".concat(event));\n } // Resolve a Slate range from the DOM range.\n\n\n var range = ReactEditor.toSlateRange(editor, domRange, {\n exactMatch: false,\n suppressThrow: false\n });\n return range;\n },\n findKey: (editor, node) => {\n var key = NODE_TO_KEY.get(node);\n\n if (!key) {\n key = new Key();\n NODE_TO_KEY.set(node, key);\n }\n\n return key;\n },\n findPath: (editor, node) => {\n var path = [];\n var child = node;\n\n while (true) {\n var parent = NODE_TO_PARENT.get(child);\n\n if (parent == null) {\n if (Editor.isEditor(child)) {\n return path;\n } else {\n break;\n }\n }\n\n var i = NODE_TO_INDEX.get(child);\n\n if (i == null) {\n break;\n }\n\n path.unshift(i);\n child = parent;\n }\n\n throw new Error(\"Unable to find the path for Slate node: \".concat(Scrubber.stringify(node)));\n },\n focus: editor => {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n IS_FOCUSED.set(editor, true);\n\n if (root.activeElement !== el) {\n el.focus({\n preventScroll: true\n });\n }\n },\n getWindow: editor => {\n var window = EDITOR_TO_WINDOW.get(editor);\n\n if (!window) {\n throw new Error('Unable to find a host window element for this editor');\n }\n\n return window;\n },\n hasDOMNode: function hasDOMNode(editor, target) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n editable = false\n } = options;\n var editorEl = ReactEditor.toDOMNode(editor, editor);\n var targetEl; // COMPAT: In Firefox, reading `target.nodeType` will throw an error if\n // target is originating from an internal \"restricted\" element (e.g. a\n // stepper arrow on a number input). (2018/05/04)\n // https://github.com/ianstormtaylor/slate/issues/1819\n\n try {\n targetEl = isDOMElement(target) ? target : target.parentElement;\n } catch (err) {\n if (!err.message.includes('Permission denied to access property \"nodeType\"')) {\n throw err;\n }\n }\n\n if (!targetEl) {\n return false;\n }\n\n return targetEl.closest(\"[data-slate-editor]\") === editorEl && (!editable || targetEl.isContentEditable ? true : typeof targetEl.isContentEditable === 'boolean' && // isContentEditable exists only on HTMLElement, and on other nodes it will be undefined\n // this is the core logic that lets you know you got the right editor.selection instead of null when editor is contenteditable=\"false\"(readOnly)\n targetEl.closest('[contenteditable=\"false\"]') === editorEl || !!targetEl.getAttribute('data-slate-zero-width'));\n },\n hasEditableTarget: (editor, target) => isDOMNode(target) && ReactEditor.hasDOMNode(editor, target, {\n editable: true\n }),\n hasRange: (editor, range) => {\n var {\n anchor,\n focus\n } = range;\n return Editor.hasPath(editor, anchor.path) && Editor.hasPath(editor, focus.path);\n },\n hasSelectableTarget: (editor, target) => ReactEditor.hasEditableTarget(editor, target) || ReactEditor.isTargetInsideNonReadonlyVoid(editor, target),\n hasTarget: (editor, target) => isDOMNode(target) && ReactEditor.hasDOMNode(editor, target),\n insertData: (editor, data) => {\n editor.insertData(data);\n },\n insertFragmentData: (editor, data) => editor.insertFragmentData(data),\n insertTextData: (editor, data) => editor.insertTextData(data),\n isComposing: editor => {\n return !!IS_COMPOSING.get(editor);\n },\n isFocused: editor => !!IS_FOCUSED.get(editor),\n isReadOnly: editor => !!IS_READ_ONLY.get(editor),\n isTargetInsideNonReadonlyVoid: (editor, target) => {\n if (IS_READ_ONLY.get(editor)) return false;\n var slateNode = ReactEditor.hasTarget(editor, target) && ReactEditor.toSlateNode(editor, target);\n return Element$1.isElement(slateNode) && Editor.isVoid(editor, slateNode);\n },\n setFragmentData: (editor, data, originEvent) => editor.setFragmentData(data, originEvent),\n toDOMNode: (editor, node) => {\n var KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor);\n var domNode = Editor.isEditor(node) ? EDITOR_TO_ELEMENT.get(editor) : KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 ? void 0 : KEY_TO_ELEMENT.get(ReactEditor.findKey(editor, node));\n\n if (!domNode) {\n throw new Error(\"Cannot resolve a DOM node from Slate node: \".concat(Scrubber.stringify(node)));\n }\n\n return domNode;\n },\n toDOMPoint: (editor, point) => {\n var [node] = Editor.node(editor, point.path);\n var el = ReactEditor.toDOMNode(editor, node);\n var domPoint; // If we're inside a void node, force the offset to 0, otherwise the zero\n // width spacing character will result in an incorrect offset of 1\n\n if (Editor.void(editor, {\n at: point\n })) {\n point = {\n path: point.path,\n offset: 0\n };\n } // For each leaf, we need to isolate its content, which means filtering\n // to its direct text and zero-width spans. (We have to filter out any\n // other siblings that may have been rendered alongside them.)\n\n\n var selector = \"[data-slate-string], [data-slate-zero-width]\";\n var texts = Array.from(el.querySelectorAll(selector));\n var start = 0;\n\n for (var i = 0; i < texts.length; i++) {\n var text = texts[i];\n var domNode = text.childNodes[0];\n\n if (domNode == null || domNode.textContent == null) {\n continue;\n }\n\n var {\n length\n } = domNode.textContent;\n var attr = text.getAttribute('data-slate-length');\n var trueLength = attr == null ? length : parseInt(attr, 10);\n var end = start + trueLength; // Prefer putting the selection inside the mark placeholder to ensure\n // composed text is displayed with the correct marks.\n\n var nextText = texts[i + 1];\n\n if (point.offset === end && nextText !== null && nextText !== void 0 && nextText.hasAttribute('data-slate-mark-placeholder')) {\n var _nextText$textContent;\n\n var domText = nextText.childNodes[0];\n domPoint = [// COMPAT: If we don't explicity set the dom point to be on the actual\n // dom text element, chrome will put the selection behind the actual dom\n // text element, causing domRange.getBoundingClientRect() calls on a collapsed\n // selection to return incorrect zero values (https://bugs.chromium.org/p/chromium/issues/detail?id=435438)\n // which will cause issues when scrolling to it.\n domText instanceof DOMText ? domText : nextText, (_nextText$textContent = nextText.textContent) !== null && _nextText$textContent !== void 0 && _nextText$textContent.startsWith('\\uFEFF') ? 1 : 0];\n break;\n }\n\n if (point.offset <= end) {\n var offset = Math.min(length, Math.max(0, point.offset - start));\n domPoint = [domNode, offset];\n break;\n }\n\n start = end;\n }\n\n if (!domPoint) {\n throw new Error(\"Cannot resolve a DOM point from Slate point: \".concat(Scrubber.stringify(point)));\n }\n\n return domPoint;\n },\n toDOMRange: (editor, range) => {\n var {\n anchor,\n focus\n } = range;\n var isBackward = Range.isBackward(range);\n var domAnchor = ReactEditor.toDOMPoint(editor, anchor);\n var domFocus = Range.isCollapsed(range) ? domAnchor : ReactEditor.toDOMPoint(editor, focus);\n var window = ReactEditor.getWindow(editor);\n var domRange = window.document.createRange();\n var [startNode, startOffset] = isBackward ? domFocus : domAnchor;\n var [endNode, endOffset] = isBackward ? domAnchor : domFocus; // A slate Point at zero-width Leaf always has an offset of 0 but a native DOM selection at\n // zero-width node has an offset of 1 so we have to check if we are in a zero-width node and\n // adjust the offset accordingly.\n\n var startEl = isDOMElement(startNode) ? startNode : startNode.parentElement;\n var isStartAtZeroWidth = !!startEl.getAttribute('data-slate-zero-width');\n var endEl = isDOMElement(endNode) ? endNode : endNode.parentElement;\n var isEndAtZeroWidth = !!endEl.getAttribute('data-slate-zero-width');\n domRange.setStart(startNode, isStartAtZeroWidth ? 1 : startOffset);\n domRange.setEnd(endNode, isEndAtZeroWidth ? 1 : endOffset);\n return domRange;\n },\n toSlateNode: (editor, domNode) => {\n var domEl = isDOMElement(domNode) ? domNode : domNode.parentElement;\n\n if (domEl && !domEl.hasAttribute('data-slate-node')) {\n domEl = domEl.closest(\"[data-slate-node]\");\n }\n\n var node = domEl ? ELEMENT_TO_NODE.get(domEl) : null;\n\n if (!node) {\n throw new Error(\"Cannot resolve a Slate node from DOM node: \".concat(domEl));\n }\n\n return node;\n },\n toSlatePoint: (editor, domPoint, options) => {\n var {\n exactMatch,\n suppressThrow\n } = options;\n var [nearestNode, nearestOffset] = exactMatch ? domPoint : normalizeDOMPoint(domPoint);\n var parentNode = nearestNode.parentNode;\n var textNode = null;\n var offset = 0;\n\n if (parentNode) {\n var _domNode$textContent, _domNode$textContent2;\n\n var editorEl = ReactEditor.toDOMNode(editor, editor);\n var potentialVoidNode = parentNode.closest('[data-slate-void=\"true\"]'); // Need to ensure that the closest void node is actually a void node\n // within this editor, and not a void node within some parent editor. This can happen\n // if this editor is within a void node of another editor (\"nested editors\", like in\n // the \"Editable Voids\" example on the docs site).\n\n var voidNode = potentialVoidNode && editorEl.contains(potentialVoidNode) ? potentialVoidNode : null;\n var leafNode = parentNode.closest('[data-slate-leaf]');\n var domNode = null; // Calculate how far into the text node the `nearestNode` is, so that we\n // can determine what the offset relative to the text node is.\n\n if (leafNode) {\n textNode = leafNode.closest('[data-slate-node=\"text\"]');\n\n if (textNode) {\n var window = ReactEditor.getWindow(editor);\n var range = window.document.createRange();\n range.setStart(textNode, 0);\n range.setEnd(nearestNode, nearestOffset);\n var contents = range.cloneContents();\n var removals = [...Array.prototype.slice.call(contents.querySelectorAll('[data-slate-zero-width]')), ...Array.prototype.slice.call(contents.querySelectorAll('[contenteditable=false]'))];\n removals.forEach(el => {\n // COMPAT: While composing at the start of a text node, some keyboards put\n // the text content inside the zero width space.\n if (IS_ANDROID && !exactMatch && el.hasAttribute('data-slate-zero-width') && el.textContent.length > 0 && el.textContext !== '\\uFEFF') {\n if (el.textContent.startsWith('\\uFEFF')) {\n el.textContent = el.textContent.slice(1);\n }\n\n return;\n }\n\n el.parentNode.removeChild(el);\n }); // COMPAT: Edge has a bug where Range.prototype.toString() will\n // convert \\n into \\r\\n. The bug causes a loop when slate-react\n // attempts to reposition its cursor to match the native position. Use\n // textContent.length instead.\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10291116/\n\n offset = contents.textContent.length;\n domNode = textNode;\n }\n } else if (voidNode) {\n // For void nodes, the element with the offset key will be a cousin, not an\n // ancestor, so find it by going down from the nearest void parent and taking the\n // first one that isn't inside a nested editor.\n var leafNodes = voidNode.querySelectorAll('[data-slate-leaf]');\n\n for (var index = 0; index < leafNodes.length; index++) {\n var current = leafNodes[index];\n\n if (ReactEditor.hasDOMNode(editor, current)) {\n leafNode = current;\n break;\n }\n } // COMPAT: In read-only editors the leaf is not rendered.\n\n\n if (!leafNode) {\n offset = 1;\n } else {\n textNode = leafNode.closest('[data-slate-node=\"text\"]');\n domNode = leafNode;\n offset = domNode.textContent.length;\n domNode.querySelectorAll('[data-slate-zero-width]').forEach(el => {\n offset -= el.textContent.length;\n });\n }\n }\n\n if (domNode && offset === domNode.textContent.length && // COMPAT: Android IMEs might remove the zero width space while composing,\n // and we don't add it for line-breaks.\n IS_ANDROID && domNode.getAttribute('data-slate-zero-width') === 'z' && (_domNode$textContent = domNode.textContent) !== null && _domNode$textContent !== void 0 && _domNode$textContent.startsWith('\\uFEFF') && (parentNode.hasAttribute('data-slate-zero-width') || IS_FIREFOX && (_domNode$textContent2 = domNode.textContent) !== null && _domNode$textContent2 !== void 0 && _domNode$textContent2.endsWith('\\n\\n'))) {\n offset--;\n }\n }\n\n if (IS_ANDROID && !textNode && !exactMatch) {\n var node = parentNode.hasAttribute('data-slate-node') ? parentNode : parentNode.closest('[data-slate-node]');\n\n if (node && ReactEditor.hasDOMNode(editor, node, {\n editable: true\n })) {\n var _slateNode = ReactEditor.toSlateNode(editor, node);\n\n var {\n path: _path,\n offset: _offset\n } = Editor.start(editor, ReactEditor.findPath(editor, _slateNode));\n\n if (!node.querySelector('[data-slate-leaf]')) {\n _offset = nearestOffset;\n }\n\n return {\n path: _path,\n offset: _offset\n };\n }\n }\n\n if (!textNode) {\n if (suppressThrow) {\n return null;\n }\n\n throw new Error(\"Cannot resolve a Slate point from DOM point: \".concat(domPoint));\n } // COMPAT: If someone is clicking from one Slate editor into another,\n // the select event fires twice, once for the old editor's `element`\n // first, and then afterwards for the correct `element`. (2017/03/03)\n\n\n var slateNode = ReactEditor.toSlateNode(editor, textNode);\n var path = ReactEditor.findPath(editor, slateNode);\n return {\n path,\n offset\n };\n },\n toSlateRange: (editor, domRange, options) => {\n var {\n exactMatch,\n suppressThrow\n } = options;\n var el = isDOMSelection(domRange) ? domRange.anchorNode : domRange.startContainer;\n var anchorNode;\n var anchorOffset;\n var focusNode;\n var focusOffset;\n var isCollapsed;\n\n if (el) {\n if (isDOMSelection(domRange)) {\n // COMPAT: In firefox the normal seletion way does not work\n // (https://github.com/ianstormtaylor/slate/pull/5486#issue-1820720223)\n if (IS_FIREFOX && domRange.rangeCount > 1) {\n focusNode = domRange.focusNode; // Focus node works fine\n\n var firstRange = domRange.getRangeAt(0);\n var lastRange = domRange.getRangeAt(domRange.rangeCount - 1); // Here we are in the contenteditable mode of a table in firefox\n\n if (focusNode instanceof HTMLTableRowElement && firstRange.startContainer instanceof HTMLTableRowElement && lastRange.startContainer instanceof HTMLTableRowElement) {\n // HTMLElement, becouse Element is a slate element\n function getLastChildren(element) {\n if (element.childElementCount > 0) {\n return getLastChildren(element.children[0]);\n } else {\n return element;\n }\n }\n\n var firstNodeRow = firstRange.startContainer;\n var lastNodeRow = lastRange.startContainer; // This should never fail as \"The HTMLElement interface represents any HTML element.\"\n\n var firstNode = getLastChildren(firstNodeRow.children[firstRange.startOffset]);\n var lastNode = getLastChildren(lastNodeRow.children[lastRange.startOffset]); // Zero, as we allways take the right one as the anchor point\n\n focusOffset = 0;\n\n if (lastNode.childNodes.length > 0) {\n anchorNode = lastNode.childNodes[0];\n } else {\n anchorNode = lastNode;\n }\n\n if (firstNode.childNodes.length > 0) {\n focusNode = firstNode.childNodes[0];\n } else {\n focusNode = firstNode;\n }\n\n if (lastNode instanceof HTMLElement) {\n anchorOffset = lastNode.innerHTML.length;\n } else {\n // Fallback option\n anchorOffset = 0;\n }\n } else {\n // This is the read only mode of a firefox table\n // Right to left\n if (firstRange.startContainer === focusNode) {\n anchorNode = lastRange.endContainer;\n anchorOffset = lastRange.endOffset;\n focusOffset = firstRange.startOffset;\n } else {\n // Left to right\n anchorNode = firstRange.startContainer;\n anchorOffset = firstRange.endOffset;\n focusOffset = lastRange.startOffset;\n }\n }\n } else {\n anchorNode = domRange.anchorNode;\n anchorOffset = domRange.anchorOffset;\n focusNode = domRange.focusNode;\n focusOffset = domRange.focusOffset;\n } // COMPAT: There's a bug in chrome that always returns `true` for\n // `isCollapsed` for a Selection that comes from a ShadowRoot.\n // (2020/08/08)\n // https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n // IsCollapsed might not work in firefox, but this will\n\n\n if (IS_CHROME && hasShadowRoot(anchorNode) || IS_FIREFOX) {\n isCollapsed = domRange.anchorNode === domRange.focusNode && domRange.anchorOffset === domRange.focusOffset;\n } else {\n isCollapsed = domRange.isCollapsed;\n }\n } else {\n anchorNode = domRange.startContainer;\n anchorOffset = domRange.startOffset;\n focusNode = domRange.endContainer;\n focusOffset = domRange.endOffset;\n isCollapsed = domRange.collapsed;\n }\n }\n\n if (anchorNode == null || focusNode == null || anchorOffset == null || focusOffset == null) {\n throw new Error(\"Cannot resolve a Slate range from DOM range: \".concat(domRange));\n } // COMPAT: Triple-clicking a word in chrome will sometimes place the focus\n // inside a `contenteditable=\"false\"` DOM node following the word, which\n // will cause `toSlatePoint` to throw an error. (2023/03/07)\n\n\n if ('getAttribute' in focusNode && focusNode.getAttribute('contenteditable') === 'false' && focusNode.getAttribute('data-slate-void') !== 'true') {\n var _anchorNode$textConte;\n\n focusNode = anchorNode;\n focusOffset = ((_anchorNode$textConte = anchorNode.textContent) === null || _anchorNode$textConte === void 0 ? void 0 : _anchorNode$textConte.length) || 0;\n }\n\n var anchor = ReactEditor.toSlatePoint(editor, [anchorNode, anchorOffset], {\n exactMatch,\n suppressThrow\n });\n\n if (!anchor) {\n return null;\n }\n\n var focus = isCollapsed ? anchor : ReactEditor.toSlatePoint(editor, [focusNode, focusOffset], {\n exactMatch,\n suppressThrow\n });\n\n if (!focus) {\n return null;\n }\n\n var range = {\n anchor: anchor,\n focus: focus\n }; // if the selection is a hanging range that ends in a void\n // and the DOM focus is an Element\n // (meaning that the selection ends before the element)\n // unhang the range to avoid mistakenly including the void\n\n if (Range.isExpanded(range) && Range.isForward(range) && isDOMElement(focusNode) && Editor.void(editor, {\n at: range.focus,\n mode: 'highest'\n })) {\n range = Editor.unhangRange(editor, range, {\n voids: true\n });\n }\n\n return range;\n }\n};\n\n/**\r\n * Check whether a text diff was applied in a way we can perform the pending action on /\r\n * recover the pending selection.\r\n */\n\nfunction verifyDiffState(editor, textDiff) {\n var {\n path,\n diff\n } = textDiff;\n\n if (!Editor.hasPath(editor, path)) {\n return false;\n }\n\n var node = Node.get(editor, path);\n\n if (!Text$1.isText(node)) {\n return false;\n }\n\n if (diff.start !== node.text.length || diff.text.length === 0) {\n return node.text.slice(diff.start, diff.start + diff.text.length) === diff.text;\n }\n\n var nextPath = Path.next(path);\n\n if (!Editor.hasPath(editor, nextPath)) {\n return false;\n }\n\n var nextNode = Node.get(editor, nextPath);\n return Text$1.isText(nextNode) && nextNode.text.startsWith(diff.text);\n}\nfunction applyStringDiff(text) {\n for (var _len = arguments.length, diffs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n diffs[_key - 1] = arguments[_key];\n }\n\n return diffs.reduce((text, diff) => text.slice(0, diff.start) + diff.text + text.slice(diff.end), text);\n}\n\nfunction longestCommonPrefixLength(str, another) {\n var length = Math.min(str.length, another.length);\n\n for (var i = 0; i < length; i++) {\n if (str.charAt(i) !== another.charAt(i)) {\n return i;\n }\n }\n\n return length;\n}\n\nfunction longestCommonSuffixLength(str, another, max) {\n var length = Math.min(str.length, another.length, max);\n\n for (var i = 0; i < length; i++) {\n if (str.charAt(str.length - i - 1) !== another.charAt(another.length - i - 1)) {\n return i;\n }\n }\n\n return length;\n}\n/**\r\n * Remove redundant changes from the diff so that it spans the minimal possible range\r\n */\n\n\nfunction normalizeStringDiff(targetText, diff) {\n var {\n start,\n end,\n text\n } = diff;\n var removedText = targetText.slice(start, end);\n var prefixLength = longestCommonPrefixLength(removedText, text);\n var max = Math.min(removedText.length - prefixLength, text.length - prefixLength);\n var suffixLength = longestCommonSuffixLength(removedText, text, max);\n var normalized = {\n start: start + prefixLength,\n end: end - suffixLength,\n text: text.slice(prefixLength, text.length - suffixLength)\n };\n\n if (normalized.start === normalized.end && normalized.text.length === 0) {\n return null;\n }\n\n return normalized;\n}\n/**\r\n * Return a string diff that is equivalent to applying b after a spanning the range of\r\n * both changes\r\n */\n\nfunction mergeStringDiffs(targetText, a, b) {\n var start = Math.min(a.start, b.start);\n var overlap = Math.max(0, Math.min(a.start + a.text.length, b.end) - b.start);\n var applied = applyStringDiff(targetText, a, b);\n var sliceEnd = Math.max(b.start + b.text.length, a.start + a.text.length + (a.start + a.text.length > b.start ? b.text.length : 0) - overlap);\n var text = applied.slice(start, sliceEnd);\n var end = Math.max(a.end, b.end - a.text.length + (a.end - a.start));\n return normalizeStringDiff(targetText, {\n start,\n end,\n text\n });\n}\n/**\r\n * Get the slate range the text diff spans.\r\n */\n\nfunction targetRange(textDiff) {\n var {\n path,\n diff\n } = textDiff;\n return {\n anchor: {\n path,\n offset: diff.start\n },\n focus: {\n path,\n offset: diff.end\n }\n };\n}\n/**\r\n * Normalize a 'pending point' a.k.a a point based on the dom state before applying\r\n * the pending diffs. Since the pending diffs might have been inserted with different\r\n * marks we have to 'walk' the offset from the starting position to ensure we still\r\n * have a valid point inside the document\r\n */\n\nfunction normalizePoint(editor, point) {\n var {\n path,\n offset\n } = point;\n\n if (!Editor.hasPath(editor, path)) {\n return null;\n }\n\n var leaf = Node.get(editor, path);\n\n if (!Text$1.isText(leaf)) {\n return null;\n }\n\n var parentBlock = Editor.above(editor, {\n match: n => Element$1.isElement(n) && Editor.isBlock(editor, n),\n at: path\n });\n\n if (!parentBlock) {\n return null;\n }\n\n while (offset > leaf.text.length) {\n var entry = Editor.next(editor, {\n at: path,\n match: Text$1.isText\n });\n\n if (!entry || !Path.isDescendant(entry[1], parentBlock[1])) {\n return null;\n }\n\n offset -= leaf.text.length;\n leaf = entry[0];\n path = entry[1];\n }\n\n return {\n path,\n offset\n };\n}\n/**\r\n * Normalize a 'pending selection' to ensure it's valid in the current document state.\r\n */\n\nfunction normalizeRange(editor, range) {\n var anchor = normalizePoint(editor, range.anchor);\n\n if (!anchor) {\n return null;\n }\n\n if (Range.isCollapsed(range)) {\n return {\n anchor,\n focus: anchor\n };\n }\n\n var focus = normalizePoint(editor, range.focus);\n\n if (!focus) {\n return null;\n }\n\n return {\n anchor,\n focus\n };\n}\nfunction transformPendingPoint(editor, point, op) {\n var pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(editor);\n var textDiff = pendingDiffs === null || pendingDiffs === void 0 ? void 0 : pendingDiffs.find(_ref => {\n var {\n path\n } = _ref;\n return Path.equals(path, point.path);\n });\n\n if (!textDiff || point.offset <= textDiff.diff.start) {\n return Point.transform(point, op, {\n affinity: 'backward'\n });\n }\n\n var {\n diff\n } = textDiff; // Point references location inside the diff => transform the point based on the location\n // the diff will be applied to and add the offset inside the diff.\n\n if (point.offset <= diff.start + diff.text.length) {\n var _anchor = {\n path: point.path,\n offset: diff.start\n };\n\n var _transformed = Point.transform(_anchor, op, {\n affinity: 'backward'\n });\n\n if (!_transformed) {\n return null;\n }\n\n return {\n path: _transformed.path,\n offset: _transformed.offset + point.offset - diff.start\n };\n } // Point references location after the diff\n\n\n var anchor = {\n path: point.path,\n offset: point.offset - diff.text.length + diff.end - diff.start\n };\n var transformed = Point.transform(anchor, op, {\n affinity: 'backward'\n });\n\n if (!transformed) {\n return null;\n }\n\n if (op.type === 'split_node' && Path.equals(op.path, point.path) && anchor.offset < op.position && diff.start < op.position) {\n return transformed;\n }\n\n return {\n path: transformed.path,\n offset: transformed.offset + diff.text.length - diff.end + diff.start\n };\n}\nfunction transformPendingRange(editor, range, op) {\n var anchor = transformPendingPoint(editor, range.anchor, op);\n\n if (!anchor) {\n return null;\n }\n\n if (Range.isCollapsed(range)) {\n return {\n anchor,\n focus: anchor\n };\n }\n\n var focus = transformPendingPoint(editor, range.focus, op);\n\n if (!focus) {\n return null;\n }\n\n return {\n anchor,\n focus\n };\n}\nfunction transformTextDiff(textDiff, op) {\n var {\n path,\n diff,\n id\n } = textDiff;\n\n switch (op.type) {\n case 'insert_text':\n {\n if (!Path.equals(op.path, path) || op.offset >= diff.end) {\n return textDiff;\n }\n\n if (op.offset <= diff.start) {\n return {\n diff: {\n start: op.text.length + diff.start,\n end: op.text.length + diff.end,\n text: diff.text\n },\n id,\n path\n };\n }\n\n return {\n diff: {\n start: diff.start,\n end: diff.end + op.text.length,\n text: diff.text\n },\n id,\n path\n };\n }\n\n case 'remove_text':\n {\n if (!Path.equals(op.path, path) || op.offset >= diff.end) {\n return textDiff;\n }\n\n if (op.offset + op.text.length <= diff.start) {\n return {\n diff: {\n start: diff.start - op.text.length,\n end: diff.end - op.text.length,\n text: diff.text\n },\n id,\n path\n };\n }\n\n return {\n diff: {\n start: diff.start,\n end: diff.end - op.text.length,\n text: diff.text\n },\n id,\n path\n };\n }\n\n case 'split_node':\n {\n if (!Path.equals(op.path, path) || op.position >= diff.end) {\n return {\n diff,\n id,\n path: Path.transform(path, op, {\n affinity: 'backward'\n })\n };\n }\n\n if (op.position > diff.start) {\n return {\n diff: {\n start: diff.start,\n end: Math.min(op.position, diff.end),\n text: diff.text\n },\n id,\n path\n };\n }\n\n return {\n diff: {\n start: diff.start - op.position,\n end: diff.end - op.position,\n text: diff.text\n },\n id,\n path: Path.transform(path, op, {\n affinity: 'forward'\n })\n };\n }\n\n case 'merge_node':\n {\n if (!Path.equals(op.path, path)) {\n return {\n diff,\n id,\n path: Path.transform(path, op)\n };\n }\n\n return {\n diff: {\n start: diff.start + op.position,\n end: diff.end + op.position,\n text: diff.text\n },\n id,\n path: Path.transform(path, op)\n };\n }\n }\n\n var newPath = Path.transform(path, op);\n\n if (!newPath) {\n return null;\n }\n\n return {\n diff,\n path: newPath,\n id\n };\n}\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n// When using keyboard English association function, conpositionEnd triggered too fast, resulting in after `insertText` still maintain association state.\n\nvar RESOLVE_DELAY = 25; // Time with no user interaction before the current user action is considered as done.\n\nvar FLUSH_DELAY = 200; // Replace with `const debug = console.log` to debug\n\nvar debug = function debug() {}; // Type guard to check if a value is a DataTransfer\n\n\nvar isDataTransfer = value => (value === null || value === void 0 ? void 0 : value.constructor.name) === 'DataTransfer';\n\nfunction createAndroidInputManager(_ref) {\n var {\n editor,\n scheduleOnDOMSelectionChange,\n onDOMSelectionChange\n } = _ref;\n var flushing = false;\n var compositionEndTimeoutId = null;\n var flushTimeoutId = null;\n var actionTimeoutId = null;\n var idCounter = 0;\n var insertPositionHint = false;\n\n var applyPendingSelection = () => {\n var pendingSelection = EDITOR_TO_PENDING_SELECTION.get(editor);\n EDITOR_TO_PENDING_SELECTION.delete(editor);\n\n if (pendingSelection) {\n var {\n selection\n } = editor;\n var normalized = normalizeRange(editor, pendingSelection);\n\n if (normalized && (!selection || !Range.equals(normalized, selection))) {\n Transforms.select(editor, normalized);\n }\n }\n };\n\n var performAction = () => {\n var action = EDITOR_TO_PENDING_ACTION.get(editor);\n EDITOR_TO_PENDING_ACTION.delete(editor);\n\n if (!action) {\n return;\n }\n\n if (action.at) {\n var target = Point.isPoint(action.at) ? normalizePoint(editor, action.at) : normalizeRange(editor, action.at);\n\n if (!target) {\n return;\n }\n\n var _targetRange = Editor.range(editor, target);\n\n if (!editor.selection || !Range.equals(editor.selection, _targetRange)) {\n Transforms.select(editor, target);\n }\n }\n\n action.run();\n };\n\n var flush = () => {\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId);\n flushTimeoutId = null;\n }\n\n if (actionTimeoutId) {\n clearTimeout(actionTimeoutId);\n actionTimeoutId = null;\n }\n\n if (!hasPendingDiffs() && !hasPendingAction()) {\n applyPendingSelection();\n return;\n }\n\n if (!flushing) {\n flushing = true;\n setTimeout(() => flushing = false);\n }\n\n if (hasPendingAction()) {\n flushing = 'action';\n }\n\n var selectionRef = editor.selection && Editor.rangeRef(editor, editor.selection, {\n affinity: 'forward'\n });\n EDITOR_TO_USER_MARKS.set(editor, editor.marks);\n debug('flush', EDITOR_TO_PENDING_ACTION.get(editor), EDITOR_TO_PENDING_DIFFS.get(editor));\n var scheduleSelectionChange = hasPendingDiffs();\n var diff;\n\n while (diff = (_EDITOR_TO_PENDING_DI = EDITOR_TO_PENDING_DIFFS.get(editor)) === null || _EDITOR_TO_PENDING_DI === void 0 ? void 0 : _EDITOR_TO_PENDING_DI[0]) {\n var _EDITOR_TO_PENDING_DI, _EDITOR_TO_PENDING_DI2;\n\n var pendingMarks = EDITOR_TO_PENDING_INSERTION_MARKS.get(editor);\n\n if (pendingMarks !== undefined) {\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor);\n editor.marks = pendingMarks;\n }\n\n if (pendingMarks && insertPositionHint === false) {\n insertPositionHint = null;\n }\n\n var range = targetRange(diff);\n\n if (!editor.selection || !Range.equals(editor.selection, range)) {\n Transforms.select(editor, range);\n }\n\n if (diff.diff.text) {\n Editor.insertText(editor, diff.diff.text);\n } else {\n Editor.deleteFragment(editor);\n } // Remove diff only after we have applied it to account for it when transforming\n // pending ranges.\n\n\n EDITOR_TO_PENDING_DIFFS.set(editor, (_EDITOR_TO_PENDING_DI2 = EDITOR_TO_PENDING_DIFFS.get(editor)) === null || _EDITOR_TO_PENDING_DI2 === void 0 ? void 0 : _EDITOR_TO_PENDING_DI2.filter(_ref2 => {\n var {\n id\n } = _ref2;\n return id !== diff.id;\n }));\n\n if (!verifyDiffState(editor, diff)) {\n scheduleSelectionChange = false;\n EDITOR_TO_PENDING_ACTION.delete(editor);\n EDITOR_TO_USER_MARKS.delete(editor);\n flushing = 'action'; // Ensure we don't restore the pending user (dom) selection\n // since the document and dom state do not match.\n\n EDITOR_TO_PENDING_SELECTION.delete(editor);\n scheduleOnDOMSelectionChange.cancel();\n onDOMSelectionChange.cancel();\n selectionRef === null || selectionRef === void 0 ? void 0 : selectionRef.unref();\n }\n }\n\n var selection = selectionRef === null || selectionRef === void 0 ? void 0 : selectionRef.unref();\n\n if (selection && !EDITOR_TO_PENDING_SELECTION.get(editor) && (!editor.selection || !Range.equals(selection, editor.selection))) {\n Transforms.select(editor, selection);\n }\n\n if (hasPendingAction()) {\n performAction();\n return;\n } // COMPAT: The selectionChange event is fired after the action is performed,\n // so we have to manually schedule it to ensure we don't 'throw away' the selection\n // while rendering if we have pending changes.\n\n\n if (scheduleSelectionChange) {\n scheduleOnDOMSelectionChange();\n }\n\n scheduleOnDOMSelectionChange.flush();\n onDOMSelectionChange.flush();\n applyPendingSelection();\n var userMarks = EDITOR_TO_USER_MARKS.get(editor);\n EDITOR_TO_USER_MARKS.delete(editor);\n\n if (userMarks !== undefined) {\n editor.marks = userMarks;\n editor.onChange();\n }\n };\n\n var handleCompositionEnd = _event => {\n if (compositionEndTimeoutId) {\n clearTimeout(compositionEndTimeoutId);\n }\n\n compositionEndTimeoutId = setTimeout(() => {\n IS_COMPOSING.set(editor, false);\n flush();\n }, RESOLVE_DELAY);\n };\n\n var handleCompositionStart = _event => {\n IS_COMPOSING.set(editor, true);\n\n if (compositionEndTimeoutId) {\n clearTimeout(compositionEndTimeoutId);\n compositionEndTimeoutId = null;\n }\n };\n\n var updatePlaceholderVisibility = function updatePlaceholderVisibility() {\n var forceHide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var placeholderElement = EDITOR_TO_PLACEHOLDER_ELEMENT.get(editor);\n\n if (!placeholderElement) {\n return;\n }\n\n if (hasPendingDiffs() || forceHide) {\n placeholderElement.style.display = 'none';\n return;\n }\n\n placeholderElement.style.removeProperty('display');\n };\n\n var storeDiff = (path, diff) => {\n var _EDITOR_TO_PENDING_DI3;\n var pendingDiffs = (_EDITOR_TO_PENDING_DI3 = EDITOR_TO_PENDING_DIFFS.get(editor)) !== null && _EDITOR_TO_PENDING_DI3 !== void 0 ? _EDITOR_TO_PENDING_DI3 : [];\n EDITOR_TO_PENDING_DIFFS.set(editor, pendingDiffs);\n var target = Node.leaf(editor, path);\n var idx = pendingDiffs.findIndex(change => Path.equals(change.path, path));\n\n if (idx < 0) {\n var normalized = normalizeStringDiff(target.text, diff);\n\n if (normalized) {\n pendingDiffs.push({\n path,\n diff,\n id: idCounter++\n });\n }\n\n updatePlaceholderVisibility();\n return;\n }\n\n var merged = mergeStringDiffs(target.text, pendingDiffs[idx].diff, diff);\n\n if (!merged) {\n pendingDiffs.splice(idx, 1);\n updatePlaceholderVisibility();\n return;\n }\n\n pendingDiffs[idx] = _objectSpread$3(_objectSpread$3({}, pendingDiffs[idx]), {}, {\n diff: merged\n });\n };\n\n var scheduleAction = function scheduleAction(run) {\n var {\n at\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n insertPositionHint = false;\n EDITOR_TO_PENDING_SELECTION.delete(editor);\n scheduleOnDOMSelectionChange.cancel();\n onDOMSelectionChange.cancel();\n\n if (hasPendingAction()) {\n flush();\n }\n\n EDITOR_TO_PENDING_ACTION.set(editor, {\n at,\n run\n }); // COMPAT: When deleting before a non-contenteditable element chrome only fires a beforeinput,\n // (no input) and doesn't perform any dom mutations. Without a flush timeout we would never flush\n // in this case and thus never actually perform the action.\n\n actionTimeoutId = setTimeout(flush);\n };\n\n var handleDOMBeforeInput = event => {\n var _targetRange2;\n\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId);\n flushTimeoutId = null;\n }\n\n var {\n inputType: type\n } = event;\n var targetRange = null;\n var data = event.dataTransfer || event.data || undefined;\n\n if (insertPositionHint !== false && type !== 'insertText' && type !== 'insertCompositionText') {\n insertPositionHint = false;\n }\n\n var [nativeTargetRange] = event.getTargetRanges();\n\n if (nativeTargetRange) {\n targetRange = ReactEditor.toSlateRange(editor, nativeTargetRange, {\n exactMatch: false,\n suppressThrow: true\n });\n } // COMPAT: SelectionChange event is fired after the action is performed, so we\n // have to manually get the selection here to ensure it's up-to-date.\n\n\n var window = ReactEditor.getWindow(editor);\n var domSelection = window.getSelection();\n\n if (!targetRange && domSelection) {\n nativeTargetRange = domSelection;\n targetRange = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true\n });\n }\n\n targetRange = (_targetRange2 = targetRange) !== null && _targetRange2 !== void 0 ? _targetRange2 : editor.selection;\n\n if (!targetRange) {\n return;\n } // By default, the input manager tries to store text diffs so that we can\n // defer flushing them at a later point in time. We don't want to flush\n // for every input event as this can be expensive. However, there are some\n // scenarios where we cannot safely store the text diff and must instead\n // schedule an action to let Slate normalize the editor state.\n\n\n var canStoreDiff = true;\n\n if (type.startsWith('delete')) {\n if (Range.isExpanded(targetRange)) {\n var [_start, _end] = Range.edges(targetRange);\n\n var _leaf = Node.leaf(editor, _start.path);\n\n if (_leaf.text.length === _start.offset && _end.offset === 0) {\n var next = Editor.next(editor, {\n at: _start.path,\n match: Text$1.isText\n });\n\n if (next && Path.equals(next[1], _end.path)) {\n targetRange = {\n anchor: _end,\n focus: _end\n };\n }\n }\n }\n\n var direction = type.endsWith('Backward') ? 'backward' : 'forward';\n var [start, end] = Range.edges(targetRange);\n var [leaf, path] = Editor.leaf(editor, start.path);\n var diff = {\n text: '',\n start: start.offset,\n end: end.offset\n };\n var pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(editor);\n var relevantPendingDiffs = pendingDiffs === null || pendingDiffs === void 0 ? void 0 : pendingDiffs.find(change => Path.equals(change.path, path));\n var diffs = relevantPendingDiffs ? [relevantPendingDiffs.diff, diff] : [diff];\n var text = applyStringDiff(leaf.text, ...diffs);\n\n if (text.length === 0) {\n // Text leaf will be removed, so we need to schedule an\n // action to remove it so that Slate can normalize instead\n // of storing as a diff\n canStoreDiff = false;\n }\n\n if (Range.isExpanded(targetRange)) {\n if (canStoreDiff && Path.equals(targetRange.anchor.path, targetRange.focus.path)) {\n var point = {\n path: targetRange.anchor.path,\n offset: start.offset\n };\n var range = Editor.range(editor, point, point);\n handleUserSelect(range);\n return storeDiff(targetRange.anchor.path, {\n text: '',\n end: end.offset,\n start: start.offset\n });\n }\n\n return scheduleAction(() => Editor.deleteFragment(editor, {\n direction\n }), {\n at: targetRange\n });\n }\n }\n\n switch (type) {\n case 'deleteByComposition':\n case 'deleteByCut':\n case 'deleteByDrag':\n {\n return scheduleAction(() => Editor.deleteFragment(editor), {\n at: targetRange\n });\n }\n\n case 'deleteContent':\n case 'deleteContentForward':\n {\n var {\n anchor\n } = targetRange;\n\n if (canStoreDiff && Range.isCollapsed(targetRange)) {\n var targetNode = Node.leaf(editor, anchor.path);\n\n if (anchor.offset < targetNode.text.length) {\n return storeDiff(anchor.path, {\n text: '',\n start: anchor.offset,\n end: anchor.offset + 1\n });\n }\n }\n\n return scheduleAction(() => Editor.deleteForward(editor), {\n at: targetRange\n });\n }\n\n case 'deleteContentBackward':\n {\n var _nativeTargetRange;\n\n var {\n anchor: _anchor\n } = targetRange; // If we have a mismatch between the native and slate selection being collapsed\n // we are most likely deleting a zero-width placeholder and thus should perform it\n // as an action to ensure correct behavior (mostly happens with mark placeholders)\n\n var nativeCollapsed = isDOMSelection(nativeTargetRange) ? nativeTargetRange.isCollapsed : !!((_nativeTargetRange = nativeTargetRange) !== null && _nativeTargetRange !== void 0 && _nativeTargetRange.collapsed);\n\n if (canStoreDiff && nativeCollapsed && Range.isCollapsed(targetRange) && _anchor.offset > 0) {\n return storeDiff(_anchor.path, {\n text: '',\n start: _anchor.offset - 1,\n end: _anchor.offset\n });\n }\n\n return scheduleAction(() => Editor.deleteBackward(editor), {\n at: targetRange\n });\n }\n\n case 'deleteEntireSoftLine':\n {\n return scheduleAction(() => {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n }, {\n at: targetRange\n });\n }\n\n case 'deleteHardLineBackward':\n {\n return scheduleAction(() => Editor.deleteBackward(editor, {\n unit: 'block'\n }), {\n at: targetRange\n });\n }\n\n case 'deleteSoftLineBackward':\n {\n return scheduleAction(() => Editor.deleteBackward(editor, {\n unit: 'line'\n }), {\n at: targetRange\n });\n }\n\n case 'deleteHardLineForward':\n {\n return scheduleAction(() => Editor.deleteForward(editor, {\n unit: 'block'\n }), {\n at: targetRange\n });\n }\n\n case 'deleteSoftLineForward':\n {\n return scheduleAction(() => Editor.deleteForward(editor, {\n unit: 'line'\n }), {\n at: targetRange\n });\n }\n\n case 'deleteWordBackward':\n {\n return scheduleAction(() => Editor.deleteBackward(editor, {\n unit: 'word'\n }), {\n at: targetRange\n });\n }\n\n case 'deleteWordForward':\n {\n return scheduleAction(() => Editor.deleteForward(editor, {\n unit: 'word'\n }), {\n at: targetRange\n });\n }\n\n case 'insertLineBreak':\n {\n return scheduleAction(() => Editor.insertSoftBreak(editor), {\n at: targetRange\n });\n }\n\n case 'insertParagraph':\n {\n return scheduleAction(() => Editor.insertBreak(editor), {\n at: targetRange\n });\n }\n\n case 'insertCompositionText':\n case 'deleteCompositionText':\n case 'insertFromComposition':\n case 'insertFromDrop':\n case 'insertFromPaste':\n case 'insertFromYank':\n case 'insertReplacementText':\n case 'insertText':\n {\n if (isDataTransfer(data)) {\n return scheduleAction(() => ReactEditor.insertData(editor, data), {\n at: targetRange\n });\n }\n\n var _text = data !== null && data !== void 0 ? data : ''; // COMPAT: If we are writing inside a placeholder, the ime inserts the text inside\n // the placeholder itself and thus includes the zero-width space inside edit events.\n\n\n if (EDITOR_TO_PENDING_INSERTION_MARKS.get(editor)) {\n _text = _text.replace('\\uFEFF', '');\n } // Pastes from the Android clipboard will generate `insertText` events.\n // If the copied text contains any newlines, Android will append an\n // extra newline to the end of the copied text.\n\n\n if (type === 'insertText' && /.*\\n.*\\n$/.test(_text)) {\n _text = _text.slice(0, -1);\n } // If the text includes a newline, split it at newlines and paste each component\n // string, with soft breaks in between each.\n\n\n if (_text.includes('\\n')) {\n return scheduleAction(() => {\n var parts = _text.split('\\n');\n\n parts.forEach((line, i) => {\n if (line) {\n Editor.insertText(editor, line);\n }\n\n if (i !== parts.length - 1) {\n Editor.insertSoftBreak(editor);\n }\n });\n }, {\n at: targetRange\n });\n }\n\n if (Path.equals(targetRange.anchor.path, targetRange.focus.path)) {\n var [_start2, _end2] = Range.edges(targetRange);\n var _diff = {\n start: _start2.offset,\n end: _end2.offset,\n text: _text\n }; // COMPAT: Swiftkey has a weird bug where the target range of the 2nd word\n // inserted after a mark placeholder is inserted with an anchor offset off by 1.\n // So writing 'some text' will result in 'some ttext'. Luckily all 'normal' insert\n // text events are fired with the correct target ranges, only the final 'insertComposition'\n // isn't, so we can adjust the target range start offset if we are confident this is the\n // swiftkey insert causing the issue.\n\n if (_text && insertPositionHint && type === 'insertCompositionText') {\n var hintPosition = insertPositionHint.start + insertPositionHint.text.search(/\\S|$/);\n\n var diffPosition = _diff.start + _diff.text.search(/\\S|$/);\n\n if (diffPosition === hintPosition + 1 && _diff.end === insertPositionHint.start + insertPositionHint.text.length) {\n _diff.start -= 1;\n insertPositionHint = null;\n scheduleFlush();\n } else {\n insertPositionHint = false;\n }\n } else if (type === 'insertText') {\n if (insertPositionHint === null) {\n insertPositionHint = _diff;\n } else if (insertPositionHint && Range.isCollapsed(targetRange) && insertPositionHint.end + insertPositionHint.text.length === _start2.offset) {\n insertPositionHint = _objectSpread$3(_objectSpread$3({}, insertPositionHint), {}, {\n text: insertPositionHint.text + _text\n });\n } else {\n insertPositionHint = false;\n }\n } else {\n insertPositionHint = false;\n }\n\n if (canStoreDiff) {\n storeDiff(_start2.path, _diff);\n return;\n }\n }\n\n return scheduleAction(() => Editor.insertText(editor, _text), {\n at: targetRange\n });\n }\n }\n };\n\n var hasPendingAction = () => {\n return !!EDITOR_TO_PENDING_ACTION.get(editor);\n };\n\n var hasPendingDiffs = () => {\n var _EDITOR_TO_PENDING_DI4;\n\n return !!((_EDITOR_TO_PENDING_DI4 = EDITOR_TO_PENDING_DIFFS.get(editor)) !== null && _EDITOR_TO_PENDING_DI4 !== void 0 && _EDITOR_TO_PENDING_DI4.length);\n };\n\n var hasPendingChanges = () => {\n return hasPendingAction() || hasPendingDiffs();\n };\n\n var isFlushing = () => {\n return flushing;\n };\n\n var handleUserSelect = range => {\n EDITOR_TO_PENDING_SELECTION.set(editor, range);\n\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId);\n flushTimeoutId = null;\n }\n\n var {\n selection\n } = editor;\n\n if (!range) {\n return;\n }\n\n var pathChanged = !selection || !Path.equals(selection.anchor.path, range.anchor.path);\n var parentPathChanged = !selection || !Path.equals(selection.anchor.path.slice(0, -1), range.anchor.path.slice(0, -1));\n\n if (pathChanged && insertPositionHint || parentPathChanged) {\n insertPositionHint = false;\n }\n\n if (pathChanged || hasPendingDiffs()) {\n flushTimeoutId = setTimeout(flush, FLUSH_DELAY);\n }\n };\n\n var handleInput = () => {\n if (hasPendingAction() || !hasPendingDiffs()) {\n flush();\n }\n };\n\n var handleKeyDown = _ => {\n // COMPAT: Swiftkey closes the keyboard when typing inside a empty node\n // directly next to a non-contenteditable element (= the placeholder).\n // The only event fired soon enough for us to allow hiding the placeholder\n // without swiftkey picking it up is the keydown event, so we have to hide it\n // here. See https://github.com/ianstormtaylor/slate/pull/4988#issuecomment-1201050535\n if (!hasPendingDiffs()) {\n updatePlaceholderVisibility(true);\n setTimeout(updatePlaceholderVisibility);\n }\n };\n\n var scheduleFlush = () => {\n if (!hasPendingAction()) {\n actionTimeoutId = setTimeout(flush);\n }\n };\n\n var handleDomMutations = mutations => {\n if (hasPendingDiffs() || hasPendingAction()) {\n return;\n }\n\n if (mutations.some(mutation => isTrackedMutation(editor, mutation, mutations))) {\n var _EDITOR_TO_FORCE_REND;\n\n // Cause a re-render to restore the dom state if we encounter tracked mutations without\n // a corresponding pending action.\n (_EDITOR_TO_FORCE_REND = EDITOR_TO_FORCE_RENDER.get(editor)) === null || _EDITOR_TO_FORCE_REND === void 0 ? void 0 : _EDITOR_TO_FORCE_REND();\n }\n };\n\n return {\n flush,\n scheduleFlush,\n hasPendingDiffs,\n hasPendingAction,\n hasPendingChanges,\n isFlushing,\n handleUserSelect,\n handleCompositionEnd,\n handleCompositionStart,\n handleDOMBeforeInput,\n handleKeyDown,\n handleDomMutations,\n handleInput\n };\n}\n\nfunction useIsMounted() {\n var isMountedRef = useRef(false);\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n return isMountedRef.current;\n}\n\n/**\r\n * Prevent warning on SSR by falling back to useEffect when DOM isn't available\r\n */\n\nvar useIsomorphicLayoutEffect = CAN_USE_DOM ? useLayoutEffect : useEffect;\n\nfunction useMutationObserver(node, callback, options) {\n var [mutationObserver] = useState(() => new MutationObserver(callback));\n useIsomorphicLayoutEffect(() => {\n // Discard mutations caused during render phase. This works due to react calling\n // useLayoutEffect synchronously after the render phase before the next tick.\n mutationObserver.takeRecords();\n });\n useEffect(() => {\n if (!node.current) {\n throw new Error('Failed to attach MutationObserver, `node` is undefined');\n }\n\n mutationObserver.observe(node.current, options);\n return () => mutationObserver.disconnect();\n }, [mutationObserver, node, options]);\n}\n\nvar _excluded$3 = [\"node\"];\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar MUTATION_OBSERVER_CONFIG$1 = {\n subtree: true,\n childList: true,\n characterData: true\n};\nvar useAndroidInputManager = !IS_ANDROID ? () => null : _ref => {\n var {\n node\n } = _ref,\n options = _objectWithoutProperties(_ref, _excluded$3);\n\n if (!IS_ANDROID) {\n return null;\n }\n\n var editor = useSlateStatic();\n var isMounted = useIsMounted();\n var [inputManager] = useState(() => createAndroidInputManager(_objectSpread$2({\n editor\n }, options)));\n useMutationObserver(node, inputManager.handleDomMutations, MUTATION_OBSERVER_CONFIG$1);\n EDITOR_TO_SCHEDULE_FLUSH.set(editor, inputManager.scheduleFlush);\n\n if (isMounted) {\n inputManager.flush();\n }\n\n return inputManager;\n};\n\nvar _excluded$2 = [\"anchor\", \"focus\"],\n _excluded2$1 = [\"anchor\", \"focus\"];\nvar shallowCompare = (obj1, obj2) => Object.keys(obj1).length === Object.keys(obj2).length && Object.keys(obj1).every(key => obj2.hasOwnProperty(key) && obj1[key] === obj2[key]);\n\nvar isDecorationFlagsEqual = (range, other) => {\n var rangeOwnProps = _objectWithoutProperties(range, _excluded$2);\n\n var otherOwnProps = _objectWithoutProperties(other, _excluded2$1);\n\n return range[PLACEHOLDER_SYMBOL] === other[PLACEHOLDER_SYMBOL] && shallowCompare(rangeOwnProps, otherOwnProps);\n};\n/**\r\n * Check if a list of decorator ranges are equal to another.\r\n *\r\n * PERF: this requires the two lists to also have the ranges inside them in the\r\n * same order, but this is an okay constraint for us since decorations are\r\n * kept in order, and the odd case where they aren't is okay to re-render for.\r\n */\n\n\nvar isElementDecorationsEqual = (list, another) => {\n if (list.length !== another.length) {\n return false;\n }\n\n for (var i = 0; i < list.length; i++) {\n var range = list[i];\n var other = another[i];\n\n if (!Range.equals(range, other) || !isDecorationFlagsEqual(range, other)) {\n return false;\n }\n }\n\n return true;\n};\n/**\r\n * Check if a list of decorator ranges are equal to another.\r\n *\r\n * PERF: this requires the two lists to also have the ranges inside them in the\r\n * same order, but this is an okay constraint for us since decorations are\r\n * kept in order, and the odd case where they aren't is okay to re-render for.\r\n */\n\nvar isTextDecorationsEqual = (list, another) => {\n if (list.length !== another.length) {\n return false;\n }\n\n for (var i = 0; i < list.length; i++) {\n var range = list[i];\n var other = another[i]; // compare only offsets because paths doesn't matter for text\n\n if (range.anchor.offset !== other.anchor.offset || range.focus.offset !== other.focus.offset || !isDecorationFlagsEqual(range, other)) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\r\n * Leaf content strings.\r\n */\n\nvar String = props => {\n var {\n isLast,\n leaf,\n parent,\n text\n } = props;\n var editor = useSlateStatic();\n var path = ReactEditor.findPath(editor, text);\n var parentPath = Path.parent(path);\n var isMarkPlaceholder = leaf[MARK_PLACEHOLDER_SYMBOL] === true; // COMPAT: Render text inside void nodes with a zero-width space.\n // So the node can contain selection but the text is not visible.\n\n if (editor.isVoid(parent)) {\n return /*#__PURE__*/React.createElement(ZeroWidthString, {\n length: Node.string(parent).length\n });\n } // COMPAT: If this is the last text node in an empty block, render a zero-\n // width space that will convert into a line break when copying and pasting\n // to support expected plain text.\n\n\n if (leaf.text === '' && parent.children[parent.children.length - 1] === text && !editor.isInline(parent) && Editor.string(editor, parentPath) === '') {\n return /*#__PURE__*/React.createElement(ZeroWidthString, {\n isLineBreak: true,\n isMarkPlaceholder: isMarkPlaceholder\n });\n } // COMPAT: If the text is empty, it's because it's on the edge of an inline\n // node, so we render a zero-width space so that the selection can be\n // inserted next to it still.\n\n\n if (leaf.text === '') {\n return /*#__PURE__*/React.createElement(ZeroWidthString, {\n isMarkPlaceholder: isMarkPlaceholder\n });\n } // COMPAT: Browsers will collapse trailing new lines at the end of blocks,\n // so we need to add an extra trailing new lines to prevent that.\n\n\n if (isLast && leaf.text.slice(-1) === '\\n') {\n return /*#__PURE__*/React.createElement(TextString, {\n isTrailing: true,\n text: leaf.text\n });\n }\n\n return /*#__PURE__*/React.createElement(TextString, {\n text: leaf.text\n });\n};\n/**\r\n * Leaf strings with text in them.\r\n */\n\n\nvar TextString = props => {\n var {\n text,\n isTrailing = false\n } = props;\n var ref = useRef(null);\n\n var getTextContent = () => {\n return \"\".concat(text !== null && text !== void 0 ? text : '').concat(isTrailing ? '\\n' : '');\n };\n\n var [initialText] = useState(getTextContent); // This is the actual text rendering boundary where we interface with the DOM\n // The text is not rendered as part of the virtual DOM, as since we handle basic character insertions natively,\n // updating the DOM is not a one way dataflow anymore. What we need here is not reconciliation and diffing\n // with previous version of the virtual DOM, but rather diffing with the actual DOM element, and replace the DOM <span> content\n // exactly if and only if its current content does not match our current virtual DOM.\n // Otherwise the DOM TextNode would always be replaced by React as the user types, which interferes with native text features,\n // eg makes native spellcheck opt out from checking the text node.\n // useLayoutEffect: updating our span before browser paint\n\n useIsomorphicLayoutEffect(() => {\n // null coalescing text to make sure we're not outputing \"null\" as a string in the extreme case it is nullish at runtime\n var textWithTrailing = getTextContent();\n\n if (ref.current && ref.current.textContent !== textWithTrailing) {\n ref.current.textContent = textWithTrailing;\n } // intentionally not specifying dependencies, so that this effect runs on every render\n // as this effectively replaces \"specifying the text in the virtual DOM under the <span> below\" on each render\n\n }); // We intentionally render a memoized <span> that only receives the initial text content when the component is mounted.\n // We defer to the layout effect above to update the `textContent` of the span element when needed.\n\n return /*#__PURE__*/React.createElement(MemoizedText$1, {\n ref: ref\n }, initialText);\n};\n\nvar MemoizedText$1 = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(\"span\", {\n \"data-slate-string\": true,\n ref: ref\n }, props.children);\n}));\n/**\r\n * Leaf strings without text, render as zero-width strings.\r\n */\n\nvar ZeroWidthString = props => {\n var {\n length = 0,\n isLineBreak = false,\n isMarkPlaceholder = false\n } = props;\n var attributes = {\n 'data-slate-zero-width': isLineBreak ? 'n' : 'z',\n 'data-slate-length': length\n };\n\n if (isMarkPlaceholder) {\n attributes['data-slate-mark-placeholder'] = true;\n }\n\n return /*#__PURE__*/React.createElement(\"span\", Object.assign({}, attributes), !IS_ANDROID || !isLineBreak ? '\\uFEFF' : null, isLineBreak ? /*#__PURE__*/React.createElement(\"br\", null) : null);\n};\n\nfunction disconnectPlaceholderResizeObserver(placeholderResizeObserver, releaseObserver) {\n if (placeholderResizeObserver.current) {\n placeholderResizeObserver.current.disconnect();\n\n if (releaseObserver) {\n placeholderResizeObserver.current = null;\n }\n }\n}\n\nfunction clearTimeoutRef(timeoutRef) {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n}\n/**\r\n * Individual leaves in a text node with unique formatting.\r\n */\n\n\nvar Leaf = props => {\n var {\n leaf,\n isLast,\n text,\n parent,\n renderPlaceholder,\n renderLeaf = props => /*#__PURE__*/React.createElement(DefaultLeaf, Object.assign({}, props))\n } = props;\n var editor = useSlateStatic();\n var placeholderResizeObserver = useRef(null);\n var placeholderRef = useRef(null);\n var [showPlaceholder, setShowPlaceholder] = useState(false);\n var showPlaceholderTimeoutRef = useRef(null);\n var callbackPlaceholderRef = useCallback(placeholderEl => {\n disconnectPlaceholderResizeObserver(placeholderResizeObserver, placeholderEl == null);\n\n if (placeholderEl == null) {\n var _leaf$onPlaceholderRe;\n\n EDITOR_TO_PLACEHOLDER_ELEMENT.delete(editor);\n (_leaf$onPlaceholderRe = leaf.onPlaceholderResize) === null || _leaf$onPlaceholderRe === void 0 ? void 0 : _leaf$onPlaceholderRe.call(leaf, null);\n } else {\n EDITOR_TO_PLACEHOLDER_ELEMENT.set(editor, placeholderEl);\n\n if (!placeholderResizeObserver.current) {\n // Create a new observer and observe the placeholder element.\n var ResizeObserver$1 = window.ResizeObserver || ResizeObserver;\n placeholderResizeObserver.current = new ResizeObserver$1(() => {\n var _leaf$onPlaceholderRe2;\n\n (_leaf$onPlaceholderRe2 = leaf.onPlaceholderResize) === null || _leaf$onPlaceholderRe2 === void 0 ? void 0 : _leaf$onPlaceholderRe2.call(leaf, placeholderEl);\n });\n }\n\n placeholderResizeObserver.current.observe(placeholderEl);\n placeholderRef.current = placeholderEl;\n }\n }, [placeholderRef, leaf, editor]);\n var children = /*#__PURE__*/React.createElement(String, {\n isLast: isLast,\n leaf: leaf,\n parent: parent,\n text: text\n });\n var leafIsPlaceholder = leaf[PLACEHOLDER_SYMBOL];\n useEffect(() => {\n if (leafIsPlaceholder) {\n if (!showPlaceholderTimeoutRef.current) {\n // Delay the placeholder so it will not render in a selection\n showPlaceholderTimeoutRef.current = setTimeout(() => {\n setShowPlaceholder(true);\n showPlaceholderTimeoutRef.current = null;\n }, 300);\n }\n } else {\n clearTimeoutRef(showPlaceholderTimeoutRef);\n setShowPlaceholder(false);\n }\n\n return () => clearTimeoutRef(showPlaceholderTimeoutRef);\n }, [leafIsPlaceholder, setShowPlaceholder]);\n\n if (leafIsPlaceholder && showPlaceholder) {\n var placeholderProps = {\n children: leaf.placeholder,\n attributes: {\n 'data-slate-placeholder': true,\n style: {\n position: 'absolute',\n top: 0,\n pointerEvents: 'none',\n width: '100%',\n maxWidth: '100%',\n display: 'block',\n opacity: '0.333',\n userSelect: 'none',\n textDecoration: 'none',\n // Fixes https://github.com/udecode/plate/issues/2315\n WebkitUserModify: IS_WEBKIT ? 'inherit' : undefined\n },\n contentEditable: false,\n ref: callbackPlaceholderRef\n }\n };\n children = /*#__PURE__*/React.createElement(React.Fragment, null, renderPlaceholder(placeholderProps), children);\n } // COMPAT: Having the `data-` attributes on these leaf elements ensures that\n // in certain misbehaving browsers they aren't weirdly cloned/destroyed by\n // contenteditable behaviors. (2019/05/08)\n\n\n var attributes = {\n 'data-slate-leaf': true\n };\n return renderLeaf({\n attributes,\n children,\n leaf,\n text\n });\n};\n\nvar MemoizedLeaf = /*#__PURE__*/React.memo(Leaf, (prev, next) => {\n return next.parent === prev.parent && next.isLast === prev.isLast && next.renderLeaf === prev.renderLeaf && next.renderPlaceholder === prev.renderPlaceholder && next.text === prev.text && Text$1.equals(next.leaf, prev.leaf) && next.leaf[PLACEHOLDER_SYMBOL] === prev.leaf[PLACEHOLDER_SYMBOL];\n});\nvar DefaultLeaf = props => {\n var {\n attributes,\n children\n } = props;\n return /*#__PURE__*/React.createElement(\"span\", Object.assign({}, attributes), children);\n};\n\n/**\r\n * Text.\r\n */\n\nvar Text = props => {\n var {\n decorations,\n isLast,\n parent,\n renderPlaceholder,\n renderLeaf,\n text\n } = props;\n var editor = useSlateStatic();\n var ref = useRef(null);\n var leaves = Text$1.decorations(text, decorations);\n var key = ReactEditor.findKey(editor, text);\n var children = [];\n\n for (var i = 0; i < leaves.length; i++) {\n var leaf = leaves[i];\n children.push( /*#__PURE__*/React.createElement(MemoizedLeaf, {\n isLast: isLast && i === leaves.length - 1,\n key: \"\".concat(key.id, \"-\").concat(i),\n renderPlaceholder: renderPlaceholder,\n leaf: leaf,\n text: text,\n parent: parent,\n renderLeaf: renderLeaf\n }));\n } // Update element-related weak maps with the DOM element ref.\n\n\n var callbackRef = useCallback(span => {\n var KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor);\n\n if (span) {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 ? void 0 : KEY_TO_ELEMENT.set(key, span);\n NODE_TO_ELEMENT.set(text, span);\n ELEMENT_TO_NODE.set(span, text);\n } else {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 ? void 0 : KEY_TO_ELEMENT.delete(key);\n NODE_TO_ELEMENT.delete(text);\n\n if (ref.current) {\n ELEMENT_TO_NODE.delete(ref.current);\n }\n }\n\n ref.current = span;\n }, [ref, editor, key, text]);\n return /*#__PURE__*/React.createElement(\"span\", {\n \"data-slate-node\": \"text\",\n ref: callbackRef\n }, children);\n};\n\nvar MemoizedText = /*#__PURE__*/React.memo(Text, (prev, next) => {\n return next.parent === prev.parent && next.isLast === prev.isLast && next.renderLeaf === prev.renderLeaf && next.renderPlaceholder === prev.renderPlaceholder && next.text === prev.text && isTextDecorationsEqual(next.decorations, prev.decorations);\n});\n\n/**\r\n * Element.\r\n */\n\nvar Element = props => {\n var {\n decorations,\n element,\n renderElement = p => /*#__PURE__*/React.createElement(DefaultElement, Object.assign({}, p)),\n renderPlaceholder,\n renderLeaf,\n selection\n } = props;\n var editor = useSlateStatic();\n var readOnly = useReadOnly();\n var isInline = editor.isInline(element);\n var key = ReactEditor.findKey(editor, element);\n var ref = useCallback(ref => {\n // Update element-related weak maps with the DOM element ref.\n var KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor);\n\n if (ref) {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 ? void 0 : KEY_TO_ELEMENT.set(key, ref);\n NODE_TO_ELEMENT.set(element, ref);\n ELEMENT_TO_NODE.set(ref, element);\n } else {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 ? void 0 : KEY_TO_ELEMENT.delete(key);\n NODE_TO_ELEMENT.delete(element);\n }\n }, [editor, key, element]);\n var children = useChildren({\n decorations,\n node: element,\n renderElement,\n renderPlaceholder,\n renderLeaf,\n selection\n }); // Attributes that the developer must mix into the element in their\n // custom node renderer component.\n\n var attributes = {\n 'data-slate-node': 'element',\n ref\n };\n\n if (isInline) {\n attributes['data-slate-inline'] = true;\n } // If it's a block node with inline children, add the proper `dir` attribute\n // for text direction.\n\n\n if (!isInline && Editor.hasInlines(editor, element)) {\n var text = Node.string(element);\n var dir = getDirection(text);\n\n if (dir === 'rtl') {\n attributes.dir = dir;\n }\n } // If it's a void node, wrap the children in extra void-specific elements.\n\n\n if (Editor.isVoid(editor, element)) {\n attributes['data-slate-void'] = true;\n\n if (!readOnly && isInline) {\n attributes.contentEditable = false;\n }\n\n var Tag = isInline ? 'span' : 'div';\n var [[_text]] = Node.texts(element);\n children = /*#__PURE__*/React.createElement(Tag, {\n \"data-slate-spacer\": true,\n style: {\n height: '0',\n color: 'transparent',\n outline: 'none',\n position: 'absolute'\n }\n }, /*#__PURE__*/React.createElement(MemoizedText, {\n renderPlaceholder: renderPlaceholder,\n decorations: [],\n isLast: false,\n parent: element,\n text: _text\n }));\n NODE_TO_INDEX.set(_text, 0);\n NODE_TO_PARENT.set(_text, element);\n }\n\n return renderElement({\n attributes,\n children,\n element\n });\n};\n\nvar MemoizedElement = /*#__PURE__*/React.memo(Element, (prev, next) => {\n return prev.element === next.element && prev.renderElement === next.renderElement && prev.renderLeaf === next.renderLeaf && prev.renderPlaceholder === next.renderPlaceholder && isElementDecorationsEqual(prev.decorations, next.decorations) && (prev.selection === next.selection || !!prev.selection && !!next.selection && Range.equals(prev.selection, next.selection));\n});\n/**\r\n * The default element renderer.\r\n */\n\nvar DefaultElement = props => {\n var {\n attributes,\n children,\n element\n } = props;\n var editor = useSlateStatic();\n var Tag = editor.isInline(element) ? 'span' : 'div';\n return /*#__PURE__*/React.createElement(Tag, Object.assign({}, attributes, {\n style: {\n position: 'relative'\n }\n }), children);\n};\n\n/**\r\n * A React context for sharing the `decorate` prop of the editable.\r\n */\n\nvar DecorateContext = /*#__PURE__*/createContext(() => []);\n/**\r\n * Get the current `decorate` prop of the editable.\r\n */\n\nvar useDecorate = () => {\n return useContext(DecorateContext);\n};\n\n/**\r\n * A React context for sharing the `selected` state of an element.\r\n */\n\nvar SelectedContext = /*#__PURE__*/createContext(false);\n/**\r\n * Get the current `selected` state of an element.\r\n */\n\nvar useSelected = () => {\n return useContext(SelectedContext);\n};\n\n/**\r\n * Children.\r\n */\n\nvar useChildren = props => {\n var {\n decorations,\n node,\n renderElement,\n renderPlaceholder,\n renderLeaf,\n selection\n } = props;\n var decorate = useDecorate();\n var editor = useSlateStatic();\n var path = ReactEditor.findPath(editor, node);\n var children = [];\n var isLeafBlock = Element$1.isElement(node) && !editor.isInline(node) && Editor.hasInlines(editor, node);\n\n for (var i = 0; i < node.children.length; i++) {\n var p = path.concat(i);\n var n = node.children[i];\n var key = ReactEditor.findKey(editor, n);\n var range = Editor.range(editor, p);\n var sel = selection && Range.intersection(range, selection);\n var ds = decorate([n, p]);\n\n for (var dec of decorations) {\n var d = Range.intersection(dec, range);\n\n if (d) {\n ds.push(d);\n }\n }\n\n if (Element$1.isElement(n)) {\n children.push( /*#__PURE__*/React.createElement(SelectedContext.Provider, {\n key: \"provider-\".concat(key.id),\n value: !!sel\n }, /*#__PURE__*/React.createElement(MemoizedElement, {\n decorations: ds,\n element: n,\n key: key.id,\n renderElement: renderElement,\n renderPlaceholder: renderPlaceholder,\n renderLeaf: renderLeaf,\n selection: sel\n })));\n } else {\n children.push( /*#__PURE__*/React.createElement(MemoizedText, {\n decorations: ds,\n key: key.id,\n isLast: isLeafBlock && i === node.children.length - 1,\n parent: node,\n renderPlaceholder: renderPlaceholder,\n renderLeaf: renderLeaf,\n text: n\n }));\n }\n\n NODE_TO_INDEX.set(n, i);\n NODE_TO_PARENT.set(n, node);\n }\n\n return children;\n};\n\n/**\r\n * A React context for sharing the `readOnly` state of the editor.\r\n */\n\nvar ReadOnlyContext = /*#__PURE__*/createContext(false);\n/**\r\n * Get the current `readOnly` state of the editor.\r\n */\n\nvar useReadOnly = () => {\n return useContext(ReadOnlyContext);\n};\n\nvar SlateContext = /*#__PURE__*/createContext(null);\n/**\r\n * Get the current editor object from the React context.\r\n */\n\nvar useSlate = () => {\n var context = useContext(SlateContext);\n\n if (!context) {\n throw new Error(\"The `useSlate` hook must be used inside the <Slate> component's context.\");\n }\n\n var {\n editor\n } = context;\n return editor;\n};\nvar useSlateWithV = () => {\n var context = useContext(SlateContext);\n\n if (!context) {\n throw new Error(\"The `useSlate` hook must be used inside the <Slate> component's context.\");\n }\n\n return context;\n};\n\nfunction useTrackUserInput() {\n var editor = useSlateStatic();\n var receivedUserInput = useRef(false);\n var animationFrameIdRef = useRef(0);\n var onUserInput = useCallback(() => {\n if (receivedUserInput.current) {\n return;\n }\n\n receivedUserInput.current = true;\n var window = ReactEditor.getWindow(editor);\n window.cancelAnimationFrame(animationFrameIdRef.current);\n animationFrameIdRef.current = window.requestAnimationFrame(() => {\n receivedUserInput.current = false;\n });\n }, [editor]);\n useEffect(() => () => cancelAnimationFrame(animationFrameIdRef.current), []);\n return {\n receivedUserInput,\n onUserInput\n };\n}\n\nvar TRIPLE_CLICK = 3;\n\n/**\r\n * Hotkey mappings for each platform.\r\n */\n\nvar HOTKEYS = {\n bold: 'mod+b',\n compose: ['down', 'left', 'right', 'up', 'backspace', 'enter'],\n moveBackward: 'left',\n moveForward: 'right',\n moveWordBackward: 'ctrl+left',\n moveWordForward: 'ctrl+right',\n deleteBackward: 'shift?+backspace',\n deleteForward: 'shift?+delete',\n extendBackward: 'shift+left',\n extendForward: 'shift+right',\n italic: 'mod+i',\n insertSoftBreak: 'shift+enter',\n splitBlock: 'enter',\n undo: 'mod+z'\n};\nvar APPLE_HOTKEYS = {\n moveLineBackward: 'opt+up',\n moveLineForward: 'opt+down',\n moveWordBackward: 'opt+left',\n moveWordForward: 'opt+right',\n deleteBackward: ['ctrl+backspace', 'ctrl+h'],\n deleteForward: ['ctrl+delete', 'ctrl+d'],\n deleteLineBackward: 'cmd+shift?+backspace',\n deleteLineForward: ['cmd+shift?+delete', 'ctrl+k'],\n deleteWordBackward: 'opt+shift?+backspace',\n deleteWordForward: 'opt+shift?+delete',\n extendLineBackward: 'opt+shift+up',\n extendLineForward: 'opt+shift+down',\n redo: 'cmd+shift+z',\n transposeCharacter: 'ctrl+t'\n};\nvar WINDOWS_HOTKEYS = {\n deleteWordBackward: 'ctrl+shift?+backspace',\n deleteWordForward: 'ctrl+shift?+delete',\n redo: ['ctrl+y', 'ctrl+shift+z']\n};\n/**\r\n * Create a platform-aware hotkey checker.\r\n */\n\nvar create = key => {\n var generic = HOTKEYS[key];\n var apple = APPLE_HOTKEYS[key];\n var windows = WINDOWS_HOTKEYS[key];\n var isGeneric = generic && isHotkey(generic);\n var isApple = apple && isHotkey(apple);\n var isWindows = windows && isHotkey(windows);\n return event => {\n if (isGeneric && isGeneric(event)) return true;\n if (IS_APPLE && isApple && isApple(event)) return true;\n if (!IS_APPLE && isWindows && isWindows(event)) return true;\n return false;\n };\n};\n/**\r\n * Hotkeys.\r\n */\n\n\nvar Hotkeys = {\n isBold: create('bold'),\n isCompose: create('compose'),\n isMoveBackward: create('moveBackward'),\n isMoveForward: create('moveForward'),\n isDeleteBackward: create('deleteBackward'),\n isDeleteForward: create('deleteForward'),\n isDeleteLineBackward: create('deleteLineBackward'),\n isDeleteLineForward: create('deleteLineForward'),\n isDeleteWordBackward: create('deleteWordBackward'),\n isDeleteWordForward: create('deleteWordForward'),\n isExtendBackward: create('extendBackward'),\n isExtendForward: create('extendForward'),\n isExtendLineBackward: create('extendLineBackward'),\n isExtendLineForward: create('extendLineForward'),\n isItalic: create('italic'),\n isMoveLineBackward: create('moveLineBackward'),\n isMoveLineForward: create('moveLineForward'),\n isMoveWordBackward: create('moveWordBackward'),\n isMoveWordForward: create('moveWordForward'),\n isRedo: create('redo'),\n isSoftBreak: create('insertSoftBreak'),\n isSplitBlock: create('splitBlock'),\n isTransposeCharacter: create('transposeCharacter'),\n isUndo: create('undo')\n};\n\nvar createRestoreDomManager = (editor, receivedUserInput) => {\n var bufferedMutations = [];\n\n var clear = () => {\n bufferedMutations = [];\n };\n\n var registerMutations = mutations => {\n if (!receivedUserInput.current) {\n return;\n }\n\n var trackedMutations = mutations.filter(mutation => isTrackedMutation(editor, mutation, mutations));\n bufferedMutations.push(...trackedMutations);\n };\n\n function restoreDOM() {\n if (bufferedMutations.length > 0) {\n bufferedMutations.reverse().forEach(mutation => {\n if (mutation.type === 'characterData') {\n // We don't want to restore the DOM for characterData mutations\n // because this interrupts the composition.\n return;\n }\n\n mutation.removedNodes.forEach(node => {\n mutation.target.insertBefore(node, mutation.nextSibling);\n });\n mutation.addedNodes.forEach(node => {\n mutation.target.removeChild(node);\n });\n }); // Clear buffered mutations to ensure we don't undo them twice\n\n clear();\n }\n }\n\n return {\n registerMutations,\n restoreDOM,\n clear\n };\n};\n\nvar MUTATION_OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n characterDataOldValue: true\n}; // We have to use a class component here since we rely on `getSnapshotBeforeUpdate` which has no FC equivalent\n// to run code synchronously immediately before react commits the component update to the DOM.\n\nclass RestoreDOMComponent extends Component {\n constructor() {\n super(...arguments);\n this.context = null;\n this.manager = null;\n this.mutationObserver = null;\n }\n\n observe() {\n var _this$mutationObserve;\n\n var {\n node\n } = this.props;\n\n if (!node.current) {\n throw new Error('Failed to attach MutationObserver, `node` is undefined');\n }\n\n (_this$mutationObserve = this.mutationObserver) === null || _this$mutationObserve === void 0 ? void 0 : _this$mutationObserve.observe(node.current, MUTATION_OBSERVER_CONFIG);\n }\n\n componentDidMount() {\n var {\n receivedUserInput\n } = this.props;\n var editor = this.context;\n this.manager = createRestoreDomManager(editor, receivedUserInput);\n this.mutationObserver = new MutationObserver(this.manager.registerMutations);\n this.observe();\n }\n\n getSnapshotBeforeUpdate() {\n var _this$mutationObserve2, _this$mutationObserve3, _this$manager2;\n\n var pendingMutations = (_this$mutationObserve2 = this.mutationObserver) === null || _this$mutationObserve2 === void 0 ? void 0 : _this$mutationObserve2.takeRecords();\n\n if (pendingMutations !== null && pendingMutations !== void 0 && pendingMutations.length) {\n var _this$manager;\n\n (_this$manager = this.manager) === null || _this$manager === void 0 ? void 0 : _this$manager.registerMutations(pendingMutations);\n }\n\n (_this$mutationObserve3 = this.mutationObserver) === null || _this$mutationObserve3 === void 0 ? void 0 : _this$mutationObserve3.disconnect();\n (_this$manager2 = this.manager) === null || _this$manager2 === void 0 ? void 0 : _this$manager2.restoreDOM();\n return null;\n }\n\n componentDidUpdate() {\n var _this$manager3;\n\n (_this$manager3 = this.manager) === null || _this$manager3 === void 0 ? void 0 : _this$manager3.clear();\n this.observe();\n }\n\n componentWillUnmount() {\n var _this$mutationObserve4;\n\n (_this$mutationObserve4 = this.mutationObserver) === null || _this$mutationObserve4 === void 0 ? void 0 : _this$mutationObserve4.disconnect();\n }\n\n render() {\n return this.props.children;\n }\n\n}\n\nRestoreDOMComponent.contextType = EditorContext;\nvar RestoreDOM = IS_ANDROID ? RestoreDOMComponent : _ref => {\n var {\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n};\n\nvar _excluded$1 = [\"autoFocus\", \"decorate\", \"onDOMBeforeInput\", \"placeholder\", \"readOnly\", \"renderElement\", \"renderLeaf\", \"renderPlaceholder\", \"scrollSelectionIntoView\", \"style\", \"as\", \"disableDefaultStyles\"],\n _excluded2 = [\"text\"];\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Children = props => /*#__PURE__*/React.createElement(React.Fragment, null, useChildren(props));\n/**\r\n * Editable.\r\n */\n\n\nvar Editable = props => {\n var defaultRenderPlaceholder = useCallback(props => /*#__PURE__*/React.createElement(DefaultPlaceholder, Object.assign({}, props)), []);\n\n var {\n autoFocus,\n decorate = defaultDecorate,\n onDOMBeforeInput: propsOnDOMBeforeInput,\n placeholder,\n readOnly = false,\n renderElement,\n renderLeaf,\n renderPlaceholder = defaultRenderPlaceholder,\n scrollSelectionIntoView = defaultScrollSelectionIntoView,\n style: userStyle = {},\n as: Component = 'div',\n disableDefaultStyles = false\n } = props,\n attributes = _objectWithoutProperties(props, _excluded$1);\n\n var editor = useSlate(); // Rerender editor when composition status changed\n\n var [isComposing, setIsComposing] = useState(false);\n var ref = useRef(null);\n var deferredOperations = useRef([]);\n var [placeholderHeight, setPlaceholderHeight] = useState();\n var {\n onUserInput,\n receivedUserInput\n } = useTrackUserInput();\n var [, forceRender] = useReducer(s => s + 1, 0);\n EDITOR_TO_FORCE_RENDER.set(editor, forceRender); // Update internal state on each render.\n\n IS_READ_ONLY.set(editor, readOnly); // Keep track of some state for the event handler logic.\n\n var state = useMemo(() => ({\n isDraggingInternally: false,\n isUpdatingSelection: false,\n latestElement: null,\n hasMarkPlaceholder: false\n }), []); // The autoFocus TextareaHTMLAttribute doesn't do anything on a div, so it\n // needs to be manually focused.\n\n useEffect(() => {\n if (ref.current && autoFocus) {\n ref.current.focus();\n }\n }, [autoFocus]);\n /**\r\n * The AndroidInputManager object has a cyclical dependency on onDOMSelectionChange\r\n *\r\n * It is defined as a reference to simplify hook dependencies and clarify that\r\n * it needs to be initialized.\r\n */\n\n var androidInputManagerRef = useRef(); // Listen on the native `selectionchange` event to be able to update any time\n // the selection changes. This is required because React's `onSelect` is leaky\n // and non-standard so it doesn't fire until after a selection has been\n // released. This causes issues in situations where another change happens\n // while a selection is being dragged.\n\n var onDOMSelectionChange = useMemo(() => throttle(() => {\n var androidInputManager = androidInputManagerRef.current;\n\n if ((IS_ANDROID || !ReactEditor.isComposing(editor)) && (!state.isUpdatingSelection || androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.isFlushing()) && !state.isDraggingInternally) {\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n var {\n activeElement\n } = root;\n var el = ReactEditor.toDOMNode(editor, editor);\n var domSelection = root.getSelection();\n\n if (activeElement === el) {\n state.latestElement = activeElement;\n IS_FOCUSED.set(editor, true);\n } else {\n IS_FOCUSED.delete(editor);\n }\n\n if (!domSelection) {\n return Transforms.deselect(editor);\n }\n\n var {\n anchorNode,\n focusNode\n } = domSelection;\n var anchorNodeSelectable = ReactEditor.hasEditableTarget(editor, anchorNode) || ReactEditor.isTargetInsideNonReadonlyVoid(editor, anchorNode);\n var focusNodeSelectable = ReactEditor.hasEditableTarget(editor, focusNode) || ReactEditor.isTargetInsideNonReadonlyVoid(editor, focusNode);\n\n if (anchorNodeSelectable && focusNodeSelectable) {\n var range = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true\n });\n\n if (range) {\n if (!ReactEditor.isComposing(editor) && !(androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.hasPendingChanges()) && !(androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.isFlushing())) {\n Transforms.select(editor, range);\n } else {\n androidInputManager === null || androidInputManager === void 0 ? void 0 : androidInputManager.handleUserSelect(range);\n }\n }\n } // Deselect the editor if the dom selection is not selectable in readonly mode\n\n\n if (readOnly && (!anchorNodeSelectable || !focusNodeSelectable)) {\n Transforms.deselect(editor);\n }\n }\n }, 100), [editor, readOnly, state]);\n var scheduleOnDOMSelectionChange = useMemo(() => debounce(onDOMSelectionChange, 0), [onDOMSelectionChange]);\n androidInputManagerRef.current = useAndroidInputManager({\n node: ref,\n onDOMSelectionChange,\n scheduleOnDOMSelectionChange\n });\n useIsomorphicLayoutEffect(() => {\n var _androidInputManagerR, _androidInputManagerR2;\n\n // Update element-related weak maps with the DOM element ref.\n var window;\n\n if (ref.current && (window = getDefaultView(ref.current))) {\n EDITOR_TO_WINDOW.set(editor, window);\n EDITOR_TO_ELEMENT.set(editor, ref.current);\n NODE_TO_ELEMENT.set(editor, ref.current);\n ELEMENT_TO_NODE.set(ref.current, editor);\n } else {\n NODE_TO_ELEMENT.delete(editor);\n } // Make sure the DOM selection state is in sync.\n\n\n var {\n selection\n } = editor;\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n var domSelection = root.getSelection();\n\n if (!domSelection || !ReactEditor.isFocused(editor) || (_androidInputManagerR = androidInputManagerRef.current) !== null && _androidInputManagerR !== void 0 && _androidInputManagerR.hasPendingAction()) {\n return;\n }\n\n var setDomSelection = forceChange => {\n var hasDomSelection = domSelection.type !== 'None'; // If the DOM selection is properly unset, we're done.\n\n if (!selection && !hasDomSelection) {\n return;\n } // Get anchorNode and focusNode\n\n\n var focusNode = domSelection.focusNode;\n var anchorNode; // COMPAT: In firefox the normal seletion way does not work\n // (https://github.com/ianstormtaylor/slate/pull/5486#issue-1820720223)\n\n if (IS_FIREFOX && domSelection.rangeCount > 1) {\n var firstRange = domSelection.getRangeAt(0);\n var lastRange = domSelection.getRangeAt(domSelection.rangeCount - 1); // Right to left\n\n if (firstRange.startContainer === focusNode) {\n anchorNode = lastRange.endContainer;\n } else {\n // Left to right\n anchorNode = firstRange.startContainer;\n }\n } else {\n anchorNode = domSelection.anchorNode;\n } // verify that the dom selection is in the editor\n\n\n var editorElement = EDITOR_TO_ELEMENT.get(editor);\n var hasDomSelectionInEditor = false;\n\n if (editorElement.contains(anchorNode) && editorElement.contains(focusNode)) {\n hasDomSelectionInEditor = true;\n } // If the DOM selection is in the editor and the editor selection is already correct, we're done.\n\n\n if (hasDomSelection && hasDomSelectionInEditor && selection && !forceChange) {\n var slateRange = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: true,\n // domSelection is not necessarily a valid Slate range\n // (e.g. when clicking on contentEditable:false element)\n suppressThrow: true\n });\n\n if (slateRange && Range.equals(slateRange, selection)) {\n var _anchorNode, _anchorNode$parentEle;\n\n if (!state.hasMarkPlaceholder) {\n return;\n } // Ensure selection is inside the mark placeholder\n\n\n if ((_anchorNode = anchorNode) !== null && _anchorNode !== void 0 && (_anchorNode$parentEle = _anchorNode.parentElement) !== null && _anchorNode$parentEle !== void 0 && _anchorNode$parentEle.hasAttribute('data-slate-mark-placeholder')) {\n return;\n }\n }\n } // when <Editable/> is being controlled through external value\n // then its children might just change - DOM responds to it on its own\n // but Slate's value is not being updated through any operation\n // and thus it doesn't transform selection on its own\n\n\n if (selection && !ReactEditor.hasRange(editor, selection)) {\n editor.selection = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true\n });\n return;\n } // Otherwise the DOM selection is out of sync, so update it.\n\n\n state.isUpdatingSelection = true;\n var newDomRange = selection && ReactEditor.toDOMRange(editor, selection);\n\n if (newDomRange) {\n if (ReactEditor.isComposing(editor) && !IS_ANDROID) {\n domSelection.collapseToEnd();\n } else if (Range.isBackward(selection)) {\n domSelection.setBaseAndExtent(newDomRange.endContainer, newDomRange.endOffset, newDomRange.startContainer, newDomRange.startOffset);\n } else {\n domSelection.setBaseAndExtent(newDomRange.startContainer, newDomRange.startOffset, newDomRange.endContainer, newDomRange.endOffset);\n }\n\n scrollSelectionIntoView(editor, newDomRange);\n } else {\n domSelection.removeAllRanges();\n }\n\n return newDomRange;\n }; // In firefox if there is more then 1 range and we call setDomSelection we remove the ability to select more cells in a table\n\n\n if (domSelection.rangeCount <= 1) {\n setDomSelection();\n }\n\n var ensureSelection = ((_androidInputManagerR2 = androidInputManagerRef.current) === null || _androidInputManagerR2 === void 0 ? void 0 : _androidInputManagerR2.isFlushing()) === 'action';\n\n if (!IS_ANDROID || !ensureSelection) {\n setTimeout(() => {\n state.isUpdatingSelection = false;\n });\n return;\n }\n\n var timeoutId = null;\n var animationFrameId = requestAnimationFrame(() => {\n if (ensureSelection) {\n var ensureDomSelection = forceChange => {\n try {\n var el = ReactEditor.toDOMNode(editor, editor);\n el.focus();\n setDomSelection(forceChange);\n } catch (e) {// Ignore, dom and state might be out of sync\n }\n }; // Compat: Android IMEs try to force their selection by manually re-applying it even after we set it.\n // This essentially would make setting the slate selection during an update meaningless, so we force it\n // again here. We can't only do it in the setTimeout after the animation frame since that would cause a\n // visible flicker.\n\n\n ensureDomSelection();\n timeoutId = setTimeout(() => {\n // COMPAT: While setting the selection in an animation frame visually correctly sets the selection,\n // it doesn't update GBoards spellchecker state. We have to manually trigger a selection change after\n // the animation frame to ensure it displays the correct state.\n ensureDomSelection(true);\n state.isUpdatingSelection = false;\n });\n }\n });\n return () => {\n cancelAnimationFrame(animationFrameId);\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }); // Listen on the native `beforeinput` event to get real \"Level 2\" events. This\n // is required because React's `beforeinput` is fake and never really attaches\n // to the real event sadly. (2019/11/01)\n // https://github.com/facebook/react/issues/11211\n\n var onDOMBeforeInput = useCallback(event => {\n onUserInput();\n\n if (!readOnly && ReactEditor.hasEditableTarget(editor, event.target) && !isDOMEventHandled(event, propsOnDOMBeforeInput)) {\n var _EDITOR_TO_USER_SELEC;\n\n // COMPAT: BeforeInput events aren't cancelable on android, so we have to handle them differently using the android input manager.\n if (androidInputManagerRef.current) {\n return androidInputManagerRef.current.handleDOMBeforeInput(event);\n } // Some IMEs/Chrome extensions like e.g. Grammarly set the selection immediately before\n // triggering a `beforeinput` expecting the change to be applied to the immediately before\n // set selection.\n\n\n scheduleOnDOMSelectionChange.flush();\n onDOMSelectionChange.flush();\n var {\n selection\n } = editor;\n var {\n inputType: type\n } = event;\n var data = event.dataTransfer || event.data || undefined;\n var isCompositionChange = type === 'insertCompositionText' || type === 'deleteCompositionText'; // COMPAT: use composition change events as a hint to where we should insert\n // composition text if we aren't composing to work around https://github.com/ianstormtaylor/slate/issues/5038\n\n if (isCompositionChange && ReactEditor.isComposing(editor)) {\n return;\n }\n\n var native = false;\n\n if (type === 'insertText' && selection && Range.isCollapsed(selection) && // Only use native character insertion for single characters a-z or space for now.\n // Long-press events (hold a + press 4 = ä) to choose a special character otherwise\n // causes duplicate inserts.\n event.data && event.data.length === 1 && /[a-z ]/i.test(event.data) && // Chrome has issues correctly editing the start of nodes: https://bugs.chromium.org/p/chromium/issues/detail?id=1249405\n // When there is an inline element, e.g. a link, and you select\n // right after it (the start of the next node).\n selection.anchor.offset !== 0) {\n var _node$parentElement, _window$getComputedSt;\n\n native = true; // Skip native if there are marks, as\n // `insertText` will insert a node, not just text.\n\n if (editor.marks) {\n native = false;\n } // Chrome also has issues correctly editing the end of anchor elements: https://bugs.chromium.org/p/chromium/issues/detail?id=1259100\n // Therefore we don't allow native events to insert text at the end of anchor nodes.\n\n\n var {\n anchor\n } = selection;\n var [node, offset] = ReactEditor.toDOMPoint(editor, anchor);\n var anchorNode = (_node$parentElement = node.parentElement) === null || _node$parentElement === void 0 ? void 0 : _node$parentElement.closest('a');\n var window = ReactEditor.getWindow(editor);\n\n if (native && anchorNode && ReactEditor.hasDOMNode(editor, anchorNode)) {\n var _lastText$textContent;\n\n // Find the last text node inside the anchor.\n var lastText = window === null || window === void 0 ? void 0 : window.document.createTreeWalker(anchorNode, NodeFilter.SHOW_TEXT).lastChild();\n\n if (lastText === node && ((_lastText$textContent = lastText.textContent) === null || _lastText$textContent === void 0 ? void 0 : _lastText$textContent.length) === offset) {\n native = false;\n }\n } // Chrome has issues with the presence of tab characters inside elements with whiteSpace = 'pre'\n // causing abnormal insert behavior: https://bugs.chromium.org/p/chromium/issues/detail?id=1219139\n\n\n if (native && node.parentElement && (window === null || window === void 0 ? void 0 : (_window$getComputedSt = window.getComputedStyle(node.parentElement)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.whiteSpace) === 'pre') {\n var block = Editor.above(editor, {\n at: anchor.path,\n match: n => Element$1.isElement(n) && Editor.isBlock(editor, n)\n });\n\n if (block && Node.string(block[0]).includes('\\t')) {\n native = false;\n }\n }\n } // COMPAT: For the deleting forward/backward input types we don't want\n // to change the selection because it is the range that will be deleted,\n // and those commands determine that for themselves.\n\n\n if (!type.startsWith('delete') || type.startsWith('deleteBy')) {\n var [targetRange] = event.getTargetRanges();\n\n if (targetRange) {\n var range = ReactEditor.toSlateRange(editor, targetRange, {\n exactMatch: false,\n suppressThrow: false\n });\n\n if (!selection || !Range.equals(selection, range)) {\n native = false;\n var selectionRef = !isCompositionChange && editor.selection && Editor.rangeRef(editor, editor.selection);\n Transforms.select(editor, range);\n\n if (selectionRef) {\n EDITOR_TO_USER_SELECTION.set(editor, selectionRef);\n }\n }\n }\n } // Composition change types occur while a user is composing text and can't be\n // cancelled. Let them through and wait for the composition to end.\n\n\n if (isCompositionChange) {\n return;\n }\n\n if (!native) {\n event.preventDefault();\n } // COMPAT: If the selection is expanded, even if the command seems like\n // a delete forward/backward command it should delete the selection.\n\n\n if (selection && Range.isExpanded(selection) && type.startsWith('delete')) {\n var direction = type.endsWith('Backward') ? 'backward' : 'forward';\n Editor.deleteFragment(editor, {\n direction\n });\n return;\n }\n\n switch (type) {\n case 'deleteByComposition':\n case 'deleteByCut':\n case 'deleteByDrag':\n {\n Editor.deleteFragment(editor);\n break;\n }\n\n case 'deleteContent':\n case 'deleteContentForward':\n {\n Editor.deleteForward(editor);\n break;\n }\n\n case 'deleteContentBackward':\n {\n Editor.deleteBackward(editor);\n break;\n }\n\n case 'deleteEntireSoftLine':\n {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n break;\n }\n\n case 'deleteHardLineBackward':\n {\n Editor.deleteBackward(editor, {\n unit: 'block'\n });\n break;\n }\n\n case 'deleteSoftLineBackward':\n {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n break;\n }\n\n case 'deleteHardLineForward':\n {\n Editor.deleteForward(editor, {\n unit: 'block'\n });\n break;\n }\n\n case 'deleteSoftLineForward':\n {\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n break;\n }\n\n case 'deleteWordBackward':\n {\n Editor.deleteBackward(editor, {\n unit: 'word'\n });\n break;\n }\n\n case 'deleteWordForward':\n {\n Editor.deleteForward(editor, {\n unit: 'word'\n });\n break;\n }\n\n case 'insertLineBreak':\n Editor.insertSoftBreak(editor);\n break;\n\n case 'insertParagraph':\n {\n Editor.insertBreak(editor);\n break;\n }\n\n case 'insertFromComposition':\n case 'insertFromDrop':\n case 'insertFromPaste':\n case 'insertFromYank':\n case 'insertReplacementText':\n case 'insertText':\n {\n if (type === 'insertFromComposition') {\n // COMPAT: in Safari, `compositionend` is dispatched after the\n // `beforeinput` for \"insertFromComposition\". But if we wait for it\n // then we will abort because we're still composing and the selection\n // won't be updated properly.\n // https://www.w3.org/TR/input-events-2/\n if (ReactEditor.isComposing(editor)) {\n setIsComposing(false);\n IS_COMPOSING.set(editor, false);\n }\n } // use a weak comparison instead of 'instanceof' to allow\n // programmatic access of paste events coming from external windows\n // like cypress where cy.window does not work realibly\n\n\n if ((data === null || data === void 0 ? void 0 : data.constructor.name) === 'DataTransfer') {\n ReactEditor.insertData(editor, data);\n } else if (typeof data === 'string') {\n // Only insertText operations use the native functionality, for now.\n // Potentially expand to single character deletes, as well.\n if (native) {\n deferredOperations.current.push(() => Editor.insertText(editor, data));\n } else {\n Editor.insertText(editor, data);\n }\n }\n\n break;\n }\n } // Restore the actual user section if nothing manually set it.\n\n\n var toRestore = (_EDITOR_TO_USER_SELEC = EDITOR_TO_USER_SELECTION.get(editor)) === null || _EDITOR_TO_USER_SELEC === void 0 ? void 0 : _EDITOR_TO_USER_SELEC.unref();\n EDITOR_TO_USER_SELECTION.delete(editor);\n\n if (toRestore && (!editor.selection || !Range.equals(editor.selection, toRestore))) {\n Transforms.select(editor, toRestore);\n }\n }\n }, [editor, onDOMSelectionChange, onUserInput, propsOnDOMBeforeInput, readOnly, scheduleOnDOMSelectionChange]);\n var callbackRef = useCallback(node => {\n if (node == null) {\n onDOMSelectionChange.cancel();\n scheduleOnDOMSelectionChange.cancel();\n EDITOR_TO_ELEMENT.delete(editor);\n NODE_TO_ELEMENT.delete(editor);\n\n if (ref.current && HAS_BEFORE_INPUT_SUPPORT) {\n // @ts-ignore The `beforeinput` event isn't recognized.\n ref.current.removeEventListener('beforeinput', onDOMBeforeInput);\n }\n } else {\n // Attach a native DOM event handler for `beforeinput` events, because React's\n // built-in `onBeforeInput` is actually a leaky polyfill that doesn't expose\n // real `beforeinput` events sadly... (2019/11/04)\n // https://github.com/facebook/react/issues/11211\n if (HAS_BEFORE_INPUT_SUPPORT) {\n // @ts-ignore The `beforeinput` event isn't recognized.\n node.addEventListener('beforeinput', onDOMBeforeInput);\n }\n }\n\n ref.current = node;\n }, [onDOMSelectionChange, scheduleOnDOMSelectionChange, editor, onDOMBeforeInput]); // Attach a native DOM event handler for `selectionchange`, because React's\n // built-in `onSelect` handler doesn't fire for all selection changes. It's a\n // leaky polyfill that only fires on keypresses or clicks. Instead, we want to\n // fire for any change to the selection inside the editor. (2019/11/04)\n // https://github.com/facebook/react/issues/5785\n\n useIsomorphicLayoutEffect(() => {\n var window = ReactEditor.getWindow(editor);\n window.document.addEventListener('selectionchange', scheduleOnDOMSelectionChange);\n return () => {\n window.document.removeEventListener('selectionchange', scheduleOnDOMSelectionChange);\n };\n }, [scheduleOnDOMSelectionChange]);\n var decorations = decorate([editor, []]);\n var showPlaceholder = placeholder && editor.children.length === 1 && Array.from(Node.texts(editor)).length === 1 && Node.string(editor) === '' && !isComposing;\n var placeHolderResizeHandler = useCallback(placeholderEl => {\n if (placeholderEl && showPlaceholder) {\n var _placeholderEl$getBou;\n\n setPlaceholderHeight((_placeholderEl$getBou = placeholderEl.getBoundingClientRect()) === null || _placeholderEl$getBou === void 0 ? void 0 : _placeholderEl$getBou.height);\n } else {\n setPlaceholderHeight(undefined);\n }\n }, [showPlaceholder]);\n\n if (showPlaceholder) {\n var start = Editor.start(editor, []);\n decorations.push({\n [PLACEHOLDER_SYMBOL]: true,\n placeholder,\n onPlaceholderResize: placeHolderResizeHandler,\n anchor: start,\n focus: start\n });\n }\n\n var {\n marks\n } = editor;\n state.hasMarkPlaceholder = false;\n\n if (editor.selection && Range.isCollapsed(editor.selection) && marks) {\n var {\n anchor\n } = editor.selection;\n var leaf = Node.leaf(editor, anchor.path);\n\n var rest = _objectWithoutProperties(leaf, _excluded2); // While marks isn't a 'complete' text, we can still use loose Text.equals\n // here which only compares marks anyway.\n\n\n if (!Text$1.equals(leaf, marks, {\n loose: true\n })) {\n state.hasMarkPlaceholder = true;\n var unset = Object.fromEntries(Object.keys(rest).map(mark => [mark, null]));\n decorations.push(_objectSpread$1(_objectSpread$1(_objectSpread$1({\n [MARK_PLACEHOLDER_SYMBOL]: true\n }, unset), marks), {}, {\n anchor,\n focus: anchor\n }));\n }\n } // Update EDITOR_TO_MARK_PLACEHOLDER_MARKS in setTimeout useEffect to ensure we don't set it\n // before we receive the composition end event.\n\n\n useEffect(() => {\n setTimeout(() => {\n var {\n selection\n } = editor;\n\n if (selection) {\n var {\n anchor: _anchor\n } = selection;\n\n var _text = Node.leaf(editor, _anchor.path); // While marks isn't a 'complete' text, we can still use loose Text.equals\n // here which only compares marks anyway.\n\n\n if (marks && !Text$1.equals(_text, marks, {\n loose: true\n })) {\n EDITOR_TO_PENDING_INSERTION_MARKS.set(editor, marks);\n return;\n }\n }\n\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor);\n });\n });\n return /*#__PURE__*/React.createElement(ReadOnlyContext.Provider, {\n value: readOnly\n }, /*#__PURE__*/React.createElement(DecorateContext.Provider, {\n value: decorate\n }, /*#__PURE__*/React.createElement(RestoreDOM, {\n node: ref,\n receivedUserInput: receivedUserInput\n }, /*#__PURE__*/React.createElement(Component, Object.assign({\n role: readOnly ? undefined : 'textbox',\n \"aria-multiline\": readOnly ? undefined : true\n }, attributes, {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we'd\n // have to use hacks to make these replacement-based features work.\n // For SSR situations HAS_BEFORE_INPUT_SUPPORT is false and results in prop\n // mismatch warning app moves to browser. Pass-through consumer props when\n // not CAN_USE_DOM (SSR) and default to falsy value\n spellCheck: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.spellCheck : false,\n autoCorrect: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.autoCorrect : 'false',\n autoCapitalize: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.autoCapitalize : 'false',\n \"data-slate-editor\": true,\n \"data-slate-node\": \"value\",\n // explicitly set this\n contentEditable: !readOnly,\n // in some cases, a decoration needs access to the range / selection to decorate a text node,\n // then you will select the whole text node when you select part the of text\n // this magic zIndex=\"-1\" will fix it\n zindex: -1,\n suppressContentEditableWarning: true,\n ref: callbackRef,\n style: _objectSpread$1(_objectSpread$1({}, disableDefaultStyles ? {} : _objectSpread$1({\n // Allow positioning relative to the editable element.\n position: 'relative',\n // Preserve adjacent whitespace and new lines.\n whiteSpace: 'pre-wrap',\n // Allow words to break if they are too long.\n wordWrap: 'break-word'\n }, placeholderHeight ? {\n minHeight: placeholderHeight\n } : {})), userStyle),\n onBeforeInput: useCallback(event => {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to React's leaky polyfill instead just for it. It\n // only works for the `insertText` input type.\n if (!HAS_BEFORE_INPUT_SUPPORT && !readOnly && !isEventHandled(event, attributes.onBeforeInput) && ReactEditor.hasSelectableTarget(editor, event.target)) {\n event.preventDefault();\n\n if (!ReactEditor.isComposing(editor)) {\n var _text2 = event.data;\n Editor.insertText(editor, _text2);\n }\n }\n }, [attributes.onBeforeInput, editor, readOnly]),\n onInput: useCallback(event => {\n if (isEventHandled(event, attributes.onInput)) {\n return;\n }\n\n if (androidInputManagerRef.current) {\n androidInputManagerRef.current.handleInput();\n return;\n } // Flush native operations, as native events will have propogated\n // and we can correctly compare DOM text values in components\n // to stop rendering, so that browser functions like autocorrect\n // and spellcheck work as expected.\n\n\n for (var op of deferredOperations.current) {\n op();\n }\n\n deferredOperations.current = [];\n }, [attributes.onInput]),\n onBlur: useCallback(event => {\n if (readOnly || state.isUpdatingSelection || !ReactEditor.hasSelectableTarget(editor, event.target) || isEventHandled(event, attributes.onBlur)) {\n return;\n } // COMPAT: If the current `activeElement` is still the previous\n // one, this is due to the window being blurred when the tab\n // itself becomes unfocused, so we want to abort early to allow to\n // editor to stay focused when the tab becomes focused again.\n\n\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n\n if (state.latestElement === root.activeElement) {\n return;\n }\n\n var {\n relatedTarget\n } = event;\n var el = ReactEditor.toDOMNode(editor, editor); // COMPAT: The event should be ignored if the focus is returning\n // to the editor from an embedded editable element (eg. an <input>\n // element inside a void node).\n\n if (relatedTarget === el) {\n return;\n } // COMPAT: The event should be ignored if the focus is moving from\n // the editor to inside a void node's spacer element.\n\n\n if (isDOMElement(relatedTarget) && relatedTarget.hasAttribute('data-slate-spacer')) {\n return;\n } // COMPAT: The event should be ignored if the focus is moving to a\n // non- editable section of an element that isn't a void node (eg.\n // a list item of the check list example).\n\n\n if (relatedTarget != null && isDOMNode(relatedTarget) && ReactEditor.hasDOMNode(editor, relatedTarget)) {\n var node = ReactEditor.toSlateNode(editor, relatedTarget);\n\n if (Element$1.isElement(node) && !editor.isVoid(node)) {\n return;\n }\n } // COMPAT: Safari doesn't always remove the selection even if the content-\n // editable element no longer has focus. Refer to:\n // https://stackoverflow.com/questions/12353247/force-contenteditable-div-to-stop-accepting-input-after-it-loses-focus-under-web\n\n\n if (IS_WEBKIT) {\n var domSelection = root.getSelection();\n domSelection === null || domSelection === void 0 ? void 0 : domSelection.removeAllRanges();\n }\n\n IS_FOCUSED.delete(editor);\n }, [readOnly, state.isUpdatingSelection, state.latestElement, editor, attributes.onBlur]),\n onClick: useCallback(event => {\n if (ReactEditor.hasTarget(editor, event.target) && !isEventHandled(event, attributes.onClick) && isDOMNode(event.target)) {\n var node = ReactEditor.toSlateNode(editor, event.target);\n var path = ReactEditor.findPath(editor, node); // At this time, the Slate document may be arbitrarily different,\n // because onClick handlers can change the document before we get here.\n // Therefore we must check that this path actually exists,\n // and that it still refers to the same node.\n\n if (!Editor.hasPath(editor, path) || Node.get(editor, path) !== node) {\n return;\n }\n\n if (event.detail === TRIPLE_CLICK && path.length >= 1) {\n var blockPath = path;\n\n if (!(Element$1.isElement(node) && Editor.isBlock(editor, node))) {\n var _block$;\n\n var block = Editor.above(editor, {\n match: n => Element$1.isElement(n) && Editor.isBlock(editor, n),\n at: path\n });\n blockPath = (_block$ = block === null || block === void 0 ? void 0 : block[1]) !== null && _block$ !== void 0 ? _block$ : path.slice(0, 1);\n }\n\n var range = Editor.range(editor, blockPath);\n Transforms.select(editor, range);\n return;\n }\n\n if (readOnly) {\n return;\n }\n\n var _start = Editor.start(editor, path);\n\n var end = Editor.end(editor, path);\n var startVoid = Editor.void(editor, {\n at: _start\n });\n var endVoid = Editor.void(editor, {\n at: end\n });\n\n if (startVoid && endVoid && Path.equals(startVoid[1], endVoid[1])) {\n var _range = Editor.range(editor, _start);\n\n Transforms.select(editor, _range);\n }\n }\n }, [editor, attributes.onClick, readOnly]),\n onCompositionEnd: useCallback(event => {\n if (ReactEditor.hasSelectableTarget(editor, event.target)) {\n var _androidInputManagerR3;\n\n if (ReactEditor.isComposing(editor)) {\n setIsComposing(false);\n IS_COMPOSING.set(editor, false);\n }\n\n (_androidInputManagerR3 = androidInputManagerRef.current) === null || _androidInputManagerR3 === void 0 ? void 0 : _androidInputManagerR3.handleCompositionEnd(event);\n\n if (isEventHandled(event, attributes.onCompositionEnd) || IS_ANDROID) {\n return;\n } // COMPAT: In Chrome, `beforeinput` events for compositions\n // aren't correct and never fire the \"insertFromComposition\"\n // type that we need. So instead, insert whenever a composition\n // ends since it will already have been committed to the DOM.\n\n\n if (!IS_WEBKIT && !IS_FIREFOX_LEGACY && !IS_IOS && !IS_WECHATBROWSER && !IS_UC_MOBILE && event.data) {\n var placeholderMarks = EDITOR_TO_PENDING_INSERTION_MARKS.get(editor);\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor); // Ensure we insert text with the marks the user was actually seeing\n\n if (placeholderMarks !== undefined) {\n EDITOR_TO_USER_MARKS.set(editor, editor.marks);\n editor.marks = placeholderMarks;\n }\n\n Editor.insertText(editor, event.data);\n var userMarks = EDITOR_TO_USER_MARKS.get(editor);\n EDITOR_TO_USER_MARKS.delete(editor);\n\n if (userMarks !== undefined) {\n editor.marks = userMarks;\n }\n }\n }\n }, [attributes.onCompositionEnd, editor]),\n onCompositionUpdate: useCallback(event => {\n if (ReactEditor.hasSelectableTarget(editor, event.target) && !isEventHandled(event, attributes.onCompositionUpdate)) {\n if (!ReactEditor.isComposing(editor)) {\n setIsComposing(true);\n IS_COMPOSING.set(editor, true);\n }\n }\n }, [attributes.onCompositionUpdate, editor]),\n onCompositionStart: useCallback(event => {\n if (ReactEditor.hasSelectableTarget(editor, event.target)) {\n var _androidInputManagerR4;\n\n (_androidInputManagerR4 = androidInputManagerRef.current) === null || _androidInputManagerR4 === void 0 ? void 0 : _androidInputManagerR4.handleCompositionStart(event);\n\n if (isEventHandled(event, attributes.onCompositionStart) || IS_ANDROID) {\n return;\n }\n\n setIsComposing(true);\n var {\n selection\n } = editor;\n\n if (selection) {\n if (Range.isExpanded(selection)) {\n Editor.deleteFragment(editor);\n return;\n }\n\n var inline = Editor.above(editor, {\n match: n => Element$1.isElement(n) && Editor.isInline(editor, n),\n mode: 'highest'\n });\n\n if (inline) {\n var [, inlinePath] = inline;\n\n if (Editor.isEnd(editor, selection.anchor, inlinePath)) {\n var point = Editor.after(editor, inlinePath);\n Transforms.setSelection(editor, {\n anchor: point,\n focus: point\n });\n }\n }\n }\n }\n }, [attributes.onCompositionStart, editor]),\n onCopy: useCallback(event => {\n if (ReactEditor.hasSelectableTarget(editor, event.target) && !isEventHandled(event, attributes.onCopy) && !isDOMEventTargetInput(event)) {\n event.preventDefault();\n ReactEditor.setFragmentData(editor, event.clipboardData, 'copy');\n }\n }, [attributes.onCopy, editor]),\n onCut: useCallback(event => {\n if (!readOnly && ReactEditor.hasSelectableTarget(editor, event.target) && !isEventHandled(event, attributes.onCut) && !isDOMEventTargetInput(event)) {\n event.preventDefault();\n ReactEditor.setFragmentData(editor, event.clipboardData, 'cut');\n var {\n selection\n } = editor;\n\n if (selection) {\n if (Range.isExpanded(selection)) {\n Editor.deleteFragment(editor);\n } else {\n var node = Node.parent(editor, selection.anchor.path);\n\n if (Editor.isVoid(editor, node)) {\n Transforms.delete(editor);\n }\n }\n }\n }\n }, [readOnly, editor, attributes.onCut]),\n onDragOver: useCallback(event => {\n if (ReactEditor.hasTarget(editor, event.target) && !isEventHandled(event, attributes.onDragOver)) {\n // Only when the target is void, call `preventDefault` to signal\n // that drops are allowed. Editable content is droppable by\n // default, and calling `preventDefault` hides the cursor.\n var node = ReactEditor.toSlateNode(editor, event.target);\n\n if (Element$1.isElement(node) && Editor.isVoid(editor, node)) {\n event.preventDefault();\n }\n }\n }, [attributes.onDragOver, editor]),\n onDragStart: useCallback(event => {\n if (!readOnly && ReactEditor.hasTarget(editor, event.target) && !isEventHandled(event, attributes.onDragStart)) {\n var node = ReactEditor.toSlateNode(editor, event.target);\n var path = ReactEditor.findPath(editor, node);\n var voidMatch = Element$1.isElement(node) && Editor.isVoid(editor, node) || Editor.void(editor, {\n at: path,\n voids: true\n }); // If starting a drag on a void node, make sure it is selected\n // so that it shows up in the selection's fragment.\n\n if (voidMatch) {\n var range = Editor.range(editor, path);\n Transforms.select(editor, range);\n }\n\n state.isDraggingInternally = true;\n ReactEditor.setFragmentData(editor, event.dataTransfer, 'drag');\n }\n }, [readOnly, editor, attributes.onDragStart, state]),\n onDrop: useCallback(event => {\n if (!readOnly && ReactEditor.hasTarget(editor, event.target) && !isEventHandled(event, attributes.onDrop)) {\n event.preventDefault(); // Keep a reference to the dragged range before updating selection\n\n var draggedRange = editor.selection; // Find the range where the drop happened\n\n var range = ReactEditor.findEventRange(editor, event);\n var data = event.dataTransfer;\n Transforms.select(editor, range);\n\n if (state.isDraggingInternally) {\n if (draggedRange && !Range.equals(draggedRange, range) && !Editor.void(editor, {\n at: range,\n voids: true\n })) {\n Transforms.delete(editor, {\n at: draggedRange\n });\n }\n }\n\n ReactEditor.insertData(editor, data); // When dragging from another source into the editor, it's possible\n // that the current editor does not have focus.\n\n if (!ReactEditor.isFocused(editor)) {\n ReactEditor.focus(editor);\n }\n }\n\n state.isDraggingInternally = false;\n }, [readOnly, editor, attributes.onDrop, state]),\n onDragEnd: useCallback(event => {\n if (!readOnly && state.isDraggingInternally && attributes.onDragEnd && ReactEditor.hasTarget(editor, event.target)) {\n attributes.onDragEnd(event);\n } // When dropping on a different droppable element than the current editor,\n // `onDrop` is not called. So we need to clean up in `onDragEnd` instead.\n // Note: `onDragEnd` is only called when `onDrop` is not called\n\n\n state.isDraggingInternally = false;\n }, [readOnly, state, attributes, editor]),\n onFocus: useCallback(event => {\n if (!readOnly && !state.isUpdatingSelection && ReactEditor.hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onFocus)) {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n state.latestElement = root.activeElement; // COMPAT: If the editor has nested editable elements, the focus\n // can go to them. In Firefox, this must be prevented because it\n // results in issues with keyboard navigation. (2017/03/30)\n\n if (IS_FIREFOX && event.target !== el) {\n el.focus();\n return;\n }\n\n IS_FOCUSED.set(editor, true);\n }\n }, [readOnly, state, editor, attributes.onFocus]),\n onKeyDown: useCallback(event => {\n if (!readOnly && ReactEditor.hasEditableTarget(editor, event.target)) {\n var _androidInputManagerR5;\n\n (_androidInputManagerR5 = androidInputManagerRef.current) === null || _androidInputManagerR5 === void 0 ? void 0 : _androidInputManagerR5.handleKeyDown(event);\n var {\n nativeEvent\n } = event; // COMPAT: The composition end event isn't fired reliably in all browsers,\n // so we sometimes might end up stuck in a composition state even though we\n // aren't composing any more.\n\n if (ReactEditor.isComposing(editor) && nativeEvent.isComposing === false) {\n IS_COMPOSING.set(editor, false);\n setIsComposing(false);\n }\n\n if (isEventHandled(event, attributes.onKeyDown) || ReactEditor.isComposing(editor)) {\n return;\n }\n\n var {\n selection\n } = editor;\n var element = editor.children[selection !== null ? selection.focus.path[0] : 0];\n var isRTL = getDirection(Node.string(element)) === 'rtl'; // COMPAT: Since we prevent the default behavior on\n // `beforeinput` events, the browser doesn't think there's ever\n // any history stack to undo or redo, so we have to manage these\n // hotkeys ourselves. (2019/11/06)\n\n if (Hotkeys.isRedo(nativeEvent)) {\n event.preventDefault();\n var maybeHistoryEditor = editor;\n\n if (typeof maybeHistoryEditor.redo === 'function') {\n maybeHistoryEditor.redo();\n }\n\n return;\n }\n\n if (Hotkeys.isUndo(nativeEvent)) {\n event.preventDefault();\n var _maybeHistoryEditor = editor;\n\n if (typeof _maybeHistoryEditor.undo === 'function') {\n _maybeHistoryEditor.undo();\n }\n\n return;\n } // COMPAT: Certain browsers don't handle the selection updates\n // properly. In Chrome, the selection isn't properly extended.\n // And in Firefox, the selection isn't properly collapsed.\n // (2017/10/17)\n\n\n if (Hotkeys.isMoveLineBackward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line',\n reverse: true\n });\n return;\n }\n\n if (Hotkeys.isMoveLineForward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line'\n });\n return;\n }\n\n if (Hotkeys.isExtendLineBackward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line',\n edge: 'focus',\n reverse: true\n });\n return;\n }\n\n if (Hotkeys.isExtendLineForward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line',\n edge: 'focus'\n });\n return;\n } // COMPAT: If a void node is selected, or a zero-width text node\n // adjacent to an inline is selected, we need to handle these\n // hotkeys manually because browsers won't be able to skip over\n // the void node with the zero-width space not being an empty\n // string.\n\n\n if (Hotkeys.isMoveBackward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isCollapsed(selection)) {\n Transforms.move(editor, {\n reverse: !isRTL\n });\n } else {\n Transforms.collapse(editor, {\n edge: 'start'\n });\n }\n\n return;\n }\n\n if (Hotkeys.isMoveForward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isCollapsed(selection)) {\n Transforms.move(editor, {\n reverse: isRTL\n });\n } else {\n Transforms.collapse(editor, {\n edge: 'end'\n });\n }\n\n return;\n }\n\n if (Hotkeys.isMoveWordBackward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Transforms.collapse(editor, {\n edge: 'focus'\n });\n }\n\n Transforms.move(editor, {\n unit: 'word',\n reverse: !isRTL\n });\n return;\n }\n\n if (Hotkeys.isMoveWordForward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Transforms.collapse(editor, {\n edge: 'focus'\n });\n }\n\n Transforms.move(editor, {\n unit: 'word',\n reverse: isRTL\n });\n return;\n } // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to guessing at the input intention for hotkeys.\n // COMPAT: In iOS, some of these hotkeys are handled in the\n\n\n if (!HAS_BEFORE_INPUT_SUPPORT) {\n // We don't have a core behavior for these, but they change the\n // DOM if we don't prevent them, so we have to.\n if (Hotkeys.isBold(nativeEvent) || Hotkeys.isItalic(nativeEvent) || Hotkeys.isTransposeCharacter(nativeEvent)) {\n event.preventDefault();\n return;\n }\n\n if (Hotkeys.isSoftBreak(nativeEvent)) {\n event.preventDefault();\n Editor.insertSoftBreak(editor);\n return;\n }\n\n if (Hotkeys.isSplitBlock(nativeEvent)) {\n event.preventDefault();\n Editor.insertBreak(editor);\n return;\n }\n\n if (Hotkeys.isDeleteBackward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'backward'\n });\n } else {\n Editor.deleteBackward(editor);\n }\n\n return;\n }\n\n if (Hotkeys.isDeleteForward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'forward'\n });\n } else {\n Editor.deleteForward(editor);\n }\n\n return;\n }\n\n if (Hotkeys.isDeleteLineBackward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'backward'\n });\n } else {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n }\n\n return;\n }\n\n if (Hotkeys.isDeleteLineForward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'forward'\n });\n } else {\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n }\n\n return;\n }\n\n if (Hotkeys.isDeleteWordBackward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'backward'\n });\n } else {\n Editor.deleteBackward(editor, {\n unit: 'word'\n });\n }\n\n return;\n }\n\n if (Hotkeys.isDeleteWordForward(nativeEvent)) {\n event.preventDefault();\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'forward'\n });\n } else {\n Editor.deleteForward(editor, {\n unit: 'word'\n });\n }\n\n return;\n }\n } else {\n if (IS_CHROME || IS_WEBKIT) {\n // COMPAT: Chrome and Safari support `beforeinput` event but do not fire\n // an event when deleting backwards in a selected void inline node\n if (selection && (Hotkeys.isDeleteBackward(nativeEvent) || Hotkeys.isDeleteForward(nativeEvent)) && Range.isCollapsed(selection)) {\n var currentNode = Node.parent(editor, selection.anchor.path);\n\n if (Element$1.isElement(currentNode) && Editor.isVoid(editor, currentNode) && (Editor.isInline(editor, currentNode) || Editor.isBlock(editor, currentNode))) {\n event.preventDefault();\n Editor.deleteBackward(editor, {\n unit: 'block'\n });\n return;\n }\n }\n }\n }\n }\n }, [readOnly, editor, attributes.onKeyDown]),\n onPaste: useCallback(event => {\n if (!readOnly && ReactEditor.hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onPaste)) {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to React's `onPaste` here instead.\n // COMPAT: Firefox, Chrome and Safari don't emit `beforeinput` events\n // when \"paste without formatting\" is used, so fallback. (2020/02/20)\n // COMPAT: Safari InputEvents generated by pasting won't include\n // application/x-slate-fragment items, so use the\n // ClipboardEvent here. (2023/03/15)\n if (!HAS_BEFORE_INPUT_SUPPORT || isPlainTextOnlyPaste(event.nativeEvent) || IS_WEBKIT) {\n event.preventDefault();\n ReactEditor.insertData(editor, event.clipboardData);\n }\n }\n }, [readOnly, editor, attributes.onPaste])\n }), /*#__PURE__*/React.createElement(Children, {\n decorations: decorations,\n node: editor,\n renderElement: renderElement,\n renderPlaceholder: renderPlaceholder,\n renderLeaf: renderLeaf,\n selection: editor.selection\n })))));\n};\n/**\r\n * The default placeholder element\r\n */\n\nvar DefaultPlaceholder = _ref => {\n var {\n attributes,\n children\n } = _ref;\n return (\n /*#__PURE__*/\n // COMPAT: Artificially add a line-break to the end on the placeholder element\n // to prevent Android IMEs to pick up its content in autocorrect and to auto-capitalize the first letter\n React.createElement(\"span\", Object.assign({}, attributes), children, IS_ANDROID && /*#__PURE__*/React.createElement(\"br\", null))\n );\n};\n/**\r\n * A default memoized decorate function.\r\n */\n\nvar defaultDecorate = () => [];\n/**\r\n * A default implement to scroll dom range into view.\r\n */\n\nvar defaultScrollSelectionIntoView = (editor, domRange) => {\n // This was affecting the selection of multiple blocks and dragging behavior,\n // so enabled only if the selection has been collapsed.\n if (domRange.getBoundingClientRect && (!editor.selection || editor.selection && Range.isCollapsed(editor.selection))) {\n var leafEl = domRange.startContainer.parentElement;\n leafEl.getBoundingClientRect = domRange.getBoundingClientRect.bind(domRange);\n scrollIntoView(leafEl, {\n scrollMode: 'if-needed'\n }); // @ts-expect-error an unorthodox delete D:\n\n delete leafEl.getBoundingClientRect;\n }\n};\n/**\r\n * Check if an event is overrided by a handler.\r\n */\n\n\nvar isEventHandled = (event, handler) => {\n if (!handler) {\n return false;\n } // The custom event handler may return a boolean to specify whether the event\n // shall be treated as being handled or not.\n\n\n var shouldTreatEventAsHandled = handler(event);\n\n if (shouldTreatEventAsHandled != null) {\n return shouldTreatEventAsHandled;\n }\n\n return event.isDefaultPrevented() || event.isPropagationStopped();\n};\n/**\r\n * Check if the event's target is an input element\r\n */\n\nvar isDOMEventTargetInput = event => {\n return isDOMNode(event.target) && (event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement);\n};\n/**\r\n * Check if a DOM event is overrided by a handler.\r\n */\n\nvar isDOMEventHandled = (event, handler) => {\n if (!handler) {\n return false;\n } // The custom event handler may return a boolean to specify whether the event\n // shall be treated as being handled or not.\n\n\n var shouldTreatEventAsHandled = handler(event);\n\n if (shouldTreatEventAsHandled != null) {\n return shouldTreatEventAsHandled;\n }\n\n return event.defaultPrevented;\n};\n\n/**\r\n * A React context for sharing the `focused` state of the editor.\r\n */\n\nvar FocusedContext = /*#__PURE__*/createContext(false);\n/**\r\n * Get the current `focused` state of the editor.\r\n */\n\nvar useFocused = () => {\n return useContext(FocusedContext);\n};\n\nfunction isError(error) {\n return error instanceof Error;\n}\n/**\r\n * A React context for sharing the editor selector context in a way to control rerenders\r\n */\n\n\nvar SlateSelectorContext = /*#__PURE__*/createContext({});\n\nvar refEquality = (a, b) => a === b;\n/**\r\n * use redux style selectors to prevent rerendering on every keystroke.\r\n * Bear in mind rerendering can only prevented if the returned value is a value type or for reference types (e.g. objects and arrays) add a custom equality function.\r\n *\r\n * Example:\r\n * ```\r\n * const isSelectionActive = useSlateSelector(editor => Boolean(editor.selection));\r\n * ```\r\n */\n\n\nfunction useSlateSelector(selector) {\n var equalityFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : refEquality;\n var [, forceRender] = useReducer(s => s + 1, 0);\n var context = useContext(SlateSelectorContext);\n\n if (!context) {\n throw new Error(\"The `useSlateSelector` hook must be used inside the <Slate> component's context.\");\n }\n\n var {\n getSlate,\n addEventListener\n } = context;\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef(() => null);\n var latestSelectedState = useRef(null);\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(getSlate());\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current && isError(err)) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\".concat(latestSubscriptionCallbackError.current.stack, \"\\n\\n\");\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(() => {\n latestSelector.current = selector;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(() => {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(getSlate());\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n var unsubscribe = addEventListener(checkForUpdates);\n checkForUpdates();\n return () => unsubscribe();\n }, // don't rerender on equalityFn change since we want to be able to define it inline\n [addEventListener, getSlate]);\n return selectedState;\n}\n/**\r\n * Create selector context with editor updating on every editor change\r\n */\n\nfunction useSelectorContext(editor) {\n var eventListeners = useRef([]).current;\n var slateRef = useRef({\n editor\n }).current;\n var onChange = useCallback(editor => {\n slateRef.editor = editor;\n eventListeners.forEach(listener => listener(editor));\n }, [eventListeners, slateRef]);\n var selectorContext = useMemo(() => {\n return {\n getSlate: () => slateRef.editor,\n addEventListener: callback => {\n eventListeners.push(callback);\n return () => {\n eventListeners.splice(eventListeners.indexOf(callback), 1);\n };\n }\n };\n }, [eventListeners, slateRef]);\n return {\n selectorContext,\n onChange\n };\n}\n\nvar _excluded = [\"editor\", \"children\", \"onChange\", \"initialValue\"];\n/**\r\n * A wrapper around the provider to handle `onChange` events, because the editor\r\n * is a mutable singleton so it won't ever register as \"changed\" otherwise.\r\n */\n\nvar Slate = props => {\n var {\n editor,\n children,\n onChange,\n initialValue\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n\n var [context, setContext] = React.useState(() => {\n if (!Node.isNodeList(initialValue)) {\n throw new Error(\"[Slate] initialValue is invalid! Expected a list of elements but got: \".concat(Scrubber.stringify(initialValue)));\n }\n\n if (!Editor.isEditor(editor)) {\n throw new Error(\"[Slate] editor is invalid! You passed: \".concat(Scrubber.stringify(editor)));\n }\n\n editor.children = initialValue;\n Object.assign(editor, rest);\n return {\n v: 0,\n editor\n };\n });\n var {\n selectorContext,\n onChange: handleSelectorChange\n } = useSelectorContext(editor);\n var onContextChange = useCallback(() => {\n if (onChange) {\n onChange(editor.children);\n }\n\n setContext(prevContext => ({\n v: prevContext.v + 1,\n editor\n }));\n handleSelectorChange(editor);\n }, [editor, handleSelectorChange, onChange]);\n useEffect(() => {\n EDITOR_TO_ON_CHANGE.set(editor, onContextChange);\n return () => {\n EDITOR_TO_ON_CHANGE.set(editor, () => {});\n };\n }, [editor, onContextChange]);\n var [isFocused, setIsFocused] = useState(ReactEditor.isFocused(editor));\n useEffect(() => {\n setIsFocused(ReactEditor.isFocused(editor));\n }, [editor]);\n useIsomorphicLayoutEffect(() => {\n var fn = () => setIsFocused(ReactEditor.isFocused(editor));\n\n if (REACT_MAJOR_VERSION >= 17) {\n // In React >= 17 onFocus and onBlur listen to the focusin and focusout events during the bubbling phase.\n // Therefore in order for <Editable />'s handlers to run first, which is necessary for ReactEditor.isFocused(editor)\n // to return the correct value, we have to listen to the focusin and focusout events without useCapture here.\n document.addEventListener('focusin', fn);\n document.addEventListener('focusout', fn);\n return () => {\n document.removeEventListener('focusin', fn);\n document.removeEventListener('focusout', fn);\n };\n } else {\n document.addEventListener('focus', fn, true);\n document.addEventListener('blur', fn, true);\n return () => {\n document.removeEventListener('focus', fn, true);\n document.removeEventListener('blur', fn, true);\n };\n }\n }, []);\n return /*#__PURE__*/React.createElement(SlateSelectorContext.Provider, {\n value: selectorContext\n }, /*#__PURE__*/React.createElement(SlateContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(EditorContext.Provider, {\n value: context.editor\n }, /*#__PURE__*/React.createElement(FocusedContext.Provider, {\n value: isFocused\n }, children))));\n};\n\n/**\r\n * Get the current editor object from the React context.\r\n * @deprecated Use useSlateStatic instead.\r\n */\n\nvar useEditor = () => {\n var editor = useContext(EditorContext);\n\n if (!editor) {\n throw new Error(\"The `useEditor` hook must be used inside the <Slate> component's context.\");\n }\n\n return editor;\n};\n\n/**\r\n * Get the current slate selection.\r\n * Only triggers a rerender when the selection actually changes\r\n */\n\nvar useSlateSelection = () => {\n return useSlateSelector(editor => editor.selection, isSelectionEqual);\n};\n\nvar isSelectionEqual = (a, b) => {\n if (!a && !b) return true;\n if (!a || !b) return false;\n return Range.equals(a, b);\n};\n\n/**\r\n * Utilities for single-line deletion\r\n */\n\nvar doRectsIntersect = (rect, compareRect) => {\n var middle = (compareRect.top + compareRect.bottom) / 2;\n return rect.top <= middle && rect.bottom >= middle;\n};\n\nvar areRangesSameLine = (editor, range1, range2) => {\n var rect1 = ReactEditor.toDOMRange(editor, range1).getBoundingClientRect();\n var rect2 = ReactEditor.toDOMRange(editor, range2).getBoundingClientRect();\n return doRectsIntersect(rect1, rect2) && doRectsIntersect(rect2, rect1);\n};\n/**\r\n * A helper utility that returns the end portion of a `Range`\r\n * which is located on a single line.\r\n *\r\n * @param {Editor} editor The editor object to compare against\r\n * @param {Range} parentRange The parent range to compare against\r\n * @returns {Range} A valid portion of the parentRange which is one a single line\r\n */\n\n\nvar findCurrentLineRange = (editor, parentRange) => {\n var parentRangeBoundary = Editor.range(editor, Range.end(parentRange));\n var positions = Array.from(Editor.positions(editor, {\n at: parentRange\n }));\n var left = 0;\n var right = positions.length;\n var middle = Math.floor(right / 2);\n\n if (areRangesSameLine(editor, Editor.range(editor, positions[left]), parentRangeBoundary)) {\n return Editor.range(editor, positions[left], parentRangeBoundary);\n }\n\n if (positions.length < 2) {\n return Editor.range(editor, positions[positions.length - 1], parentRangeBoundary);\n }\n\n while (middle !== positions.length && middle !== left) {\n if (areRangesSameLine(editor, Editor.range(editor, positions[middle]), parentRangeBoundary)) {\n right = middle;\n } else {\n left = middle;\n }\n\n middle = Math.floor((left + right) / 2);\n }\n\n return Editor.range(editor, positions[right], parentRangeBoundary);\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * `withReact` adds React and DOM specific behaviors to the editor.\r\n *\r\n * If you are using TypeScript, you must extend Slate's CustomTypes to use\r\n * this plugin.\r\n *\r\n * See https://docs.slatejs.org/concepts/11-typescript to learn how.\r\n */\n\nvar withReact = function withReact(editor) {\n var clipboardFormatKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x-slate-fragment';\n var e = editor;\n var {\n apply,\n onChange,\n deleteBackward,\n addMark,\n removeMark\n } = e; // The WeakMap which maps a key to a specific HTMLElement must be scoped to the editor instance to\n // avoid collisions between editors in the DOM that share the same value.\n\n EDITOR_TO_KEY_TO_ELEMENT.set(e, new WeakMap());\n\n e.addMark = (key, value) => {\n var _EDITOR_TO_SCHEDULE_F, _EDITOR_TO_PENDING_DI;\n\n (_EDITOR_TO_SCHEDULE_F = EDITOR_TO_SCHEDULE_FLUSH.get(e)) === null || _EDITOR_TO_SCHEDULE_F === void 0 ? void 0 : _EDITOR_TO_SCHEDULE_F();\n\n if (!EDITOR_TO_PENDING_INSERTION_MARKS.get(e) && (_EDITOR_TO_PENDING_DI = EDITOR_TO_PENDING_DIFFS.get(e)) !== null && _EDITOR_TO_PENDING_DI !== void 0 && _EDITOR_TO_PENDING_DI.length) {\n // Ensure the current pending diffs originating from changes before the addMark\n // are applied with the current formatting\n EDITOR_TO_PENDING_INSERTION_MARKS.set(e, null);\n }\n\n EDITOR_TO_USER_MARKS.delete(e);\n addMark(key, value);\n };\n\n e.removeMark = key => {\n var _EDITOR_TO_PENDING_DI2;\n\n if (!EDITOR_TO_PENDING_INSERTION_MARKS.get(e) && (_EDITOR_TO_PENDING_DI2 = EDITOR_TO_PENDING_DIFFS.get(e)) !== null && _EDITOR_TO_PENDING_DI2 !== void 0 && _EDITOR_TO_PENDING_DI2.length) {\n // Ensure the current pending diffs originating from changes before the addMark\n // are applied with the current formatting\n EDITOR_TO_PENDING_INSERTION_MARKS.set(e, null);\n }\n\n EDITOR_TO_USER_MARKS.delete(e);\n removeMark(key);\n };\n\n e.deleteBackward = unit => {\n if (unit !== 'line') {\n return deleteBackward(unit);\n }\n\n if (e.selection && Range.isCollapsed(e.selection)) {\n var parentBlockEntry = Editor.above(e, {\n match: n => Element$1.isElement(n) && Editor.isBlock(e, n),\n at: e.selection\n });\n\n if (parentBlockEntry) {\n var [, parentBlockPath] = parentBlockEntry;\n var parentElementRange = Editor.range(e, parentBlockPath, e.selection.anchor);\n var currentLineRange = findCurrentLineRange(e, parentElementRange);\n\n if (!Range.isCollapsed(currentLineRange)) {\n Transforms.delete(e, {\n at: currentLineRange\n });\n }\n }\n }\n }; // This attempts to reset the NODE_TO_KEY entry to the correct value\n // as apply() changes the object reference and hence invalidates the NODE_TO_KEY entry\n\n\n e.apply = op => {\n var matches = [];\n var pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(e);\n\n if (pendingDiffs !== null && pendingDiffs !== void 0 && pendingDiffs.length) {\n var transformed = pendingDiffs.map(textDiff => transformTextDiff(textDiff, op)).filter(Boolean);\n EDITOR_TO_PENDING_DIFFS.set(e, transformed);\n }\n\n var pendingSelection = EDITOR_TO_PENDING_SELECTION.get(e);\n\n if (pendingSelection) {\n EDITOR_TO_PENDING_SELECTION.set(e, transformPendingRange(e, pendingSelection, op));\n }\n\n var pendingAction = EDITOR_TO_PENDING_ACTION.get(e);\n\n if (pendingAction !== null && pendingAction !== void 0 && pendingAction.at) {\n var at = Point.isPoint(pendingAction === null || pendingAction === void 0 ? void 0 : pendingAction.at) ? transformPendingPoint(e, pendingAction.at, op) : transformPendingRange(e, pendingAction.at, op);\n EDITOR_TO_PENDING_ACTION.set(e, at ? _objectSpread(_objectSpread({}, pendingAction), {}, {\n at\n }) : null);\n }\n\n switch (op.type) {\n case 'insert_text':\n case 'remove_text':\n case 'set_node':\n case 'split_node':\n {\n matches.push(...getMatches(e, op.path));\n break;\n }\n\n case 'set_selection':\n {\n var _EDITOR_TO_USER_SELEC;\n\n // Selection was manually set, don't restore the user selection after the change.\n (_EDITOR_TO_USER_SELEC = EDITOR_TO_USER_SELECTION.get(e)) === null || _EDITOR_TO_USER_SELEC === void 0 ? void 0 : _EDITOR_TO_USER_SELEC.unref();\n EDITOR_TO_USER_SELECTION.delete(e);\n break;\n }\n\n case 'insert_node':\n case 'remove_node':\n {\n matches.push(...getMatches(e, Path.parent(op.path)));\n break;\n }\n\n case 'merge_node':\n {\n var prevPath = Path.previous(op.path);\n matches.push(...getMatches(e, prevPath));\n break;\n }\n\n case 'move_node':\n {\n var commonPath = Path.common(Path.parent(op.path), Path.parent(op.newPath));\n matches.push(...getMatches(e, commonPath));\n break;\n }\n }\n\n apply(op);\n\n for (var [path, key] of matches) {\n var [node] = Editor.node(e, path);\n NODE_TO_KEY.set(node, key);\n }\n };\n\n e.setFragmentData = data => {\n var {\n selection\n } = e;\n\n if (!selection) {\n return;\n }\n\n var [start, end] = Range.edges(selection);\n var startVoid = Editor.void(e, {\n at: start.path\n });\n var endVoid = Editor.void(e, {\n at: end.path\n });\n\n if (Range.isCollapsed(selection) && !startVoid) {\n return;\n } // Create a fake selection so that we can add a Base64-encoded copy of the\n // fragment to the HTML, to decode on future pastes.\n\n\n var domRange = ReactEditor.toDOMRange(e, selection);\n var contents = domRange.cloneContents();\n var attach = contents.childNodes[0]; // Make sure attach is non-empty, since empty nodes will not get copied.\n\n contents.childNodes.forEach(node => {\n if (node.textContent && node.textContent.trim() !== '') {\n attach = node;\n }\n }); // COMPAT: If the end node is a void node, we need to move the end of the\n // range from the void node's spacer span, to the end of the void node's\n // content, since the spacer is before void's content in the DOM.\n\n if (endVoid) {\n var [voidNode] = endVoid;\n var r = domRange.cloneRange();\n var domNode = ReactEditor.toDOMNode(e, voidNode);\n r.setEndAfter(domNode);\n contents = r.cloneContents();\n } // COMPAT: If the start node is a void node, we need to attach the encoded\n // fragment to the void node's content node instead of the spacer, because\n // attaching it to empty `<div>/<span>` nodes will end up having it erased by\n // most browsers. (2018/04/27)\n\n\n if (startVoid) {\n attach = contents.querySelector('[data-slate-spacer]');\n } // Remove any zero-width space spans from the cloned DOM so that they don't\n // show up elsewhere when pasted.\n\n\n Array.from(contents.querySelectorAll('[data-slate-zero-width]')).forEach(zw => {\n var isNewline = zw.getAttribute('data-slate-zero-width') === 'n';\n zw.textContent = isNewline ? '\\n' : '';\n }); // Set a `data-slate-fragment` attribute on a non-empty node, so it shows up\n // in the HTML, and can be used for intra-Slate pasting. If it's a text\n // node, wrap it in a `<span>` so we have something to set an attribute on.\n\n if (isDOMText(attach)) {\n var span = attach.ownerDocument.createElement('span'); // COMPAT: In Chrome and Safari, if we don't add the `white-space` style\n // then leading and trailing spaces will be ignored. (2017/09/21)\n\n span.style.whiteSpace = 'pre';\n span.appendChild(attach);\n contents.appendChild(span);\n attach = span;\n }\n\n var fragment = e.getFragment();\n var string = JSON.stringify(fragment);\n var encoded = window.btoa(encodeURIComponent(string));\n attach.setAttribute('data-slate-fragment', encoded);\n data.setData(\"application/\".concat(clipboardFormatKey), encoded); // Add the content to a <div> so that we can get its inner HTML.\n\n var div = contents.ownerDocument.createElement('div');\n div.appendChild(contents);\n div.setAttribute('hidden', 'true');\n contents.ownerDocument.body.appendChild(div);\n data.setData('text/html', div.innerHTML);\n data.setData('text/plain', getPlainText(div));\n contents.ownerDocument.body.removeChild(div);\n return data;\n };\n\n e.insertData = data => {\n if (!e.insertFragmentData(data)) {\n e.insertTextData(data);\n }\n };\n\n e.insertFragmentData = data => {\n /**\r\n * Checking copied fragment from application/x-slate-fragment or data-slate-fragment\r\n */\n var fragment = data.getData(\"application/\".concat(clipboardFormatKey)) || getSlateFragmentAttribute(data);\n\n if (fragment) {\n var decoded = decodeURIComponent(window.atob(fragment));\n var parsed = JSON.parse(decoded);\n e.insertFragment(parsed);\n return true;\n }\n\n return false;\n };\n\n e.insertTextData = data => {\n var text = data.getData('text/plain');\n\n if (text) {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var split = false;\n\n for (var line of lines) {\n if (split) {\n Transforms.splitNodes(e, {\n always: true\n });\n }\n\n e.insertText(line);\n split = true;\n }\n\n return true;\n }\n\n return false;\n };\n\n e.onChange = options => {\n // COMPAT: React < 18 doesn't batch `setState` hook calls, which means\n // that the children and selection can get out of sync for one render\n // pass. So we have to use this unstable API to ensure it batches them.\n // (2019/12/03)\n // https://github.com/facebook/react/issues/14259#issuecomment-439702367\n var maybeBatchUpdates = REACT_MAJOR_VERSION < 18 ? ReactDOM.unstable_batchedUpdates : callback => callback();\n maybeBatchUpdates(() => {\n var onContextChange = EDITOR_TO_ON_CHANGE.get(e);\n\n if (onContextChange) {\n onContextChange();\n }\n\n onChange(options);\n });\n };\n\n return e;\n};\n\nvar getMatches = (e, path) => {\n var matches = [];\n\n for (var [n, p] of Editor.levels(e, {\n at: path\n })) {\n var key = ReactEditor.findKey(e, n);\n matches.push([p, key]);\n }\n\n return matches;\n};\n\nexport { DefaultElement, DefaultLeaf, DefaultPlaceholder, Editable, ReactEditor, Slate, useEditor, useFocused, useReadOnly, useSelected, useSlate, useSlateSelection, useSlateSelector, useSlateStatic, useSlateWithV, withReact };\n//# sourceMappingURL=index.es.js.map\n","/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n var index = 0;\n var argument;\n var resolvedValue;\n var string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nfunction toValue(mix) {\n if (typeof mix === 'string') {\n return mix;\n }\n var resolvedValue;\n var string = '';\n for (var k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\n\nexport { twJoin };\n//# sourceMappingURL=tw-join.mjs.map\n","var CLASS_PART_SEPARATOR = '-';\nfunction createClassUtils(config) {\n var classMap = createClassMap(config);\n var conflictingClassGroups = config.conflictingClassGroups,\n _config$conflictingCl = config.conflictingClassGroupModifiers,\n conflictingClassGroupModifiers = _config$conflictingCl === void 0 ? {} : _config$conflictingCl;\n function getClassGroupId(className) {\n var classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n }\n function getConflictingClassGroupIds(classGroupId, hasPostfixModifier) {\n var conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [].concat(conflicts, conflictingClassGroupModifiers[classGroupId]);\n }\n return conflicts;\n }\n return {\n getClassGroupId: getClassGroupId,\n getConflictingClassGroupIds: getConflictingClassGroupIds\n };\n}\nfunction getGroupRecursive(classParts, classPartObject) {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n var currentClassPart = classParts[0];\n var nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n var classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n var classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(function (_ref) {\n var validator = _ref.validator;\n return validator(classRest);\n })?.classGroupId;\n}\nvar arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nfunction getGroupIdForArbitraryProperty(className) {\n if (arbitraryPropertyRegex.test(className)) {\n var arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n var property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n}\n/**\n * Exported for testing only\n */\nfunction createClassMap(config) {\n var theme = config.theme,\n prefix = config.prefix;\n var classMap = {\n nextPart: new Map(),\n validators: []\n };\n var prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(function (_ref2) {\n var classGroupId = _ref2[0],\n classGroup = _ref2[1];\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n}\nfunction processClassesRecursively(classGroup, classPartObject, classGroupId, theme) {\n classGroup.forEach(function (classDefinition) {\n if (typeof classDefinition === 'string') {\n var classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId: classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(function (_ref3) {\n var key = _ref3[0],\n classGroup = _ref3[1];\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n}\nfunction getPart(classPartObject, path) {\n var currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(function (pathPart) {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n}\nfunction isThemeGetter(func) {\n return func.isThemeGetter;\n}\nfunction getPrefixedClassGroupEntries(classGroupEntries, prefix) {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(function (_ref4) {\n var classGroupId = _ref4[0],\n classGroup = _ref4[1];\n var prefixedClassGroup = classGroup.map(function (classDefinition) {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(function (_ref5) {\n var key = _ref5[0],\n value = _ref5[1];\n return [prefix + key, value];\n }));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n}\n\nexport { createClassMap, createClassUtils };\n//# sourceMappingURL=class-utils.mjs.map\n","// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nfunction createLruCache(maxCacheSize) {\n if (maxCacheSize < 1) {\n return {\n get: function get() {\n return undefined;\n },\n set: function set() {}\n };\n }\n var cacheSize = 0;\n var cache = new Map();\n var previousCache = new Map();\n function update(key, value) {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n }\n return {\n get: function get(key) {\n var value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set: function set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n}\n\nexport { createLruCache };\n//# sourceMappingURL=lru-cache.mjs.map\n","var IMPORTANT_MODIFIER = '!';\nfunction createSplitModifiers(config) {\n var separator = config.separator || ':';\n var isSeparatorSingleCharacter = separator.length === 1;\n var firstSeparatorCharacter = separator[0];\n var separatorLength = separator.length;\n // splitModifiers inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n return function splitModifiers(className) {\n var modifiers = [];\n var bracketDepth = 0;\n var modifierStart = 0;\n var postfixModifierPosition;\n for (var index = 0; index < className.length; index++) {\n var currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n var baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n var hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n var baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n var maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers: modifiers,\n hasImportantModifier: hasImportantModifier,\n baseClassName: baseClassName,\n maybePostfixModifierPosition: maybePostfixModifierPosition\n };\n };\n}\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nfunction sortModifiers(modifiers) {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n var sortedModifiers = [];\n var unsortedModifiers = [];\n modifiers.forEach(function (modifier) {\n var isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push.apply(sortedModifiers, unsortedModifiers.sort().concat([modifier]));\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push.apply(sortedModifiers, unsortedModifiers.sort());\n return sortedModifiers;\n}\n\nexport { IMPORTANT_MODIFIER, createSplitModifiers, sortModifiers };\n//# sourceMappingURL=modifier-utils.mjs.map\n","import { sortModifiers, IMPORTANT_MODIFIER } from './modifier-utils.mjs';\n\nvar SPLIT_CLASSES_REGEX = /\\s+/;\nfunction mergeClassList(classList, configUtils) {\n var splitModifiers = configUtils.splitModifiers,\n getClassGroupId = configUtils.getClassGroupId,\n getConflictingClassGroupIds = configUtils.getConflictingClassGroupIds;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n var classGroupsInConflict = new Set();\n return classList.trim().split(SPLIT_CLASSES_REGEX).map(function (originalClassName) {\n var _splitModifiers = splitModifiers(originalClassName),\n modifiers = _splitModifiers.modifiers,\n hasImportantModifier = _splitModifiers.hasImportantModifier,\n baseClassName = _splitModifiers.baseClassName,\n maybePostfixModifierPosition = _splitModifiers.maybePostfixModifierPosition;\n var classGroupId = getClassGroupId(maybePostfixModifierPosition ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n var hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n if (!classGroupId) {\n if (!maybePostfixModifierPosition) {\n return {\n isTailwindClass: false,\n originalClassName: originalClassName\n };\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n return {\n isTailwindClass: false,\n originalClassName: originalClassName\n };\n }\n hasPostfixModifier = false;\n }\n var variantModifier = sortModifiers(modifiers).join(':');\n var modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n return {\n isTailwindClass: true,\n modifierId: modifierId,\n classGroupId: classGroupId,\n originalClassName: originalClassName,\n hasPostfixModifier: hasPostfixModifier\n };\n }).reverse()\n // Last class in conflict wins, so we need to filter conflicting classes in reverse order.\n .filter(function (parsed) {\n if (!parsed.isTailwindClass) {\n return true;\n }\n var modifierId = parsed.modifierId,\n classGroupId = parsed.classGroupId,\n hasPostfixModifier = parsed.hasPostfixModifier;\n var classId = modifierId + classGroupId;\n if (classGroupsInConflict.has(classId)) {\n return false;\n }\n classGroupsInConflict.add(classId);\n getConflictingClassGroupIds(classGroupId, hasPostfixModifier).forEach(function (group) {\n return classGroupsInConflict.add(modifierId + group);\n });\n return true;\n }).reverse().map(function (parsed) {\n return parsed.originalClassName;\n }).join(' ');\n}\n\nexport { mergeClassList };\n//# sourceMappingURL=merge-classlist.mjs.map\n","import { createConfigUtils } from './config-utils.mjs';\nimport { mergeClassList } from './merge-classlist.mjs';\nimport { twJoin } from './tw-join.mjs';\n\nfunction createTailwindMerge() {\n for (var _len = arguments.length, createConfig = new Array(_len), _key = 0; _key < _len; _key++) {\n createConfig[_key] = arguments[_key];\n }\n var configUtils;\n var cacheGet;\n var cacheSet;\n var functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n var firstCreateConfig = createConfig[0],\n restCreateConfig = createConfig.slice(1);\n var config = restCreateConfig.reduce(function (previousConfig, createConfigCurrent) {\n return createConfigCurrent(previousConfig);\n }, firstCreateConfig());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n var cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n var result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\n\nexport { createTailwindMerge };\n//# sourceMappingURL=create-tailwind-merge.mjs.map\n","import { createClassUtils } from './class-utils.mjs';\nimport { createLruCache } from './lru-cache.mjs';\nimport { createSplitModifiers } from './modifier-utils.mjs';\n\nfunction createConfigUtils(config) {\n return {\n cache: createLruCache(config.cacheSize),\n splitModifiers: createSplitModifiers(config),\n ...createClassUtils(config)\n };\n}\n\nexport { createConfigUtils };\n//# sourceMappingURL=config-utils.mjs.map\n","function fromTheme(key) {\n var themeGetter = function themeGetter(theme) {\n return theme[key] || [];\n };\n themeGetter.isThemeGetter = true;\n return themeGetter;\n}\n\nexport { fromTheme };\n//# sourceMappingURL=from-theme.mjs.map\n","var arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nvar fractionRegex = /^\\d+\\/\\d+$/;\nvar stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nvar tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nvar lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\n// Shadow always begins with x and y offset separated by underscore\nvar shadowRegex = /^-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nfunction isLength(value) {\n return isNumber(value) || stringLengths.has(value) || fractionRegex.test(value) || isArbitraryLength(value);\n}\nfunction isArbitraryLength(value) {\n return getIsArbitraryValue(value, 'length', isLengthOnly);\n}\nfunction isArbitrarySize(value) {\n return getIsArbitraryValue(value, 'size', isNever);\n}\nfunction isArbitraryPosition(value) {\n return getIsArbitraryValue(value, 'position', isNever);\n}\nfunction isArbitraryUrl(value) {\n return getIsArbitraryValue(value, 'url', isUrl);\n}\nfunction isArbitraryNumber(value) {\n return getIsArbitraryValue(value, 'number', isNumber);\n}\n/**\n * @deprecated Will be removed in next major version. Use `isArbitraryNumber` instead.\n */\nvar isArbitraryWeight = isArbitraryNumber;\nfunction isNumber(value) {\n return !Number.isNaN(Number(value));\n}\nfunction isPercent(value) {\n return value.endsWith('%') && isNumber(value.slice(0, -1));\n}\nfunction isInteger(value) {\n return isIntegerOnly(value) || getIsArbitraryValue(value, 'number', isIntegerOnly);\n}\nfunction isArbitraryValue(value) {\n return arbitraryValueRegex.test(value);\n}\nfunction isAny() {\n return true;\n}\nfunction isTshirtSize(value) {\n return tshirtUnitRegex.test(value);\n}\nfunction isArbitraryShadow(value) {\n return getIsArbitraryValue(value, '', isShadow);\n}\nfunction getIsArbitraryValue(value, label, testValue) {\n var result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return result[1] === label;\n }\n return testValue(result[2]);\n }\n return false;\n}\nfunction isLengthOnly(value) {\n return lengthUnitRegex.test(value);\n}\nfunction isNever() {\n return false;\n}\nfunction isUrl(value) {\n return value.startsWith('url(');\n}\nfunction isIntegerOnly(value) {\n return Number.isInteger(Number(value));\n}\nfunction isShadow(value) {\n return shadowRegex.test(value);\n}\n\nexport { isAny, isArbitraryLength, isArbitraryNumber, isArbitraryPosition, isArbitraryShadow, isArbitrarySize, isArbitraryUrl, isArbitraryValue, isArbitraryWeight, isInteger, isLength, isNumber, isPercent, isTshirtSize };\n//# sourceMappingURL=validators.mjs.map\n","import { fromTheme } from './from-theme.mjs';\nimport { isAny, isLength, isTshirtSize, isArbitraryValue, isPercent, isArbitraryLength, isInteger, isArbitraryNumber, isNumber, isArbitraryPosition, isArbitrarySize, isArbitraryUrl, isArbitraryShadow } from './validators.mjs';\n\nfunction getDefaultConfig() {\n var colors = fromTheme('colors');\n var spacing = fromTheme('spacing');\n var blur = fromTheme('blur');\n var brightness = fromTheme('brightness');\n var borderColor = fromTheme('borderColor');\n var borderRadius = fromTheme('borderRadius');\n var borderSpacing = fromTheme('borderSpacing');\n var borderWidth = fromTheme('borderWidth');\n var contrast = fromTheme('contrast');\n var grayscale = fromTheme('grayscale');\n var hueRotate = fromTheme('hueRotate');\n var invert = fromTheme('invert');\n var gap = fromTheme('gap');\n var gradientColorStops = fromTheme('gradientColorStops');\n var gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n var inset = fromTheme('inset');\n var margin = fromTheme('margin');\n var opacity = fromTheme('opacity');\n var padding = fromTheme('padding');\n var saturate = fromTheme('saturate');\n var scale = fromTheme('scale');\n var sepia = fromTheme('sepia');\n var skew = fromTheme('skew');\n var space = fromTheme('space');\n var translate = fromTheme('translate');\n var getOverscroll = function getOverscroll() {\n return ['auto', 'contain', 'none'];\n };\n var getOverflow = function getOverflow() {\n return ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n };\n var getSpacingWithAutoAndArbitrary = function getSpacingWithAutoAndArbitrary() {\n return ['auto', isArbitraryValue, spacing];\n };\n var getSpacingWithArbitrary = function getSpacingWithArbitrary() {\n return [isArbitraryValue, spacing];\n };\n var getLengthWithEmpty = function getLengthWithEmpty() {\n return ['', isLength];\n };\n var getNumberWithAutoAndArbitrary = function getNumberWithAutoAndArbitrary() {\n return ['auto', isNumber, isArbitraryValue];\n };\n var getPositions = function getPositions() {\n return ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n };\n var getLineStyles = function getLineStyles() {\n return ['solid', 'dashed', 'dotted', 'double', 'none'];\n };\n var getBlendModes = function getBlendModes() {\n return ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity', 'plus-lighter'];\n };\n var getAlign = function getAlign() {\n return ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n };\n var getZeroAndEmpty = function getZeroAndEmpty() {\n return ['', '0', isArbitraryValue];\n };\n var getBreaks = function getBreaks() {\n return ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n };\n var getNumber = function getNumber() {\n return [isNumber, isArbitraryNumber];\n };\n var getNumberAndArbitrary = function getNumberAndArbitrary() {\n return [isNumber, isArbitraryValue];\n };\n return {\n cacheSize: 500,\n theme: {\n colors: [isAny],\n spacing: [isLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumber(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmpty(),\n contrast: getNumber(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumber(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumber(),\n scale: getNumber(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n \"float\": [{\n \"float\": ['right', 'left', 'none']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [].concat(getPositions(), [isArbitraryValue])\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal'].concat(getAlign())\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal'].concat(getAlign(), ['baseline'])\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [].concat(getAlign(), ['baseline'])\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': ['min', 'max', 'fit', isArbitraryValue, isLength]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': ['0', 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize, isArbitraryValue]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['min', 'max', 'fit', isArbitraryValue, isLength]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isArbitraryValue, isLength]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [].concat(getLineStyles(), ['wavy'])\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isArbitraryValue, isLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n \"break\": [{\n \"break\": ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [].concat(getPositions(), [isArbitraryPosition])\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryUrl]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [].concat(getLineStyles(), ['hidden'])\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [''].concat(getLineStyles())\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isArbitraryValue, isLength]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmpty()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': getBlendModes()\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: ['appearance-none'],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'pinch-zoom', 'manipulation', {\n pan: ['x', 'left', 'right', 'y', 'up', 'down']\n }]\n }],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only']\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n}\n\nexport { getDefaultConfig };\n//# sourceMappingURL=default-config.mjs.map\n","import { createTailwindMerge } from './create-tailwind-merge.mjs';\nimport { getDefaultConfig } from './default-config.mjs';\n\nvar twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\n\nexport { twMerge };\n//# sourceMappingURL=tw-merge.mjs.map\n",null,"function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;",null,null,"import { isPlainObject } from 'is-plain-object';\nimport { Operation, Editor, Transforms, Path } from 'slate';\n\nvar History = {\n /**\r\n * Check if a value is a `History` object.\r\n */\n isHistory(value) {\n return isPlainObject(value) && Array.isArray(value.redos) && Array.isArray(value.undos) && (value.redos.length === 0 || Operation.isOperationList(value.redos[0].operations)) && (value.undos.length === 0 || Operation.isOperationList(value.undos[0].operations));\n }\n\n};\n\n/**\r\n * Weakmaps for attaching state to the editor.\r\n */\n\nvar HISTORY = new WeakMap();\nvar SAVING = new WeakMap();\nvar MERGING = new WeakMap(); // eslint-disable-next-line no-redeclare\n\nvar HistoryEditor = {\n /**\r\n * Check if a value is a `HistoryEditor` object.\r\n */\n isHistoryEditor(value) {\n return History.isHistory(value.history) && Editor.isEditor(value);\n },\n\n /**\r\n * Get the merge flag's current value.\r\n */\n isMerging(editor) {\n return MERGING.get(editor);\n },\n\n /**\r\n * Get the saving flag's current value.\r\n */\n isSaving(editor) {\n return SAVING.get(editor);\n },\n\n /**\r\n * Redo to the previous saved state.\r\n */\n redo(editor) {\n editor.redo();\n },\n\n /**\r\n * Undo to the previous saved state.\r\n */\n undo(editor) {\n editor.undo();\n },\n\n /**\r\n * Apply a series of changes inside a synchronous `fn`, without merging any of\r\n * the new operations into previous save point in the history.\r\n */\n withoutMerging(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, false);\n fn();\n MERGING.set(editor, prev);\n },\n\n /**\r\n * Apply a series of changes inside a synchronous `fn`, without saving any of\r\n * their operations into the history.\r\n */\n withoutSaving(editor, fn) {\n var prev = HistoryEditor.isSaving(editor);\n SAVING.set(editor, false);\n fn();\n SAVING.set(editor, prev);\n }\n\n};\n\n/**\r\n * The `withHistory` plugin keeps track of the operation history of a Slate\r\n * editor as operations are applied to it, using undo and redo stacks.\r\n *\r\n * If you are using TypeScript, you must extend Slate's CustomTypes to use\r\n * this plugin.\r\n *\r\n * See https://docs.slatejs.org/concepts/11-typescript to learn how.\r\n */\n\nvar withHistory = editor => {\n var e = editor;\n var {\n apply\n } = e;\n e.history = {\n undos: [],\n redos: []\n };\n\n e.redo = () => {\n var {\n history\n } = e;\n var {\n redos\n } = history;\n\n if (redos.length > 0) {\n var batch = redos[redos.length - 1];\n\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n for (var op of batch.operations) {\n e.apply(op);\n }\n });\n });\n history.redos.pop();\n e.writeHistory('undos', batch);\n }\n };\n\n e.undo = () => {\n var {\n history\n } = e;\n var {\n undos\n } = history;\n\n if (undos.length > 0) {\n var batch = undos[undos.length - 1];\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n var inverseOps = batch.operations.map(Operation.inverse).reverse();\n\n for (var op of inverseOps) {\n e.apply(op);\n }\n\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n });\n });\n e.writeHistory('redos', batch);\n history.undos.pop();\n }\n };\n\n e.apply = op => {\n var {\n operations,\n history\n } = e;\n var {\n undos\n } = history;\n var lastBatch = undos[undos.length - 1];\n var lastOp = lastBatch && lastBatch.operations[lastBatch.operations.length - 1];\n var save = HistoryEditor.isSaving(e);\n var merge = HistoryEditor.isMerging(e);\n\n if (save == null) {\n save = shouldSave(op);\n }\n\n if (save) {\n if (merge == null) {\n if (lastBatch == null) {\n merge = false;\n } else if (operations.length !== 0) {\n merge = true;\n } else {\n merge = shouldMerge(op, lastOp);\n }\n }\n\n if (lastBatch && merge) {\n lastBatch.operations.push(op);\n } else {\n var batch = {\n operations: [op],\n selectionBefore: e.selection\n };\n e.writeHistory('undos', batch);\n }\n\n while (undos.length > 100) {\n undos.shift();\n }\n\n history.redos = [];\n }\n\n apply(op);\n };\n\n e.writeHistory = (stack, batch) => {\n e.history[stack].push(batch);\n };\n\n return e;\n};\n/**\r\n * Check whether to merge an operation into the previous operation.\r\n */\n\nvar shouldMerge = (op, prev) => {\n if (prev && op.type === 'insert_text' && prev.type === 'insert_text' && op.offset === prev.offset + prev.text.length && Path.equals(op.path, prev.path)) {\n return true;\n }\n\n if (prev && op.type === 'remove_text' && prev.type === 'remove_text' && op.offset + op.text.length === prev.offset && Path.equals(op.path, prev.path)) {\n return true;\n }\n\n return false;\n};\n/**\r\n * Check whether an operation needs to be saved to the history.\r\n */\n\n\nvar shouldSave = (op, prev) => {\n if (op.type === 'set_selection') {\n return false;\n }\n\n return true;\n};\n\nexport { HISTORY, History, HistoryEditor, MERGING, SAVING, withHistory };\n//# sourceMappingURL=index.es.js.map\n",null,null,null,null,null,null,null,"var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value;\n var parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import createCache from '@emotion/cache';\nimport { serializeStyles } from '@emotion/serialize';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\n\nfunction insertWithoutScoping(cache, serialized) {\n if (cache.inserted[serialized.name] === undefined) {\n return cache.insert('', serialized, cache.sheet, true);\n }\n}\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar createEmotion = function createEmotion(options) {\n var cache = createCache(options);\n\n cache.sheet.speedy = function (value) {\n\n this.isSpeedy = value;\n };\n\n cache.compat = true;\n\n var css = function css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered, undefined);\n insertStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var keyframes = function keyframes() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n var animation = \"animation-\" + serialized.name;\n insertWithoutScoping(cache, {\n name: serialized.name,\n styles: \"@keyframes \" + animation + \"{\" + serialized.styles + \"}\"\n });\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n insertWithoutScoping(cache, serialized);\n };\n\n var cx = function cx() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n return {\n css: css,\n cx: cx,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n hydrate: function hydrate(ids) {\n ids.forEach(function (key) {\n cache.inserted[key] = true;\n });\n },\n flush: function flush() {\n cache.registered = {};\n cache.inserted = {};\n cache.sheet.flush();\n },\n sheet: cache.sheet,\n cache: cache,\n getRegisteredStyles: getRegisteredStyles.bind(null, cache.registered),\n merge: merge.bind(null, cache.registered, css)\n };\n};\n\nvar classnames = function classnames(args) {\n var cls = '';\n\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nexport { createEmotion as default };\n","import createEmotion from '../create-instance/dist/emotion-css-create-instance.esm.js';\nimport '@emotion/cache';\nimport '@emotion/serialize';\nimport '@emotion/utils';\n\nvar _createEmotion = createEmotion({\n key: 'css'\n}),\n flush = _createEmotion.flush,\n hydrate = _createEmotion.hydrate,\n cx = _createEmotion.cx,\n merge = _createEmotion.merge,\n getRegisteredStyles = _createEmotion.getRegisteredStyles,\n injectGlobal = _createEmotion.injectGlobal,\n keyframes = _createEmotion.keyframes,\n css = _createEmotion.css,\n sheet = _createEmotion.sheet,\n cache = _createEmotion.cache;\n\nexport { cache, css, cx, flush, getRegisteredStyles, hydrate, injectGlobal, keyframes, merge, sheet };\n",null,null,"var U=1,Y=.9,a=.8,H=.17,p=.1,u=.999,J=.9999;var k=.99,m=/[\\\\\\/_+.#\"@\\[\\(\\{&]/,B=/[\\\\\\/_+.#\"@\\[\\(\\{&]/g,K=/[\\s-]/,X=/[\\s-]/g;function G(c,f,P,C,h,A,O){if(A===f.length)return h===c.length?U:k;var T=`${h},${A}`;if(O[T]!==void 0)return O[T];for(var L=C.charAt(A),E=P.indexOf(L,h),S=0,_,N,R,M;E>=0;)_=G(c,f,P,C,E+1,A+1,O),_>S&&(E===h?_*=U:m.test(c.charAt(E-1))?(_*=a,R=c.slice(h,E-1).match(B),R&&h>0&&(_*=Math.pow(u,R.length))):K.test(c.charAt(E-1))?(_*=Y,M=c.slice(h,E-1).match(X),M&&h>0&&(_*=Math.pow(u,M.length))):(_*=H,h>0&&(_*=Math.pow(u,E-h))),c.charAt(E)!==f.charAt(A)&&(_*=J)),(_<p&&P.charAt(E-1)===C.charAt(A+1)||C.charAt(A+1)===C.charAt(A)&&P.charAt(E-1)!==C.charAt(A))&&(N=G(c,f,P,C,E+1,A+2,O),N*p>_&&(_=N*p)),_>S&&(S=_),E=P.indexOf(L,E+1);return O[T]=S,S}function D(c){return c.toLowerCase().replace(X,\" \")}function W(c,f){return G(c,f,D(c),D(f),0,0,{})}export{W as a};\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function $e42e1063c40fb3ef$export$b9ecd428b558ff10(originalEventHandler, ourEventHandler, { checkForDefaultPrevented: checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler === null || originalEventHandler === void 0 || originalEventHandler(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) return ourEventHandler === null || ourEventHandler === void 0 ? void 0 : ourEventHandler(event);\n };\n}\n\n\n\n\nexport {$e42e1063c40fb3ef$export$b9ecd428b558ff10 as composeEventHandlers};\n//# sourceMappingURL=index.module.js.map\n","import {useCallback as $3vqmr$useCallback} from \"react\";\n\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$var$setRef(ref, value) {\n if (typeof ref === 'function') ref(value);\n else if (ref !== null && ref !== undefined) ref.current = value;\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$export$43e446d32b3d21af(...refs) {\n return (node)=>refs.forEach((ref)=>$6ed0406888f73fc4$var$setRef(ref, node)\n )\n ;\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */ function $6ed0406888f73fc4$export$c7b2cbe3552a0d05(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return $3vqmr$useCallback($6ed0406888f73fc4$export$43e446d32b3d21af(...refs), refs);\n}\n\n\n\n\nexport {$6ed0406888f73fc4$export$43e446d32b3d21af as composeRefs, $6ed0406888f73fc4$export$c7b2cbe3552a0d05 as useComposedRefs};\n//# sourceMappingURL=index.module.js.map\n","import {createContext as $3bkAK$createContext, useMemo as $3bkAK$useMemo, createElement as $3bkAK$createElement, useContext as $3bkAK$useContext} from \"react\";\n\n\nfunction $c512c27ab02ef895$export$fd42f52fd3ae1109(rootComponentName, defaultContext) {\n const Context = /*#__PURE__*/ $3bkAK$createContext(defaultContext);\n function Provider(props) {\n const { children: children , ...context } = props; // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = $3bkAK$useMemo(()=>context\n , Object.values(context));\n return /*#__PURE__*/ $3bkAK$createElement(Context.Provider, {\n value: value\n }, children);\n }\n function useContext(consumerName) {\n const context = $3bkAK$useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext; // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + 'Provider';\n return [\n Provider,\n useContext\n ];\n}\n/* -------------------------------------------------------------------------------------------------\n * createContextScope\n * -----------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$export$50c7b4e9d9f19c1(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n /* -----------------------------------------------------------------------------------------------\n * createContext\n * ---------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$export$fd42f52fd3ae1109(rootComponentName, defaultContext) {\n const BaseContext = /*#__PURE__*/ $3bkAK$createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [\n ...defaultContexts,\n defaultContext\n ];\n function Provider(props) {\n const { scope: scope , children: children , ...context } = props;\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index]) || BaseContext; // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = $3bkAK$useMemo(()=>context\n , Object.values(context));\n return /*#__PURE__*/ $3bkAK$createElement(Context.Provider, {\n value: value\n }, children);\n }\n function useContext(consumerName, scope) {\n const Context = (scope === null || scope === void 0 ? void 0 : scope[scopeName][index]) || BaseContext;\n const context = $3bkAK$useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext; // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + 'Provider';\n return [\n Provider,\n useContext\n ];\n }\n /* -----------------------------------------------------------------------------------------------\n * createScope\n * ---------------------------------------------------------------------------------------------*/ const createScope = ()=>{\n const scopeContexts = defaultContexts.map((defaultContext)=>{\n return /*#__PURE__*/ $3bkAK$createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = (scope === null || scope === void 0 ? void 0 : scope[scopeName]) || scopeContexts;\n return $3bkAK$useMemo(()=>({\n [`__scope${scopeName}`]: {\n ...scope,\n [scopeName]: contexts\n }\n })\n , [\n scope,\n contexts\n ]);\n };\n };\n createScope.scopeName = scopeName;\n return [\n $c512c27ab02ef895$export$fd42f52fd3ae1109,\n $c512c27ab02ef895$var$composeContextScopes(createScope, ...createContextScopeDeps)\n ];\n}\n/* -------------------------------------------------------------------------------------------------\n * composeContextScopes\n * -----------------------------------------------------------------------------------------------*/ function $c512c27ab02ef895$var$composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope1 = ()=>{\n const scopeHooks = scopes.map((createScope)=>({\n useScope: createScope(),\n scopeName: createScope.scopeName\n })\n );\n return function useComposedScopes(overrideScopes) {\n const nextScopes1 = scopeHooks.reduce((nextScopes, { useScope: useScope , scopeName: scopeName })=>{\n // We are calling a hook inside a callback which React warns against to avoid inconsistent\n // renders, however, scoping doesn't have render side effects so we ignore the rule.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return {\n ...nextScopes,\n ...currentScope\n };\n }, {});\n return $3bkAK$useMemo(()=>({\n [`__scope${baseScope.scopeName}`]: nextScopes1\n })\n , [\n nextScopes1\n ]);\n };\n };\n createScope1.scopeName = baseScope.scopeName;\n return createScope1;\n}\n\n\n\n\nexport {$c512c27ab02ef895$export$fd42f52fd3ae1109 as createContext, $c512c27ab02ef895$export$50c7b4e9d9f19c1 as createContextScope};\n//# sourceMappingURL=index.module.js.map\n","import {useLayoutEffect as $dxlwH$useLayoutEffect} from \"react\";\n\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */ const $9f79659886946c16$export$e5c5a5f917a5871c = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) ? $dxlwH$useLayoutEffect : ()=>{};\n\n\n\n\nexport {$9f79659886946c16$export$e5c5a5f917a5871c as useLayoutEffect};\n//# sourceMappingURL=index.module.js.map\n","import * as $2AODx$react from \"react\";\nimport {useLayoutEffect as $2AODx$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\n\n\n\nconst $1746a345f3d73bb7$var$useReactId = $2AODx$react['useId'.toString()] || (()=>undefined\n);\nlet $1746a345f3d73bb7$var$count = 0;\nfunction $1746a345f3d73bb7$export$f680877a34711e37(deterministicId) {\n const [id, setId] = $2AODx$react.useState($1746a345f3d73bb7$var$useReactId()); // React versions older than 18 will have client-side ids only.\n $2AODx$useLayoutEffect(()=>{\n if (!deterministicId) setId((reactId)=>reactId !== null && reactId !== void 0 ? reactId : String($1746a345f3d73bb7$var$count++)\n );\n }, [\n deterministicId\n ]);\n return deterministicId || (id ? `radix-${id}` : '');\n}\n\n\n\n\nexport {$1746a345f3d73bb7$export$f680877a34711e37 as useId};\n//# sourceMappingURL=index.module.js.map\n","import {useRef as $lwiWj$useRef, useEffect as $lwiWj$useEffect, useMemo as $lwiWj$useMemo} from \"react\";\n\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */ function $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(callback) {\n const callbackRef = $lwiWj$useRef(callback);\n $lwiWj$useEffect(()=>{\n callbackRef.current = callback;\n }); // https://github.com/facebook/react/issues/19240\n return $lwiWj$useMemo(()=>(...args)=>{\n var _callbackRef$current;\n return (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef, ...args);\n }\n , []);\n}\n\n\n\n\nexport {$b1b2314f5f9a1d84$export$25bec8c6f54ee79a as useCallbackRef};\n//# sourceMappingURL=index.module.js.map\n","import {useCallback as $bnPw9$useCallback, useState as $bnPw9$useState, useRef as $bnPw9$useRef, useEffect as $bnPw9$useEffect} from \"react\";\nimport {useCallbackRef as $bnPw9$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\n\n\n\nfunction $71cd76cc60e0454e$export$6f32135080cb4c3({ prop: prop , defaultProp: defaultProp , onChange: onChange = ()=>{} }) {\n const [uncontrolledProp, setUncontrolledProp] = $71cd76cc60e0454e$var$useUncontrolledState({\n defaultProp: defaultProp,\n onChange: onChange\n });\n const isControlled = prop !== undefined;\n const value1 = isControlled ? prop : uncontrolledProp;\n const handleChange = $bnPw9$useCallbackRef(onChange);\n const setValue = $bnPw9$useCallback((nextValue)=>{\n if (isControlled) {\n const setter = nextValue;\n const value = typeof nextValue === 'function' ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value);\n } else setUncontrolledProp(nextValue);\n }, [\n isControlled,\n prop,\n setUncontrolledProp,\n handleChange\n ]);\n return [\n value1,\n setValue\n ];\n}\nfunction $71cd76cc60e0454e$var$useUncontrolledState({ defaultProp: defaultProp , onChange: onChange }) {\n const uncontrolledState = $bnPw9$useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = $bnPw9$useRef(value);\n const handleChange = $bnPw9$useCallbackRef(onChange);\n $bnPw9$useEffect(()=>{\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [\n value,\n prevValueRef,\n handleChange\n ]);\n return uncontrolledState;\n}\n\n\n\n\nexport {$71cd76cc60e0454e$export$6f32135080cb4c3 as useControllableState};\n//# sourceMappingURL=index.module.js.map\n","import $9IrjX$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $9IrjX$forwardRef, Children as $9IrjX$Children, isValidElement as $9IrjX$isValidElement, createElement as $9IrjX$createElement, cloneElement as $9IrjX$cloneElement, Fragment as $9IrjX$Fragment} from \"react\";\nimport {composeRefs as $9IrjX$composeRefs} from \"@radix-ui/react-compose-refs\";\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$export$8c6ed5c666ac1360 = /*#__PURE__*/ $9IrjX$forwardRef((props, forwardedRef)=>{\n const { children: children , ...slotProps } = props;\n const childrenArray = $9IrjX$Children.toArray(children);\n const slottable = childrenArray.find($5e63c961fc1ce211$var$isSlottable);\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child)=>{\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if ($9IrjX$Children.count(newElement) > 1) return $9IrjX$Children.only(null);\n return /*#__PURE__*/ $9IrjX$isValidElement(newElement) ? newElement.props.children : null;\n } else return child;\n });\n return /*#__PURE__*/ $9IrjX$createElement($5e63c961fc1ce211$var$SlotClone, $9IrjX$babelruntimehelpersesmextends({}, slotProps, {\n ref: forwardedRef\n }), /*#__PURE__*/ $9IrjX$isValidElement(newElement) ? /*#__PURE__*/ $9IrjX$cloneElement(newElement, undefined, newChildren) : null);\n }\n return /*#__PURE__*/ $9IrjX$createElement($5e63c961fc1ce211$var$SlotClone, $9IrjX$babelruntimehelpersesmextends({}, slotProps, {\n ref: forwardedRef\n }), children);\n});\n$5e63c961fc1ce211$export$8c6ed5c666ac1360.displayName = 'Slot';\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$var$SlotClone = /*#__PURE__*/ $9IrjX$forwardRef((props, forwardedRef)=>{\n const { children: children , ...slotProps } = props;\n if (/*#__PURE__*/ $9IrjX$isValidElement(children)) return /*#__PURE__*/ $9IrjX$cloneElement(children, {\n ...$5e63c961fc1ce211$var$mergeProps(slotProps, children.props),\n ref: $9IrjX$composeRefs(forwardedRef, children.ref)\n });\n return $9IrjX$Children.count(children) > 1 ? $9IrjX$Children.only(null) : null;\n});\n$5e63c961fc1ce211$var$SlotClone.displayName = 'SlotClone';\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/ const $5e63c961fc1ce211$export$d9f1ccf0bdb05d45 = ({ children: children })=>{\n return /*#__PURE__*/ $9IrjX$createElement($9IrjX$Fragment, null, children);\n};\n/* ---------------------------------------------------------------------------------------------- */ function $5e63c961fc1ce211$var$isSlottable(child) {\n return /*#__PURE__*/ $9IrjX$isValidElement(child) && child.type === $5e63c961fc1ce211$export$d9f1ccf0bdb05d45;\n}\nfunction $5e63c961fc1ce211$var$mergeProps(slotProps, childProps) {\n // all child props should override\n const overrideProps = {\n ...childProps\n };\n for(const propName in childProps){\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName); // if it's a handler, modify the override by composing the base handler\n if (isHandler) overrideProps[propName] = (...args)=>{\n childPropValue === null || childPropValue === void 0 || childPropValue(...args);\n slotPropValue === null || slotPropValue === void 0 || slotPropValue(...args);\n };\n else if (propName === 'style') overrideProps[propName] = {\n ...slotPropValue,\n ...childPropValue\n };\n else if (propName === 'className') overrideProps[propName] = [\n slotPropValue,\n childPropValue\n ].filter(Boolean).join(' ');\n }\n return {\n ...slotProps,\n ...overrideProps\n };\n}\nconst $5e63c961fc1ce211$export$be92b6f5f03c0fe9 = $5e63c961fc1ce211$export$8c6ed5c666ac1360;\n\n\n\n\nexport {$5e63c961fc1ce211$export$8c6ed5c666ac1360 as Slot, $5e63c961fc1ce211$export$d9f1ccf0bdb05d45 as Slottable, $5e63c961fc1ce211$export$be92b6f5f03c0fe9 as Root};\n//# sourceMappingURL=index.module.js.map\n","import $4q5Fq$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $4q5Fq$forwardRef, useEffect as $4q5Fq$useEffect, createElement as $4q5Fq$createElement} from \"react\";\nimport {flushSync as $4q5Fq$flushSync} from \"react-dom\";\nimport {Slot as $4q5Fq$Slot} from \"@radix-ui/react-slot\";\n\n\n\n\n\nconst $8927f6f2acc4f386$var$NODES = [\n 'a',\n 'button',\n 'div',\n 'h2',\n 'h3',\n 'img',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'span',\n 'svg',\n 'ul'\n]; // Temporary while we await merge of this fix:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55396\n// prettier-ignore\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$250ffa63cdc0d034 = $8927f6f2acc4f386$var$NODES.reduce((primitive, node)=>{\n const Node = /*#__PURE__*/ $4q5Fq$forwardRef((props, forwardedRef)=>{\n const { asChild: asChild , ...primitiveProps } = props;\n const Comp = asChild ? $4q5Fq$Slot : node;\n $4q5Fq$useEffect(()=>{\n window[Symbol.for('radix-ui')] = true;\n }, []);\n return /*#__PURE__*/ $4q5Fq$createElement(Comp, $4q5Fq$babelruntimehelpersesmextends({}, primitiveProps, {\n ref: forwardedRef\n }));\n });\n Node.displayName = `Primitive.${node}`;\n return {\n ...primitive,\n [node]: Node\n };\n}, {});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not nessesary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */ function $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event) {\n if (target) $4q5Fq$flushSync(()=>target.dispatchEvent(event)\n );\n}\n/* -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$be92b6f5f03c0fe9 = $8927f6f2acc4f386$export$250ffa63cdc0d034;\n\n\n\n\nexport {$8927f6f2acc4f386$export$250ffa63cdc0d034 as Primitive, $8927f6f2acc4f386$export$be92b6f5f03c0fe9 as Root, $8927f6f2acc4f386$export$6d1a0317bde7de7f as dispatchDiscreteCustomEvent};\n//# sourceMappingURL=index.module.js.map\n","import $kqwpH$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {createContext as $kqwpH$createContext, forwardRef as $kqwpH$forwardRef, useContext as $kqwpH$useContext, useState as $kqwpH$useState, useEffect as $kqwpH$useEffect, createElement as $kqwpH$createElement, useRef as $kqwpH$useRef} from \"react\";\nimport {composeEventHandlers as $kqwpH$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {Primitive as $kqwpH$Primitive, dispatchDiscreteCustomEvent as $kqwpH$dispatchDiscreteCustomEvent} from \"@radix-ui/react-primitive\";\nimport {useComposedRefs as $kqwpH$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {useCallbackRef as $kqwpH$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\nimport {useEscapeKeydown as $kqwpH$useEscapeKeydown} from \"@radix-ui/react-use-escape-keydown\";\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayer\n * -----------------------------------------------------------------------------------------------*/ const $5cb92bef7577960e$var$DISMISSABLE_LAYER_NAME = 'DismissableLayer';\nconst $5cb92bef7577960e$var$CONTEXT_UPDATE = 'dismissableLayer.update';\nconst $5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';\nconst $5cb92bef7577960e$var$FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';\nlet $5cb92bef7577960e$var$originalBodyPointerEvents;\nconst $5cb92bef7577960e$var$DismissableLayerContext = /*#__PURE__*/ $kqwpH$createContext({\n layers: new Set(),\n layersWithOutsidePointerEventsDisabled: new Set(),\n branches: new Set()\n});\nconst $5cb92bef7577960e$export$177fb62ff3ec1f22 = /*#__PURE__*/ $kqwpH$forwardRef((props, forwardedRef)=>{\n const { disableOutsidePointerEvents: disableOutsidePointerEvents = false , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , onDismiss: onDismiss , ...layerProps } = props;\n const context = $kqwpH$useContext($5cb92bef7577960e$var$DismissableLayerContext);\n const [node1, setNode] = $kqwpH$useState(null);\n const [, force] = $kqwpH$useState({});\n const composedRefs = $kqwpH$useComposedRefs(forwardedRef, (node)=>setNode(node)\n );\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1); // prettier-ignore\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); // prettier-ignore\n const index = node1 ? layers.indexOf(node1) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = $5cb92bef7577960e$var$usePointerDownOutside((event)=>{\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some((branch)=>branch.contains(target)\n );\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside === null || onPointerDownOutside === void 0 || onPointerDownOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 || onDismiss();\n });\n const focusOutside = $5cb92bef7577960e$var$useFocusOutside((event)=>{\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some((branch)=>branch.contains(target)\n );\n if (isFocusInBranch) return;\n onFocusOutside === null || onFocusOutside === void 0 || onFocusOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 || onDismiss();\n });\n $kqwpH$useEscapeKeydown((event)=>{\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown === null || onEscapeKeyDown === void 0 || onEscapeKeyDown(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n });\n $kqwpH$useEffect(()=>{\n if (!node1) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n $5cb92bef7577960e$var$originalBodyPointerEvents = document.body.style.pointerEvents;\n document.body.style.pointerEvents = 'none';\n }\n context.layersWithOutsidePointerEventsDisabled.add(node1);\n }\n context.layers.add(node1);\n $5cb92bef7577960e$var$dispatchUpdate();\n return ()=>{\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) document.body.style.pointerEvents = $5cb92bef7577960e$var$originalBodyPointerEvents;\n };\n }, [\n node1,\n disableOutsidePointerEvents,\n context\n ]);\n /**\n * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect\n * because a change to `disableOutsidePointerEvents` would remove this layer from the stack\n * and add it to the end again so the layering order wouldn't be _creation order_.\n * We only want them to be removed from context stacks when unmounted.\n */ $kqwpH$useEffect(()=>{\n return ()=>{\n if (!node1) return;\n context.layers.delete(node1);\n context.layersWithOutsidePointerEventsDisabled.delete(node1);\n $5cb92bef7577960e$var$dispatchUpdate();\n };\n }, [\n node1,\n context\n ]);\n $kqwpH$useEffect(()=>{\n const handleUpdate = ()=>force({})\n ;\n document.addEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate);\n return ()=>document.removeEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate)\n ;\n }, []);\n return /*#__PURE__*/ $kqwpH$createElement($kqwpH$Primitive.div, $kqwpH$babelruntimehelpersesmextends({}, layerProps, {\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? 'auto' : 'none' : undefined,\n ...props.style\n },\n onFocusCapture: $kqwpH$composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: $kqwpH$composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: $kqwpH$composeEventHandlers(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n }));\n});\n/*#__PURE__*/ Object.assign($5cb92bef7577960e$export$177fb62ff3ec1f22, {\n displayName: $5cb92bef7577960e$var$DISMISSABLE_LAYER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayerBranch\n * -----------------------------------------------------------------------------------------------*/ const $5cb92bef7577960e$var$BRANCH_NAME = 'DismissableLayerBranch';\nconst $5cb92bef7577960e$export$4d5eb2109db14228 = /*#__PURE__*/ $kqwpH$forwardRef((props, forwardedRef)=>{\n const context = $kqwpH$useContext($5cb92bef7577960e$var$DismissableLayerContext);\n const ref = $kqwpH$useRef(null);\n const composedRefs = $kqwpH$useComposedRefs(forwardedRef, ref);\n $kqwpH$useEffect(()=>{\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return ()=>{\n context.branches.delete(node);\n };\n }\n }, [\n context.branches\n ]);\n return /*#__PURE__*/ $kqwpH$createElement($kqwpH$Primitive.div, $kqwpH$babelruntimehelpersesmextends({}, props, {\n ref: composedRefs\n }));\n});\n/*#__PURE__*/ Object.assign($5cb92bef7577960e$export$4d5eb2109db14228, {\n displayName: $5cb92bef7577960e$var$BRANCH_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ /**\n * Listens for `pointerdown` outside a react subtree. We use `pointerdown` rather than `pointerup`\n * to mimic layer dismissing behaviour present in OS.\n * Returns props to pass to the node we want to check for outside events.\n */ function $5cb92bef7577960e$var$usePointerDownOutside(onPointerDownOutside) {\n const handlePointerDownOutside = $kqwpH$useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = $kqwpH$useRef(false);\n const handleClickRef = $kqwpH$useRef(()=>{});\n $kqwpH$useEffect(()=>{\n const handlePointerDown = (event)=>{\n if (event.target && !isPointerInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n function handleAndDispatchPointerDownOutsideEvent() {\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n }\n /**\n * On touch devices, we need to wait for a click event because browsers implement\n * a ~350ms delay between the time the user stops touching the display and when the\n * browser executres events. We need to ensure we don't reactivate pointer-events within\n * this timeframe otherwise the browser may execute events that should have been prevented.\n *\n * Additionally, this also lets us deal automatically with cancellations when a click event\n * isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener, because we cannot be\n * certain that it was raised, and therefore cleaned-up.\n */ if (event.pointerType === 'touch') {\n document.removeEventListener('click', handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n document.addEventListener('click', handleClickRef.current, {\n once: true\n });\n } else handleAndDispatchPointerDownOutsideEvent();\n }\n isPointerInsideReactTreeRef.current = false;\n };\n /**\n * if this hook executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not React specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */ const timerId = window.setTimeout(()=>{\n document.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n return ()=>{\n window.clearTimeout(timerId);\n document.removeEventListener('pointerdown', handlePointerDown);\n document.removeEventListener('click', handleClickRef.current);\n };\n }, [\n handlePointerDownOutside\n ]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true\n };\n}\n/**\n * Listens for when focus happens outside a react subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */ function $5cb92bef7577960e$var$useFocusOutside(onFocusOutside) {\n const handleFocusOutside = $kqwpH$useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = $kqwpH$useRef(false);\n $kqwpH$useEffect(()=>{\n const handleFocus = (event)=>{\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n document.addEventListener('focusin', handleFocus);\n return ()=>document.removeEventListener('focusin', handleFocus)\n ;\n }, [\n handleFocusOutside\n ]);\n return {\n onFocusCapture: ()=>isFocusInsideReactTreeRef.current = true\n ,\n onBlurCapture: ()=>isFocusInsideReactTreeRef.current = false\n };\n}\nfunction $5cb92bef7577960e$var$dispatchUpdate() {\n const event = new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction $5cb92bef7577960e$var$handleAndDispatchCustomEvent(name, handler, detail, { discrete: discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail: detail\n });\n if (handler) target.addEventListener(name, handler, {\n once: true\n });\n if (discrete) $kqwpH$dispatchDiscreteCustomEvent(target, event);\n else target.dispatchEvent(event);\n}\nconst $5cb92bef7577960e$export$be92b6f5f03c0fe9 = $5cb92bef7577960e$export$177fb62ff3ec1f22;\nconst $5cb92bef7577960e$export$aecb2ddcb55c95be = $5cb92bef7577960e$export$4d5eb2109db14228;\n\n\n\n\nexport {$5cb92bef7577960e$export$177fb62ff3ec1f22 as DismissableLayer, $5cb92bef7577960e$export$4d5eb2109db14228 as DismissableLayerBranch, $5cb92bef7577960e$export$be92b6f5f03c0fe9 as Root, $5cb92bef7577960e$export$aecb2ddcb55c95be as Branch};\n//# sourceMappingURL=index.module.js.map\n","import {useEffect as $hPSQ5$useEffect} from \"react\";\nimport {useCallbackRef as $hPSQ5$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\n\n\n\n/**\n * Listens for when the escape key is down\n */ function $addc16e1bbe58fd0$export$3a72a57244d6e765(onEscapeKeyDownProp) {\n const onEscapeKeyDown = $hPSQ5$useCallbackRef(onEscapeKeyDownProp);\n $hPSQ5$useEffect(()=>{\n const handleKeyDown = (event)=>{\n if (event.key === 'Escape') onEscapeKeyDown(event);\n };\n document.addEventListener('keydown', handleKeyDown);\n return ()=>document.removeEventListener('keydown', handleKeyDown)\n ;\n }, [\n onEscapeKeyDown\n ]);\n}\n\n\n\n\nexport {$addc16e1bbe58fd0$export$3a72a57244d6e765 as useEscapeKeydown};\n//# sourceMappingURL=index.module.js.map\n","import $45QHv$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $45QHv$forwardRef, useState as $45QHv$useState, useRef as $45QHv$useRef, useEffect as $45QHv$useEffect, useCallback as $45QHv$useCallback, createElement as $45QHv$createElement} from \"react\";\nimport {useComposedRefs as $45QHv$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {Primitive as $45QHv$Primitive} from \"@radix-ui/react-primitive\";\nimport {useCallbackRef as $45QHv$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\n\n\n\n\n\n\nconst $d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';\nconst $d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';\nconst $d3863c46a17e8a28$var$EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\n/* -------------------------------------------------------------------------------------------------\n * FocusScope\n * -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$FOCUS_SCOPE_NAME = 'FocusScope';\nconst $d3863c46a17e8a28$export$20e40289641fbbb6 = /*#__PURE__*/ $45QHv$forwardRef((props, forwardedRef)=>{\n const { loop: loop = false , trapped: trapped = false , onMountAutoFocus: onMountAutoFocusProp , onUnmountAutoFocus: onUnmountAutoFocusProp , ...scopeProps } = props;\n const [container1, setContainer] = $45QHv$useState(null);\n const onMountAutoFocus = $45QHv$useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = $45QHv$useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = $45QHv$useRef(null);\n const composedRefs = $45QHv$useComposedRefs(forwardedRef, (node)=>setContainer(node)\n );\n const focusScope = $45QHv$useRef({\n paused: false,\n pause () {\n this.paused = true;\n },\n resume () {\n this.paused = false;\n }\n }).current; // Takes care of trapping focus if focus is moved outside programmatically for example\n $45QHv$useEffect(()=>{\n if (trapped) {\n function handleFocusIn(event) {\n if (focusScope.paused || !container1) return;\n const target = event.target;\n if (container1.contains(target)) lastFocusedElementRef.current = target;\n else $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n function handleFocusOut(event) {\n if (focusScope.paused || !container1) return;\n if (!container1.contains(event.relatedTarget)) $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n return ()=>{\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n };\n }\n }, [\n trapped,\n container1,\n focusScope.paused\n ]);\n $45QHv$useEffect(()=>{\n if (container1) {\n $d3863c46a17e8a28$var$focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container1.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container1.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n $d3863c46a17e8a28$var$focusFirst($d3863c46a17e8a28$var$removeLinks($d3863c46a17e8a28$var$getTabbableCandidates(container1)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement) $d3863c46a17e8a28$var$focus(container1);\n }\n }\n return ()=>{\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus); // We hit a react bug (fixed in v17) with focusing in unmount.\n // We need to delay the focus a little to get around it for now.\n // See: https://github.com/facebook/react/issues/17894\n setTimeout(()=>{\n const unmountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container1.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) $d3863c46a17e8a28$var$focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n // we need to remove the listener after we `dispatchEvent`\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n $d3863c46a17e8a28$var$focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [\n container1,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]); // Takes care of looping focus (when tabbing whilst at the edges)\n const handleKeyDown = $45QHv$useCallback((event)=>{\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container = event.currentTarget;\n const [first, last] = $d3863c46a17e8a28$var$getTabbableEdges(container);\n const hasTabbableElementsInside = first && last; // we can only wrap focus if we have tabbable edges\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) $d3863c46a17e8a28$var$focus(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) $d3863c46a17e8a28$var$focus(last, {\n select: true\n });\n }\n }\n }\n }, [\n loop,\n trapped,\n focusScope.paused\n ]);\n return /*#__PURE__*/ $45QHv$createElement($45QHv$Primitive.div, $45QHv$babelruntimehelpersesmextends({\n tabIndex: -1\n }, scopeProps, {\n ref: composedRefs,\n onKeyDown: handleKeyDown\n }));\n});\n/*#__PURE__*/ Object.assign($d3863c46a17e8a28$export$20e40289641fbbb6, {\n displayName: $d3863c46a17e8a28$var$FOCUS_SCOPE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Attempts focusing the first element in a list of candidates.\n * Stops when focus has actually moved.\n */ function $d3863c46a17e8a28$var$focusFirst(candidates, { select: select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates){\n $d3863c46a17e8a28$var$focus(candidate, {\n select: select\n });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\n/**\n * Returns the first and last tabbable elements inside a container.\n */ function $d3863c46a17e8a28$var$getTabbableEdges(container) {\n const candidates = $d3863c46a17e8a28$var$getTabbableCandidates(container);\n const first = $d3863c46a17e8a28$var$findVisible(candidates, container);\n const last = $d3863c46a17e8a28$var$findVisible(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */ function $d3863c46a17e8a28$var$getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node)=>{\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while(walker.nextNode())nodes.push(walker.currentNode); // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */ function $d3863c46a17e8a28$var$findVisible(elements, container) {\n for (const element of elements){\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!$d3863c46a17e8a28$var$isHidden(element, {\n upTo: container\n })) return element;\n }\n}\nfunction $d3863c46a17e8a28$var$isHidden(node, { upTo: upTo }) {\n if (getComputedStyle(node).visibility === 'hidden') return true;\n while(node){\n // we stop at `upTo` (excluding it)\n if (upTo !== undefined && node === upTo) return false;\n if (getComputedStyle(node).display === 'none') return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction $d3863c46a17e8a28$var$isSelectableInput(element) {\n return element instanceof HTMLInputElement && 'select' in element;\n}\nfunction $d3863c46a17e8a28$var$focus(element, { select: select = false } = {}) {\n // only focus if that element is focusable\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement; // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users\n element.focus({\n preventScroll: true\n }); // only select if its not the same element, it supports selection and we need to select\n if (element !== previouslyFocusedElement && $d3863c46a17e8a28$var$isSelectableInput(element) && select) element.select();\n }\n}\n/* -------------------------------------------------------------------------------------------------\n * FocusScope stack\n * -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$focusScopesStack = $d3863c46a17e8a28$var$createFocusScopesStack();\nfunction $d3863c46a17e8a28$var$createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */ let stack = [];\n return {\n add (focusScope) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) activeFocusScope === null || activeFocusScope === void 0 || activeFocusScope.pause();\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove (focusScope) {\n var _stack$;\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n (_stack$ = stack[0]) === null || _stack$ === void 0 || _stack$.resume();\n }\n };\n}\nfunction $d3863c46a17e8a28$var$arrayRemove(array, item) {\n const updatedArray = [\n ...array\n ];\n const index = updatedArray.indexOf(item);\n if (index !== -1) updatedArray.splice(index, 1);\n return updatedArray;\n}\nfunction $d3863c46a17e8a28$var$removeLinks(items) {\n return items.filter((item)=>item.tagName !== 'A'\n );\n}\nconst $d3863c46a17e8a28$export$be92b6f5f03c0fe9 = $d3863c46a17e8a28$export$20e40289641fbbb6;\n\n\n\n\nexport {$d3863c46a17e8a28$export$20e40289641fbbb6 as FocusScope, $d3863c46a17e8a28$export$be92b6f5f03c0fe9 as Root};\n//# sourceMappingURL=index.module.js.map\n","import $7SXl2$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $7SXl2$forwardRef, createElement as $7SXl2$createElement} from \"react\";\nimport $7SXl2$reactdom from \"react-dom\";\nimport {Primitive as $7SXl2$Primitive} from \"@radix-ui/react-primitive\";\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Portal\n * -----------------------------------------------------------------------------------------------*/ const $f1701beae083dbae$var$PORTAL_NAME = 'Portal';\nconst $f1701beae083dbae$export$602eac185826482c = /*#__PURE__*/ $7SXl2$forwardRef((props, forwardedRef)=>{\n var _globalThis$document;\n const { container: container = globalThis === null || globalThis === void 0 ? void 0 : (_globalThis$document = globalThis.document) === null || _globalThis$document === void 0 ? void 0 : _globalThis$document.body , ...portalProps } = props;\n return container ? /*#__PURE__*/ $7SXl2$reactdom.createPortal(/*#__PURE__*/ $7SXl2$createElement($7SXl2$Primitive.div, $7SXl2$babelruntimehelpersesmextends({}, portalProps, {\n ref: forwardedRef\n })), container) : null;\n});\n/*#__PURE__*/ Object.assign($f1701beae083dbae$export$602eac185826482c, {\n displayName: $f1701beae083dbae$var$PORTAL_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $f1701beae083dbae$export$be92b6f5f03c0fe9 = $f1701beae083dbae$export$602eac185826482c;\n\n\n\n\nexport {$f1701beae083dbae$export$602eac185826482c as Portal, $f1701beae083dbae$export$be92b6f5f03c0fe9 as Root};\n//# sourceMappingURL=index.module.js.map\n","import {Children as $iqq3r$Children, cloneElement as $iqq3r$cloneElement, useState as $iqq3r$useState, useRef as $iqq3r$useRef, useEffect as $iqq3r$useEffect, useCallback as $iqq3r$useCallback, useReducer as $iqq3r$useReducer} from \"react\";\nimport {flushSync as $iqq3r$flushSync} from \"react-dom\";\nimport {useComposedRefs as $iqq3r$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {useLayoutEffect as $iqq3r$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\n\n\n\n\n\n\nfunction $fe963b355347cc68$export$3e6543de14f8614f(initialState, machine) {\n return $iqq3r$useReducer((state, event)=>{\n const nextState = machine[state][event];\n return nextState !== null && nextState !== void 0 ? nextState : state;\n }, initialState);\n}\n\n\nconst $921a889cee6df7e8$export$99c2b779aa4e8b8b = (props)=>{\n const { present: present , children: children } = props;\n const presence = $921a889cee6df7e8$var$usePresence(present);\n const child = typeof children === 'function' ? children({\n present: presence.isPresent\n }) : $iqq3r$Children.only(children);\n const ref = $iqq3r$useComposedRefs(presence.ref, child.ref);\n const forceMount = typeof children === 'function';\n return forceMount || presence.isPresent ? /*#__PURE__*/ $iqq3r$cloneElement(child, {\n ref: ref\n }) : null;\n};\n$921a889cee6df7e8$export$99c2b779aa4e8b8b.displayName = 'Presence';\n/* -------------------------------------------------------------------------------------------------\n * usePresence\n * -----------------------------------------------------------------------------------------------*/ function $921a889cee6df7e8$var$usePresence(present) {\n const [node1, setNode] = $iqq3r$useState();\n const stylesRef = $iqq3r$useRef({});\n const prevPresentRef = $iqq3r$useRef(present);\n const prevAnimationNameRef = $iqq3r$useRef('none');\n const initialState = present ? 'mounted' : 'unmounted';\n const [state, send] = $fe963b355347cc68$export$3e6543de14f8614f(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended'\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted'\n },\n unmounted: {\n MOUNT: 'mounted'\n }\n });\n $iqq3r$useEffect(()=>{\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === 'mounted' ? currentAnimationName : 'none';\n }, [\n state\n ]);\n $iqq3r$useLayoutEffect(()=>{\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(styles);\n if (present) send('MOUNT');\n else if (currentAnimationName === 'none' || (styles === null || styles === void 0 ? void 0 : styles.display) === 'none') // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n send('UNMOUNT');\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */ const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) send('ANIMATION_OUT');\n else send('UNMOUNT');\n }\n prevPresentRef.current = present;\n }\n }, [\n present,\n send\n ]);\n $iqq3r$useLayoutEffect(()=>{\n if (node1) {\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */ const handleAnimationEnd = (event)=>{\n const currentAnimationName = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node1 && isCurrentAnimation) // With React 18 concurrency this update is applied\n // a frame after the animation ends, creating a flash of visible content.\n // By manually flushing we ensure they sync within a frame, removing the flash.\n $iqq3r$flushSync(()=>send('ANIMATION_END')\n );\n };\n const handleAnimationStart = (event)=>{\n if (event.target === node1) // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.current = $921a889cee6df7e8$var$getAnimationName(stylesRef.current);\n };\n node1.addEventListener('animationstart', handleAnimationStart);\n node1.addEventListener('animationcancel', handleAnimationEnd);\n node1.addEventListener('animationend', handleAnimationEnd);\n return ()=>{\n node1.removeEventListener('animationstart', handleAnimationStart);\n node1.removeEventListener('animationcancel', handleAnimationEnd);\n node1.removeEventListener('animationend', handleAnimationEnd);\n };\n } else // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n send('ANIMATION_END');\n }, [\n node1,\n send\n ]);\n return {\n isPresent: [\n 'mounted',\n 'unmountSuspended'\n ].includes(state),\n ref: $iqq3r$useCallback((node)=>{\n if (node) stylesRef.current = getComputedStyle(node);\n setNode(node);\n }, [])\n };\n}\n/* -----------------------------------------------------------------------------------------------*/ function $921a889cee6df7e8$var$getAnimationName(styles) {\n return (styles === null || styles === void 0 ? void 0 : styles.animationName) || 'none';\n}\n\n\n\n\nexport {$921a889cee6df7e8$export$99c2b779aa4e8b8b as Presence};\n//# sourceMappingURL=index.module.js.map\n","import {useEffect as $1wErz$useEffect} from \"react\";\n\n\n/** Number of components which have requested interest to have focus guards */ let $3db38b7d1fb3fe6a$var$count = 0;\nfunction $3db38b7d1fb3fe6a$export$ac5b58043b79449b(props) {\n $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();\n return props.children;\n}\n/**\n * Injects a pair of focus guards at the edges of the whole DOM tree\n * to ensure `focusin` & `focusout` events can be caught consistently.\n */ function $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c() {\n $1wErz$useEffect(()=>{\n var _edgeGuards$, _edgeGuards$2;\n const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');\n document.body.insertAdjacentElement('afterbegin', (_edgeGuards$ = edgeGuards[0]) !== null && _edgeGuards$ !== void 0 ? _edgeGuards$ : $3db38b7d1fb3fe6a$var$createFocusGuard());\n document.body.insertAdjacentElement('beforeend', (_edgeGuards$2 = edgeGuards[1]) !== null && _edgeGuards$2 !== void 0 ? _edgeGuards$2 : $3db38b7d1fb3fe6a$var$createFocusGuard());\n $3db38b7d1fb3fe6a$var$count++;\n return ()=>{\n if ($3db38b7d1fb3fe6a$var$count === 1) document.querySelectorAll('[data-radix-focus-guard]').forEach((node)=>node.remove()\n );\n $3db38b7d1fb3fe6a$var$count--;\n };\n }, []);\n}\nfunction $3db38b7d1fb3fe6a$var$createFocusGuard() {\n const element = document.createElement('span');\n element.setAttribute('data-radix-focus-guard', '');\n element.tabIndex = 0;\n element.style.cssText = 'outline: none; opacity: 0; position: fixed; pointer-events: none';\n return element;\n}\nconst $3db38b7d1fb3fe6a$export$be92b6f5f03c0fe9 = $3db38b7d1fb3fe6a$export$ac5b58043b79449b;\n\n\n\n\nexport {$3db38b7d1fb3fe6a$export$ac5b58043b79449b as FocusGuards, $3db38b7d1fb3fe6a$export$be92b6f5f03c0fe9 as Root, $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c as useFocusGuards};\n//# sourceMappingURL=index.module.js.map\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of <Style\n */\n var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var elementCouldBeVScrolled = function (node) {\n var styles = window.getComputedStyle(node);\n return (styles.overflowY !== 'hidden' && // not-not-scrollable\n !(styles.overflowY === styles.overflowX && styles.overflowY === 'visible') // scrollable\n );\n};\nvar elementCouldBeHScrolled = function (node) {\n var styles = window.getComputedStyle(node);\n return (styles.overflowX !== 'hidden' && // not-not-scrollable\n !(styles.overflowY === styles.overflowX && styles.overflowX === 'visible') // scrollable\n );\n};\nexport var locationCouldBeScrolled = function (axis, node) {\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), s = _a[1], d = _a[2];\n if (s > d) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== document.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n target = target.parentNode;\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n if (isDeltaPositive && ((noOverscroll && availableScroll === 0) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && availableScrollTop === 0) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(function () { return styleSingleton(); })[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if ('touches' in event && event.touches.length === 2) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && e.target === event.target && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n event.preventDefault();\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n event.preventDefault();\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: \"margin\" }) : null));\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide aria-live elements - https://github.com/theKashey/aria-hidden/issues/10\n // and script elements, as they have no impact on accessibility.\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live], script')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","import $67UHm$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {useRef as $67UHm$useRef, createElement as $67UHm$createElement, useCallback as $67UHm$useCallback, forwardRef as $67UHm$forwardRef, Children as $67UHm$Children, useEffect as $67UHm$useEffect, Fragment as $67UHm$Fragment} from \"react\";\nimport {composeEventHandlers as $67UHm$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {useComposedRefs as $67UHm$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {createContextScope as $67UHm$createContextScope, createContext as $67UHm$createContext} from \"@radix-ui/react-context\";\nimport {useId as $67UHm$useId} from \"@radix-ui/react-id\";\nimport {useControllableState as $67UHm$useControllableState} from \"@radix-ui/react-use-controllable-state\";\nimport {DismissableLayer as $67UHm$DismissableLayer} from \"@radix-ui/react-dismissable-layer\";\nimport {FocusScope as $67UHm$FocusScope} from \"@radix-ui/react-focus-scope\";\nimport {Portal as $67UHm$Portal} from \"@radix-ui/react-portal\";\nimport {Presence as $67UHm$Presence} from \"@radix-ui/react-presence\";\nimport {Primitive as $67UHm$Primitive} from \"@radix-ui/react-primitive\";\nimport {useFocusGuards as $67UHm$useFocusGuards} from \"@radix-ui/react-focus-guards\";\nimport {RemoveScroll as $67UHm$RemoveScroll} from \"react-remove-scroll\";\nimport {hideOthers as $67UHm$hideOthers} from \"aria-hidden\";\nimport {Slot as $67UHm$Slot} from \"@radix-ui/react-slot\";\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DIALOG_NAME = 'Dialog';\nconst [$5d3850c4d0b4e6c7$var$createDialogContext, $5d3850c4d0b4e6c7$export$cc702773b8ea3e41] = $67UHm$createContextScope($5d3850c4d0b4e6c7$var$DIALOG_NAME);\nconst [$5d3850c4d0b4e6c7$var$DialogProvider, $5d3850c4d0b4e6c7$var$useDialogContext] = $5d3850c4d0b4e6c7$var$createDialogContext($5d3850c4d0b4e6c7$var$DIALOG_NAME);\nconst $5d3850c4d0b4e6c7$export$3ddf2d174ce01153 = (props)=>{\n const { __scopeDialog: __scopeDialog , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , modal: modal = true } = props;\n const triggerRef = $67UHm$useRef(null);\n const contentRef = $67UHm$useRef(null);\n const [open = false, setOpen] = $67UHm$useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$DialogProvider, {\n scope: __scopeDialog,\n triggerRef: triggerRef,\n contentRef: contentRef,\n contentId: $67UHm$useId(),\n titleId: $67UHm$useId(),\n descriptionId: $67UHm$useId(),\n open: open,\n onOpenChange: setOpen,\n onOpenToggle: $67UHm$useCallback(()=>setOpen((prevOpen)=>!prevOpen\n )\n , [\n setOpen\n ]),\n modal: modal\n }, children);\n};\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$3ddf2d174ce01153, {\n displayName: $5d3850c4d0b4e6c7$var$DIALOG_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$TRIGGER_NAME = 'DialogTrigger';\nconst $5d3850c4d0b4e6c7$export$2e1e1122cf0cba88 = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...triggerProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = $67UHm$useComposedRefs(forwardedRef, context.triggerRef);\n return /*#__PURE__*/ $67UHm$createElement($67UHm$Primitive.button, $67UHm$babelruntimehelpersesmextends({\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": $5d3850c4d0b4e6c7$var$getState(context.open)\n }, triggerProps, {\n ref: composedTriggerRef,\n onClick: $67UHm$composeEventHandlers(props.onClick, context.onOpenToggle)\n }));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$2e1e1122cf0cba88, {\n displayName: $5d3850c4d0b4e6c7$var$TRIGGER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$PORTAL_NAME = 'DialogPortal';\nconst [$5d3850c4d0b4e6c7$var$PortalProvider, $5d3850c4d0b4e6c7$var$usePortalContext] = $5d3850c4d0b4e6c7$var$createDialogContext($5d3850c4d0b4e6c7$var$PORTAL_NAME, {\n forceMount: undefined\n});\nconst $5d3850c4d0b4e6c7$export$dad7c95542bacce0 = (props)=>{\n const { __scopeDialog: __scopeDialog , forceMount: forceMount , children: children , container: container } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$PORTAL_NAME, __scopeDialog);\n return /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$PortalProvider, {\n scope: __scopeDialog,\n forceMount: forceMount\n }, $67UHm$Children.map(children, (child)=>/*#__PURE__*/ $67UHm$createElement($67UHm$Presence, {\n present: forceMount || context.open\n }, /*#__PURE__*/ $67UHm$createElement($67UHm$Portal, {\n asChild: true,\n container: container\n }, child))\n ));\n};\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$dad7c95542bacce0, {\n displayName: $5d3850c4d0b4e6c7$var$PORTAL_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$OVERLAY_NAME = 'DialogOverlay';\nconst $5d3850c4d0b4e6c7$export$bd1d06c79be19e17 = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const portalContext = $5d3850c4d0b4e6c7$var$usePortalContext($5d3850c4d0b4e6c7$var$OVERLAY_NAME, props.__scopeDialog);\n const { forceMount: forceMount = portalContext.forceMount , ...overlayProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /*#__PURE__*/ $67UHm$createElement($67UHm$Presence, {\n present: forceMount || context.open\n }, /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$DialogOverlayImpl, $67UHm$babelruntimehelpersesmextends({}, overlayProps, {\n ref: forwardedRef\n }))) : null;\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$bd1d06c79be19e17, {\n displayName: $5d3850c4d0b4e6c7$var$OVERLAY_NAME\n});\nconst $5d3850c4d0b4e6c7$var$DialogOverlayImpl = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...overlayProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$OVERLAY_NAME, __scopeDialog);\n return(/*#__PURE__*/ // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n $67UHm$createElement($67UHm$RemoveScroll, {\n as: $67UHm$Slot,\n allowPinchZoom: true,\n shards: [\n context.contentRef\n ]\n }, /*#__PURE__*/ $67UHm$createElement($67UHm$Primitive.div, $67UHm$babelruntimehelpersesmextends({\n \"data-state\": $5d3850c4d0b4e6c7$var$getState(context.open)\n }, overlayProps, {\n ref: forwardedRef // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n ,\n style: {\n pointerEvents: 'auto',\n ...overlayProps.style\n }\n }))));\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$CONTENT_NAME = 'DialogContent';\nconst $5d3850c4d0b4e6c7$export$b6d9565de1e068cf = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const portalContext = $5d3850c4d0b4e6c7$var$usePortalContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);\n const { forceMount: forceMount = portalContext.forceMount , ...contentProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);\n return /*#__PURE__*/ $67UHm$createElement($67UHm$Presence, {\n present: forceMount || context.open\n }, context.modal ? /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$DialogContentModal, $67UHm$babelruntimehelpersesmextends({}, contentProps, {\n ref: forwardedRef\n })) : /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$DialogContentNonModal, $67UHm$babelruntimehelpersesmextends({}, contentProps, {\n ref: forwardedRef\n })));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$b6d9565de1e068cf, {\n displayName: $5d3850c4d0b4e6c7$var$CONTENT_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DialogContentModal = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);\n const contentRef = $67UHm$useRef(null);\n const composedRefs = $67UHm$useComposedRefs(forwardedRef, context.contentRef, contentRef); // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n $67UHm$useEffect(()=>{\n const content = contentRef.current;\n if (content) return $67UHm$hideOthers(content);\n }, []);\n return /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$DialogContentImpl, $67UHm$babelruntimehelpersesmextends({}, props, {\n ref: composedRefs // we make sure focus isn't trapped once `DialogContent` has been closed\n ,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: $67UHm$composeEventHandlers(props.onCloseAutoFocus, (event)=>{\n var _context$triggerRef$c;\n event.preventDefault();\n (_context$triggerRef$c = context.triggerRef.current) === null || _context$triggerRef$c === void 0 || _context$triggerRef$c.focus();\n }),\n onPointerDownOutside: $67UHm$composeEventHandlers(props.onPointerDownOutside, (event)=>{\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick; // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n }) // When focus is trapped, a `focusout` event may still happen.\n ,\n onFocusOutside: $67UHm$composeEventHandlers(props.onFocusOutside, (event)=>event.preventDefault()\n )\n }));\n});\n/* -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DialogContentNonModal = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = $67UHm$useRef(false);\n return /*#__PURE__*/ $67UHm$createElement($5d3850c4d0b4e6c7$var$DialogContentImpl, $67UHm$babelruntimehelpersesmextends({}, props, {\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event)=>{\n var _props$onCloseAutoFoc;\n (_props$onCloseAutoFoc = props.onCloseAutoFocus) === null || _props$onCloseAutoFoc === void 0 || _props$onCloseAutoFoc.call(props, event);\n if (!event.defaultPrevented) {\n var _context$triggerRef$c2;\n if (!hasInteractedOutsideRef.current) (_context$triggerRef$c2 = context.triggerRef.current) === null || _context$triggerRef$c2 === void 0 || _context$triggerRef$c2.focus(); // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n },\n onInteractOutside: (event)=>{\n var _props$onInteractOuts, _context$triggerRef$c3;\n (_props$onInteractOuts = props.onInteractOutside) === null || _props$onInteractOuts === void 0 || _props$onInteractOuts.call(props, event);\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true; // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target;\n const targetIsTrigger = (_context$triggerRef$c3 = context.triggerRef.current) === null || _context$triggerRef$c3 === void 0 ? void 0 : _context$triggerRef$c3.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }\n }));\n});\n/* -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DialogContentImpl = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , trapFocus: trapFocus , onOpenAutoFocus: onOpenAutoFocus , onCloseAutoFocus: onCloseAutoFocus , ...contentProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, __scopeDialog);\n const contentRef = $67UHm$useRef(null);\n const composedRefs = $67UHm$useComposedRefs(forwardedRef, contentRef); // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (beacuse of the `Portal`)\n $67UHm$useFocusGuards();\n return /*#__PURE__*/ $67UHm$createElement($67UHm$Fragment, null, /*#__PURE__*/ $67UHm$createElement($67UHm$FocusScope, {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus\n }, /*#__PURE__*/ $67UHm$createElement($67UHm$DismissableLayer, $67UHm$babelruntimehelpersesmextends({\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": $5d3850c4d0b4e6c7$var$getState(context.open)\n }, contentProps, {\n ref: composedRefs,\n onDismiss: ()=>context.onOpenChange(false)\n }))), false);\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$TITLE_NAME = 'DialogTitle';\nconst $5d3850c4d0b4e6c7$export$16f7638e4a34b909 = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...titleProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$TITLE_NAME, __scopeDialog);\n return /*#__PURE__*/ $67UHm$createElement($67UHm$Primitive.h2, $67UHm$babelruntimehelpersesmextends({\n id: context.titleId\n }, titleProps, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$16f7638e4a34b909, {\n displayName: $5d3850c4d0b4e6c7$var$TITLE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DESCRIPTION_NAME = 'DialogDescription';\nconst $5d3850c4d0b4e6c7$export$94e94c2ec2c954d5 = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...descriptionProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$DESCRIPTION_NAME, __scopeDialog);\n return /*#__PURE__*/ $67UHm$createElement($67UHm$Primitive.p, $67UHm$babelruntimehelpersesmextends({\n id: context.descriptionId\n }, descriptionProps, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$94e94c2ec2c954d5, {\n displayName: $5d3850c4d0b4e6c7$var$DESCRIPTION_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$CLOSE_NAME = 'DialogClose';\nconst $5d3850c4d0b4e6c7$export$fba2fb7cd781b7ac = /*#__PURE__*/ $67UHm$forwardRef((props, forwardedRef)=>{\n const { __scopeDialog: __scopeDialog , ...closeProps } = props;\n const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CLOSE_NAME, __scopeDialog);\n return /*#__PURE__*/ $67UHm$createElement($67UHm$Primitive.button, $67UHm$babelruntimehelpersesmextends({\n type: \"button\"\n }, closeProps, {\n ref: forwardedRef,\n onClick: $67UHm$composeEventHandlers(props.onClick, ()=>context.onOpenChange(false)\n )\n }));\n});\n/*#__PURE__*/ Object.assign($5d3850c4d0b4e6c7$export$fba2fb7cd781b7ac, {\n displayName: $5d3850c4d0b4e6c7$var$CLOSE_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ function $5d3850c4d0b4e6c7$var$getState(open) {\n return open ? 'open' : 'closed';\n}\nconst $5d3850c4d0b4e6c7$var$TITLE_WARNING_NAME = 'DialogTitleWarning';\nconst [$5d3850c4d0b4e6c7$export$69b62a49393917d6, $5d3850c4d0b4e6c7$var$useWarningContext] = $67UHm$createContext($5d3850c4d0b4e6c7$var$TITLE_WARNING_NAME, {\n contentName: $5d3850c4d0b4e6c7$var$CONTENT_NAME,\n titleName: $5d3850c4d0b4e6c7$var$TITLE_NAME,\n docsSlug: 'dialog'\n});\nconst $5d3850c4d0b4e6c7$var$TitleWarning = ({ titleId: titleId })=>{\n const titleWarningContext = $5d3850c4d0b4e6c7$var$useWarningContext($5d3850c4d0b4e6c7$var$TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n $67UHm$useEffect(()=>{\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) throw new Error(MESSAGE);\n }\n }, [\n MESSAGE,\n titleId\n ]);\n return null;\n};\nconst $5d3850c4d0b4e6c7$var$DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\nconst $5d3850c4d0b4e6c7$var$DescriptionWarning = ({ contentRef: contentRef , descriptionId: descriptionId })=>{\n const descriptionWarningContext = $5d3850c4d0b4e6c7$var$useWarningContext($5d3850c4d0b4e6c7$var$DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n $67UHm$useEffect(()=>{\n var _contentRef$current;\n const describedById = (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.getAttribute('aria-describedby'); // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [\n MESSAGE,\n contentRef,\n descriptionId\n ]);\n return null;\n};\nconst $5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9 = $5d3850c4d0b4e6c7$export$3ddf2d174ce01153;\nconst $5d3850c4d0b4e6c7$export$41fb9f06171c75f4 = $5d3850c4d0b4e6c7$export$2e1e1122cf0cba88;\nconst $5d3850c4d0b4e6c7$export$602eac185826482c = $5d3850c4d0b4e6c7$export$dad7c95542bacce0;\nconst $5d3850c4d0b4e6c7$export$c6fdb837b070b4ff = $5d3850c4d0b4e6c7$export$bd1d06c79be19e17;\nconst $5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2 = $5d3850c4d0b4e6c7$export$b6d9565de1e068cf;\nconst $5d3850c4d0b4e6c7$export$f99233281efd08a0 = $5d3850c4d0b4e6c7$export$16f7638e4a34b909;\nconst $5d3850c4d0b4e6c7$export$393edc798c47379d = $5d3850c4d0b4e6c7$export$94e94c2ec2c954d5;\nconst $5d3850c4d0b4e6c7$export$f39c2d165cd861fe = $5d3850c4d0b4e6c7$export$fba2fb7cd781b7ac;\n\n\n\n\nexport {$5d3850c4d0b4e6c7$export$cc702773b8ea3e41 as createDialogScope, $5d3850c4d0b4e6c7$export$3ddf2d174ce01153 as Dialog, $5d3850c4d0b4e6c7$export$2e1e1122cf0cba88 as DialogTrigger, $5d3850c4d0b4e6c7$export$dad7c95542bacce0 as DialogPortal, $5d3850c4d0b4e6c7$export$bd1d06c79be19e17 as DialogOverlay, $5d3850c4d0b4e6c7$export$b6d9565de1e068cf as DialogContent, $5d3850c4d0b4e6c7$export$16f7638e4a34b909 as DialogTitle, $5d3850c4d0b4e6c7$export$94e94c2ec2c954d5 as DialogDescription, $5d3850c4d0b4e6c7$export$fba2fb7cd781b7ac as DialogClose, $5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9 as Root, $5d3850c4d0b4e6c7$export$41fb9f06171c75f4 as Trigger, $5d3850c4d0b4e6c7$export$602eac185826482c as Portal, $5d3850c4d0b4e6c7$export$c6fdb837b070b4ff as Overlay, $5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2 as Content, $5d3850c4d0b4e6c7$export$f99233281efd08a0 as Title, $5d3850c4d0b4e6c7$export$393edc798c47379d as Description, $5d3850c4d0b4e6c7$export$f39c2d165cd861fe as Close, $5d3850c4d0b4e6c7$export$69b62a49393917d6 as WarningProvider};\n//# sourceMappingURL=index.module.js.map\n","import{a as oe}from\"./chunk-XJATAMEX.mjs\";import*as y from\"@radix-ui/react-dialog\";import*as t from\"react\";var fe='[cmdk-list-sizer=\"\"]',O='[cmdk-group=\"\"]',U='[cmdk-group-items=\"\"]',me='[cmdk-group-heading=\"\"]',W='[cmdk-item=\"\"]',ae=`${W}:not([aria-disabled=\"true\"])`,B=\"cmdk-item-select\",S=\"data-value\",pe=(r,c)=>oe(r,c),se=t.createContext(void 0),A=()=>t.useContext(se),ie=t.createContext(void 0),J=()=>t.useContext(ie),ce=t.createContext(void 0),le=t.forwardRef((r,c)=>{let n=t.useRef(null),o=w(()=>{var e,s,a;return{search:\"\",value:(a=(s=r.value)!=null?s:(e=r.defaultValue)==null?void 0:e.toLowerCase())!=null?a:\"\",filtered:{count:0,items:new Map,groups:new Set}}}),l=w(()=>new Set),d=w(()=>new Map),f=w(()=>new Map),g=w(()=>new Set),u=ue(r),{label:b,children:p,value:R,onValueChange:T,filter:I,shouldFilter:C,vimBindings:F=!0,...P}=r,Q=t.useId(),K=t.useId(),V=t.useId(),E=Le();D(()=>{if(R!==void 0){let e=R.trim().toLowerCase();o.current.value=e,E(6,Y),m.emit()}},[R]);let m=t.useMemo(()=>({subscribe:e=>(g.current.add(e),()=>g.current.delete(e)),snapshot:()=>o.current,setState:(e,s,a)=>{var i,v,h;if(!Object.is(o.current[e],s)){if(o.current[e]=s,e===\"search\")$(),N(),E(1,j);else if(e===\"value\")if(((i=u.current)==null?void 0:i.value)!==void 0){let x=s!=null?s:\"\";(h=(v=u.current).onValueChange)==null||h.call(v,x);return}else a||E(5,Y);m.emit()}},emit:()=>{g.current.forEach(e=>e())}}),[]),M=t.useMemo(()=>({value:(e,s)=>{s!==f.current.get(e)&&(f.current.set(e,s),o.current.filtered.items.set(e,X(s)),E(2,()=>{N(),m.emit()}))},item:(e,s)=>(l.current.add(e),s&&(d.current.has(s)?d.current.get(s).add(e):d.current.set(s,new Set([e]))),E(3,()=>{$(),N(),o.current.value||j(),m.emit()}),()=>{f.current.delete(e),l.current.delete(e),o.current.filtered.items.delete(e);let a=k();E(4,()=>{$(),(a==null?void 0:a.getAttribute(\"id\"))===e&&j(),m.emit()})}),group:e=>(d.current.has(e)||d.current.set(e,new Set),()=>{f.current.delete(e),d.current.delete(e)}),filter:()=>u.current.shouldFilter,label:b||r[\"aria-label\"],commandRef:n,listId:Q,inputId:V,labelId:K}),[]);function X(e){var a,i;let s=(i=(a=u.current)==null?void 0:a.filter)!=null?i:pe;return e?s(e,o.current.search):0}function N(){if(!n.current||!o.current.search||u.current.shouldFilter===!1)return;let e=o.current.filtered.items,s=[];o.current.filtered.groups.forEach(i=>{let v=d.current.get(i),h=0;v.forEach(x=>{let G=e.get(x);h=Math.max(G,h)}),s.push([i,h])});let a=n.current.querySelector(fe);H().sort((i,v)=>{var G,re;let h=i.getAttribute(S),x=v.getAttribute(S);return((G=e.get(x))!=null?G:0)-((re=e.get(h))!=null?re:0)}).forEach(i=>{let v=i.closest(U);v?v.appendChild(i.parentElement===v?i:i.closest(`${U} > *`)):a.appendChild(i.parentElement===a?i:i.closest(`${U} > *`))}),s.sort((i,v)=>v[1]-i[1]).forEach(i=>{let v=n.current.querySelector(`${O}[${S}=\"${i[0]}\"]`);v==null||v.parentElement.appendChild(v)})}function j(){let e=H().find(a=>!a.ariaDisabled),s=e==null?void 0:e.getAttribute(S);m.setState(\"value\",s||void 0)}function $(){if(!o.current.search||u.current.shouldFilter===!1){o.current.filtered.count=l.current.size;return}o.current.filtered.groups=new Set;let e=0;for(let s of l.current){let a=f.current.get(s),i=X(a);o.current.filtered.items.set(s,i),i>0&&e++}for(let[s,a]of d.current)for(let i of a)if(o.current.filtered.items.get(i)>0){o.current.filtered.groups.add(s);break}o.current.filtered.count=e}function Y(){var s,a,i;let e=k();e&&(((s=e.parentElement)==null?void 0:s.firstChild)===e&&((i=(a=e.closest(O))==null?void 0:a.querySelector(me))==null||i.scrollIntoView({block:\"nearest\"})),e.scrollIntoView({block:\"nearest\"}))}function k(){var e;return(e=n.current)==null?void 0:e.querySelector(`${W}[aria-selected=\"true\"]`)}function H(){return Array.from(n.current.querySelectorAll(ae))}function q(e){let a=H()[e];a&&m.setState(\"value\",a.getAttribute(S))}function z(e){var h;let s=k(),a=H(),i=a.findIndex(x=>x===s),v=a[i+e];(h=u.current)!=null&&h.loop&&(v=i+e<0?a[a.length-1]:i+e===a.length?a[0]:a[i+e]),v&&m.setState(\"value\",v.getAttribute(S))}function Z(e){let s=k(),a=s==null?void 0:s.closest(O),i;for(;a&&!i;)a=e>0?ye(a,O):xe(a,O),i=a==null?void 0:a.querySelector(ae);i?m.setState(\"value\",i.getAttribute(S)):z(e)}let ee=()=>q(H().length-1),te=e=>{e.preventDefault(),e.metaKey?ee():e.altKey?Z(1):z(1)},ne=e=>{e.preventDefault(),e.metaKey?q(0):e.altKey?Z(-1):z(-1)};return t.createElement(\"div\",{ref:_([n,c]),...P,\"cmdk-root\":\"\",onKeyDown:e=>{var s;if((s=P.onKeyDown)==null||s.call(P,e),!e.defaultPrevented)switch(e.key){case\"n\":case\"j\":{F&&e.ctrlKey&&te(e);break}case\"ArrowDown\":{te(e);break}case\"p\":case\"k\":{F&&e.ctrlKey&&ne(e);break}case\"ArrowUp\":{ne(e);break}case\"Home\":{e.preventDefault(),q(0);break}case\"End\":{e.preventDefault(),ee();break}case\"Enter\":if(!e.nativeEvent.isComposing){e.preventDefault();let a=k();if(a){let i=new Event(B);a.dispatchEvent(i)}}}}},t.createElement(\"label\",{\"cmdk-label\":\"\",htmlFor:M.inputId,id:M.labelId,style:Te},b),t.createElement(ie.Provider,{value:m},t.createElement(se.Provider,{value:M},p)))}),ve=t.forwardRef((r,c)=>{var V,E;let n=t.useId(),o=t.useRef(null),l=t.useContext(ce),d=A(),f=ue(r),g=(E=(V=f.current)==null?void 0:V.forceMount)!=null?E:l==null?void 0:l.forceMount;D(()=>d.item(n,l==null?void 0:l.id),[]);let u=de(n,o,[r.value,r.children,o]),b=J(),p=L(m=>m.value&&m.value===u.current),R=L(m=>g||d.filter()===!1?!0:m.search?m.filtered.items.get(n)>0:!0);t.useEffect(()=>{let m=o.current;if(!(!m||r.disabled))return m.addEventListener(B,T),()=>m.removeEventListener(B,T)},[R,r.onSelect,r.disabled]);function T(){var m,M;I(),(M=(m=f.current).onSelect)==null||M.call(m,u.current)}function I(){b.setState(\"value\",u.current,!0)}if(!R)return null;let{disabled:C,value:F,onSelect:P,forceMount:Q,...K}=r;return t.createElement(\"div\",{ref:_([o,c]),...K,id:n,\"cmdk-item\":\"\",role:\"option\",\"aria-disabled\":C||void 0,\"aria-selected\":p||void 0,\"data-disabled\":C||void 0,\"data-selected\":p||void 0,onPointerMove:C?void 0:I,onClick:C?void 0:T},r.children)}),ge=t.forwardRef((r,c)=>{let{heading:n,children:o,forceMount:l,...d}=r,f=t.useId(),g=t.useRef(null),u=t.useRef(null),b=t.useId(),p=A(),R=L(C=>l||p.filter()===!1?!0:C.search?C.filtered.groups.has(f):!0);D(()=>p.group(f),[]),de(f,g,[r.value,r.heading,u]);let T=t.useMemo(()=>({id:f,forceMount:l}),[l]),I=t.createElement(ce.Provider,{value:T},o);return t.createElement(\"div\",{ref:_([g,c]),...d,\"cmdk-group\":\"\",role:\"presentation\",hidden:R?void 0:!0},n&&t.createElement(\"div\",{ref:u,\"cmdk-group-heading\":\"\",\"aria-hidden\":!0,id:b},n),t.createElement(\"div\",{\"cmdk-group-items\":\"\",role:\"group\",\"aria-labelledby\":n?b:void 0},I))}),Re=t.forwardRef((r,c)=>{let{alwaysRender:n,...o}=r,l=t.useRef(null),d=L(f=>!f.search);return!n&&!d?null:t.createElement(\"div\",{ref:_([l,c]),...o,\"cmdk-separator\":\"\",role:\"separator\"})}),be=t.forwardRef((r,c)=>{let{onValueChange:n,...o}=r,l=r.value!=null,d=J(),f=L(p=>p.search),g=L(p=>p.value),u=A(),b=t.useMemo(()=>{var R;let p=(R=u.commandRef.current)==null?void 0:R.querySelector(`${W}[${S}=\"${g}\"]`);return p==null?void 0:p.getAttribute(\"id\")},[g,u.commandRef]);return t.useEffect(()=>{r.value!=null&&d.setState(\"search\",r.value)},[r.value]),t.createElement(\"input\",{ref:c,...o,\"cmdk-input\":\"\",autoComplete:\"off\",autoCorrect:\"off\",spellCheck:!1,\"aria-autocomplete\":\"list\",role:\"combobox\",\"aria-expanded\":!0,\"aria-controls\":u.listId,\"aria-labelledby\":u.labelId,\"aria-activedescendant\":b,id:u.inputId,type:\"text\",value:l?r.value:f,onChange:p=>{l||d.setState(\"search\",p.target.value),n==null||n(p.target.value)}})}),he=t.forwardRef((r,c)=>{let{children:n,...o}=r,l=t.useRef(null),d=t.useRef(null),f=A();return t.useEffect(()=>{if(d.current&&l.current){let g=d.current,u=l.current,b,p=new ResizeObserver(()=>{b=requestAnimationFrame(()=>{let R=g.offsetHeight;u.style.setProperty(\"--cmdk-list-height\",R.toFixed(1)+\"px\")})});return p.observe(g),()=>{cancelAnimationFrame(b),p.unobserve(g)}}},[]),t.createElement(\"div\",{ref:_([l,c]),...o,\"cmdk-list\":\"\",role:\"listbox\",\"aria-label\":\"Suggestions\",id:f.listId,\"aria-labelledby\":f.inputId},t.createElement(\"div\",{ref:d,\"cmdk-list-sizer\":\"\"},n))}),Ee=t.forwardRef((r,c)=>{let{open:n,onOpenChange:o,overlayClassName:l,contentClassName:d,container:f,...g}=r;return t.createElement(y.Root,{open:n,onOpenChange:o},t.createElement(y.Portal,{container:f},t.createElement(y.Overlay,{\"cmdk-overlay\":\"\",className:l}),t.createElement(y.Content,{\"aria-label\":r.label,\"cmdk-dialog\":\"\",className:d},t.createElement(le,{ref:c,...g}))))}),Se=t.forwardRef((r,c)=>{let n=t.useRef(!0),o=L(l=>l.filtered.count===0);return t.useEffect(()=>{n.current=!1},[]),n.current||!o?null:t.createElement(\"div\",{ref:c,...r,\"cmdk-empty\":\"\",role:\"presentation\"})}),Ce=t.forwardRef((r,c)=>{let{progress:n,children:o,...l}=r;return t.createElement(\"div\",{ref:c,...l,\"cmdk-loading\":\"\",role:\"progressbar\",\"aria-valuenow\":n,\"aria-valuemin\":0,\"aria-valuemax\":100,\"aria-label\":\"Loading...\"},t.createElement(\"div\",{\"aria-hidden\":!0},o))}),we=Object.assign(le,{List:he,Item:ve,Input:be,Group:ge,Separator:Re,Dialog:Ee,Empty:Se,Loading:Ce});function ye(r,c){let n=r.nextElementSibling;for(;n;){if(n.matches(c))return n;n=n.nextElementSibling}}function xe(r,c){let n=r.previousElementSibling;for(;n;){if(n.matches(c))return n;n=n.previousElementSibling}}function ue(r){let c=t.useRef(r);return D(()=>{c.current=r}),c}var D=typeof window==\"undefined\"?t.useEffect:t.useLayoutEffect;function w(r){let c=t.useRef();return c.current===void 0&&(c.current=r()),c}function _(r){return c=>{r.forEach(n=>{typeof n==\"function\"?n(c):n!=null&&(n.current=c)})}}function L(r){let c=J(),n=()=>r(c.snapshot());return t.useSyncExternalStore(c.subscribe,n,n)}function de(r,c,n){let o=t.useRef(),l=A();return D(()=>{var f;let d=(()=>{var g;for(let u of n){if(typeof u==\"string\")return u.trim().toLowerCase();if(typeof u==\"object\"&&\"current\"in u)return u.current?(g=u.current.textContent)==null?void 0:g.trim().toLowerCase():o.current}})();l.value(r,d),(f=c.current)==null||f.setAttribute(S,d),o.current=d}),o}var Le=()=>{let[r,c]=t.useState(),n=w(()=>new Map);return D(()=>{n.current.forEach(o=>o()),n.current=new Map},[r]),(o,l)=>{n.current.set(o,l),c({})}},Te={position:\"absolute\",width:\"1px\",height:\"1px\",padding:\"0\",margin:\"-1px\",overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\"};export{we as Command,Ee as CommandDialog,Se as CommandEmpty,ge as CommandGroup,be as CommandInput,ve as CommandItem,he as CommandList,Ce as CommandLoading,le as CommandRoot,Re as CommandSeparator,L as useCommandState};\n","// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/use-callback-ref.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/use-escape-keydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/focus-scope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n Portal,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// src/use-state-machine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef(null);\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n stylesRef.current = node2 ? getComputedStyle(node2) : null;\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Presence;\nexport {\n Presence,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/focus-guards.tsx\nimport * as React from \"react\";\nvar count = 0;\nfunction FocusGuards(props) {\n useFocusGuards();\n return props.children;\n}\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n count++;\n return () => {\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nexport {\n FocusGuards,\n FocusGuards as Root,\n useFocusGuards\n};\n//# sourceMappingURL=index.mjs.map\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noRelative = props.noRelative, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noRelative\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noRelative: noRelative, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n if (!target) {\n break;\n }\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n var parent_1 = target.parentNode;\n // we will \"bubble\" from ShadowDom in case we are, or just to the parent in normal case\n // this is the same logic used in focus-lock\n target = (parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1);\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n // allow drag selection (iOS); check if selection's anchorNode is the same as target or contains target\n var selection = window.getSelection();\n var anchorNode = selection && selection.anchorNode;\n var isTouchingSelection = anchorNode ? anchorNode === target || anchorNode.contains(target) : false;\n if (isTouchingSelection) {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { noRelative: props.noRelative, gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","\"use client\";\n\n// src/dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar Slot = createSlot(\"DialogOverlay.RemoveScroll\");\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n useFocusGuards();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n ] })\n ] });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n Close,\n Content,\n Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n Overlay,\n Portal,\n Root,\n Title,\n Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.274.0 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * lucide-react v0.274.0 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * lucide-react v0.274.0 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst X = createLucideIcon(\"X\", [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n]);\n\nexport { X as default };\n//# sourceMappingURL=x.js.map\n",null,null,null,"// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nvar use = React[\" use \".trim().toString()];\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\nfunction isLazyComponent(element) {\n return element != null && typeof element === \"object\" && \"$$typeof\" in element && element.$$typeof === REACT_LAZY_TYPE && \"_payload\" in element && isPromiseLike(element._payload);\n}\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","import clsx from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map",null,"// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n",null,"function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","'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","/** @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","/*\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","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","export default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n Object.keys(slots).forEach(\n // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n const utilityClass = getUtilityClass(key);\n if (utilityClass !== '') {\n acc.push(utilityClass);\n }\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe if we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.alpha = alpha;\nexports.blend = blend;\nexports.colorChannel = void 0;\nexports.darken = darken;\nexports.decomposeColor = decomposeColor;\nexports.emphasize = emphasize;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.hexToRgb = hexToRgb;\nexports.hslToRgb = hslToRgb;\nexports.lighten = lighten;\nexports.private_safeAlpha = private_safeAlpha;\nexports.private_safeColorChannel = void 0;\nexports.private_safeDarken = private_safeDarken;\nexports.private_safeEmphasize = private_safeEmphasize;\nexports.private_safeLighten = private_safeLighten;\nexports.recomposeColor = recomposeColor;\nexports.rgbToHex = rgbToHex;\nvar _formatMuiErrorMessage2 = _interopRequireDefault(require(\"@mui/utils/formatMuiErrorMessage\"));\nvar _clamp = _interopRequireDefault(require(\"@mui/utils/clamp\"));\n/* eslint-disable @typescript-eslint/naming-convention */\n\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return (0, _clamp.default)(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nfunction hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : (0, _formatMuiErrorMessage2.default)(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : (0, _formatMuiErrorMessage2.default)(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nconst colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexports.colorChannel = colorChannel;\nconst private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexports.private_safeColorChannel = private_safeColorChannel;\nfunction recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nfunction getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nfunction getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nfunction private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nfunction private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nfunction blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n Object.keys(defaultProps).forEach(propName => {\n if (propName.toString().match(/^(components|slots)$/)) {\n output[propName] = _extends({}, defaultProps[propName], output[propName]);\n } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {\n const defaultSlotProps = defaultProps[propName] || {};\n const slotProps = props[propName];\n output[propName] = {};\n if (!slotProps || !Object.keys(slotProps)) {\n // Reduce the iteration if the slot props is empty\n output[propName] = defaultSlotProps;\n } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {\n // Reduce the iteration if the default slot props is empty\n output[propName] = slotProps;\n } else {\n output[propName] = _extends({}, slotProps);\n Object.keys(defaultSlotProps).forEach(slotPropName => {\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n });\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveProps from '@mui/utils/resolveProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PropsContext = /*#__PURE__*/React.createContext(undefined);\nfunction DefaultPropsProvider({\n value,\n children\n}) {\n return /*#__PURE__*/_jsx(PropsContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object\n} : void 0;\nfunction getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name]) {\n return props;\n }\n const config = theme.components[name];\n if (config.defaultProps) {\n // compatible with v5 signature\n return resolveProps(config.defaultProps, props);\n }\n if (!config.styleOverrides && !config.variants) {\n // v6 signature, no property 'defaultProps'\n return resolveProps(config, props);\n }\n return props;\n}\nexport function useDefaultProps({\n props,\n name\n}) {\n const ctx = React.useContext(PropsContext);\n return getThemeProps({\n props,\n name,\n theme: {\n components: ctx\n }\n });\n}\nexport default DefaultPropsProvider;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport SystemDefaultPropsProvider, { useDefaultProps as useSystemDefaultProps } from '@mui/system/DefaultPropsProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction DefaultPropsProvider(props) {\n return /*#__PURE__*/_jsx(SystemDefaultPropsProvider, _extends({}, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object.isRequired\n} : void 0;\nexport default DefaultPropsProvider;\nexport function useDefaultProps(params) {\n return useSystemDefaultProps(params);\n}","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-f0de968e.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-f0de968e.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx = function jsx(type, props) {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\n(function (_jsx) {\n var JSX;\n\n (function (_JSX) {})(JSX || (JSX = _jsx.JSX || (_jsx.JSX = {})));\n})(jsx || (jsx = {}));\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false;\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nfunction keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name;\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n}\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && isDevelopment) {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && isDevelopment) {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n var WithTheme = /*#__PURE__*/React.forwardRef(function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n });\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n\n var newProps = {};\n\n for (var _key in props) {\n if (hasOwn.call(props, _key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var _key2 in props) {\n if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && (!isDevelopment )) {\n newProps[_key2] = props[_key2];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\n\nvar isDevelopment = false;\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n // eslint-disable-next-line prefer-spread\n styles.push.apply(styles, args);\n } else {\n var templateStringsArr = args[0];\n\n styles.push(templateStringsArr[0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], templateStringsArr[i]);\n }\n }\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n var newStyled = createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n }));\n return newStyled.apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/react';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\nimport '@emotion/utils';\nimport 'react';\nimport '@emotion/is-prop-valid';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// bind it to avoid mutating the original function\nvar styled = createStyled.bind(null);\ntags.forEach(function (tagName) {\n styled[tagName] = styled(tagName);\n});\n\nexport { styled as default };\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the <head> so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getCache(injectFirst, enableCssLayer) {\n const emotionCache = createCache({\n key: 'css',\n prepend: injectFirst\n });\n if (enableCssLayer) {\n const prevInsert = emotionCache.insert;\n emotionCache.insert = (...args) => {\n if (!args[1].styles.match(/^@layer\\s+[^{]*$/)) {\n // avoid nested @layer\n args[1].styles = `@layer mui {${args[1].styles}}`;\n }\n return prevInsert(...args);\n };\n }\n return emotionCache;\n}\nconst cacheMap = new Map();\nexport default function StyledEngineProvider(props) {\n const {\n injectFirst,\n enableCssLayer,\n children\n } = props;\n const cache = React.useMemo(() => {\n const cacheKey = `${injectFirst}-${enableCssLayer}`;\n if (typeof document === 'object' && cacheMap.has(cacheKey)) {\n return cacheMap.get(cacheKey);\n }\n const fresh = getCache(injectFirst, enableCssLayer);\n cacheMap.set(cacheKey, fresh);\n return fresh;\n }, [injectFirst, enableCssLayer]);\n if (injectFirst || enableCssLayer) {\n return /*#__PURE__*/_jsx(CacheProvider, {\n value: cache,\n children: children\n });\n }\n return children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * If true, MUI styles are wrapped in CSS `@layer mui` rule.\n * It helps to override MUI styles when using CSS Modules, Tailwind CSS, plain CSS, or any other styling solution.\n */\n enableCssLayer: PropTypes.bool,\n /**\n * By default, the styles are injected last in the <head> element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool\n} : void 0;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","/**\n * @mui/styled-engine v5.18.0\n *\n * @license MIT\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'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nimport { serializeStyles as emSerializeStyles } from '@emotion/serialize';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\n\n// Emotion only accepts an array, but we want to avoid allocations\nconst wrapper = [];\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function internal_serializeStyles(styles) {\n wrapper[0] = styles;\n return emSerializeStyles(wrapper);\n}\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\n\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if ( /*#__PURE__*/React.isValidElement(source) || !isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if ( /*#__PURE__*/React.isValidElement(source[key])) {\n output[key] = source[key];\n } else if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","/**\n * @license React\n * react-is.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nexports.ContextConsumer = REACT_CONSUMER_TYPE;\nexports.ContextProvider = REACT_CONTEXT_TYPE;\nexports.Element = REACT_ELEMENT_TYPE;\nexports.ForwardRef = REACT_FORWARD_REF_TYPE;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Lazy = REACT_LAZY_TYPE;\nexports.Memo = REACT_MEMO_TYPE;\nexports.Portal = REACT_PORTAL_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n};\nexports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n};\nexports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n};\nexports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n};\nexports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n};\nexports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n};\nexports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n};\nexports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n};\nexports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n};\nexports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n};\nexports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n};\nexports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n};\nexports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n};\nexports.typeOf = typeOf;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\"production\" !== process.env.NODE_ENV &&\n (function () {\n function typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n exports.ContextConsumer = REACT_CONSUMER_TYPE;\n exports.ContextProvider = REACT_CONTEXT_TYPE;\n exports.Element = REACT_ELEMENT_TYPE;\n exports.ForwardRef = REACT_FORWARD_REF_TYPE;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Lazy = REACT_LAZY_TYPE;\n exports.Memo = REACT_MEMO_TYPE;\n exports.Portal = REACT_PORTAL_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n exports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n };\n exports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n };\n exports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n };\n exports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n };\n exports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n };\n exports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n };\n exports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n };\n exports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n };\n exports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n };\n exports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n };\n exports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n };\n exports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n };\n exports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n };\n exports.typeOf = typeOf;\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { ForwardRef, Memo } from 'react-is';\n\n// Simplified polyfill for IE11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nconst fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n const match = `${fn}`.match(fnNameMatchRegex);\n const name = match && match[1];\n return name || '';\n}\nfunction getFunctionComponentName(Component, fallback = '') {\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\nfunction getWrappedName(outerType, innerType, wrapperName) {\n const functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? `${wrapperName}(${functionName})` : wrapperName);\n}\n\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE11 support\n */\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n if (typeof Component === 'string') {\n return Component;\n }\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`\n if (typeof Component === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n default:\n return undefined;\n }\n }\n return undefined;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import PropTypes from 'prop-types';\nconst responsivePropType = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.object, PropTypes.array]) : {};\nexport default responsivePropType;","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import capitalize from '@mui/utils/capitalize';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {},\n nested\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme,\n nested: true\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n if (!nested && theme.modularCssLayers) {\n return {\n '@layer sx': removeUnusedBreakpoints(breakpointsKeys, css)\n };\n }\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * <Box sx={theme => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {\n // If CssVarsProvider is used as a provider,\n // returns '* :where([data-mui-color-scheme=\"light|dark\"]) &'\n const selector = theme.getColorSchemeSelector(key).replace(/(\\[[^\\]]+\\])/, '*:where($1)');\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nimport applyStyles from './applyStyles';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createStyled;\nexports.shouldForwardProp = shouldForwardProp;\nexports.systemDefaultTheme = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _styledEngine = _interopRequireWildcard(require(\"@mui/styled-engine\"));\nvar _deepmerge = require(\"@mui/utils/deepmerge\");\nvar _capitalize = _interopRequireDefault(require(\"@mui/utils/capitalize\"));\nvar _getDisplayName = _interopRequireDefault(require(\"@mui/utils/getDisplayName\"));\nvar _createTheme = _interopRequireDefault(require(\"./createTheme\"));\nvar _styleFunctionSx = _interopRequireDefault(require(\"./styleFunctionSx\"));\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nfunction shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nfunction shallowLayer(serialized, layerName) {\n if (layerName && serialized && typeof serialized === 'object' && serialized.styles && !serialized.styles.startsWith('@layer') // only add the layer if it is not already there.\n ) {\n serialized.styles = `@layer ${layerName}{${String(serialized.styles)}}`;\n }\n return serialized;\n}\nconst systemDefaultTheme = exports.systemDefaultTheme = (0, _createTheme.default)();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref, layerName) {\n let {\n ownerState\n } = _ref,\n props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0, _extends2.default)({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0, _extends2.default)({\n ownerState\n }, props), layerName));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = (0, _objectWithoutPropertiesLoose2.default)(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props((0, _extends2.default)({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n const variantStyle = typeof variant.style === 'function' ? variant.style((0, _extends2.default)({\n ownerState\n }, props, ownerState)) : variant.style;\n result.push(layerName ? shallowLayer((0, _styledEngine.internal_serializeStyles)(variantStyle), layerName) : variantStyle);\n }\n });\n return result;\n }\n return layerName ? shallowLayer((0, _styledEngine.internal_serializeStyles)(resolvedStylesArg), layerName) : resolvedStylesArg;\n}\nfunction createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return (0, _styleFunctionSx.default)((0, _extends2.default)({}, props, {\n theme: resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n (0, _styledEngine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = (0, _objectWithoutPropertiesLoose2.default)(inputOptions, _excluded3);\n const layerName = componentName && componentName.startsWith('Mui') || !!componentSlot ? 'components' : 'custom';\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = (0, _styledEngine.default)(tag, (0, _extends2.default)({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) {\n return props => {\n const theme = resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n });\n return processStyleArg(stylesArg, (0, _extends2.default)({}, props, {\n theme\n }), theme.modularCssLayers ? layerName : undefined);\n };\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0, _extends2.default)({}, props, {\n theme\n }), theme.modularCssLayers ? 'theme' : undefined);\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, (0, _extends2.default)({}, props, {\n theme\n }), theme.modularCssLayers ? 'theme' : undefined);\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${(0, _capitalize.default)(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${(0, _getDisplayName.default)(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import ClassNameGenerator from '../ClassNameGenerator';\nexport const globalStateClasses = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport { darken, getContrastRatio, lighten } from '@mui/system/colorManipulator';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport deepmerge from '@mui/utils/deepmerge';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),\n // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.\n inherit: {\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n letterSpacing: 'inherit'\n }\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n const isNumber = value => !isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (typeof options !== 'object') {\n console.error(['MUI: Secong argument of transition.create must be an object.', \"Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`\"].join('\\n'));\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport systemCreateTheme from '@mui/system/createTheme';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (options.vars &&\n // The error should throw only for the root theme creation because user is not allowed to use a custom node `vars`.\n // `generateCssVars` is the closest identifier for checking that the `options` is a result of `extendTheme` with CSS variables so that user can create new theme for nested ThemeProvider.\n options.generateCssVars === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n // TODO v6: Refactor to use globalStateClassesMapping from @mui/utils once `readOnly` state class is used in Rating component.\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (key in node) {\n const child = node[key];\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createTheme(...args);\n}\nexport default createTheme;","'use client';\n\nimport createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","import slotShouldForwardProp from './slotShouldForwardProp';\nconst rootShouldForwardProp = prop => slotShouldForwardProp(prop) && prop !== 'classes';\nexport default rootShouldForwardProp;","'use client';\n\nimport createStyled from '@mui/system/createStyled';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nimport rootShouldForwardProp from './rootShouldForwardProp';\nexport { default as slotShouldForwardProp } from './slotShouldForwardProp';\nexport { default as rootShouldForwardProp } from './rootShouldForwardProp';\nconst styled = createStyled({\n themeId: THEME_ID,\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","export default '$$material';","// copied from @mui/system/createStyled\nfunction slotShouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport default slotShouldForwardProp;","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSvgIconUtilityClass(slot) {\n return generateUtilityClass('MuiSvgIcon', slot);\n}\nconst svgIconClasses = generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default svgIconClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"inheritViewBox\", \"titleAccess\", \"viewBox\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from '../utils/capitalize';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport { getSvgIconUtilityClass } from './svgIconClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getSvgIconUtilityClass, classes);\n};\nconst SvgIconRoot = styled('svg', {\n name: 'MuiSvgIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette2, _palette3;\n return {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n // the <svg> will define the property that has `currentColor`\n // for example heroicons uses fill=\"none\" and stroke=\"currentColor\"\n fill: ownerState.hasSvgAsChild ? undefined : 'currentColor',\n flexShrink: 0,\n transition: (_theme$transitions = theme.transitions) == null || (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {\n duration: (_theme$transitions2 = theme.transitions) == null || (_theme$transitions2 = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2.shorter\n }),\n fontSize: {\n inherit: 'inherit',\n small: ((_theme$typography = theme.typography) == null || (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem',\n medium: ((_theme$typography2 = theme.typography) == null || (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem',\n large: ((_theme$typography3 = theme.typography) == null || (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875rem'\n }[ownerState.fontSize],\n // TODO v5 deprecate, v6 remove for sx\n color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null || (_palette = _palette[ownerState.color]) == null ? void 0 : _palette.main) != null ? _palette$ownerState$c : {\n action: (_palette2 = (theme.vars || theme).palette) == null || (_palette2 = _palette2.action) == null ? void 0 : _palette2.active,\n disabled: (_palette3 = (theme.vars || theme).palette) == null || (_palette3 = _palette3.action) == null ? void 0 : _palette3.disabled,\n inherit: undefined\n }[ownerState.color]\n };\n});\nconst SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSvgIcon'\n });\n const {\n children,\n className,\n color = 'inherit',\n component = 'svg',\n fontSize = 'medium',\n htmlColor,\n inheritViewBox = false,\n titleAccess,\n viewBox = '0 0 24 24'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const hasSvgAsChild = /*#__PURE__*/React.isValidElement(children) && children.type === 'svg';\n const ownerState = _extends({}, props, {\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox,\n hasSvgAsChild\n });\n const more = {};\n if (!inheritViewBox) {\n more.viewBox = viewBox;\n }\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SvgIconRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n focusable: \"false\",\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, more, other, hasSvgAsChild && children.props, {\n ownerState: ownerState,\n children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /*#__PURE__*/_jsx(\"title\", {\n children: titleAccess\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n * @default 'inherit'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n /**\n * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`\n * prop will be ignored.\n * Useful when you want to reference a custom `component` and have `SvgIcon` pass that\n * `component`'s viewBox to the root node.\n * @default false\n */\n inheritViewBox: PropTypes.bool,\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this prop.\n */\n shapeRendering: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n * @default '0 0 24 24'\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default SvgIcon;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SvgIcon from '../SvgIcon';\n\n/**\n * Private module reserved for @mui packages.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n function Component(props, ref) {\n return /*#__PURE__*/_jsx(SvgIcon, _extends({\n \"data-testid\": `${displayName}Icon`,\n ref: ref\n }, props, {\n children: path\n }));\n }\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","import PropTypes from 'prop-types';\nconst refType = PropTypes.oneOfType([PropTypes.func, PropTypes.object]);\nexport default refType;","import PropTypes from 'prop-types';\nimport chainPropTypes from '../chainPropTypes';\nfunction isClassComponent(elementType) {\n // elementType.prototype?.isReactComponent\n const {\n prototype = {}\n } = elementType;\n return Boolean(prototype.isReactComponent);\n}\nfunction elementTypeAcceptingRef(props, propName, componentName, location, propFullName) {\n const propValue = props[propName];\n const safePropName = propFullName || propName;\n if (propValue == null ||\n // When server-side rendering React doesn't warn either.\n // This is not an accurate check for SSR.\n // This is only in place for emotion compat.\n // TODO: Revisit once https://github.com/facebook/react/issues/20047 is resolved.\n typeof window === 'undefined') {\n return null;\n }\n let warningHint;\n\n /**\n * Blacklisting instead of whitelisting\n *\n * Blacklisting will miss some components, such as React.Fragment. Those will at least\n * trigger a warning in React.\n * We can't whitelist because there is no safe way to detect React.forwardRef\n * or class components. \"Safe\" means there's no public API.\n *\n */\n if (typeof propValue === 'function' && !isClassComponent(propValue)) {\n warningHint = 'Did you accidentally provide a plain function component instead?';\n }\n if (warningHint !== undefined) {\n return new Error(`Invalid ${location} \\`${safePropName}\\` supplied to \\`${componentName}\\`. ` + `Expected an element type that can hold a ref. ${warningHint} ` + 'For more information see https://mui.com/r/caveat-with-refs-guide');\n }\n return null;\n}\nexport default chainPropTypes(PropTypes.elementType, elementTypeAcceptingRef);","export default function chainPropTypes(propType1, propType2) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return function validate(...args) {\n return propType1(...args) || propType2(...args);\n };\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '../useEnhancedEffect';\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nconst UNINITIALIZED = {};\n\n/**\n * A React.useRef() that is initialized lazily with a function. Note that it accepts an optional\n * initialization argument, so the initialization function doesn't need to be an inline closure.\n *\n * @usage\n * const ref = useLazyRef(sortColumns, columns)\n */\nexport default function useLazyRef(init, initArg) {\n const ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = init(initArg);\n }\n return ref;\n}","'use client';\n\nimport * as React from 'react';\nconst EMPTY = [];\n\n/**\n * A React.useEffect equivalent that runs once, when the component is mounted.\n */\nexport default function useOnMount(fn) {\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(fn, EMPTY);\n /* eslint-enable react-hooks/exhaustive-deps */\n}","'use client';\n\nimport useLazyRef from '../useLazyRef/useLazyRef';\nimport useOnMount from '../useOnMount/useOnMount';\nexport class Timeout {\n constructor() {\n this.currentId = null;\n this.clear = () => {\n if (this.currentId !== null) {\n clearTimeout(this.currentId);\n this.currentId = null;\n }\n };\n this.disposeEffect = () => {\n return this.clear;\n };\n }\n static create() {\n return new Timeout();\n }\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = null;\n fn();\n }, delay);\n }\n}\nexport default function useTimeout() {\n const timeout = useLazyRef(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import React from 'react';\nexport default React.createContext(null);","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `<TransitionGroup>` component manages a set of transition components\n * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n * components, `<TransitionGroup>` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the `<TransitionGroup>`.\n *\n * Note that `<TransitionGroup>` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `<TransitionGroup>` renders a `<div>` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `<div>` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `<Transition>` components, that are toggled `in` and out as they\n * leave. the `<TransitionGroup>` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `<Transition>` as\n * with our `<Fade>` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","/**\n * Removes event handlers from the given object.\n * A field is considered an event handler if it is a function with a name beginning with `on`.\n *\n * @param object Object to remove event handlers from.\n * @returns Object with event handlers removed.\n */\nfunction omitEventHandlers(object) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\nexport default omitEventHandlers;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport clsx from 'clsx';\nimport extractEventHandlers from '../extractEventHandlers';\nimport omitEventHandlers from '../omitEventHandlers';\n/**\n * Merges the slot component internal props (usually coming from a hook)\n * with the externally provided ones.\n *\n * The merge order is (the latter overrides the former):\n * 1. The internal props (specified as a getter function to work with get*Props hook result)\n * 2. Additional props (specified internally on a Base UI component)\n * 3. External props specified on the owner component. These should only be used on a root slot.\n * 4. External props specified in the `slotProps.*` prop.\n * 5. The `className` prop - combined from all the above.\n * @param parameters\n * @returns\n */\nfunction mergeSlotProps(parameters) {\n const {\n getSlotProps,\n additionalProps,\n externalSlotProps,\n externalForwardedProps,\n className\n } = parameters;\n if (!getSlotProps) {\n // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,\n // so we can simply merge all the props without having to worry about extracting event handlers.\n const joinedClasses = clsx(additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, additionalProps, externalForwardedProps, externalSlotProps);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: undefined\n };\n }\n\n // In this case, getSlotProps is responsible for calling the external event handlers.\n // We don't need to include them in the merged props because of this.\n\n const eventHandlers = extractEventHandlers(_extends({}, externalForwardedProps, externalSlotProps));\n const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);\n const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);\n const internalSlotProps = getSlotProps(eventHandlers);\n\n // The order of classes is important here.\n // Emotion (that we use in libraries consuming Base UI) depends on this order\n // to properly override style. It requires the most important classes to be last\n // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.\n const joinedClasses = clsx(internalSlotProps == null ? void 0 : internalSlotProps.className, additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, internalSlotProps == null ? void 0 : internalSlotProps.style, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, internalSlotProps, additionalProps, otherPropsWithoutEventHandlers, componentsPropsWithoutEventHandlers);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: internalSlotProps.ref\n };\n}\nexport default mergeSlotProps;","/**\n * Extracts event handlers from a given object.\n * A prop is considered an event handler if it is a function and its name starts with `on`.\n *\n * @param object An object to extract event handlers from.\n * @param excludeKeys An array of keys to exclude from the returned object.\n */\nfunction extractEventHandlers(object, excludeKeys = []) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => prop.match(/^on[A-Z]/) && typeof object[prop] === 'function' && !excludeKeys.includes(prop)).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\nexport default extractEventHandlers;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction Ripple(props) {\n const {\n className,\n classes,\n pulsate = false,\n rippleX,\n rippleY,\n rippleSize,\n in: inProp,\n onExited,\n timeout\n } = props;\n const [leaving, setLeaving] = React.useState(false);\n const rippleClassName = clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n const rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n const childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n if (!inProp && !leaving) {\n setLeaving(true);\n }\n React.useEffect(() => {\n if (!inProp && onExited != null) {\n // react-transition-group#onExited\n const timeoutId = setTimeout(onExited, timeout);\n return () => {\n clearTimeout(timeoutId);\n };\n }\n return undefined;\n }, [onExited, inProp, timeout]);\n return /*#__PURE__*/_jsx(\"span\", {\n className: rippleClassName,\n style: rippleStyles,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: childClassName\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n /**\n * @ignore - injected from TransitionGroup\n */\n in: PropTypes.bool,\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : void 0;\nexport default Ripple;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTouchRippleUtilityClass(slot) {\n return generateUtilityClass('MuiTouchRipple', slot);\n}\nconst touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);\nexport default touchRippleClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"center\", \"classes\", \"className\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport { keyframes } from '@mui/system';\nimport useTimeout from '@mui/utils/useTimeout';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport Ripple from './Ripple';\nimport touchRippleClasses from './touchRippleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DURATION = 550;\nexport const DELAY_RIPPLE = 80;\nconst enterKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`));\nconst exitKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n`));\nconst pulsateKeyframe = keyframes(_t3 || (_t3 = _`\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n`));\nexport const TouchRippleRoot = styled('span', {\n name: 'MuiTouchRipple',\n slot: 'Root'\n})({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n});\n\n// This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\nexport const TouchRippleRipple = styled(Ripple, {\n name: 'MuiTouchRipple',\n slot: 'Ripple'\n})(_t4 || (_t4 = _`\n opacity: 0;\n position: absolute;\n\n &.${0} {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n &.${0} {\n animation-duration: ${0}ms;\n }\n\n & .${0} {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & .${0} {\n opacity: 0;\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n & .${0} {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ${0};\n animation-duration: 2500ms;\n animation-timing-function: ${0};\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n`), touchRippleClasses.rippleVisible, enterKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.ripplePulsate, ({\n theme\n}) => theme.transitions.duration.shorter, touchRippleClasses.child, touchRippleClasses.childLeaving, exitKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.childPulsate, pulsateKeyframe, ({\n theme\n}) => theme.transitions.easing.easeInOut);\n\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\nconst TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTouchRipple'\n });\n const {\n center: centerProp = false,\n classes = {},\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [ripples, setRipples] = React.useState([]);\n const nextKey = React.useRef(0);\n const rippleCallback = React.useRef(null);\n React.useEffect(() => {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]);\n\n // Used to filter out mouse emulated events on mobile.\n const ignoringMouseDown = React.useRef(false);\n // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n const startTimer = useTimeout();\n\n // This is the hook called once the previous timeout is ready.\n const startTimerCommit = React.useRef(null);\n const container = React.useRef(null);\n const startCommit = React.useCallback(params => {\n const {\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n } = params;\n setRipples(oldRipples => [...oldRipples, /*#__PURE__*/_jsx(TouchRippleRipple, {\n classes: {\n ripple: clsx(classes.ripple, touchRippleClasses.ripple),\n rippleVisible: clsx(classes.rippleVisible, touchRippleClasses.rippleVisible),\n ripplePulsate: clsx(classes.ripplePulsate, touchRippleClasses.ripplePulsate),\n child: clsx(classes.child, touchRippleClasses.child),\n childLeaving: clsx(classes.childLeaving, touchRippleClasses.childLeaving),\n childPulsate: clsx(classes.childPulsate, touchRippleClasses.childPulsate)\n },\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n }, nextKey.current)]);\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n const start = React.useCallback((event = {}, options = {}, cb = () => {}) => {\n const {\n pulsate = false,\n center = centerProp || options.pulsate,\n fakeElement = false // For test purposes\n } = options;\n if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n if ((event == null ? void 0 : event.type) === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n const element = fakeElement ? null : container.current;\n const rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n // Get the size of the ripple\n let rippleX;\n let rippleY;\n let rippleSize;\n if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n const {\n clientX,\n clientY\n } = event.touches && event.touches.length > 0 ? event.touches[0] : event;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n if (center) {\n rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3);\n\n // For some reason the animation is broken on Mobile Chrome if the size is even.\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n }\n\n // Touche devices\n if (event != null && event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = () => {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n };\n // Delay the execution of the ripple effect.\n // We have to make a tradeoff with this delay value.\n startTimer.start(DELAY_RIPPLE, () => {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n });\n }\n } else {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }\n }, [centerProp, startCommit, startTimer]);\n const pulsate = React.useCallback(() => {\n start({}, {\n pulsate: true\n });\n }, [start]);\n const stop = React.useCallback((event, cb) => {\n startTimer.clear();\n\n // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.start(0, () => {\n stop(event, cb);\n });\n return;\n }\n startTimerCommit.current = null;\n setRipples(oldRipples => {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, [startTimer]);\n React.useImperativeHandle(ref, () => ({\n pulsate,\n start,\n stop\n }), [pulsate, start, stop]);\n return /*#__PURE__*/_jsx(TouchRippleRoot, _extends({\n className: clsx(touchRippleClasses.root, classes.root, className),\n ref: container\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionGroup, {\n component: null,\n exit: true,\n children: ripples\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default TouchRipple;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getButtonBaseUtilityClass(slot) {\n return generateUtilityClass('MuiButtonBase', slot);\n}\nconst buttonBaseClasses = generateUtilityClasses('MuiButtonBase', ['root', 'disabled', 'focusVisible']);\nexport default buttonBaseClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"centerRipple\", \"children\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"LinkComponent\", \"onBlur\", \"onClick\", \"onContextMenu\", \"onDragLeave\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"tabIndex\", \"TouchRippleProps\", \"touchRippleRef\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nimport buttonBaseClasses, { getButtonBaseUtilityClass } from './buttonBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n focusVisible,\n focusVisibleClassName,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n const composedClasses = composeClasses(slots, getButtonBaseUtilityClass, classes);\n if (focusVisible && focusVisibleClassName) {\n composedClasses.root += ` ${focusVisibleClassName}`;\n }\n return composedClasses;\n};\nexport const ButtonBaseRoot = styled('button', {\n name: 'MuiButtonBase',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native <a /> element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n },\n [`&.${buttonBaseClasses.disabled}`]: {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n});\n\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\nconst ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiButtonBase'\n });\n const {\n action,\n centerRipple = false,\n children,\n className,\n component = 'button',\n disabled = false,\n disableRipple = false,\n disableTouchRipple = false,\n focusRipple = false,\n LinkComponent = 'a',\n onBlur,\n onClick,\n onContextMenu,\n onDragLeave,\n onFocus,\n onFocusVisible,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseLeave,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n tabIndex = 0,\n TouchRippleProps,\n touchRippleRef,\n type\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const buttonRef = React.useRef(null);\n const rippleRef = React.useRef(null);\n const handleRippleRef = useForkRef(rippleRef, touchRippleRef);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), []);\n const [mountedState, setMountedState] = React.useState(false);\n React.useEffect(() => {\n setMountedState(true);\n }, []);\n const enableTouchRipple = mountedState && !disableRipple && !disabled;\n React.useEffect(() => {\n if (focusVisible && focusRipple && !disableRipple && mountedState) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible, mountedState]);\n function useRippleHandler(rippleAction, eventCallback, skipRippleAction = disableTouchRipple) {\n return useEventCallback(event => {\n if (eventCallback) {\n eventCallback(event);\n }\n const ignore = skipRippleAction;\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n return true;\n });\n }\n const handleMouseDown = useRippleHandler('start', onMouseDown);\n const handleContextMenu = useRippleHandler('stop', onContextMenu);\n const handleDragLeave = useRippleHandler('stop', onDragLeave);\n const handleMouseUp = useRippleHandler('stop', onMouseUp);\n const handleMouseLeave = useRippleHandler('stop', event => {\n if (focusVisible) {\n event.preventDefault();\n }\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n const handleTouchStart = useRippleHandler('start', onTouchStart);\n const handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n const handleTouchMove = useRippleHandler('stop', onTouchMove);\n const handleBlur = useRippleHandler('stop', event => {\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n const handleFocus = useEventCallback(event => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n if (onFocus) {\n onFocus(event);\n }\n });\n const isNonNativeButton = () => {\n const button = buttonRef.current;\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n\n /**\n * IE11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n const keydownRef = React.useRef(false);\n const handleKeyDown = useEventCallback(event => {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n rippleRef.current.stop(event, () => {\n rippleRef.current.start(event);\n });\n }\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n if (onClick) {\n onClick(event);\n }\n }\n });\n const handleKeyUp = useEventCallback(event => {\n // calling preventDefault in keyUp on a <button> will not dispatch a click event if Space is pressed\n // https://codesandbox.io/p/sandbox/button-keyup-preventdefault-dn7f0\n if (focusRipple && event.key === ' ' && rippleRef.current && focusVisible && !event.defaultPrevented) {\n keydownRef.current = false;\n rippleRef.current.stop(event, () => {\n rippleRef.current.pulsate(event);\n });\n }\n if (onKeyUp) {\n onKeyUp(event);\n }\n\n // Keyboard accessibility for non interactive elements\n if (onClick && event.target === event.currentTarget && isNonNativeButton() && event.key === ' ' && !event.defaultPrevented) {\n onClick(event);\n }\n });\n let ComponentProp = component;\n if (ComponentProp === 'button' && (other.href || other.to)) {\n ComponentProp = LinkComponent;\n }\n const buttonProps = {};\n if (ComponentProp === 'button') {\n buttonProps.type = type === undefined ? 'button' : type;\n buttonProps.disabled = disabled;\n } else {\n if (!other.href && !other.to) {\n buttonProps.role = 'button';\n }\n if (disabled) {\n buttonProps['aria-disabled'] = disabled;\n }\n }\n const handleRef = useForkRef(ref, focusVisibleRef, buttonRef);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (enableTouchRipple && !rippleRef.current) {\n console.error(['MUI: The `component` prop provided to ButtonBase is invalid.', 'Please make sure the children prop is rendered in this custom component.'].join('\\n'));\n }\n }, [enableTouchRipple]);\n }\n const ownerState = _extends({}, props, {\n centerRipple,\n component,\n disabled,\n disableRipple,\n disableTouchRipple,\n focusRipple,\n tabIndex,\n focusVisible\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(ButtonBaseRoot, _extends({\n as: ComponentProp,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n onBlur: handleBlur,\n onClick: onClick,\n onContextMenu: handleContextMenu,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n onMouseDown: handleMouseDown,\n onMouseLeave: handleMouseLeave,\n onMouseUp: handleMouseUp,\n onDragLeave: handleDragLeave,\n onTouchEnd: handleTouchEnd,\n onTouchMove: handleTouchMove,\n onTouchStart: handleTouchStart,\n ref: handleRef,\n tabIndex: disabled ? -1 : tabIndex,\n type: type\n }, buttonProps, other, {\n children: [children, enableTouchRipple ?\n /*#__PURE__*/\n /* TouchRipple is only needed client-side, x2 boost on the server. */\n _jsx(TouchRipple, _extends({\n ref: handleRippleRef,\n center: centerRipple\n }, TouchRippleProps)) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? ButtonBase.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A ref for imperative actions.\n * It currently only supports `focusVisible()` action.\n */\n action: refType,\n /**\n * If `true`, the ripples are centered.\n * They won't start at the cursor interaction position.\n * @default false\n */\n centerRipple: PropTypes.bool,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * If `true`, the touch ripple effect is disabled.\n * @default false\n */\n disableTouchRipple: PropTypes.bool,\n /**\n * If `true`, the base button will have a keyboard focus ripple.\n * @default false\n */\n focusRipple: PropTypes.bool,\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * @ignore\n */\n href: PropTypes /* @typescript-to-proptypes-ignore */.any,\n /**\n * The component used to render a link when the `href` prop is provided.\n * @default 'a'\n */\n LinkComponent: PropTypes.elementType,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onContextMenu: PropTypes.func,\n /**\n * @ignore\n */\n onDragLeave: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * Callback fired when the component is focused with a keyboard.\n * We trigger a `onFocus` callback too.\n */\n onFocusVisible: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n /**\n * @ignore\n */\n onMouseLeave: PropTypes.func,\n /**\n * @ignore\n */\n onMouseUp: PropTypes.func,\n /**\n * @ignore\n */\n onTouchEnd: PropTypes.func,\n /**\n * @ignore\n */\n onTouchMove: PropTypes.func,\n /**\n * @ignore\n */\n onTouchStart: PropTypes.func,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * @default 0\n */\n tabIndex: PropTypes.number,\n /**\n * Props applied to the `TouchRipple` element.\n */\n TouchRippleProps: PropTypes.object,\n /**\n * A ref that points to the `TouchRipple` element.\n */\n touchRippleRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.shape({\n pulsate: PropTypes.func.isRequired,\n start: PropTypes.func.isRequired,\n stop: PropTypes.func.isRequired\n })\n })]),\n /**\n * @ignore\n */\n type: PropTypes.oneOfType([PropTypes.oneOf(['button', 'reset', 'submit']), PropTypes.string])\n} : void 0;\nexport default ButtonBase;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getChipUtilityClass(slot) {\n return generateUtilityClass('MuiChip', slot);\n}\nconst chipClasses = generateUtilityClasses('MuiChip', ['root', 'sizeSmall', 'sizeMedium', 'colorError', 'colorInfo', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorWarning', 'disabled', 'clickable', 'clickableColorPrimary', 'clickableColorSecondary', 'deletable', 'deletableColorPrimary', 'deletableColorSecondary', 'outlined', 'filled', 'outlinedPrimary', 'outlinedSecondary', 'filledPrimary', 'filledSecondary', 'avatar', 'avatarSmall', 'avatarMedium', 'avatarColorPrimary', 'avatarColorSecondary', 'icon', 'iconSmall', 'iconMedium', 'iconColorPrimary', 'iconColorSecondary', 'label', 'labelSmall', 'labelMedium', 'deleteIcon', 'deleteIconSmall', 'deleteIconMedium', 'deleteIconColorPrimary', 'deleteIconColorSecondary', 'deleteIconOutlinedColorPrimary', 'deleteIconOutlinedColorSecondary', 'deleteIconFilledColorPrimary', 'deleteIconFilledColorSecondary', 'focusVisible']);\nexport default chipClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"avatar\", \"className\", \"clickable\", \"color\", \"component\", \"deleteIcon\", \"disabled\", \"icon\", \"label\", \"onClick\", \"onDelete\", \"onKeyDown\", \"onKeyUp\", \"size\", \"variant\", \"tabIndex\", \"skipFocusWhenDisabled\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport CancelIcon from '../internal/svg-icons/Cancel';\nimport useForkRef from '../utils/useForkRef';\nimport unsupportedProp from '../utils/unsupportedProp';\nimport capitalize from '../utils/capitalize';\nimport ButtonBase from '../ButtonBase';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport chipClasses, { getChipUtilityClass } from './chipClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disabled,\n size,\n color,\n iconColor,\n onDelete,\n clickable,\n variant\n } = ownerState;\n const slots = {\n root: ['root', variant, disabled && 'disabled', `size${capitalize(size)}`, `color${capitalize(color)}`, clickable && 'clickable', clickable && `clickableColor${capitalize(color)}`, onDelete && 'deletable', onDelete && `deletableColor${capitalize(color)}`, `${variant}${capitalize(color)}`],\n label: ['label', `label${capitalize(size)}`],\n avatar: ['avatar', `avatar${capitalize(size)}`, `avatarColor${capitalize(color)}`],\n icon: ['icon', `icon${capitalize(size)}`, `iconColor${capitalize(iconColor)}`],\n deleteIcon: ['deleteIcon', `deleteIcon${capitalize(size)}`, `deleteIconColor${capitalize(color)}`, `deleteIcon${capitalize(variant)}Color${capitalize(color)}`]\n };\n return composeClasses(slots, getChipUtilityClass, classes);\n};\nconst ChipRoot = styled('div', {\n name: 'MuiChip',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n color,\n iconColor,\n clickable,\n onDelete,\n size,\n variant\n } = ownerState;\n return [{\n [`& .${chipClasses.avatar}`]: styles.avatar\n }, {\n [`& .${chipClasses.avatar}`]: styles[`avatar${capitalize(size)}`]\n }, {\n [`& .${chipClasses.avatar}`]: styles[`avatarColor${capitalize(color)}`]\n }, {\n [`& .${chipClasses.icon}`]: styles.icon\n }, {\n [`& .${chipClasses.icon}`]: styles[`icon${capitalize(size)}`]\n }, {\n [`& .${chipClasses.icon}`]: styles[`iconColor${capitalize(iconColor)}`]\n }, {\n [`& .${chipClasses.deleteIcon}`]: styles.deleteIcon\n }, {\n [`& .${chipClasses.deleteIcon}`]: styles[`deleteIcon${capitalize(size)}`]\n }, {\n [`& .${chipClasses.deleteIcon}`]: styles[`deleteIconColor${capitalize(color)}`]\n }, {\n [`& .${chipClasses.deleteIcon}`]: styles[`deleteIcon${capitalize(variant)}Color${capitalize(color)}`]\n }, styles.root, styles[`size${capitalize(size)}`], styles[`color${capitalize(color)}`], clickable && styles.clickable, clickable && color !== 'default' && styles[`clickableColor${capitalize(color)})`], onDelete && styles.deletable, onDelete && color !== 'default' && styles[`deletableColor${capitalize(color)}`], styles[variant], styles[`${variant}${capitalize(color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n const textColor = theme.palette.mode === 'light' ? theme.palette.grey[700] : theme.palette.grey[300];\n return _extends({\n maxWidth: '100%',\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.pxToRem(13),\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 32,\n color: (theme.vars || theme).palette.text.primary,\n backgroundColor: (theme.vars || theme).palette.action.selected,\n borderRadius: 32 / 2,\n whiteSpace: 'nowrap',\n transition: theme.transitions.create(['background-color', 'box-shadow']),\n // reset cursor explicitly in case ButtonBase is used\n cursor: 'unset',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n textDecoration: 'none',\n border: 0,\n // Remove `button` border\n padding: 0,\n // Remove `button` padding\n verticalAlign: 'middle',\n boxSizing: 'border-box',\n [`&.${chipClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity,\n pointerEvents: 'none'\n },\n [`& .${chipClasses.avatar}`]: {\n marginLeft: 5,\n marginRight: -6,\n width: 24,\n height: 24,\n color: theme.vars ? theme.vars.palette.Chip.defaultAvatarColor : textColor,\n fontSize: theme.typography.pxToRem(12)\n },\n [`& .${chipClasses.avatarColorPrimary}`]: {\n color: (theme.vars || theme).palette.primary.contrastText,\n backgroundColor: (theme.vars || theme).palette.primary.dark\n },\n [`& .${chipClasses.avatarColorSecondary}`]: {\n color: (theme.vars || theme).palette.secondary.contrastText,\n backgroundColor: (theme.vars || theme).palette.secondary.dark\n },\n [`& .${chipClasses.avatarSmall}`]: {\n marginLeft: 4,\n marginRight: -4,\n width: 18,\n height: 18,\n fontSize: theme.typography.pxToRem(10)\n },\n [`& .${chipClasses.icon}`]: _extends({\n marginLeft: 5,\n marginRight: -6\n }, ownerState.size === 'small' && {\n fontSize: 18,\n marginLeft: 4,\n marginRight: -4\n }, ownerState.iconColor === ownerState.color && _extends({\n color: theme.vars ? theme.vars.palette.Chip.defaultIconColor : textColor\n }, ownerState.color !== 'default' && {\n color: 'inherit'\n })),\n [`& .${chipClasses.deleteIcon}`]: _extends({\n WebkitTapHighlightColor: 'transparent',\n color: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / 0.26)` : alpha(theme.palette.text.primary, 0.26),\n fontSize: 22,\n cursor: 'pointer',\n margin: '0 5px 0 -6px',\n '&:hover': {\n color: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / 0.4)` : alpha(theme.palette.text.primary, 0.4)\n }\n }, ownerState.size === 'small' && {\n fontSize: 16,\n marginRight: 4,\n marginLeft: -4\n }, ownerState.color !== 'default' && {\n color: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].contrastTextChannel} / 0.7)` : alpha(theme.palette[ownerState.color].contrastText, 0.7),\n '&:hover, &:active': {\n color: (theme.vars || theme).palette[ownerState.color].contrastText\n }\n })\n }, ownerState.size === 'small' && {\n height: 24\n }, ownerState.color !== 'default' && {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].main,\n color: (theme.vars || theme).palette[ownerState.color].contrastText\n }, ownerState.onDelete && {\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n }, ownerState.onDelete && ownerState.color !== 'default' && {\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].dark\n }\n });\n}, ({\n theme,\n ownerState\n}) => _extends({}, ownerState.clickable && {\n userSelect: 'none',\n WebkitTapHighlightColor: 'transparent',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity)\n },\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n },\n '&:active': {\n boxShadow: (theme.vars || theme).shadows[1]\n }\n}, ownerState.clickable && ownerState.color !== 'default' && {\n [`&:hover, &.${chipClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].dark\n }\n}), ({\n theme,\n ownerState\n}) => _extends({}, ownerState.variant === 'outlined' && {\n backgroundColor: 'transparent',\n border: theme.vars ? `1px solid ${theme.vars.palette.Chip.defaultBorder}` : `1px solid ${theme.palette.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[700]}`,\n [`&.${chipClasses.clickable}:hover`]: {\n backgroundColor: (theme.vars || theme).palette.action.hover\n },\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n [`& .${chipClasses.avatar}`]: {\n marginLeft: 4\n },\n [`& .${chipClasses.avatarSmall}`]: {\n marginLeft: 2\n },\n [`& .${chipClasses.icon}`]: {\n marginLeft: 4\n },\n [`& .${chipClasses.iconSmall}`]: {\n marginLeft: 2\n },\n [`& .${chipClasses.deleteIcon}`]: {\n marginRight: 5\n },\n [`& .${chipClasses.deleteIconSmall}`]: {\n marginRight: 3\n }\n}, ownerState.variant === 'outlined' && ownerState.color !== 'default' && {\n color: (theme.vars || theme).palette[ownerState.color].main,\n border: `1px solid ${theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / 0.7)` : alpha(theme.palette[ownerState.color].main, 0.7)}`,\n [`&.${chipClasses.clickable}:hover`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity)\n },\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.focusOpacity})` : alpha(theme.palette[ownerState.color].main, theme.palette.action.focusOpacity)\n },\n [`& .${chipClasses.deleteIcon}`]: {\n color: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / 0.7)` : alpha(theme.palette[ownerState.color].main, 0.7),\n '&:hover, &:active': {\n color: (theme.vars || theme).palette[ownerState.color].main\n }\n }\n}));\nconst ChipLabel = styled('span', {\n name: 'MuiChip',\n slot: 'Label',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n size\n } = ownerState;\n return [styles.label, styles[`label${capitalize(size)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n paddingLeft: 12,\n paddingRight: 12,\n whiteSpace: 'nowrap'\n}, ownerState.variant === 'outlined' && {\n paddingLeft: 11,\n paddingRight: 11\n}, ownerState.size === 'small' && {\n paddingLeft: 8,\n paddingRight: 8\n}, ownerState.size === 'small' && ownerState.variant === 'outlined' && {\n paddingLeft: 7,\n paddingRight: 7\n}));\nfunction isDeleteKeyboardEvent(keyboardEvent) {\n return keyboardEvent.key === 'Backspace' || keyboardEvent.key === 'Delete';\n}\n\n/**\n * Chips represent complex entities in small blocks, such as a contact.\n */\nconst Chip = /*#__PURE__*/React.forwardRef(function Chip(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiChip'\n });\n const {\n avatar: avatarProp,\n className,\n clickable: clickableProp,\n color = 'default',\n component: ComponentProp,\n deleteIcon: deleteIconProp,\n disabled = false,\n icon: iconProp,\n label,\n onClick,\n onDelete,\n onKeyDown,\n onKeyUp,\n size = 'medium',\n variant = 'filled',\n tabIndex,\n skipFocusWhenDisabled = false // TODO v6: Rename to `focusableWhenDisabled`.\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const chipRef = React.useRef(null);\n const handleRef = useForkRef(chipRef, ref);\n const handleDeleteIconClick = event => {\n // Stop the event from bubbling up to the `Chip`\n event.stopPropagation();\n if (onDelete) {\n onDelete(event);\n }\n };\n const handleKeyDown = event => {\n // Ignore events from children of `Chip`.\n if (event.currentTarget === event.target && isDeleteKeyboardEvent(event)) {\n // Will be handled in keyUp, otherwise some browsers\n // might init navigation\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n const handleKeyUp = event => {\n // Ignore events from children of `Chip`.\n if (event.currentTarget === event.target) {\n if (onDelete && isDeleteKeyboardEvent(event)) {\n onDelete(event);\n } else if (event.key === 'Escape' && chipRef.current) {\n chipRef.current.blur();\n }\n }\n if (onKeyUp) {\n onKeyUp(event);\n }\n };\n const clickable = clickableProp !== false && onClick ? true : clickableProp;\n const component = clickable || onDelete ? ButtonBase : ComponentProp || 'div';\n const ownerState = _extends({}, props, {\n component,\n disabled,\n size,\n color,\n iconColor: /*#__PURE__*/React.isValidElement(iconProp) ? iconProp.props.color || color : color,\n onDelete: !!onDelete,\n clickable,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const moreProps = component === ButtonBase ? _extends({\n component: ComponentProp || 'div',\n focusVisibleClassName: classes.focusVisible\n }, onDelete && {\n disableRipple: true\n }) : {};\n let deleteIcon = null;\n if (onDelete) {\n deleteIcon = deleteIconProp && /*#__PURE__*/React.isValidElement(deleteIconProp) ? ( /*#__PURE__*/React.cloneElement(deleteIconProp, {\n className: clsx(deleteIconProp.props.className, classes.deleteIcon),\n onClick: handleDeleteIconClick\n })) : /*#__PURE__*/_jsx(CancelIcon, {\n className: clsx(classes.deleteIcon),\n onClick: handleDeleteIconClick\n });\n }\n let avatar = null;\n if (avatarProp && /*#__PURE__*/React.isValidElement(avatarProp)) {\n avatar = /*#__PURE__*/React.cloneElement(avatarProp, {\n className: clsx(classes.avatar, avatarProp.props.className)\n });\n }\n let icon = null;\n if (iconProp && /*#__PURE__*/React.isValidElement(iconProp)) {\n icon = /*#__PURE__*/React.cloneElement(iconProp, {\n className: clsx(classes.icon, iconProp.props.className)\n });\n }\n if (process.env.NODE_ENV !== 'production') {\n if (avatar && icon) {\n console.error('MUI: The Chip component can not handle the avatar ' + 'and the icon prop at the same time. Pick one.');\n }\n }\n return /*#__PURE__*/_jsxs(ChipRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n disabled: clickable && disabled ? true : undefined,\n onClick: onClick,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n ref: handleRef,\n tabIndex: skipFocusWhenDisabled && disabled ? -1 : tabIndex,\n ownerState: ownerState\n }, moreProps, other, {\n children: [avatar || icon, /*#__PURE__*/_jsx(ChipLabel, {\n className: clsx(classes.label),\n ownerState: ownerState,\n children: label\n }), deleteIcon]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Chip.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The Avatar element to display.\n */\n avatar: PropTypes.element,\n /**\n * This prop isn't supported.\n * Use the `component` prop if you need to change the children structure.\n */\n children: unsupportedProp,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the chip will appear clickable, and will raise when pressed,\n * even if the onClick prop is not defined.\n * If `false`, the chip will not appear clickable, even if onClick prop is defined.\n * This can be used, for example,\n * along with the component prop to indicate an anchor Chip is clickable.\n * Note: this controls the UI and does not affect the onClick event.\n */\n clickable: PropTypes.bool,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'default'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Override the default delete icon element. Shown only if `onDelete` is set.\n */\n deleteIcon: PropTypes.element,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * Icon element.\n */\n icon: PropTypes.element,\n /**\n * The content of the component.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * Callback fired when the delete icon is clicked.\n * If set, the delete icon will be shown.\n */\n onDelete: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * If `true`, allows the disabled chip to escape focus.\n * If `false`, allows the disabled chip to receive focus.\n * @default false\n */\n skipFocusWhenDisabled: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * @ignore\n */\n tabIndex: PropTypes.number,\n /**\n * The variant to use.\n * @default 'filled'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['filled', 'outlined']), PropTypes.string])\n} : void 0;\nexport default Chip;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}), 'Person');","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAvatarUtilityClass(slot) {\n return generateUtilityClass('MuiAvatar', slot);\n}\nconst avatarClasses = generateUtilityClasses('MuiAvatar', ['root', 'colorDefault', 'circular', 'rounded', 'square', 'img', 'fallback']);\nexport default avatarClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"elementType\", \"ownerState\", \"externalForwardedProps\", \"getSlotOwnerState\", \"internalForwardedProps\"],\n _excluded2 = [\"component\", \"slots\", \"slotProps\"],\n _excluded3 = [\"component\"];\nimport useForkRef from '@mui/utils/useForkRef';\nimport appendOwnerState from '@mui/utils/appendOwnerState';\nimport resolveComponentProps from '@mui/utils/resolveComponentProps';\nimport mergeSlotProps from '@mui/utils/mergeSlotProps';\n/**\n * An internal function to create a Material UI slot.\n *\n * This is an advanced version of Base UI `useSlotProps` because Material UI allows leaf component to be customized via `component` prop\n * while Base UI does not need to support leaf component customization.\n *\n * @param {string} name: name of the slot\n * @param {object} parameters\n * @returns {[Slot, slotProps]} The slot's React component and the slot's props\n *\n * Note: the returned slot's props\n * - will never contain `component` prop.\n * - might contain `as` prop.\n */\nexport default function useSlot(\n/**\n * The slot's name. All Material UI components should have `root` slot.\n *\n * If the name is `root`, the logic behaves differently from other slots,\n * e.g. the `externalForwardedProps` are spread to `root` slot but not other slots.\n */\nname, parameters) {\n const {\n className,\n elementType: initialElementType,\n ownerState,\n externalForwardedProps,\n getSlotOwnerState,\n internalForwardedProps\n } = parameters,\n useSlotPropsParams = _objectWithoutPropertiesLoose(parameters, _excluded);\n const {\n component: rootComponent,\n slots = {\n [name]: undefined\n },\n slotProps = {\n [name]: undefined\n }\n } = externalForwardedProps,\n other = _objectWithoutPropertiesLoose(externalForwardedProps, _excluded2);\n const elementType = slots[name] || initialElementType;\n\n // `slotProps[name]` can be a callback that receives the component's ownerState.\n // `resolvedComponentsProps` is always a plain object.\n const resolvedComponentsProps = resolveComponentProps(slotProps[name], ownerState);\n const _mergeSlotProps = mergeSlotProps(_extends({\n className\n }, useSlotPropsParams, {\n externalForwardedProps: name === 'root' ? other : undefined,\n externalSlotProps: resolvedComponentsProps\n })),\n {\n props: {\n component: slotComponent\n },\n internalRef\n } = _mergeSlotProps,\n mergedProps = _objectWithoutPropertiesLoose(_mergeSlotProps.props, _excluded3);\n const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, parameters.ref);\n const slotOwnerState = getSlotOwnerState ? getSlotOwnerState(mergedProps) : {};\n const finalOwnerState = _extends({}, ownerState, slotOwnerState);\n const LeafComponent = name === 'root' ? slotComponent || rootComponent : slotComponent;\n const props = appendOwnerState(elementType, _extends({}, name === 'root' && !rootComponent && !slots[name] && internalForwardedProps, name !== 'root' && !slots[name] && internalForwardedProps, mergedProps, LeafComponent && {\n as: LeafComponent\n }, {\n ref\n }), finalOwnerState);\n Object.keys(slotOwnerState).forEach(propName => {\n delete props[propName];\n });\n return [elementType, props];\n}","/**\n * If `componentProps` is a function, calls it with the provided `ownerState`.\n * Otherwise, just returns `componentProps`.\n */\nfunction resolveComponentProps(componentProps, ownerState, slotState) {\n if (typeof componentProps === 'function') {\n return componentProps(ownerState, slotState);\n }\n return componentProps;\n}\nexport default resolveComponentProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport isHostComponent from '../isHostComponent';\n\n/**\n * Type of the ownerState based on the type of an element it applies to.\n * This resolves to the provided OwnerState for React components and `undefined` for host components.\n * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.\n */\n\n/**\n * Appends the ownerState object to the props, merging with the existing one if necessary.\n *\n * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.\n * @param otherProps Props of the element.\n * @param ownerState\n */\nfunction appendOwnerState(elementType, otherProps, ownerState) {\n if (elementType === undefined || isHostComponent(elementType)) {\n return otherProps;\n }\n return _extends({}, otherProps, {\n ownerState: _extends({}, otherProps.ownerState, ownerState)\n });\n}\nexport default appendOwnerState;","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nfunction isHostComponent(element) {\n return typeof element === 'string';\n}\nexport default isHostComponent;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"alt\", \"children\", \"className\", \"component\", \"slots\", \"slotProps\", \"imgProps\", \"sizes\", \"src\", \"srcSet\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from '../zero-styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport Person from '../internal/svg-icons/Person';\nimport { getAvatarUtilityClass } from './avatarClasses';\nimport useSlot from '../utils/useSlot';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n colorDefault\n } = ownerState;\n const slots = {\n root: ['root', variant, colorDefault && 'colorDefault'],\n img: ['img'],\n fallback: ['fallback']\n };\n return composeClasses(slots, getAvatarUtilityClass, classes);\n};\nconst AvatarRoot = styled('div', {\n name: 'MuiAvatar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], ownerState.colorDefault && styles.colorDefault];\n }\n})(({\n theme\n}) => ({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n width: 40,\n height: 40,\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.pxToRem(20),\n lineHeight: 1,\n borderRadius: '50%',\n overflow: 'hidden',\n userSelect: 'none',\n variants: [{\n props: {\n variant: 'rounded'\n },\n style: {\n borderRadius: (theme.vars || theme).shape.borderRadius\n }\n }, {\n props: {\n variant: 'square'\n },\n style: {\n borderRadius: 0\n }\n }, {\n props: {\n colorDefault: true\n },\n style: _extends({\n color: (theme.vars || theme).palette.background.default\n }, theme.vars ? {\n backgroundColor: theme.vars.palette.Avatar.defaultBg\n } : _extends({\n backgroundColor: theme.palette.grey[400]\n }, theme.applyStyles('dark', {\n backgroundColor: theme.palette.grey[600]\n })))\n }]\n}));\nconst AvatarImg = styled('img', {\n name: 'MuiAvatar',\n slot: 'Img',\n overridesResolver: (props, styles) => styles.img\n})({\n width: '100%',\n height: '100%',\n textAlign: 'center',\n // Handle non-square image. The property isn't supported by IE11.\n objectFit: 'cover',\n // Hide alt text.\n color: 'transparent',\n // Hide the image broken icon, only works on Chrome.\n textIndent: 10000\n});\nconst AvatarFallback = styled(Person, {\n name: 'MuiAvatar',\n slot: 'Fallback',\n overridesResolver: (props, styles) => styles.fallback\n})({\n width: '75%',\n height: '75%'\n});\nfunction useLoaded({\n crossOrigin,\n referrerPolicy,\n src,\n srcSet\n}) {\n const [loaded, setLoaded] = React.useState(false);\n React.useEffect(() => {\n if (!src && !srcSet) {\n return undefined;\n }\n setLoaded(false);\n let active = true;\n const image = new Image();\n image.onload = () => {\n if (!active) {\n return;\n }\n setLoaded('loaded');\n };\n image.onerror = () => {\n if (!active) {\n return;\n }\n setLoaded('error');\n };\n image.crossOrigin = crossOrigin;\n image.referrerPolicy = referrerPolicy;\n image.src = src;\n if (srcSet) {\n image.srcset = srcSet;\n }\n return () => {\n active = false;\n };\n }, [crossOrigin, referrerPolicy, src, srcSet]);\n return loaded;\n}\nconst Avatar = /*#__PURE__*/React.forwardRef(function Avatar(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAvatar'\n });\n const {\n alt,\n children: childrenProp,\n className,\n component = 'div',\n slots = {},\n slotProps = {},\n imgProps,\n sizes,\n src,\n srcSet,\n variant = 'circular'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n let children = null;\n\n // Use a hook instead of onError on the img element to support server-side rendering.\n const loaded = useLoaded(_extends({}, imgProps, {\n src,\n srcSet\n }));\n const hasImg = src || srcSet;\n const hasImgNotFailing = hasImg && loaded !== 'error';\n const ownerState = _extends({}, props, {\n colorDefault: !hasImgNotFailing,\n component,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const [ImgSlot, imgSlotProps] = useSlot('img', {\n className: classes.img,\n elementType: AvatarImg,\n externalForwardedProps: {\n slots,\n slotProps: {\n img: _extends({}, imgProps, slotProps.img)\n }\n },\n additionalProps: {\n alt,\n src,\n srcSet,\n sizes\n },\n ownerState\n });\n if (hasImgNotFailing) {\n children = /*#__PURE__*/_jsx(ImgSlot, _extends({}, imgSlotProps));\n // We only render valid children, non valid children are rendered with a fallback\n // We consider that invalid children are all falsy values, except 0, which is valid.\n } else if (!!childrenProp || childrenProp === 0) {\n children = childrenProp;\n } else if (hasImg && alt) {\n children = alt[0];\n } else {\n children = /*#__PURE__*/_jsx(AvatarFallback, {\n ownerState: ownerState,\n className: classes.fallback\n });\n }\n return /*#__PURE__*/_jsx(AvatarRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Avatar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Used in combination with `src` or `srcSet` to\n * provide an alt attribute for the rendered `img` element.\n */\n alt: PropTypes.string,\n /**\n * Used to render icon or text elements inside the Avatar if `src` is not set.\n * This can be an element, or just a string.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attributes) applied to the `img` element if the component is used to display an image.\n * It can be used to listen for the loading error event.\n * @deprecated Use `slotProps.img` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).\n */\n imgProps: PropTypes.object,\n /**\n * The `sizes` attribute for the `img` element.\n */\n sizes: PropTypes.string,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n img: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n img: PropTypes.elementType\n }),\n /**\n * The `src` attribute for the `img` element.\n */\n src: PropTypes.string,\n /**\n * The `srcSet` attribute for the `img` element.\n * Use this attribute for responsive image display.\n */\n srcSet: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The shape of the avatar.\n * @default 'circular'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['circular', 'rounded', 'square']), PropTypes.string])\n} : void 0;\nexport default Avatar;",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n",null,null,null],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__spreadArray","to","from","pack","ar","l","Array","slice","concat","SuppressedError","process","env","NODE_ENV","getComponentNameFromType","$$typeof","REACT_CLIENT_REFERENCE","displayName","name","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","tag","console","error","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","_context","REACT_FORWARD_REF_TYPE","innerType","render","REACT_MEMO_TYPE","REACT_LAZY_TYPE","_payload","_init","x","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","Symbol","toStringTag","constructor","getTaskName","UnknownOwner","Error","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","props","jsxDEVImpl","config","maybeKey","isStaticChildren","source","self","debugStack","debugTask","dispatcher","children","isArrayImpl","validateChildKeys","freeze","keys","filter","k","join","didWarnAboutKeySpread","getter","getOwnPropertyDescriptor","get","isReactWarning","key","hasValidKey","propName","warnAboutAccessingKey","specialPropKeyWarningShown","defineProperty","configurable","defineKeyPropWarningGetter","owner","REACT_ELEMENT_TYPE","_owner","enumerable","_store","writable","ReactElement","ReactSharedInternals","A","getOwner","node","validated","React","require$$0","for","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","isArray","createTask","unknownOwnerDebugStack","callStackForError","bind","unknownOwnerDebugTask","reactJsxRuntime_development","Fragment","jsx","trackActualOwner","recentlyCreatedOwnerStacks","jsxs","jsxRuntimeModule","exports","jsxProd","reactJsxRuntime_production","require$$1","isObject","o","toString","isPlainObject","ctor","prot","undefined","r","Y","map","Q","getPrototypeOf","Function","Z","L","v","nn","forEach","u","has","f","set","add","X","Map","q","Set","rn","create","d","y","clear","delete","h","isFrozen","b","tn","_","U","j","g","O","S","w","m","P","M","H","I","a","N","c","R","D","z","E","F","T","C","en","on","Proxy","revocable","revoke","proxy","J","push","K","G","W","B","Reflect","ownKeys","getOwnPropertyNames","getOwnPropertyDescriptors","Number","isNaN","deleteProperty","setPrototypeOf","parseInt","un","produce","Promise","then","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","path","op","$","an","fn","ln","dn","PathRef","transform","current","affinity","Path","unref","PointRef","point","Point","RangeRef","Range","DIRTY_PATHS","WeakMap","DIRTY_PATH_KEYS","FLUSHING","NORMALIZING","PATH_REFS","POINT_REFS","RANGE_REFS","ancestors","options","reverse","paths","levels","common","another","av","compare","min","Math","endsAfter","as","bs","bv","equals","endsAt","endsBefore","every","hasPrevious","isAfter","isAncestor","isBefore","isChild","isCommon","isDescendant","isParent","isPath","isSibling","list","next","last","operationCanTransformPath","operation","parent","previous","relative","ancestor","_op","_op2","position","_op3","_position","_op4","newPath","onp","copy","_defineProperty","obj","ownKeys$e","object","enumerableOnly","symbols","sym","_objectSpread$e","target","defineProperties","GeneralTransforms","editor","selection","Node","index","splice","points","_path","offset","text","_node","leaf","before","after","_point","_key","_path2","_node2","prevPath","prev","_parent","_index","Text","isText","Scrubber","stringify","_point2","_key2","_path3","_node3","_parent2","_index2","truePath","newParent","newIndex","_point3","_key3","_path4","_index3","_point4","_key4","result","_prev","texts","preferNext","_path5","_offset","_text","_node4","_before","_after","_point5","_key5","_path6","properties","newProperties","_node5","_key6","_key7","_newProperties","isRange","_key8","_value","_path7","_properties","newNode","_node6","_parent4","_index4","_before2","_after2","_before3","_after3","_point6","_key9","applyToDraft","isDraft","NodeTransforms","insertNodes","nodes","liftNodes","mergeNodes","moveNodes","removeNodes","setNodes","splitNodes","unsetNodes","unwrapNodes","wrapNodes","element","SelectionTransforms","collapse","deselect","move","select","setPoint","setSelection","isDeepEqual","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_excluded$4","ownKeys$d","edges","range","anchor","focus","isBackward","end","includes","rs","re","ts","te","start","isAfterStart","isBeforeEnd","isPoint","intersection","rest","s1","e1","s2","e2","_objectSpread$d","isCollapsed","isExpanded","isForward","affinityAnchor","affinityFocus","isElement","isNodeList","Editor","isEditor","Element","isElementList","val","isElementProps","isElementType","elementVal","elementKey","matches","_excluded$3","_excluded2$3","IS_NODE_LIST_CACHE","root","entry","child","childPath","descendant","descendants","elements","extractProps","first","fragment","newRoot","nodeEntries","pass","_ref","_leaf","isNode","cachedResult","isTextProps","visited","nextIndex","parentPath","string","ownKeys$c","_objectSpread$c","Operation","isNodeOperation","isOperation","endsWith","isOperationList","isSelectionOperation","isTextOperation","inverse","inversePath","inverseNewPath","IS_EDITOR_CACHE","above","addMark","at","deleteBackward","unit","deleteForward","deleteFragment","elementReadOnly","hasBlocks","hasInlines","hasPath","hasTexts","insertBreak","insertFragment","insertNode","insertSoftBreak","insertText","isBlock","isEdge","cachedIsEditor","isElementReadOnly","isInline","isSelectable","isVoid","normalizeNode","onChange","removeMark","getDirtyPaths","marks","operations","isEmpty","isEnd","isNormalizing","isStart","getMarks","normalize","pathRef","pathRefs","pointRef","pointRefs","positions","rangeRef","rangeRefs","setNormalizing","unhangRange","void","withoutNormalizing","Span","isSpan","ownKeys$b","_objectSpread$b","_scrubber","setScrubber","scrubber","JSON","_excluded$2","_excluded2$2","ownKeys$a","_objectSpread$a","CodepointType","loose","omitText","isTextList","decorations","leaves","dec","leafEnd","decorationStart","decorationEnd","leafStart","middle","off","_off","getDefaultInsertLocation","matchPath","getCharacterDistance","str","isRTL","isLTR","codepoints","codepointsIteratorRTL","left","None","right","distance","gb12Or13","char","code","codePointAt","getCodepointType","intersects","ZWJ","ExtPict","endsWithEmojiZWJ","substring","RI","endsWithOddNumberOfRIs","isBoundaryPair","SPACE","PUNCTUATION","CHAMELEON","splitByCharacterDistance","dist","isWordCharacter","remaining","test","charDist","nextChar","nextRemaining","char1","charAt","isLowSurrogate","charCodeAt","char2","isHighSurrogate","charCode","reExtend","rePrepend","reSpacingMark","reL","reV","reT","reLV","reLVT","reExtPict","Any","search","Extend","Prepend","SpacingMark","V","LV","LVT","NonBoundaryPairs","findIndex","endingEmojiZWJ","endingRIs","match","TextTransforms","voids","startRef","endRef","Transforms","startPoint","endPoint","ownKeys$9","_objectSpread$9","ownKeys$8","_objectSpread$8","ownKeys$7","_objectSpread$7","ownKeys$6","_objectSpread$6","ownKeys$5","_objectSpread$5","ownKeys$4","_objectSpread$4","ownKeys$3","_objectSpread$3","_excluded$1","_excluded2$1","force","popDirtyPath","pop","getDirtyPathKeys","allPaths","allPathKeys","dirtyPath","dirtyPaths","initialDirtyPathsLength","iteration","shouldNormalize","_dirtyPath","_entry","ignoreNonSelectable","isNewBlock","blockText","leafTextRemaining","leafTextOffset","isFirst","calcDistance","started","getWordDistance","ownKeys$2","parentNode","markableVoid","expandedSelection","markAcceptingVoidSelected","selectedNode","selectedPath","split","_objectSpread$2","ownKeys$1","_objectSpread$1","_excluded","_excluded2","hasSingleChildNest","mode","height","always","deleteRange","afterRef","beforeRef","highest","voidMatch","voidNode","voidPath","afterPath","depth","highestPath","lowestPath","_afterRef","_objectSpread","createEditor","_len","args","_ref2","dirtyPathKeys","oldDirtyPaths","oldDirtyPathKeys","newDirtyPaths","resolve","_len2","_len3","_len4","_len5","direction","getFragment","_len6","_len7","_len8","_len9","hanging","inlineElementMatch","_inlinePath","blockMatch","blockPath","isBlockStart","isBlockEnd","isBlockEmpty","mergeStart","mergeEnd","firstPath","lastPath","matcher","starts","middles","ends","starting","inlineMatch","inlinePath","isInlineStart","isInlineEnd","middleRef","_end","_len10","_key10","_len11","_key11","_len12","_key12","shouldHaveInlines","currentNode","_child","isLast","_len13","_key13","_len14","_key14","oldAncestors","newAncestors","_ancestor","_p","resultPath","_len15","_key15","maxIterations","_len16","_key16","_len17","_key17","edge","_len18","_key18","_len19","_key19","_len20","_key20","_Editor$void","_Editor$void2","furthestVoid","opts","endOfDoc","startBlock","endBlock","isAcrossBlocks","isSingleText","startNonEditable","endNonEditable","removedText","startUnref","endUnref","deleteText","_len21","_key21","_len22","_key22","_len23","_key23","_len24","_key24","_len25","_key25","_len26","_key26","_len27","_key27","markedVoid","block","prevNode","_len28","_key28","some","_len29","_key29","_len30","_key30","_len31","_key31","_len32","_key32","isAtEnd","_len33","_key33","_len34","_key34","_len35","_key35","_len36","_key36","_len37","_key37","_len38","_key38","_len39","_key39","_len40","_key40","_len41","_key41","_len42","_key42","parentNodeEntry","toPath","_toPath","splitPath","_toPath2","_len43","_key43","commonPath","isPreviousSibling","emptyAncestor","emptyRef","_len44","_key44","_len45","_key45","toRef","targets","_len46","_key46","pointAfterLocation","span","_len47","_key47","_len48","_key48","universal","hit","isLower","emit","_len49","_key49","_len50","_key50","_len51","_key51","_len52","_key52","_len53","_key53","refs","_len54","_key54","_len55","_key55","_len56","_key56","_len57","_key57","_len58","_key58","pointBeforeLocation","_len59","_key59","_len60","_key60","_len61","_key61","_len62","_key62","depths","_len63","_key63","_len64","_key64","merge","splitMode","endAtEndOfNode","startAtStartOfNode","prop","nodeProp","hasChanges","_len65","_key65","_len66","_key66","_len67","_key67","oldProps","newProps","_len68","_key68","_len69","_key69","_len70","_key70","_len71","_key71","skip","_len72","_key72","_len73","_key73","_loop","_len74","_key74","getVoid","_len75","_key75","_len76","_key76","roots","rootPath","_ret","commonNodeEntry","commonNode","wrapperPath","wrapper","direction_1","String","rtl","ltr","RTL","LTR","RegExp","isObject_1","freeGlobal","global","_freeGlobal","freeSelf","_root","trimmedEndIndex","reWhitespace","_trimmedEndIndex","reTrimStart","_baseTrim","replace","_Symbol","getRawTag","objectProto","nativeObjectToString","symToStringTag","_getRawTag","isOwn","unmasked","objectToString","_objectToString","require$$2","_baseGetTag","baseGetTag","isObjectLike","isObjectLike_1","isSymbol_1","now","now_1","Date","toNumber","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber_1","other","valueOf","isBinary","nativeMax","max","nativeMin","debounce_1","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","clearTimeout","cancel","flush","debounce","throttle_1","nodeType","clientHeight","scrollHeight","clientWidth","scrollWidth","getComputedStyle","overflowY","overflowX","ownerDocument","defaultView","frameElement","window","scrollMode","inline","boundary","skipOverflowHiddenElements","scrollingElement","documentElement","parentElement","getRootNode","host","body","visualViewport","width","innerWidth","innerHeight","scrollX","pageXOffset","scrollY","pageYOffset","getBoundingClientRect","top","bottom","borderLeftWidth","borderTopWidth","borderRightWidth","borderBottomWidth","offsetWidth","offsetHeight","scrollLeft","scrollTop","el","isOptionsObject","scrollIntoView","isTargetAttached","isConnected","contains","behavior","compute","computeOptions","getOptions","actions","canSmoothScroll","scroll","defaultBehavior","ResizeObserverBoxOptions","resizeObservers","hasActiveObservations","ro","activeTargets","msg","trigger","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","getClientRects","scope","cache","scrollRegexp","verticalRegexp","IE","navigator","userAgent","parseDimension","pixel","parseFloat","size","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","cs","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","canScrollHorizontally","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderRight","borderBottom","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","verticalScrollbarThickness","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","Infinity","broadcastActiveObservations","shallowestDepth","callbacks","entries","ot","targetDepth","lastReportedSize","callback","observer","_i","callbacks_1","gatherActiveObservationsAtDepth","skippedTargets","observationTargets","isActive","event","ErrorEvent","message","createEvent","initEvent","dispatchEvent","queueMicroTask","toggle_1","el_1","MutationObserver","cb","observe","characterData","textContent","watching","observerConfig","attributes","childList","subtree","events","timeout","scheduled","scheduler","Scheduler","_this","stopped","listener","schedule","run","until","elementsHaveResized","requestAnimationFrame","stop","addEventListener","disconnect","removeEventListener","updateCount","ResizeObservation","CONTENT_BOX","tagName","isReplacedElement","display","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","ResizeObserverController","connect","detail","firstObservation","box","unobserve","lastObservation","ResizeObserver","lib","IS_MAC","platform","MODIFIERS","alt","control","meta","shift","ALIASES","break","cmd","command","ctl","ctrl","del","down","esc","ins","mod","opt","option","return","space","spacebar","up","win","windows","CODES","backspace","tab","enter","pause","capslock","escape","pageup","pagedown","home","arrowleft","arrowup","arrowright","arrowdown","insert","numlock","scrolllock","isHotkey","hotkey","array","parseHotkey","check","compareHotkey","byKey","ret","values","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","done","optional","toKeyName","modifier","which","toKeyCode","err","expected","actual","toLowerCase","toUpperCase","default","isCodeHotkey","isKeyHotkey","EditorContext","createContext","useSlateStatic","useContext","REACT_MAJOR_VERSION","version","IS_IOS","MSStream","IS_APPLE","IS_ANDROID","IS_FIREFOX","IS_WEBKIT","IS_EDGE_LEGACY","IS_CHROME","IS_CHROME_LEGACY","IS_ANDROID_CHROME_LEGACY","IS_FIREFOX_LEGACY","IS_UC_MOBILE","IS_WECHATBROWSER","CAN_USE_DOM","HAS_BEFORE_INPUT_SUPPORT","globalThis","InputEvent","getTargetRanges","NODE_TO_INDEX","NODE_TO_PARENT","EDITOR_TO_WINDOW","EDITOR_TO_ELEMENT","EDITOR_TO_PLACEHOLDER_ELEMENT","ELEMENT_TO_NODE","NODE_TO_ELEMENT","NODE_TO_KEY","EDITOR_TO_KEY_TO_ELEMENT","IS_READ_ONLY","IS_FOCUSED","IS_COMPOSING","EDITOR_TO_USER_SELECTION","EDITOR_TO_ON_CHANGE","EDITOR_TO_SCHEDULE_FLUSH","EDITOR_TO_PENDING_INSERTION_MARKS","EDITOR_TO_USER_MARKS","EDITOR_TO_PENDING_DIFFS","EDITOR_TO_PENDING_ACTION","EDITOR_TO_PENDING_SELECTION","EDITOR_TO_FORCE_RENDER","PLACEHOLDER_SYMBOL","MARK_PLACEHOLDER_SYMBOL","DOMText","getDefaultView","isDOMComment","isDOMNode","isDOMElement","isDOMSelection","anchorNode","Selection","isDOMText","getEditableChildAndIndex","childNodes","triedForward","triedBackward","getAttribute","getEditableChild","getPlainText","domNode","nodeValue","childNode","getPropertyValue","catchSlateFragment","isTrackedMutation","mutation","batch","ReactEditor","getWindow","hasDOMNode","editable","parentMutation","find","addedNodes","removedNodes","Key","id","androidPendingDiffs","androidScheduleFlush","_EDITOR_TO_SCHEDULE_F","blur","toDOMNode","findDocumentOrShadowRoot","activeElement","domSelection","getSelection","rangeCount","removeAllRanges","Document","ShadowRoot","findEventRange","nativeEvent","clientX","clientY","domRange","toSlateNode","findPath","Element$1","rect","isPrev","caretRangeFromPoint","caretPositionFromPoint","createRange","setStart","offsetNode","setEnd","toSlateRange","exactMatch","suppressThrow","findKey","unshift","preventScroll","targetEl","editorEl","closest","isContentEditable","hasEditableTarget","hasRange","hasSelectableTarget","isTargetInsideNonReadonlyVoid","hasTarget","insertData","data","insertFragmentData","insertTextData","isComposing","isFocused","isReadOnly","slateNode","setFragmentData","originEvent","KEY_TO_ELEMENT","toDOMPoint","domPoint","querySelectorAll","attr","nextText","hasAttribute","_nextText$textContent","domText","startsWith","toDOMRange","domAnchor","domFocus","startNode","startOffset","endNode","endOffset","isStartAtZeroWidth","isEndAtZeroWidth","domEl","toSlatePoint","nearestNode","nearestOffset","normalizeDOMPoint","textNode","_domNode$textContent","_domNode$textContent2","potentialVoidNode","leafNode","contents","cloneContents","textContext","removeChild","leafNodes","_slateNode","querySelector","anchorOffset","focusNode","focusOffset","_anchorNode$textConte","startContainer","firstRange","getRangeAt","lastRange","HTMLTableRowElement","getLastChildren","childElementCount","firstNodeRow","lastNodeRow","firstNode","lastNode","HTMLElement","innerHTML","endContainer","hasShadowRoot","collapsed","verifyDiffState","textDiff","diff","Text$1","nextPath","nextNode","applyStringDiff","diffs","reduce","normalizeStringDiff","targetText","prefixLength","longestCommonPrefixLength","suffixLength","longestCommonSuffixLength","normalized","targetRange","normalizePoint","parentBlock","normalizeRange","transformPendingPoint","pendingDiffs","_anchor","_transformed","transformed","transformPendingRange","createAndroidInputManager","scheduleOnDOMSelectionChange","onDOMSelectionChange","flushing","compositionEndTimeoutId","flushTimeoutId","actionTimeoutId","idCounter","insertPositionHint","applyPendingSelection","pendingSelection","hasPendingDiffs","hasPendingAction","selectionRef","scheduleSelectionChange","_EDITOR_TO_PENDING_DI","_EDITOR_TO_PENDING_DI2","pendingMarks","action","_targetRange","performAction","userMarks","updatePlaceholderVisibility","forceHide","placeholderElement","removeProperty","storeDiff","_EDITOR_TO_PENDING_DI3","idx","change","merged","overlap","applied","sliceEnd","mergeStringDiffs","scheduleAction","_EDITOR_TO_PENDING_DI4","handleUserSelect","pathChanged","parentPathChanged","scheduleFlush","hasPendingChanges","isFlushing","handleCompositionEnd","_event","handleCompositionStart","handleDOMBeforeInput","_targetRange2","inputType","dataTransfer","nativeTargetRange","canStoreDiff","_start","relevantPendingDiffs","targetNode","_nativeTargetRange","nativeCollapsed","parts","line","_start2","_end2","_diff","hintPosition","handleKeyDown","handleDomMutations","mutations","_EDITOR_TO_FORCE_REND","handleInput","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","MUTATION_OBSERVER_CONFIG$1","useAndroidInputManager","isMountedRef","isMounted","useRef","inputManager","useState","mutationObserver","takeRecords","useMutationObserver","isDecorationFlagsEqual","obj1","obj2","rangeOwnProps","otherOwnProps","isMarkPlaceholder","ZeroWidthString","TextString","isTrailing","isLineBreak","getTextContent","initialText","textWithTrailing","MemoizedText$1","memo","forwardRef","clearTimeoutRef","timeoutRef","Leaf","renderPlaceholder","renderLeaf","DefaultLeaf","placeholderResizeObserver","placeholderRef","showPlaceholder","setShowPlaceholder","showPlaceholderTimeoutRef","callbackPlaceholderRef","useCallback","placeholderEl","releaseObserver","disconnectPlaceholderResizeObserver","_leaf$onPlaceholderRe","onPlaceholderResize","ResizeObserver$1","_leaf$onPlaceholderRe2","leafIsPlaceholder","placeholderProps","placeholder","pointerEvents","maxWidth","opacity","userSelect","textDecoration","WebkitUserModify","contentEditable","MemoizedLeaf","callbackRef","MemoizedText","isTextDecorationsEqual","renderElement","DefaultElement","readOnly","useReadOnly","useChildren","dir","getDirection","Tag","color","outline","MemoizedElement","isElementDecorationsEqual","DecorateContext","SelectedContext","decorate","isLeafBlock","sel","ds","Provider","ReadOnlyContext","SlateContext","useSlate","context","HOTKEYS","bold","compose","moveBackward","moveForward","moveWordBackward","moveWordForward","extendBackward","extendForward","italic","splitBlock","undo","APPLE_HOTKEYS","moveLineBackward","moveLineForward","deleteLineBackward","deleteLineForward","deleteWordBackward","deleteWordForward","extendLineBackward","extendLineForward","redo","transposeCharacter","WINDOWS_HOTKEYS","generic","apple","isGeneric","isApple","isWindows","Hotkeys","isBold","isCompose","isMoveBackward","isMoveForward","isDeleteBackward","isDeleteForward","isDeleteLineBackward","isDeleteLineForward","isDeleteWordBackward","isDeleteWordForward","isExtendBackward","isExtendForward","isExtendLineBackward","isExtendLineForward","isItalic","isMoveLineBackward","isMoveLineForward","isMoveWordBackward","isMoveWordForward","isRedo","isSoftBreak","isSplitBlock","isTransposeCharacter","isUndo","MUTATION_OBSERVER_CONFIG","characterDataOldValue","RestoreDOMComponent","Component","super","manager","_this$mutationObserve","componentDidMount","receivedUserInput","bufferedMutations","registerMutations","trackedMutations","restoreDOM","nextSibling","createRestoreDomManager","getSnapshotBeforeUpdate","_this$mutationObserve2","_this$mutationObserve3","_this$manager2","_this$manager","pendingMutations","componentDidUpdate","_this$manager3","componentWillUnmount","_this$mutationObserve4","contextType","RestoreDOM","Children","Editable","defaultRenderPlaceholder","DefaultPlaceholder","autoFocus","defaultDecorate","onDOMBeforeInput","propsOnDOMBeforeInput","scrollSelectionIntoView","defaultScrollSelectionIntoView","userStyle","disableDefaultStyles","setIsComposing","deferredOperations","placeholderHeight","setPlaceholderHeight","onUserInput","animationFrameIdRef","cancelAnimationFrame","useTrackUserInput","forceRender","useReducer","state","useMemo","isDraggingInternally","isUpdatingSelection","latestElement","hasMarkPlaceholder","androidInputManagerRef","throttle","androidInputManager","anchorNodeSelectable","focusNodeSelectable","_androidInputManagerR","_androidInputManagerR2","setDomSelection","forceChange","hasDomSelection","editorElement","hasDomSelectionInEditor","slateRange","_anchorNode","_anchorNode$parentEle","newDomRange","collapseToEnd","setBaseAndExtent","ensureSelection","timeoutId","animationFrameId","ensureDomSelection","isDOMEventHandled","_EDITOR_TO_USER_SELEC","isCompositionChange","native","_node$parentElement","_window$getComputedSt","_lastText$textContent","lastText","createTreeWalker","NodeFilter","SHOW_TEXT","lastChild","whiteSpace","preventDefault","toRestore","placeHolderResizeHandler","_placeholderEl$getBou","unset","fromEntries","mark","role","spellCheck","autoCorrect","autoCapitalize","zindex","suppressContentEditableWarning","wordWrap","minHeight","onBeforeInput","isEventHandled","_text2","onInput","onBlur","relatedTarget","onClick","_block$","startVoid","endVoid","_range","onCompositionEnd","_androidInputManagerR3","placeholderMarks","onCompositionUpdate","onCompositionStart","_androidInputManagerR4","onCopy","isDOMEventTargetInput","clipboardData","onCut","onDragOver","onDragStart","onDrop","draggedRange","onDragEnd","onFocus","onKeyDown","_androidInputManagerR5","maybeHistoryEditor","_maybeHistoryEditor","onPaste","getData","types","isPlainTextOnlyPaste","leafEl","handler","shouldTreatEventAsHandled","isDefaultPrevented","isPropagationStopped","HTMLInputElement","HTMLTextAreaElement","defaultPrevented","FocusedContext","SlateSelectorContext","refEquality","useSlateSelector","selector","equalityFn","selectedState","getSlate","latestSubscriptionCallbackError","latestSelector","latestSelectedState","stack","checkForUpdates","newSelectedState","unsubscribe","Slate","initialValue","setContext","selectorContext","handleSelectorChange","eventListeners","slateRef","useSelectorContext","onContextChange","prevContext","setIsFocused","isSelectionEqual","doRectsIntersect","compareRect","areRangesSameLine","range1","range2","rect1","rect2","withReact","clipboardFormatKey","parentBlockEntry","parentBlockPath","parentElementRange","currentLineRange","parentRange","parentRangeBoundary","floor","findCurrentLineRange","transformTextDiff","Boolean","pendingAction","getMatches","attach","trim","cloneRange","setEndAfter","zw","isNewline","encoded","btoa","encodeURIComponent","setAttribute","setData","div","htmlData","getSlateFragmentAttribute","decoded","decodeURIComponent","atob","parsed","parse","lines","ReactDOM","unstable_batchedUpdates","twJoin","argument","resolvedValue","toValue","mix","createClassUtils","classMap","theme","prefix","nextPart","validators","prefixedClassGroupEntries","classGroupEntries","_ref4","classDefinition","_ref5","getPrefixedClassGroupEntries","classGroups","classGroupId","processClassesRecursively","createClassMap","conflictingClassGroups","_config$conflictingCl","conflictingClassGroupModifiers","getClassGroupId","className","classParts","getGroupRecursive","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","validator","classGroup","isThemeGetter","_ref3","getPart","currentClassPartObject","pathPart","createLruCache","maxCacheSize","cacheSize","previousCache","update","createSplitModifiers","separator","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","postfixModifierPosition","modifiers","bracketDepth","modifierStart","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","baseClassName","maybePostfixModifierPosition","SPLIT_CLASSES_REGEX","createTailwindMerge","createConfig","configUtils","cacheGet","cacheSet","functionToCall","classList","firstCreateConfig","previousConfig","createConfigCurrent","splitModifiers","createConfigUtils","tailwindMerge","classGroupsInConflict","originalClassName","_splitModifiers","isTailwindClass","variantModifier","sortedModifiers","unsortedModifiers","sort","sortModifiers","modifierId","classId","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","tshirtUnitRegex","lengthUnitRegex","shadowRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isArbitrarySize","isNever","isArbitraryPosition","isArbitraryUrl","isUrl","isArbitraryNumber","isPercent","isInteger","isIntegerOnly","isArbitraryValue","isAny","isTshirtSize","isArbitraryShadow","isShadow","label","testValue","getDefaultConfig","colors","spacing","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","padding","saturate","scale","sepia","skew","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmpty","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumber","getNumberAndArbitrary","aspect","container","columns","float","isolation","overflow","overscroll","visibility","basis","flex","grow","shrink","order","col","row","justify","content","items","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","screen","font","tracking","decoration","indent","align","whitespace","hyphens","bg","repeat","via","rounded","border","divide","ring","shadow","table","caption","transition","duration","ease","delay","animate","rotate","origin","accent","appearance","cursor","caret","resize","snap","touch","pan","fill","stroke","sr","twMerge","Debouncer","async","activeAbortController","AbortController","signal","abort","clsx","cn","inputs","areEqual_autocompleteState","cursorPoint","arr1","arr2","textBeforeCursor","textAfterCursor","History","isHistory","redos","undos","SAVING","MERGING","HistoryEditor","isHistoryEditor","history","isMerging","isSaving","withoutMerging","withoutSaving","shouldMerge","shouldSave","excludedNodeType","defaultShouldSave","useCopilotTextareaEditor","selectionBefore","writeHistory","inverseOps","lastBatch","lastOp","save","withPartialHistory","getTextAroundSelection","wellOrderedSelection","wellOrderedRange","beforeRange","afterRange","extractTextWithNewlines","selectedText","getFullEditorTextWithNewlines","lastBlock","replaceEditorText","newText","clearAutocompletionsFromEditor","log","defaultBaseAutosuggestionsConfig","debounceTime","contextCategories","defaultCopilotContextCategories","disableWhenEmpty","disabled","temporarilyDisableWhenMovingCursorWithoutChangingText","temporarilyDisableNotTrustedEvents","shouldToggleHoveringEditorOnKeyPress","shortcut","isMetaKey","isMacOS","metaKey","ctrlKey","shouldAcceptAutosuggestionOnKeyPress","shouldAcceptAutosuggestionOnTouch","HoveringEditorContext","isDisplayed","setIsDisplayed","HoveringEditorProvider","_jsx","useHoveringEditorContext","StyleSheet","_insertTag","tags","insertionPoint","prepend","isSpeedy","speedy","ctr","nonce","_proto","hydrate","rule","createStyleElement","sheet","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","_tag$parentNode","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","KEYFRAMES","abs","fromCharCode","pattern","replacement","indexof","charat","substr","begin","strlen","sizeof","append","column","character","characters","peek","token","alloc","dealloc","delimit","delimiter","escaping","count","commenter","identifier","compile","rules","rulesets","pseudo","declarations","atrule","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","serialize","output","memoize","arg","identifierWithPointTracking","getRules","toRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","hash","defaultStylisPlugins","combine","createCache","ssrStyles","_insert","stylisPlugins","inserted","nodesToHydrate","attrib","currentSheet","finalizingPlugins","serializer","collection","middleware","serialized","shouldCache","styles","registered","unitlessKeys","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","unitless","handleInterpolation","mergedProps","interpolation","componentSelector","__emotion_styles","keyframes","anim","serializedStyles","asString","interpolated","createStringFromObject","previousCursor","cached","labelPattern","serializeStyles","stringMode","strings","raw","lastIndex","identifierName","len","hashString","getRegisteredStyles","registeredStyles","classNames","rawClassName","registerStyles","isStringTag","insertStyles","insertWithoutScoping","classnames","cls","toAdd","_createEmotion","cx","injectGlobal","animation","ids","createEmotion","active","reversed","Menu","Portal","createPortal","useAutosizeTextArea","textAreaRef","pow","_extends","$e42e1063c40fb3ef$export$b9ecd428b558ff10","originalEventHandler","ourEventHandler","checkForDefaultPrevented","$6ed0406888f73fc4$export$43e446d32b3d21af","$6ed0406888f73fc4$var$setRef","$6ed0406888f73fc4$export$c7b2cbe3552a0d05","$3vqmr$useCallback","$c512c27ab02ef895$var$composeContextScopes","scopes","baseScope","createScope1","scopeHooks","createScope","useScope","scopeName","overrideScopes","nextScopes1","nextScopes","$3bkAK$useMemo","$9f79659886946c16$export$e5c5a5f917a5871c","$dxlwH$useLayoutEffect","$1746a345f3d73bb7$var$useReactId","$2AODx$react","$1746a345f3d73bb7$var$count","$1746a345f3d73bb7$export$f680877a34711e37","deterministicId","setId","$2AODx$useLayoutEffect","reactId","$b1b2314f5f9a1d84$export$25bec8c6f54ee79a","$lwiWj$useRef","$lwiWj$useEffect","$lwiWj$useMemo","_callbackRef$current","$71cd76cc60e0454e$export$6f32135080cb4c3","defaultProp","uncontrolledProp","setUncontrolledProp","uncontrolledState","$bnPw9$useState","prevValueRef","$bnPw9$useRef","handleChange","$bnPw9$useCallbackRef","$bnPw9$useEffect","$71cd76cc60e0454e$var$useUncontrolledState","isControlled","value1","$bnPw9$useCallback","nextValue","$5e63c961fc1ce211$export$8c6ed5c666ac1360","$9IrjX$forwardRef","forwardedRef","slotProps","childrenArray","$9IrjX$Children","toArray","slottable","$5e63c961fc1ce211$var$isSlottable","newElement","newChildren","only","$9IrjX$isValidElement","$9IrjX$createElement","$5e63c961fc1ce211$var$SlotClone","$9IrjX$babelruntimehelpersesmextends","$9IrjX$cloneElement","$5e63c961fc1ce211$var$mergeProps","$9IrjX$composeRefs","$5e63c961fc1ce211$export$d9f1ccf0bdb05d45","$9IrjX$Fragment","childProps","overrideProps","slotPropValue","childPropValue","$8927f6f2acc4f386$export$250ffa63cdc0d034","primitive","$4q5Fq$forwardRef","asChild","primitiveProps","Comp","$4q5Fq$Slot","$4q5Fq$useEffect","$4q5Fq$createElement","$4q5Fq$babelruntimehelpersesmextends","$5cb92bef7577960e$var$CONTEXT_UPDATE","$5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE","$5cb92bef7577960e$var$FOCUS_OUTSIDE","$5cb92bef7577960e$var$originalBodyPointerEvents","$5cb92bef7577960e$var$DismissableLayerContext","$kqwpH$createContext","layers","layersWithOutsidePointerEventsDisabled","branches","$5cb92bef7577960e$export$177fb62ff3ec1f22","$kqwpH$forwardRef","disableOutsidePointerEvents","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","$kqwpH$useContext","node1","setNode","$kqwpH$useState","composedRefs","$kqwpH$useComposedRefs","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","handlePointerDownOutside","$kqwpH$useCallbackRef","isPointerInsideReactTreeRef","$kqwpH$useRef","handleClickRef","$kqwpH$useEffect","handlePointerDown","eventDetail","originalEvent","handleAndDispatchPointerDownOutsideEvent","$5cb92bef7577960e$var$handleAndDispatchCustomEvent","discrete","pointerType","once","onPointerDownCapture","$5cb92bef7577960e$var$usePointerDownOutside","isPointerDownOnBranch","branch","focusOutside","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","onFocusCapture","onBlurCapture","$5cb92bef7577960e$var$useFocusOutside","onEscapeKeyDownProp","$hPSQ5$useCallbackRef","$hPSQ5$useEffect","$kqwpH$useEscapeKeydown","$5cb92bef7577960e$var$dispatchUpdate","handleUpdate","$kqwpH$createElement","$kqwpH$Primitive","$kqwpH$babelruntimehelpersesmextends","$kqwpH$composeEventHandlers","CustomEvent","bubbles","cancelable","$4q5Fq$flushSync","$kqwpH$dispatchDiscreteCustomEvent","$d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT","$d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT","$d3863c46a17e8a28$var$EVENT_OPTIONS","$d3863c46a17e8a28$export$20e40289641fbbb6","$45QHv$forwardRef","loop","trapped","onMountAutoFocus","onMountAutoFocusProp","onUnmountAutoFocus","onUnmountAutoFocusProp","scopeProps","container1","setContainer","$45QHv$useState","$45QHv$useCallbackRef","lastFocusedElementRef","$45QHv$useRef","$45QHv$useComposedRefs","focusScope","paused","resume","$45QHv$useEffect","handleFocusIn","$d3863c46a17e8a28$var$focus","handleFocusOut","$d3863c46a17e8a28$var$focusScopesStack","previouslyFocusedElement","mountEvent","candidates","candidate","$d3863c46a17e8a28$var$focusFirst","$d3863c46a17e8a28$var$getTabbableCandidates","item","unmountEvent","remove","$45QHv$useCallback","isTabKey","altKey","focusedElement","currentTarget","$d3863c46a17e8a28$var$findVisible","$d3863c46a17e8a28$var$getTabbableEdges","shiftKey","$45QHv$createElement","$45QHv$Primitive","$45QHv$babelruntimehelpersesmextends","tabIndex","walker","SHOW_ELEMENT","acceptNode","isHiddenInput","hidden","FILTER_SKIP","FILTER_ACCEPT","$d3863c46a17e8a28$var$isHidden","upTo","$d3863c46a17e8a28$var$isSelectableInput","activeFocusScope","$d3863c46a17e8a28$var$arrayRemove","_stack$","$d3863c46a17e8a28$var$createFocusScopesStack","updatedArray","$f1701beae083dbae$export$602eac185826482c","$7SXl2$forwardRef","_globalThis$document","portalProps","$7SXl2$reactdom","$7SXl2$createElement","$7SXl2$Primitive","$7SXl2$babelruntimehelpersesmextends","$921a889cee6df7e8$export$99c2b779aa4e8b8b","present","presence","$iqq3r$useState","stylesRef","$iqq3r$useRef","prevPresentRef","prevAnimationNameRef","initialState","send","machine","$iqq3r$useReducer","nextState","$fe963b355347cc68$export$3e6543de14f8614f","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","$iqq3r$useEffect","currentAnimationName","$921a889cee6df7e8$var$getAnimationName","$iqq3r$useLayoutEffect","wasPresent","prevAnimationName","handleAnimationEnd","isCurrentAnimation","animationName","$iqq3r$flushSync","handleAnimationStart","isPresent","$iqq3r$useCallback","$921a889cee6df7e8$var$usePresence","$iqq3r$Children","$iqq3r$useComposedRefs","$iqq3r$cloneElement","$3db38b7d1fb3fe6a$var$count","$3db38b7d1fb3fe6a$var$createFocusGuard","zeroRightClassName","fullWidthClassName","assignRef","currentValues","useMergeRefs","defaultValue","newValue","facade","oldValue","prevRefs_1","nextRefs_1","current_1","ItoI","createSidecarMedium","medium","defaults","buffer","assigned","read","useMedium","assignSyncMedium","cbs","assignMedium","pendingQueue","executeQueue","cycle","innerCreateMedium","ssr","SideCar","sideCar","Target","exportSidecar","exported","isSideCarExport","effectCar","nothing","RemoveScroll","parentRef","onScrollCapture","onWheelCapture","onTouchMoveCapture","setCallbacks","forwardProps","removeScrollBar","enabled","shards","noIsolation","inert","allowPinchZoom","Container","containerRef","containerProps","lockRef","cloneElement","defaultProps","fullWidth","zeroRight","makeStyleTag","__webpack_nonce__","getNonce","stylesheetSingleton","counter","stylesheet","injectStyles","styleSingleton","useStyle","isDynamic","dynamic","zeroGap","getGapWidth","gapMode","offsets","getOffset","documentWidth","windowWidth","Style","lockAttribute","getStyles","allowRelative","important","getCurrentUseCounter","isFinite","RemoveScrollBar","noRelative","noImportant","newCounter","removeAttribute","passiveSupported","nonPassive","passive","locationCouldBeScrolled","axis","elementCouldBeScrolled","getScrollVariables","elementCouldBeVScrolled","elementCouldBeHScrolled","getHScrollVariables","getTouchXY","changedTouches","getDeltaXY","deltaX","deltaY","extractRef","generateStyle","lockStack","SideCar$1","shouldPreventQueue","touchStartRef","activeAxis","lastProps","allow_1","shouldCancelEvent","touches","currentAxis","touchStart","moveDirection","canBeScrolledInMainDirection","cancelingAxis","endTarget","sourceDelta","directionFactor","getDirectionFactor","delta","targetInLock","shouldCancelScroll","isDeltaPositive","availableScroll","availableScrollTop","elementScroll","handleScroll","shouldPrevent","sourceEvent","deltaCompare","should","shardNodes","shouldCancel","scrollTouchStart","scrollWheel","scrollTouchMove","inst","ReactRemoveScroll","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","applyAttributeToOthers","originalTarget","markerName","controlAttribute","correctedTarget","correctTargets","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","deep","alreadyHidden","counterValue","markerValue","hideOthers","activeParentNode","getDefaultParent","$5d3850c4d0b4e6c7$var$DIALOG_NAME","$5d3850c4d0b4e6c7$var$createDialogContext","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","$3bkAK$createContext","contexts","rootComponentName","BaseContext","Context","$3bkAK$createElement","consumerName","$3bkAK$useContext","$67UHm$createContextScope","$5d3850c4d0b4e6c7$var$DialogProvider","$5d3850c4d0b4e6c7$var$useDialogContext","$5d3850c4d0b4e6c7$var$PORTAL_NAME","$5d3850c4d0b4e6c7$var$PortalProvider","$5d3850c4d0b4e6c7$var$usePortalContext","forceMount","$5d3850c4d0b4e6c7$var$OVERLAY_NAME","$5d3850c4d0b4e6c7$export$bd1d06c79be19e17","$67UHm$forwardRef","portalContext","__scopeDialog","overlayProps","modal","$67UHm$createElement","$67UHm$Presence","open","$5d3850c4d0b4e6c7$var$DialogOverlayImpl","$67UHm$babelruntimehelpersesmextends","$67UHm$RemoveScroll","$67UHm$Slot","contentRef","$67UHm$Primitive","$5d3850c4d0b4e6c7$var$getState","$5d3850c4d0b4e6c7$var$CONTENT_NAME","$5d3850c4d0b4e6c7$export$b6d9565de1e068cf","contentProps","$5d3850c4d0b4e6c7$var$DialogContentModal","$5d3850c4d0b4e6c7$var$DialogContentNonModal","$67UHm$useRef","$67UHm$useComposedRefs","$67UHm$useEffect","$67UHm$hideOthers","$5d3850c4d0b4e6c7$var$DialogContentImpl","trapFocus","onCloseAutoFocus","$67UHm$composeEventHandlers","_context$triggerRef$c","triggerRef","ctrlLeftClick","button","hasInteractedOutsideRef","_props$onCloseAutoFoc","_context$triggerRef$c2","_props$onInteractOuts","_context$triggerRef$c3","onOpenAutoFocus","$1wErz$useEffect","_edgeGuards$","_edgeGuards$2","edgeGuards","insertAdjacentElement","$67UHm$Fragment","$67UHm$FocusScope","$67UHm$DismissableLayer","contentId","descriptionId","titleId","onOpenChange","$5d3850c4d0b4e6c7$var$TITLE_NAME","$67UHm$createContext","contentName","titleName","docsSlug","$5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9","openProp","defaultOpen","setOpen","$67UHm$useControllableState","$67UHm$useId","onOpenToggle","$67UHm$useCallback","prevOpen","$5d3850c4d0b4e6c7$export$602eac185826482c","$67UHm$Children","$67UHm$Portal","$5d3850c4d0b4e6c7$export$c6fdb837b070b4ff","$5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2","ae","oe","se","ie","ce","le","filtered","groups","ue","onValueChange","shouldFilter","vimBindings","useId","Le","subscribe","snapshot","setState","is","commandRef","listId","inputId","labelId","ariaDisabled","ye","xe","ee","ne","Event","htmlFor","Te","ve","de","onSelect","onPointerMove","ge","heading","Re","alwaysRender","be","autoComplete","he","setProperty","toFixed","Ee","overlayClassName","contentClassName","y.Root","y.Portal","y.Overlay","y.Content","Se","Ce","progress","we","List","Item","Input","Group","Separator","Dialog","Empty","Loading","nextElementSibling","previousElementSibling","useSyncExternalStore","clip","composeEventHandlers","setRef","composeRefs","hasCleanup","cleanups","cleanup","useComposedRefs","composeContextScopes","createScope2","nextScopes2","useLayoutEffect2","createSlot","ownerName","SlotClone","createSlotClone","Slot2","isSlottable","isValidElement","childrenRef","mayWarn","getElementRef","props2","mergeProps","SLOTTABLE_IDENTIFIER","__radixId","Primitive","Slot","useCallbackRef","originalBodyPointerEvents","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","DismissableLayerContext","DismissableLayer","node2","handleAndDispatchPointerDownOutsideEvent2","handleAndDispatchCustomEvent","usePointerDownOutside","useFocusOutside","capture","useEscapeKeydown","dispatchUpdate","DismissableLayerBranch","flushSync","dispatchDiscreteCustomEvent","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","FocusScope","handleFocusIn2","handleFocusOut2","handleMutations2","focusScopesStack","focusFirst","getTabbableCandidates","container2","findVisible","getTabbableEdges","isSelectableInput","arrayRemove","createFocusScopesStack","containerProp","setMounted","Presence","React2","useStateMachine","getAnimationName","ownerWindow","CSS","currentFillMode","animationFillMode","usePresence","createFocusGuard","elementCanBeScrolled","alwaysContainsScroll","getOutermostShadowParent","shadowParent","parent_1","DOCUMENT_FRAGMENT_NODE","DIALOG_NAME","createDialogContext","createContextScope","DialogProvider","useDialogContext","TRIGGER_NAME","triggerProps","composedTriggerRef","getState","PORTAL_NAME","PortalProvider","usePortalContext","DialogPortal","PortalPrimitive","OVERLAY_NAME","DialogOverlay","DialogOverlayImpl","CONTENT_NAME","DialogContent","DialogContentModal","DialogContentNonModal","DialogContentImpl","hasPointerDownOutsideRef","targetIsTrigger","TitleWarning","DescriptionWarning","TITLE_NAME","DialogTitle","titleProps","h2","DESCRIPTION_NAME","DialogDescription","descriptionProps","CLOSE_NAME","DialogClose","closeProps","TITLE_WARNING_NAME","WarningProvider","useWarningContext","titleWarningContext","MESSAGE","getElementById","describedById","warn","Overlay","Content","Title","Description","Close","defaultAttributes","xmlns","viewBox","strokeLinecap","strokeLinejoin","toKebabCase","iconName","iconNode","absoluteStrokeWidth","attrs","createLucideIcon","DialogPrimitive.Portal","DialogPrimitive.Overlay","_jsxs","DialogPrimitive.Content","DialogPrimitive.Close","DialogPrimitive.Title","DialogPrimitive.Description","Command","CommandPrimitive","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","SourceSearchBox","selectedValue","setSelectedValue","searchTerm","suggestedFiles","filePointer","onSelectedFile","Logo","src","iconImageUri","sourceApplication","use","isLazyComponent","falsyToString","cva","base","variants","class","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","buttonVariants","destructive","secondary","ghost","link","sm","lg","icon","Button","Label","onMouseDown","Root","labelVariants","LabelPrimitive.Root","reactIsModule","reactIs_production_min","AsyncMode","ConcurrentMode","ContextConsumer","ForwardRef","Lazy","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isMemo","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","hasSymbol","REACT_PROVIDER_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","$$typeofType","ContextProvider","Memo","hasWarnedAboutDeprecatedIsAsyncMode","reactIs_development","isPortal","propIsEnumerable","objectAssign","test1","test2","order2","test3","letter","shouldUseNative","toObject","ReactPropTypesSecret_1","printWarning","ReactPropTypesSecret","loggedTypeFailures","checkPropTypes","typeSpecs","location","getStack","typeSpecName","ex","resetWarningCache","checkPropTypes_1","ReactIs","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","throwOnDirectAccess","ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","bigint","bool","number","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","propFullName","PropTypeError","propValue","getPropType","elementType","instanceOf","expectedClass","expectedClassName","objectOf","propType","oneOf","expectedValues","valuesString","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedType","shape","shapeTypes","invalidValidatorError","exact","allKeys","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","cacheKey","chainedCheckType","iteratorFn","maybeIterable","getIteratorFn","step","PropTypes","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","composeClasses","slots","getUtilityClass","classes","slot","utilityClass","module","__esModule","formatMuiErrorMessage","url","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","_interopRequireDefault","colorManipulator","alpha","blend","background","overlay","gamma","blendChannel","backgroundColor","decomposeColor","overlayColor","rgb","recomposeColor","colorChannel","darken","emphasize","getContrastRatio","foreground","lumA","getLuminance","lumB","hexToRgb","hslToRgb","lighten","private_safeAlpha","warning","private_safeColorChannel","private_safeDarken","coefficient","private_safeEmphasize","private_safeLighten","rgbToHex","int","hex","intToHex","_formatMuiErrorMessage2","_clamp","clampWrapper","marker","colorSpace","decomposedColor","capitalize","_formatMuiErrorMessage","resolveProps","defaultSlotProps","slotPropName","PropsContext","useDefaultProps","params","components","styleOverrides","getThemeProps","useSystemDefaultProps","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","objectPrototype","hoistNonReactStatics_cjs","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","JSX","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","useInsertionEffectWithLayoutFallback","EmotionCacheContext","CacheProvider","withEmotionCache","ThemeContext","hasOwn","typePropName","Insertion","Emotion","cssProp","WrappedComponent","Emotion$1","argsLength","createElementArgArray","createEmotionProps","Global","sheetRef","rehydrating","sheetRefCurrent","insertable","reactPropsRegex","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","styled","createStyled","targetClassName","__emotion_real","baseTag","__emotion_base","defaultShouldForwardProp","shouldUseAs","templateStringsArr","Styled","FinalTag","classInterpolations","finalShouldForwardProp","withComponent","nextTag","nextOptions","cacheMap","StyledEngineProvider","injectFirst","enableCssLayer","fresh","emotionCache","prevInsert","getCache","GlobalStyles","defaultTheme","globalStyles","themeInput","stylesFactory","emStyled","processor","emSerializeStyles","deepClone","deepmerge","clone","REACT_VIEW_TRANSITION_TYPE","reactIs_production","SuspenseList","isSuspenseList","getModuleId","fnNameMatchRegex","getFunctionName","getFunctionComponentName","fallback","getWrappedName","outerType","wrapperName","functionName","createBreakpoints","breakpoints","xs","md","xl","sortedValues","breakpointsAsArray","breakpoint1","breakpoint2","sortBreakpointsValues","between","endIndex","not","keyIndex","responsivePropType","defaultBreakpoints","handleBreakpoints","styleFromPropValue","themeBreakpoints","breakpoint","cssKey","removeUnusedBreakpoints","breakpointKeys","breakpointOutput","getPath","checkVars","vars","getStyleValue","themeMapping","propValueFinal","userValue","cssProperty","themeKey","filterProps","directions","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","marginKeys","paddingKeys","spacingKeys","createUnaryUnit","_getPath","themeSpacing","createUnarySpacing","getValue","transformer","resolveCssProperty","cssProperties","getStyleFromPropValue","handlers","borderTransform","createBorderStyle","borderLeft","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor","columnGap","rowGap","paletteTransform","sizingTransform","_props$theme","_props$theme2","breakpointsValues","minWidth","maxHeight","defaultSxConfig","bgcolor","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd","marginTop","marginRight","marginBottom","marginLeft","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd","displayPrint","textOverflow","flexBasis","flexDirection","flexWrap","justifyContent","alignItems","alignContent","alignSelf","justifyItems","justifySelf","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","boxShadow","fontFamily","fontSize","fontStyle","letterSpacing","textTransform","textAlign","typography","unstable_createStyleFunctionSx","getThemeValue","styleFunctionSx","_theme$unstable_sxCon","sx","nested","unstable_sxConfig","traverse","sxInput","sxObject","emptyBreakpoints","breakpointsInput","_breakpointsInput$key","createEmptyBreakpointObject","breakpointsKeys","styleKey","maybeFn","objects","union","objectsHaveSameKeys","modularCssLayers","applyStyles","getColorSchemeSelector","palette","createTheme","paletteInput","spacingInput","shapeInput","mui","argsInput","createSpacing","muiTheme","unstable_sx","inSx","systemProps","otherProps","_props$theme$unstable","splitProps","finalSx","createStyled_1","input","themeId","systemDefaultTheme","rootShouldForwardProp","slotShouldForwardProp","systemSx","_styleFunctionSx","_extends2","resolveTheme","__mui_systemSx","inputOptions","_styledEngine","internal_processStyles","componentSlot","skipVariantsResolver","inputSkipVariantsResolver","skipSx","inputSkipSx","overridesResolver","defaultOverridesResolver","lowercaseFirstLetter","_objectWithoutPropertiesLoose2","_excluded3","layerName","shouldForwardPropOption","defaultStyledResolver","transformStyleArg","stylesArg","_deepmerge","processStyleArg","muiStyledResolver","styleArg","expressions","transformedStyleArg","expressionsWithDefaultTheme","resolvedStyleOverrides","slotKey","slotStyle","_theme$components","numOfCustomFnsApplied","placeholders","_capitalize","_getDisplayName","muiName","withConfig","_getRequireWildcardCache","__proto__","_interopRequireWildcard","require$$5","require$$6","_createTheme","require$$7","require$$8","shallowLayer","callableStyle","ownerState","resolvedStylesArg","flatMap","resolvedStyle","isMatch","variantStyle","internal_serializeStyles","defaultGenerator","ClassNameGenerator","generate","configure","generator","reset","createClassNameGenerator","globalStateClasses","checked","completed","expanded","focused","focusVisible","required","selected","generateUtilityClass","globalStatePrefix","globalStateClass","black","white","grey","A100","A200","A400","A700","purple","red","orange","blue","lightBlue","green","light","primary","divider","paper","hover","hoverOpacity","selectedOpacity","disabledBackground","disabledOpacity","focusOpacity","activatedOpacity","dark","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","main","createPalette","contrastThreshold","getDefaultPrimary","getDefaultSecondary","getDefaultError","info","getDefaultInfo","success","getDefaultSuccess","getDefaultWarning","getContrastText","contrastText","augmentColor","mainShade","lightShade","darkShade","modes","caseAllCaps","defaultFontFamily","createTypography","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem","pxToRem2","coef","buildVariant","casing","h1","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","overline","inherit","createShadow","shadows","easing","easeInOut","easeOut","easeIn","sharp","shortest","shorter","short","standard","complex","enteringScreen","leavingScreen","formatMs","milliseconds","getAutoHeightDuration","constant","createTransitions","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","isString","animatedProp","mobileStepper","fab","speedDial","appBar","drawer","snackbar","tooltip","mixinsInput","transitions","transitionsInput","typographyInput","generateCssVars","systemTheme","systemCreateTheme","toolbar","stateClasses","stateClass","generateUtilityClasses","getSvgIconUtilityClass","SvgIconRoot","_theme$transitions","_theme$transitions$cr","_theme$transitions2","_theme$typography","_theme$typography$pxT","_theme$typography2","_theme$typography2$px","_theme$typography3","_theme$typography3$px","_palette$ownerState$c","_palette","_palette2","_palette3","hasSvgAsChild","small","large","SvgIcon","inProps","htmlColor","inheritViewBox","titleAccess","instanceFontSize","more","useUtilityClasses","focusable","createSvgIcon","shapeRendering","CancelIcon","useForkRef","instance","refType","propType1","propType2","elementTypeAcceptingRef$1","safePropName","warningHint","isReactComponent","isClassComponent","useEnhancedEffect","useEventCallback","UNINITIALIZED","EMPTY","Timeout","currentId","disposeEffect","useTimeout","init","initArg","useLazyRef","useOnMount","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","tel","email","password","date","month","week","datetime","handleVisibilityChange","visibilityState","isFocusVisible","focusTriggersKeyboardModality","useIsFocusVisible","doc","isFocusVisibleRef","_setPrototypeOf","TransitionGroupContext","getChildMapping","mapFn","mapper","getProp","getNextChildMapping","nextProps","prevChildMapping","onExited","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","in","exit","TransitionGroup","_React$Component","handleExited","ReferenceError","_assertThisInitialized","contextValue","isMounting","firstRender","_inheritsLoose","appear","currentChildMapping","_this$props","childFactory","omitEventHandlers","mergeSlotProps","parameters","getSlotProps","additionalProps","externalSlotProps","externalForwardedProps","joinedClasses","mergedStyle","internalRef","eventHandlers","excludeKeys","extractEventHandlers","componentsPropsWithoutEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","Ripple","pulsate","rippleX","rippleY","rippleSize","inProp","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","touchRippleClasses","_t","_t2","_t3","_t4","enterKeyframe","exitKeyframe","pulsateKeyframe","TouchRippleRoot","TouchRippleRipple","TouchRipple","center","centerProp","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","oldRipples","fakeElement","sqrt","sizeX","sizeY","useImperativeHandle","getButtonBaseUtilityClass","buttonBaseClasses","ButtonBaseRoot","WebkitTapHighlightColor","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","colorAdjust","ButtonBase","centerRipple","disableRipple","disableTouchRipple","focusRipple","LinkComponent","onContextMenu","onDragLeave","onFocusVisible","onKeyUp","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","TouchRippleProps","touchRippleRef","buttonRef","rippleRef","handleRippleRef","handleFocusVisible","handleBlurVisible","focusVisibleRef","setFocusVisible","mountedState","setMountedState","enableTouchRipple","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleMouseDown","handleContextMenu","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","isNonNativeButton","href","keydownRef","handleKeyUp","ComponentProp","buttonProps","handleRef","focusVisibleClassName","composedClasses","getChipUtilityClass","elementTypeAcceptingRef","chipClasses","ChipRoot","iconColor","clickable","onDelete","avatar","deleteIcon","deletable","textColor","Chip","defaultAvatarColor","avatarColorPrimary","avatarColorSecondary","avatarSmall","defaultIconColor","primaryChannel","contrastTextChannel","selectedChannel","defaultBorder","iconSmall","deleteIconSmall","mainChannel","ChipLabel","isDeleteKeyboardEvent","keyboardEvent","avatarProp","clickableProp","deleteIconProp","iconProp","skipFocusWhenDisabled","chipRef","handleDeleteIconClick","stopPropagation","moreProps","propFullNameSafe","Person","getAvatarUtilityClass","useSlot","initialElementType","getSlotOwnerState","internalForwardedProps","useSlotPropsParams","rootComponent","resolvedComponentsProps","componentProps","slotState","resolveComponentProps","_mergeSlotProps","slotComponent","slotOwnerState","finalOwnerState","LeafComponent","appendOwnerState","AvatarRoot","colorDefault","Avatar","defaultBg","AvatarImg","img","objectFit","textIndent","AvatarFallback","childrenProp","imgProps","sizes","srcSet","loaded","crossOrigin","referrerPolicy","setLoaded","image","Image","onload","onerror","srcset","useLoaded","hasImg","hasImgNotFailing","ImgSlot","imgSlotProps","IncludedFilesPreview","includedFiles","setIncludedFiles","FileChipPreview","fp","HoveringInsertionPromptBoxCore","performInsertion","insertionOrEditingFunction","getDocumentsContext","useCopilotContext","editSuggestion","setEditSuggestion","suggestionIsLoading","setSuggestionIsLoading","adjustmentPrompt","setAdjustmentPrompt","generatingSuggestion","setGeneratingSuggestion","adjustmentTextAreaRef","suggestionTextAreaRef","filePointers","setFilePointers","setSuggestedFiles","locked","reader","getReader","newSuggestion","closed","releaseLock","releaseLockIfNotClosed","beginGeneratingAdjustment","modificationState","editorState","adjustmentSuggestionTextStreamPromise","adjustmentSuggestionTextStream","promise","ReadableStream","controller","close","enqueue","isLoading","textToEdit","adjustmentLabel","AdjustmentPromptComponent","_Fragment","rows","SuggestionComponent","SubmitComponent","sourceSearchCandidate","sourceSearchWord","HoveringInsertionPromptBox","apiConfig","HoveringToolbar","isClient","setIsClient","isShown","handleClickOutside","hoverMenuClassname","insertedText","textAroundCursor","SuggestionElement","suggestionsStyle","nodeChildrenToTextComponents","indeciesOfInlineElements","nonIgnorableItems","editorToText","textComponent","TrackerTextEditedSinceLastCursorMovement","cursorState","previousState","usePrevious","cursorChangedWithoutTextChanged","setCursorMovedSinceLastTextChange","isSelectionChanged","isTextSame","BaseCopilotTextarea","BaseCopilotTextareaWithHoveringContext","autosuggestionsConfig","baseAutosuggestionsConfig","valueOnInitialRender","lastKnownFullEditorText","setLastKnownFullEditorText","cursorMovedSinceLastTextChange","isUserInputActive","setIsUserInputActive","hoveringEditorIsDisplayed","setHoveringEditorIsDisplayed","autosuggestion","shouldDisableAutosuggestions","currentAutocompleteSuggestion","onChangeHandler","onChangeHandlerForAutocomplete","onKeyDownHandler","onKeyDownHandlerForAutocomplete","onTouchStartHandler","onTouchStartHandlerForAutocomplete","autosuggestionFunction","insertAutocompleteSuggestion","previousAutocompleteState","setPreviousAutocompleteState","setCurrentAutocompleteSuggestion","awaitForAndAppendSuggestion","editorAutocompleteState","abortSignal","suggestion","aborted","DOMException","debouncedFunction","newEditorState","editorStateHasChanged","naiveEqualityCheck","nullableCompatibleEqualityCheck","keyDownOrTouchHandler","useAutosuggestions","autosuggestionsFunction","onKeyDownHandlerForHoveringEditor","editorPosition","addAutocompletionsToEditor","suggestionStyleAugmented","renderElementMemoized","renderPlaceholderMemoized","placeholderStyleSlatejsOverrides","placeholderStyle","restAttributes","makeRenderPlaceholderFunction","autosuggestionsConfigFromProps","disableBranding","propsToForward","cssSelector","styleEl","dynamicStyles","textarea","offsetFromBottom","offsetFromRight","useAddBrandingCss","propKey","editorHtmlElement","customMethods","combined","isKeyOfCustomMethods","isKeyOfHTMLElement","usePopulateCopilotTextareaRef","moddedClassName","getTextAroundCollapsedCursor","fullEditorText","currentText","ev","retry","retriesLeft","interval","backoff","reject","catch","defaultSuggestionsApiConfig","makeSystemPrompt","textareaPurpose","contextString","fewShotMessages","TextMessage","Role","User","Assistant","defaultInsertionsApiConfig","forwardedParams","defaultEditingApiConfig","defaultAutosuggestionsConfig","chatApiConfigs","suggestionsApiConfig","insertionApiConfig","editingApiConfig","HASH_UNDEFINED","argsTag","funcTag","objectTag","reIsHostCtor","reIsUint","typedArrayTags","uid","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","require","binding","nodeIsTypedArray","isTypedArray","arrayProto","funcProto","coreJsData","funcToString","maskSrcKey","IE_PROTO","objectCtorString","reIsNative","Buffer","Uint8Array","allocUnsafe","getPrototype","objectCreate","getNative","nativeIsBuffer","isBuffer","nativeNow","nativeCreate","baseCreate","proto","Hash","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assignMergeValue","eq","baseAssignValue","assignValue","objValue","assocIndexOf","getMapData","pairs","LARGE_ARRAY_SIZE","baseFor","keysFunc","iterable","baseIsArguments","baseIsNative","isMasked","isFunction","toSource","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","mergeFunc","safeGet","stacked","isTyped","isArrayLike","copyArray","typedArray","arrayBuffer","byteLength","byteOffset","cloneTypedArray","Ctor","isNew","copyObject","keysIn","toPlainObject","initCloneObject","baseMergeDeep","baseRest","setToString","otherArgs","overRest","identity","baseSetToString","lastCalled","stamp","shortOut","baseUnary","assigner","sources","guard","isIterateeCall","CopilotTextarea","autosuggestionsConfigUserSpecified","forwardedProps","getContextString","copilotApiConfig","chatApiEndpoint","publicApiKey","credentials","headers","COPILOT_CLOUD_PUBLIC_API_KEY_HEADER","maxTokens","temperature","System","response","convertGqlOutputToMessages","_c","generateCopilotResponse","messages","isTextMessage","useMakeStandardAutosuggestionFunction","runtimeClient","runtimeClientResponseToStringStream","responsePromise","messagesStream","asStream","sentContent","newContent","contentToSend","insertionFunction","insertionPrompt","documents","frontend","convertMessagesToGqlInput","filterAgentStateMessages","metadata","requestType","CopilotRequestType","TextareaCompletion","editingFunction","editingPrompt","useMakeStandardInsertionOrEditingFunction"],"mappings":"u2BAAA,SAASA,EAAYC,EAAKC,QACX,IAARA,IAAiBA,EAAM,CAAA,GAC5B,IAAIC,EAAWD,EAAIC,SAEnB,GAAKF,GAA2B,oBAAbG,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAME,KAAO,WAEI,QAAbN,GACEE,EAAKK,WACPL,EAAKM,aAAaJ,EAAOF,EAAKK,YAKhCL,EAAKO,YAAYL,GAGfA,EAAMM,WACRN,EAAMM,WAAWC,QAAUb,EAE3BM,EAAMK,YAAYR,SAASW,eAAed,GAnBW,CAqBzD,iyfCMO,IAAIe,EAAW,WAQlB,OAPAA,EAAWC,OAAOC,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACOJ,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,IAE9E,OAAON,CACX,EACOH,EAASa,MAAMC,KAAMP,UAChC,EAEO,SAASQ,EAAOX,EAAGY,GACtB,IAAIb,EAAI,CAAA,EACR,IAAK,IAAIM,KAAKL,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,IAAMO,EAAEC,QAAQR,GAAK,IAC9EN,EAAEM,GAAKL,EAAEK,IACb,GAAS,MAALL,GAAqD,mBAAjCH,OAAOiB,sBACtB,KAAIb,EAAI,EAAb,IAAgBI,EAAIR,OAAOiB,sBAAsBd,GAAIC,EAAII,EAAED,OAAQH,IAC3DW,EAAEC,QAAQR,EAAEJ,IAAM,GAAKJ,OAAOS,UAAUS,qBAAqBP,KAAKR,EAAGK,EAAEJ,MACvEF,EAAEM,EAAEJ,IAAMD,EAAEK,EAAEJ,IAF4B,CAItD,OAAOF,CACX,CAiKO,SAASiB,EAAcC,EAAIC,EAAMC,GACpC,GAAIA,GAA6B,IAArBhB,UAAUC,OAAc,IAAK,IAA4BgB,EAAxBnB,EAAI,EAAGoB,EAAIH,EAAKd,OAAYH,EAAIoB,EAAGpB,KACxEmB,GAAQnB,KAAKiB,IACRE,IAAIA,EAAKE,MAAMhB,UAAUiB,MAAMf,KAAKU,EAAM,EAAGjB,IAClDmB,EAAGnB,GAAKiB,EAAKjB,IAGrB,OAAOgB,EAAGO,OAAOJ,GAAME,MAAMhB,UAAUiB,MAAMf,KAAKU,GACtD,CA2GkD,mBAApBO,iBAAiCA;;;;;;;;;iCC7T/D,eAAiBC,QAAQC,IAAIC,UAC3B,WACE,SAASC,EAAyBxC,GAChC,GAAI,MAAQA,EAAM,OAAO,KACzB,GAAI,mBAAsBA,EACxB,OAAOA,EAAKyC,WAAaC,EACrB,KACA1C,EAAK2C,aAAe3C,EAAK4C,MAAQ,KACvC,GAAI,iBAAoB5C,EAAM,OAAOA,EACrC,OAAQA,GACN,KAAK6C,EACH,MAAO,WACT,KAAKC,EACH,MAAO,WACT,KAAKC,EACH,MAAO,aACT,KAAKC,EACH,MAAO,WACT,KAAKC,EACH,MAAO,eACT,KAAKC,EACH,MAAO,WAEX,GAAI,iBAAoBlD,EACtB,OACG,iBAAoBA,EAAKmD,KACxBC,QAAQC,MACN,qHAEJrD,EAAKyC,UAEL,KAAKa,EACH,MAAO,SACT,KAAKC,EACH,OAAQvD,EAAK2C,aAAe,WAAa,YAC3C,KAAKa,EACH,OAAQxD,EAAKyD,SAASd,aAAe,WAAa,YACpD,KAAKe,EACH,IAAIC,EAAY3D,EAAK4D,OAKrB,OAJA5D,EAAOA,EAAK2C,eAGT3C,EAAO,MADNA,EAAO2D,EAAUhB,aAAegB,EAAUf,MAAQ,IAC9B,cAAgB5C,EAAO,IAAM,cAC9CA,EACT,KAAK6D,EACH,OAEE,QADCF,EAAY3D,EAAK2C,aAAe,MAE7BgB,EACAnB,EAAyBxC,EAAKA,OAAS,OAE/C,KAAK8D,EACHH,EAAY3D,EAAK+D,SACjB/D,EAAOA,EAAKgE,MACZ,IACE,OAAOxB,EAAyBxC,EAAK2D,GACnD,CAAc,MAAOM,GAAG,EAElB,OAAO,IACb,CACI,SAASC,EAAmBC,GAC1B,MAAO,GAAKA,CAClB,CACI,SAASC,EAAuBD,GAC9B,IACED,EAAmBC,GACnB,IAAIE,GAA2B,CACvC,CAAQ,MAAO9C,GACP8C,GAA2B,CACnC,CACM,GAAIA,EAA0B,CAE5B,IAAIC,GADJD,EAA2BjB,SAC0BC,MACjDkB,EACD,mBAAsBC,QACrBA,OAAOC,aACPN,EAAMK,OAAOC,cACfN,EAAMO,YAAY9B,MAClB,SAMF,OALA0B,EAAsBnD,KACpBkD,EACA,2GACAE,GAEKL,EAAmBC,EAClC,CACA,CACI,SAASQ,EAAY3E,GACnB,GAAIA,IAAS6C,EAAqB,MAAO,KACzC,GACE,iBAAoB7C,GACpB,OAASA,GACTA,EAAKyC,WAAaqB,EAElB,MAAO,QACT,IACE,IAAIlB,EAAOJ,EAAyBxC,GACpC,OAAO4C,EAAO,IAAMA,EAAO,IAAM,OACzC,CAAQ,MAAOqB,GACP,MAAO,OACf,CACA,CAKI,SAASW,IACP,OAAOC,MAAM,wBACnB,CAuBI,SAASC,IACP,IAAIC,EAAgBvC,EAAyBnB,KAAKrB,MAOlD,OANAgF,EAAuBD,KACnBC,EAAuBD,IAAiB,EAC1C3B,QAAQC,MACN,qJAGG,KADP0B,EAAgB1D,KAAK4D,MAAMxF,KACOsF,EAAgB,IACxD,CAqDI,SAASG,EACPlF,EACAmF,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IApGIC,EAoGAC,EAAWR,EAAOQ,SACtB,QAAI,IAAWA,EACb,GAAIN,EACF,GAAIO,EAAYD,GAAW,CACzB,IACEN,EAAmB,EACnBA,EAAmBM,EAAS5E,OAC5BsE,IAEAQ,EAAkBF,EAASN,IAC7B7E,OAAOsF,QAAUtF,OAAOsF,OAAOH,EAC3C,MACYvC,QAAQC,MACN,6JAEDwC,EAAkBF,GACzB,GAAIzE,EAAeC,KAAKgE,EAAQ,OAAQ,CACtCQ,EAAWnD,EAAyBxC,GACpC,IAAI+F,EAAOvF,OAAOuF,KAAKZ,GAAQa,OAAO,SAAUC,GAC9C,MAAO,QAAUA,CAC3B,GACQZ,EACE,EAAIU,EAAKhF,OACL,kBAAoBgF,EAAKG,KAAK,WAAa,SAC3C,iBACNC,EAAsBR,EAAWN,KAC7BU,EACA,EAAIA,EAAKhF,OAAS,IAAMgF,EAAKG,KAAK,WAAa,SAAW,KAC5D9C,QAAQC,MACN,kOACAgC,EACAM,EACAI,EACAJ,GAEDQ,EAAsBR,EAAWN,IAAoB,EAChE,CAMM,GALAM,EAAW,UACX,IAAWP,IACRhB,EAAuBgB,GAAYO,EAAW,GAAKP,GArIxD,SAAqBD,GACnB,GAAIjE,EAAeC,KAAKgE,EAAQ,OAAQ,CACtC,IAAIiB,EAAS5F,OAAO6F,yBAAyBlB,EAAQ,OAAOmB,IAC5D,GAAIF,GAAUA,EAAOG,eAAgB,OAAO,CACpD,CACM,YAAO,IAAWpB,EAAOqB,GAC/B,CAgIMC,CAAYtB,KACTf,EAAuBe,EAAOqB,KAAOb,EAAW,GAAKR,EAAOqB,KAC3D,QAASrB,EAEX,IAAK,IAAIuB,KADTtB,EAAW,CAAA,EACUD,EACnB,QAAUuB,IAAatB,EAASsB,GAAYvB,EAAOuB,SAChDtB,EAAWD,EAQlB,OAPAQ,GAtIF,SAAoCV,EAAOtC,GACzC,SAASgE,IACPC,IACIA,GAA6B,EAC/BxD,QAAQC,MACN,0OACAV,GAEZ,CACMgE,EAAsBJ,gBAAiB,EACvC/F,OAAOqG,eAAe5B,EAAO,MAAO,CAClCqB,IAAKK,EACLG,cAAc,GAEtB,CAyHQC,CACE3B,EACA,mBAAsBpF,EAClBA,EAAK2C,aAAe3C,EAAK4C,MAAQ,UACjC5C,GAlHV,SACEA,EACAwG,EACAjB,EACAD,EACA0B,EACA/B,EACAO,EACAC,GA0CA,OAxCAF,EAAON,EAAMxF,IACbO,EAAO,CACLyC,SAAUwE,EACVjH,KAAMA,EACNwG,IAAKA,EACLvB,MAAOA,EACPiC,OAAQF,GAEV,aAAU,IAAWzB,EAAOA,EAAO,MAC/B/E,OAAOqG,eAAe7G,EAAM,MAAO,CACjCmH,YAAY,EACZb,IAAKxB,IAEPtE,OAAOqG,eAAe7G,EAAM,MAAO,CAAEmH,YAAY,EAAIhD,MAAO,OAChEnE,EAAKoH,OAAS,CAAA,EACd5G,OAAOqG,eAAe7G,EAAKoH,OAAQ,YAAa,CAC9CN,cAAc,EACdK,YAAY,EACZE,UAAU,EACVlD,MAAO,IAET3D,OAAOqG,eAAe7G,EAAM,aAAc,CACxC8G,cAAc,EACdK,YAAY,EACZE,UAAU,EACVlD,MAAO,OAET3D,OAAOqG,eAAe7G,EAAM,cAAe,CACzC8G,cAAc,EACdK,YAAY,EACZE,UAAU,EACVlD,MAAOqB,IAEThF,OAAOqG,eAAe7G,EAAM,aAAc,CACxC8G,cAAc,EACdK,YAAY,EACZE,UAAU,EACVlD,MAAOsB,IAETjF,OAAOsF,SAAWtF,OAAOsF,OAAO9F,EAAKiF,OAAQzE,OAAOsF,OAAO9F,IACpDA,CACb,CAiEasH,CACLtH,EACA2F,EACAJ,EACAD,EA7JK,QADHI,EAAa6B,EAAqBC,GACT,KAAO9B,EAAW+B,WA+J7CrC,EACAI,EACAC,EAER,CACI,SAASI,EAAkB6B,GACzB,iBAAoBA,GAClB,OAASA,GACTA,EAAKjF,WAAawE,GAClBS,EAAKN,SACJM,EAAKN,OAAOO,UAAY,EACjC,CACI,IA8BIf,EA9BAgB,EAAQC,EACVZ,EAAqBzC,OAAOsD,IAAI,8BAChCxE,EAAoBkB,OAAOsD,IAAI,gBAC/BjF,EAAsB2B,OAAOsD,IAAI,kBACjC/E,EAAyByB,OAAOsD,IAAI,qBACpChF,EAAsB0B,OAAOsD,IAAI,kBAE/BtE,EAAsBgB,OAAOsD,IAAI,kBACnCvE,EAAqBiB,OAAOsD,IAAI,iBAChCpE,EAAyBc,OAAOsD,IAAI,qBACpC9E,EAAsBwB,OAAOsD,IAAI,kBACjC7E,EAA2BuB,OAAOsD,IAAI,uBACtCjE,EAAkBW,OAAOsD,IAAI,cAC7BhE,EAAkBU,OAAOsD,IAAI,cAC7B5E,EAAsBsB,OAAOsD,IAAI,kBACjCpF,EAAyB8B,OAAOsD,IAAI,0BACpCP,EACEK,EAAMG,gEACR7G,EAAiBV,OAAOS,UAAUC,eAClC0E,EAAc3D,MAAM+F,QACpBC,EAAa7E,QAAQ6E,WACjB7E,QAAQ6E,WACR,WACE,OAAO,IACnB,EAOQjD,EAAyB,CAAA,EACzBkD,GAPJN,EAAQ,CACN,2BAA4B,SAAUO,GACpC,OAAOA,GACf,IAIuC,4BAA4BC,KAC7DR,EACAhD,EAF2BgD,GAIzBS,EAAwBJ,EAAWtD,EAAYC,IAC/CuB,EAAwB,CAAA,EAC5BmC,EAAAC,SAAmB1F,EACnByF,EAAAE,IAAc,SAAUxI,EAAMmF,EAAQC,EAAUE,EAAQC,GACtD,IAAIkD,EACF,IAAMlB,EAAqBmB,6BAC7B,OAAOxD,EACLlF,EACAmF,EACAC,GACA,EACAE,EACAC,EACAkD,EACI5D,MAAM,yBACNqD,EACJO,EAAmBR,EAAWtD,EAAY3E,IAASqI,EAE3D,EACIC,EAAAK,KAAe,SAAU3I,EAAMmF,EAAQC,EAAUE,EAAQC,GACvD,IAAIkD,EACF,IAAMlB,EAAqBmB,6BAC7B,OAAOxD,EACLlF,EACAmF,EACAC,GACA,EACAE,EACAC,EACAkD,EACI5D,MAAM,yBACNqD,EACJO,EAAmBR,EAAWtD,EAAY3E,IAASqI,EAE3D,CACG,CAzVD,qBCV2B,eAAzBhG,QAAQC,IAAIC,SACdqG,EAAAC,qCCQF,IAAI5B,EAAqBzC,OAAOsD,IAAI,8BAClCjF,EAAsB2B,OAAOsD,IAAI,kBACnC,SAASgB,EAAQ9I,EAAMmF,EAAQC,GAC7B,IAAIoB,EAAM,KAGV,QAFA,IAAWpB,IAAaoB,EAAM,GAAKpB,QACnC,IAAWD,EAAOqB,MAAQA,EAAM,GAAKrB,EAAOqB,KACxC,QAASrB,EAEX,IAAK,IAAIuB,KADTtB,EAAW,CAAA,EACUD,EACnB,QAAUuB,IAAatB,EAASsB,GAAYvB,EAAOuB,SAChDtB,EAAWD,EAElB,OADAA,EAASC,EAAS3F,IACX,CACLgD,SAAUwE,EACVjH,KAAMA,EACNwG,IAAKA,EACL/G,SAAK,IAAW0F,EAASA,EAAS,KAClCF,MAAOG,EAEX,QACA2D,EAAAR,SAAmB1F,EACnBkG,EAAAP,IAAcM,EACdC,EAAAJ,KAAeG,ID9BIjB,GAEjBe,EAAAC,QAAiBG;;;;;;KEEnB,SAASC,EAASC,GAChB,MAA6C,oBAAtC1I,OAAOS,UAAUkI,SAAShI,KAAK+H,EACxC,CAEA,SAASE,EAAcF,GACrB,IAAIG,EAAKC,EAET,OAAoB,IAAhBL,EAASC,UAIAK,KADbF,EAAOH,EAAExE,eAKc,IAAnBuE,EADJK,EAAOD,EAAKpI,aAIiC,IAAzCqI,EAAKpI,eAAe,iBAM1B,CC/BA,SAASL,EAAEA,GAAG,IAAI,IAAI2I,EAAE1I,UAAUC,OAAOL,EAAEuB,MAAMuH,EAAE,EAAEA,EAAE,EAAE,GAAGjI,EAAE,EAAEA,EAAEiI,EAAEjI,IAAIb,EAAEa,EAAE,GAAGT,UAAUS,GAAG,GAAG,eAAec,QAAQC,IAAIC,SAAS,CAAC,IAAI3B,EAAE6I,GAAE5I,GAAGqI,EAAEtI,EAAE,mBAAmBA,EAAEA,EAAEQ,MAAM,KAAKV,GAAGE,EAAE,qBAAqBC,EAAE,MAAMgE,MAAM,WAAWqE,EAAE,CAAC,MAAMrE,MAAM,8BAA8BhE,GAAGH,EAAEK,OAAO,IAAIL,EAAEgJ,IAAG,SAAW7I,GAAG,MAAM,IAAIA,EAAE,GAAI,GAAGqF,KAAK,KAAK,IAAI,mDAAmD,CAAC,SAASsD,EAAE3I,GAAG,QAAQA,KAAKA,EAAE8I,GAAE,CAAC,SAASjJ,EAAEG,GAAG,IAAI2I,EAAE,QAAQ3I,IAAI,SAASA,GAAG,IAAIA,GAAG,iBAAiBA,EAAE,OAAM,EAAG,IAAI2I,EAAEhJ,OAAOoJ,eAAe/I,GAAG,GAAG,OAAO2I,EAAE,OAAM,EAAG,IAAI9I,EAAEF,OAAOU,eAAeC,KAAKqI,EAAE,gBAAgBA,EAAE9E,YAAY,OAAOhE,IAAIF,QAAQ,mBAAmBE,GAAGmJ,SAASV,SAAShI,KAAKT,KAAKoJ,EAAC,CAA1O,CAA4OjJ,IAAIoB,MAAM+F,QAAQnH,MAAMA,EAAEkJ,QAAO,QAAQP,EAAE3I,EAAE6D,mBAAc,IAAS8E,OAAE,EAAOA,EAAEO,MAAKpJ,EAAEE,IAAImJ,EAAEnJ,GAAG,CAA2C,SAASD,EAAEC,EAAE2I,EAAE9I,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAIwI,EAAErI,IAAIH,EAAEF,OAAOuF,KAAKkE,IAAIpJ,GAAGqJ,QAAO,SAAW3I,GAAGb,GAAG,iBAAiBa,GAAGiI,EAAEjI,EAAEV,EAAEU,GAAGV,EAAG,GAAGA,EAAEqJ,QAAO,SAAWxJ,EAAEa,GAAG,OAAOiI,EAAEjI,EAAEb,EAAEG,EAAG,EAAE,CAAC,SAASqI,EAAErI,GAAG,IAAI2I,EAAE3I,EAAE8I,IAAG,OAAOH,EAAEA,EAAE5I,EAAE,EAAE4I,EAAE5I,EAAE,EAAE4I,EAAE5I,EAAEqB,MAAM+F,QAAQnH,GAAG,EAAEF,EAAEE,GAAG,EAAEmJ,EAAEnJ,GAAG,EAAE,CAAC,CAAC,SAASsJ,EAAEtJ,EAAE2I,GAAG,OAAO,IAAIN,EAAErI,GAAGA,EAAEuJ,IAAIZ,GAAGhJ,OAAOS,UAAUC,eAAeC,KAAKN,EAAE2I,EAAE,CAA+C,SAASa,EAAExJ,EAAE2I,EAAE9I,GAAG,IAAIa,EAAE2H,EAAErI,GAAG,IAAIU,EAAEV,EAAEyJ,IAAId,EAAE9I,GAAG,IAAIa,EAAEV,EAAE0J,IAAI7J,GAAGG,EAAE2I,GAAG9I,CAAC,CAAyD,SAASC,EAAEE,GAAG,OAAO2J,IAAG3J,aAAa4J,GAAG,CAAC,SAAST,EAAEnJ,GAAG,OAAO6J,IAAG7J,aAAa8J,GAAG,CAAC,SAAS3J,EAAEH,GAAG,OAAOA,EAAEqI,GAAGrI,EAAEH,CAAC,CAAC,SAASsB,EAAEnB,GAAG,GAAGoB,MAAM+F,QAAQnH,GAAG,OAAOoB,MAAMhB,UAAUiB,MAAMf,KAAKN,GAAG,IAAI2I,EAAEoB,GAAG/J,UAAU2I,EAAEG,IAAG,IAAI,IAAIjJ,EAAEuJ,GAAGT,GAAGjI,EAAE,EAAEA,EAAEb,EAAEK,OAAOQ,IAAI,CAAC,IAAIX,EAAEF,EAAEa,GAAG2H,EAAEM,EAAE5I,IAAG,IAAKsI,EAAE7B,WAAW6B,EAAE7B,UAAS,EAAG6B,EAAEpC,cAAa,IAAKoC,EAAE5C,KAAK4C,EAAEoB,OAAOd,EAAE5I,GAAG,CAACkG,cAAa,EAAGO,UAAS,EAAGF,WAAW+B,EAAE/B,WAAWhD,MAAMtD,EAAED,IAAI,CAAC,OAAOJ,OAAOqK,OAAOrK,OAAOoJ,eAAe/I,GAAG2I,EAAE,CAAC,SAASsB,EAAEjK,EAAEU,GAAG,YAAO,IAASA,IAAIA,GAAE,GAAIwJ,EAAElK,IAAI2I,EAAE3I,KAAKH,EAAEG,KAAKqI,EAAErI,GAAG,IAAIA,EAAEyJ,IAAIzJ,EAAE0J,IAAI1J,EAAEmK,MAAMnK,EAAEoK,OAAOC,GAAG1K,OAAOsF,OAAOjF,GAAGU,GAAGX,EAAEC,EAAC,SAAWA,EAAE2I,GAAG,OAAOsB,EAAEtB,GAAE,EAAI,GAAE,IAAK3I,CAAC,CAAC,SAASqK,IAAIrK,EAAE,EAAE,CAAC,SAASkK,EAAElK,GAAG,OAAO,MAAMA,GAAG,iBAAiBA,GAAGL,OAAO2K,SAAStK,EAAE,CAAC,SAASuK,EAAE5B,GAAG,IAAI9I,EAAE2K,GAAG7B,GAAG,OAAO9I,GAAGG,EAAE,GAAG2I,GAAG9I,CAAC,CAAkC,SAAS4K,IAAI,MAAM,eAAejJ,QAAQC,IAAIC,UAAUgJ,IAAG1K,EAAE,GAAG0K,EAAC,CAAC,SAASC,EAAE3K,EAAE2I,GAAGA,IAAI4B,EAAE,WAAWvK,EAAEsJ,EAAE,GAAGtJ,EAAEF,EAAE,GAAGE,EAAEmJ,EAAER,EAAE,CAAC,SAASiC,EAAE5K,GAAG6K,EAAE7K,GAAGA,EAAEG,EAAEkJ,QAAQyB,GAAG9K,EAAEG,EAAE,IAAI,CAAC,SAAS0K,EAAE7K,GAAGA,IAAI0K,KAAIA,GAAE1K,EAAEmB,EAAE,CAAC,SAAS4J,EAAE/K,GAAG,OAAO0K,GAAE,CAACvK,EAAE,GAAGgB,EAAEuJ,GAAEL,EAAErK,EAAEgL,GAAE,EAAGP,EAAE,EAAE,CAAC,SAASK,EAAE9K,GAAG,IAAI2I,EAAE3I,EAAE8I,IAAG,IAAIH,EAAE5I,GAAG,IAAI4I,EAAE5I,EAAE4I,EAAEgC,IAAIhC,EAAEiC,GAAE,CAAE,CAAC,SAASK,EAAEtC,EAAEjI,GAAGA,EAAE+J,EAAE/J,EAAEP,EAAED,OAAO,IAAIH,EAAEW,EAAEP,EAAE,GAAGkI,OAAE,IAASM,GAAGA,IAAI5I,EAAE,OAAOW,EAAE2J,EAAEQ,GAAGN,EAAE,OAAOO,EAAEpK,EAAEiI,EAAEN,GAAGA,GAAGtI,EAAE+I,IAAGmC,IAAIL,EAAElK,GAAGV,EAAE,IAAIH,EAAE8I,KAAKA,EAAEuC,EAAExK,EAAEiI,GAAGjI,EAAES,GAAGiC,EAAE1C,EAAEiI,IAAIjI,EAAE4I,GAAGiB,EAAE,WAAWW,EAAEnL,EAAE+I,IAAGjJ,EAAE8I,EAAEjI,EAAE4I,EAAE5I,EAAEZ,IAAI6I,EAAEuC,EAAExK,EAAEX,EAAE,IAAI6K,EAAElK,GAAGA,EAAE4I,GAAG5I,EAAEyI,EAAEzI,EAAE4I,EAAE5I,EAAEZ,GAAG6I,IAAIwC,GAAExC,OAAE,CAAM,CAAC,SAASuC,EAAElL,EAAE2I,EAAE9I,GAAG,GAAGqK,EAAEvB,GAAG,OAAOA,EAAE,IAAIjI,EAAEiI,EAAEG,IAAG,IAAIpI,EAAE,OAAOX,EAAE4I,EAAC,SAAW5I,EAAEsI,GAAG,OAAO1B,EAAE3G,EAAEU,EAAEiI,EAAE5I,EAAEsI,EAAExI,EAAG,GAAE,GAAI8I,EAAE,GAAGjI,EAAEiG,IAAI3G,EAAE,OAAO2I,EAAE,IAAIjI,EAAEuK,EAAE,OAAO7H,EAAEpD,EAAEU,EAAEb,GAAE,GAAIa,EAAEb,EAAE,IAAIa,EAAE0K,EAAE,CAAC1K,EAAE0K,GAAE,EAAG1K,EAAEiG,EAAE8D,IAAI,IAAIpC,EAAE,IAAI3H,EAAEX,GAAG,IAAIW,EAAEX,EAAEW,EAAE2H,EAAElH,EAAET,EAAE0E,GAAG1E,EAAE2H,EAAEiB,EAAEjB,EAAEgD,GAAE,EAAG,IAAI3K,EAAEX,IAAIuJ,EAAE,IAAIQ,IAAIzB,GAAGA,EAAE8B,QAAQkB,GAAE,GAAItL,EAAEuJ,EAAC,SAAWX,EAAE5I,GAAG,OAAO4G,EAAE3G,EAAEU,EAAE2H,EAAEM,EAAE5I,EAAEF,EAAEwL,EAAG,GAAGjI,EAAEpD,EAAEqI,GAAE,GAAIxI,GAAGG,EAAEsJ,GAAGiB,EAAE,WAAWe,EAAE5K,EAAEb,EAAEG,EAAEsJ,EAAEtJ,EAAEF,EAAE,CAAC,OAAOY,EAAE2H,CAAC,CAAC,SAAS1B,EAAEjG,EAAEX,EAAEsI,EAAEgD,EAAEE,EAAEzL,EAAEqJ,GAAG,GAAG,eAAe3H,QAAQC,IAAIC,UAAU6J,IAAIlD,GAAGrI,EAAE,GAAG2I,EAAE4C,GAAG,CAAC,IAAIpL,EAAE+K,EAAExK,EAAE6K,EAAEzL,GAAGC,GAAG,IAAIA,EAAEA,IAAIuJ,EAAEvJ,EAAEyL,EAAEH,GAAGvL,EAAEwB,OAAO+J,QAAG,GAAQ,GAAG7B,EAAEnB,EAAEgD,EAAElL,IAAIwI,EAAExI,GAAG,OAAOO,EAAEsK,GAAE,CAAE,MAAM7B,GAAGd,EAAEqB,IAAI6B,GAAG,GAAG1L,EAAE0L,KAAKrB,EAAEqB,GAAG,CAAC,IAAI7K,EAAE2J,EAAEoB,GAAG/K,EAAE+J,EAAE,EAAE,OAAOS,EAAExK,EAAE6K,GAAGxL,GAAGA,EAAE4G,EAAExF,GAAGiC,EAAE1C,EAAE6K,EAAE,CAAC,CAAC,SAASnI,EAAEpD,EAAE2I,EAAE9I,QAAG,IAASA,IAAIA,GAAE,IAAKG,EAAEmB,GAAGnB,EAAEqK,EAAEoB,GAAGzL,EAAEgL,GAAGf,EAAEtB,EAAE9I,EAAE,CAAC,SAAS6L,EAAE1L,EAAE2I,GAAG,IAAI9I,EAAEG,EAAE8I,IAAG,OAAOjJ,EAAEM,EAAEN,GAAGG,GAAG2I,EAAE,CAAC,SAASyC,EAAEpL,EAAE2I,GAAG,GAAGA,KAAK3I,EAAE,IAAI,IAAIH,EAAEF,OAAOoJ,eAAe/I,GAAGH,GAAG,CAAC,IAAIa,EAAEf,OAAO6F,yBAAyB3F,EAAE8I,GAAG,GAAGjI,EAAE,OAAOA,EAAEb,EAAEF,OAAOoJ,eAAelJ,EAAE,CAAC,CAAC,SAASuF,EAAEpF,GAAGA,EAAEiL,IAAIjL,EAAEiL,GAAE,EAAGjL,EAAEmB,GAAGiE,EAAEpF,EAAEmB,GAAG,CAAC,SAASwK,GAAE3L,GAAGA,EAAEqI,IAAIrI,EAAEqI,EAAElH,EAAEnB,EAAEH,GAAG,CAAC,SAASyL,GAAEtL,EAAE2I,EAAE9I,GAAG,IAAIa,EAAEZ,EAAE6I,GAAG4B,EAAE,UAAUqB,EAAEjD,EAAE9I,GAAGsJ,EAAER,GAAG4B,EAAE,UAAUsB,EAAElD,EAAE9I,GAAGG,EAAE6K,EAAE,SAAS7K,EAAE2I,GAAG,IAAI9I,EAAEuB,MAAM+F,QAAQnH,GAAGU,EAAE,CAACX,EAAEF,EAAE,EAAE,EAAE8G,EAAEgC,EAAEA,EAAEhC,EAAE8D,IAAIQ,GAAE,EAAGG,GAAE,EAAGI,EAAE,CAAA,EAAGrK,EAAEwH,EAAE9I,EAAEG,EAAEoF,EAAE,KAAKiD,EAAE,KAAKsC,EAAE,KAAKmB,GAAE,GAAI/L,EAAEW,EAAE2H,EAAE0D,GAAGlM,IAAIE,EAAE,CAACW,GAAG2H,EAAE2D,IAAI,IAAI1C,EAAE2C,MAAMC,UAAUnM,EAAEsI,GAAGgD,EAAE/B,EAAE6C,OAAO3C,EAAEF,EAAE8C,MAAM,OAAO1L,EAAE0E,EAAEoE,EAAE9I,EAAEiK,EAAEU,EAAE7B,CAAC,CAA3M,CAA6Mb,EAAE9I,GAAG0K,EAAE,OAAO8B,EAAE1D,EAAE9I,GAAG,OAAOA,EAAEA,EAAE8G,EAAE8D,KAAKtK,EAAEmM,KAAK5L,GAAGA,CAAC,CAAC,SAAS8K,GAAE9K,GAAG,OAAOiI,EAAEjI,IAAIV,EAAE,GAAGU,GAAG,SAASV,EAAE2I,GAAG,IAAI9I,EAAE8I,GAAG,OAAOA,EAAE,IAAIjI,EAAE4I,EAAEX,EAAEG,IAAGyC,EAAElD,EAAEM,GAAG,GAAGW,EAAE,CAAC,IAAIA,EAAE2B,IAAI3B,EAAEvJ,EAAE,IAAIwK,EAAE,OAAOgC,EAAEjD,IAAI,OAAOA,EAAEzJ,EAAEyJ,EAAE8B,GAAE,EAAG1K,EAAE+K,GAAE9C,EAAE4C,GAAGjC,EAAE8B,GAAE,CAAE,MAAM1K,EAAE+K,GAAE9C,EAAE4C,GAAG,OAAOxL,EAAEW,EAAC,SAAWiI,EAAE9I,GAAGyJ,GAA55F,SAAWtJ,EAAE2I,GAAG,OAAO,IAAIN,EAAErI,GAAGA,EAAEyF,IAAIkD,GAAG3I,EAAE2I,EAAE,CAAk3F0C,CAAE/B,EAAEzJ,EAAE8I,KAAK9I,GAAG2J,EAAE9I,EAAEiI,EAAE3I,EAAEH,GAAI,GAAG,IAAI0L,EAAE,IAAIzB,IAAIpJ,GAAGA,CAAC,CAAvN,CAAyNA,EAAE,CAAC,SAAS+K,GAAEzL,EAAE2I,GAAG,OAAOA,GAAG,KAAK,EAAE,OAAO,IAAIiB,IAAI5J,GAAG,KAAK,EAAE,OAAOoB,MAAMJ,KAAKhB,GAAG,OAAOmB,EAAEnB,EAAE,CAA+tO,IAACwM,GAAE9B,GAAE+B,GAAE,oBAAoB9I,QAAQ,iBAAiBA,OAAO,KAAKgG,GAAE,oBAAoBC,IAAIC,GAAE,oBAAoBC,IAAI4C,GAAE,oBAAoBT,YAAO,IAASA,MAAMC,WAAW,oBAAoBS,QAAQxB,GAAEsB,GAAE9I,OAAOsD,IAAI,mBAAmBuF,GAAE,CAAA,GAAI,kBAAiB,EAAGA,IAAGtD,GAAEuD,GAAE9I,OAAOsD,IAAI,mBAAmB,qBAAqB6B,GAAE2D,GAAE9I,OAAOsD,IAAI,eAAe,iBAA6E2B,GAAE,CAAC,EAAE,gBAAgB,EAAE,+CAA+C,EAAE,wDAAwD,EAAE,SAAS5I,GAAG,MAAM,uHAAuHA,CAAC,EAAE,EAAE,oHAAoH,EAAE,oCAAoC,EAAE,+DAA+D,EAAE,kEAAkE,EAAE,2FAA2F,EAAE,4EAA4E,GAAG,uCAAuC,GAAG,2DAA2D,GAAG,2DAA2D,GAAG,6CAA6C,GAAG,sEAAsE,GAAG,SAASA,GAAG,MAAM,6CAA6CA,CAAC,EAAE,GAAG,sCAAsC,GAAG,SAASA,GAAG,MAAM,gCAAgCA,CAAC,EAAE,GAAG,SAASA,GAAG,MAAM,mBAAmBA,EAAE,kFAAkFA,EAAE,yCAAyC,EAAE,GAAG,4EAA4E,GAAG,SAASA,GAAG,MAAM,sJAAsJA,EAAE,GAAG,EAAE,GAAG,SAASA,GAAG,MAAM,mCAAmCA,CAAC,EAAE,GAAG,SAASA,GAAG,MAAM,oCAAoCA,CAAC,EAAE,GAAG,yFAAyFiJ,GAAE,GAAGtJ,OAAOS,UAAUyD,YAAYuF,GAAG,oBAAoBuD,SAASA,QAAQC,QAAQD,QAAQC,aAAQ,IAASjN,OAAOiB,sBAAsB,SAASZ,GAAG,OAAOL,OAAOkN,oBAAoB7M,GAAGsB,OAAO3B,OAAOiB,sBAAsBZ,GAAG,EAAEL,OAAOkN,oBAAoB9C,GAAGpK,OAAOmN,2BAA2B,SAAS9M,GAAG,IAAI2I,EAAE,CAAA,EAAG,OAAOS,GAAGpJ,GAAGqJ,QAAO,SAAWxJ,GAAG8I,EAAE9I,GAAGF,OAAO6F,yBAAyBxF,EAAEH,EAAG,GAAG8I,CAAC,EAAE6B,GAAG,CAAA,EAAGuB,GAAG,CAACtG,IAAI,SAASzF,EAAE2I,GAAG,GAAGA,IAAIG,GAAE,OAAO9I,EAAE,IAAIU,EAAEP,EAAEH,GAAG,IAAIsJ,EAAE5I,EAAEiI,GAAG,OAAO,SAAS3I,EAAE2I,EAAE9I,GAAG,IAAIa,EAAEX,EAAEqL,EAAEzC,EAAE9I,GAAG,OAAOE,EAAE,UAAUA,EAAEA,EAAEuD,MAAM,QAAQ5C,EAAEX,EAAE0F,WAAM,IAAS/E,OAAE,EAAOA,EAAEJ,KAAKN,EAAEoF,QAAG,CAAM,CAAlH,CAAoHpF,EAAEU,EAAEiI,GAAG,IAAI5I,EAAEW,EAAEiI,GAAG,OAAO3I,EAAEoL,IAAIvL,EAAEE,GAAGA,EAAEA,IAAI2L,EAAE1L,EAAEH,EAAE8I,IAAIgD,GAAE3L,GAAGA,EAAEqI,EAAEM,GAAG2C,GAAEtL,EAAE2G,EAAE0D,EAAEtK,EAAEC,IAAID,CAAC,EAAEwJ,IAAI,SAASvJ,EAAE2I,GAAG,OAAOA,KAAKxI,EAAEH,EAAE,EAAE4M,QAAQ,SAAS5M,GAAG,OAAO2M,QAAQC,QAAQzM,EAAEH,GAAG,EAAEyJ,IAAI,SAASzJ,EAAE2I,EAAE9I,GAAG,IAAIa,EAAE0K,EAAEjL,EAAEH,GAAG2I,GAAG,GAAG,MAAMjI,OAAE,EAAOA,EAAE+I,IAAI,OAAO/I,EAAE+I,IAAInJ,KAAKN,EAAEoF,EAAEvF,IAAG,EAAG,IAAIG,EAAEiL,EAAE,CAAC,IAAIlL,EAAE2L,EAAEvL,EAAEH,GAAG2I,GAAGN,EAAE,MAAMtI,OAAE,EAAOA,EAAE+I,IAAG,GAAGT,GAAGA,EAAExI,IAAIA,EAAE,OAAOG,EAAEqI,EAAEM,GAAG9I,EAAEG,EAAEwL,EAAE7C,IAAG,GAAG,EAAG,GAA/va,SAAW3I,EAAE2I,GAAG,OAAO3I,IAAI2I,EAAE,IAAI3I,GAAG,EAAEA,GAAG,EAAE2I,EAAE3I,GAAGA,GAAG2I,GAAGA,CAAC,CAA2sa4C,CAAE1L,EAAEE,UAAK,IAASF,GAAGyJ,EAAEtJ,EAAEH,EAAE8I,IAAI,OAAM,EAAGgD,GAAE3L,GAAGoF,EAAEpF,EAAE,CAAC,OAAOA,EAAEqI,EAAEM,KAAK9I,SAAI,IAASA,GAAG8I,KAAK3I,EAAEqI,IAAI0E,OAAOC,MAAMnN,IAAIkN,OAAOC,MAAMhN,EAAEqI,EAAEM,MAAM3I,EAAEqI,EAAEM,GAAG9I,EAAEG,EAAEwL,EAAE7C,IAAG,IAAI,CAAE,EAAEsE,eAAe,SAASjN,EAAE2I,GAAG,YAAO,IAAS+C,EAAE1L,EAAEH,EAAE8I,IAAIA,KAAK3I,EAAEH,GAAGG,EAAEwL,EAAE7C,IAAG,EAAGgD,GAAE3L,GAAGoF,EAAEpF,WAAWA,EAAEwL,EAAE7C,GAAG3I,EAAEqI,UAAUrI,EAAEqI,EAAEM,IAAG,CAAE,EAAEnD,yBAAyB,SAASxF,EAAE2I,GAAG,IAAI9I,EAAEM,EAAEH,GAAGU,EAAEiM,QAAQnH,yBAAyB3F,EAAE8I,GAAG,OAAOjI,EAAE,CAAC8F,UAAS,EAAGP,aAAa,IAAIjG,EAAED,GAAG,WAAW4I,EAAErC,WAAW5F,EAAE4F,WAAWhD,MAAMzD,EAAE8I,IAAIjI,CAAC,EAAEsF,eAAe,WAAWhG,EAAE,GAAG,EAAE+I,eAAe,SAAS/I,GAAG,OAAOL,OAAOoJ,eAAe/I,EAAEH,EAAE,EAAEqN,eAAe,WAAWlN,EAAE,GAAG,GAAGgM,GAAG,CAAA,EAAGjM,EAAEgM,GAAE,SAAW/L,EAAE2I,GAAGqD,GAAGhM,GAAG,WAAW,OAAOC,UAAU,GAAGA,UAAU,GAAG,GAAG0I,EAAEpI,MAAMC,KAAKP,UAAU,CAAE,GAAG+L,GAAGiB,eAAe,SAAStE,EAAE9I,GAAG,MAAM,eAAe2B,QAAQC,IAAIC,UAAUsL,MAAMG,SAAStN,KAAKG,EAAE,IAAIgM,GAAGvC,IAAInJ,KAAKE,KAAKmI,EAAE9I,OAAE,EAAO,EAAEmM,GAAGvC,IAAI,SAASd,EAAE9I,EAAEa,GAAG,MAAM,eAAec,QAAQC,IAAIC,UAAU,WAAW7B,GAAGmN,MAAMG,SAAStN,KAAKG,EAAE,IAAI+L,GAAGtC,IAAInJ,KAAKE,KAAKmI,EAAE,GAAG9I,EAAEa,EAAEiI,EAAE,GAAG,EAAK,IAACyE,GAAG,WAAW,SAAS1M,EAAEiI,GAAG,IAAIjI,EAAEF,KAAKA,KAAKqK,EAAE6B,GAAElM,KAAKiL,GAAE,EAAGjL,KAAK6M,QAAQ,SAAS1E,EAAE5I,EAAEsI,GAAG,GAAG,mBAAmBM,GAAG,mBAAmB5I,EAAE,CAAC,IAAIuJ,EAAEvJ,EAAEA,EAAE4I,EAAE,IAAI0C,EAAE3K,EAAE,OAAO,SAASV,GAAG,IAAI2I,EAAEnI,UAAK,IAASR,IAAIA,EAAEsJ,GAAG,IAAI,IAAIzJ,EAAEI,UAAUC,OAAOQ,EAAEU,MAAMvB,EAAE,EAAEA,EAAE,EAAE,GAAGwI,EAAE,EAAEA,EAAExI,EAAEwI,IAAI3H,EAAE2H,EAAE,GAAGpI,UAAUoI,GAAG,OAAOgD,EAAEgC,QAAQrN,EAAC,SAAWA,GAAG,IAAIH,EAAE,OAAOA,EAAEE,GAAGO,KAAKC,MAAMV,EAAE,CAAC8I,EAAE3I,GAAGsB,OAAOZ,GAAI,EAAE,CAAC,CAAC,IAAI8I,EAAE,GAAG,mBAAmBzJ,GAAGC,EAAE,QAAG,IAASqI,GAAG,mBAAmBA,GAAGrI,EAAE,GAAGH,EAAE8I,GAAG,CAAC,IAAI4C,EAAER,EAAErK,GAAGZ,EAAEwL,GAAE5K,EAAEiI,OAAE,GAAQQ,GAAE,EAAG,IAAIK,EAAEzJ,EAAED,GAAGqJ,GAAE,CAAE,CAAC,QAAQA,EAAEyB,EAAEW,GAAGV,EAAEU,EAAE,CAAC,MAAM,oBAAoB+B,SAAS9D,aAAa8D,QAAQ9D,EAAE+D,KAAI,SAAWvN,GAAG,OAAO2K,EAAEY,EAAElD,GAAG4C,EAAEjL,EAAEuL,EAAG,EAAA,SAAYvL,GAAG,MAAM4K,EAAEW,GAAGvL,CAAE,IAAI2K,EAAEY,EAAElD,GAAG4C,EAAEzB,EAAE+B,GAAG,CAAC,IAAI5C,GAAG,iBAAiBA,EAAE,CAAC,QAAG,KAAUa,EAAEzJ,EAAE4I,MAAMa,EAAEb,GAAGa,IAAI2B,KAAI3B,OAAE,GAAQ9I,EAAE+K,GAAGxB,EAAET,GAAE,GAAInB,EAAE,CAAC,IAAIlI,EAAE,GAAGgB,EAAE,GAAGoJ,EAAE,WAAWW,EAAEvC,EAAEa,EAAErJ,EAAEgB,GAAGkH,EAAElI,EAAEgB,EAAE,CAAC,OAAOqI,CAAC,CAACxJ,EAAE,GAAG2I,EAAE,EAAEnI,KAAKgN,mBAAmB,SAASxN,EAAE2I,GAAG,GAAG,mBAAmB3I,EAAE,OAAO,SAAS2I,GAAG,IAAI,IAAI9I,EAAEI,UAAUC,OAAOH,EAAEqB,MAAMvB,EAAE,EAAEA,EAAE,EAAE,GAAGwI,EAAE,EAAEA,EAAExI,EAAEwI,IAAItI,EAAEsI,EAAE,GAAGpI,UAAUoI,GAAG,OAAO3H,EAAE8M,mBAAmB7E,EAAC,SAAWA,GAAG,OAAO3I,EAAEO,WAAM,EAAO,CAACoI,GAAGrH,OAAOvB,GAAI,EAAE,EAAE,IAAIF,EAAEE,EAAEsI,EAAE3H,EAAE2M,QAAQrN,EAAE2I,EAAC,SAAW3I,EAAE2I,GAAG9I,EAAEG,EAAED,EAAE4I,CAAE,GAAG,MAAM,oBAAoB2E,SAASjF,aAAaiF,QAAQjF,EAAEkF,KAAI,SAAWvN,GAAG,MAAM,CAACA,EAAEH,EAAEE,EAAG,GAAG,CAACsI,EAAExI,EAAEE,EAAE,EAAE,kBAAkB,MAAM4I,OAAE,EAAOA,EAAE8E,aAAajN,KAAKkN,cAAc/E,EAAE8E,YAAY,kBAAkB,MAAM9E,OAAE,EAAOA,EAAEgF,aAAanN,KAAKoN,cAAcjF,EAAEgF,WAAW,CAAC,IAAI5N,EAAEW,EAAEN,UAAU,OAAOL,EAAE8N,YAAY,SAASnN,GAAGb,EAAEa,IAAIV,EAAE,GAAG2I,EAAEjI,KAAKA,EAAE8K,GAAE9K,IAAI,IAAIX,EAAEgL,EAAEvK,MAAM6H,EAAEiD,GAAE9K,KAAKE,OAAE,GAAQ,OAAO2H,EAAES,IAAGgD,GAAE,EAAGjB,EAAE9K,GAAGsI,CAAC,EAAEtI,EAAE+N,YAAY,SAASnF,EAAE9I,GAAG,IAAIa,EAAEiI,GAAGA,EAAEG,IAAG,eAAetH,QAAQC,IAAIC,WAAWhB,GAAGA,EAAEoL,GAAG9L,EAAE,GAAGU,EAAE0K,GAAGpL,EAAE,KAAK,IAAID,EAAEW,EAAEiG,EAAE,OAAOgE,EAAE5K,EAAEF,GAAGoL,OAAE,EAAOlL,EAAE,EAAEA,EAAE6N,cAAc,SAAS5N,GAAGQ,KAAKiL,EAAEzL,CAAC,EAAED,EAAE2N,cAAc,SAAS/E,GAAGA,IAAI+D,IAAG1M,EAAE,IAAIQ,KAAKqK,EAAElC,CAAC,EAAE5I,EAAEgO,aAAa,SAAS/N,EAAEH,GAAG,IAAIa,EAAE,IAAIA,EAAEb,EAAEK,OAAO,EAAEQ,GAAG,EAAEA,IAAI,CAAC,IAAIX,EAAEF,EAAEa,GAAG,GAAG,IAAIX,EAAEiO,KAAK9N,QAAQ,YAAYH,EAAEkO,GAAG,CAACjO,EAAED,EAAEuD,MAAM,KAAK,CAAC,CAAC5C,GAAE,IAAKb,EAAEA,EAAEwB,MAAMX,EAAE,IAAI,IAAI2H,EAAEkC,EAAE,WAAW2D,EAAE,OAAOvF,EAAE3I,GAAGqI,EAAErI,EAAEH,GAAGW,KAAK6M,QAAQrN,EAAC,SAAWA,GAAG,OAAOqI,EAAErI,EAAEH,EAAG,EAAE,EAAEa,CAAC,CAAj7D,GAAq7DyN,GAAG,IAAIf,GAAGgB,GAAGD,GAAGd,QAAWc,GAAGX,mBAAmBjG,KAAK4G,IAAOA,GAAGP,cAAcrG,KAAK4G,IAAOA,GAAGT,cAAcnG,KAAK4G,IAAOA,GAAGJ,aAAaxG,KAAK4G,IAAG,IAACE,GAAGF,GAAGN,YAAYtG,KAAK4G,IAAIG,GAAGH,GAAGL,YAAYvG,KAAK4G,ICGhljBI,GAAU,CACZ,SAAAC,CAAU5P,EAAKqP,GACb,IAAIQ,QACFA,EAAOC,SACPA,GACE9P,EAEJ,GAAe,MAAX6P,EAAJ,CAIA,IAAIT,EAAOW,GAAKH,UAAUC,EAASR,EAAI,CACrCS,aAEF9P,EAAI6P,QAAUT,EAEF,MAARA,GACFpP,EAAIgQ,OARN,CAUF,GAIEC,GAAW,CACb,SAAAL,CAAU5P,EAAKqP,GACb,IAAIQ,QACFA,EAAOC,SACPA,GACE9P,EAEJ,GAAe,MAAX6P,EAAJ,CAIA,IAAIK,EAAQC,GAAMP,UAAUC,EAASR,EAAI,CACvCS,aAEF9P,EAAI6P,QAAUK,EAED,MAATA,GACFlQ,EAAIgQ,OARN,CAUF,GAIEI,GAAW,CACb,SAAAR,CAAU5P,EAAKqP,GACb,IAAIQ,QACFA,EAAOC,SACPA,GACE9P,EAEJ,GAAe,MAAX6P,EAAJ,CAIA,IAAIT,EAAOiB,GAAMT,UAAUC,EAASR,EAAI,CACtCS,aAEF9P,EAAI6P,QAAUT,EAEF,MAARA,GACFpP,EAAIgQ,OARN,CAUF,GAIEM,GAAc,IAAIC,QAClBC,GAAkB,IAAID,QACtBE,GAAW,IAAIF,QACfG,GAAc,IAAIH,QAClBI,GAAY,IAAIJ,QAChBK,GAAa,IAAIL,QACjBM,GAAa,IAAIN,QAGjBR,GAAO,CACT,SAAAe,CAAU1B,GACR,IAAI2B,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9E2P,QACFA,GAAU,GACRD,EACAE,EAAQlB,GAAKmB,OAAO9B,EAAM2B,GAQ9B,OALEE,EADED,EACMC,EAAMxO,MAAM,GAEZwO,EAAMxO,MAAM,GAAG,EAI3B,EAEA,MAAA0O,CAAO/B,EAAMgC,GAGX,IAFA,IAAID,EAAS,GAEJhQ,EAAI,EAAGA,EAAIiO,EAAK9N,QAAUH,EAAIiQ,EAAQ9P,OAAQH,IAAK,CAC1D,IAAIkQ,EAAKjC,EAAKjO,GAGd,GAAIkQ,IAFKD,EAAQjQ,GAGf,MAGFgQ,EAAOzD,KAAK2D,EACd,CAEA,OAAOF,CACT,EAEA,OAAAG,CAAQlC,EAAMgC,GAGZ,IAFA,IAAIG,EAAMC,KAAKD,IAAInC,EAAK9N,OAAQ8P,EAAQ9P,QAE/BH,EAAI,EAAGA,EAAIoQ,EAAKpQ,IAAK,CAC5B,GAAIiO,EAAKjO,GAAKiQ,EAAQjQ,GAAI,OAAO,EACjC,GAAIiO,EAAKjO,GAAKiQ,EAAQjQ,GAAI,OAAO,CACnC,CAEA,OAAO,CACT,EAEA,SAAAsQ,CAAUrC,EAAMgC,GACd,IAAIjQ,EAAIiO,EAAK9N,OAAS,EAClBoQ,EAAKtC,EAAK3M,MAAM,EAAGtB,GACnBwQ,EAAKP,EAAQ3O,MAAM,EAAGtB,GACtBkQ,EAAKjC,EAAKjO,GACVyQ,EAAKR,EAAQjQ,GACjB,OAAO4O,GAAK8B,OAAOH,EAAIC,IAAON,EAAKO,CACrC,EAEA,MAAAE,CAAO1C,EAAMgC,GACX,IAAIjQ,EAAIiO,EAAK9N,OACToQ,EAAKtC,EAAK3M,MAAM,EAAGtB,GACnBwQ,EAAKP,EAAQ3O,MAAM,EAAGtB,GAC1B,OAAO4O,GAAK8B,OAAOH,EAAIC,EACzB,EAEA,UAAAI,CAAW3C,EAAMgC,GACf,IAAIjQ,EAAIiO,EAAK9N,OAAS,EAClBoQ,EAAKtC,EAAK3M,MAAM,EAAGtB,GACnBwQ,EAAKP,EAAQ3O,MAAM,EAAGtB,GACtBkQ,EAAKjC,EAAKjO,GACVyQ,EAAKR,EAAQjQ,GACjB,OAAO4O,GAAK8B,OAAOH,EAAIC,IAAON,EAAKO,CACrC,EAEAC,OAAM,CAACzC,EAAMgC,IACJhC,EAAK9N,SAAW8P,EAAQ9P,QAAU8N,EAAK4C,MAAM,CAAC5Q,EAAGD,IAAMC,IAAMgQ,EAAQjQ,IAG9E8Q,YAAY7C,GACHA,EAAKA,EAAK9N,OAAS,GAAK,EAGjC4Q,QAAO,CAAC9C,EAAMgC,IAC2B,IAAhCrB,GAAKuB,QAAQlC,EAAMgC,GAG5Be,WAAU,CAAC/C,EAAMgC,IACRhC,EAAK9N,OAAS8P,EAAQ9P,QAA0C,IAAhCyO,GAAKuB,QAAQlC,EAAMgC,GAG5DgB,SAAQ,CAAChD,EAAMgC,KAC0B,IAAhCrB,GAAKuB,QAAQlC,EAAMgC,GAG5BiB,QAAO,CAACjD,EAAMgC,IACLhC,EAAK9N,SAAW8P,EAAQ9P,OAAS,GAAqC,IAAhCyO,GAAKuB,QAAQlC,EAAMgC,GAGlEkB,SAAQ,CAAClD,EAAMgC,IACNhC,EAAK9N,QAAU8P,EAAQ9P,QAA0C,IAAhCyO,GAAKuB,QAAQlC,EAAMgC,GAG7DmB,aAAY,CAACnD,EAAMgC,IACVhC,EAAK9N,OAAS8P,EAAQ9P,QAA0C,IAAhCyO,GAAKuB,QAAQlC,EAAMgC,GAG5DoB,SAAQ,CAACpD,EAAMgC,IACNhC,EAAK9N,OAAS,IAAM8P,EAAQ9P,QAA0C,IAAhCyO,GAAKuB,QAAQlC,EAAMgC,GAGlEqB,OAAO/N,GACElC,MAAM+F,QAAQ7D,KAA4B,IAAjBA,EAAMpD,QAAoC,iBAAboD,EAAM,IAGrE,SAAAgO,CAAUtD,EAAMgC,GACd,GAAIhC,EAAK9N,SAAW8P,EAAQ9P,OAC1B,OAAO,EAGT,IAAIoQ,EAAKtC,EAAK3M,MAAM,GAAG,GACnBkP,EAAKP,EAAQ3O,MAAM,GAAG,GAG1B,OAFS2M,EAAKA,EAAK9N,OAAS,KACnB8P,EAAQA,EAAQ9P,OAAS,IACdyO,GAAK8B,OAAOH,EAAIC,EACtC,EAEA,MAAAT,CAAO9B,GAOL,IANA,IAAI2B,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9E2P,QACFA,GAAU,GACRD,EACA4B,EAAO,GAEFxR,EAAI,EAAGA,GAAKiO,EAAK9N,OAAQH,IAChCwR,EAAKjF,KAAK0B,EAAK3M,MAAM,EAAGtB,IAO1B,OAJI6P,GACF2B,EAAK3B,UAGA2B,CACT,EAEA,IAAAC,CAAKxD,GACH,GAAoB,IAAhBA,EAAK9N,OACP,MAAM,IAAI8D,MAAM,4CAA4C1C,OAAO0M,EAAM,qCAG3E,IAAIyD,EAAOzD,EAAKA,EAAK9N,OAAS,GAC9B,OAAO8N,EAAK3M,MAAM,GAAG,GAAIC,OAAOmQ,EAAO,EACzC,EAEA,yBAAAC,CAA0BC,GACxB,OAAQA,EAAUxS,MAChB,IAAK,cACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,YACH,OAAO,EAET,QACE,OAAO,EAEb,EAEA,MAAAyS,CAAO5D,GACL,GAAoB,IAAhBA,EAAK9N,OACP,MAAM,IAAI8D,MAAM,gDAAgD1C,OAAO0M,EAAM,OAG/E,OAAOA,EAAK3M,MAAM,KACpB,EAEA,QAAAwQ,CAAS7D,GACP,GAAoB,IAAhBA,EAAK9N,OACP,MAAM,IAAI8D,MAAM,gDAAgD1C,OAAO0M,EAAM,yCAG/E,IAAIyD,EAAOzD,EAAKA,EAAK9N,OAAS,GAE9B,GAAIuR,GAAQ,EACV,MAAM,IAAIzN,MAAM,uDAAuD1C,OAAO0M,EAAM,mDAGtF,OAAOA,EAAK3M,MAAM,GAAG,GAAIC,OAAOmQ,EAAO,EACzC,EAEA,QAAAK,CAAS9D,EAAM+D,GACb,IAAKpD,GAAKoC,WAAWgB,EAAU/D,KAAUW,GAAK8B,OAAOzC,EAAM+D,GACzD,MAAM,IAAI/N,MAAM,oCAAoC1C,OAAO0M,EAAM,uBAAuB1M,OAAOyQ,EAAU,qDAG3G,OAAO/D,EAAK3M,MAAM0Q,EAAS7R,OAC7B,EAEA,SAAAsO,CAAUR,EAAM2D,GACd,IAAIhC,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClF,IAAK+N,EAAM,OAAO,KAElB,IAAI7N,EAAI,IAAI6N,IACRU,SACFA,EAAW,WACTiB,EAEJ,GAAoB,IAAhB3B,EAAK9N,OACP,OAAOC,EAGT,OAAQwR,EAAUxS,MAChB,IAAK,cAED,IACE6O,KAAMC,GACJ0D,GAEAhD,GAAK8B,OAAOxC,EAAI9N,IAAMwO,GAAKgC,WAAW1C,EAAI9N,IAAMwO,GAAKoC,WAAW9C,EAAI9N,MACtEA,EAAE8N,EAAG/N,OAAS,IAAM,GAGtB,MAGJ,IAAK,cAED,IACE8N,KAAMgE,GACJL,EAEJ,GAAIhD,GAAK8B,OAAOuB,EAAK7R,IAAMwO,GAAKoC,WAAWiB,EAAK7R,GAC9C,OAAO,KACEwO,GAAKgC,WAAWqB,EAAK7R,KAC9BA,EAAE6R,EAAI9R,OAAS,IAAM,GAGvB,MAGJ,IAAK,aAED,IACE8N,KAAMiE,EAAIC,SACVA,GACEP,EAEAhD,GAAK8B,OAAOwB,EAAM9R,IAAMwO,GAAKgC,WAAWsB,EAAM9R,GAChDA,EAAE8R,EAAK/R,OAAS,IAAM,EACbyO,GAAKoC,WAAWkB,EAAM9R,KAC/BA,EAAE8R,EAAK/R,OAAS,IAAM,EACtBC,EAAE8R,EAAK/R,SAAWgS,GAGpB,MAGJ,IAAK,aAED,IACElE,KAAMmE,EACND,SAAUE,GACRT,EAEJ,GAAIhD,GAAK8B,OAAO0B,EAAMhS,IACpB,GAAiB,YAAbuO,EACFvO,EAAEA,EAAED,OAAS,IAAM,OACd,GAAiB,aAAbwO,EACT,OAAO,UAEAC,GAAKgC,WAAWwB,EAAMhS,GAC/BA,EAAEgS,EAAKjS,OAAS,IAAM,EACbyO,GAAKoC,WAAWoB,EAAMhS,IAAM6N,EAAKmE,EAAKjS,SAAWkS,IAC1DjS,EAAEgS,EAAKjS,OAAS,IAAM,EACtBC,EAAEgS,EAAKjS,SAAWkS,GAGpB,MAGJ,IAAK,YAED,IACEpE,KAAMqE,EACNC,QAASC,GACPZ,EAEJ,GAAIhD,GAAK8B,OAAO4B,EAAME,GACpB,OAAOpS,EAGT,GAAIwO,GAAKoC,WAAWsB,EAAMlS,IAAMwO,GAAK8B,OAAO4B,EAAMlS,GAAI,CACpD,IAAIqS,EAAOD,EAAIlR,QAMf,OAJIsN,GAAKgC,WAAW0B,EAAME,IAAQF,EAAKnS,OAASqS,EAAIrS,SAClDsS,EAAKH,EAAKnS,OAAS,IAAM,GAGpBsS,EAAKlR,OAAOnB,EAAEkB,MAAMgR,EAAKnS,QAClC,CAAWyO,GAAK2C,UAAUe,EAAME,KAAS5D,GAAKoC,WAAWwB,EAAKpS,IAAMwO,GAAK8B,OAAO8B,EAAKpS,IAC/EwO,GAAKgC,WAAW0B,EAAMlS,GACxBA,EAAEkS,EAAKnS,OAAS,IAAM,EAEtBC,EAAEkS,EAAKnS,OAAS,IAAM,EAEfyO,GAAKgC,WAAW4B,EAAKpS,IAAMwO,GAAK8B,OAAO8B,EAAKpS,IAAMwO,GAAKoC,WAAWwB,EAAKpS,IAC5EwO,GAAKgC,WAAW0B,EAAMlS,KACxBA,EAAEkS,EAAKnS,OAAS,IAAM,GAGxBC,EAAEoS,EAAIrS,OAAS,IAAM,GACZyO,GAAKgC,WAAW0B,EAAMlS,KAC3BwO,GAAK8B,OAAO8B,EAAKpS,KACnBA,EAAEoS,EAAIrS,OAAS,IAAM,GAGvBC,EAAEkS,EAAKnS,OAAS,IAAM,GAO9B,OAAOC,CACT,GAIF,SAASsS,GAAgBC,EAAK/M,EAAKrC,GAYjC,OAXIqC,KAAO+M,EACT/S,OAAOqG,eAAe0M,EAAK/M,EAAK,CAC9BrC,MAAOA,EACPgD,YAAY,EACZL,cAAc,EACdO,UAAU,IAGZkM,EAAI/M,GAAOrC,EAGNoP,CACT,CAEA,SAASC,GAAUC,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAAS8N,GAAgBC,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAK4S,GAAUhT,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBkO,GAAUhT,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAE3hB,IAiVIE,GAAoB,CACtB,SAAA3E,CAAU4E,EAAQnF,GAChBmF,EAAOtO,SAAW+I,GAAYuF,EAAOtO,UACrC,IAAIuO,EAAYD,EAAOC,WAAaxF,GAAYuF,EAAOC,WAEvD,IACEA,EAvVa,EAACD,EAAQC,EAAWpF,KACrC,OAAQA,EAAG9O,MACT,IAAK,cAED,IAAI6O,KACFA,EAAInH,KACJA,GACEoH,EACA2D,EAAS0B,GAAK1B,OAAOwB,EAAQpF,GAC7BuF,EAAQvF,EAAKA,EAAK9N,OAAS,GAE/B,GAAIqT,EAAQ3B,EAAO9M,SAAS5E,OAC1B,MAAM,IAAI8D,MAAM,oDAAsD1C,OAAO0M,EAAM,2DAKrF,GAFA4D,EAAO9M,SAAS0O,OAAOD,EAAO,EAAG1M,GAE7BwM,EACF,IAAK,IAAKvE,EAAOnJ,KAAQsJ,GAAMwE,OAAOJ,GACpCA,EAAU1N,GAAOoJ,GAAMP,UAAUM,EAAOb,GAI5C,MAGJ,IAAK,cAED,IACED,KAAM0F,EAAKC,OACXA,EAAMC,KACNA,GACE3F,EACJ,GAAoB,IAAhB2F,EAAK1T,OAAc,MAEvB,IAAI2T,EAAQP,GAAKQ,KAAKV,EAAQM,GAE1BK,EAASF,EAAMD,KAAKvS,MAAM,EAAGsS,GAE7BK,EAAQH,EAAMD,KAAKvS,MAAMsS,GAI7B,GAFAE,EAAMD,KAAOG,EAASH,EAAOI,EAEzBX,EACF,IAAK,IAAKY,EAAQC,KAASjF,GAAMwE,OAAOJ,GACtCA,EAAUa,GAAQnF,GAAMP,UAAUyF,EAAQhG,GAI9C,MAGJ,IAAK,aAED,IACED,KAAMmG,GACJlG,EAEAmG,EAASd,GAAK7N,IAAI2N,EAAQe,GAE1BE,EAAW1F,GAAKkD,SAASsC,GACzBG,EAAOhB,GAAK7N,IAAI2N,EAAQiB,GAExBE,EAAUjB,GAAK1B,OAAOwB,EAAQe,GAE9BK,EAASL,EAAOA,EAAOjU,OAAS,GAEpC,GAAIuU,GAAKC,OAAON,IAAWK,GAAKC,OAAOJ,GACrCA,EAAKV,MAAQQ,EAAOR,SACf,IAAKa,GAAKC,OAAON,IAAYK,GAAKC,OAAOJ,GAG9C,MAAM,IAAItQ,MAAM,kDAAoD1C,OAAO6S,EAAQ,wCAAwC7S,OAAOqT,GAASC,UAAUR,GAAS,KAAK9S,OAAOqT,GAASC,UAAUN,KAF7LA,EAAKxP,SAASwH,QAAQ8H,EAAOtP,SAG/B,CAIA,GAFAyP,EAAQzP,SAAS0O,OAAOgB,EAAQ,GAE5BnB,EACF,IAAK,IAAKwB,EAASC,KAAU7F,GAAMwE,OAAOJ,GACxCA,EAAUyB,GAAS/F,GAAMP,UAAUqG,EAAS5G,GAIhD,MAGJ,IAAK,YAED,IACED,KAAM+G,EAAMzC,QACZA,GACErE,EAEJ,GAAIU,GAAKoC,WAAWgE,EAAQzC,GAC1B,MAAM,IAAItO,MAAM,uBAAuB1C,OAAOyT,EAAQ,mBAAmBzT,OAAOgR,EAAS,gDAG3F,IAAI0C,EAAS1B,GAAK7N,IAAI2N,EAAQ2B,GAE1BE,EAAW3B,GAAK1B,OAAOwB,EAAQ2B,GAE/BG,EAAUH,EAAOA,EAAO7U,OAAS,GAOrC+U,EAASnQ,SAAS0O,OAAO0B,EAAS,GAElC,IAAIC,EAAWxG,GAAKH,UAAUuG,EAAQ9G,GAClCmH,EAAY9B,GAAK7N,IAAI2N,EAAQzE,GAAKiD,OAAOuD,IACzCE,EAAWF,EAASA,EAASjV,OAAS,GAG1C,GAFAkV,EAAUtQ,SAAS0O,OAAO6B,EAAU,EAAGL,GAEnC3B,EACF,IAAK,IAAKiC,EAASC,KAAUtG,GAAMwE,OAAOJ,GACxCA,EAAUkC,GAASxG,GAAMP,UAAU8G,EAASrH,GAIhD,MAGJ,IAAK,cAED,IACED,KAAMwH,GACJvH,EACAwH,EAAUD,EAAOA,EAAOtV,OAAS,GAQrC,GANeoT,GAAK1B,OAAOwB,EAAQoC,GAE1B1Q,SAAS0O,OAAOiC,EAAS,GAI9BpC,EACF,IAAK,IAAKqC,EAASC,KAAU1G,GAAMwE,OAAOJ,GAAY,CACpD,IAAIuC,EAAS7G,GAAMP,UAAUkH,EAASzH,GAEtC,GAAiB,MAAboF,GAA+B,MAAVuC,EACvBvC,EAAUsC,GAASC,MACd,CACL,IAAIC,OAAQ,EAERrE,OAAO,EAEX,IAAK,IAAKxR,EAAGG,KAAMmT,GAAKwC,MAAM1C,GAAS,CACrC,IAAgC,IAA5BzE,GAAKuB,QAAQ/P,EAAGqV,GAEb,CACLhE,EAAO,CAACxR,EAAGG,GACX,KACF,CAJE0V,EAAQ,CAAC7V,EAAGG,EAKhB,CAEA,IAAI4V,GAAa,EAEbF,GAASrE,IAETuE,EADEpH,GAAK8B,OAAOe,EAAK,GAAIgE,IACT7G,GAAKkC,YAAYW,EAAK,IAEvB7C,GAAKoB,OAAO8F,EAAM,GAAIL,GAAQtV,OAASyO,GAAKoB,OAAOyB,EAAK,GAAIgE,GAAQtV,QAIjF2V,IAAUE,GACZL,EAAQ1H,KAAO6H,EAAM,GACrBH,EAAQ/B,OAASkC,EAAM,GAAGjC,KAAK1T,QACtBsR,GACTkE,EAAQ1H,KAAOwD,EAAK,GACpBkE,EAAQ/B,OAAS,GAEjBN,EAAY,IAEhB,CACF,CAGF,MAGJ,IAAK,cAED,IACErF,KAAMgI,EACNrC,OAAQsC,EACRrC,KAAMsC,GACJjI,EACJ,GAAqB,IAAjBiI,EAAMhW,OAAc,MAExB,IAAIiW,EAAS7C,GAAKQ,KAAKV,EAAQ4C,GAE3BI,EAAUD,EAAOvC,KAAKvS,MAAM,EAAG4U,GAE/BI,EAASF,EAAOvC,KAAKvS,MAAM4U,EAAUC,EAAMhW,QAI/C,GAFAiW,EAAOvC,KAAOwC,EAAUC,EAEpBhD,EACF,IAAK,IAAKiD,EAASC,KAAUtH,GAAMwE,OAAOJ,GACxCA,EAAUkD,GAASxH,GAAMP,UAAU8H,EAASrI,GAIhD,MAGJ,IAAK,WAED,IACED,KAAMwI,EAAMC,WACZA,GAAUC,cACVA,IACEzI,EAEJ,GAAsB,IAAlBuI,EAAOtW,OACT,MAAM,IAAI8D,MAAM,2CAGlB,IAAI2S,GAASrD,GAAK7N,IAAI2N,EAAQoD,GAE9B,IAAK,IAAII,MAASF,GAAe,CAC/B,GAAc,aAAVE,IAAkC,SAAVA,GAC1B,MAAM,IAAI5S,MAAM,mBAAoB1C,OAAOsV,GAAO,yBAGpD,IAAItT,GAAQoT,GAAcE,IAEb,MAATtT,UACKqT,GAAOC,IAEdD,GAAOC,IAAStT,EAEpB,CAGA,IAAK,IAAIuT,MAASJ,GACXC,GAAcrW,eAAewW,YACzBF,GAAOE,IAIlB,MAGJ,IAAK,gBAED,IACEH,cAAeI,IACb7I,EAEJ,GAAsB,MAAlB6I,GACFzD,EAAYyD,OACP,CACL,GAAiB,MAAbzD,EAAmB,CACrB,IAAKpE,GAAM8H,QAAQD,IACjB,MAAM,IAAI9S,MAAM,mEAAqE1C,OAAOqT,GAASC,UAAUkC,IAAiB,yCAGlIzD,EAAYL,GAAgB,CAAA,EAAI8D,GAClC,CAEA,IAAK,IAAIE,MAASF,GAAgB,CAChC,IAAIG,GAASH,GAAeE,IAE5B,GAAc,MAAVC,GAAgB,CAClB,GAAc,WAAVD,IAAgC,UAAVA,GACxB,MAAM,IAAIhT,MAAM,sBAAuB1C,OAAO0V,GAAO,gCAGhD3D,EAAU2D,GACnB,MACE3D,EAAU2D,IAASC,EAEvB,CACF,CAEA,MAGJ,IAAK,aAED,IACEjJ,KAAMkJ,GAAMhF,SACZA,GACAuE,WAAYU,IACVlJ,EAEJ,GAAsB,IAAlBiJ,GAAOhX,OACT,MAAM,IAAI8D,MAAM,kDAAoD1C,OAAO4V,GAAQ,6CAGrF,IAKIE,GALAC,GAAS/D,GAAK7N,IAAI2N,EAAQ8D,IAE1BI,GAAWhE,GAAK1B,OAAOwB,EAAQ8D,IAE/BK,GAAUL,GAAOA,GAAOhX,OAAS,GAGrC,GAAIuU,GAAKC,OAAO2C,IAAS,CACvB,IAAIG,GAAWH,GAAOzD,KAAKvS,MAAM,EAAG6Q,IAEhCuF,GAAUJ,GAAOzD,KAAKvS,MAAM6Q,IAEhCmF,GAAOzD,KAAO4D,GACdJ,GAAUpE,GAAgBA,GAAgB,CAAA,EAAImE,IAAc,CAAA,EAAI,CAC9DvD,KAAM6D,IAEV,KAAO,CACL,IAAIC,GAAWL,GAAOvS,SAASzD,MAAM,EAAG6Q,IAEpCyF,GAAUN,GAAOvS,SAASzD,MAAM6Q,IAEpCmF,GAAOvS,SAAW4S,GAClBN,GAAUpE,GAAgBA,GAAgB,CAAA,EAAImE,IAAc,CAAA,EAAI,CAC9DrS,SAAU6S,IAEd,CAIA,GAFAL,GAASxS,SAAS0O,OAAO+D,GAAU,EAAG,EAAGH,IAErC/D,EACF,IAAK,IAAKuE,GAASC,MAAU5I,GAAMwE,OAAOJ,GACxCA,EAAUwE,IAAS9I,GAAMP,UAAUoJ,GAAS3J,GAQtD,OAAOoF,GAUSyE,CAAa1E,EAAQC,EAAWpF,EAC9C,CAAC,QACCmF,EAAOtO,SAAWgJ,GAAYsF,EAAOtO,UAGnCsO,EAAOC,UADLA,EACiB0E,EAAQ1E,GAAavF,GAAYuF,GAAaA,EAE9C,IAEvB,CACF,GAKE2E,GAAiB,CACnB,WAAAC,CAAY7E,EAAQ8E,EAAOvI,GACzByD,EAAO6E,YAAYC,EAAOvI,EAC5B,EAEA,SAAAwI,CAAU/E,EAAQzD,GAChByD,EAAO+E,UAAUxI,EACnB,EAEA,UAAAyI,CAAWhF,EAAQzD,GACjByD,EAAOgF,WAAWzI,EACpB,EAEA,SAAA0I,CAAUjF,EAAQzD,GAChByD,EAAOiF,UAAU1I,EACnB,EAEA,WAAA2I,CAAYlF,EAAQzD,GAClByD,EAAOkF,YAAY3I,EACrB,EAEA,QAAA4I,CAASnF,EAAQhP,EAAOuL,GACtByD,EAAOmF,SAASnU,EAAOuL,EACzB,EAEA,UAAA6I,CAAWpF,EAAQzD,GACjByD,EAAOoF,WAAW7I,EACpB,EAEA,UAAA8I,CAAWrF,EAAQhP,EAAOuL,GACxByD,EAAOqF,WAAWrU,EAAOuL,EAC3B,EAEA,WAAA+I,CAAYtF,EAAQzD,GAClByD,EAAOsF,YAAY/I,EACrB,EAEA,SAAAgJ,CAAUvF,EAAQwF,EAASjJ,GACzByD,EAAOuF,UAAUC,EAASjJ,EAC5B,GAKEkJ,GAAsB,CACxB,QAAAC,CAAS1F,EAAQzD,GACfyD,EAAO0F,SAASnJ,EAClB,EAEA,QAAAoJ,CAAS3F,GACPA,EAAO2F,UACT,EAEA,IAAAC,CAAK5F,EAAQzD,GACXyD,EAAO4F,KAAKrJ,EACd,EAEA,MAAAsJ,CAAO7F,EAAQH,GACbG,EAAO6F,OAAOhG,EAChB,EAEA,QAAAiG,CAAS9F,EAAQhP,EAAOuL,GACtByD,EAAO8F,SAAS9U,EAAOuL,EACzB,EAEA,YAAAwJ,CAAa/F,EAAQhP,GACnBgP,EAAO+F,aAAa/U,EACtB,GAeEgV,GAAc,CAACvS,EAAMmJ,KACvB,IAAK,IAAIrK,KAAOkB,EAAM,CACpB,IAAIwE,EAAIxE,EAAKlB,GACT4E,EAAIyF,EAAQrK,GAEhB,GAAI4C,EAAc8C,IAAM9C,EAAcgC,IACpC,IAAK6O,GAAY/N,EAAGd,GAAI,OAAO,OAC1B,GAAInJ,MAAM+F,QAAQkE,IAAMjK,MAAM+F,QAAQoD,GAAI,CAC/C,GAAIc,EAAEnL,SAAWqK,EAAErK,OAAQ,OAAO,EAElC,IAAK,IAAIH,EAAI,EAAGA,EAAIsL,EAAEnL,OAAQH,IAC5B,GAAIsL,EAAEtL,KAAOwK,EAAExK,GAAI,OAAO,CAE9B,MAAO,GAAIsL,IAAMd,EACf,OAAO,CAEX,CAQA,IAAK,IAAI2J,KAAQlE,EACf,QAAmBtH,IAAf7B,EAAKqN,SAAyCxL,IAAlBsH,EAAQkE,GACtC,OAAO,EAIX,OAAO,GAkBT,SAASmF,GAAyB5U,EAAQ6U,GACxC,GAAc,MAAV7U,EAAgB,MAAO,CAAA,EAC3B,IACIkB,EAAK5F,EADLkT,EAjBN,SAAuCxO,EAAQ6U,GAC7C,GAAc,MAAV7U,EAAgB,MAAO,CAAA,EAC3B,IAEIkB,EAAK5F,EAFLkT,EAAS,CAAA,EACTsG,EAAa5Z,OAAOuF,KAAKT,GAG7B,IAAK1E,EAAI,EAAGA,EAAIwZ,EAAWrZ,OAAQH,IACjC4F,EAAM4T,EAAWxZ,GACbuZ,EAAS3Y,QAAQgF,IAAQ,IAC7BsN,EAAOtN,GAAOlB,EAAOkB,IAGvB,OAAOsN,CACT,CAIeuG,CAA8B/U,EAAQ6U,GAGnD,GAAI3Z,OAAOiB,sBAAuB,CAChC,IAAI6Y,EAAmB9Z,OAAOiB,sBAAsB6D,GAEpD,IAAK1E,EAAI,EAAGA,EAAI0Z,EAAiBvZ,OAAQH,IACvC4F,EAAM8T,EAAiB1Z,GACnBuZ,EAAS3Y,QAAQgF,IAAQ,GACxBhG,OAAOS,UAAUS,qBAAqBP,KAAKmE,EAAQkB,KACxDsN,EAAOtN,GAAOlB,EAAOkB,GAEzB,CAEA,OAAOsN,CACT,CAEA,IAAIyG,GAAc,CAAC,SAAU,SAE7B,SAASC,GAAU/G,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAI1V,IAAI+J,GAAQ,CACV,KAAA2K,CAAMC,GACJ,IAAIlK,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9E2P,QACFA,GAAU,GACRD,GACAmK,OACFA,EAAMC,MACNA,GACEF,EACJ,OAAO5K,GAAM+K,WAAWH,KAAWjK,EAAU,CAACkK,EAAQC,GAAS,CAACA,EAAOD,EACzE,EAEA,GAAAG,CAAIJ,GACF,IAAI,CAAGI,GAAOhL,GAAM2K,MAAMC,GAC1B,OAAOI,CACT,EAEAxJ,OAAM,CAACoJ,EAAO7J,IACLjB,GAAM0B,OAAOoJ,EAAMC,OAAQ9J,EAAQ8J,SAAW/K,GAAM0B,OAAOoJ,EAAME,MAAO/J,EAAQ+J,OAGzF,QAAAG,CAASL,EAAO5G,GACd,GAAIhE,GAAM8H,QAAQ9D,GAAS,CACzB,GAAIhE,GAAMiL,SAASL,EAAO5G,EAAO6G,SAAW7K,GAAMiL,SAASL,EAAO5G,EAAO8G,OACvE,OAAO,EAGT,IAAKI,EAAIC,GAAMnL,GAAM2K,MAAMC,IACtBQ,EAAIC,GAAMrL,GAAM2K,MAAM3G,GAC3B,OAAOlE,GAAMiC,SAASmJ,EAAIE,IAAOtL,GAAM+B,QAAQsJ,EAAIE,EACrD,CAEA,IAAKC,EAAON,GAAOhL,GAAM2K,MAAMC,GAC3BW,GAAe,EACfC,GAAc,EAUlB,OARI1L,GAAM2L,QAAQzH,IAChBuH,EAAezL,GAAMmB,QAAQ+C,EAAQsH,IAAU,EAC/CE,EAAc1L,GAAMmB,QAAQ+C,EAAQgH,IAAQ,IAE5CO,EAAe7L,GAAKuB,QAAQ+C,EAAQsH,EAAMvM,OAAS,EACnDyM,EAAc9L,GAAKuB,QAAQ+C,EAAQgH,EAAIjM,OAAS,GAG3CwM,GAAgBC,CACzB,EAEA,YAAAE,CAAad,EAAO7J,GAClB,IAAI4K,EAAOvB,GAAyBQ,EAAOH,KAEtCmB,EAAIC,GAAM7L,GAAM2K,MAAMC,IACtBkB,EAAIC,GAAM/L,GAAM2K,MAAM5J,GACvBuK,EAAQxL,GAAMiC,SAAS6J,EAAIE,GAAMA,EAAKF,EACtCZ,EAAMlL,GAAMiC,SAAS8J,EAAIE,GAAMF,EAAKE,EAExC,OAAIjM,GAAMiC,SAASiJ,EAAKM,GACf,KA3Db,SAAyBtH,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAK4Z,GAAUha,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBkV,GAAUha,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CA6D9gBgI,CAAgB,CACrBnB,OAAQS,EACRR,MAAOE,GACNW,EAEP,EAEA,UAAAZ,CAAWH,GACT,IAAIC,OACFA,EAAMC,MACNA,GACEF,EACJ,OAAO9K,GAAM+B,QAAQgJ,EAAQC,EAC/B,EAEA,WAAAmB,CAAYrB,GACV,IAAIC,OACFA,EAAMC,MACNA,GACEF,EACJ,OAAO9K,GAAM0B,OAAOqJ,EAAQC,EAC9B,EAEAoB,WAAWtB,IACD5K,GAAMiM,YAAYrB,GAG5BuB,UAAUvB,IACA5K,GAAM+K,WAAWH,GAG3B9C,QAAQzT,GACCiF,EAAcjF,IAAUyL,GAAM2L,QAAQpX,EAAMwW,SAAW/K,GAAM2L,QAAQpX,EAAMyW,OAGpF,OAACtG,CAAOoG,QACA,CAACA,EAAMC,OAAQ,eACf,CAACD,EAAME,MAAO,QACtB,EAEA,KAAAQ,CAAMV,GACJ,IAAKU,GAAStL,GAAM2K,MAAMC,GAC1B,OAAOU,CACT,EAEA,SAAA/L,CAAUqL,EAAO5L,GACf,IAAI0B,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClF,OAAOoN,GAAQwM,EAAOlR,IACpB,GAAU,OAANA,EACF,OAAO,KAGT,IAGI0S,EACAC,GAJA5M,SACFA,EAAW,UACTiB,EAIJ,GAAiB,WAAbjB,EAAuB,CAIzB,IAAIwM,EAAcjM,GAAMiM,YAAYvS,GAEhCsG,GAAMmM,UAAUzS,IAClB0S,EAAiB,UACjBC,EAAgBJ,EAAcG,EAAiB,aAE/CA,EAAiB,WACjBC,EAAgBJ,EAAcG,EAAiB,UAEnD,KAAwB,YAAb3M,EACLO,GAAMmM,UAAUzS,IAClB0S,EAAiB,WACjBC,EAAgB,YAEhBD,EAAiB,UACjBC,EAAgB,aAGlBD,EAAiB3M,EACjB4M,EAAgB5M,GAGlB,IAAIoL,EAAS/K,GAAMP,UAAU7F,EAAEmR,OAAQ7L,EAAI,CACzCS,SAAU2M,IAERtB,EAAQhL,GAAMP,UAAU7F,EAAEoR,MAAO9L,EAAI,CACvCS,SAAU4M,IAGZ,IAAKxB,IAAWC,EACd,OAAO,KAGTpR,EAAEmR,OAASA,EACXnR,EAAEoR,MAAQA,GAEd,GAQEwB,GAAYjY,GACPiF,EAAcjF,IAAUgQ,GAAKkI,WAAWlY,EAAMwB,YAAc2W,GAAOC,SAASpY,GAIjFqY,GAAU,CACZ5K,WAAWzN,GACFiF,EAAcjF,IAAUgQ,GAAKkI,WAAWlY,EAAMwB,UAGzDyW,UAAEA,GAEAK,cAActY,GACLlC,MAAM+F,QAAQ7D,IAAUA,EAAMsN,MAAMiL,GAAOF,GAAQJ,UAAUM,IAGtEC,eAAe1X,QACasE,IAAnBtE,EAAMU,SAGfiX,cAAe,SAAuBzY,EAAO0Y,GAC3C,IAAIC,EAAahc,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,OACrF,OAAOsb,GAAUjY,IAAUA,EAAM2Y,KAAgBD,CACnD,EAEA,OAAAE,CAAQtD,EAASxU,GACf,IAAK,IAAIuB,KAAOvB,EACd,GAAY,aAARuB,GAIAiT,EAAQjT,KAASvB,EAAMuB,GACzB,OAAO,EAIX,OAAO,CACT,GAIEwW,GAAc,CAAC,YACfC,GAAe,CAAC,QAChBC,GAAqB,IAAIlN,QAEzBmE,GAAO,CACT,QAAAvB,CAASuK,EAAMtO,GACb,IAAInH,EAAOyM,GAAK7N,IAAI6W,EAAMtO,GAE1B,GAAIyG,GAAKC,OAAO7N,GACd,MAAM,IAAI7C,MAAM,yCAAyC1C,OAAO0M,EAAM,gDAAgD1M,OAAOqT,GAASC,UAAU/N,KAGlJ,OAAOA,CACT,EAEA,UAAC6I,CAAU4M,EAAMtO,GACf,IAAI2B,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAElF,IAAK,IAAIE,KAAKwO,GAAKe,UAAU1B,EAAM2B,GAAU,CAC3C,IACI4M,EAAQ,CADJjJ,GAAKvB,SAASuK,EAAMnc,GACZA,SACVoc,CACR,CACF,EAEA,KAAAC,CAAMF,EAAM/I,GACV,GAAIkB,GAAKC,OAAO4H,GACd,MAAM,IAAItY,MAAM,wCAAwC1C,OAAOqT,GAASC,UAAU0H,KAGpF,IAAI/Q,EAAI+Q,EAAKxX,SAASyO,GAEtB,GAAS,MAALhI,EACF,MAAM,IAAIvH,MAAM,8BAA8B1C,OAAOiS,EAAO,eAAejS,OAAOqT,GAASC,UAAU0H,KAGvG,OAAO/Q,CACT,EAEA,SAACzG,CAASwX,EAAMtO,GAWd,IAVA,IAAI2B,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9E2P,QACFA,GAAU,GACRD,EACAoC,EAAWuB,GAAKvB,SAASuK,EAAMtO,IAC/BlJ,SACFA,GACEiN,EACAwB,EAAQ3D,EAAU9K,EAAS5E,OAAS,EAAI,EAErC0P,EAAU2D,GAAS,EAAIA,EAAQzO,EAAS5E,QAAQ,CACrD,IAAIsc,EAAQlJ,GAAKkJ,MAAMzK,EAAUwB,GAC7BkJ,EAAYzO,EAAK1M,OAAOiS,QACtB,CAACiJ,EAAOC,GACdlJ,EAAQ3D,EAAU2D,EAAQ,EAAIA,EAAQ,CACxC,CACF,EAEA,MAAAxD,CAAOuM,EAAMtO,EAAMgC,GACjB,IAAI7P,EAAIwO,GAAKoB,OAAO/B,EAAMgC,GAE1B,MAAO,CADCsD,GAAK7N,IAAI6W,EAAMnc,GACZA,EACb,EAEA,UAAAuc,CAAWJ,EAAMtO,GACf,IAAInH,EAAOyM,GAAK7N,IAAI6W,EAAMtO,GAE1B,GAAIyN,GAAOC,SAAS7U,GAClB,MAAM,IAAI7C,MAAM,2CAA2C1C,OAAO0M,EAAM,yDAAyD1M,OAAOqT,GAASC,UAAU/N,KAG7J,OAAOA,CACT,EAEA,YAAC8V,CAAYL,GACX,IAAI3M,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAElF,IAAK,IAAK4G,EAAMmH,KAASsF,GAAK4E,MAAMoE,EAAM3M,GACpB,IAAhB3B,EAAK9N,cAGD,CAAC2G,EAAMmH,GAGnB,EAEA,SAAC4O,CAASN,GACR,IAAI3M,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAElF,IAAK,IAAK4G,EAAMmH,KAASsF,GAAK4E,MAAMoE,EAAM3M,GACpCgM,GAAQJ,UAAU1U,UACd,CAACA,EAAMmH,GAGnB,EAEA6O,aAAahW,GACP8U,GAAQ5K,WAAWlK,GACJwS,GAAyBxS,EAAMsV,IAI/B9C,GAAyBxS,EAAMuV,IAMpD,KAAAU,CAAMR,EAAMtO,GAIV,IAHA,IAAI7N,EAAI6N,EAAK3M,QACTrB,EAAIsT,GAAK7N,IAAI6W,EAAMnc,GAEhBH,IACDyU,GAAKC,OAAO1U,IAA4B,IAAtBA,EAAE8E,SAAS5E,QAG/BF,EAAIA,EAAE8E,SAAS,GACf3E,EAAEmM,KAAK,GAIX,MAAO,CAACtM,EAAGG,EACb,EAEA,QAAA4c,CAAST,EAAMzC,GACb,GAAIpF,GAAKC,OAAO4H,GACd,MAAM,IAAItY,MAAM,yDAAyD1C,OAAOqT,GAASC,UAAU0H,KAGrG,IAAIU,EAAU3P,GAAQ,CACpBvI,SAAUwX,EAAKxX,UACd6D,IACD,IAAK4R,EAAON,GAAOhL,GAAM2K,MAAMC,GAC3BoD,EAAc3J,GAAK4E,MAAMvP,EAAG,CAC9BiH,SAAS,EACTsN,KAAMC,IACJ,IAAI,CAAGnP,GAAQmP,EACf,OAAQlO,GAAMiL,SAASL,EAAO7L,MAIlC,IAAK,IAAI,CAAGA,KAASiP,EAAa,CAChC,IAAKhO,GAAMiL,SAASL,EAAO7L,GAAO,CAChC,IAAI4D,EAAS0B,GAAK1B,OAAOjJ,EAAGqF,GACxBuF,EAAQvF,EAAKA,EAAK9N,OAAS,GAC/B0R,EAAO9M,SAAS0O,OAAOD,EAAO,EAChC,CAEA,GAAI5E,GAAK8B,OAAOzC,EAAMiM,EAAIjM,MAAO,CAC/B,IAAI8F,EAAOR,GAAKQ,KAAKnL,EAAGqF,GACxB8F,EAAKF,KAAOE,EAAKF,KAAKvS,MAAM,EAAG4Y,EAAItG,OACrC,CAEA,GAAIhF,GAAK8B,OAAOzC,EAAMuM,EAAMvM,MAAO,CACjC,IAAIoP,EAAQ9J,GAAKQ,KAAKnL,EAAGqF,GAEzBoP,EAAMxJ,KAAOwJ,EAAMxJ,KAAKvS,MAAMkZ,EAAM5G,OACtC,CACF,CAEI8H,GAAOC,SAAS/S,KAClBA,EAAE0K,UAAY,QAGlB,OAAO2J,EAAQlY,QACjB,EAEA,GAAAW,CAAI6W,EAAMtO,GAGR,IAFA,IAAInH,EAAOyV,EAEFvc,EAAI,EAAGA,EAAIiO,EAAK9N,OAAQH,IAAK,CACpC,IAAII,EAAI6N,EAAKjO,GAEb,GAAI0U,GAAKC,OAAO7N,KAAUA,EAAK/B,SAAS3E,GACtC,MAAM,IAAI6D,MAAM,qCAAqC1C,OAAO0M,EAAM,eAAe1M,OAAOqT,GAASC,UAAU0H,KAG7GzV,EAAOA,EAAK/B,SAAS3E,EACvB,CAEA,OAAO0G,CACT,EAEA,GAAA0C,CAAI+S,EAAMtO,GAGR,IAFA,IAAInH,EAAOyV,EAEFvc,EAAI,EAAGA,EAAIiO,EAAK9N,OAAQH,IAAK,CACpC,IAAII,EAAI6N,EAAKjO,GAEb,GAAI0U,GAAKC,OAAO7N,KAAUA,EAAK/B,SAAS3E,GACtC,OAAO,EAGT0G,EAAOA,EAAK/B,SAAS3E,EACvB,CAEA,OAAO,CACT,EAEAkd,OAAO/Z,GACEmR,GAAKC,OAAOpR,IAAUqY,GAAQJ,UAAUjY,IAAUmY,GAAOC,SAASpY,GAG3E,UAAAkY,CAAWlY,GACT,IAAKlC,MAAM+F,QAAQ7D,GACjB,OAAO,EAGT,IAAIga,EAAejB,GAAmB5W,IAAInC,GAE1C,QAAqBoF,IAAjB4U,EACF,OAAOA,EAGT,IAAI9B,EAAalY,EAAMsN,MAAMiL,GAAOvI,GAAK+J,OAAOxB,IAEhD,OADAQ,GAAmB5S,IAAInG,EAAOkY,GACvBA,CACT,EAEA,IAAA/J,CAAK6K,EAAMtO,GAIT,IAHA,IAAI7N,EAAI6N,EAAK3M,QACTrB,EAAIsT,GAAK7N,IAAI6W,EAAMnc,GAEhBH,IACDyU,GAAKC,OAAO1U,IAA4B,IAAtBA,EAAE8E,SAAS5E,QADzB,CAIN,IAAIH,EAAIC,EAAE8E,SAAS5E,OAAS,EAC5BF,EAAIA,EAAE8E,SAAS/E,GACfI,EAAEmM,KAAKvM,EAEX,CAEA,MAAO,CAACC,EAAGG,EACb,EAEA,IAAA2T,CAAKwI,EAAMtO,GACT,IAAInH,EAAOyM,GAAK7N,IAAI6W,EAAMtO,GAE1B,IAAKyG,GAAKC,OAAO7N,GACf,MAAM,IAAI7C,MAAM,qCAAqC1C,OAAO0M,EAAM,4CAA4C1M,OAAOqT,GAASC,UAAU/N,KAG1I,OAAOA,CACT,EAEA,OAACiJ,CAAOwM,EAAMtO,GACZ,IAAI2B,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAElF,IAAK,IAAIE,KAAKwO,GAAKmB,OAAO9B,EAAM2B,GAAU,CACxC,IAAI3P,EAAIsT,GAAK7N,IAAI6W,EAAMnc,QACjB,CAACH,EAAGG,EACZ,CACF,EAEA+b,QAAO,CAACrV,EAAMzC,IACLuX,GAAQJ,UAAU1U,IAAS8U,GAAQG,eAAe1X,IAAUuX,GAAQO,QAAQrV,EAAMzC,IAAUqQ,GAAKC,OAAO7N,IAAS4N,GAAK8I,YAAYnZ,IAAUqQ,GAAKyH,QAAQrV,EAAMzC,GAGxK,MAAC8T,CAAMoE,GAcL,IAbA,IAAI3M,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9Eid,KACFA,EAAItN,QACJA,GAAU,GACRD,GACA3O,KACFA,EAAO,GAAED,GACTA,GACE4O,EACA6N,EAAU,IAAI1T,IACd3J,EAAI,GACJH,EAAIsc,GAGFvb,KAAO6O,EAAUjB,GAAKqC,SAAS7Q,EAAGY,GAAM4N,GAAKmC,QAAQ3Q,EAAGY,KAS5D,GALKyc,EAAQjU,IAAIvJ,UACT,CAACA,EAAGG,IAIPqd,EAAQjU,IAAIvJ,IAAOyU,GAAKC,OAAO1U,IAA4B,IAAtBA,EAAE8E,SAAS5E,QAAyB,MAARgd,IAAiC,IAAjBA,EAAK,CAACld,EAAGG,IAA/F,CAcA,GAAiB,IAAbA,EAAED,OACJ,MAIF,IAAK0P,EAAS,CACZ,IAAI0C,EAAU3D,GAAK6C,KAAKrR,GAExB,GAAImT,GAAK/J,IAAI+S,EAAMhK,GAAU,CAC3BnS,EAAImS,EACJtS,EAAIsT,GAAK7N,IAAI6W,EAAMnc,GACnB,QACF,CACF,CAGA,GAAIyP,GAA+B,IAApBzP,EAAEA,EAAED,OAAS,GAG1BC,EAFewO,GAAKkD,SAAS1R,GAG7BH,EAAIsT,GAAK7N,IAAI6W,EAAMnc,QAKrBA,EAAIwO,GAAKiD,OAAOzR,GAChBH,EAAIsT,GAAK7N,IAAI6W,EAAMnc,GACnBqd,EAAQ9T,IAAI1J,EA9BZ,KAXA,CACEwd,EAAQ9T,IAAI1J,GACZ,IAAIyd,EAAY7N,EAAU5P,EAAE8E,SAAS5E,OAAS,EAAI,EAE9CyO,GAAKoC,WAAW5Q,EAAGa,KACrByc,EAAYzc,EAAKb,EAAED,SAGrBC,EAAIA,EAAEmB,OAAOmc,GACbzd,EAAIsT,GAAK7N,IAAI6W,EAAMnc,EAErB,CAgCJ,EAEA,MAAAyR,CAAO0K,EAAMtO,GACX,IAAI0P,EAAa/O,GAAKiD,OAAO5D,GACzB7N,EAAImT,GAAK7N,IAAI6W,EAAMoB,GAEvB,GAAIjJ,GAAKC,OAAOvU,GACd,MAAM,IAAI6D,MAAM,kCAAkC1C,OAAO0M,EAAM,6CAGjE,OAAO7N,CACT,EAEAwd,OAAO9W,GACD4N,GAAKC,OAAO7N,GACPA,EAAK+M,KAEL/M,EAAK/B,SAAS+D,IAAIyK,GAAKqK,QAAQtY,KAAK,IAI/C,MAACyQ,CAAMwG,GACL,IAAI3M,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAElF,IAAK,IAAK4G,EAAMmH,KAASsF,GAAK4E,MAAMoE,EAAM3M,GACpC8E,GAAKC,OAAO7N,UACR,CAACA,EAAMmH,GAGnB,GAIF,SAAS4P,GAAUhL,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAAS2Y,GAAgB5K,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAK6d,GAAUje,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBmZ,GAAUje,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAE3hB,IAAI6K,GAAY,CACdC,gBAAgBza,GACPwa,GAAUE,YAAY1a,IAAUA,EAAMnE,KAAK8e,SAAS,SAG7D,WAAAD,CAAY1a,GACV,IAAKiF,EAAcjF,GACjB,OAAO,EAGT,OAAQA,EAAMnE,MACZ,IAAK,cAYL,IAAK,cACH,OAAOwP,GAAK0C,OAAO/N,EAAM0K,OAASsF,GAAK+J,OAAO/Z,EAAMuD,MAVtD,IAAK,cAYL,IAAK,cACH,MAA+B,iBAAjBvD,EAAMqQ,QAA6C,iBAAfrQ,EAAMsQ,MAAqBjF,GAAK0C,OAAO/N,EAAM0K,MAVjG,IAAK,aACH,MAAiC,iBAAnB1K,EAAM4O,UAAyBvD,GAAK0C,OAAO/N,EAAM0K,OAASzF,EAAcjF,EAAMmT,YAE9F,IAAK,YACH,OAAO9H,GAAK0C,OAAO/N,EAAM0K,OAASW,GAAK0C,OAAO/N,EAAMgP,SAQtD,IAAK,WACH,OAAO3D,GAAK0C,OAAO/N,EAAM0K,OAASzF,EAAcjF,EAAMmT,aAAelO,EAAcjF,EAAMoT,eAE3F,IAAK,gBACH,OAA4B,OAArBpT,EAAMmT,YAAuBxH,GAAM8H,QAAQzT,EAAMoT,gBAA0C,OAAxBpT,EAAMoT,eAA0BzH,GAAM8H,QAAQzT,EAAMmT,aAAelO,EAAcjF,EAAMmT,aAAelO,EAAcjF,EAAMoT,eAEtM,IAAK,aACH,OAAO/H,GAAK0C,OAAO/N,EAAM0K,OAAmC,iBAAnB1K,EAAM4O,UAAyB3J,EAAcjF,EAAMmT,YAE9F,QACE,OAAO,EAEb,EAEAyH,gBAAgB5a,GACPlC,MAAM+F,QAAQ7D,IAAUA,EAAMsN,MAAMiL,GAAOiC,GAAUE,YAAYnC,IAG1EsC,qBAAqB7a,GACZwa,GAAUE,YAAY1a,IAAUA,EAAMnE,KAAK8e,SAAS,cAG7DG,gBAAgB9a,GACPwa,GAAUE,YAAY1a,IAAUA,EAAMnE,KAAK8e,SAAS,SAG7D,OAAAI,CAAQpQ,GACN,OAAQA,EAAG9O,MACT,IAAK,cAED,OAAO0e,GAAgBA,GAAgB,CAAA,EAAI5P,GAAK,CAAA,EAAI,CAClD9O,KAAM,gBAIZ,IAAK,cAED,OAAO0e,GAAgBA,GAAgB,CAAA,EAAI5P,GAAK,CAAA,EAAI,CAClD9O,KAAM,gBAIZ,IAAK,aAED,OAAO0e,GAAgBA,GAAgB,CAAA,EAAI5P,GAAK,CAAA,EAAI,CAClD9O,KAAM,aACN6O,KAAMW,GAAKkD,SAAS5D,EAAGD,QAI7B,IAAK,YAED,IAAIsE,QACFA,EAAOtE,KACPA,GACEC,EAEJ,GAAIU,GAAK8B,OAAO6B,EAAStE,GACvB,OAAOC,EAKT,GAAIU,GAAK2C,UAAUtD,EAAMsE,GACvB,OAAOuL,GAAgBA,GAAgB,CAAA,EAAI5P,GAAK,CAAA,EAAI,CAClDD,KAAMsE,EACNA,QAAStE,IAUb,IAAIsQ,EAAc3P,GAAKH,UAAUR,EAAMC,GACnCsQ,EAAiB5P,GAAKH,UAAUG,GAAK6C,KAAKxD,GAAOC,GACrD,OAAO4P,GAAgBA,GAAgB,CAAA,EAAI5P,GAAK,CAAA,EAAI,CAClDD,KAAMsQ,EACNhM,QAASiM,IAIf,IAAK,cAED,OAAOV,GAAgBA,GAAgB,CAAA,EAAI5P,GAAK,CAAA,EAAI,CAClD9O,KAAM,gBAIZ,IAAK,cAED,OAAO0e,GAAgBA,GAAgB,CAAA,EAAI5P,GAAK,CAAA,EAAI,CAClD9O,KAAM,gBAIZ,IAAK,WAED,IAAIsX,WACFA,EAAUC,cACVA,GACEzI,EACJ,OAAO4P,GAAgBA,GAAgB,CAAA,EAAI5P,GAAK,CAAA,EAAI,CAClDwI,WAAYC,EACZA,cAAeD,IAIrB,IAAK,gBAED,IACEA,WAAYU,EACZT,cAAeI,GACb7I,EAEJ,OACS4P,GAAgBA,GAAgB,CAAA,EAAI5P,GAAK,CAAA,EAD/B,MAAfkJ,EACkD,CAClDV,WAAYK,EACZJ,cAAe,MAEU,MAAlBI,EAC2C,CAClDL,WAAY,KACZC,cAAeS,GAGmC,CAClDV,WAAYK,EACZJ,cAAeS,IAKvB,IAAK,aAED,OAAO0G,GAAgBA,GAAgB,CAAA,EAAI5P,GAAK,CAAA,EAAI,CAClD9O,KAAM,aACN6O,KAAMW,GAAK6C,KAAKvD,EAAGD,QAI7B,GAIEwQ,GAAkB,IAAIrP,QAiBtBsM,GAAS,CACXgD,MAAK,CAACrL,EAAQzD,IACLyD,EAAOqL,MAAM9O,GAGtB,OAAA+O,CAAQtL,EAAQzN,EAAKrC,GACnB8P,EAAOsL,QAAQ/Y,EAAKrC,EACtB,EAEA0Q,MAAK,CAACZ,EAAQuL,EAAIhP,IACTyD,EAAOY,MAAM2K,EAAIhP,GAG1BoE,OAAM,CAACX,EAAQuL,EAAIhP,IACVyD,EAAOW,OAAO4K,EAAIhP,GAG3B,cAAAiP,CAAexL,GACb,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9E4e,KACFA,EAAO,aACLlP,EACJyD,EAAOwL,eAAeC,EACxB,EAEA,aAAAC,CAAc1L,GACZ,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9E4e,KACFA,EAAO,aACLlP,EACJyD,EAAO0L,cAAcD,EACvB,EAEA,cAAAE,CAAe3L,EAAQzD,GACrByD,EAAO2L,eAAepP,EACxB,EAEAiK,MAAK,CAACxG,EAAQuL,IACLvL,EAAOwG,MAAM+E,GAGtB,eAAAK,CAAgB5L,GACd,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClF,OAAOmT,EAAO4L,gBAAgBrP,EAChC,EAEAsK,IAAG,CAAC7G,EAAQuL,IACHvL,EAAO6G,IAAI0E,GAGpB7B,MAAK,CAAC1J,EAAQuL,IACLvL,EAAO0J,MAAM6B,GAGtB5B,SAAQ,CAAC3J,EAAQuL,IACRvL,EAAO2J,SAAS4B,GAGzBM,UAAS,CAAC7L,EAAQwF,IACTxF,EAAO6L,UAAUrG,GAG1BsG,WAAU,CAAC9L,EAAQwF,IACVxF,EAAO8L,WAAWtG,GAG3BuG,QAAO,CAAC/L,EAAQpF,IACPoF,EAAO+L,QAAQnR,GAGxBoR,SAAQ,CAAChM,EAAQwF,IACRxF,EAAOgM,SAASxG,GAGzB,WAAAyG,CAAYjM,GACVA,EAAOiM,aACT,EAEA,cAAAC,CAAelM,EAAQ2J,EAAUpN,GAC/ByD,EAAOkM,eAAevC,EAAUpN,EAClC,EAEA,UAAA4P,CAAWnM,EAAQvM,GACjBuM,EAAOmM,WAAW1Y,EACpB,EAEA,eAAA2Y,CAAgBpM,GACdA,EAAOoM,iBACT,EAEA,UAAAC,CAAWrM,EAAQQ,GACjBR,EAAOqM,WAAW7L,EACpB,EAEA8L,QAAO,CAACtM,EAAQ9P,IACP8P,EAAOsM,QAAQpc,GAGxBqc,OAAM,CAACvM,EAAQtE,EAAO6P,IACbvL,EAAOuM,OAAO7Q,EAAO6P,GAG9BjD,SAASpY,GAtHIA,KACb,IAAIsc,EAAiBpB,GAAgB/Y,IAAInC,GAEzC,QAAuBoF,IAAnBkX,EACF,OAAOA,EAGT,IAAKrX,EAAcjF,GACjB,OAAO,EAGT,IAAIoY,EAAoC,mBAAlBpY,EAAMob,SAAiD,mBAAhBpb,EAAM/C,OAAwD,mBAAzB+C,EAAMyb,gBAA8D,mBAAtBzb,EAAM+b,aAA+D,mBAA1B/b,EAAMkc,iBAAkE,mBAAzBlc,EAAMgc,gBAA6D,mBAArBhc,EAAMic,YAAyD,mBAArBjc,EAAMmc,YAAgE,mBAA5Bnc,EAAMuc,mBAA8D,mBAAnBvc,EAAMwc,UAAyD,mBAAvBxc,EAAMyc,cAAuD,mBAAjBzc,EAAM0c,QAAwD,mBAAxB1c,EAAM2c,eAA0D,mBAAnB3c,EAAM4c,UAAuD,mBAArB5c,EAAM6c,YAA4D,mBAAxB7c,EAAM8c,gBAAiD,OAAhB9c,EAAM+c,OAAkB9X,EAAcjF,EAAM+c,UAAgC,OAApB/c,EAAM+P,WAAsBpE,GAAM8H,QAAQzT,EAAM+P,aAAeC,GAAKkI,WAAWlY,EAAMwB,WAAagZ,GAAUI,gBAAgB5a,EAAMgd,YAEv3B,OADA9B,GAAgB/U,IAAInG,EAAOoY,GACpBA,GA0GEA,CAASpY,GAGlBuc,kBAAiB,CAACzM,EAAQwF,IACjBxF,EAAOyM,kBAAkBjH,GAGlC2H,QAAO,CAACnN,EAAQwF,IACPxF,EAAOmN,QAAQ3H,GAGxB4H,MAAK,CAACpN,EAAQtE,EAAO6P,IACZvL,EAAOoN,MAAM1R,EAAO6P,GAG7BmB,SAAQ,CAAC1M,EAAQ9P,IACR8P,EAAO0M,SAASxc,GAGzBmd,cAAcrN,GACLA,EAAOqN,gBAGhBV,aAAY,CAAC3M,EAAQ9P,IACZ8P,EAAO2M,aAAazc,GAG7Bod,QAAO,CAACtN,EAAQtE,EAAO6P,IACdvL,EAAOsN,QAAQ5R,EAAO6P,GAG/BqB,OAAM,CAAC5M,EAAQ9P,IACN8P,EAAO4M,OAAO1c,GAGvBmO,KAAI,CAAC2B,EAAQuL,IACJvL,EAAO3B,KAAKkN,GAGrB7K,KAAI,CAACV,EAAQuL,EAAIhP,IACRyD,EAAOU,KAAK6K,EAAIhP,GAGzBG,OAAM,CAACsD,EAAQzD,IACNyD,EAAOtD,OAAOH,GAGvB0Q,MAAMjN,GACGA,EAAOuN,WAGhBnP,KAAI,CAAC4B,EAAQzD,IACJyD,EAAO5B,KAAK7B,GAGrB9I,KAAI,CAACuM,EAAQuL,EAAIhP,IACRyD,EAAOvM,KAAK8X,EAAIhP,GAGzBuI,MAAK,CAAC9E,EAAQzD,IACLyD,EAAO8E,MAAMvI,GAGtB,SAAAiR,CAAUxN,EAAQzD,GAChByD,EAAOwN,UAAUjR,EACnB,EAEAiC,OAAM,CAACwB,EAAQuL,EAAIhP,IACVyD,EAAOxB,OAAO+M,EAAIhP,GAG3B3B,KAAI,CAACoF,EAAQuL,EAAIhP,IACRyD,EAAOpF,KAAK2Q,EAAIhP,GAGzBkR,QAAO,CAACzN,EAAQpF,EAAM2B,IACbyD,EAAOyN,QAAQ7S,EAAM2B,GAG9BmR,SAAS1N,GACAA,EAAO0N,WAGhBhS,MAAK,CAACsE,EAAQuL,EAAIhP,IACTyD,EAAOtE,MAAM6P,EAAIhP,GAG1BoR,SAAQ,CAAC3N,EAAQtE,EAAOa,IACfyD,EAAO2N,SAASjS,EAAOa,GAGhCqR,UAAU5N,GACDA,EAAO4N,YAGhBC,UAAS,CAAC7N,EAAQzD,IACTyD,EAAO6N,UAAUtR,GAG1BkC,SAAQ,CAACuB,EAAQzD,IACRyD,EAAOvB,SAASlC,GAGzBkK,MAAK,CAACzG,EAAQuL,EAAI5d,IACTqS,EAAOyG,MAAM8E,EAAI5d,GAG1BmgB,SAAQ,CAAC9N,EAAQyG,EAAOlK,IACfyD,EAAO8N,SAASrH,EAAOlK,GAGhCwR,UAAU/N,GACDA,EAAO+N,YAGhB,UAAAhB,CAAW/M,EAAQzN,GACjByN,EAAO+M,WAAWxa,EACpB,EAEA,cAAAyb,CAAehO,EAAQqN,GACrBrN,EAAOgO,eAAeX,EACxB,EAEAlG,MAAK,CAACnH,EAAQuL,IACLvL,EAAOmH,MAAMoE,GAGtBhB,OAAM,CAACvK,EAAQuL,EAAIhP,IACVyD,EAAOuK,OAAOgB,EAAIhP,GAG3B0R,YAAW,CAACjO,EAAQyG,EAAOlK,IAClByD,EAAOiO,YAAYxH,EAAOlK,GAGnC2R,KAAI,CAAClO,EAAQzD,IACJyD,EAAOkO,KAAK3R,GAGrB,kBAAA4R,CAAmBnO,EAAQhF,GACzBgF,EAAOmO,mBAAmBnT,EAC5B,GAWEoT,GAAO,CACTC,OAAOne,GACElC,MAAM+F,QAAQ7D,IAA2B,IAAjBA,EAAMpD,QAAgBoD,EAAMsN,MAAMjC,GAAK0C,SAK1E,SAASqQ,GAAU9O,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAASyc,GAAgB1O,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAK2hB,GAAU/hB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBid,GAAU/hB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAE3hB,IAAIlE,GAAQ,CACV,OAAAmB,CAAQpB,EAAOkB,GACb,IAAI4F,EAASjH,GAAKuB,QAAQpB,EAAMd,KAAMgC,EAAQhC,MAE9C,OAAe,IAAX4H,EACE9G,EAAM6E,OAAS3D,EAAQ2D,QAAe,EACtC7E,EAAM6E,OAAS3D,EAAQ2D,OAAe,EACnC,EAGFiC,CACT,EAEA9E,QAAO,CAAChC,EAAOkB,IAC4B,IAAlCjB,GAAMmB,QAAQpB,EAAOkB,GAG9BgB,SAAQ,CAAClC,EAAOkB,KAC2B,IAAlCjB,GAAMmB,QAAQpB,EAAOkB,GAG9BS,OAAM,CAAC3B,EAAOkB,IAELlB,EAAM6E,SAAW3D,EAAQ2D,QAAUhF,GAAK8B,OAAO3B,EAAMd,KAAMgC,EAAQhC,MAG5E0M,QAAQpX,GACCiF,EAAcjF,IAAkC,iBAAjBA,EAAMqQ,QAAuBhF,GAAK0C,OAAO/N,EAAM0K,MAGvF,SAAAQ,CAAUM,EAAOb,GACf,IAAI0B,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClF,OAAOoN,GAAQyB,EAAO3O,IACpB,GAAU,OAANA,EACF,OAAO,KAGT,IAAIuO,SACFA,EAAW,WACTiB,GACA3B,KACFA,EAAI2F,OACJA,GACExT,EAEJ,OAAQ8N,EAAG9O,MACT,IAAK,cACL,IAAK,YAEDgB,EAAE6N,KAAOW,GAAKH,UAAUR,EAAMC,EAAI0B,GAClC,MAGJ,IAAK,cAEGhB,GAAK8B,OAAOxC,EAAGD,KAAMA,KAAUC,EAAG0F,OAASA,GAAU1F,EAAG0F,SAAWA,GAAuB,YAAbjF,KAC/EvO,EAAEwT,QAAU1F,EAAG2F,KAAK1T,QAGtB,MAGJ,IAAK,aAEGyO,GAAK8B,OAAOxC,EAAGD,KAAMA,KACvB7N,EAAEwT,QAAU1F,EAAGiE,UAGjB/R,EAAE6N,KAAOW,GAAKH,UAAUR,EAAMC,EAAI0B,GAClC,MAGJ,IAAK,cAEGhB,GAAK8B,OAAOxC,EAAGD,KAAMA,IAASC,EAAG0F,QAAUA,IAC7CxT,EAAEwT,QAAUvD,KAAKD,IAAIwD,EAAS1F,EAAG0F,OAAQ1F,EAAG2F,KAAK1T,SAGnD,MAGJ,IAAK,cAED,GAAIyO,GAAK8B,OAAOxC,EAAGD,KAAMA,IAASW,GAAKoC,WAAW9C,EAAGD,KAAMA,GACzD,OAAO,KAGT7N,EAAE6N,KAAOW,GAAKH,UAAUR,EAAMC,EAAI0B,GAClC,MAGJ,IAAK,aAED,GAAIhB,GAAK8B,OAAOxC,EAAGD,KAAMA,GAAO,CAC9B,GAAIC,EAAGiE,WAAayB,GAAsB,MAAZjF,EAC5B,OAAO,MACET,EAAGiE,SAAWyB,GAAU1F,EAAGiE,WAAayB,GAAuB,YAAbjF,KAC3DvO,EAAEwT,QAAU1F,EAAGiE,SACf/R,EAAE6N,KAAOW,GAAKH,UAAUR,EAAMC,EAAI0T,GAAgBA,GAAgB,CAAA,EAAIhS,GAAU,CAAA,EAAI,CAClFjB,SAAU,aAGhB,MACEvO,EAAE6N,KAAOW,GAAKH,UAAUR,EAAMC,EAAI0B,KAO9C,GAIEiS,QAAYlZ,EAkBZiM,GAAW,CACb,WAAAkN,CAAYC,GACVF,GAAYE,CACd,EAEAlN,UAAUtR,GACDye,KAAKnN,UAAUtR,EAAOse,KAK7BI,GAAc,CAAC,QACfC,GAAe,CAAC,SAAU,SAE9B,SAASC,GAAUtP,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAASid,GAAgBlP,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAKmiB,GAAUviB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmByd,GAAUviB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAE3hB,IAoUImP,GApUA3N,GAAO,CACT,MAAAhE,CAAOmD,EAAM5D,GACX,IAAIL,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EoiB,MACFA,GAAQ,GACN1S,EAEJ,SAAS2S,EAAS5P,GAGhB,OAFW2G,GAAyB3G,EAAKsP,GAG3C,CAEA,OAAO5I,GAAYiJ,EAAQC,EAAS1O,GAAQA,EAAMyO,EAAQC,EAAStS,GAAWA,EAChF,EAEA0E,OAAOpR,GACEiF,EAAcjF,IAAgC,iBAAfA,EAAMsQ,KAG9C2O,WAAWjf,GACFlC,MAAM+F,QAAQ7D,IAAUA,EAAMsN,MAAMiL,GAAOpH,GAAKC,OAAOmH,IAGhE0B,YAAYnZ,QACYsE,IAAftE,EAAMwP,KAGf,OAAAsI,CAAQtI,EAAMxP,GACZ,IAAK,IAAIuB,KAAOvB,EACd,GAAY,SAARuB,KAICiO,EAAKvT,eAAesF,IAAQiO,EAAKjO,KAASvB,EAAMuB,IACnD,OAAO,EAIX,OAAO,CACT,EAEA,WAAA6c,CAAY3b,EAAM2b,GAChB,IAAIC,EAAS,CAACN,GAAgB,CAAA,EAAItb,IAElC,IAAK,IAAI6b,KAAOF,EAAa,CAC3B,IAAI5H,EAAOvB,GAAyBqJ,EAAKT,KAEpC1H,EAAON,GAAOhL,GAAM2K,MAAM8I,GAC3BlR,EAAO,GACPmR,EAAU,EACVC,EAAkBrI,EAAM5G,OACxBkP,EAAgB5I,EAAItG,OAExB,IAAK,IAAIG,KAAQ2O,EAAQ,CACvB,IAAIviB,OACFA,GACE4T,EAAKF,KACLkP,EAAYH,EAGhB,GAFAA,GAAWziB,EAEP0iB,GAAmBE,GAAaH,GAAWE,EAC7CljB,OAAOC,OAAOkU,EAAM8G,GACpBpJ,EAAKlF,KAAKwH,QAKZ,GAAI8O,IAAoBC,IAAkBD,IAAoBD,GAAWE,IAAkBC,IAAcF,EAAkBD,GAAWE,EAAgBC,GAAaD,IAAkBC,GAA2B,IAAdA,EAChMtR,EAAKlF,KAAKwH,OADZ,CAQA,IAAIiP,EAASjP,EACTC,OAAS,EACTC,OAAQ,EAEZ,GAAI6O,EAAgBF,EAAS,CAC3B,IAAIK,EAAMH,EAAgBC,EAC1B9O,EAAQmO,GAAgBA,GAAgB,CAAA,EAAIY,GAAS,CAAA,EAAI,CACvDnP,KAAMmP,EAAOnP,KAAKvS,MAAM2hB,KAE1BD,EAASZ,GAAgBA,GAAgB,CAAA,EAAIY,GAAS,CAAA,EAAI,CACxDnP,KAAMmP,EAAOnP,KAAKvS,MAAM,EAAG2hB,IAE/B,CAEA,GAAIJ,EAAkBE,EAAW,CAC/B,IAAIG,EAAOL,EAAkBE,EAE7B/O,EAASoO,GAAgBA,GAAgB,CAAA,EAAIY,GAAS,CAAA,EAAI,CACxDnP,KAAMmP,EAAOnP,KAAKvS,MAAM,EAAG4hB,KAE7BF,EAASZ,GAAgBA,GAAgB,CAAA,EAAIY,GAAS,CAAA,EAAI,CACxDnP,KAAMmP,EAAOnP,KAAKvS,MAAM4hB,IAE5B,CAEAtjB,OAAOC,OAAOmjB,EAAQnI,GAElB7G,GACFvC,EAAKlF,KAAKyH,GAGZvC,EAAKlF,KAAKyW,GAEN/O,GACFxC,EAAKlF,KAAK0H,EAvCZ,CAyCF,CAEAyO,EAASjR,CACX,CAEA,OAAOiR,CACT,GAWES,GAA2B9P,GACzBA,EAAOC,UACFD,EAAOC,UACLD,EAAOtO,SAAS5E,OAAS,EAC3Bub,GAAOxB,IAAI7G,EAAQ,IAEnB,CAAC,GAIR+P,GAAY,CAAC/P,EAAQpF,KACvB,IAAKnH,GAAQ4U,GAAO5U,KAAKuM,EAAQpF,GACjC,OAAOhO,GAAKA,IAAM6G,GAgBhBuc,GAAuB,SAA8BC,GACvD,IAAIC,EAAQrjB,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,IAAmBA,UAAU,GACvEsjB,GAASD,EACTE,EAAaF,EAAQG,GAAsBJ,GAAOA,EAClDK,EAAOtB,GAAcuB,KACrBC,EAAQxB,GAAcuB,KACtBE,EAAW,EAIXC,EAAW,KAEf,IAAK,IAAIC,KAAQP,EAAY,CAC3B,IAAIQ,EAAOD,EAAKE,YAAY,GAC5B,IAAKD,EAAM,MACX,IAAI7kB,EAAO+kB,GAAiBH,EAAMC,GAGlC,IAFCN,EAAME,GAASL,EAAQ,CAACK,EAAOzkB,GAAQ,CAACA,EAAMukB,GAE3CS,GAAWT,EAAMtB,GAAcgC,MAAQD,GAAWP,EAAOxB,GAAciC,WAEhEC,GADLf,EACsBF,EAAIkB,UAAU,EAAGV,GAEjBR,EAAIkB,UAAU,EAAGlB,EAAInjB,OAAS2jB,IAG7C,MAGb,GAAIM,GAAWT,EAAMtB,GAAcoC,KAAOL,GAAWP,EAAOxB,GAAcoC,OAEtEV,EADe,OAAbA,GACUA,IAERP,GAGSkB,GAAuBpB,EAAIkB,UAAU,EAAGlB,EAAInjB,OAAS2jB,KAIrD,MAGjB,GAAIH,IAAStB,GAAcuB,MAAQC,IAAUxB,GAAcuB,MAAQe,GAAehB,EAAME,GACtF,MAGFC,GAAYE,EAAK7jB,MACnB,CAEA,OAAO2jB,GAAY,CACrB,EACIc,GAAQ,KACRC,GAAc,qyCACdC,GAAY,kBAiCZC,GAA2B,CAACzB,EAAK0B,EAAMzB,KACzC,GAAIA,EAAO,CACT,IAAI3E,EAAK0E,EAAInjB,OAAS6kB,EACtB,MAAO,CAAC1B,EAAIhiB,MAAMsd,EAAI0E,EAAInjB,QAASmjB,EAAIhiB,MAAM,EAAGsd,GAClD,CAEA,MAAO,CAAC0E,EAAIhiB,MAAM,EAAG0jB,GAAO1B,EAAIhiB,MAAM0jB,KAOpCC,GAAkB,SAASA,EAAgBjB,EAAMkB,GACnD,IAAI3B,EAAQrjB,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,IAAmBA,UAAU,GAE3E,GAAI0kB,GAAMO,KAAKnB,GACb,OAAO,EAKT,GAAIc,GAAUK,KAAKnB,GAAO,CACxB,IAAIoB,EAAW/B,GAAqB6B,EAAW3B,IAC1C8B,EAAUC,GAAiBP,GAAyBG,EAAWE,EAAU7B,GAE9E,GAAI0B,EAAgBI,EAAUC,EAAe/B,GAC3C,OAAO,CAEX,CAEA,OAAIsB,GAAYM,KAAKnB,EAKvB,EAMIN,GAAwB,UAAgCJ,GAG1D,IAFA,IAAIpJ,EAAMoJ,EAAInjB,OAAS,EAEdH,EAAI,EAAGA,EAAIsjB,EAAInjB,OAAQH,IAAK,CACnC,IAAIulB,EAAQjC,EAAIkC,OAAOtL,EAAMla,GAE7B,GAAIylB,GAAeF,EAAMG,WAAW,IAAK,CACvC,IAAIC,EAAQrC,EAAIkC,OAAOtL,EAAMla,EAAI,GAEjC,GAAI4lB,GAAgBD,EAAMD,WAAW,IAAK,OAClCC,EAAQJ,EACdvlB,IACA,QACF,CACF,OAEMulB,CACR,CACF,EAOIK,GAAkBC,GACbA,GAAY,OAAUA,GAAY,MASvCJ,GAAiBI,GACZA,GAAY,OAAUA,GAAY,OAK3C,SAAWxD,GACTA,EAAcA,EAAoB,KAAI,GAAK,OAC3CA,EAAcA,EAAsB,OAAI,GAAK,SAC7CA,EAAcA,EAAmB,IAAI,GAAK,MAC1CA,EAAcA,EAAkB,GAAI,GAAK,KACzCA,EAAcA,EAAuB,QAAI,GAAK,UAC9CA,EAAcA,EAA2B,YAAI,IAAM,cACnDA,EAAcA,EAAiB,EAAI,IAAM,IACzCA,EAAcA,EAAiB,EAAI,IAAM,IACzCA,EAAcA,EAAiB,EAAI,KAAO,IAC1CA,EAAcA,EAAkB,GAAI,KAAO,KAC3CA,EAAcA,EAAmB,IAAI,KAAO,MAC5CA,EAAcA,EAAuB,QAAI,MAAQ,UACjDA,EAAcA,EAAmB,IAAI,MAAQ,KAC9C,CAdD,CAcGA,KAAkBA,GAAgB,CAAA,IAErC,IAAIyD,GAAW,8nHACXC,GAAY,kJACZC,GAAgB,+lDAChBC,GAAM,iCACNC,GAAM,iCACNC,GAAM,iCACNC,GAAO,i2EACPC,GAAQ,0kKACRC,GAAY,qyBAEZnC,GAAmB,CAACH,EAAMC,KAC5B,IAAI7kB,EAAOijB,GAAckE,IA8CzB,OA5C8B,IAA1BvC,EAAKwC,OAAOV,MACd1mB,GAAQijB,GAAcoE,QAGX,OAATxC,IACF7kB,GAAQijB,GAAcgC,KAGpBJ,GAAQ,QAAWA,GAAQ,SAC7B7kB,GAAQijB,GAAcoC,KAGO,IAA3BT,EAAKwC,OAAOT,MACd3mB,GAAQijB,GAAcqE,UAGW,IAA/B1C,EAAKwC,OAAOR,MACd5mB,GAAQijB,GAAcsE,cAGC,IAArB3C,EAAKwC,OAAOP,MACd7mB,GAAQijB,GAAclZ,IAGC,IAArB6a,EAAKwC,OAAON,MACd9mB,GAAQijB,GAAcuE,IAGC,IAArB5C,EAAKwC,OAAOL,MACd/mB,GAAQijB,GAAcvW,IAGE,IAAtBkY,EAAKwC,OAAOJ,MACdhnB,GAAQijB,GAAcwE,KAGG,IAAvB7C,EAAKwC,OAAOH,MACdjnB,GAAQijB,GAAcyE,MAGO,IAA3B9C,EAAKwC,OAAOF,MACdlnB,GAAQijB,GAAciC,SAGjBllB,GAGT,SAASglB,GAAW/gB,EAAG8G,GACrB,OAAmB,KAAX9G,EAAI8G,EACd,CAEA,IAAI4c,GAAmB,CACvB,CAAC1E,GAAclZ,EAAGkZ,GAAclZ,EAAIkZ,GAAcuE,EAAIvE,GAAcwE,GAAKxE,GAAcyE,KACvF,CAACzE,GAAcwE,GAAKxE,GAAcuE,EAAGvE,GAAcuE,EAAIvE,GAAcvW,GACrE,CAACuW,GAAcyE,IAAMzE,GAAcvW,EAAGuW,GAAcvW,GACpD,CAACuW,GAAckE,IAAKlE,GAAcoE,OAASpE,GAAcgC,KACzD,CAAChC,GAAckE,IAAKlE,GAAcsE,aAClC,CAACtE,GAAcqE,QAASrE,GAAckE,KACtC,CAAClE,GAAcgC,IAAKhC,GAAciC,SAClC,CAACjC,GAAcoC,GAAIpC,GAAcoC,KAEjC,SAASE,GAAehB,EAAME,GAC5B,OAA8F,IAAvFkD,GAAiBC,UAAUpe,GAAKwb,GAAWT,EAAM/a,EAAE,KAAOwb,GAAWP,EAAOjb,EAAE,IACvF,CAEA,IAAIqe,GAAiB,o6IAEjB1C,GAAmBjB,IACiB,IAA/BA,EAAIkD,OAAOS,IAGhBC,GAAY,+BAEZxC,GAAyBpB,IAC3B,IAAI6D,EAAQ7D,EAAI6D,MAAMD,IAEtB,OAAc,OAAVC,GAIWA,EAAM,GAAGhnB,OAAS,EACf,GAAM,GAItBinB,GAAiB,CACnB,OAAO/T,EAAQzD,GACbyD,EAAOhJ,OAAOuF,EAChB,EAEA,cAAA2P,CAAelM,EAAQ2J,EAAUpN,GAC/ByD,EAAOkM,eAAevC,EAAUpN,EAClC,EAEA,UAAA8P,CAAWrM,EAAQQ,GACjB,IAAIjE,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClFwb,GAAO8F,mBAAmBnO,EAAQ,KAChC,IAAIgU,MACFA,GAAQ,GACNzX,GACAgP,GACFA,EAAKuE,GAAyB9P,IAC5BzD,EAMJ,GAJIhB,GAAK0C,OAAOsN,KACdA,EAAKlD,GAAO5B,MAAMzG,EAAQuL,IAGxB1P,GAAM8H,QAAQ4H,GAChB,GAAI1P,GAAMiM,YAAYyD,GACpBA,EAAKA,EAAG7E,WACH,CACL,IAAIG,EAAMhL,GAAMgL,IAAI0E,GAEpB,IAAKyI,GAAS3L,GAAO6F,KAAKlO,EAAQ,CAChCuL,GAAI1E,IAEJ,OAGF,IAAIM,EAAQtL,GAAMsL,MAAMoE,GACpB0I,EAAW5L,GAAOsF,SAAS3N,EAAQmH,GACnC+M,EAAS7L,GAAOsF,SAAS3N,EAAQ6G,GACrCsN,GAAWnd,OAAOgJ,EAAQ,CACxBuL,KACAyI,UAEF,IAAII,EAAaH,EAASzY,QACtB6Y,EAAWH,EAAO1Y,QACtB+P,EAAK6I,GAAcC,EACnBF,GAAWpO,aAAa/F,EAAQ,CAC9B0G,OAAQ6E,EACR5E,MAAO4E,GAEX,CAGF,MAAKyI,GAAS3L,GAAO6F,KAAKlO,EAAQ,CAChCuL,QACIlD,GAAOuD,gBAAgB5L,EAAQ,CACnCuL,QAHF,CAQA,IAAI3Q,KACFA,EAAI2F,OACJA,GACEgL,EACA/K,EAAK1T,OAAS,GAAGkT,EAAO7S,MAAM,CAChCpB,KAAM,cACN6O,OACA2F,SACAC,QAVF,GAaJ,GAIF,SAAS8T,GAAU9U,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAASyiB,GAAgB1U,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAK2nB,GAAU/nB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBijB,GAAU/nB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAC3hB,IAAIsU,GAAaI,GAAgBA,GAAgBA,GAAgBA,GAAgB,CAAA,EAAIxU,IAAoB6E,IAAiBa,IAAsBsO,IA2UhJ,SAASS,GAAUhV,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAAS2iB,GAAgB5U,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAK6nB,GAAUjoB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBmjB,GAAUjoB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAkD3hB,SAAS6U,GAAUlV,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAAS6iB,GAAgB9U,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAK+nB,GAAUnoB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBqjB,GAAUnoB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAkC3hB,SAAS+U,GAAUpV,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAAS+iB,GAAgBhV,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAKioB,GAAUroB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBujB,GAAUroB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CA+E3hB,SAASiV,GAAUtV,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAASijB,GAAgBlV,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAKmoB,GAAUvoB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmByjB,GAAUvoB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CA0B3hB,SAASmV,GAAUxV,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAASmjB,GAAgBpV,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAKqoB,GAAUzoB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmB2jB,GAAUzoB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAwC3hB,SAASqV,GAAU1V,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAG1V,IAAIua,GAAa,SAAoBrM,EAAQQ,GAC3C,IAAIjE,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EoT,UACFA,EAASgN,MACTA,GACEjN,EAEJ,GAAIC,EAAW,CACb,GAAIgN,EAAO,CACT,IAAIxZ,EAVV,SAAyBoM,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAKuoB,GAAU3oB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmB6jB,GAAU3oB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAU1gBsV,CAAgB,CACzB3U,QACCyM,GAEHkH,GAAWtP,YAAY7E,EAAQvM,EAAM,CACnC8X,GAAIhP,EAAQgP,GACZyI,MAAOzX,EAAQyX,OAEnB,MACEG,GAAW9H,WAAWrM,EAAQQ,EAAMjE,GAGtCyD,EAAOiN,MAAQ,IACjB,CACF,EA6FA,IAAImI,GAAc,CAAC,QACfC,GAAe,CAAC,QAyOpB,IAAI7H,GAAY,SAAmBxN,GACjC,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EyoB,MACFA,GAAQ,EAAK/W,UACbA,GACEhC,EAEAyQ,EAAgBhN,GACXlE,GAAYzJ,IAAI2N,IAAW,GAOhCuV,EAAevV,IACjB,IAAIpF,EAAOoS,EAAchN,GAAQwV,MAC7BjjB,EAAMqI,EAAK3I,KAAK,KAEpB,MARqB+N,IACdhE,GAAgB3J,IAAI2N,IAAW,IAAItJ,IAM1C+e,CAAiBzV,GAAQhJ,OAAOzE,GACzBqI,GAGT,GAAKyN,GAAOgF,cAAcrN,GAA1B,CAIA,GAAIsV,EAAO,CACT,IAAII,EAAW1nB,MAAMJ,KAAKsS,GAAK4E,MAAM9E,GAAS+J,IAC5C,IAAI,CAAGhd,GAAKgd,EACZ,OAAOhd,IAEL4oB,EAAc,IAAIjf,IAAIgf,EAASjgB,IAAI1I,GAAKA,EAAEkF,KAAK,OACnD6J,GAAYzF,IAAI2J,EAAQ0V,GACxB1Z,GAAgB3F,IAAI2J,EAAQ2V,EAC9B,CAEqC,IAAjC3I,EAAchN,GAAQlT,QAI1Bub,GAAO8F,mBAAmBnO,EAAQ,KAMhC,IAAK,IAAI4V,KAAa5I,EAAchN,GAClC,GAAIE,GAAK/J,IAAI6J,EAAQ4V,GAAY,CAC/B,IAAIzM,EAAQd,GAAO5U,KAAKuM,EAAQ4V,IAC3BniB,EAAM4D,GAAK8R,EAQZZ,GAAQJ,UAAU1U,IAAkC,IAAzBA,EAAK/B,SAAS5E,QAC3CkT,EAAO6M,cAAc1D,EAAO,CAC1B5K,aAGN,CAOF,IAJA,IAAIsX,EAAa7I,EAAchN,GAC3B8V,EAA0BD,EAAW/oB,OACrCipB,EAAY,EAEa,IAAtBF,EAAW/oB,QAAc,CAC9B,IAAKkT,EAAOgW,gBAAgB,CAC1BH,aACAE,YACAD,0BACAvX,cAEA,OAGF,IAAI0X,EAAaV,EAAavV,GAG9B,GAAIE,GAAK/J,IAAI6J,EAAQiW,GAAa,CAChC,IAAIC,EAAS7N,GAAO5U,KAAKuM,EAAQiW,GAEjCjW,EAAO6M,cAAcqJ,EAAQ,CAC3B3X,aAEJ,CAEAwX,IACAF,EAAa7I,EAAchN,EAC7B,GApEF,CAsEF,EA6JA,SAAU6N,GAAU7N,GAClB,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9E0e,GACFA,EAAKvL,EAAOC,UAASwL,KACrBA,EAAO,SAAQjP,QACfA,GAAU,EAAKwX,MACfA,GAAQ,EAAKmC,oBACbA,GAAsB,GACpB5Z,EAEJ,GAAKgP,EAAL,CAsBA,IAAI9E,EAAQ4B,GAAO5B,MAAMzG,EAAQuL,IAC5BpE,EAAON,GAAOhL,GAAM2K,MAAMC,GAC3BiD,EAAQlN,EAAUqK,EAAMM,EACxBiP,GAAa,EACbC,EAAY,GACZ5F,EAAW,EAEX6F,EAAoB,EACpBC,EAAiB,EAOrB,IAAK,IAAK9iB,EAAMmH,KAASyN,GAAOvD,MAAM9E,EAAQ,CAC5CuL,KACA/O,UACAwX,QACAmC,wBACE,CAIF,GAAI5N,GAAQJ,UAAU1U,GAAO,CAI3B,IAAKugB,IAAUhU,EAAO4M,OAAOnZ,IAASuM,EAAOyM,kBAAkBhZ,IAAQ,OAC/D4U,GAAOlB,MAAMnH,EAAQpF,GAC3B,QACF,CAKA,GAAIoF,EAAO0M,SAASjZ,GAAO,SAE3B,GAAI4U,GAAOyD,WAAW9L,EAAQvM,GAAO,CAWnC,IAAInG,EAAIiO,GAAKoC,WAAW/C,EAAMiM,EAAIjM,MAAQiM,EAAMwB,GAAOxB,IAAI7G,EAAQpF,GAC/DlO,EAAI6O,GAAKoC,WAAW/C,EAAMuM,EAAMvM,MAAQuM,EAAQkB,GAAOlB,MAAMnH,EAAQpF,GACzEyb,EAAYhO,GAAOkC,OAAOvK,EAAQ,CAChC0G,OAAQha,EACRia,MAAOrZ,GACN,CACD0mB,UAEFoC,GAAa,CACf,CACF,CAOA,GAAI/U,GAAKC,OAAO7N,GAAO,CACrB,IAAI+iB,EAAUjb,GAAK8B,OAAOzC,EAAM8O,EAAM9O,MAwBtC,IAlBI4b,GACFF,EAAoB9Z,EAAUkN,EAAMnJ,OAAS9M,EAAK+M,KAAK1T,OAAS4c,EAAMnJ,OACtEgW,EAAiB7M,EAAMnJ,SAEvB+V,EAAoB7iB,EAAK+M,KAAK1T,OAC9BypB,EAAiB/Z,EAAU8Z,EAAoB,IAI7CE,GAAWJ,GAAuB,WAAT3K,UACrB,CACJ7Q,OACA2F,OAAQgW,GAEVH,GAAa,KAIF,CAIX,GAAiB,IAAb3F,EAAgB,CAClB,GAAkB,KAAd4F,EAAkB,MACtB5F,EAAWgG,EAAaJ,EAAW5K,EAAMjP,GAGzC6Z,EAAY3E,GAAyB2E,EAAW5F,EAAUjU,GAAS,EACrE,CAQA,GALA+Z,EAAiB/Z,EAAU+Z,EAAiB9F,EAAW8F,EAAiB9F,GACxE6F,GAAwC7F,GAIhB,EAAG,CACzBA,GAAY6F,EACZ,KACF,CAKA7F,EAAW,OACL,CACJ7V,OACA2F,OAAQgW,EAEZ,CACF,CACF,CAhJA,CAuJA,SAASE,EAAajW,EAAMiL,EAAMjP,GAChC,MAAa,cAATiP,EACKuE,GAAqBxP,EAAMhE,GAChB,SAATiP,EA3mDO,SAAyBjL,GAK7C,IAJA,IAAI0P,EAAQrjB,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,IAAmBA,UAAU,GACvE8kB,EAAO,EACP+E,GAAU,EAEPlW,EAAK1T,OAAS,GAAG,CACtB,IAAIilB,EAAW/B,GAAqBxP,EAAM0P,IACrCS,EAAMkB,GAAaH,GAAyBlR,EAAMuR,EAAU7B,GAEjE,GAAI0B,GAAgBjB,EAAMkB,EAAW3B,GACnCwG,GAAU,EACV/E,GAAQI,MACH,IAAK2E,EAGV,MAFA/E,GAAQI,CAGV,CAEAvR,EAAOqR,CACT,CAEA,OAAOF,CACT,CAslDagF,CAAgBnW,EAAMhE,GACX,SAATiP,GAA4B,UAATA,EACrBjL,EAAK1T,OAGP,CACT,CACF,CAuGA,SAAS8pB,GAAUpX,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAG1V,IAAIib,GAAa,CAAC/M,EAAQzN,KACxB,IAAI0N,UACFA,GACED,EAEJ,GAAIC,EAAW,CACb,IAAI6T,EAAQ,CAACrgB,EAAMmH,KACjB,IAAKyG,GAAKC,OAAO7N,GACf,OAAO,EAGT,IAAKojB,EAAYvM,GAAcjC,GAAO7J,OAAOwB,EAAQpF,GACrD,OAAQoF,EAAO4M,OAAOiK,IAAe7W,EAAO8W,aAAaD,IAGvDE,EAAoBlb,GAAMkM,WAAW9H,GACrC+W,GAA4B,EAEhC,IAAKD,EAAmB,CACtB,IAAKE,EAAcC,GAAgB7O,GAAO5U,KAAKuM,EAAQC,GAEvD,GAAIgX,GAAgBnD,EAAMmD,EAAcC,GAAe,CACrD,IAAKL,GAAcxO,GAAO7J,OAAOwB,EAAQkX,GACzCF,EAA4BH,GAAc7W,EAAO8W,aAAaD,EAChE,CACF,CAEA,GAAIE,GAAqBC,EACvB7C,GAAW9O,WAAWrF,EAAQzN,EAAK,CACjCuhB,QACAqD,OAAO,EACPnD,OAAO,QAEJ,CACL,IAAI/G,EAnCV,SAAyBpN,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAKiqB,GAAUrqB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBulB,GAAUrqB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAmCzgBuX,CAAgB,CAAA,EAAI/O,GAAO4E,MAAMjN,IAAW,WAEjDiN,EAAM1a,GACbyN,EAAOiN,MAAQA,EAEVhR,GAAS5J,IAAI2N,IAChBA,EAAO8M,UAEX,CACF,GA6oBF,SAASuK,GAAU7X,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAASwlB,GAAgBzX,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAK0qB,GAAU9qB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBgmB,GAAU9qB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAC3hB,IA2QI0X,GAAY,CAAC,QACbC,GAAa,CAAC,YAEdC,GAAqB,CAACzX,EAAQvM,KAChC,GAAI8U,GAAQJ,UAAU1U,GAAO,CAC3B,IAAI+R,EAAU/R,EAEd,QAAI4U,GAAOuE,OAAO5M,EAAQvM,IAEa,IAA5B+R,EAAQ9T,SAAS5E,QACnB2qB,GAAmBzX,EAAQwF,EAAQ9T,SAAS,GAIvD,CAAO,OAAI2W,GAAOC,SAAS7U,IAgZzB2R,GAAa,SAAoBpF,GACnC,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClFwb,GAAO8F,mBAAmBnO,EAAQ,KAChC,IAAI0X,KACFA,EAAO,SAAQ1D,MACfA,GAAQ,GACNzX,GACAuX,MACFA,EAAKvI,GACLA,EAAKvL,EAAOC,UAAS0X,OACrBA,EAAS,EAACC,OACVA,GAAS,GACPrb,EAYJ,GAVa,MAATuX,IACFA,EAAQlnB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,IAG1DiP,GAAM8H,QAAQ4H,KAChBA,EAhCY,EAACvL,EAAQyG,KACzB,GAAI5K,GAAMiM,YAAYrB,GACpB,OAAOA,EAAMC,OAEb,IAAI,CAAGG,GAAOhL,GAAM2K,MAAMC,GACtBkH,EAAWtF,GAAOsF,SAAS3N,EAAQ6G,GAIvC,OAHAsN,GAAWnd,OAAOgJ,EAAQ,CACxBuL,GAAI9E,IAECkH,EAASnS,SAuBTqc,CAAY7X,EAAQuL,IAKvBhQ,GAAK0C,OAAOsN,GAAK,CACnB,IAAI3Q,EAAO2Q,EACP7P,EAAQ2M,GAAO3M,MAAMsE,EAAQpF,IAC5B4D,GAAU6J,GAAO7J,OAAOwB,EAAQpF,GAErCkZ,EAAQlnB,GAAKA,IAAM4R,EAEnBmZ,EAASjc,EAAMd,KAAK9N,OAAS8N,EAAK9N,OAAS,EAC3Cye,EAAK7P,EACLkc,GAAS,CACX,CAEA,GAAKrM,EAAL,CAIA,IAGIuM,EAHAC,EAAY1P,GAAOsF,SAAS3N,EAAQuL,EAAI,CAC1CjQ,SAAU,aAIZ,IACE,IAAK0c,GAAW3P,GAAOvD,MAAM9E,EAAQ,CACnCuL,KACAuI,QACA4D,OACA1D,UAGF,IAAKgE,EACH,OAGF,IAAIC,EAAY5P,GAAO6F,KAAKlO,EAAQ,CAClCuL,KACAmM,KAAM,YAIR,IAAK1D,GAASiE,EAAW,CACvB,IAAKC,EAAUC,GAAYF,EAE3B,GAAI1P,GAAQJ,UAAU+P,IAAalY,EAAO0M,SAASwL,GAAW,CAC5D,IAAItX,EAAQyH,GAAOzH,MAAMZ,EAAQmY,GAEjC,IAAKvX,EAAO,CACV,IAGIwX,EAAY7c,GAAK6C,KAAK+Z,GAC1BhE,GAAWtP,YAAY7E,EAJZ,CACTQ,KAAM,IAG6B,CACnC+K,GAAI6M,EACJpE,UAEFpT,EAAQyH,GAAO3M,MAAMsE,EAAQoY,EAC/B,CAEA7M,EAAK3K,EACLgX,GAAS,CACX,CAGAD,EADoBpM,EAAG3Q,KAAK9N,OAASqrB,EAASrrB,OACrB,EACzB8qB,GAAS,CACX,CAEAE,EAAWzP,GAAOsF,SAAS3N,EAAQuL,GACnC,IAAI8M,EAAQ9M,EAAG3Q,KAAK9N,OAAS6qB,GACzB,CAAGW,GAAeN,EAClBO,EAAahN,EAAG3Q,KAAK3M,MAAM,EAAGoqB,GAC9BvZ,EAAsB,IAAX6Y,EAAepM,EAAGhL,OAASgL,EAAG3Q,KAAKyd,GAjCtC,EAmCZ,IAAK,IAAK5kB,EAAM6M,KAAU+H,GAAO3L,OAAOsD,EAAQ,CAC9CuL,GAAIgN,EACJ/b,SAAS,EACTwX,UACE,CACF,IAAImD,GAAQ,EAEZ,GAAI7W,EAAMxT,OAASwrB,EAAYxrB,QAA2B,IAAjBwT,EAAMxT,SAAiBknB,GAASzL,GAAQJ,UAAU1U,IAAS4U,GAAOuE,OAAO5M,EAAQvM,GACxH,MAGF,IAAIoN,EAASkX,EAAU1c,QACnB+R,EAAQ/E,GAAO+E,MAAMpN,EAAQa,EAAQP,GAEzC,GAAIsX,IAAWG,IAAc1P,GAAOkE,OAAOvM,EAAQa,EAAQP,GAAQ,CACjE6W,GAAQ,EACR,IAAI9T,EAAanD,GAAKuJ,aAAahW,GACnCuM,EAAO7S,MAAM,CACXpB,KAAM,aACN6O,KAAM0F,EACNxB,WACAuE,cAEJ,CAEAvE,EAAWwB,EAAMA,EAAMxT,OAAS,IAAMqqB,GAAS/J,EAAQ,EAAI,EAC7D,CAEA,GAAkB,MAAd7Q,EAAQgP,GAAY,CACtB,IAAI9J,EAAUqW,EAASzc,SAAWgN,GAAOxB,IAAI7G,EAAQ,IAErDmU,GAAWtO,OAAO7F,EAAQyB,EAC5B,CACF,CAAC,QACC,IAAI+W,EAEJT,EAAUvc,QACiB,QAA1Bgd,EAAYV,SAAoC,IAAdU,GAAgCA,EAAUhd,OAC/E,CAhGA,GAkGJ,EAoFA,SAAShC,GAAQgG,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAExV,SAAS2mB,GAAc5Y,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAK6M,GAAQjN,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBmI,GAAQjN,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CACrhB,UAmHI6Y,GAAe,KACjB,IAAI1Y,EAAS,CACXtO,SAAU,GACVwb,WAAY,GACZjN,UAAW,KACXgN,MAAO,KACPR,kBAAmB,KAAM,EACzBC,SAAU,KAAM,EAChBC,aAAc,KAAM,EACpBC,OAAQ,KAAM,EACdkK,aAAc,KAAM,EACpBhK,SAAU,OAEV3f,MAAO,WACL,IAAK,IAAIwrB,EAAO9rB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM2qB,GAAO7X,EAAO,EAAGA,EAAO6X,EAAM7X,IAC/E8X,EAAK9X,GAAQjU,UAAUiU,GAGzB,MApnGM,EAACd,EAAQnF,KACnB,IAAK,IAAIrP,KAAO6c,GAAOqF,SAAS1N,GAC9B7E,GAAQC,UAAU5P,EAAKqP,GAGzB,IAAK,IAAIkP,KAAQ1B,GAAOuF,UAAU5N,GAChCvE,GAASL,UAAU2O,EAAMlP,GAG3B,IAAK,IAAIge,KAASxQ,GAAO0F,UAAU/N,GACjCpE,GAASR,UAAUyd,EAAOhe,GAG5B,IAEIgb,EACAiD,EAHAC,EAAgBjd,GAAYzJ,IAAI2N,IAAW,GAC3CgZ,EAAmBhd,GAAgB3J,IAAI2N,IAAW,IAAItJ,IAItDJ,EAAMsE,IACR,GAAIA,EAAM,CACR,IAAIrI,EAAMqI,EAAK3I,KAAK,KAEf6mB,EAAc3iB,IAAI5D,KACrBumB,EAAcxiB,IAAI/D,GAClBsjB,EAAW3c,KAAK0B,GAEpB,GAGF,GAAIW,GAAK+C,0BAA0BzD,GAIjC,IAAK,IAAID,KAHTib,EAAa,GACbiD,EAAgB,IAAIpiB,IAEHqiB,GAEfziB,EADciF,GAAKH,UAAUR,EAAMC,SAIrCgb,EAAakD,EACbD,EAAgBE,EAGlB,IAAIC,EAAgBjZ,EAAOgN,cAAcnS,GAEzC,IAAK,IAAIyF,KAAS2Y,EAChB3iB,EAAIgK,GAGNxE,GAAYzF,IAAI2J,EAAQ6V,GACxB7Z,GAAgB3F,IAAI2J,EAAQ8Y,GAC5B3E,GAAW/Y,UAAU4E,EAAQnF,GAC7BmF,EAAOkN,WAAWhU,KAAK2B,GACvBwN,GAAOmF,UAAUxN,EAAQ,CACvBzB,UAAW1D,IAGG,kBAAZA,EAAG9O,OACLiU,EAAOiN,MAAQ,MAGZhR,GAAS5J,IAAI2N,KAChB/D,GAAS5F,IAAI2J,GAAQ,GACrB9F,QAAQgf,UAAU/e,KAAK,KACrB8B,GAAS5F,IAAI2J,GAAQ,GACrBA,EAAO8M,SAAS,CACdvO,UAAW1D,IAEbmF,EAAOkN,WAAa,OAijGb/f,CAAM6S,KAAW4Y,EAC1B,EAEAtN,QAAS,WACP,IAAK,IAAI6N,EAAQtsB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMmrB,GAAQzX,EAAQ,EAAGA,EAAQyX,EAAOzX,IACpFkX,EAAKlX,GAAS7U,UAAU6U,GAG1B,MAhzFQ,EAAC1B,EAAQzN,EAAKrC,KAC1B,IAAI+P,UACFA,GACED,EAEJ,GAAIC,EAAW,CACb,IAAI6T,EAAQ,CAACrgB,EAAMmH,KACjB,IAAKyG,GAAKC,OAAO7N,GACf,OAAO,EAGT,IAAKojB,EAAYvM,GAAcjC,GAAO7J,OAAOwB,EAAQpF,GACrD,OAAQoF,EAAO4M,OAAOiK,IAAe7W,EAAO8W,aAAaD,IAGvDE,EAAoBlb,GAAMkM,WAAW9H,GACrC+W,GAA4B,EAEhC,IAAKD,EAAmB,CACtB,IAAKE,EAAcC,GAAgB7O,GAAO5U,KAAKuM,EAAQC,GAEvD,GAAIgX,GAAgBnD,EAAMmD,EAAcC,GAAe,CACrD,IAAKL,GAAcxO,GAAO7J,OAAOwB,EAAQkX,GACzCF,EAA4BH,GAAc7W,EAAO8W,aAAaD,EAChE,CACF,CAEA,GAAIE,GAAqBC,EACvB7C,GAAWhP,SAASnF,EAAQ,CAC1BzN,CAACA,GAAMrC,GACN,CACD4jB,QACAqD,OAAO,EACPnD,OAAO,QAEJ,CACL,IAAI/G,EAAQwH,GAAgBA,GAAgB,GAAIpM,GAAO4E,MAAMjN,IAAW,IAAK,GAAI,CAC/EzN,CAACA,GAAMrC,IAGT8P,EAAOiN,MAAQA,EAEVhR,GAAS5J,IAAI2N,IAChBA,EAAO8M,UAEX,CACF,GAkwFWxB,CAAQtL,KAAW4Y,EAC5B,EACApN,eAAgB,WACd,IAAK,IAAI4N,EAAQvsB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMorB,GAAQjX,EAAQ,EAAGA,EAAQiX,EAAOjX,IACpFyW,EAAKzW,GAAStV,UAAUsV,GAG1B,MA7rFe,EAACnC,EAAQyL,KAC5B,IAAIxL,UACFA,GACED,EAEAC,GAAapE,GAAMiM,YAAY7H,IACjCkU,GAAWnd,OAAOgJ,EAAQ,CACxByL,OACAjP,SAAS,KAqrFFgP,CAAexL,KAAW4Y,EACnC,EACAlN,cAAe,WACb,IAAK,IAAI2N,EAAQxsB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMqrB,GAAQ9W,EAAQ,EAAGA,EAAQ8W,EAAO9W,IACpFqW,EAAKrW,GAAS1V,UAAU0V,GAG1B,MAvrFc,EAACvC,EAAQyL,KAC3B,IAAIxL,UACFA,GACED,EAEAC,GAAapE,GAAMiM,YAAY7H,IACjCkU,GAAWnd,OAAOgJ,EAAQ,CACxByL,UAgrFOC,CAAc1L,KAAW4Y,EAClC,EACAjN,eAAgB,WACd,IAAK,IAAI2N,EAAQzsB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMsrB,GAAQnW,EAAQ,EAAGA,EAAQmW,EAAOnW,IACpFyV,EAAKzV,GAAStW,UAAUsW,GAG1B,OAlrFe,SAAwBnD,GAC3C,IAAIuZ,UACFA,EAAY,WACV1sB,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GACpEoT,UACFA,GACED,EAEAC,GAAapE,GAAMkM,WAAW9H,IAChCkU,GAAWnd,OAAOgJ,EAAQ,CACxBxD,QAAuB,aAAd+c,GAGf,CAqqFa5N,CAAe3L,KAAW4Y,EACnC,EACAY,YAAa,WACX,IAAK,IAAIC,EAAQ5sB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMyrB,GAAQjW,EAAQ,EAAGA,EAAQiW,EAAOjW,IACpFoV,EAAKpV,GAAS3W,UAAU2W,GAG1B,MA3+FYxD,KAChB,IAAIC,UACFA,GACED,EAEJ,OAAIC,EACKC,GAAKyJ,SAAS3J,EAAQC,GAGxB,IAk+FIuZ,CAAYxZ,KAAW4Y,EAChC,EACA3M,YAAa,WACX,IAAK,IAAIyN,EAAQ7sB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM0rB,GAAQjW,EAAQ,EAAGA,EAAQiW,EAAOjW,IACpFmV,EAAKnV,GAAS5W,UAAU4W,GAG1B,MAvnFYzD,KAChBmU,GAAW/O,WAAWpF,EAAQ,CAC5B4X,QAAQ,KAqnFC3L,CAAYjM,KAAW4Y,EAChC,EACAxM,gBAAiB,WACf,IAAK,IAAIuN,EAAQ9sB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM2rB,GAAQ/V,EAAQ,EAAGA,EAAQ+V,EAAO/V,IACpFgV,EAAKhV,GAAS/W,UAAU+W,GAG1B,MApnFgB5D,KACpBmU,GAAW/O,WAAWpF,EAAQ,CAC5B4X,QAAQ,KAknFCxL,CAAgBpM,KAAW4Y,EACpC,EACA1M,eAAgB,WACd,IAAK,IAAI0N,EAAQ/sB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM4rB,GAAQnV,EAAQ,EAAGA,EAAQmV,EAAOnV,IACpFmU,EAAKnU,GAAS5X,UAAU4X,GAG1B,OA/4Ce,SAAwBzE,EAAQ2J,GACnD,IAAIpN,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClFwb,GAAO8F,mBAAmBnO,EAAQ,KAChC,IAAI6Z,QACFA,GAAU,EAAK7F,MACfA,GAAQ,GACNzX,GACAgP,GACFA,EAAKuE,GAAyB9P,IAC5BzD,EAEJ,GAAKoN,EAAS7c,OAAd,CAIA,GAAI+O,GAAM8H,QAAQ4H,GAOhB,GANKsO,IACHtO,EAAKlD,GAAO4F,YAAYjO,EAAQuL,EAAI,CAClCyI,WAIAnY,GAAMiM,YAAYyD,GACpBA,EAAKA,EAAG7E,WACH,CACL,IAAI,CAAGG,GAAOhL,GAAM2K,MAAM+E,GAE1B,IAAKyI,GAAS3L,GAAO6F,KAAKlO,EAAQ,CAChCuL,GAAI1E,IAEJ,OAGF,IAAI8G,EAAWtF,GAAOsF,SAAS3N,EAAQ6G,GACvCsN,GAAWnd,OAAOgJ,EAAQ,CACxBuL,OAEFA,EAAKoC,EAASnS,OAChB,MACSD,GAAK0C,OAAOsN,KACrBA,EAAKlD,GAAOlB,MAAMnH,EAAQuL,IAG5B,GAAKyI,IAAS3L,GAAO6F,KAAKlO,EAAQ,CAChCuL,OADF,CAQA,IAAIuO,EAAqBzR,GAAOgD,MAAMrL,EAAQ,CAC5CuL,KACAuI,MAAOlnB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOqE,SAAS1M,EAAQpT,GAC5D8qB,KAAM,UACN1D,UAGF,GAAI8F,EAAoB,CACtB,IAAI,CAAGC,GAAeD,EAElBzR,GAAO+E,MAAMpN,EAAQuL,EAAIwO,GAE3BxO,EADYlD,GAAOzH,MAAMZ,EAAQ+Z,GAExB1R,GAAOiF,QAAQtN,EAAQuL,EAAIwO,KAEpCxO,EADalD,GAAO1H,OAAOX,EAAQ+Z,GAGvC,CAEA,IAAIC,EAAa3R,GAAOgD,MAAMrL,EAAQ,CACpC8T,MAAOlnB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,GAC3D2e,KACAyI,WAEE,CAAGiG,GAAaD,EAChBE,EAAe7R,GAAOiF,QAAQtN,EAAQuL,EAAI0O,GAC1CE,EAAa9R,GAAO+E,MAAMpN,EAAQuL,EAAI0O,GACtCG,EAAeF,GAAgBC,EAC/BE,GAAcH,GAAgBA,GAAgBC,EAC9CG,GAAYH,IACTI,GAAara,GAAKwJ,MAAM,CAC7BhY,SAAUiY,GACT,MACI6Q,GAAYta,GAAK7B,KAAK,CAC3B3M,SAAUiY,GACT,IACCb,EAAU,GAEV2R,EAAU1Q,IACZ,IAAKnd,EAAGG,GAAKgd,EAGb,QAF0B,IAAbhd,EAAED,SAMXstB,IAIAC,GAAc9e,GAAKoC,WAAW5Q,EAAGwtB,IAAchS,GAAQJ,UAAUvb,KAAOoT,EAAO4M,OAAOhgB,KAAOoT,EAAO0M,SAAS9f,IAI7G0tB,GAAY/e,GAAKoC,WAAW5Q,EAAGytB,IAAajS,GAAQJ,UAAUvb,KAAOoT,EAAO4M,OAAOhgB,KAAOoT,EAAO0M,SAAS9f,MAOhH,IAAK,IAAIuc,KAASjJ,GAAK4E,MAAM,CAC3BpT,SAAUiY,GACT,CACDG,KAAM2Q,IAEFA,EAAQtR,IACVL,EAAQ5P,KAAKiQ,GAIjB,IAAIuR,EAAS,GACTC,EAAU,GACVC,EAAO,GACPC,GAAW,EACXhP,GAAY,EAEhB,IAAK,IAAKpY,KAASqV,EACbP,GAAQJ,UAAU1U,KAAUuM,EAAO0M,SAASjZ,IAC9ConB,GAAW,EACXhP,GAAY,EACZ8O,EAAQzhB,KAAKzF,IACJonB,EACTH,EAAOxhB,KAAKzF,GAEZmnB,EAAK1hB,KAAKzF,GAId,IAAKqnB,GAAezS,GAAOvD,MAAM9E,EAAQ,CACvCuL,KACAuI,MAAOlnB,GAAKyU,GAAKC,OAAO1U,IAAMyb,GAAOqE,SAAS1M,EAAQpT,GACtD8qB,KAAM,UACN1D,WAEE,CAAG+G,GAAcD,EACjBE,EAAgB3S,GAAOiF,QAAQtN,EAAQuL,EAAIwP,GAC3CE,EAAc5S,GAAO+E,MAAMpN,EAAQuL,EAAIwP,GACvCG,EAAY7S,GAAOoF,QAAQzN,EAAQma,IAAeS,EAAK9tB,OAASyO,GAAK6C,KAAK6b,GAAaA,GACvF/F,EAAS7L,GAAOoF,QAAQzN,EAAQib,EAAc1f,GAAK6C,KAAK2c,GAAcA,GAC1E5G,GAAW/O,WAAWpF,EAAQ,CAC5BuL,KACAuI,MAAOlnB,GAAKif,EAAYtD,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,GAAKyU,GAAKC,OAAO1U,IAAMyb,GAAOqE,SAAS1M,EAAQpT,GACtH8qB,KAAM7L,EAAY,SAAW,UAC7B+L,OAAQ/L,KAAeqO,GAAgBQ,EAAO5tB,OAAS,MAAQqtB,GAAcS,EAAK9tB,OAAS,GAC3FknB,UAEF,IA6BMpZ,EA7BFqZ,EAAW5L,GAAOoF,QAAQzN,GAASgb,GAAiBA,GAAiBC,EAAc1f,GAAK6C,KAAK2c,GAAcA,GA4B/G,GA3BA5G,GAAWtP,YAAY7E,EAAQ0a,EAAQ,CACrCnP,GAAI0I,EAAS5Y,QACbyY,MAAOlnB,GAAKyU,GAAKC,OAAO1U,IAAMyb,GAAOqE,SAAS1M,EAAQpT,GACtD8qB,KAAM,UACN1D,UAGEoG,IAAiBM,EAAO5tB,QAAU6tB,EAAQ7tB,SAAW8tB,EAAK9tB,QAC5DqnB,GAAWnd,OAAOgJ,EAAQ,CACxBuL,GAAI0O,EACJjG,UAIJG,GAAWtP,YAAY7E,EAAQ2a,EAAS,CACtCpP,GAAI2P,EAAU7f,QACdyY,MAAOlnB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,GAC3D8qB,KAAM,SACN1D,UAEFG,GAAWtP,YAAY7E,EAAQ4a,EAAM,CACnCrP,GAAI2I,EAAO7Y,QACXyY,MAAOlnB,GAAKyU,GAAKC,OAAO1U,IAAMyb,GAAOqE,SAAS1M,EAAQpT,GACtD8qB,KAAM,UACN1D,WAGGzX,EAAQgP,KAGPqP,EAAK9tB,OAAS,GAAKonB,EAAO7Y,QAC5BT,EAAOW,GAAKkD,SAASyV,EAAO7Y,SACnBsf,EAAQ7tB,OAAS,GAAKouB,EAAU7f,QACzCT,EAAOW,GAAKkD,SAASyc,EAAU7f,SACtB4Y,EAAS5Y,UAClBT,EAAOW,GAAKkD,SAASwV,EAAS5Y,UAG5BT,GAAM,CACR,IAAIugB,EAAO9S,GAAOxB,IAAI7G,EAAQpF,GAE9BuZ,GAAWtO,OAAO7F,EAAQmb,EAC5B,CAGFlH,EAASzY,QACT0f,EAAU1f,QACV0Y,EAAO1Y,OA/JP,CAlCA,GAmMJ,CA+rCa0Q,CAAelM,KAAW4Y,EACnC,EACAzM,WAAY,WACV,IAAK,IAAIiP,EAASvuB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMotB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFzC,EAAKyC,GAAUxuB,UAAUwuB,GAG3B,MAtoFW,EAACrb,EAAQvM,EAAM8I,KAC9B4X,GAAWtP,YAAY7E,EAAQvM,EAAM8I,IAqoF1B4P,CAAWnM,KAAW4Y,EAC/B,EACAvM,WAAY,WACV,IAAK,IAAIiP,EAASzuB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMstB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF3C,EAAK2C,GAAU1uB,UAAU0uB,GAG3B,OAAOlP,GAAWrM,KAAW4Y,EAC/B,EACA/L,cAAe,WACb,IAAK,IAAI2O,EAAS3uB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMwtB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF7C,EAAK6C,GAAU5uB,UAAU4uB,GAG3B,MAzgGc,EAACzb,EAAQmJ,KAC3B,IAAK1V,EAAMmH,GAAQuO,EAEnB,IAAI9H,GAAKC,OAAO7N,GAKhB,GAAI8U,GAAQJ,UAAU1U,IAAkC,IAAzBA,EAAK/B,SAAS5E,OAI3CqnB,GAAWtP,YAAY7E,EAHX,CACVQ,KAAM,IAE8B,CACpC+K,GAAI3Q,EAAK1M,OAAO,GAChB8lB,OAAO,SAWX,IALA,IAAI0H,GAAoBrT,GAAOC,SAAS7U,IAAgB8U,GAAQJ,UAAU1U,KAAUuM,EAAO0M,SAASjZ,IAAkC,IAAzBA,EAAK/B,SAAS5E,QAAgBuU,GAAKC,OAAO7N,EAAK/B,SAAS,KAAOsO,EAAO0M,SAASjZ,EAAK/B,SAAS,KAGtM9E,EAAI,EAECD,EAAI,EAAGA,EAAI8G,EAAK/B,SAAS5E,OAAQH,IAAKC,IAAK,CAClD,IAAI+uB,EAAczb,GAAK7N,IAAI2N,EAAQpF,GACnC,IAAIyG,GAAKC,OAAOqa,GAAhB,CACA,IAAIC,EAASD,EAAYjqB,SAAS9E,GAC9BsU,EAAOya,EAAYjqB,SAAS9E,EAAI,GAChCivB,EAASlvB,IAAM8G,EAAK/B,SAAS5E,OAAS,GACrBuU,GAAKC,OAAOsa,IAAWrT,GAAQJ,UAAUyT,IAAW5b,EAAO0M,SAASkP,MAKlEF,GACrBvH,GAAWjP,YAAYlF,EAAQ,CAC7BuL,GAAI3Q,EAAK1M,OAAOtB,GAChBonB,OAAO,IAETpnB,KACS2b,GAAQJ,UAAUyT,GAEvB5b,EAAO0M,SAASkP,KACN,MAAR1a,GAAiBG,GAAKC,OAAOJ,GAStB2a,IAIT1H,GAAWtP,YAAY7E,EAHP,CACdQ,KAAM,IAEkC,CACxC+K,GAAI3Q,EAAK1M,OAAOtB,EAAI,GACpBonB,OAAO,IAETpnB,MAbAunB,GAAWtP,YAAY7E,EAHR,CACbQ,KAAM,IAEiC,CACvC+K,GAAI3Q,EAAK1M,OAAOtB,GAChBonB,OAAO,IAETpnB,MAcQ,MAARsU,GAAgBG,GAAKC,OAAOJ,KAC1BG,GAAKhE,OAAOue,EAAQ1a,EAAM,CAC5B+N,OAAO,KAEPkF,GAAWnP,WAAWhF,EAAQ,CAC5BuL,GAAI3Q,EAAK1M,OAAOtB,GAChBonB,OAAO,IAETpnB,KACuB,KAAdsU,EAAKV,MACd2T,GAAWjP,YAAYlF,EAAQ,CAC7BuL,GAAI3Q,EAAK1M,OAAOtB,EAAI,GACpBonB,OAAO,IAETpnB,KACyB,KAAhBgvB,EAAOpb,OAChB2T,GAAWjP,YAAYlF,EAAQ,CAC7BuL,GAAI3Q,EAAK1M,OAAOtB,GAChBonB,OAAO,IAETpnB,KA5DwB,CAgEhC,GA86FWigB,CAAc7M,KAAW4Y,EAClC,EACA7L,WAAY,WACV,IAAK,IAAI+O,EAASjvB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM8tB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFnD,EAAKmD,GAAUlvB,UAAUkvB,GAG3B,OAAOhP,GAAW/M,KAAW4Y,EAC/B,EACA5L,cAAe,WACb,IAAK,IAAIgP,EAASnvB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMguB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFrD,EAAKqD,GAAUpvB,UAAUovB,GAG3B,MApoGc,EAACjc,EAAQnF,KAC3B,OAAQA,EAAG9O,MACT,IAAK,cACL,IAAK,cACL,IAAK,WAED,IAAI6O,KACFA,GACEC,EACJ,OAAOU,GAAKmB,OAAO9B,GAGvB,IAAK,cAED,IAAInH,KACFA,EACAmH,KAAM0F,GACJzF,EACA6B,EAASnB,GAAKmB,OAAO4D,GACrBiJ,EAAclI,GAAKC,OAAO7N,GAAQ,GAAKzF,MAAMJ,KAAKsS,GAAK4E,MAAMrR,GAAOsW,IACtE,IAAI,CAAGhd,GAAKgd,EACZ,OAAOzJ,EAAMpS,OAAOnB,KAEtB,MAAO,IAAI2P,KAAW6M,GAG1B,IAAK,aAED,IACE3O,KAAMmG,GACJlG,EAGJ,MAAO,IAFSU,GAAKe,UAAUyE,GACZxF,GAAKkD,SAASsC,IAIrC,IAAK,YAED,IACEnG,KAAM+G,EAAMzC,QACZA,GACErE,EAEJ,GAAIU,GAAK8B,OAAOsE,EAAQzC,GACtB,MAAO,GAGT,IAAIgd,EAAe,GACfC,EAAe,GAEnB,IAAK,IAAIxd,KAAYpD,GAAKe,UAAUqF,GAAS,CAC3C,IAAI5U,EAAIwO,GAAKH,UAAUuD,EAAU9D,GACjCqhB,EAAahjB,KAAKnM,EACpB,CAEA,IAAK,IAAIqvB,KAAa7gB,GAAKe,UAAU4C,GAAU,CAC7C,IAAImd,EAAK9gB,GAAKH,UAAUghB,EAAWvhB,GAEnCshB,EAAajjB,KAAKmjB,EACpB,CAEA,IAAIra,EAAYma,EAAaA,EAAarvB,OAAS,GAC/CmV,EAAW/C,EAAQA,EAAQpS,OAAS,GACpCwvB,EAAata,EAAU9T,OAAO+T,GAClC,MAAO,IAAIia,KAAiBC,EAAcG,GAG9C,IAAK,cAED,IACE1hB,KAAMwH,GACJvH,EAIJ,MAAO,IAFUU,GAAKe,UAAU8F,IAKpC,IAAK,aAED,IACExH,KAAMgI,GACJ/H,EAKJ,MAAO,IAHOU,GAAKmB,OAAOkG,GAEXrH,GAAK6C,KAAKwE,IAI7B,QAEI,MAAO,KAwiGFoK,CAAchN,KAAW4Y,EAClC,EACA5C,gBAAiB,WACf,IAAK,IAAIuG,EAAS1vB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMuuB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF5D,EAAK4D,GAAU3vB,UAAU2vB,GAG3B,MAh8FgB,EAACxc,EAAQ+J,KAC7B,IAAIgM,UACFA,EAASD,wBACTA,GACE/L,EACA0S,EAA0C,GAA1B3G,EAEpB,GAAIC,EAAY0G,EACd,MAAM,IAAI7rB,MAAM,mDAAmD1C,OAAOuuB,EAAe,8GAG3F,OAAO,GAq7FIzG,CAAgBhW,KAAW4Y,EACpC,EAEAvN,MAAO,WACL,IAAK,IAAIqR,EAAS7vB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM0uB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF/D,EAAK+D,GAAU9vB,UAAU8vB,GAG3B,OA17FM,SAAe3c,GACzB,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EmnB,MACFA,GAAQ,EAAK0D,KACbA,EAAO,SAAQnM,GACfA,EAAKvL,EAAOC,UAAS6T,MACrBA,GACEvX,EAEJ,GAAKgP,EAAL,CAIA,IAAI3Q,EAAOyN,GAAOzN,KAAKoF,EAAQuL,GAC3B/O,EAAmB,WAATkb,EAEd,IAAK,IAAK9qB,EAAGG,KAAMsb,GAAO3L,OAAOsD,EAAQ,CACvCuL,GAAI3Q,EACJoZ,QACAF,QACAtX,YAEA,IAAI6E,GAAKC,OAAO1U,GAEhB,GAAIiP,GAAM8H,QAAQ4H,IAChB,GAAIhQ,GAAKoC,WAAW5Q,EAAGwe,EAAG7E,OAAO9L,OAASW,GAAKoC,WAAW5Q,EAAGwe,EAAG5E,MAAM/L,MACpE,MAAO,CAAChO,EAAGG,QAGb,IAAKwO,GAAK8B,OAAOzC,EAAM7N,GACrB,MAAO,CAACH,EAAGG,EAnBjB,CAuBF,CAw5Fase,CAAMrL,KAAW4Y,EAC1B,EACAhY,MAAO,WACL,IAAK,IAAIgc,EAAS/vB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM4uB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFjE,EAAKiE,GAAUhwB,UAAUgwB,GAG3B,OAt2FM,SAAe7c,EAAQuL,GACjC,IAaI1L,EAbAtD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAK9E4Z,EAAQ,CACVC,OALW2B,GAAO3M,MAAMsE,EAAQuL,EAAI,CACpCuR,KAAM,QAKNnW,MAHU0B,GAAOxB,IAAI7G,EAAQ,MAK3ByQ,SACFA,EAAW,GACTlU,EACA1F,EAAI,EAGR,IAAK,IAAI9J,KAAKsb,GAAOwF,UAAU7N,EAAQ2U,GAAgBA,GAAgB,CAAA,EAAIpY,GAAU,GAAI,CACvFgP,GAAI9E,KACD,CACH,GAAI5P,EAAI4Z,EACN,MAGQ,IAAN5Z,IACFgJ,EAAS9S,GAGX8J,GACF,CAEA,OAAOgJ,CACT,CAu0Fae,CAAMZ,KAAW4Y,EAC1B,EACAjY,OAAQ,WACN,IAAK,IAAIoc,EAASlwB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM+uB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFpE,EAAKoE,GAAUnwB,UAAUmwB,GAG3B,OAz0FO,SAAgBhd,EAAQuL,GACnC,IAaI1L,EAbAtD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAK9E4Z,EAAQ,CACVC,OALW2B,GAAOlB,MAAMnH,EAAQ,IAMhC2G,MALU0B,GAAO3M,MAAMsE,EAAQuL,EAAI,CACnCuR,KAAM,YAMJrM,SACFA,EAAW,GACTlU,EACA1F,EAAI,EAGR,IAAK,IAAI9J,KAAKsb,GAAOwF,UAAU7N,EAAQ6U,GAAgBA,GAAgB,CAAA,EAAItY,GAAU,GAAI,CACvFgP,GAAI9E,EACJjK,SAAS,KACN,CACH,GAAI3F,EAAI4Z,EACN,MAGQ,IAAN5Z,IACFgJ,EAAS9S,GAGX8J,GACF,CAEA,OAAOgJ,CACT,CAyyFac,CAAOX,KAAW4Y,EAC3B,EACAlT,SAAU,WACR,IAAK,IAAIuX,EAASpwB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMivB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFtE,EAAKsE,GAAUrwB,UAAUqwB,GAG3B,OApwCS,SAAkBld,GAC/B,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EiwB,KACFA,EAAO,UACLvgB,GACA0D,UACFA,GACED,EAEJ,GAAKC,EAEE,GAAa,WAAT6c,EACT3I,GAAWtO,OAAO7F,EAAQC,EAAUyG,aAC/B,GAAa,UAAToW,EACT3I,GAAWtO,OAAO7F,EAAQC,EAAU0G,YAC/B,GAAa,UAATmW,EAAkB,CAC3B,IAAK3V,GAAStL,GAAM2K,MAAMvG,GAC1BkU,GAAWtO,OAAO7F,EAAQmH,EAC5B,MAAO,GAAa,QAAT2V,EAAgB,CACzB,IAAI,CAAGjW,GAAOhL,GAAM2K,MAAMvG,GAC1BkU,GAAWtO,OAAO7F,EAAQ6G,EAC5B,CACF,CA8uCanB,CAAS1F,KAAW4Y,EAC7B,EACA5hB,OAAQ,WACN,IAAK,IAAImmB,EAAStwB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMmvB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFxE,EAAKwE,GAAUvwB,UAAUuwB,GAG3B,OA1rDW,SAAoBpd,GACnC,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClFwb,GAAO8F,mBAAmBnO,EAAQ,KAChC,IAAIqd,EAAcC,GAEd9gB,QACFA,GAAU,EAAKiP,KACfA,EAAO,YAAWgF,SAClBA,EAAW,EAACuD,MACZA,GAAQ,GACNzX,GACAgP,GACFA,EAAKvL,EAAOC,UAAS4Z,QACrBA,GAAU,GACRtd,EAEJ,GAAKgP,EAAL,CAIA,IAAIzD,GAAc,EAOlB,GALIjM,GAAM8H,QAAQ4H,IAAO1P,GAAMiM,YAAYyD,KACzCzD,GAAc,EACdyD,EAAKA,EAAG7E,QAGN/K,GAAM2L,QAAQiE,GAAK,CACrB,IAAIgS,EAAelV,GAAO6F,KAAKlO,EAAQ,CACrCuL,KACAmM,KAAM,YAGR,IAAK1D,GAASuJ,EAAc,CAC1B,IAAI,CAAGpF,GAAYoF,EACnBhS,EAAK4M,CACP,KAAO,CACL,IAAIqF,EAAO,CACT/R,OACAgF,YAGFlF,EAAK,CACH7E,OAAQ6E,EACR5E,MAHWnK,EAAU6L,GAAO1H,OAAOX,EAAQuL,EAAIiS,IAASnV,GAAOlB,MAAMnH,EAAQ,IAAMqI,GAAOzH,MAAMZ,EAAQuL,EAAIiS,IAASnV,GAAOxB,IAAI7G,EAAQ,KAK1I6Z,GAAU,CACZ,CACF,CAEA,GAAIte,GAAK0C,OAAOsN,GACd4I,GAAWjP,YAAYlF,EAAQ,CAC7BuL,KACAyI,eAKJ,IAAInY,GAAMiM,YAAYyD,GAAtB,CAIA,IAAKsO,EAAS,CACZ,IAAI,CAAGsB,GAAQtf,GAAM2K,MAAM+E,GACvBkS,EAAWpV,GAAOxB,IAAI7G,EAAQ,IAE7BrE,GAAM0B,OAAO8d,EAAMsC,KACtBlS,EAAKlD,GAAO4F,YAAYjO,EAAQuL,EAAI,CAClCyI,UAGN,CAEA,IAAK7M,EAAON,GAAOhL,GAAM2K,MAAM+E,GAC3BmS,EAAarV,GAAOgD,MAAMrL,EAAQ,CACpC8T,MAAOlnB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,GAC3D2e,GAAIpE,EACJ6M,UAEE2J,EAAWtV,GAAOgD,MAAMrL,EAAQ,CAClC8T,MAAOlnB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,GAC3D2e,GAAI1E,EACJmN,UAEE4J,EAAiBF,GAAcC,IAAapiB,GAAK8B,OAAOqgB,EAAW,GAAIC,EAAS,IAChFE,EAAetiB,GAAK8B,OAAO8J,EAAMvM,KAAMiM,EAAIjM,MAC3CkjB,EAAmB9J,EAAQ,KAGvB,QAH+BqJ,EAAehV,GAAO6F,KAAKlO,EAAQ,CACxEuL,GAAIpE,EACJuQ,KAAM,mBACyB,IAAjB2F,EAA0BA,EAAehV,GAAOuD,gBAAgB5L,EAAQ,CACtFuL,GAAIpE,EACJuQ,KAAM,YAEJqG,EAAiB/J,EAAQ,KAGrB,QAH6BsJ,EAAgBjV,GAAO6F,KAAKlO,EAAQ,CACvEuL,GAAI1E,EACJ6Q,KAAM,mBAC0B,IAAlB4F,EAA2BA,EAAgBjV,GAAOuD,gBAAgB5L,EAAQ,CACxFuL,GAAI1E,EACJ6Q,KAAM,YAGR,GAAIoG,EAAkB,CACpB,IAAInd,EAAS0H,GAAO1H,OAAOX,EAAQmH,GAE/BxG,GAAU+c,GAAcniB,GAAKoC,WAAW+f,EAAW,GAAI/c,EAAO/F,QAChEuM,EAAQxG,EAEZ,CAEA,GAAIod,EAAgB,CAClB,IAAInd,EAAQyH,GAAOzH,MAAMZ,EAAQ6G,GAE7BjG,GAAS+c,GAAYpiB,GAAKoC,WAAWggB,EAAS,GAAI/c,EAAMhG,QAC1DiM,EAAMjG,EAEV,CAIA,IACI4Z,EADA1R,EAAU,GAGd,IAAK,IAAIK,KAASd,GAAOvD,MAAM9E,EAAQ,CACrCuL,KACAyI,UACE,CACF,IAAKvgB,EAAMmH,GAAQuO,EAEfqR,GAA6C,IAAjCjf,GAAKuB,QAAQlC,EAAM4f,MAI9BxG,GAASzL,GAAQJ,UAAU1U,KAAU4U,GAAOuE,OAAO5M,EAAQvM,IAAS4U,GAAOoE,kBAAkBzM,EAAQvM,MAAW8H,GAAKuC,SAASlD,EAAMuM,EAAMvM,QAAUW,GAAKuC,SAASlD,EAAMiM,EAAIjM,SAC/KkO,EAAQ5P,KAAKiQ,GACbqR,EAAW5f,EAEf,CAEA,IAAI8S,EAAW1f,MAAMJ,KAAKkb,EAASiB,IACjC,IAAI,CAAGhd,GAAKgd,EACZ,OAAO1B,GAAOoF,QAAQzN,EAAQjT,KAE5BknB,EAAW5L,GAAOsF,SAAS3N,EAAQmH,GACnC+M,EAAS7L,GAAOsF,SAAS3N,EAAQ6G,GACjCmX,EAAc,GAElB,IAAKH,IAAiBC,EAAkB,CACtC,IAAIjd,EAASoT,EAAS5Y,SACjBoF,GAAS4H,GAAO3H,KAAKV,EAAQa,IAEhCjG,KAAM0F,GACJO,GACAN,OACFA,GACE4G,EAEA3G,EAAOC,EAAMD,KAAKvS,MAAMsS,GAExBC,EAAK1T,OAAS,IAChBkT,EAAO7S,MAAM,CACXpB,KAAM,cACN6O,KAAM0F,EACNC,SACAC,SAEFwd,EAAcxd,EAElB,CAOA,GALAkN,EAASlR,UAAU/G,IAAIF,GAAKA,EAAEiG,SAASzJ,OAAOwD,GAAW,OAANA,GAAYU,QAAQlJ,GAAKonB,GAAWjP,YAAYlF,EAAQ,CACzGuL,GAAIxe,EACJinB,YAGG+J,EAAgB,CACnB,IAAItc,EAAUyS,EAAO7Y,SAChB2F,GAAUqH,GAAO3H,KAAKV,EAAQyB,IAEjC7G,KAAMmG,GACJU,EAEAoB,EAAUgb,EAAe1W,EAAM5G,OAAS,EAExCuC,EAAQ9B,EAAOR,KAAKvS,MAAM4U,EAASgE,EAAItG,QAEvCuC,EAAMhW,OAAS,IACjBkT,EAAO7S,MAAM,CACXpB,KAAM,cACN6O,KAAMmG,EACNR,OAAQsC,EACRrC,KAAMsC,IAERkb,EAAclb,EAElB,EAEK+a,GAAgBD,GAAkB1J,EAAO7Y,SAAW4Y,EAAS5Y,SAChE8Y,GAAWnP,WAAWhF,EAAQ,CAC5BuL,GAAI2I,EAAO7Y,QACXwe,SAAS,EACT7F,UAOAlM,GAAetL,GAAoB,cAATiP,GAAwBuS,EAAYlxB,OAAS,GAAKkxB,EAAYlK,MAAM,qBAChGK,GAAW9H,WAAWrM,EAAQge,EAAY/vB,MAAM,EAAG+vB,EAAYlxB,OAAS2jB,IAG1E,IAAIwN,EAAahK,EAASzY,QACtB0iB,EAAWhK,EAAO1Y,QAClBE,EAAQc,EAAUyhB,GAAcC,EAAWA,GAAYD,EAEzC,MAAd1hB,EAAQgP,IAAc7P,GACxByY,GAAWtO,OAAO7F,EAAQtE,EA5J5B,CA1CA,GAyMJ,CA+9CayiB,CAAWne,KAAW4Y,EAC/B,EACAjT,SAAU,WACR,IAAK,IAAIyY,EAASvxB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMowB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFzF,EAAKyF,GAAUxxB,UAAUwxB,GAG3B,MA1vCSre,KACb,IAAIC,UACFA,GACED,EAEAC,GACFD,EAAO7S,MAAM,CACXpB,KAAM,gBACNsX,WAAYpD,EACZqD,cAAe,QAivCRqC,CAAS3F,KAAW4Y,EAC7B,EACApS,MAAO,WACL,IAAK,IAAI8X,EAASzxB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMswB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF3F,EAAK2F,GAAU1xB,UAAU0xB,GAG3B,MA3xFM,EAACve,EAAQuL,IACZ,CAAClD,GAAOlB,MAAMnH,EAAQuL,GAAKlD,GAAOxB,IAAI7G,EAAQuL,IA0xF1C/E,CAAMxG,KAAW4Y,EAC1B,EACAhN,gBAAiB,WACf,IAAK,IAAI4S,EAAS3xB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMwwB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF7F,EAAK6F,GAAU5xB,UAAU4xB,GAG3B,OA3xFgB,SAAyBze,GAC7C,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClF,OAAOwb,GAAOgD,MAAMrL,EAAQ+U,GAAgBA,GAAgB,CAAA,EAAIxY,GAAU,GAAI,CAC5EuX,MAAOlnB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOoE,kBAAkBzM,EAAQpT,KAEzE,CAsxFagf,CAAgB5L,KAAW4Y,EACpC,EACA/R,IAAK,WACH,IAAK,IAAI6X,EAAS7xB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM0wB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF/F,EAAK+F,GAAU9xB,UAAU8xB,GAG3B,MA3xFI,EAAC3e,EAAQuL,IACVlD,GAAO3M,MAAMsE,EAAQuL,EAAI,CAC9BuR,KAAM,QAyxFGjW,CAAI7G,KAAW4Y,EACxB,EACAlP,MAAO,WACL,IAAK,IAAIkV,EAAS/xB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM4wB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFjG,EAAKiG,GAAUhyB,UAAUgyB,GAG3B,MA5xFM,EAAC7e,EAAQuL,KACnB,IAAI3Q,EAAOyN,GAAOzN,KAAKoF,EAAQuL,EAAI,CACjCuR,KAAM,UAER,OAAOzU,GAAO5U,KAAKuM,EAAQpF,IAwxFhB8O,CAAM1J,KAAW4Y,EAC1B,EACAjP,SAAU,WACR,IAAK,IAAImV,EAASjyB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM8wB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFnG,EAAKmG,GAAUlyB,UAAUkyB,GAG3B,MA5xFS,EAAC/e,EAAQuL,KACtB,IAAI9E,EAAQ4B,GAAO5B,MAAMzG,EAAQuL,GACjC,OAAOrL,GAAKyJ,SAAS3J,EAAQyG,IA0xFlBkD,CAAS3J,KAAW4Y,EAC7B,EACArL,SAAU,WACR,IAAK,IAAIyR,EAASnyB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMgxB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFrG,EAAKqG,GAAUpyB,UAAUoyB,GAG3B,OA3nFM,SAAejf,GACzB,IAAIiN,MACFA,EAAKhN,UACLA,GACED,EAEJ,IAAKC,EACH,OAAO,KAGT,GAAIgN,EACF,OAAOA,EAGT,GAAIpR,GAAMkM,WAAW9H,GAAY,CAC/B,IAAK6T,GAASzL,GAAOvD,MAAM9E,EAAQ,CACjC8T,MAAOzS,GAAKC,SAGd,GAAIwS,EAAO,CACT,IAAKrT,GAASqT,EAId,OAFY7N,GAAyBxF,EAAO2U,GAG9C,CACE,MAAO,CAAA,CAEX,CAEA,IAAI1O,OACFA,GACEzG,GACArF,KACFA,GACE8L,GACCjT,GAAQ4U,GAAO3H,KAAKV,EAAQpF,GAEjC,GAAsB,IAAlB8L,EAAOnG,OAAc,CACvB,IAAIW,EAAOmH,GAAO5J,SAASuB,EAAQ,CACjCuL,GAAI3Q,EACJkZ,MAAOzS,GAAKC,SAEV4d,EAAa7W,GAAOgD,MAAMrL,EAAQ,CACpC8T,MAAOlnB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOuE,OAAO5M,EAAQpT,IAAMoT,EAAO8W,aAAalqB,KAGtF,IAAKsyB,EAAY,CACf,IAAIC,EAAQ9W,GAAOgD,MAAMrL,EAAQ,CAC/B8T,MAAOlnB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,KAG7D,GAAIsU,GAAQie,EAAO,CACjB,IAAKC,EAAUne,GAAYC,GACvB,CAAG+Y,GAAakF,EAEhB5jB,GAAKoC,WAAWsc,EAAWhZ,KAC7BxN,EAAO2rB,EAEX,CACF,CACF,CAIA,OAFWnZ,GAAyBxS,EAAM4hB,GAG5C,CAyjFapI,CAAMjN,KAAW4Y,EAC1B,EACA/M,UAAW,WACT,IAAK,IAAIwT,EAASxyB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMqxB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF1G,EAAK0G,GAAUzyB,UAAUyyB,GAG3B,MA3xFU,EAACtf,EAAQwF,IAChBA,EAAQ9T,SAAS6tB,KAAK3yB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,IA0xFtEif,CAAU7L,KAAW4Y,EAC9B,EACA9M,WAAY,WACV,IAAK,IAAI0T,EAAS3yB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMwxB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF7G,EAAK6G,GAAU5yB,UAAU4yB,GAG3B,MA9xFW,EAACzf,EAAQwF,IACjBA,EAAQ9T,SAAS6tB,KAAK3yB,GAAKyU,GAAKC,OAAO1U,IAAMyb,GAAOqE,SAAS1M,EAAQpT,IA6xFjEkf,CAAW9L,KAAW4Y,EAC/B,EACA7M,QAAS,WACP,IAAK,IAAI2T,EAAS7yB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM0xB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF/G,EAAK+G,GAAU9yB,UAAU8yB,GAG3B,MAjyFQ,EAAC3f,EAAQpF,IACdsF,GAAK/J,IAAI6J,EAAQpF,GAgyFbmR,CAAQ/L,KAAW4Y,EAC5B,EACA5M,SAAU,WACR,IAAK,IAAI4T,EAAS/yB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM4xB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFjH,EAAKiH,GAAUhzB,UAAUgzB,GAG3B,MApyFS,EAAC7f,EAAQwF,IACfA,EAAQ9T,SAAS8L,MAAM5Q,GAAKyU,GAAKC,OAAO1U,IAmyFpCof,CAAShM,KAAW4Y,EAC7B,EACA/T,YAAa,WACX,IAAK,IAAIib,EAASjzB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM8xB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFnH,EAAKmH,GAAUlzB,UAAUkzB,GAG3B,OA9qCY,SAAqB/f,EAAQ8E,GAC7C,IAAIvI,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClFwb,GAAO8F,mBAAmBnO,EAAQ,KAChC,IAAI6Z,QACFA,GAAU,EAAK7F,MACfA,GAAQ,EAAK0D,KACbA,EAAO,UACLnb,GACAgP,GACFA,EAAEuI,MACFA,EAAKjO,OACLA,GACEtJ,EAMJ,GAJI2D,GAAK+J,OAAOnF,KACdA,EAAQ,CAACA,IAGU,IAAjBA,EAAMhY,OAAV,CAIA,IAAK2G,GAAQqR,EAWb,GATKyG,IACHA,EAAKuE,GAAyB9P,GAC9B6F,GAAS,GAGG,MAAVA,IACFA,GAAS,GAGPhK,GAAM8H,QAAQ4H,GAOhB,GANKsO,IACHtO,EAAKlD,GAAO4F,YAAYjO,EAAQuL,EAAI,CAClCyI,WAIAnY,GAAMiM,YAAYyD,GACpBA,EAAKA,EAAG7E,WACH,CACL,IAAI,CAAGG,GAAOhL,GAAM2K,MAAM+E,GACtBoC,EAAWtF,GAAOsF,SAAS3N,EAAQ6G,GACvCsN,GAAWnd,OAAOgJ,EAAQ,CACxBuL,OAEFA,EAAKoC,EAASnS,OAChB,CAGF,GAAIG,GAAM2L,QAAQiE,GAAK,CACR,MAATuI,IAEAA,EADEzS,GAAKC,OAAO7N,GACN7G,GAAKyU,GAAKC,OAAO1U,GAChBoT,EAAO0M,SAASjZ,GACjB7G,GAAKyU,GAAKC,OAAO1U,IAAMyb,GAAOqE,SAAS1M,EAAQpT,GAE/CA,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,IAIhE,IAAKuc,GAASd,GAAOvD,MAAM9E,EAAQ,CACjCuL,GAAIA,EAAG3Q,KACPkZ,QACA4D,OACA1D,UAGF,IAAI7K,EAaF,OAZA,IAAI,CAAG4G,GAAa5G,EAChBsE,EAAUpF,GAAOoF,QAAQzN,EAAQ+P,GACjCiQ,EAAU3X,GAAO+E,MAAMpN,EAAQuL,EAAIwE,GACvCoE,GAAW/O,WAAWpF,EAAQ,CAC5BuL,KACAuI,QACA4D,OACA1D,UAEF,IAAIpZ,EAAO6S,EAAQjS,QACnB+P,EAAKyU,EAAUzkB,GAAK6C,KAAKxD,GAAQA,CAIrC,CAEA,IAAI0P,EAAa/O,GAAKiD,OAAO+M,GACzBpL,EAAQoL,EAAGA,EAAGze,OAAS,GAE3B,GAAKknB,IAAS3L,GAAO6F,KAAKlO,EAAQ,CAChCuL,GAAIjB,IADN,CAMA,IAAK,IAAI7J,KAASqE,EAAO,CACvB,IAAIxE,EAAQgK,EAAWpc,OAAOiS,GAE9BA,IACAH,EAAO7S,MAAM,CACXpB,KAAM,cACN6O,KAAM0F,EACN7M,KAAMgN,IAER8K,EAAKhQ,GAAK6C,KAAKmN,EACjB,CAIA,GAFAA,EAAKhQ,GAAKkD,SAAS8M,GAEf1F,EAAQ,CACV,IAAInK,EAAQ2M,GAAOxB,IAAI7G,EAAQuL,GAE3B7P,GACFyY,GAAWtO,OAAO7F,EAAQtE,EAE9B,CAtBA,CA1EA,GAkGJ,CAwjCamJ,CAAY7E,KAAW4Y,EAChC,EACAtM,QAAS,WACP,IAAK,IAAI2T,EAASpzB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMiyB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFtH,EAAKsH,GAAUrzB,UAAUqzB,GAG3B,MAlwFQ,EAAClgB,EAAQ9P,KACb8P,EAAO0M,SAASxc,GAiwFboc,CAAQtM,KAAW4Y,EAC5B,EACArM,OAAQ,WACN,IAAK,IAAI4T,EAAStzB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMmyB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFxH,EAAKwH,GAAUvzB,UAAUuzB,GAG3B,MArwFO,EAACpgB,EAAQtE,EAAO6P,IACpBlD,GAAOiF,QAAQtN,EAAQtE,EAAO6P,IAAOlD,GAAO+E,MAAMpN,EAAQtE,EAAO6P,GAowF7DgB,CAAOvM,KAAW4Y,EAC3B,EACAzL,QAAS,WACP,IAAK,IAAIkT,EAASxzB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMqyB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF1H,EAAK0H,GAAUzzB,UAAUyzB,GAG3B,MAxwFQ,EAACtgB,EAAQwF,KACrB,IAAI9T,SACFA,GACE8T,GACCkE,GAAShY,EACd,OAA2B,IAApBA,EAAS5E,QAAoC,IAApB4E,EAAS5E,QAAgBuU,GAAKC,OAAOoI,IAAyB,KAAfA,EAAMlJ,OAAgBR,EAAO4M,OAAOpH,IAmwFxG2H,CAAQnN,KAAW4Y,EAC5B,EACAxL,MAAO,WACL,IAAK,IAAImT,EAAS1zB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMuyB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF5H,EAAK4H,GAAU3zB,UAAU2zB,GAG3B,MAvwFM,EAACxgB,EAAQtE,EAAO6P,KAC1B,IAAI1E,EAAMwB,GAAOxB,IAAI7G,EAAQuL,GAC7B,OAAO5P,GAAM0B,OAAO3B,EAAOmL,IAqwFhBuG,CAAMpN,KAAW4Y,EAC1B,EACAvL,cAAe,WACb,IAAK,IAAIoT,EAAS5zB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMyyB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF9H,EAAK8H,GAAU7zB,UAAU6zB,GAG3B,MAzwFc1gB,KAClB,IAAIqN,EAAgBnR,GAAY7J,IAAI2N,GACpC,YAAyB1K,IAAlB+X,GAAqCA,GAuwFjCA,CAAcrN,KAAW4Y,EAClC,EACAtL,QAAS,WACP,IAAK,IAAIqT,EAAS9zB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM2yB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFhI,EAAKgI,GAAU/zB,UAAU+zB,GAG3B,MA3wFQ,EAAC5gB,EAAQtE,EAAO6P,KAE5B,GAAqB,IAAjB7P,EAAM6E,OACR,OAAO,EAGT,IAAI4G,EAAQkB,GAAOlB,MAAMnH,EAAQuL,GACjC,OAAO5P,GAAM0B,OAAO3B,EAAOyL,IAowFhBmG,CAAQtN,KAAW4Y,EAC5B,EACAva,KAAM,WACJ,IAAK,IAAIwiB,EAASh0B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM6yB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFlI,EAAKkI,GAAUj0B,UAAUi0B,GAG3B,MAxwFK,EAAC9gB,EAAQuL,KAClB,IAAI3Q,EAAOyN,GAAOzN,KAAKoF,EAAQuL,EAAI,CACjCuR,KAAM,QAER,OAAOzU,GAAO5U,KAAKuM,EAAQpF,IAowFhByD,CAAK2B,KAAW4Y,EACzB,EACAlY,KAAM,WACJ,IAAK,IAAIqgB,EAASl0B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM+yB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFpI,EAAKoI,GAAUn0B,UAAUm0B,GAG3B,OAxwFK,SAAchhB,EAAQuL,GAC/B,IAAIhP,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAC9E+N,EAAOyN,GAAOzN,KAAKoF,EAAQuL,EAAIhP,GAEnC,MAAO,CADI2D,GAAKQ,KAAKV,EAAQpF,GACfA,EAChB,CAmwFa8F,CAAKV,KAAW4Y,EACzB,EACAlc,OAAQ,WACN,IAAK,IAAIukB,EAASp0B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMizB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFtI,EAAKsI,GAAUr0B,UAAUq0B,GAG3B,OAxwFN,UAAiBlhB,GACf,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9E0e,GACFA,EAAKvL,EAAOC,UAASzD,QACrBA,GAAU,EAAKwX,MACfA,GAAQ,GACNzX,GACAuX,MACFA,GACEvX,EAMJ,GAJa,MAATuX,IACFA,EAAQ,KAAM,GAGXvI,EAAL,CAIA,IAAI7O,EAAS,GACT9B,EAAOyN,GAAOzN,KAAKoF,EAAQuL,GAE/B,IAAK,IAAK3e,EAAGG,KAAMmT,GAAKxD,OAAOsD,EAAQpF,GACrC,GAAKkZ,EAAMlnB,EAAGG,KAId2P,EAAOxD,KAAK,CAACtM,EAAGG,KAEXinB,GAASzL,GAAQJ,UAAUvb,IAAMyb,GAAOuE,OAAO5M,EAAQpT,IAC1D,MAIA4P,GACFE,EAAOF,gBAGFE,CArBP,CAsBF,CAiuFaA,CAAOsD,KAAW4Y,EAC3B,EACA7T,UAAW,WACT,IAAK,IAAIoc,EAASt0B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMmzB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFxI,EAAKwI,GAAUv0B,UAAUu0B,GAG3B,OA5nCU,SAAmBphB,GACjC,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClFwb,GAAO8F,mBAAmBnO,EAAQ,KAChC,IAAIuL,GACFA,EAAKvL,EAAOC,UAASyX,KACrBA,EAAO,SAAQ1D,MACfA,GAAQ,GACNzX,GACAuX,MACFA,GACEvX,EAMJ,GAJa,MAATuX,IACFA,EAAQvY,GAAK0C,OAAOsN,GAAMwE,GAAU/P,EAAQuL,GAAM3e,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,IAGnG2e,EAAL,CAIA,IAAIzC,EAAUT,GAAOvD,MAAM9E,EAAQ,CACjCuL,KACAuI,QACA4D,OACA1D,UAEEtG,EAAW1f,MAAMJ,KAAKkb,EAASiB,IACjC,IAAI,CAAGhd,GAAKgd,EACZ,OAAO1B,GAAOoF,QAAQzN,EAAQjT,KAGhC,IAAK,IAAI0gB,KAAWC,EAAU,CAC5B,IAAI9S,EAAO6S,EAAQjS,QAEnB,GAAIZ,EAAK9N,OAAS,EAChB,MAAM,IAAI8D,MAAM,+BAA+B1C,OAAO0M,EAAM,+CAG9D,IAAIymB,EAAkBhZ,GAAO5U,KAAKuM,EAAQzE,GAAKiD,OAAO5D,KACjD4D,EAAQ8L,GAAc+W,EACvBlhB,EAAQvF,EAAKA,EAAK9N,OAAS,IAC3BA,OACFA,GACE0R,EAAO9M,SAEX,GAAe,IAAX5E,EAAc,CAChB,IAAIw0B,EAAS/lB,GAAK6C,KAAKkM,GACvB6J,GAAWlP,UAAUjF,EAAQ,CAC3BuL,GAAI3Q,EACJjN,GAAI2zB,EACJtN,UAEFG,GAAWjP,YAAYlF,EAAQ,CAC7BuL,GAAIjB,EACJ0J,SAEJ,MAAO,GAAc,IAAV7T,EACTgU,GAAWlP,UAAUjF,EAAQ,CAC3BuL,GAAI3Q,EACJjN,GAAI2c,EACJ0J,eAEG,GAAI7T,IAAUrT,EAAS,EAAG,CAC/B,IAAIy0B,EAAUhmB,GAAK6C,KAAKkM,GAExB6J,GAAWlP,UAAUjF,EAAQ,CAC3BuL,GAAI3Q,EACJjN,GAAI4zB,EACJvN,SAEJ,KAAO,CACL,IAAIwN,EAAYjmB,GAAK6C,KAAKxD,GAEtB6mB,EAAWlmB,GAAK6C,KAAKkM,GAEzB6J,GAAW/O,WAAWpF,EAAQ,CAC5BuL,GAAIiW,EACJxN,UAEFG,GAAWlP,UAAUjF,EAAQ,CAC3BuL,GAAI3Q,EACJjN,GAAI8zB,EACJzN,SAEJ,CACF,CAnEA,GAqEJ,CAqiCajP,CAAU/E,KAAW4Y,EAC9B,EACA5T,WAAY,WACV,IAAK,IAAI0c,EAAS70B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM0zB,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF/I,EAAK+I,GAAU90B,UAAU80B,GAG3B,OArhCW,SAAoB3hB,GACnC,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClFwb,GAAO8F,mBAAmBnO,EAAQ,KAChC,IAAI8T,MACFA,EAAKvI,GACLA,EAAKvL,EAAOC,WACV1D,GACAsd,QACFA,GAAU,EAAK7F,MACfA,GAAQ,EAAK0D,KACbA,EAAO,UACLnb,EAEJ,GAAKgP,EAAL,CAIA,GAAa,MAATuI,EACF,GAAIvY,GAAK0C,OAAOsN,GAAK,CACnB,IAAK/M,GAAU6J,GAAO7J,OAAOwB,EAAQuL,GAErCuI,EAAQlnB,GAAK4R,EAAO9M,SAASoV,SAASla,EACxC,MACEknB,EAAQlnB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,GAUhE,IANKitB,GAAWhe,GAAM8H,QAAQ4H,KAC5BA,EAAKlD,GAAO4F,YAAYjO,EAAQuL,EAAI,CAClCyI,WAIAnY,GAAM8H,QAAQ4H,GAChB,GAAI1P,GAAMiM,YAAYyD,GACpBA,EAAKA,EAAG7E,WACH,CACL,IAAI,CAAGG,GAAOhL,GAAM2K,MAAM+E,GACtBoC,EAAWtF,GAAOsF,SAAS3N,EAAQ6G,GACvCsN,GAAWnd,OAAOgJ,EAAQ,CACxBuL,OAEFA,EAAKoC,EAASnS,QAEI,MAAde,EAAQgP,IACV4I,GAAWtO,OAAO7F,EAAQuL,EAE9B,CAGF,IAAKlQ,GAAWgN,GAAOvD,MAAM9E,EAAQ,CACnCuL,KACAuI,QACAE,QACA0D,SAEExW,EAAOmH,GAAO5J,SAASuB,EAAQ,CACjCuL,KACAuI,QACAE,QACA0D,SAGF,GAAKrc,GAAY6F,EAAjB,CAIA,IAAKzN,EAAMmH,GAAQS,GACd+jB,EAAUne,GAAYC,EAE3B,GAAoB,IAAhBtG,EAAK9N,QAAoC,IAApBmU,EAASnU,OAAlC,CAIA,IAiBIuW,EACAvE,EAlBAI,EAAU3D,GAAK6C,KAAK6C,GACpB2gB,EAAarmB,GAAKoB,OAAO/B,EAAMqG,GAC/B4gB,EAAoBtmB,GAAK2C,UAAUtD,EAAMqG,GACzCvE,EAAS1O,MAAMJ,KAAKya,GAAO3L,OAAOsD,EAAQ,CAC5CuL,GAAI3Q,IACFmP,IACF,IAAKnd,GAAKmd,EACV,OAAOnd,IACNqB,MAAM2zB,EAAW90B,QAAQmB,MAAM,GAAG,GAGjC6zB,EAAgBzZ,GAAOgD,MAAMrL,EAAQ,CACvCuL,GAAI3Q,EACJ8c,KAAM,UACN5D,MAAOlnB,GAAK8P,EAAOoK,SAASla,IAAM6qB,GAAmBzX,EAAQpT,KAE3Dm1B,EAAWD,GAAiBzZ,GAAOoF,QAAQzN,EAAQ8hB,EAAc,IAKrE,GAAIzgB,GAAKC,OAAO7N,IAAS4N,GAAKC,OAAO8d,GAAW,CAC9C,IAAI5X,EAAOvB,GAAyBxS,EAAM8jB,IAE1CzY,EAAWsgB,EAAS5e,KAAK1T,OACzBuW,EAAamE,CACf,KAAO,KAAIe,GAAQJ,UAAU1U,KAAS8U,GAAQJ,UAAUiX,GAMtD,MAAM,IAAIxuB,MAAM,kCAAkC1C,OAAO0M,EAAM,iEAAiE1M,OAAOqT,GAASC,UAAU/N,GAAO,KAAKvF,OAAOqT,GAASC,UAAU4d,KAL5L5X,EAAOvB,GAAyBxS,EAAM+jB,IAE1C1Y,EAAWsgB,EAAS1tB,SAAS5E,OAC7BuW,EAAamE,CAGf,CAIKqa,GACH1N,GAAWlP,UAAUjF,EAAQ,CAC3BuL,GAAI3Q,EACJjN,GAAIuR,EACJ8U,UAMA+N,GACF5N,GAAWjP,YAAYlF,EAAQ,CAC7BuL,GAAIwW,EAAS1mB,QACb2Y,UASAzL,GAAQJ,UAAUiX,IAAa/W,GAAO8E,QAAQnN,EAAQof,IAAa/d,GAAKC,OAAO8d,IAA+B,KAAlBA,EAAS5e,MAAiD,IAAlCS,EAASA,EAASnU,OAAS,GACjJqnB,GAAWjP,YAAYlF,EAAQ,CAC7BuL,GAAItK,EACJ+S,UAGFhU,EAAO7S,MAAM,CACXpB,KAAM,aACN6O,KAAMsE,EACNJ,WACAuE,eAIA0e,GACFA,EAASvmB,OA5EX,CAPA,CAlDA,GAwIJ,CA83BawJ,CAAWhF,KAAW4Y,EAC/B,EACAhT,KAAM,WACJ,IAAK,IAAIoc,EAASn1B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMg0B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFrJ,EAAKqJ,GAAUp1B,UAAUo1B,GAG3B,OA74CK,SAAcjiB,GACvB,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EoT,UACFA,GACED,GACAyQ,SACFA,EAAW,EAAChF,KACZA,EAAO,YAAWjP,QAClBA,GAAU,GACRD,GACAugB,KACFA,EAAO,MACLvgB,EAEJ,GAAK0D,EAAL,CAIa,UAAT6c,IACFA,EAAOjhB,GAAM+K,WAAW3G,GAAa,QAAU,UAGpC,QAAT6c,IACFA,EAAOjhB,GAAM+K,WAAW3G,GAAa,SAAW,SAGlD,IAAIyG,OACFA,EAAMC,MACNA,GACE1G,EACAud,EAAO,CACT/M,WACAhF,OACA0K,qBAAqB,GAEnBnlB,EAAQ,CAAA,EAEZ,GAAY,MAAR8rB,GAAyB,WAATA,EAAmB,CACrC,IAAIphB,EAAQc,EAAU6L,GAAO1H,OAAOX,EAAQ0G,EAAQ8W,GAAQnV,GAAOzH,MAAMZ,EAAQ0G,EAAQ8W,GAErF9hB,IACF1K,EAAM0V,OAAShL,EAEnB,CAEA,GAAY,MAARohB,GAAyB,UAATA,EAAkB,CACpC,IAAIjc,EAASrE,EAAU6L,GAAO1H,OAAOX,EAAQ2G,EAAO6W,GAAQnV,GAAOzH,MAAMZ,EAAQ2G,EAAO6W,GAEpF3c,IACF7P,EAAM2V,MAAQ9F,EAElB,CAEAsT,GAAWpO,aAAa/F,EAAQhP,EArChC,CAsCF,CAu1Ca4U,CAAK5F,KAAW4Y,EACzB,EACA3T,UAAW,WACT,IAAK,IAAIid,EAASr1B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMk0B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFvJ,EAAKuJ,GAAUt1B,UAAUs1B,GAG3B,MA14BU,EAACniB,EAAQzD,KACvB8L,GAAO8F,mBAAmBnO,EAAQ,KAChC,IAAIrS,GACFA,EAAE4d,GACFA,EAAKvL,EAAOC,UAASyX,KACrBA,EAAO,SAAQ1D,MACfA,GAAQ,GACNzX,GACAuX,MACFA,GACEvX,EAEJ,GAAKgP,EAAL,CAIa,MAATuI,IACFA,EAAQvY,GAAK0C,OAAOsN,GAAMwE,GAAU/P,EAAQuL,GAAM3e,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,IAGxG,IAAIw1B,EAAQ/Z,GAAOoF,QAAQzN,EAAQrS,GAC/B00B,EAAUha,GAAOvD,MAAM9E,EAAQ,CACjCuL,KACAuI,QACA4D,OACA1D,UAEEtG,EAAW1f,MAAMJ,KAAKy0B,EAAStY,IACjC,IAAI,CAAGhd,GAAKgd,EACZ,OAAO1B,GAAOoF,QAAQzN,EAAQjT,KAGhC,IAAK,IAAI0gB,KAAWC,EAAU,CAC5B,IAAI9S,EAAO6S,EAAQjS,QACf0D,EAAUkjB,EAAM/mB,QAEA,IAAhBT,EAAK9N,QACPkT,EAAO7S,MAAM,CACXpB,KAAM,YACN6O,OACAsE,YAIAkjB,EAAM/mB,SAAWE,GAAK2C,UAAUgB,EAAStE,IAASW,GAAKmC,QAAQwB,EAAStE,KAI1EwnB,EAAM/mB,QAAUE,GAAK6C,KAAKgkB,EAAM/mB,SAEpC,CAEA+mB,EAAM5mB,OAtCN,KA43BSyJ,CAAUjF,KAAW4Y,EAC9B,EACAxa,KAAM,WACJ,IAAK,IAAIkkB,EAASz1B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMs0B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF3J,EAAK2J,GAAU11B,UAAU01B,GAG3B,OA5rFK,SAAcviB,GACvB,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9E6qB,KACFA,EAAO,SAAQ1D,MACfA,GAAQ,GACNzX,GACAuX,MACFA,EAAKvI,GACLA,EAAKvL,EAAOC,WACV1D,EAEJ,GAAKgP,EAAL,CAIA,IAAIiX,EAAqBna,GAAOzH,MAAMZ,EAAQuL,EAAI,CAChDyI,UAEF,GAAKwO,EAAL,CACA,IAAI,CAAG70B,GAAM0a,GAAOhK,KAAK2B,EAAQ,IAC7ByiB,EAAO,CAACD,EAAmB5nB,KAAMjN,GAErC,GAAI4N,GAAK0C,OAAOsN,IAAqB,IAAdA,EAAGze,OACxB,MAAM,IAAI8D,MAAM,gDAGlB,GAAa,MAATkjB,EACF,GAAIvY,GAAK0C,OAAOsN,GAAK,CACnB,IAAK/M,GAAU6J,GAAO7J,OAAOwB,EAAQuL,GAErCuI,EAAQlnB,GAAK4R,EAAO9M,SAASoV,SAASla,EACxC,MACEknB,EAAQ,KAAM,EAIlB,IAAK1V,GAAQiK,GAAOvD,MAAM9E,EAAQ,CAChCuL,GAAIkX,EACJ3O,QACA4D,OACA1D,UAEF,OAAO5V,CAxBkB,CALzB,CA8BF,CAipFaA,CAAK4B,KAAW4Y,EACzB,EACAnlB,KAAM,WACJ,IAAK,IAAIivB,EAAS71B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM00B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF/J,EAAK+J,GAAU91B,UAAU81B,GAG3B,OAtpFK,SAAc3iB,EAAQuL,GAC/B,IAAIhP,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAC9E+N,EAAOyN,GAAOzN,KAAKoF,EAAQuL,EAAIhP,GAC/B9I,EAAOyM,GAAK7N,IAAI2N,EAAQpF,GAC5B,MAAO,CAACnH,EAAMmH,EAChB,CAipFanH,CAAKuM,KAAW4Y,EACzB,EACA9T,MAAO,WACL,IAAK,IAAI8d,EAAS/1B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM40B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFjK,EAAKiK,GAAUh2B,UAAUg2B,GAG3B,OAtpFN,UAAgB7iB,GACd,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9E0e,GACFA,EAAKvL,EAAOC,UAASyX,KACrBA,EAAO,MAAKoL,UACZA,GAAY,EAAKtmB,QACjBA,GAAU,EAAKwX,MACfA,GAAQ,EAAKmC,oBACbA,GAAsB,GACpB5Z,GACAuX,MACFA,GACEvX,EAMJ,GAJKuX,IACHA,EAAQ,KAAM,GAGXvI,EAAL,CAIA,IAAI3d,EACAD,EAEJ,GAAIygB,GAAKC,OAAO9C,GACd3d,EAAO2d,EAAG,GACV5d,EAAK4d,EAAG,OACH,CACL,IAAI7B,EAAQrB,GAAOzN,KAAKoF,EAAQuL,EAAI,CAClCuR,KAAM,UAEJze,EAAOgK,GAAOzN,KAAKoF,EAAQuL,EAAI,CACjCuR,KAAM,QAERlvB,EAAO4O,EAAU6B,EAAOqL,EACxB/b,EAAK6O,EAAUkN,EAAQrL,CACzB,CAEA,IAaI0kB,EAbAlZ,EAAc3J,GAAK4E,MAAM9E,EAAQ,CACnCxD,UACA5O,OACAD,KACAmc,KAAMC,IACJ,IAAKtW,GAAQsW,EACb,SAAKxB,GAAQJ,UAAU1U,KAClBugB,IAAU3L,GAAOuE,OAAO5M,EAAQvM,KAAS4U,GAAOoE,kBAAkBzM,EAAQvM,OAC3E0iB,GAAwB9N,GAAOsE,aAAa3M,EAAQvM,QAIxDqV,EAAU,GAGd,IAAK,IAAKrV,EAAMmH,KAASiP,EACvB,IAAIsM,IAAuB5N,GAAQJ,UAAU1U,IAAU4U,GAAOsE,aAAa3M,EAAQvM,GAAnF,CAIA,IAAIuvB,EAAUD,GAAsC,IAA/BxnB,GAAKuB,QAAQlC,EAAMmoB,EAAI,IAE5C,GAAa,YAATrL,IAAsBsL,EAI1B,GAAKlP,EAAMrgB,EAAMmH,GAYjB,GAAa,WAAT8c,GAAqBsL,EACvBD,EAAM,CAACtvB,EAAMmH,OADf,CAMA,IAAIqoB,EAAgB,WAATvL,EAAoBqL,EAAM,CAACtvB,EAAMmH,GAExCqoB,IACEH,EACFha,EAAQ5P,KAAK+pB,SAEPA,GAIVF,EAAM,CAACtvB,EAAMmH,EAbb,MAXE,GAAIkoB,IAAcE,GAAW3hB,GAAKC,OAAO7N,GACvC,MAbJ,CAwCW,WAATikB,GAAqBqL,IACnBD,EACFha,EAAQ5P,KAAK6pB,SAEPA,GAMND,UACKha,EAxFT,CA0FF,CAwiFahE,CAAM9E,KAAW4Y,EAC1B,EACApL,UAAW,WACT,IAAK,IAAI0V,EAASr2B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMk1B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFvK,EAAKuK,GAAUt2B,UAAUs2B,GAG3B,OAAO3V,GAAUxN,KAAW4Y,EAC9B,EACApa,OAAQ,WACN,IAAK,IAAI4kB,EAASv2B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMo1B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFzK,EAAKyK,GAAUx2B,UAAUw2B,GAG3B,OAp9EO,SAAgBrjB,EAAQuL,GACnC,IAAIhP,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAC9E+N,EAAOyN,GAAOzN,KAAKoF,EAAQuL,EAAIhP,GAC/B+N,EAAa/O,GAAKiD,OAAO5D,GAE7B,OADYyN,GAAO5U,KAAKuM,EAAQsK,EAElC,CA88Ea9L,CAAOwB,KAAW4Y,EAC3B,EACAhe,KAAM,WACJ,IAAK,IAAI0oB,EAASz2B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMs1B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF3K,EAAK2K,GAAU12B,UAAU02B,GAG3B,OA/6EK,SAAcvjB,EAAQuL,GAC/B,IAAIhP,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EwrB,MACFA,EAAKyE,KACLA,GACEvgB,EAEJ,GAAIhB,GAAK0C,OAAOsN,GACd,GAAa,UAATuR,EAAkB,CACpB,IAAI,CAAGvC,GAAara,GAAKwJ,MAAM1J,EAAQuL,GACvCA,EAAKgP,CACP,MAAO,GAAa,QAATuC,EAAgB,CACzB,IAAI,CAAGtC,GAAYta,GAAK7B,KAAK2B,EAAQuL,GACrCA,EAAKiP,CACP,CAqBF,OAlBI3e,GAAM8H,QAAQ4H,KAEdA,EADW,UAATuR,EACGjhB,GAAMsL,MAAMoE,GACC,QAATuR,EACJjhB,GAAMgL,IAAI0E,GAEVhQ,GAAKoB,OAAO4O,EAAG7E,OAAO9L,KAAM2Q,EAAG5E,MAAM/L,OAI1Ce,GAAM2L,QAAQiE,KAChBA,EAAKA,EAAG3Q,MAGG,MAATyd,IACF9M,EAAKA,EAAGtd,MAAM,EAAGoqB,IAGZ9M,CACT,CA24Ea3Q,CAAKoF,KAAW4Y,EACzB,EACAnL,QAAS,WACP,IAAK,IAAI+V,EAAS32B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMw1B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF7K,EAAK6K,GAAU52B,UAAU42B,GAG3B,OA19EQ,SAAiBzjB,EAAQpF,GACrC,IAAI2B,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EyO,SACFA,EAAW,WACTiB,EACA/Q,EAAM,CACR6P,QAAST,EACTU,WAEA,KAAAE,GACE,IAAIH,QACFA,GACE7P,EAIJ,OAHe6c,GAAOqF,SAAS1N,GACtBhJ,OAAOxL,GAChBA,EAAI6P,QAAU,KACPA,CACT,GAKF,OAFWgN,GAAOqF,SAAS1N,GACtB1J,IAAI9K,GACFA,CACT,CAm8EaiiB,CAAQzN,KAAW4Y,EAC5B,EACAlL,SAAU,WACR,IAAK,IAAIgW,EAAS72B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM01B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF/K,EAAK+K,GAAU92B,UAAU82B,GAG3B,MAx8ES3jB,KACb,IAAI4jB,EAAOznB,GAAU9J,IAAI2N,GAOzB,OALK4jB,IACHA,EAAO,IAAIltB,IACXyF,GAAU9F,IAAI2J,EAAQ4jB,IAGjBA,GAg8EIlW,CAAS1N,KAAW4Y,EAC7B,EACAld,MAAO,WACL,IAAK,IAAImoB,EAASh3B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM61B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFlL,EAAKkL,GAAUj3B,UAAUi3B,GAG3B,OA13EM,SAAe9jB,EAAQuL,GACjC,IAAIhP,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EiwB,KACFA,EAAO,SACLvgB,EAEJ,GAAIhB,GAAK0C,OAAOsN,GAAK,CACnB,IAAI3Q,EAEJ,GAAa,QAATkiB,EAAgB,CAClB,IAAI,CAAGtC,GAAYta,GAAK7B,KAAK2B,EAAQuL,GACrC3Q,EAAO4f,CACT,KAAO,CACL,IAAI,CAAGD,GAAara,GAAKwJ,MAAM1J,EAAQuL,GACvC3Q,EAAO2f,CACT,CAEA,IAAI9mB,EAAOyM,GAAK7N,IAAI2N,EAAQpF,GAE5B,IAAKyG,GAAKC,OAAO7N,GACf,MAAM,IAAI7C,MAAM,kBAAkB1C,OAAO4uB,EAAM,gCAAgC5uB,OAAOqd,EAAI,wBAAwBrd,OAAO4uB,EAAM,gBAGjI,MAAO,CACLliB,OACA2F,OAAiB,QAATuc,EAAiBrpB,EAAK+M,KAAK1T,OAAS,EAEhD,CAEA,GAAI+O,GAAM8H,QAAQ4H,GAAK,CACrB,IAAKpE,EAAON,GAAOhL,GAAM2K,MAAM+E,GAC/B,MAAgB,UAATuR,EAAmB3V,EAAQN,CACpC,CAEA,OAAO0E,CACT,CAu1Ea7P,CAAMsE,KAAW4Y,EAC1B,EACAjL,SAAU,WACR,IAAK,IAAIoW,EAASl3B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM+1B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFpL,EAAKoL,GAAUn3B,UAAUm3B,GAG3B,OAr6ES,SAAkBhkB,EAAQtE,GACvC,IAAIa,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EyO,SACFA,EAAW,WACTiB,EACA/Q,EAAM,CACR6P,QAASK,EACTJ,WAEA,KAAAE,GACE,IAAIH,QACFA,GACE7P,EAIJ,OAHgB6c,GAAOuF,UAAU5N,GACvBhJ,OAAOxL,GACjBA,EAAI6P,QAAU,KACPA,CACT,GAKF,OAFWgN,GAAOuF,UAAU5N,GACvB1J,IAAI9K,GACFA,CACT,CA84EamiB,CAAS3N,KAAW4Y,EAC7B,EACAhL,UAAW,WACT,IAAK,IAAIqW,EAASp3B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMi2B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFtL,EAAKsL,GAAUr3B,UAAUq3B,GAG3B,MAn5EUlkB,KACd,IAAI4jB,EAAOxnB,GAAW/J,IAAI2N,GAO1B,OALK4jB,IACHA,EAAO,IAAIltB,IACX0F,GAAW/F,IAAI2J,EAAQ4jB,IAGlBA,GA24EIhW,CAAU5N,KAAW4Y,EAC9B,EACA/K,UAAW,WACT,IAAK,IAAIsW,EAASt3B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMm2B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFxL,EAAKwL,GAAUv3B,UAAUu3B,GAG3B,OAAOvW,GAAU7N,KAAW4Y,EAC9B,EACAna,SAAU,WACR,IAAK,IAAI4lB,EAASx3B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMq2B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF1L,EAAK0L,GAAUz3B,UAAUy3B,GAG3B,OAjsES,SAAkBtkB,GAC/B,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9E6qB,KACFA,EAAO,SAAQ1D,MACfA,GAAQ,GACNzX,GACAuX,MACFA,EAAKvI,GACLA,EAAKvL,EAAOC,WACV1D,EAEJ,GAAKgP,EAAL,CAIA,IAAIgZ,EAAsBlc,GAAO1H,OAAOX,EAAQuL,EAAI,CAClDyI,UAGF,GAAKuQ,EAAL,CAIA,IAAI,CAAG52B,GAAM0a,GAAOqB,MAAM1J,EAAQ,IAG9ByiB,EAAO,CAAC8B,EAAoB3pB,KAAMjN,GAEtC,GAAI4N,GAAK0C,OAAOsN,IAAqB,IAAdA,EAAGze,OACxB,MAAM,IAAI8D,MAAM,oDAGlB,GAAa,MAATkjB,EACF,GAAIvY,GAAK0C,OAAOsN,GAAK,CACnB,IAAK/M,GAAU6J,GAAO7J,OAAOwB,EAAQuL,GAErCuI,EAAQlnB,GAAK4R,EAAO9M,SAASoV,SAASla,EACxC,MACEknB,EAAQ,KAAM,EAIlB,IAAKrV,GAAY4J,GAAOvD,MAAM9E,EAAQ,CACpCxD,SAAS,EACT+O,GAAIkX,EACJ3O,QACA4D,OACA1D,UAEF,OAAOvV,CA5BP,CARA,CAqCF,CA+oEaA,CAASuB,KAAW4Y,EAC7B,EACAnS,MAAO,WACL,IAAK,IAAI+d,EAAS33B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMw2B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF7L,EAAK6L,GAAU53B,UAAU43B,GAG3B,MAhnEM,EAACzkB,EAAQuL,EAAI5d,IACnBkO,GAAM8H,QAAQ4H,KAAQ5d,EACjB4d,EAKF,CACL7E,OAHU2B,GAAOlB,MAAMnH,EAAQuL,GAI/B5E,MAHQ0B,GAAOxB,IAAI7G,EAAQrS,GAAM4d,IA0mExB9E,CAAMzG,KAAW4Y,EAC1B,EACA9K,SAAU,WACR,IAAK,IAAI4W,EAAS73B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM02B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF/L,EAAK+L,GAAU93B,UAAU83B,GAG3B,OA3pES,SAAkB3kB,EAAQyG,GACvC,IAAIlK,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EyO,SACFA,EAAW,WACTiB,EACA/Q,EAAM,CACR6P,QAASoL,EACTnL,WAEA,KAAAE,GACE,IAAIH,QACFA,GACE7P,EAIJ,OAHgB6c,GAAO0F,UAAU/N,GACvBhJ,OAAOxL,GACjBA,EAAI6P,QAAU,KACPA,CACT,GAKF,OAFWgN,GAAO0F,UAAU/N,GACvB1J,IAAI9K,GACFA,CACT,CAooEasiB,CAAS9N,KAAW4Y,EAC7B,EACA7K,UAAW,WACT,IAAK,IAAI6W,EAAS/3B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM42B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFjM,EAAKiM,GAAUh4B,UAAUg4B,GAG3B,MAzoEU7kB,KACd,IAAI4jB,EAAOvnB,GAAWhK,IAAI2N,GAO1B,OALK4jB,IACHA,EAAO,IAAIltB,IACX2F,GAAWhG,IAAI2J,EAAQ4jB,IAGlBA,GAioEI7V,CAAU/N,KAAW4Y,EAC9B,EACA1T,YAAa,WACX,IAAK,IAAI4f,EAASj4B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM82B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFnM,EAAKmM,GAAUl4B,UAAUk4B,GAG3B,OAz8BY,SAAqB/kB,GACrC,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClFwb,GAAO8F,mBAAmBnO,EAAQ,KAChC,IAAI6Z,QACFA,GAAU,EAAK7F,MACfA,GAAQ,EAAK0D,KACbA,EAAO,UACLnb,GACAgP,GACFA,EAAKvL,EAAOC,UAAS6T,MACrBA,GACEvX,EAEJ,GAAKgP,EAAL,CAIa,MAATuI,IACFA,EAAQvY,GAAK0C,OAAOsN,GAAMwE,GAAU/P,EAAQuL,GAAM3e,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,KAGnGitB,GAAWhe,GAAM8H,QAAQ4H,KAC5BA,EAAKlD,GAAO4F,YAAYjO,EAAQuL,EAAI,CAClCyI,WAIJ,IAAIgR,EAAS3c,GAAOvD,MAAM9E,EAAQ,CAChCuL,KACAuI,QACA4D,OACA1D,UAEEtG,EAAW1f,MAAMJ,KAAKo3B,EAAQjb,IAChC,IAAI,CAAGhd,GAAKgd,EACZ,OAAO1B,GAAOoF,QAAQzN,EAAQjT,KAGhC,IAAK,IAAI0gB,KAAWC,EAAU,CAC5B,IAAI9S,EAAO6S,EAAQjS,QAEnB,GAAIZ,EAAM,CACR,IAAKnH,GAAQ4U,GAAO5U,KAAKuM,EAAQpF,GACjCoF,EAAO7S,MAAM,CACXpB,KAAM,cACN6O,OACAnH,QAEJ,CACF,CAlCA,GAoCJ,CAs5BayR,CAAYlF,KAAW4Y,EAChC,EACA/S,OAAQ,WACN,IAAK,IAAIof,EAASp4B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMi3B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFtM,EAAKsM,GAAUr4B,UAAUq4B,GAG3B,MA19CO,EAACllB,EAAQH,KACpB,IAAII,UACFA,GACED,EAGJ,GAFAH,EAASwI,GAAO5B,MAAMzG,EAAQH,GAE1BI,EACFkU,GAAWpO,aAAa/F,EAAQH,OADlC,CAKA,IAAKhE,GAAM8H,QAAQ9D,GACjB,MAAM,IAAIjP,MAAM,qIAAqI1C,OAAOqT,GAASC,UAAU3B,KAGjLG,EAAO7S,MAAM,CACXpB,KAAM,gBACNsX,WAAYpD,EACZqD,cAAezD,GATjB,GAi9CWgG,CAAO7F,KAAW4Y,EAC3B,EACAzT,SAAU,WACR,IAAK,IAAIggB,EAASt4B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMm3B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFxM,EAAKwM,GAAUv4B,UAAUu4B,GAG3B,OAl6BS,SAAkBplB,EAAQhP,GACvC,IAAIuL,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClFwb,GAAO8F,mBAAmBnO,EAAQ,KAChC,IAAI8T,MACFA,EAAKvI,GACLA,EAAKvL,EAAOC,UAASnD,QACrBA,EAAOuoB,MACPA,GACE9oB,GACAsd,QACFA,GAAU,EAAKnC,KACfA,EAAO,SAAQP,MACfA,GAAQ,EAAKnD,MACbA,GAAQ,GACNzX,EAEJ,GAAKgP,EAAL,CAcA,GAVa,MAATuI,IACFA,EAAQvY,GAAK0C,OAAOsN,GAAMwE,GAAU/P,EAAQuL,GAAM3e,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,KAGnGitB,GAAWhe,GAAM8H,QAAQ4H,KAC5BA,EAAKlD,GAAO4F,YAAYjO,EAAQuL,EAAI,CAClCyI,WAIAmD,GAAStb,GAAM8H,QAAQ4H,GAAK,CAC9B,GAAI1P,GAAMiM,YAAYyD,IAAOlD,GAAO3H,KAAKV,EAAQuL,EAAG7E,QAAQ,GAAGlG,KAAK1T,OAAS,EAG3E,OAGF,IAAIghB,EAAWzF,GAAOyF,SAAS9N,EAAQuL,EAAI,CACzCjQ,SAAU,YAEP6L,EAAON,GAAOhL,GAAM2K,MAAM+E,GAC3B+Z,EAAqB,WAAT5N,EAAoB,SAAW,UAC3C6N,EAAiBld,GAAO+E,MAAMpN,EAAQ6G,EAAKA,EAAIjM,MACnDuZ,GAAW/O,WAAWpF,EAAQ,CAC5BuL,GAAI1E,EACJiN,QACA4D,KAAM4N,EACNtR,QACA4D,QAAS2N,IAEX,IAAIC,EAAqBnd,GAAOiF,QAAQtN,EAAQmH,EAAOA,EAAMvM,MAC7DuZ,GAAW/O,WAAWpF,EAAQ,CAC5BuL,GAAIpE,EACJ2M,QACA4D,KAAM4N,EACNtR,QACA4D,QAAS4N,IAEXja,EAAKuC,EAAStS,QAEI,MAAde,EAAQgP,IACV4I,GAAWtO,OAAO7F,EAAQuL,EAE9B,CAMA,IAAK,IAAK9X,EAAMmH,KAJXkC,IACHA,EAAU,CAAC2oB,EAAMC,IAAaD,IAASC,GAGhBrd,GAAOvD,MAAM9E,EAAQ,CAC5CuL,KACAuI,QACA4D,OACA1D,WACE,CACF,IAAI3Q,EAAa,CAAA,EACbC,EAAgB,CAAA,EAEpB,GAAoB,IAAhB1I,EAAK9N,OAAT,CAIA,IAAI64B,GAAa,EAEjB,IAAK,IAAI3zB,KAAKhB,EACF,aAANgB,GAA0B,SAANA,GAIpB8K,EAAQ9L,EAAMgB,GAAIyB,EAAKzB,MACzB2zB,GAAa,EAETlyB,EAAKxG,eAAe+E,KAAIqR,EAAWrR,GAAKyB,EAAKzB,IAE7CqzB,EACc,MAAZr0B,EAAMgB,KAAYsR,EAActR,GAAKqzB,EAAM5xB,EAAKzB,GAAIhB,EAAMgB,KAE9C,MAAZhB,EAAMgB,KAAYsR,EAActR,GAAKhB,EAAMgB,KAKjD2zB,GACF3lB,EAAO7S,MAAM,CACXpB,KAAM,WACN6O,OACAyI,aACAC,iBA3BJ,CA8BF,CA5FA,GA8FJ,CAkzBa6B,CAASnF,KAAW4Y,EAC7B,EACA5K,eAAgB,WACd,IAAK,IAAI4X,EAAS/4B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM43B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFjN,EAAKiN,GAAUh5B,UAAUg5B,GAG3B,MA5lEe,EAAC7lB,EAAQqN,KAC5BnR,GAAY7F,IAAI2J,EAAQqN,IA2lEbW,CAAehO,KAAW4Y,EACnC,EACA9S,SAAU,WACR,IAAK,IAAIggB,EAASj5B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM83B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFnN,EAAKmN,GAAUl5B,UAAUk5B,GAG3B,OAt9CS,SAAkB/lB,EAAQhP,GACvC,IAAIuL,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EoT,UACFA,GACED,GACA8c,KACFA,EAAO,QACLvgB,EAEJ,GAAK0D,EAAL,CAIa,UAAT6c,IACFA,EAAOjhB,GAAM+K,WAAW3G,GAAa,QAAU,UAGpC,QAAT6c,IACFA,EAAOjhB,GAAM+K,WAAW3G,GAAa,SAAW,SAGlD,IAAIyG,OACFA,EAAMC,MACNA,GACE1G,EACAvE,EAAiB,WAATohB,EAAoBpW,EAASC,EACzCwN,GAAWpO,aAAa/F,EAAQ,CAC9B,CAAU,WAAT8c,EAAoB,SAAW,SAAUxF,GAAgBA,GAAgB,CAAA,EAAI5b,GAAQ1K,IAhBxF,CAkBF,CAy7Ca8U,CAAS9F,KAAW4Y,EAC7B,EACA7S,aAAc,WACZ,IAAK,IAAIigB,EAASn5B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMg4B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFrN,EAAKqN,GAAUp5B,UAAUo5B,GAG3B,MA97Ca,EAACjmB,EAAQhP,KAC1B,IAAIiP,UACFA,GACED,EACAkmB,EAAW,CAAA,EACXC,EAAW,CAAA,EAEf,GAAKlmB,EAAL,CAIA,IAAK,IAAIjO,KAAKhB,GACF,WAANgB,GAAkC,MAAhBhB,EAAM0V,SAAmB/K,GAAM0B,OAAOrM,EAAM0V,OAAQzG,EAAUyG,SAAiB,UAAN1U,GAAgC,MAAfhB,EAAM2V,QAAkBhL,GAAM0B,OAAOrM,EAAM2V,MAAO1G,EAAU0G,QAAgB,WAAN3U,GAAwB,UAANA,GAAiBhB,EAAMgB,KAAOiO,EAAUjO,MAC9Ok0B,EAASl0B,GAAKiO,EAAUjO,GACxBm0B,EAASn0B,GAAKhB,EAAMgB,IAIpBzF,OAAOuF,KAAKo0B,GAAUp5B,OAAS,GACjCkT,EAAO7S,MAAM,CACXpB,KAAM,gBACNsX,WAAY6iB,EACZ5iB,cAAe6iB,GAbnB,GAq7CWpgB,CAAa/F,KAAW4Y,EACjC,EACAxT,WAAY,WACV,IAAK,IAAIghB,EAASv5B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMo4B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFzN,EAAKyN,GAAUx5B,UAAUw5B,GAG3B,OAAOjhB,GAAWpF,KAAW4Y,EAC/B,EACAzR,MAAO,WACL,IAAK,IAAImf,EAASz5B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMs4B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF3N,EAAK2N,GAAU15B,UAAU05B,GAG3B,MApnEM,EAACvmB,EAAQuL,IACZlD,GAAO3M,MAAMsE,EAAQuL,EAAI,CAC9BuR,KAAM,UAknEG3V,CAAMnH,KAAW4Y,EAC1B,EACArO,OAAQ,WACN,IAAK,IAAIic,EAAS35B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMw4B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF7N,EAAK6N,GAAU55B,UAAU45B,GAG3B,OArnEO,SAAgBzmB,EAAQuL,GACnC,IAAIhP,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EmnB,MACFA,GAAQ,GACNzX,EACAkK,EAAQ4B,GAAO5B,MAAMzG,EAAQuL,IAC5BpE,EAAON,GAAOhL,GAAM2K,MAAMC,GAC3BjG,EAAO,GAEX,IAAK,IAAK/M,EAAMmH,KAASyN,GAAOvD,MAAM9E,EAAQ,CAC5CuL,GAAI9E,EACJqN,MAAOzS,GAAKC,OACZ0S,UACE,CACF,IAAIvnB,EAAIgH,EAAK+M,KAETjF,GAAK8B,OAAOzC,EAAMiM,EAAIjM,QACxBnO,EAAIA,EAAEwB,MAAM,EAAG4Y,EAAItG,SAGjBhF,GAAK8B,OAAOzC,EAAMuM,EAAMvM,QAC1BnO,EAAIA,EAAEwB,MAAMkZ,EAAM5G,SAGpBC,GAAQ/T,CACV,CAEA,OAAO+T,CACT,CAylEa+J,CAAOvK,KAAW4Y,EAC3B,EACA3K,YAAa,WACX,IAAK,IAAIyY,EAAS75B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM04B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF/N,EAAK+N,GAAU95B,UAAU85B,GAG3B,OA9lEY,SAAqB3mB,EAAQyG,GAC7C,IAAIlK,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9EmnB,MACFA,GAAQ,GACNzX,GACC4K,EAAON,GAAOhL,GAAM2K,MAAMC,GAE/B,GAAqB,IAAjBU,EAAM5G,QAA+B,IAAfsG,EAAItG,QAAgB1E,GAAMiM,YAAYrB,IAAUlL,GAAKkC,YAAYoJ,EAAIjM,MAC7F,OAAO6L,EAGT,IAAIkX,EAAWtV,GAAOgD,MAAMrL,EAAQ,CAClCuL,GAAI1E,EACJiN,MAAOlnB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,GAC3DonB,UAEEiG,EAAY0D,EAAWA,EAAS,GAAK,GAErChd,EAAS,CACX+F,OAFU2B,GAAOlB,MAAMnH,EAAQmH,GAG/BR,MAAOE,GAEL+f,GAAO,EAEX,IAAK,IAAKnzB,EAAMmH,KAASyN,GAAOvD,MAAM9E,EAAQ,CAC5CuL,GAAI5K,EACJmT,MAAOzS,GAAKC,OACZ9E,SAAS,EACTwX,UAEA,GAAI4S,EACFA,GAAO,OAIT,GAAkB,KAAdnzB,EAAK+M,MAAejF,GAAKqC,SAAShD,EAAMqf,GAAY,CACtDpT,EAAM,CACJjM,OACA2F,OAAQ9M,EAAK+M,KAAK1T,QAEpB,KACF,CAGF,MAAO,CACL4Z,OAAQS,EACRR,MAAOE,EAEX,CA8iEaoH,CAAYjO,KAAW4Y,EAChC,EACAvT,WAAY,WACV,IAAK,IAAIwhB,EAASh6B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM64B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFlO,EAAKkO,GAAUj6B,UAAUi6B,GAG3B,OA7sBW,SAAoB9mB,EAAQhP,GAC3C,IAAIuL,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAE7EmB,MAAM+F,QAAQ/C,KACjBA,EAAQ,CAACA,IAGX,IAAIsO,EAAM,CAAA,EAEV,IAAK,IAAI/M,KAAOvB,EACdsO,EAAI/M,GAAO,KAGb4hB,GAAWhP,SAASnF,EAAQV,EAAK/C,EACnC,CA+rBa8I,CAAWrF,KAAW4Y,EAC/B,EACAtT,YAAa,WACX,IAAK,IAAIyhB,EAASl6B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM+4B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFpO,EAAKoO,GAAUn6B,UAAUm6B,GAG3B,OApsBY,SAAqBhnB,GACrC,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClFwb,GAAO8F,mBAAmBnO,EAAQ,KAChC,IAAI0X,KACFA,EAAO,SAAQP,MACfA,GAAQ,EAAKnD,MACbA,GAAQ,GACNzX,GACAgP,GACFA,EAAKvL,EAAOC,UAAS6T,MACrBA,GACEvX,EAEJ,GAAKgP,EAAL,CAIa,MAATuI,IACFA,EAAQvY,GAAK0C,OAAOsN,GAAMwE,GAAU/P,EAAQuL,GAAM3e,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,IAGpG2O,GAAK0C,OAAOsN,KACdA,EAAKlD,GAAO5B,MAAMzG,EAAQuL,IAG5B,IAAIuC,EAAWjS,GAAM8H,QAAQ4H,GAAMlD,GAAOyF,SAAS9N,EAAQuL,GAAM,KAC7DzC,EAAUT,GAAOvD,MAAM9E,EAAQ,CACjCuL,KACAuI,QACA4D,OACA1D,UAEEtG,EAAW1f,MAAMJ,KAAKkb,EAASiB,IACjC,IAAI,CAAGhd,GAAKgd,EACZ,OAAO1B,GAAOoF,QAAQzN,EAAQjT,KAI9ByP,UAEEyqB,EAAQ,SAAexZ,GACzB,IAAI7S,EAAO6S,EAAQjS,SACd/H,GAAQ4U,GAAO5U,KAAKuM,EAAQpF,GAC7B6L,EAAQ4B,GAAO5B,MAAMzG,EAAQpF,GAE7Buc,GAASrJ,IACXrH,EAAQ5K,GAAM0L,aAAauG,EAASzS,QAASoL,IAG/C0N,GAAWpP,UAAU/E,EAAQ,CAC3BuL,GAAI9E,EACJqN,MAAOlnB,GAAK2b,GAAQ5K,WAAWlK,IAASA,EAAK/B,SAASoV,SAASla,GAC/DonB,SAEJ,EAEA,IAAK,IAAIvG,KAAWC,EAClBuZ,EAAMxZ,GAGJK,GACFA,EAAStS,OA9CX,GAiDJ,CAooBa8J,CAAYtF,KAAW4Y,EAChC,EACA1K,KAAM,WACJ,IAAK,IAAIgZ,EAASr6B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMk5B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzFvO,EAAKuO,GAAUt6B,UAAUs6B,GAG3B,OApmGQ,SAAiBnnB,GAC7B,IAAIzD,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClF,OAAOwb,GAAOgD,MAAMrL,EAAQiV,GAAgBA,GAAgB,CAAA,EAAI1Y,GAAU,GAAI,CAC5EuX,MAAOlnB,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOuE,OAAO5M,EAAQpT,KAE9D,CA+lGaw6B,CAAQpnB,KAAW4Y,EAC5B,EACAzK,mBAAoB,WAClB,IAAK,IAAIkZ,EAASx6B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMq5B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF1O,EAAK0O,GAAUz6B,UAAUy6B,GAG3B,MAxkEmB,EAACtnB,EAAQhF,KAChC,IAAI9K,EAAQmY,GAAOgF,cAAcrN,GACjCqI,GAAO2F,eAAehO,GAAQ,GAE9B,IACEhF,GACF,CAAC,QACCqN,GAAO2F,eAAehO,EAAQ9P,EAChC,CAEAmY,GAAOmF,UAAUxN,IA8jENmO,CAAmBnO,KAAW4Y,EACvC,EACArT,UAAW,WACT,IAAK,IAAIgiB,EAAS16B,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMu5B,GAASC,EAAS,EAAGA,EAASD,EAAQC,IACzF5O,EAAK4O,GAAU36B,UAAU26B,GAG3B,OAppBU,SAAmBxnB,EAAQwF,GACzC,IAAIjJ,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAClFwb,GAAO8F,mBAAmBnO,EAAQ,KAChC,IAAI0X,KACFA,EAAO,SAAQP,MACfA,GAAQ,EAAKnD,MACbA,GAAQ,GACNzX,GACAuX,MACFA,EAAKvI,GACLA,EAAKvL,EAAOC,WACV1D,EAEJ,GAAKgP,EAAL,CAcA,GAVa,MAATuI,IAEAA,EADEvY,GAAK0C,OAAOsN,GACNwE,GAAU/P,EAAQuL,GACjBvL,EAAO0M,SAASlH,GACjB5Y,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOqE,SAAS1M,EAAQpT,IAAMyU,GAAKC,OAAO1U,GAEvEA,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,IAI5DuqB,GAAStb,GAAM8H,QAAQ4H,GAAK,CAC9B,IAAKpE,EAAON,GAAOhL,GAAM2K,MAAM+E,GAC3BuC,EAAWzF,GAAOyF,SAAS9N,EAAQuL,EAAI,CACzCjQ,SAAU,WAEZ6Y,GAAW/O,WAAWpF,EAAQ,CAC5BuL,GAAI1E,EACJiN,QACAE,UAEFG,GAAW/O,WAAWpF,EAAQ,CAC5BuL,GAAIpE,EACJ2M,QACAE,UAEFzI,EAAKuC,EAAStS,QAEI,MAAde,EAAQgP,IACV4I,GAAWtO,OAAO7F,EAAQuL,EAE9B,CAEA,IAAIkc,EAAQz5B,MAAMJ,KAAKya,GAAOvD,MAAM9E,EAAQ,CAC1CuL,KACAuI,MAAO9T,EAAO0M,SAASlH,GAAW5Y,GAAK2b,GAAQJ,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,GAAKA,GAAKyb,GAAOC,SAAS1b,GAChH8qB,KAAM,SACN1D,WAGF,IAAK,IAAI,CAAG0T,KAAaD,EAAO,CAC9B,IAAIxvB,EAAI4D,GAAM8H,QAAQ4H,GAAM1P,GAAM0L,aAAagE,EAAIlD,GAAO5B,MAAMzG,EAAQ0nB,IAAanc,EAErF,GAAKtT,EAAL,CAIA,IAAI6Q,EAAU9a,MAAMJ,KAAKya,GAAOvD,MAAM9E,EAAQ,CAC5CuL,GAAItT,EACJ6b,QACA4D,OACA1D,WAGF,GAAIlL,EAAQhc,OAAS,EAAG,CACtB,IAAI66B,EAAO,WACT,IAAKje,GAASZ,EACVzK,EAAOyK,EAAQA,EAAQhc,OAAS,IAChC,CAAGytB,GAAa7Q,GAChB,CAAG8Q,GAAYnc,EAEnB,GAAyB,IAArBkc,EAAUztB,QAAoC,IAApB0tB,EAAS1tB,OAErC,MAAO,WAGT,IAAI80B,EAAarmB,GAAK8B,OAAOkd,EAAWC,GAAYjf,GAAKiD,OAAO+b,GAAahf,GAAKoB,OAAO4d,EAAWC,GAChG/T,EAAQ4B,GAAO5B,MAAMzG,EAAQua,EAAWC,GACxCoN,EAAkBvf,GAAO5U,KAAKuM,EAAQ4hB,IACrCiG,GAAcD,EACfvP,EAAQuJ,EAAW90B,OAAS,EAC5Bg7B,EAAcvsB,GAAK6C,KAAKoc,EAASvsB,MAAM,EAAGoqB,IAE1C0P,EAAUtP,GAAcA,GAAc,CAAA,EAAIjT,GAAU,GAAI,CAC1D9T,SAAU,KAGZyiB,GAAWtP,YAAY7E,EAAQ+nB,EAAS,CACtCxc,GAAIuc,EACJ9T,UAEFG,GAAWlP,UAAUjF,EAAQ,CAC3BuL,GAAI9E,EACJqN,MAAOlnB,GAAK2b,GAAQ5K,WAAWkqB,IAAeA,EAAWn2B,SAASoV,SAASla,GAC3Ee,GAAIm6B,EAAY55B,OAAO,GACvB8lB,SAEJ,CAhCW,GAkCX,GAAa,aAAT2T,EAAqB,QAC3B,CA7CA,CA8CF,CA5FA,GA8FJ,CAuiBapiB,CAAUvF,KAAW4Y,EAC9B,GAEF,OAAO5Y,gIC9sMTgoB,GAWA,SAAmB93B,GAGjB,GAFAA,EAAQ+3B,OAAO/3B,GAAS,IAEpBg4B,EAAIpW,KAAK5hB,GACX,MAAO,MAGT,GAAIi4B,EAAIrW,KAAK5hB,GACX,MAAO,MAGT,MAAO,SACT,EArBA,IAAIk4B,EAAM,YACNC,EACF,kCAIEH,EAAM,IAAII,OAAO,MAAQD,EAAM,MAAQD,EAAM,KAC7CD,EAAM,IAAIG,OAAO,MAAQF,EAAM,MAAQC,EAAM,6DCmBjDE,GALA,SAAkBr4B,GAChB,IAAInE,SAAcmE,EAClB,OAAgB,MAATA,IAA0B,UAARnE,GAA4B,YAARA,EAC/C,qCC5BA,IAAIy8B,kCCCJ,IAAIA,EAA8B,iBAAVC,GAAsBA,GAAUA,EAAOl8B,SAAWA,QAAUk8B,SAEpFC,GAAiBF,EDHA50B,GAGb+0B,EAA0B,iBAARr3B,MAAoBA,MAAQA,KAAK/E,SAAWA,QAAU+E,KAGxE4X,EAAOsf,GAAcG,GAAY/yB,SAAS,cAATA,UAErCgzB,GAAiB1f,qCERjB,IAAI2f,kCCCJ,IAAIC,EAAe,YAiBnBC,GAPA,SAAyBxe,GAGvB,IAFA,IAAIpK,EAAQoK,EAAOzd,OAEZqT,KAAW2oB,EAAahX,KAAKvH,EAAO4H,OAAOhS,MAClD,OAAOA,CACT,KDhBsBvM,GAGlBo1B,EAAc,cAelBC,GANA,SAAkB1e,GAChB,OAAOA,EACHA,EAAOtc,MAAM,EAAG46B,EAAgBte,GAAU,GAAG2e,QAAQF,EAAa,IAClEze,CACN,wCEhBA,IAGIha,EAHOqD,KAGOrD,cAElB44B,GAAiB54B,qCCLjB,IAAIA,EAASqD,KACTw1B,kCCDJ,IAAI74B,EAASqD,KAGTy1B,EAAc98B,OAAOS,UAGrBC,EAAiBo8B,EAAYp8B,eAO7Bq8B,EAAuBD,EAAYn0B,SAGnCq0B,EAAiBh5B,EAASA,EAAOC,iBAAc8E,SA6BnDk0B,GApBA,SAAmBt5B,GACjB,IAAIu5B,EAAQx8B,EAAeC,KAAKgD,EAAOq5B,GACnCr6B,EAAMgB,EAAMq5B,GAEhB,IACEr5B,EAAMq5B,QAAkBj0B,EACxB,IAAIo0B,GAAW,CACnB,CAAI,MAAOp8B,GAAG,CAEZ,IAAIkV,EAAS8mB,EAAqBp8B,KAAKgD,GAQvC,OAPIw5B,IACED,EACFv5B,EAAMq5B,GAAkBr6B,SAEjBgB,EAAMq5B,IAGV/mB,CACT,ED1CgBzN,GACZ40B,kCEDJ,IAOIL,EAPc/8B,OAAOS,UAOckI,gBAavC00B,GAJA,SAAwB15B,GACtB,OAAOo5B,EAAqBp8B,KAAKgD,EACnC,EFjBqB25B,GAOjBN,EAAiBh5B,EAASA,EAAOC,iBAAc8E,SAkBnDw0B,GATA,SAAoB55B,GAClB,OAAa,MAATA,OACeoF,IAAVpF,EAdQ,qBADL,gBAiBJq5B,GAAkBA,KAAkBh9B,OAAO2D,GAC/Ck5B,EAAUl5B,GACVy5B,EAAez5B,EACrB,qCGzBA,IAAI65B,EAAan2B,KACbo2B,cC2BJC,GAJA,SAAsB/5B,GACpB,OAAgB,MAATA,GAAiC,iBAATA,CACjC,UDEAg6B,GALA,SAAkBh6B,GAChB,MAAuB,iBAATA,GACX85B,EAAa95B,IArBF,mBAqBY65B,EAAW75B,EACvC,qCE1BA,IAAI8E,EAAWpB,KACXu2B,kCCDJ,IAAIjhB,EAAOtV,YAsBXw2B,GAJU,WACR,OAAOlhB,EAAKmhB,KAAKF,KACnB,EDnBUp1B,GACNu1B,kCEFJ,IAAIC,EAAW32B,KACXoB,EAAWD,KACXy1B,EAAWX,KAMXY,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAe7wB,gBA8CnB8wB,GArBA,SAAkB36B,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIs6B,EAASt6B,GACX,OA1CM,IA4CR,GAAI8E,EAAS9E,GAAQ,CACnB,IAAI46B,EAAgC,mBAAjB56B,EAAM66B,QAAwB76B,EAAM66B,UAAY76B,EACnEA,EAAQ8E,EAAS81B,GAAUA,EAAQ,GAAMA,CAC7C,CACE,GAAoB,iBAAT56B,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQq6B,EAASr6B,GACjB,IAAI86B,EAAWN,EAAW5Y,KAAK5hB,GAC/B,OAAQ86B,GAAYL,EAAU7Y,KAAK5hB,GAC/B06B,EAAa16B,EAAMjC,MAAM,GAAI+8B,EAAW,EAAI,GAC3CP,EAAW3Y,KAAK5hB,GAvDb,KAuD6BA,CACvC,EF3De25B,GAMXoB,EAAYjuB,KAAKkuB,IACjBC,EAAYnuB,KAAKD,WAqLrBquB,GA7HA,SAAkBC,EAAMC,EAAM/uB,GAC5B,IAAIgvB,EACAC,EACAC,EACAjpB,EACAkpB,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAARV,EACT,MAAM,IAAIW,UAzEQ,uBAmFpB,SAASC,EAAWC,GAClB,IAAItT,EAAO2S,EACPY,EAAUX,EAKd,OAHAD,EAAWC,OAAWl2B,EACtBs2B,EAAiBM,EACjB1pB,EAAS6oB,EAAKl+B,MAAMg/B,EAASvT,EAEjC,CAqBE,SAASwT,EAAaF,GACpB,IAAIG,EAAoBH,EAAOP,EAM/B,YAAyBr2B,IAAjBq2B,GAA+BU,GAAqBf,GACzDe,EAAoB,GAAOP,GANJI,EAAON,GAM8BH,CACnE,CAEE,SAASa,IACP,IAAIJ,EAAO/B,IACX,GAAIiC,EAAaF,GACf,OAAOK,EAAaL,GAGtBR,EAAUc,WAAWF,EA3BvB,SAAuBJ,GACrB,IAEIO,EAAcnB,GAFMY,EAAOP,GAI/B,OAAOG,EACHX,EAAUsB,EAAahB,GAJDS,EAAON,IAK7Ba,CACR,CAmBuCC,CAAcR,GACrD,CAEE,SAASK,EAAaL,GAKpB,OAJAR,OAAUp2B,EAINy2B,GAAYR,EACPU,EAAWC,IAEpBX,EAAWC,OAAWl2B,EACfkN,EACX,CAcE,SAASmqB,IACP,IAAIT,EAAO/B,IACPyC,EAAaR,EAAaF,GAM9B,GAJAX,EAAW1+B,UACX2+B,EAAWp+B,KACXu+B,EAAeO,EAEXU,EAAY,CACd,QAAgBt3B,IAAZo2B,EACF,OAzEN,SAAqBQ,GAMnB,OAJAN,EAAiBM,EAEjBR,EAAUc,WAAWF,EAAchB,GAE5BO,EAAUI,EAAWC,GAAQ1pB,CACxC,CAkEeqqB,CAAYlB,GAErB,GAAIG,EAIF,OAFAgB,aAAapB,GACbA,EAAUc,WAAWF,EAAchB,GAC5BW,EAAWN,EAE1B,CAII,YAHgBr2B,IAAZo2B,IACFA,EAAUc,WAAWF,EAAchB,IAE9B9oB,CACX,CAGE,OA3GA8oB,EAAOhB,EAASgB,IAAS,EACrBt2B,EAASuH,KACXsvB,IAAYtvB,EAAQsvB,QAEpBJ,GADAK,EAAS,YAAavvB,GACH0uB,EAAUX,EAAS/tB,EAAQkvB,UAAY,EAAGH,GAAQG,EACrEM,EAAW,aAAcxvB,IAAYA,EAAQwvB,SAAWA,GAoG1DY,EAAUI,OApCV,gBACkBz3B,IAAZo2B,GACFoB,aAAapB,GAEfE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,OAAUp2B,CACnD,EA+BEq3B,EAAUK,MA7BV,WACE,YAAmB13B,IAAZo2B,EAAwBlpB,EAAS+pB,EAAapC,IACzD,EA4BSwC,CACT,iEG5LA,IAAIM,EAAWr5B,KACXoB,EAAWD,YAmEfm4B,GAlBA,SAAkB7B,EAAMC,EAAM/uB,GAC5B,IAAIsvB,GAAU,EACVE,GAAW,EAEf,GAAmB,mBAARV,EACT,MAAM,IAAIW,UAnDQ,uBAyDpB,OAJIh3B,EAASuH,KACXsvB,EAAU,YAAatvB,IAAYA,EAAQsvB,QAAUA,EACrDE,EAAW,aAAcxvB,IAAYA,EAAQwvB,SAAWA,GAEnDkB,EAAS5B,EAAMC,EAAM,CAC1BO,QAAWA,EACXJ,QAAWH,EACXS,SAAYA,GAEhB,iBClEA,SAASt/B,GAAEA,GAAG,MAAM,iBAAiBA,GAAG,MAAMA,GAAG,IAAIA,EAAE0gC,QAAQ,CAAC,SAAS7/B,GAAEb,EAAEa,GAAG,QAAQA,GAAG,WAAWb,IAAI,YAAYA,GAAG,SAASA,CAAC,CAAC,SAASG,GAAEH,EAAEG,GAAG,GAAGH,EAAE2gC,aAAa3gC,EAAE4gC,cAAc5gC,EAAE6gC,YAAY7gC,EAAE8gC,YAAY,CAAC,IAAIh4B,EAAEi4B,iBAAiB/gC,EAAE,MAAM,OAAOa,GAAEiI,EAAEk4B,UAAU7gC,IAAIU,GAAEiI,EAAEm4B,UAAU9gC,IAAI,SAASH,GAAG,IAAIa,EAAE,SAASb,GAAG,IAAIA,EAAEkhC,gBAAgBlhC,EAAEkhC,cAAcC,YAAY,OAAO,KAAK,IAAI,OAAOnhC,EAAEkhC,cAAcC,YAAYC,YAAY,CAAC,MAAMphC,GAAG,OAAO,IAAI,CAAC,CAAnJ,CAAqJA,GAAG,QAAQa,IAAIA,EAAE8/B,aAAa3gC,EAAE4gC,cAAc//B,EAAEggC,YAAY7gC,EAAE8gC,YAAY,CAAjP,CAAmP9gC,EAAE,CAAC,OAAM,CAAE,CAAC,SAAS8I,GAAE9I,EAAEa,EAAEV,EAAE2I,EAAE5I,EAAEsI,EAAElH,EAAE8I,GAAG,OAAO5B,EAAExI,GAAGsB,EAAET,GAAG2H,EAAExI,GAAGsB,EAAET,EAAE,EAAE2H,GAAGxI,GAAGoK,GAAGjK,GAAGmB,GAAGT,GAAGuJ,GAAGjK,EAAEqI,EAAExI,EAAE8I,EAAExH,EAAET,GAAGuJ,EAAEjK,GAAGqI,EAAExI,GAAGoK,EAAEjK,EAAEmB,EAAET,EAAEX,EAAE,CAAC,CAAC,IAAIA,GAAE,SAASW,EAAEX,GAAG,IAAIsI,EAAE64B,OAAO//B,EAAEpB,EAAEohC,WAAWl3B,EAAElK,EAAEwyB,MAAM/oB,EAAEzJ,EAAEqhC,OAAO/2B,EAAEtK,EAAEshC,SAAS/3B,EAAEvJ,EAAEuhC,2BAA2BxhC,EAAE,mBAAmBuK,EAAEA,EAAE,SAASxK,GAAG,OAAOA,IAAIwK,CAAC,EAAE,IAAIxK,GAAEa,GAAG,MAAM,IAAI0+B,UAAU,kBAAkB,IAAI,IAAI/zB,EAAEE,EAAEX,EAAE9L,SAASyiC,kBAAkBziC,SAAS0iC,gBAAgBrhC,EAAE,GAAG6K,EAAEtK,EAAEb,GAAEmL,IAAIlL,EAAEkL,IAAI,CAAC,IAAIA,EAAE,OAAOO,GAAGF,EAAEL,GAAGy2B,eAAep2B,EAAEq2B,cAAcC,MAAM,KAAKp2B,KAAKX,EAAE,CAACzK,EAAEmM,KAAKtB,GAAG,KAAK,CAAC,MAAMA,GAAGA,IAAIlM,SAAS8iC,MAAM5hC,GAAEgL,KAAKhL,GAAElB,SAAS0iC,kBAAkB,MAAMx2B,GAAGhL,GAAEgL,EAAE1B,IAAInJ,EAAEmM,KAAKtB,EAAE,CAAC,IAAI,IAAID,EAAE1C,EAAEw5B,eAAex5B,EAAEw5B,eAAeC,MAAMC,WAAW54B,EAAEd,EAAEw5B,eAAex5B,EAAEw5B,eAAe9W,OAAOiX,YAAYv1B,EAAEy0B,OAAOe,SAASC,YAAY/2B,EAAE+1B,OAAOiB,SAASC,YAAY73B,EAAE7J,EAAE2hC,wBAAwBn4B,EAAEK,EAAEwgB,OAAOpf,EAAEpB,EAAEu3B,MAAM52B,EAAEX,EAAE+3B,IAAI3b,EAAEpc,EAAEqZ,MAAMxgB,EAAEmH,EAAEg4B,OAAOn3B,EAAEb,EAAEmZ,KAAK5X,EAAE,UAAU7B,GAAG,YAAYA,EAAEiB,EAAE,QAAQjB,EAAE7G,EAAE8H,EAAEhB,EAAE,EAAEsB,EAAE,WAAWhC,EAAE4B,EAAEO,EAAE,EAAE,QAAQnC,EAAEmd,EAAEvb,EAAES,EAAE,GAAGzG,EAAE,EAAEA,EAAEjF,EAAED,OAAOkF,IAAI,CAAC,IAAIsH,EAAEvM,EAAEiF,GAAGqG,EAAEiB,EAAE21B,wBAAwBx3B,EAAEY,EAAEsf,OAAOphB,EAAE8B,EAAEq2B,MAAMl5B,EAAE6C,EAAE62B,IAAIp5B,EAAEuC,EAAEmY,MAAM9Y,EAAEW,EAAE82B,OAAO53B,EAAEc,EAAEiY,KAAK,GAAG,cAAcviB,GAAG+J,GAAG,GAAGE,GAAG,GAAGhI,GAAG+F,GAAGwd,GAAG5b,GAAGG,GAAGtC,GAAGxF,GAAG0H,GAAGM,GAAGT,GAAGgc,GAAGzd,EAAE,OAAO2C,EAAE,IAAIP,EAAEs1B,iBAAiBl0B,GAAG7C,EAAEsD,SAAS7B,EAAEk3B,gBAAgB,IAAI92B,EAAEyB,SAAS7B,EAAEm3B,eAAe,IAAI97B,EAAEwG,SAAS7B,EAAEo3B,iBAAiB,IAAI92B,EAAEuB,SAAS7B,EAAEq3B,kBAAkB,IAAIn2B,EAAE,EAAEH,EAAE,EAAEE,EAAE,gBAAgBG,EAAEA,EAAEk2B,YAAYl2B,EAAEg0B,YAAY72B,EAAElD,EAAE,EAAEsE,EAAE,iBAAiByB,EAAEA,EAAEm2B,aAAan2B,EAAE8zB,aAAa90B,EAAEE,EAAE,EAAE9C,EAAE,gBAAgB4D,EAAE,IAAIA,EAAEk2B,YAAY,EAAEj5B,EAAE+C,EAAEk2B,YAAY,EAAEl4B,EAAE,iBAAiBgC,EAAE,IAAIA,EAAEm2B,aAAa,EAAEh4B,EAAE6B,EAAEm2B,aAAa,EAAE,GAAGj4B,IAAI8B,EAAEF,EAAE,UAAUvC,EAAE6B,EAAE,QAAQ7B,EAAE6B,EAAE3C,EAAE,YAAYc,EAAEtB,GAAEwC,EAAEA,EAAEhC,EAAEA,EAAEuC,EAAEE,EAAET,EAAEW,EAAEX,EAAEW,EAAE5B,EAAEA,GAAG4B,EAAE3C,EAAE,EAAEkD,EAAE,UAAU7C,EAAEgC,EAAE,WAAWhC,EAAEgC,EAAET,EAAE,EAAE,QAAQvB,EAAEgC,EAAET,EAAEpC,GAAE8D,EAAEA,EAAE1B,EAAEA,EAAElB,EAAElD,EAAE8F,EAAEjB,EAAEiB,EAAEjB,EAAEG,EAAEA,GAAGa,EAAE4D,KAAKkuB,IAAI,EAAE9xB,EAAErB,GAAGkB,EAAE+D,KAAKkuB,IAAI,EAAEjyB,EAAEI,OAAO,CAACD,EAAE,UAAUvC,EAAE6B,EAAElD,EAAE8C,EAAE,QAAQzB,EAAE6B,EAAEhB,EAAEc,EAAEX,EAAE,YAAYhB,EAAEtB,GAAEC,EAAEkC,EAAED,EAAEa,EAAEE,EAAEX,EAAEa,EAAEA,EAAE5B,EAAEA,GAAG4B,GAAGlD,EAAEiC,EAAE,GAAGI,EAAE,EAAEoB,EAAE,UAAU7C,EAAEgC,EAAEb,EAAEd,EAAE,WAAWL,EAAEgC,GAAGb,EAAEhB,EAAE,GAAG4C,EAAE,EAAE,QAAQ/C,EAAEgC,EAAEtC,EAAEvC,EAAE4F,EAAE5D,GAAEgC,EAAEzB,EAAES,EAAEE,EAAElD,EAAE4F,EAAEf,EAAEA,EAAEG,EAAEA,GAAG,IAAI1C,EAAEyD,EAAEo2B,WAAW50B,EAAExB,EAAEq2B,UAAUj3B,GAAGoC,GAAG1B,EAAE4D,KAAKkuB,IAAI,EAAEluB,KAAKD,IAAIjC,EAAE1B,EAAE9B,EAAEgC,EAAE+zB,aAAa51B,EAAEH,EAAEO,KAAKO,GAAGvC,GAAGoD,EAAE+D,KAAKkuB,IAAI,EAAEluB,KAAKD,IAAIlH,EAAEoD,EAAEvD,EAAE4D,EAAEi0B,YAAYh3B,EAAEb,EAAEyD,IAAI,CAACV,EAAES,KAAK,CAAC02B,GAAGt2B,EAAE41B,IAAI91B,EAAEkX,KAAKrX,GAAG,CAAC,OAAOR,CAAC,ECC7kF,SAASo3B,GAAgBtzB,GACvB,OAAOA,IAAYhQ,OAAOgQ,IAA4C,IAAhChQ,OAAOuF,KAAKyK,GAASzP,MAC7D,CAqCA,SAASgjC,GAAejwB,EAAQtD,GAC9B,IAAIwzB,EAAmBlwB,EAAOmwB,aAAenwB,EAAO8tB,cAAcS,gBAAgB6B,SAASpwB,GAC3F,GAAIgwB,GAAgBtzB,IAAwC,mBAArBA,EAAQ2zB,SAC7C,OAAO3zB,EAAQ2zB,SAASH,EAAmBI,GAAQtwB,EAAQtD,GAAW,IAExE,GAAKwzB,EAAL,CAGA,IAAIK,EAvBN,SAAoB7zB,GAClB,OAAgB,IAAZA,EACK,CACL4iB,MAAO,MACP6O,OAAQ,WAGR6B,GAAgBtzB,GACXA,EAEF,CACL4iB,MAAO,QACP6O,OAAQ,UAEZ,CASuBqC,CAAW9zB,GAChC,OA7CF,SAAyB+zB,EAASJ,QACf,IAAbA,IACFA,EAAW,QAEb,IAAIK,EAAmB,mBAAoB7kC,SAAS8iC,KAAK3iC,MACzDykC,EAAQr6B,QAAQ,SAAU8T,GACxB,IAAI6lB,EAAK7lB,EAAK6lB,GACZV,EAAMnlB,EAAKmlB,IACX5e,EAAOvG,EAAKuG,KACVsf,EAAGY,QAAUD,EACfX,EAAGY,OAAO,CACRtB,IAAKA,EACL5e,KAAMA,EACN4f,SAAUA,KAGZN,EAAGD,UAAYT,EACfU,EAAGF,WAAapf,EAEpB,EACF,CAyBSmgB,CAAgBN,GAAQtwB,EAAQuwB,GAAiBA,EAAeF,SAFvE,CAGF,CClDA,ICAIQ,GDAAC,GAAkB,GEClBC,GAAwB,WACxB,OAAOD,GAAgBpR,KAAK,SAAUsR,GAAM,OAAOA,EAAGC,cAAchkC,OAAS,CAAG,EACpF,ECHIikC,GAAM,iEFCV,SAAWL,GACPA,EAAqC,WAAI,aACzCA,EAAsC,YAAI,cAC1CA,EAAmD,yBAAI,0BAC1D,CAJD,CAIGA,KAA6BA,GAA2B,CAAA,IGLpD,ICAHM,MDAOn/B,GAAS,SAAUyN,GAAO,OAAO/S,OAAOsF,OAAOyN,EAAM,EEC5D2xB,GACA,SAA4BC,EAAYC,GACpC/jC,KAAK8jC,WAAaA,EAClB9jC,KAAK+jC,UAAYA,EACjBt/B,GAAOzE,KACX,ECLAgkC,GAAmB,WACnB,SAASA,EAAgBphC,EAAG8G,EAAG43B,EAAO/W,GASlC,OARAvqB,KAAK4C,EAAIA,EACT5C,KAAK0J,EAAIA,EACT1J,KAAKshC,MAAQA,EACbthC,KAAKuqB,OAASA,EACdvqB,KAAK8hC,IAAM9hC,KAAK0J,EAChB1J,KAAKkjB,KAAOljB,KAAK4C,EACjB5C,KAAK+hC,OAAS/hC,KAAK8hC,IAAM9hC,KAAKuqB,OAC9BvqB,KAAKojB,MAAQpjB,KAAKkjB,KAAOljB,KAAKshC,MACvB78B,GAAOzE,KAClB,CAQA,OAPAgkC,EAAgBpkC,UAAUqkC,OAAS,WAC/B,IAAIC,EAAKlkC,KACT,MAAO,CAAE4C,EADUshC,EAAGthC,EACP8G,EADcw6B,EAAGx6B,EACXo4B,IADoBoC,EAAGpC,IACb1e,MAD0B8gB,EAAG9gB,MACf2e,OAD+BmC,EAAGnC,OAClB7e,KADiCghB,EAAGhhB,KACxBoe,MADsC4C,EAAG5C,MAC3B/W,OAD2C2Z,EAAG3Z,OAEzI,EACAyZ,EAAgBG,SAAW,SAAUC,GACjC,OAAO,IAAIJ,EAAgBI,EAAUxhC,EAAGwhC,EAAU16B,EAAG06B,EAAU9C,MAAO8C,EAAU7Z,OACpF,EACOyZ,CACX,ICrBIK,GAAQ,SAAU5xB,GAAU,OAAOA,aAAkB6xB,YAAc,YAAa7xB,CAAQ,EACxF8xB,GAAW,SAAU9xB,GACrB,GAAI4xB,GAAM5xB,GAAS,CACf,IAAIyxB,EAAKzxB,EAAO+xB,UAAWlD,EAAQ4C,EAAG5C,MAAO/W,EAAS2Z,EAAG3Z,OACzD,OAAQ+W,IAAU/W,CACtB,CACA,IAAIka,EAAKhyB,EAAQ2vB,EAAcqC,EAAGrC,YAAaC,EAAeoC,EAAGpC,aACjE,QAASD,GAAeC,GAAgB5vB,EAAOiyB,iBAAiBhlC,OACpE,EACIqb,GAAY,SAAU7I,GACtB,IAAIgyB,EACJ,GAAIhyB,aAAeiJ,QACf,OAAO,EAEX,IAAIwpB,EAA+E,QAAtET,EAAKhyB,aAAiC,EAASA,EAAIquB,qBAAkC,IAAP2D,OAAgB,EAASA,EAAG1D,YACvH,SAAUmE,GAASzyB,aAAeyyB,EAAMxpB,QAC5C,EChBWkgB,GAA2B,oBAAXqF,OAAyBA,OAAS,CAAA,ECMzDkE,GAAQ,IAAIj2B,QACZk2B,GAAe,cACfC,GAAiB,eACjBC,GAAK,gBAAkBrgB,KAAK2W,GAAO2J,WAAa3J,GAAO2J,UAAUC,WACjEC,GAAiB,SAAUC,GAAS,OAAOC,WAAWD,GAAS,IAAM,EACrEE,GAAO,SAAUvB,EAAYC,EAAWuB,GAIxC,YAHmB,IAAfxB,IAAyBA,EAAa,QACxB,IAAdC,IAAwBA,EAAY,QACpB,IAAhBuB,IAA0BA,GAAc,GACrC,IAAIzB,IAAoByB,EAAcvB,EAAYD,IAAe,GAAIwB,EAAcxB,EAAaC,IAAc,EACzH,EACIwB,GAAY9gC,GAAO,CACnB+gC,0BAA2BH,KAC3BI,cAAeJ,KACfK,eAAgBL,KAChBM,YAAa,IAAI3B,GAAgB,EAAG,EAAG,EAAG,KAE1C4B,GAAoB,SAAUnzB,EAAQozB,GAEtC,QAD2B,IAAvBA,IAAiCA,GAAqB,GACtDjB,GAAM77B,IAAI0J,KAAYozB,EACtB,OAAOjB,GAAM3/B,IAAIwN,GAErB,GAAI8xB,GAAS9xB,GAET,OADAmyB,GAAM37B,IAAIwJ,EAAQ8yB,IACXA,GAEX,IAAIO,EAAK1F,iBAAiB3tB,GACtBszB,EAAM1B,GAAM5xB,IAAWA,EAAOuzB,iBAAmBvzB,EAAO+xB,UACxDyB,GAAiBlB,IAAuB,eAAjBe,EAAGI,UAC1BZ,EAAcR,GAAepgB,KAAKohB,EAAGK,aAAe,IACpDC,GAAuBL,GAAOlB,GAAangB,KAAKohB,EAAGzF,WAAa,IAChEgG,GAAyBN,GAAOlB,GAAangB,KAAKohB,EAAGxF,WAAa,IAClEgG,EAAaP,EAAM,EAAIb,GAAeY,EAAGQ,YACzCC,EAAeR,EAAM,EAAIb,GAAeY,EAAGS,cAC3CC,EAAgBT,EAAM,EAAIb,GAAeY,EAAGU,eAC5CC,EAAcV,EAAM,EAAIb,GAAeY,EAAGW,aAC1CC,EAAYX,EAAM,EAAIb,GAAeY,EAAG7D,gBACxC0E,EAAcZ,EAAM,EAAIb,GAAeY,EAAG5D,kBAC1C0E,EAAeb,EAAM,EAAIb,GAAeY,EAAG3D,mBAE3C0E,EAAoBJ,EAAcF,EAClCO,EAAkBR,EAAaE,EAC/BO,GAHahB,EAAM,EAAIb,GAAeY,EAAG9D,kBAGL2E,EACpCK,EAAqBN,EAAYE,EACjCK,EAAgCZ,EAA4B5zB,EAAO4vB,aAAe2E,EAAqBv0B,EAAOutB,aAAtD,EACxDkH,EAA8Bd,EAA0B3zB,EAAO2vB,YAAc2E,EAAuBt0B,EAAOytB,YAAvD,EACpDiH,EAAiBlB,EAAgBY,EAAoBE,EAAuB,EAC5EK,EAAkBnB,EAAgBa,EAAkBE,EAAqB,EACzEK,EAAetB,EAAMA,EAAIzE,MAAQ4D,GAAeY,EAAGxE,OAAS6F,EAAiBD,EAC7EI,EAAgBvB,EAAMA,EAAIxb,OAAS2a,GAAeY,EAAGvb,QAAU6c,EAAkBH,EACjFM,EAAiBF,EAAeR,EAAoBK,EAA6BH,EACjFS,EAAkBF,EAAgBR,EAAkBG,EAA+BD,EACnFS,EAAQhjC,GAAO,CACf+gC,0BAA2BH,GAAKz1B,KAAK83B,MAAML,EAAeM,kBAAmB/3B,KAAK83B,MAAMJ,EAAgBK,kBAAmBrC,GAC3HG,cAAeJ,GAAKkC,EAAgBC,EAAiBlC,GACrDI,eAAgBL,GAAKgC,EAAcC,EAAehC,GAClDK,YAAa,IAAI3B,GAAgByC,EAAaH,EAAYe,EAAcC,KAG5E,OADA1C,GAAM37B,IAAIwJ,EAAQg1B,GACXA,CACX,EACIG,GAAmB,SAAUn1B,EAAQo1B,EAAahC,GAClD,IAAI3B,EAAK0B,GAAkBnzB,EAAQozB,GAAqBJ,EAAgBvB,EAAGuB,cAAeC,EAAiBxB,EAAGwB,eAAgBF,EAA4BtB,EAAGsB,0BAC7J,OAAQqC,GACJ,KAAKvE,GAAyBwE,yBAC1B,OAAOtC,EACX,KAAKlC,GAAyByE,WAC1B,OAAOtC,EACX,QACI,OAAOC,EAEnB,EC3EIsC,GACA,SAA6Bv1B,GACzB,IAAIg1B,EAAQ7B,GAAkBnzB,GAC9BzS,KAAKyS,OAASA,EACdzS,KAAK2lC,YAAc8B,EAAM9B,YACzB3lC,KAAKylC,cAAgBhhC,GAAO,CAACgjC,EAAMhC,gBACnCzlC,KAAK0lC,eAAiBjhC,GAAO,CAACgjC,EAAM/B,iBACpC1lC,KAAKwlC,0BAA4B/gC,GAAO,CAACgjC,EAAMjC,2BACnD,ECTAyC,GAAwB,SAAU5hC,GAClC,GAAIk+B,GAASl+B,GACT,OAAO6hC,IAIX,IAFA,IAAIjd,EAAQ,EACR7Z,EAAS/K,EAAKojB,WACXrY,GACH6Z,GAAS,EACT7Z,EAASA,EAAOqY,WAEpB,OAAOwB,CACX,ECRIkd,GAA8B,WAC9B,IAAIC,EAAkBF,IAClBG,EAAY,GAChB9E,GAAgB16B,QAAQ,SAAyB46B,GAC7C,GAAgC,IAA5BA,EAAGC,cAAchkC,OAArB,CAGA,IAAI4oC,EAAU,GACd7E,EAAGC,cAAc76B,QAAQ,SAAuB0/B,GAC5C,IAAIxsB,EAAQ,IAAIisB,GAAoBO,EAAG91B,QACnC+1B,EAAcP,GAAsBM,EAAG91B,QAC3C61B,EAAQx8B,KAAKiQ,GACbwsB,EAAGE,iBAAmBb,GAAiBW,EAAG91B,OAAQ81B,EAAGV,aACjDW,EAAcJ,IACdA,EAAkBI,EAE1B,GACAH,EAAUv8B,KAAK,WACX23B,EAAGiF,SAAS5oC,KAAK2jC,EAAGkF,SAAUL,EAAS7E,EAAGkF,SAC9C,GACAlF,EAAGC,cAAc1wB,OAAO,EAAGywB,EAAGC,cAAchkC,OAd5C,CAeJ,GACA,IAAK,IAAIkpC,EAAK,EAAGC,EAAcR,EAAWO,EAAKC,EAAYnpC,OAAQkpC,IAAM,EAErEF,EADeG,EAAYD,KAE/B,CACA,OAAOR,CACX,EC7BIU,GAAkC,SAAU7d,GAC5CsY,GAAgB16B,QAAQ,SAAyB46B,GAC7CA,EAAGC,cAAc1wB,OAAO,EAAGywB,EAAGC,cAAchkC,QAC5C+jC,EAAGsF,eAAe/1B,OAAO,EAAGywB,EAAGsF,eAAerpC,QAC9C+jC,EAAGuF,mBAAmBngC,QAAQ,SAAuB0/B,GAC7CA,EAAGU,aACChB,GAAsBM,EAAG91B,QAAUwY,EACnCwY,EAAGC,cAAc53B,KAAKy8B,GAGtB9E,EAAGsF,eAAej9B,KAAKy8B,GAGnC,EACJ,EACJ,ECZIvnC,GAAU,WACV,IZJIkoC,EYIAje,EAAQ,EAEZ,IADA6d,GAAgC7d,GACzBuY,MACHvY,EAAQkd,KACRW,GAAgC7d,GAKpC,OCbOsY,GAAgBpR,KAAK,SAAUsR,GAAM,OAAOA,EAAGsF,eAAerpC,OAAS,CAAG,KbCvD,mBAAfypC,WACPD,EAAQ,IAAIC,WAAW,QAAS,CAC5BC,QAASzF,OAIbuF,EAAQ5qC,SAAS+qC,YAAY,UACvBC,UAAU,SAAS,GAAO,GAChCJ,EAAME,QAAUzF,IAEpBjD,OAAO6I,cAAcL,IYEdje,EAAQ,CACnB,EVfIod,GAAY,GAEZmB,GAAiB,SAAUd,GAC3B,IAAK9E,GAAS,CACV,IAAI6F,EAAW,EACXC,EAAOprC,SAASW,eAAe,IAEnC,IAAI0qC,iBAAiB,WAAc,OANTtB,GAAUr1B,OAAO,GAAGnK,QAAQ,SAAU+gC,GAAM,OAAOA,GAAM,EAM/B,GAAGC,QAAQH,EADlD,CAAEI,eAAe,IAE9BlG,GAAU,WAAc8F,EAAKK,YAAc,GAAGjpC,OAAO2oC,EAAWA,IAAaA,IAAa,CAC9F,CACApB,GAAUv8B,KAAK48B,GACf9E,IACJ,EYVIoG,GAAW,EAGXC,GAAiB,CAAEC,YAAY,EAAMJ,eAAe,EAAMK,WAAW,EAAMC,SAAS,GACpFC,GAAS,CACT,SACA,OACA,gBACA,eACA,iBACA,qBACA,QACA,UACA,UACA,YACA,YACA,WACA,OACA,SAEAvL,GAAO,SAAUwL,GAEjB,YADgB,IAAZA,IAAsBA,EAAU,GAC7BrN,KAAKF,MAAQuN,CACxB,EACIC,IAAY,EAkEZC,GAAY,IAjEC,WACb,SAASC,IACL,IAAIC,EAAQ1qC,KACZA,KAAK2qC,SAAU,EACf3qC,KAAK4qC,SAAW,WAAc,OAAOF,EAAMG,UAAY,CAC3D,CA0DA,OAzDAJ,EAAU7qC,UAAUkrC,IAAM,SAAUR,GAChC,IAAII,EAAQ1qC,KAEZ,QADgB,IAAZsqC,IAAsBA,EA/Bf,MAgCPC,GAAJ,CAGAA,IAAY,EACZ,ICxC4BX,EDwCxBmB,EAAQjM,GAAKwL,GCxCWV,EDyCR,WAChB,IAAIoB,GAAsB,EAC1B,IACIA,EAAsBhqC,IAC1B,CACZ,QAGgB,GAFAupC,IAAY,EACZD,EAAUS,EAAQjM,MA7CMkL,GA+CpB,OAEAgB,EACAN,EAAMI,IAAI,KAELR,EAAU,EACfI,EAAMI,IAAIR,GAGVI,EAAM3wB,OAEd,CACJ,EC7DJyvB,GAAe,WACXyB,sBAAsBrB,EAC1B,EDmCI,CAyBJ,EACAa,EAAU7qC,UAAUirC,SAAW,WAC3B7qC,KAAKkrC,OACLlrC,KAAK8qC,KACT,EACAL,EAAU7qC,UAAUiqC,QAAU,WAC1B,IAAIa,EAAQ1qC,KACR4pC,EAAK,WAAc,OAAOc,EAAM/B,UAAY+B,EAAM/B,SAASkB,QAAQvrC,SAAS8iC,KAAM6I,GAAiB,EACvG3rC,SAAS8iC,KAAOwI,IAAOvO,GAAO8P,iBAAiB,mBAAoBvB,EACvE,EACAa,EAAU7qC,UAAUma,MAAQ,WACxB,IAAI2wB,EAAQ1qC,KACRA,KAAK2qC,UACL3qC,KAAK2qC,SAAU,EACf3qC,KAAK2oC,SAAW,IAAIgB,iBAAiB3pC,KAAK4qC,UAC1C5qC,KAAK6pC,UACLQ,GAAOxhC,QAAQ,SAAUtH,GAAQ,OAAO85B,GAAO8P,iBAAiB5pC,EAAMmpC,EAAME,UAAU,EAAO,GAErG,EACAH,EAAU7qC,UAAUsrC,KAAO,WACvB,IAAIR,EAAQ1qC,KACPA,KAAK2qC,UACN3qC,KAAK2oC,UAAY3oC,KAAK2oC,SAASyC,aAC/Bf,GAAOxhC,QAAQ,SAAUtH,GAAQ,OAAO85B,GAAOgQ,oBAAoB9pC,EAAMmpC,EAAME,UAAU,EAAO,GAChG5qC,KAAK2qC,SAAU,EAEvB,EACOF,CACX,KAEIa,GAAc,SAAU9rC,IACvBwqC,IAAYxqC,EAAI,GAAKgrC,GAAUzwB,UAChCiwB,IAAYxqC,IACCgrC,GAAUU,MAC3B,EE1FIK,GAAqB,WACrB,SAASA,EAAkB94B,EAAQo1B,GAC/B7nC,KAAKyS,OAASA,EACdzS,KAAK6nC,YAAcA,GAAevE,GAAyBkI,YAC3DxrC,KAAKyoC,iBAAmB,CACpB3E,WAAY,EACZC,UAAW,EAEnB,CAYA,OAXAwH,EAAkB3rC,UAAUqpC,SAAW,WACnC,IAf4Bx2B,EAexB4yB,EAAOuC,GAAiB5nC,KAAKyS,OAAQzS,KAAK6nC,aAAa,GAI3D,OAnB4Bp1B,EAgBJzS,KAAKyS,OAfzB4xB,GAAM5xB,IXaM,SAAUA,GAC9B,OAAQA,EAAOg5B,SACX,IAAK,QACD,GAAoB,UAAhBh5B,EAAO9T,KACP,MAER,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,MACD,OAAO,EAEf,OAAO,CACX,CW5BY+sC,CAAkBj5B,IACkB,WAArC2tB,iBAAiB3tB,GAAQk5B,UAcxB3rC,KAAKyoC,iBAAmBpD,GAExBrlC,KAAKyoC,iBAAiB3E,aAAeuB,EAAKvB,YACvC9jC,KAAKyoC,iBAAiB1E,YAAcsB,EAAKtB,SAIpD,EACOwH,CACX,IC7BIK,GACA,SAA8BC,EAAgBnD,GAC1C1oC,KAAK0jC,cAAgB,GACrB1jC,KAAK+oC,eAAiB,GACtB/oC,KAAKgpC,mBAAqB,GAC1BhpC,KAAK2oC,SAAWkD,EAChB7rC,KAAK0oC,SAAWA,CACpB,ECHAoD,GAAc,IAAIn9B,QAClBo9B,GAAsB,SAAU/C,EAAoBv2B,GACpD,IAAK,IAAIlT,EAAI,EAAGA,EAAIypC,EAAmBtpC,OAAQH,GAAK,EAChD,GAAIypC,EAAmBzpC,GAAGkT,SAAWA,EACjC,OAAOlT,EAGf,OAAO,CACX,EACIysC,GAA4B,WAC5B,SAASA,IACT,CA+BA,OA9BAA,EAAyBC,QAAU,SAAUJ,EAAgBnD,GACzD,IAAIwD,EAAS,IAAIN,GAAqBC,EAAgBnD,GACtDoD,GAAY7iC,IAAI4iC,EAAgBK,EACpC,EACAF,EAAyBnC,QAAU,SAAUgC,EAAgBp5B,EAAQtD,GACjE,IAAI+8B,EAASJ,GAAY7mC,IAAI4mC,GACzBM,EAAwD,IAArCD,EAAOlD,mBAAmBtpC,OAC7CqsC,GAAoBG,EAAOlD,mBAAoBv2B,GAAU,IACzD05B,GAAoB5I,GAAgBz3B,KAAKogC,GACzCA,EAAOlD,mBAAmBl9B,KAAK,IAAIy/B,GAAkB94B,EAAQtD,GAAWA,EAAQi9B,MAChFd,GAAY,GACZd,GAAUK,WAElB,EACAmB,EAAyBK,UAAY,SAAUR,EAAgBp5B,GAC3D,IAAIy5B,EAASJ,GAAY7mC,IAAI4mC,GACzB94B,EAAQg5B,GAAoBG,EAAOlD,mBAAoBv2B,GACvD65B,EAAuD,IAArCJ,EAAOlD,mBAAmBtpC,OAC5CqT,GAAS,IACTu5B,GAAmB/I,GAAgBvwB,OAAOuwB,GAAgBpjC,QAAQ+rC,GAAS,GAC3EA,EAAOlD,mBAAmBh2B,OAAOD,EAAO,GACxCu4B,IAAY,GAEpB,EACAU,EAAyBZ,WAAa,SAAUS,GAC5C,IAAInB,EAAQ1qC,KACRksC,EAASJ,GAAY7mC,IAAI4mC,GAC7BK,EAAOlD,mBAAmBnoC,QAAQgI,QAAQ,SAAU0/B,GAAM,OAAOmC,EAAM2B,UAAUR,EAAgBtD,EAAG91B,OAAS,GAC7Gy5B,EAAOxI,cAAc1wB,OAAO,EAAGk5B,EAAOxI,cAAchkC,OACxD,EACOssC,CACX,IC7CIO,GAAkB,WAClB,SAASA,EAAe7D,GACpB,GAAyB,IAArBjpC,UAAUC,OACV,MAAM,IAAIk/B,UAAU,kFAExB,GAAwB,mBAAb8J,EACP,MAAM,IAAI9J,UAAU,iGAExBoN,GAAyBC,QAAQjsC,KAAM0oC,EAC3C,CAyBA,OAxBA6D,EAAe3sC,UAAUiqC,QAAU,SAAUp3B,EAAQtD,GACjD,GAAyB,IAArB1P,UAAUC,OACV,MAAM,IAAIk/B,UAAU,6FAExB,IAAK7jB,GAAUtI,GACX,MAAM,IAAImsB,UAAU,wFAExBoN,GAAyBnC,QAAQ7pC,KAAMyS,EAAQtD,EACnD,EACAo9B,EAAe3sC,UAAUysC,UAAY,SAAU55B,GAC3C,GAAyB,IAArBhT,UAAUC,OACV,MAAM,IAAIk/B,UAAU,+FAExB,IAAK7jB,GAAUtI,GACX,MAAM,IAAImsB,UAAU,0FAExBoN,GAAyBK,UAAUrsC,KAAMyS,EAC7C,EACA85B,EAAe3sC,UAAUwrC,WAAa,WAClCY,GAAyBZ,WAAWprC,KACxC,EACAusC,EAAezkC,SAAW,WACtB,MAAO,gDACX,EACOykC,CACX,iDCnCAptC,OAAOqG,eAAegnC,GAAS,aAAc,CAC3C1pC,OAAO,IA6ET,IAtEA,IAAI2pC,EAA0B,oBAAV/L,QAAyB,uBAAuBhc,KAAKgc,OAAOsE,UAAU0H,UAEtFC,EAAY,CACdC,IAAK,SACLC,QAAS,UACTC,KAAM,UACNC,MAAO,YAGLC,EAAU,CACZ9jC,IAAK,IACL+jC,MAAO,QACPC,IAAK,OACLC,QAAS,OACTC,IAAK,UACLC,KAAM,UACNC,IAAK,SACLC,KAAM,YACNC,IAAK,SACLC,IAAK,SACLvqB,KAAM,YACNwqB,IAAKjB,EAAS,OAAS,UACvBkB,IAAK,MACLC,OAAQ,MACRC,OAAQ,QACRzqB,MAAO,aACP0qB,MAAO,IACPC,SAAU,IACVC,GAAI,UACJC,IAAK,OACLC,QAAS,QAGPC,EAAQ,CACVC,UAAW,EACXC,IAAK,EACLC,MAAO,GACPvB,MAAO,GACPF,QAAS,GACTD,IAAK,GACL2B,MAAO,GACPC,SAAU,GACVC,OAAQ,GACR,IAAK,GACLC,OAAQ,GACRC,SAAU,GACVl1B,IAAK,GACLm1B,KAAM,GACNC,UAAW,GACXC,QAAS,GACTC,WAAY,GACZC,UAAW,GACXC,OAAQ,GACRrlC,OAAQ,GACRkjC,KAAM,GACNoC,QAAS,IACTC,WAAY,IACZ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,IAAK,IACL,IAAM,KAGCnmC,EAAI,EAAGA,EAAI,GAAIA,IACtBmlC,EAAM,IAAMnlC,GAAK,IAAMA,EAOzB,SAASomC,EAASC,EAAQlgC,EAAS+5B,GAC7B/5B,KAAa,UAAWA,KAC1B+5B,EAAQ/5B,EACRA,EAAU,MAGPvO,MAAM+F,QAAQ0oC,KACjBA,EAAS,CAACA,IAGZ,IAAIC,EAAQD,EAAOhnC,IAAI,SAAU8U,GAC/B,OAAOoyB,EAAYpyB,EAAQhO,EAC/B,GACMqgC,EAAQ,SAAetvC,GACzB,OAAOovC,EAAMnd,KAAK,SAAU/f,GAC1B,OAAOq9B,EAAcr9B,EAAQlS,EACnC,EACA,EAEE,OADmB,MAATgpC,EAAgBsG,EAAQA,EAAMtG,EAE1C,CAcA,SAASqG,EAAYF,EAAQlgC,GAC3B,IAAIugC,EAAQvgC,GAAWA,EAAQugC,MAC3BC,EAAM,CAAA,EAINC,GADJP,EAASA,EAAOvT,QAAQ,KAAM,SACV/R,MAAM,KACtBrqB,EAASkwC,EAAOlwC,OAIpB,IAAK,IAAIkF,KAAK+nC,EACZgD,EAAIhD,EAAU/nC,KAAM,EAGtB,IAAIirC,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiB7nC,EAErB,IACE,IAAK,IAA2C8nC,EAAvCC,EAAYL,EAAOzsC,OAAO+sC,cAAsBL,GAA6BG,EAAQC,EAAUj/B,QAAQm/B,MAAON,GAA4B,EAAM,CACvJ,IAAI/sC,EAAQktC,EAAMltC,MAEdstC,EAAWttC,EAAM2a,SAAS,MAAQ3a,EAAMpD,OAAS,EAEjD0wC,IACFttC,EAAQA,EAAMjC,MAAM,GAAI,IAG1B,IAAIU,EAAO8uC,EAAUvtC,GACjBwtC,EAAW3D,EAAUprC,GAEV,IAAX7B,GAAiB4wC,IACfZ,EACFC,EAAIxqC,IAAM5D,EAEVouC,EAAIY,MAAQC,EAAU1tC,IAItBwtC,IACFX,EAAIW,IAAYF,GAAW,KAEnC,CACA,CAAI,MAAOK,GACPX,GAAoB,EACpBC,EAAiBU,CACrB,CAAG,QACC,KACOZ,GAA6BI,EAAUpC,QAC1CoC,EAAUpC,QAElB,CAAK,QACC,GAAIiC,EACF,MAAMC,CAEd,CACA,CAEE,OAAOJ,CACT,CAMA,SAASF,EAAcr9B,EAAQ82B,GAC7B,IAAK,IAAI/jC,KAAOiN,EAAQ,CACtB,IAAIs+B,EAAWt+B,EAAOjN,GAClBwrC,OAAS,EAEb,GAAgB,MAAZD,KAYU,OAPZC,EADU,QAARxrC,GAA8B,MAAb+jC,EAAM/jC,IAChB+jC,EAAM/jC,IAAIyrC,cACF,UAARzrC,EACa,KAAburC,GAAmC,KAAhBxH,EAAMqH,MAAe,GAAKrH,EAAMqH,MAEnDrH,EAAM/jC,MAGkB,IAAburC,IAIlBC,IAAWD,GACb,OAAO,CAEb,CAEE,OAAO,CACT,CAMA,SAASF,EAAUjvC,GAGjB,OAFAA,EAAO8uC,EAAU9uC,GACN4sC,EAAM5sC,IAASA,EAAKsvC,cAAc5rB,WAAW,EAE1D,CAEA,SAASorB,EAAU9uC,GAGjB,OAFAA,EAAOA,EAAKqvC,cACZrvC,EAAOyrC,EAAQzrC,IAASA,CAE1B,QAMAirC,GAAAsE,QAAkB1B,EAClB5C,GAAA4C,SAAmBA,EACnB5C,GAAAuE,aAjIA,SAAsB1B,EAAQnG,GAC5B,OAAOkG,EAASC,EAAQnG,EAC1B,EAgIAsD,GAAAwE,YA9HA,SAAqB3B,EAAQnG,GAC3B,OAAOkG,EAASC,EAAQ,CAAEK,OAAO,GAAQxG,EAC3C,EA6HAsD,GAAA+C,YAAsBA,EACtB/C,GAAAiD,cAAwBA,EACxBjD,GAAAgE,UAAoBA,EACpBhE,GAAA6D,UAAoBA,QC1OpB,SAASp+B,GAAgBC,EAAK/M,EAAKrC,GAYjC,OAXIqC,KAAO+M,EACT/S,OAAOqG,eAAe0M,EAAK/M,EAAK,CAC9BrC,MAAOA,EACPgD,YAAY,EACZL,cAAc,EACdO,UAAU,IAGZkM,EAAI/M,GAAOrC,EAGNoP,CACT,CAiBA,SAAS2G,GAAyB5U,EAAQ6U,GACxC,GAAc,MAAV7U,EAAgB,MAAO,CAAA,EAC3B,IACIkB,EAAK5F,EADLkT,EAjBN,SAAuCxO,EAAQ6U,GAC7C,GAAc,MAAV7U,EAAgB,MAAO,CAAA,EAC3B,IAEIkB,EAAK5F,EAFLkT,EAAS,CAAA,EACTsG,EAAa5Z,OAAOuF,KAAKT,GAG7B,IAAK1E,EAAI,EAAGA,EAAIwZ,EAAWrZ,OAAQH,IACjC4F,EAAM4T,EAAWxZ,GACbuZ,EAAS3Y,QAAQgF,IAAQ,IAC7BsN,EAAOtN,GAAOlB,EAAOkB,IAGvB,OAAOsN,CACT,CAIeuG,CAA8B/U,EAAQ6U,GAGnD,GAAI3Z,OAAOiB,sBAAuB,CAChC,IAAI6Y,EAAmB9Z,OAAOiB,sBAAsB6D,GAEpD,IAAK1E,EAAI,EAAGA,EAAI0Z,EAAiBvZ,OAAQH,IACvC4F,EAAM8T,EAAiB1Z,GACnBuZ,EAAS3Y,QAAQgF,IAAQ,GACxBhG,OAAOS,UAAUS,qBAAqBP,KAAKmE,EAAQkB,KACxDsN,EAAOtN,GAAOlB,EAAOkB,GAEzB,CAEA,OAAOsN,CACT,CAMA,IAAIw+B,GAA6BC,EAAAA,cAAc,MAK3CC,GAAiB,KACnB,IAAIv+B,EAASw+B,EAAAA,WAAWH,IAExB,IAAKr+B,EACH,MAAM,IAAIpP,MAAM,kFAGlB,OAAOoP,GAGLy+B,GAAsB1kC,SAASpG,EAAM+qC,QAAQvnB,MAAM,KAAK,GAAI,IAC5DwnB,GAA8B,oBAAdvM,WAA+C,oBAAXtE,QAA0B,mBAAmBhc,KAAKsgB,UAAUC,aAAevE,OAAO8Q,SACtIC,GAAgC,oBAAdzM,WAA6B,WAAWtgB,KAAKsgB,UAAUC,WACzEyM,GAAkC,oBAAd1M,WAA6B,UAAUtgB,KAAKsgB,UAAUC,WAC1E0M,GAAkC,oBAAd3M,WAA6B,mCAAmCtgB,KAAKsgB,UAAUC,WACnG2M,GAAiC,oBAAd5M,WAA6B,2BAA2BtgB,KAAKsgB,UAAUC,WAE1F4M,GAAsC,oBAAd7M,WAA6B,0CAA0CtgB,KAAKsgB,UAAUC,WAC9G6M,GAAiC,oBAAd9M,WAA6B,UAAUtgB,KAAKsgB,UAAUC,WAGzE8M,GAAwC,oBAAd/M,WAA6B,4CAA4CtgB,KAAKsgB,UAAUC,WAClH+M,GAA2BN,IAAmC,oBAAd1M,WAA6B,+BAA+BtgB,KAAKsgB,UAAUC,WAE3HgN,GAAyC,oBAAdjN,WAA6B,oEAAoEtgB,KAAKsgB,UAAUC,WAE3IiN,GAAoC,oBAAdlN,WAA6B,cAActgB,KAAKsgB,UAAUC,WAEhFkN,GAAwC,oBAAdnN,WAA6B,WAAWtgB,KAAKsgB,UAAUC,aAAe,cAAcvgB,KAAKsgB,UAAUC,WAI7HmN,KAAmC,oBAAX1R,aAAqD,IAApBA,OAAOpiC,eAAqE,IAAlCoiC,OAAOpiC,SAASI,eAGnH2zC,KAA6BN,KAAqBC,MAA8BH,IAC9D,oBAAfS,YAA8BA,WAAWC,YACW,mBAApDD,WAAWC,WAAW3yC,UAAU4yC,gBAMnCC,GAAgB,IAAI9jC,QACpB+jC,GAAiB,IAAI/jC,QAMrBgkC,GAAmB,IAAIhkC,QACvBikC,GAAoB,IAAIjkC,QACxBkkC,GAAgC,IAAIlkC,QACpCmkC,GAAkB,IAAInkC,QACtBokC,GAAkB,IAAIpkC,QACtBqkC,GAAc,IAAIrkC,QAClBskC,GAA2B,IAAItkC,QAK/BukC,GAAe,IAAIvkC,QACnBwkC,GAAa,IAAIxkC,QACjBykC,GAAe,IAAIzkC,QACnB0kC,GAA2B,IAAI1kC,QAK/B2kC,GAAsB,IAAI3kC,QAK1B4kC,GAA2B,IAAI5kC,QAC/B6kC,GAAoC,IAAI7kC,QACxC8kC,GAAuB,IAAI9kC,QAK3B+kC,GAA0B,IAAI/kC,QAC9BglC,GAA2B,IAAIhlC,QAC/BilC,GAA8B,IAAIjlC,QAClCklC,GAAyB,IAAIllC,QAK7BmlC,GAAqB3wC,OAAO,eAC5B4wC,GAA0B5wC,OAAO,oBAKjC6wC,GAAU1B,WAAWr+B,KAKrBggC,GAAiBnxC,GACZA,GAASA,EAAMy9B,eAAiBz9B,EAAMy9B,cAAcC,aAAe,KAMxE0T,GAAepxC,GACVqxC,GAAUrxC,IAA6B,IAAnBA,EAAMi9B,SAM/BqU,GAAetxC,GACVqxC,GAAUrxC,IAA6B,IAAnBA,EAAMi9B,SAM/BoU,GAAYrxC,IACd,IAAI49B,EAASuT,GAAenxC,GAC5B,QAAS49B,GAAU59B,aAAiB49B,EAAO5tB,MAMzCuhC,GAAiBvxC,IACnB,IAAI49B,EAAS59B,GAASA,EAAMwxC,YAAcL,GAAenxC,EAAMwxC,YAC/D,QAAS5T,GAAU59B,aAAiB49B,EAAO6T,WAMzCC,GAAY1xC,GACPqxC,GAAUrxC,IAA6B,IAAnBA,EAAMi9B,SA2D/B0U,GAA2B,CAACrjC,EAAQ2B,EAAOoZ,KAU7C,IATA,IAAIuoB,WACFA,GACEtjC,EACA4K,EAAQ04B,EAAW3hC,GACnBxT,EAAIwT,EACJ4hC,GAAe,EACfC,GAAgB,GAGbV,GAAal4B,IAAUo4B,GAAap4B,IAAsC,IAA5BA,EAAM04B,WAAWh1C,QAAgB00C,GAAap4B,IAAoD,UAA1CA,EAAM64B,aAAa,uBAC1HF,IAAgBC,IAIhBr1C,GAAKm1C,EAAWh1C,QAClBi1C,GAAe,EACfp1C,EAAIwT,EAAQ,EACZoZ,EAAY,YAIV5sB,EAAI,GACNq1C,GAAgB,EAChBr1C,EAAIwT,EAAQ,EACZoZ,EAAY,YAIdnQ,EAAQ04B,EAAWn1C,GACnBwT,EAAQxT,EACRA,GAAmB,YAAd4sB,EAA0B,GAAI,GAGrC,MAAO,CAACnQ,EAAOjJ,IAOb+hC,GAAmB,CAAC1jC,EAAQ2B,EAAOoZ,KACrC,IAAKnQ,GAASy4B,GAAyBrjC,EAAQ2B,EAAOoZ,GACtD,OAAOnQ,GASL+4B,GAAeC,IACjB,IAAI5hC,EAAO,GAEX,GAAIohC,GAAUQ,IAAYA,EAAQC,UAChC,OAAOD,EAAQC,UAGjB,GAAIb,GAAaY,GAAU,CACzB,IAAK,IAAIE,KAAat0C,MAAMJ,KAAKw0C,EAAQN,YACvCthC,GAAQ2hC,GAAaG,GAGvB,IAAIvJ,EAAUvL,iBAAiB4U,GAASG,iBAAiB,WAEzC,UAAZxJ,GAAmC,SAAZA,GAA0C,OAApBqJ,EAAQvJ,UACvDr4B,GAAQ,KAEZ,CAEA,OAAOA,GAMLgiC,GAAqB,+BAUrBC,GAAoB,CAACziC,EAAQ0iC,EAAUC,KACzC,IAAI9iC,OACFA,GACE6iC,EAEJ,GAAIlB,GAAa3hC,IAAWA,EAAOiJ,QAAQ,6BACzC,OAAO,EAGT,IAAIpd,SACFA,GACEk3C,GAAYC,UAAU7iC,GAE1B,GAAItU,EAASukC,SAASpwB,GACpB,OAAO+iC,GAAYE,WAAW9iC,EAAQH,EAAQ,CAC5CkjC,UAAU,IAId,IAAIC,EAAiBL,EAAMM,KAAKl5B,IAC9B,IAAIm5B,WACFA,EAAUC,aACVA,GACEp5B,EAEJ,IAAK,IAAItW,KAAQyvC,EACf,GAAIzvC,IAASoM,GAAUpM,EAAKw8B,SAASpwB,GACnC,OAAO,EAIX,IAAK,IAAIY,KAAS0iC,EAChB,GAAI1iC,IAAUZ,GAAUY,EAAMwvB,SAASpwB,GACrC,OAAO,IAKb,SAAKmjC,GAAkBA,IAAmBN,IAKnCD,GAAkBziC,EAAQgjC,EAAgBL,IAM/C/1C,GAAI,EAMR,MAAMw2C,GACJ,WAAA3yC,GACErD,KAAKi2C,GAAK,GAAGn1C,OAAOtB,KACtB,EAIF,IAAIg2C,GAAc,CAChBU,oBAAqBtjC,GAAU8gC,GAAwBzuC,IAAI2N,GAC3DujC,qBAAsBvjC,IACpB,IAAIwjC,EAE+D,QAAlEA,EAAwB7C,GAAyBtuC,IAAI2N,UAA+C,IAA1BwjC,GAA4CA,KAEzHC,KAAMzjC,IACJ,IAAI4vB,EAAKgT,GAAYc,UAAU1jC,EAAQA,GACnCkJ,EAAO05B,GAAYe,yBAAyB3jC,GAChDugC,GAAWlqC,IAAI2J,GAAQ,GAEnBkJ,EAAK06B,gBAAkBhU,GACzBA,EAAG6T,QAGP99B,SAAU3F,IACR,IAAIC,UACFA,GACED,EAEA6jC,EADOjB,GAAYe,yBAAyB3jC,GACxB8jC,eAEpBD,GAAgBA,EAAaE,WAAa,GAC5CF,EAAaG,kBAGX/jC,GACFkU,GAAWxO,SAAS3F,IAGxB2jC,yBAA0B3jC,IACxB,IAAI4vB,EAAKgT,GAAYc,UAAU1jC,EAAQA,GACnCkJ,EAAO0mB,EAAGtB,cAEd,OAAKplB,aAAgB+6B,UAAY/6B,aAAgBg7B,aAAoC,MAArBh7B,EAAK46B,aAC5D56B,EAGF0mB,EAAGjC,eAEZwW,eAAgB,CAACnkC,EAAQs2B,KACnB,gBAAiBA,IACnBA,EAAQA,EAAM8N,aAGhB,IACEC,QAASr0C,EACTs0C,QAASxtC,EAAC+I,OACVA,GACEy2B,EAEJ,GAAS,MAALtmC,GAAkB,MAAL8G,EACf,MAAM,IAAIlG,MAAM,kDAAkD1C,OAAOooC,IAG3E,IAqBIiO,EArBA9wC,EAAOmvC,GAAY4B,YAAYxkC,EAAQs2B,EAAMz2B,QAC7CjF,EAAOgoC,GAAY6B,SAASzkC,EAAQvM,GAIxC,GAAIixC,GAAUv8B,UAAU1U,IAAS4U,GAAOuE,OAAO5M,EAAQvM,GAAO,CAC5D,IAAIkxC,EAAO9kC,EAAOovB,wBACd2V,EAAS5kC,EAAO0M,SAASjZ,GAAQzD,EAAI20C,EAAKr0B,KAAOq0B,EAAKr0B,KAAOq0B,EAAKjW,MAAQ1+B,EAAI8G,EAAI6tC,EAAKzV,IAAMyV,EAAKzV,IAAMyV,EAAKhtB,OAAS7gB,EACtHgmB,EAAOzU,GAAO3M,MAAMsE,EAAQpF,EAAM,CACpCkiB,KAAM8nB,EAAS,QAAU,QAEvBlpC,EAAQkpC,EAASv8B,GAAO1H,OAAOX,EAAQ8c,GAAQzU,GAAOzH,MAAMZ,EAAQ8c,GAExE,GAAIphB,EAGF,OAFa2M,GAAO5B,MAAMzG,EAAQtE,EAItC,CAIA,IAAIhQ,SACFA,GACEk3C,GAAYC,UAAU7iC,GAE1B,GAAItU,EAASm5C,oBACXN,EAAW74C,EAASm5C,oBAAoB70C,EAAG8G,OACtC,CACL,IAAIgI,EAAWpT,EAASo5C,uBAAuB90C,EAAG8G,GAE9CgI,KACFylC,EAAW74C,EAASq5C,eACXC,SAASlmC,EAASmmC,WAAYnmC,EAASyB,QAChDgkC,EAASW,OAAOpmC,EAASmmC,WAAYnmC,EAASyB,QAElD,CAEA,IAAKgkC,EACH,MAAM,IAAI3zC,MAAM,kDAAkD1C,OAAOooC,IAQ3E,OAJYsM,GAAYuC,aAAanlC,EAAQukC,EAAU,CACrDa,YAAY,EACZC,eAAe,KAInBC,QAAS,CAACtlC,EAAQvM,KAChB,IAAIlB,EAAM6tC,GAAY/tC,IAAIoB,GAO1B,OALKlB,IACHA,EAAM,IAAI6wC,GACVhD,GAAY/pC,IAAI5C,EAAMlB,IAGjBA,GAETkyC,SAAU,CAACzkC,EAAQvM,KAIjB,IAHA,IAAImH,EAAO,GACPwO,EAAQ3V,IAEC,CACX,IAAI+K,EAASshC,GAAeztC,IAAI+W,GAEhC,GAAc,MAAV5K,EAAgB,CAClB,GAAI6J,GAAOC,SAASc,GAClB,OAAOxO,EAEP,KAEJ,CAEA,IAAIjO,EAAIkzC,GAAcxtC,IAAI+W,GAE1B,GAAS,MAALzc,EACF,MAGFiO,EAAK2qC,QAAQ54C,GACbyc,EAAQ5K,CACV,CAEA,MAAM,IAAI5N,MAAM,2CAA2C1C,OAAOqT,GAASC,UAAU/N,MAEvFkT,MAAO3G,IACL,IAAI4vB,EAAKgT,GAAYc,UAAU1jC,EAAQA,GACnCkJ,EAAO05B,GAAYe,yBAAyB3jC,GAChDugC,GAAWlqC,IAAI2J,GAAQ,GAEnBkJ,EAAK06B,gBAAkBhU,GACzBA,EAAGjpB,MAAM,CACP6+B,eAAe,KAIrB3C,UAAW7iC,IACT,IAAI8tB,EAASiS,GAAiB1tC,IAAI2N,GAElC,IAAK8tB,EACH,MAAM,IAAIl9B,MAAM,wDAGlB,OAAOk9B,GAETgV,WAAY,SAAoB9iC,EAAQH,GACtC,IAKI4lC,EALAlpC,EAAU1P,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,GAC9Ek2C,SACFA,GAAW,GACTxmC,EACAmpC,EAAW9C,GAAYc,UAAU1jC,EAAQA,GAM7C,IACEylC,EAAWjE,GAAa3hC,GAAUA,EAASA,EAAOwuB,aACpD,CAAE,MAAOwP,GACP,IAAKA,EAAIrH,QAAQ1vB,SAAS,mDACxB,MAAM+2B,CAEV,CAEA,QAAK4H,KAIEA,EAASE,QAAQ,yBAA2BD,GAAc3C,IAAY0C,EAASG,oBAAiE,kBAA/BH,EAASG,mBAEjIH,EAASE,QAAQ,+BAAiCD,KAAcD,EAASxD,aAAa,yBACxF,EACA4D,kBAAmB,CAAC7lC,EAAQH,IAAW0hC,GAAU1hC,IAAW+iC,GAAYE,WAAW9iC,EAAQH,EAAQ,CACjGkjC,UAAU,IAEZ+C,SAAU,CAAC9lC,EAAQyG,KACjB,IAAIC,OACFA,EAAMC,MACNA,GACEF,EACJ,OAAO4B,GAAO0D,QAAQ/L,EAAQ0G,EAAO9L,OAASyN,GAAO0D,QAAQ/L,EAAQ2G,EAAM/L,OAE7EmrC,oBAAqB,CAAC/lC,EAAQH,IAAW+iC,GAAYiD,kBAAkB7lC,EAAQH,IAAW+iC,GAAYoD,8BAA8BhmC,EAAQH,GAC5IomC,UAAW,CAACjmC,EAAQH,IAAW0hC,GAAU1hC,IAAW+iC,GAAYE,WAAW9iC,EAAQH,GACnFqmC,WAAY,CAAClmC,EAAQmmC,KACnBnmC,EAAOkmC,WAAWC,IAEpBC,mBAAoB,CAACpmC,EAAQmmC,IAASnmC,EAAOomC,mBAAmBD,GAChEE,eAAgB,CAACrmC,EAAQmmC,IAASnmC,EAAOqmC,eAAeF,GACxDG,YAAatmC,KACFwgC,GAAanuC,IAAI2N,GAE5BumC,UAAWvmC,KAAYugC,GAAWluC,IAAI2N,GACtCwmC,WAAYxmC,KAAYsgC,GAAajuC,IAAI2N,GACzCgmC,8BAA+B,CAAChmC,EAAQH,KACtC,GAAIygC,GAAajuC,IAAI2N,GAAS,OAAO,EACrC,IAAIymC,EAAY7D,GAAYqD,UAAUjmC,EAAQH,IAAW+iC,GAAY4B,YAAYxkC,EAAQH,GACzF,OAAO6kC,GAAUv8B,UAAUs+B,IAAcp+B,GAAOuE,OAAO5M,EAAQymC,IAEjEC,gBAAiB,CAAC1mC,EAAQmmC,EAAMQ,IAAgB3mC,EAAO0mC,gBAAgBP,EAAMQ,GAC7EjD,UAAW,CAAC1jC,EAAQvM,KAClB,IAAImzC,EAAiBvG,GAAyBhuC,IAAI2N,GAC9CoiC,EAAU/5B,GAAOC,SAAS7U,GAAQusC,GAAkB3tC,IAAI2N,GAAU4mC,aAAuD,EAASA,EAAev0C,IAAIuwC,GAAY0C,QAAQtlC,EAAQvM,IAErL,IAAK2uC,EACH,MAAM,IAAIxxC,MAAM,8CAA8C1C,OAAOqT,GAASC,UAAU/N,KAG1F,OAAO2uC,GAETyE,WAAY,CAAC7mC,EAAQtE,KACnB,IAEIorC,GAFCrzC,GAAQ4U,GAAO5U,KAAKuM,EAAQtE,EAAMd,MACnCg1B,EAAKgT,GAAYc,UAAU1jC,EAAQvM,GAInC4U,GAAO6F,KAAKlO,EAAQ,CACtBuL,GAAI7P,MAEJA,EAAQ,CACNd,KAAMc,EAAMd,KACZ2F,OAAQ,IAWZ,IAJA,IACImC,EAAQ1U,MAAMJ,KAAKgiC,EAAGmX,iBADX,iDAEX5/B,EAAQ,EAEHxa,EAAI,EAAGA,EAAI+V,EAAM5V,OAAQH,IAAK,CACrC,IAAI6T,EAAOkC,EAAM/V,GACby1C,EAAU5hC,EAAKshC,WAAW,GAE9B,GAAe,MAAXM,GAA0C,MAAvBA,EAAQjL,YAA/B,CAIA,IAAIrqC,OACFA,GACEs1C,EAAQjL,YACR6P,EAAOxmC,EAAKyhC,aAAa,qBAEzBp7B,EAAMM,GADe,MAAR6/B,EAAel6C,EAASiN,SAASitC,EAAM,KAIpDC,EAAWvkC,EAAM/V,EAAI,GAEzB,GAAI+O,EAAM6E,SAAWsG,GAAjBnL,MAAwBurC,GAA4CA,EAASC,aAAa,+BAAgC,CAC5H,IAAIC,EAEAC,EAAUH,EAASnF,WAAW,GAClCgF,EAAW,CAKXM,aAAmBhG,GAAUgG,EAAUH,EAA6D,QAAlDE,EAAwBF,EAAS9P,mBAAmD,IAA1BgQ,GAAoCA,EAAsBE,WAAW,UAAY,EAAI,GACjM,KACF,CAEA,GAAI3rC,EAAM6E,QAAUsG,EAAK,CAEvBigC,EAAW,CAAC1E,EADCplC,KAAKD,IAAIjQ,EAAQkQ,KAAKkuB,IAAI,EAAGxvB,EAAM6E,OAAS4G,KAEzD,KACF,CAEAA,EAAQN,CA/BR,CAgCF,CAEA,IAAKigC,EACH,MAAM,IAAIl2C,MAAM,gDAAgD1C,OAAOqT,GAASC,UAAU9F,KAG5F,OAAOorC,GAETQ,WAAY,CAACtnC,EAAQyG,KACnB,IAAIC,OACFA,EAAMC,MACNA,GACEF,EACAG,EAAa/K,GAAM+K,WAAWH,GAC9B8gC,EAAY3E,GAAYiE,WAAW7mC,EAAQ0G,GAC3C8gC,EAAW3rC,GAAMiM,YAAYrB,GAAS8gC,EAAY3E,GAAYiE,WAAW7mC,EAAQ2G,GAEjF49B,EADS3B,GAAYC,UAAU7iC,GACbtU,SAASq5C,eAC1B0C,EAAWC,GAAe9gC,EAAa4gC,EAAWD,GAClDI,EAASC,GAAahhC,EAAa2gC,EAAYC,EAKhDK,KADUrG,GAAaiG,GAAaA,EAAYA,EAAUpZ,eAC3B4T,aAAa,yBAE5C6F,KADQtG,GAAamG,GAAWA,EAAUA,EAAQtZ,eACvB4T,aAAa,yBAG5C,OAFAsC,EAASS,SAASyC,EAAWI,EAAqB,EAAIH,GACtDnD,EAASW,OAAOyC,EAASG,EAAmB,EAAIF,GACzCrD,GAETC,YAAa,CAACxkC,EAAQoiC,KACpB,IAAI2F,EAAQvG,GAAaY,GAAWA,EAAUA,EAAQ/T,cAElD0Z,IAAUA,EAAMb,aAAa,qBAC/Ba,EAAQA,EAAMpC,QAAQ,sBAGxB,IAAIlyC,EAAOs0C,EAAQ7H,GAAgB7tC,IAAI01C,GAAS,KAEhD,IAAKt0C,EACH,MAAM,IAAI7C,MAAM,8CAA8C1C,OAAO65C,IAGvE,OAAOt0C,GAETu0C,aAAc,CAAChoC,EAAQ8mC,EAAUvqC,KAC/B,IAAI6oC,WACFA,EAAUC,cACVA,GACE9oC,GACC0rC,EAAaC,GAAiB9C,EAAa0B,EArhB5BA,KACtB,IAAKrzC,EAAM8M,GAAUumC,EAGrB,GAAItF,GAAa/tC,IAASA,EAAKquC,WAAWh1C,OAAQ,CAChD,IAAI+uB,EAAStb,IAAW9M,EAAKquC,WAAWh1C,OACpCqT,EAAQ0b,EAAStb,EAAS,EAAIA,EAMlC,KALC9M,EAAM0M,GAAS0hC,GAAyBpuC,EAAM0M,EAAO0b,EAAS,WAAa,WAE5EA,EAAS1b,EAAQI,EAGVihC,GAAa/tC,IAASA,EAAKquC,WAAWh1C,QAAQ,CACnD,IAAIH,EAAIkvB,EAASpoB,EAAKquC,WAAWh1C,OAAS,EAAI,EAC9C2G,EAAOyuC,GAAiBzuC,EAAM9G,EAAGkvB,EAAS,WAAa,UACzD,CAGAtb,EAASsb,GAA8B,MAApBpoB,EAAK0jC,YAAsB1jC,EAAK0jC,YAAYrqC,OAAS,CAC1E,CAGA,MAAO,CAAC2G,EAAM8M,IA+f+C4nC,CAAkBrB,GACzEjwB,EAAaoxB,EAAYpxB,WACzBuxB,EAAW,KACX7nC,EAAS,EAEb,GAAIsW,EAAY,CACd,IAAIwxB,EAAsBC,EAEtB5C,EAAW9C,GAAYc,UAAU1jC,EAAQA,GACzCuoC,EAAoB1xB,EAAW8uB,QAAQ,4BAKvCztB,EAAWqwB,GAAqB7C,EAASzV,SAASsY,GAAqBA,EAAoB,KAC3FC,EAAW3xB,EAAW8uB,QAAQ,qBAC9BvD,EAAU,KAGd,GAAIoG,GAGF,GAFAJ,EAAWI,EAAS7C,QAAQ,4BAEd,CACZ,IACIl/B,EADSm8B,GAAYC,UAAU7iC,GAChBtU,SAASq5C,cAC5Bt+B,EAAMu+B,SAASoD,EAAU,GACzB3hC,EAAMy+B,OAAO+C,EAAaC,GAC1B,IAAIO,EAAWhiC,EAAMiiC,gBACN,IAAI16C,MAAMhB,UAAUiB,MAAMf,KAAKu7C,EAAS1B,iBAAiB,+BAAgC/4C,MAAMhB,UAAUiB,MAAMf,KAAKu7C,EAAS1B,iBAAiB,6BACpJ9wC,QAAQ25B,IAGXkP,KAAesG,GAAcxV,EAAGsX,aAAa,0BAA4BtX,EAAGuH,YAAYrqC,OAAS,GAAwB,WAAnB8iC,EAAG+Y,YACvG/Y,EAAGuH,YAAYkQ,WAAW,YAC5BzX,EAAGuH,YAAcvH,EAAGuH,YAAYlpC,MAAM,IAM1C2hC,EAAG/Y,WAAW+xB,YAAYhZ,KAO5BrvB,EAASkoC,EAAStR,YAAYrqC,OAC9Bs1C,EAAUgG,CACZ,OACK,GAAIlwB,EAAU,CAMnB,IAFA,IAAI2wB,EAAY3wB,EAAS6uB,iBAAiB,qBAEjC5mC,EAAQ,EAAGA,EAAQ0oC,EAAU/7C,OAAQqT,IAAS,CACrD,IAAI9E,EAAUwtC,EAAU1oC,GAExB,GAAIyiC,GAAYE,WAAW9iC,EAAQ3E,GAAU,CAC3CmtC,EAAWntC,EACX,KACF,CACF,CAGKmtC,GAGHJ,EAAWI,EAAS7C,QAAQ,4BAE5BplC,GADA6hC,EAAUoG,GACOrR,YAAYrqC,OAC7Bs1C,EAAQ2E,iBAAiB,2BAA2B9wC,QAAQ25B,IAC1DrvB,GAAUqvB,EAAGuH,YAAYrqC,UAN3ByT,EAAS,CASb,CAEI6hC,GAAW7hC,IAAW6hC,EAAQjL,YAAYrqC,QAE9CgyC,IAAgE,MAAlDsD,EAAQH,aAAa,0BAAqF,QAAhDoG,EAAuBjG,EAAQjL,mBAAkD,IAAzBkR,GAAmCA,EAAqBhB,WAAW,YAAcxwB,EAAWqwB,aAAa,0BAA4BnI,IAAgE,QAAjDuJ,EAAwBlG,EAAQjL,mBAAmD,IAA1BmR,GAAoCA,EAAsBz9B,SAAS,UAC9YtK,GAEJ,CAEA,GAAIu+B,KAAesJ,IAAahD,EAAY,CAC1C,IAAI3xC,EAAOojB,EAAWqwB,aAAa,mBAAqBrwB,EAAaA,EAAW8uB,QAAQ,qBAExF,GAAIlyC,GAAQmvC,GAAYE,WAAW9iC,EAAQvM,EAAM,CAC/CsvC,UAAU,IACR,CACF,IAAI+F,EAAalG,GAAY4B,YAAYxkC,EAAQvM,IAG/CmH,KAAM0F,EACNC,OAAQsC,GACNwF,GAAOlB,MAAMnH,EAAQ4iC,GAAY6B,SAASzkC,EAAQ8oC,IAMtD,OAJKr1C,EAAKs1C,cAAc,uBACtBlmC,EAAUqlC,GAGL,CACLttC,KAAM0F,EACNC,OAAQsC,EAEZ,CACF,CAEA,IAAKulC,EAAU,CACb,GAAI/C,EACF,OAAO,KAGT,MAAM,IAAIz0C,MAAM,gDAAgD1C,OAAO44C,GACzE,CAKA,IAAIL,EAAY7D,GAAY4B,YAAYxkC,EAAQooC,GAEhD,MAAO,CACLxtC,KAFSgoC,GAAY6B,SAASzkC,EAAQymC,GAGtClmC,WAGJ4kC,aAAc,CAACnlC,EAAQukC,EAAUhoC,KAC/B,IAKImlC,EACAsH,EACAC,EACAC,EACAphC,EAgGEqhC,GAzGF/D,WACFA,EAAUC,cACVA,GACE9oC,EAQJ,GAPSklC,GAAe8C,GAAYA,EAAS7C,WAAa6C,EAAS6E,eAQjE,GAAI3H,GAAe8C,GAAW,CAG5B,GAAIxF,IAAcwF,EAASR,WAAa,EAAG,CACzCkF,EAAY1E,EAAS0E,UAErB,IAAII,EAAa9E,EAAS+E,WAAW,GACjCC,EAAYhF,EAAS+E,WAAW/E,EAASR,WAAa,GAE1D,GAAIkF,aAAqBO,qBAAuBH,EAAWD,0BAA0BI,qBAAuBD,EAAUH,0BAA0BI,oBAAqB,CAEnK,SAASC,EAAgBjkC,GACvB,OAAIA,EAAQkkC,kBAAoB,EACvBD,EAAgBjkC,EAAQ9T,SAAS,IAEjC8T,CAEX,CAEA,IAAImkC,EAAeN,EAAWD,eAC1BQ,EAAcL,EAAUH,eAExBS,EAAYJ,EAAgBE,EAAaj4C,SAAS23C,EAAW3B,cAC7DoC,EAAWL,EAAgBG,EAAYl4C,SAAS63C,EAAU7B,cAE9DwB,EAAc,EAGZxH,EADEoI,EAAShI,WAAWh1C,OAAS,EAClBg9C,EAAShI,WAAW,GAEpBgI,EAIbb,EADEY,EAAU/H,WAAWh1C,OAAS,EACpB+8C,EAAU/H,WAAW,GAErB+H,EAIZb,EADEc,aAAoBC,YACPD,EAASE,UAAUl9C,OAGnB,CAEnB,MAGMu8C,EAAWD,iBAAmBH,GAChCvH,EAAa6H,EAAUU,aACvBjB,EAAeO,EAAU3B,UACzBsB,EAAcG,EAAW3B,cAGzBhG,EAAa2H,EAAWD,eACxBJ,EAAeK,EAAWzB,UAC1BsB,EAAcK,EAAU7B,YAG9B,MACEhG,EAAa6C,EAAS7C,WACtBsH,EAAezE,EAASyE,aACxBC,EAAY1E,EAAS0E,UACrBC,EAAc3E,EAAS2E,YASvBphC,EADEo3B,IA5sBQzrC,KAGlB,IAFA,IAAI+K,EAAS/K,GAAQA,EAAKojB,WAEnBrY,GAAQ,CACb,GAA0B,wBAAtBA,EAAOtJ,WACT,OAAO,EAGTsJ,EAASA,EAAOqY,UAClB,CAEA,OAAO,GAisBgBqzB,CAAcxI,IAAe3C,GAC9BwF,EAAS7C,aAAe6C,EAAS0E,WAAa1E,EAASyE,eAAiBzE,EAAS2E,YAEjF3E,EAASz8B,WAE3B,MACE45B,EAAa6C,EAAS6E,eACtBJ,EAAezE,EAASmD,YACxBuB,EAAY1E,EAAS0F,aACrBf,EAAc3E,EAASqD,UACvB9/B,EAAcy8B,EAAS4F,UAI3B,GAAkB,MAAdzI,GAAmC,MAAbuH,GAAqC,MAAhBD,GAAuC,MAAfE,EACrE,MAAM,IAAIt4C,MAAM,gDAAgD1C,OAAOq2C,IAMrE,iBAAkB0E,GAA2D,UAA9CA,EAAUhH,aAAa,oBAAgF,SAA9CgH,EAAUhH,aAAa,qBAGjHgH,EAAYvH,EACZwH,GAAoE,QAApDC,EAAwBzH,EAAWvK,mBAAmD,IAA1BgS,OAAmC,EAASA,EAAsBr8C,SAAW,GAG3J,IAAI4Z,EAASk8B,GAAYoF,aAAahoC,EAAQ,CAAC0hC,EAAYsH,GAAe,CACxE5D,aACAC,kBAGF,IAAK3+B,EACH,OAAO,KAGT,IAAIC,EAAQmB,EAAcpB,EAASk8B,GAAYoF,aAAahoC,EAAQ,CAACipC,EAAWC,GAAc,CAC5F9D,aACAC,kBAGF,IAAK1+B,EACH,OAAO,KAGT,IAAIF,EAAQ,CACVC,OAAQA,EACRC,MAAOA,GAeT,OATI9K,GAAMkM,WAAWtB,IAAU5K,GAAMmM,UAAUvB,IAAU+6B,GAAayH,IAAc5gC,GAAO6F,KAAKlO,EAAQ,CACtGuL,GAAI9E,EAAME,MACV+Q,KAAM,cAENjR,EAAQ4B,GAAO4F,YAAYjO,EAAQyG,EAAO,CACxCuN,OAAO,KAIJvN,IASX,SAAS2jC,GAAgBpqC,EAAQqqC,GAC/B,IAAIzvC,KACFA,EAAI0vC,KACJA,GACED,EAEJ,IAAKhiC,GAAO0D,QAAQ/L,EAAQpF,GAC1B,OAAO,EAGT,IAAInH,EAAOyM,GAAK7N,IAAI2N,EAAQpF,GAE5B,IAAK2vC,GAAOjpC,OAAO7N,GACjB,OAAO,EAGT,GAAI62C,EAAKnjC,QAAU1T,EAAK+M,KAAK1T,QAA+B,IAArBw9C,EAAK9pC,KAAK1T,OAC/C,OAAO2G,EAAK+M,KAAKvS,MAAMq8C,EAAKnjC,MAAOmjC,EAAKnjC,MAAQmjC,EAAK9pC,KAAK1T,UAAYw9C,EAAK9pC,KAG7E,IAAIgqC,EAAWjvC,GAAK6C,KAAKxD,GAEzB,IAAKyN,GAAO0D,QAAQ/L,EAAQwqC,GAC1B,OAAO,EAGT,IAAIC,EAAWvqC,GAAK7N,IAAI2N,EAAQwqC,GAChC,OAAOD,GAAOjpC,OAAOmpC,IAAaA,EAASjqC,KAAK6mC,WAAWiD,EAAK9pC,KAClE,CACA,SAASkqC,GAAgBlqC,GACvB,IAAK,IAAImY,EAAO9rB,UAAUC,OAAQ69C,EAAQ,IAAI38C,MAAM2qB,EAAO,EAAIA,EAAO,EAAI,GAAI7X,EAAO,EAAGA,EAAO6X,EAAM7X,IACnG6pC,EAAM7pC,EAAO,GAAKjU,UAAUiU,GAG9B,OAAO6pC,EAAMC,OAAO,CAACpqC,EAAM8pC,IAAS9pC,EAAKvS,MAAM,EAAGq8C,EAAKnjC,OAASmjC,EAAK9pC,KAAOA,EAAKvS,MAAMq8C,EAAKzjC,KAAMrG,EACpG,CA8BA,SAASqqC,GAAoBC,EAAYR,GACvC,IAAInjC,MACFA,EAAKN,IACLA,EAAGrG,KACHA,GACE8pC,EACAtsB,EAAc8sB,EAAW78C,MAAMkZ,EAAON,GACtCkkC,EAnCN,SAAmC96B,EAAKrT,GAGtC,IAFA,IAAI9P,EAASkQ,KAAKD,IAAIkT,EAAInjB,OAAQ8P,EAAQ9P,QAEjCH,EAAI,EAAGA,EAAIG,EAAQH,IAC1B,GAAIsjB,EAAIkC,OAAOxlB,KAAOiQ,EAAQuV,OAAOxlB,GACnC,OAAOA,EAIX,OAAOG,CACT,CAyBqBk+C,CAA0BhtB,EAAaxd,GAEtDyqC,EAzBN,SAAmCh7B,EAAKrT,EAASsuB,GAG/C,IAFA,IAAIp+B,EAASkQ,KAAKD,IAAIkT,EAAInjB,OAAQ8P,EAAQ9P,OAAQo+B,GAEzCv+B,EAAI,EAAGA,EAAIG,EAAQH,IAC1B,GAAIsjB,EAAIkC,OAAOlC,EAAInjB,OAASH,EAAI,KAAOiQ,EAAQuV,OAAOvV,EAAQ9P,OAASH,EAAI,GACzE,OAAOA,EAIX,OAAOG,CACT,CAeqBo+C,CAA0BltB,EAAaxd,EADhDxD,KAAKD,IAAIihB,EAAYlxB,OAASi+C,EAAcvqC,EAAK1T,OAASi+C,IAEhEI,EAAa,CACfhkC,MAAOA,EAAQ4jC,EACflkC,IAAKA,EAAMokC,EACXzqC,KAAMA,EAAKvS,MAAM88C,EAAcvqC,EAAK1T,OAASm+C,IAG/C,OAAIE,EAAWhkC,QAAUgkC,EAAWtkC,KAAkC,IAA3BskC,EAAW3qC,KAAK1T,OAClD,KAGFq+C,CACT,CAuBA,SAASC,GAAYf,GACnB,IAAIzvC,KACFA,EAAI0vC,KACJA,GACED,EACJ,MAAO,CACL3jC,OAAQ,CACN9L,OACA2F,OAAQ+pC,EAAKnjC,OAEfR,MAAO,CACL/L,OACA2F,OAAQ+pC,EAAKzjC,KAGnB,CAQA,SAASwkC,GAAerrC,EAAQtE,GAC9B,IAAId,KACFA,EAAI2F,OACJA,GACE7E,EAEJ,IAAK2M,GAAO0D,QAAQ/L,EAAQpF,GAC1B,OAAO,KAGT,IAAI8F,EAAOR,GAAK7N,IAAI2N,EAAQpF,GAE5B,IAAK2vC,GAAOjpC,OAAOZ,GACjB,OAAO,KAGT,IAAI4qC,EAAcjjC,GAAOgD,MAAMrL,EAAQ,CACrC8T,MAAOlnB,GAAK83C,GAAUv8B,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,GAC7D2e,GAAI3Q,IAGN,IAAK0wC,EACH,OAAO,KAGT,KAAO/qC,EAASG,EAAKF,KAAK1T,QAAQ,CAChC,IAAIqc,EAAQd,GAAOjK,KAAK4B,EAAQ,CAC9BuL,GAAI3Q,EACJkZ,MAAOy2B,GAAOjpC,SAGhB,IAAK6H,IAAU5N,GAAKwC,aAAaoL,EAAM,GAAImiC,EAAY,IACrD,OAAO,KAGT/qC,GAAUG,EAAKF,KAAK1T,OACpB4T,EAAOyI,EAAM,GACbvO,EAAOuO,EAAM,EACf,CAEA,MAAO,CACLvO,OACA2F,SAEJ,CAKA,SAASgrC,GAAevrC,EAAQyG,GAC9B,IAAIC,EAAS2kC,GAAerrC,EAAQyG,EAAMC,QAE1C,IAAKA,EACH,OAAO,KAGT,GAAI7K,GAAMiM,YAAYrB,GACpB,MAAO,CACLC,SACAC,MAAOD,GAIX,IAAIC,EAAQ0kC,GAAerrC,EAAQyG,EAAME,OAEzC,OAAKA,EAIE,CACLD,SACAC,SALO,IAOX,CACA,SAAS6kC,GAAsBxrC,EAAQtE,EAAOb,GAC5C,IAAI4wC,EAAe3K,GAAwBzuC,IAAI2N,GAC3CqqC,EAAWoB,aAAmD,EAASA,EAAaxI,KAAKl5B,IAC3F,IAAInP,KACFA,GACEmP,EACJ,OAAOxO,GAAK8B,OAAOzC,EAAMc,EAAMd,QAGjC,IAAKyvC,GAAY3uC,EAAM6E,QAAU8pC,EAASC,KAAKnjC,MAC7C,OAAOxL,GAAMP,UAAUM,EAAOb,EAAI,CAChCS,SAAU,aAId,IAAIgvC,KACFA,GACED,EAGJ,GAAI3uC,EAAM6E,QAAU+pC,EAAKnjC,MAAQmjC,EAAK9pC,KAAK1T,OAAQ,CACjD,IAAI4+C,EAAU,CACZ9wC,KAAMc,EAAMd,KACZ2F,OAAQ+pC,EAAKnjC,OAGXwkC,EAAehwC,GAAMP,UAAUswC,EAAS7wC,EAAI,CAC9CS,SAAU,aAGZ,OAAKqwC,EAIE,CACL/wC,KAAM+wC,EAAa/wC,KACnB2F,OAAQorC,EAAaprC,OAAS7E,EAAM6E,OAAS+pC,EAAKnjC,OAL3C,IAOX,CAGA,IAAIT,EAAS,CACX9L,KAAMc,EAAMd,KACZ2F,OAAQ7E,EAAM6E,OAAS+pC,EAAK9pC,KAAK1T,OAASw9C,EAAKzjC,IAAMyjC,EAAKnjC,OAExDykC,EAAcjwC,GAAMP,UAAUsL,EAAQ7L,EAAI,CAC5CS,SAAU,aAGZ,OAAKswC,EAIW,eAAZ/wC,EAAG9O,MAAyBwP,GAAK8B,OAAOxC,EAAGD,KAAMc,EAAMd,OAAS8L,EAAOnG,OAAS1F,EAAGiE,UAAYwrC,EAAKnjC,MAAQtM,EAAGiE,SAC1G8sC,EAGF,CACLhxC,KAAMgxC,EAAYhxC,KAClB2F,OAAQqrC,EAAYrrC,OAAS+pC,EAAK9pC,KAAK1T,OAASw9C,EAAKzjC,IAAMyjC,EAAKnjC,OATzD,IAWX,CACA,SAAS0kC,GAAsB7rC,EAAQyG,EAAO5L,GAC5C,IAAI6L,EAAS8kC,GAAsBxrC,EAAQyG,EAAMC,OAAQ7L,GAEzD,IAAK6L,EACH,OAAO,KAGT,GAAI7K,GAAMiM,YAAYrB,GACpB,MAAO,CACLC,SACAC,MAAOD,GAIX,IAAIC,EAAQ6kC,GAAsBxrC,EAAQyG,EAAME,MAAO9L,GAEvD,OAAK8L,EAIE,CACLD,SACAC,SALO,IAOX,CA2IA,SAASuO,GAAU1V,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAASqjB,GAAgBtV,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAKuoB,GAAU3oB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmB6jB,GAAU3oB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAY3hB,SAASisC,GAA0B/hC,GACjC,IAAI/J,OACFA,EAAM+rC,6BACNA,EAA4BC,qBAC5BA,GACEjiC,EACAkiC,GAAW,EACXC,EAA0B,KAC1BC,EAAiB,KACjBC,EAAkB,KAClBC,EAAY,EACZC,GAAqB,EAErBC,EAAwB,KAC1B,IAAIC,EAAmBxL,GAA4B3uC,IAAI2N,GAGvD,GAFAghC,GAA4BhqC,OAAOgJ,GAE/BwsC,EAAkB,CACpB,IAAIvsC,UACFA,GACED,EACAmrC,EAAaI,GAAevrC,EAAQwsC,IAEpCrB,GAAgBlrC,GAAcpE,GAAMwB,OAAO8tC,EAAYlrC,IACzDkU,GAAWtO,OAAO7F,EAAQmrC,EAE9B,GA4BEne,EAAQ,KAWV,GAVImf,IACFrf,aAAaqf,GACbA,EAAiB,MAGfC,IACFtf,aAAasf,GACbA,EAAkB,MAGfK,KAAsBC,IAA3B,CAKKT,IACHA,GAAW,EACXzf,WAAW,IAAMyf,GAAW,IAG1BS,MACFT,EAAW,UAGb,IAAIU,EAAe3sC,EAAOC,WAAaoI,GAAOyF,SAAS9N,EAAQA,EAAOC,UAAW,CAC/E3E,SAAU,YAEZulC,GAAqBxqC,IAAI2J,EAAQA,EAAOiN,OACzB8zB,GAAyB1uC,IAAI2N,GAAS8gC,GAAwBzuC,IAAI2N,GAIjF,IAHA,IACIsqC,EADAsC,EAA0BH,IAGvBnC,EAAyE,QAAjEuC,EAAwB/L,GAAwBzuC,IAAI2N,UAA+C,IAA1B6sC,OAAmC,EAASA,EAAsB,IAAI,CAC5J,IAAIA,EAAuBC,EAEvBC,EAAenM,GAAkCvuC,IAAI2N,QAEpC1K,IAAjBy3C,IACFnM,GAAkC5pC,OAAOgJ,GACzCA,EAAOiN,MAAQ8/B,GAGbA,IAAuC,IAAvBT,IAClBA,EAAqB,MAGvB,IAAI7lC,EAAQ2kC,GAAYd,GAEnBtqC,EAAOC,WAAcpE,GAAMwB,OAAO2C,EAAOC,UAAWwG,IACvD0N,GAAWtO,OAAO7F,EAAQyG,GAGxB6jC,EAAKA,KAAK9pC,KACZ6H,GAAOgE,WAAWrM,EAAQsqC,EAAKA,KAAK9pC,MAEpC6H,GAAOsD,eAAe3L,GAKxB8gC,GAAwBzqC,IAAI2J,EAA2E,QAAlE8sC,EAAyBhM,GAAwBzuC,IAAI2N,UAAgD,IAA3B8sC,OAAoC,EAASA,EAAuB/6C,OAAO8mB,IACxL,IAAIwqB,GACFA,GACExqB,EACJ,OAAOwqB,IAAOiH,EAAKjH,MAGhB+G,GAAgBpqC,EAAQsqC,KAC3BsC,GAA0B,EAC1B7L,GAAyB/pC,OAAOgJ,GAChC6gC,GAAqB7pC,OAAOgJ,GAC5BisC,EAAW,SAGXjL,GAA4BhqC,OAAOgJ,GACnC+rC,EAA6Bhf,SAC7Bif,EAAqBjf,SACrB4f,SAA4DA,EAAanxC,QAE7E,CAEA,IAAIyE,EAAY0sC,aAAmD,EAASA,EAAanxC,QAMzF,IAJIyE,GAAc+gC,GAA4B3uC,IAAI2N,IAAaA,EAAOC,WAAcpE,GAAMwB,OAAO4C,EAAWD,EAAOC,YACjHkU,GAAWtO,OAAO7F,EAAQC,GAGxBysC,IAjHc,MAClB,IAAIM,EAASjM,GAAyB1uC,IAAI2N,GAG1C,GAFA+gC,GAAyB/pC,OAAOgJ,GAE3BgtC,EAAL,CAIA,GAAIA,EAAOzhC,GAAI,CACb,IAAI1L,EAASlE,GAAM2L,QAAQ0lC,EAAOzhC,IAAM8/B,GAAerrC,EAAQgtC,EAAOzhC,IAAMggC,GAAevrC,EAAQgtC,EAAOzhC,IAE1G,IAAK1L,EACH,OAGF,IAAIotC,EAAe5kC,GAAO5B,MAAMzG,EAAQH,GAEnCG,EAAOC,WAAcpE,GAAMwB,OAAO2C,EAAOC,UAAWgtC,IACvD94B,GAAWtO,OAAO7F,EAAQH,EAE9B,CAEAmtC,EAAO9U,KAhBP,GA4GEgV,OADF,CAQIN,GACFb,IAGFA,EAA6B/e,QAC7Bgf,EAAqBhf,QACrBuf,IACA,IAAIY,EAAYtM,GAAqBxuC,IAAI2N,GACzC6gC,GAAqB7pC,OAAOgJ,QAEV1K,IAAd63C,IACFntC,EAAOiN,MAAQkgC,EACfntC,EAAO8M,WAjBT,CA7EA,MAFEy/B,KAwHAa,EAA8B,WAChC,IAAIC,EAAYxgD,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,IAAmBA,UAAU,GAC3EygD,EAAqBrN,GAA8B5tC,IAAI2N,GAEtDstC,IAIDb,KAAqBY,EACvBC,EAAmBzhD,MAAMktC,QAAU,OAIrCuU,EAAmBzhD,MAAM0hD,eAAe,WAC1C,EAEIC,EAAY,CAAC5yC,EAAM0vC,KACrB,IAAImD,EACAhC,EAAkF,QAAlEgC,EAAyB3M,GAAwBzuC,IAAI2N,UAAgD,IAA3BytC,EAAoCA,EAAyB,GAC3J3M,GAAwBzqC,IAAI2J,EAAQyrC,GACpC,IAAI5rC,EAASK,GAAKQ,KAAKV,EAAQpF,GAC3B8yC,EAAMjC,EAAa93B,UAAUg6B,GAAUpyC,GAAK8B,OAAOswC,EAAO/yC,KAAMA,IAEpE,GAAI8yC,EAAM,EAYR,OAXiB7C,GAAoBhrC,EAAOW,KAAM8pC,IAGhDmB,EAAavyC,KAAK,CAChB0B,OACA0vC,OACAjH,GAAIgJ,WAIRe,IAIF,IAAIQ,EAjkBR,SAA0B9C,EAAY7yC,EAAGd,GACvC,IAAIgQ,EAAQnK,KAAKD,IAAI9E,EAAEkP,MAAOhQ,EAAEgQ,OAC5B0mC,EAAU7wC,KAAKkuB,IAAI,EAAGluB,KAAKD,IAAI9E,EAAEkP,MAAQlP,EAAEuI,KAAK1T,OAAQqK,EAAE0P,KAAO1P,EAAEgQ,OACnE2mC,EAAUpD,GAAgBI,EAAY7yC,EAAGd,GACzC42C,EAAW/wC,KAAKkuB,IAAI/zB,EAAEgQ,MAAQhQ,EAAEqJ,KAAK1T,OAAQmL,EAAEkP,MAAQlP,EAAEuI,KAAK1T,QAAUmL,EAAEkP,MAAQlP,EAAEuI,KAAK1T,OAASqK,EAAEgQ,MAAQhQ,EAAEqJ,KAAK1T,OAAS,GAAK+gD,GACjIrtC,EAAOstC,EAAQ7/C,MAAMkZ,EAAO4mC,GAEhC,OAAOlD,GAAoBC,EAAY,CACrC3jC,QACAN,IAHQ7J,KAAKkuB,IAAIjzB,EAAE4O,IAAK1P,EAAE0P,IAAM5O,EAAEuI,KAAK1T,QAAUmL,EAAE4O,IAAM5O,EAAEkP,QAI3D3G,QAEJ,CAqjBiBwtC,CAAiBnuC,EAAOW,KAAMirC,EAAaiC,GAAKpD,KAAMA,GAEnE,IAAKsD,EAGH,OAFAnC,EAAarrC,OAAOstC,EAAK,QACzBN,IAIF3B,EAAaiC,GAAOv4B,GAAgBA,GAAgB,CAAA,EAAIs2B,EAAaiC,IAAO,GAAI,CAC9EpD,KAAMsD,KAINK,EAAiB,SAAwB/V,GAC3C,IAAI3sB,GACFA,GACE1e,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EACxEy/C,GAAqB,EACrBtL,GAA4BhqC,OAAOgJ,GACnC+rC,EAA6Bhf,SAC7Bif,EAAqBjf,SAEjB2f,KACF1f,IAGF+T,GAAyB1qC,IAAI2J,EAAQ,CACnCuL,KACA2sB,QAKFkU,EAAkB5f,WAAWQ,EAC/B,EA0WI0f,EAAmB,MACZ3L,GAAyB1uC,IAAI2N,GAGpCysC,EAAkB,KACpB,IAAIyB,EAEJ,QAA6E,QAAlEA,EAAyBpN,GAAwBzuC,IAAI2N,UAAgD,IAA3BkuC,IAAqCA,EAAuBphD,SAW/IqhD,EAAmB1nC,IACrBu6B,GAA4B3qC,IAAI2J,EAAQyG,GAEpC0lC,IACFrf,aAAaqf,GACbA,EAAiB,MAGnB,IAAIlsC,UACFA,GACED,EAEJ,GAAKyG,EAAL,CAIA,IAAI2nC,GAAenuC,IAAc1E,GAAK8B,OAAO4C,EAAUyG,OAAO9L,KAAM6L,EAAMC,OAAO9L,MAC7EyzC,GAAqBpuC,IAAc1E,GAAK8B,OAAO4C,EAAUyG,OAAO9L,KAAK3M,MAAM,GAAG,GAAKwY,EAAMC,OAAO9L,KAAK3M,MAAM,GAAG,KAE9GmgD,GAAe9B,GAAsB+B,KACvC/B,GAAqB,IAGnB8B,GAAe3B,OACjBN,EAAiB3f,WAAWQ,EA7pBhB,KAmpBd,GAgCEshB,EAAgB,KACb5B,MACHN,EAAkB5f,WAAWQ,KAkBjC,MAAO,CACLA,QACAshB,gBACA7B,kBACAC,mBACA6B,kBA/EsB,IACf7B,KAAsBD,IA+E7B+B,WA5Ee,IACRvC,EA4EPkC,mBACAM,qBAliByBC,IACrBxC,GACFpf,aAAaof,GAGfA,EAA0B1f,WAAW,KACnCgU,GAAanqC,IAAI2J,GAAQ,GACzBgtB,KAtLc,KAktBhB2hB,uBAxhB2BD,IAC3BlO,GAAanqC,IAAI2J,GAAQ,GAErBksC,IACFpf,aAAaof,GACbA,EAA0B,OAohB5B0C,qBAtcyBtY,IACzB,IAAIuY,EAEA1C,IACFrf,aAAaqf,GACbA,EAAiB,MAGnB,IACE2C,UAAW/iD,GACTuqC,EACA8U,EAAc,KACdjF,EAAO7P,EAAMyY,cAAgBzY,EAAM6P,WAAQ7wC,GAEpB,IAAvBg3C,GAAyC,eAATvgD,GAAkC,0BAATA,IAC3DugD,GAAqB,GAGvB,IAAK0C,GAAqB1Y,EAAMsJ,kBAE5BoP,IACF5D,EAAcxI,GAAYuC,aAAanlC,EAAQgvC,EAAmB,CAChE5J,YAAY,EACZC,eAAe,KAMnB,IACIxB,EADSjB,GAAYC,UAAU7iC,GACT8jC,eAY1B,IAVKsH,GAAevH,IAClBmL,EAAoBnL,EACpBuH,EAAcxI,GAAYuC,aAAanlC,EAAQ6jC,EAAc,CAC3DuB,YAAY,EACZC,eAAe,KAInB+F,EAAgD,QAAjCyD,EAAgBzD,SAA2C,IAAlByD,EAA2BA,EAAgB7uC,EAAOC,UAE1G,CASA,IAzTiB/P,EAyTb++C,GAAe,EAEnB,GAAIljD,EAAKs7C,WAAW,UAAW,CAC7B,GAAIxrC,GAAMkM,WAAWqjC,GAAc,CACjC,IAAK8D,EAAQ/zB,GAAQtf,GAAM2K,MAAM4kC,GAIjC,GAFYlrC,GAAKQ,KAAKV,EAAQkvC,EAAOt0C,MAE3B4F,KAAK1T,SAAWoiD,EAAO3uC,QAA0B,IAAhB4a,EAAK5a,OAAc,CAC5D,IAAInC,EAAOiK,GAAOjK,KAAK4B,EAAQ,CAC7BuL,GAAI2jC,EAAOt0C,KACXkZ,MAAOy2B,GAAOjpC,SAGZlD,GAAQ7C,GAAK8B,OAAOe,EAAK,GAAI+c,EAAKvgB,QACpCwwC,EAAc,CACZ1kC,OAAQyU,EACRxU,MAAOwU,GAGb,CACF,CAEA,IAAI5B,EAAYxtB,EAAK8e,SAAS,YAAc,WAAa,WACpD1D,EAAON,GAAOhL,GAAM2K,MAAM4kC,IAC1B1qC,EAAM9F,GAAQyN,GAAO3H,KAAKV,EAAQmH,EAAMvM,MACzC0vC,EAAO,CACT9pC,KAAM,GACN2G,MAAOA,EAAM5G,OACbsG,IAAKA,EAAItG,QAEPkrC,EAAe3K,GAAwBzuC,IAAI2N,GAC3CmvC,EAAuB1D,aAAmD,EAASA,EAAaxI,KAAK0K,GAAUpyC,GAAK8B,OAAOswC,EAAO/yC,KAAMA,IACxI+vC,EAAQwE,EAAuB,CAACA,EAAqB7E,KAAMA,GAAQ,CAACA,GAUxE,GAPoB,IAFTI,GAAgBhqC,EAAKF,QAASmqC,GAEhC79C,SAIPmiD,GAAe,GAGbpzC,GAAMkM,WAAWqjC,GAAc,CACjC,GAAI6D,GAAgB1zC,GAAK8B,OAAO+tC,EAAY1kC,OAAO9L,KAAMwwC,EAAYzkC,MAAM/L,MAAO,CAChF,IAAIc,EAAQ,CACVd,KAAMwwC,EAAY1kC,OAAO9L,KACzB2F,OAAQ4G,EAAM5G,QAEZkG,EAAQ4B,GAAO5B,MAAMzG,EAAQtE,EAAOA,GAExC,OADAyyC,EAAiB1nC,GACV+mC,EAAUpC,EAAY1kC,OAAO9L,KAAM,CACxC4F,KAAM,GACNqG,IAAKA,EAAItG,OACT4G,MAAOA,EAAM5G,QAEjB,CAEA,OAAO0tC,EAAe,IAAM5lC,GAAOsD,eAAe3L,EAAQ,CACxDuZ,cACE,CACFhO,GAAI6/B,GAER,CACF,CAEA,OAAQr/C,GACN,IAAK,sBACL,IAAK,cACL,IAAK,eAED,OAAOkiD,EAAe,IAAM5lC,GAAOsD,eAAe3L,GAAS,CACzDuL,GAAI6/B,IAIV,IAAK,gBACL,IAAK,uBAED,IAAI1kC,OACFA,GACE0kC,EAEJ,GAAI6D,GAAgBpzC,GAAMiM,YAAYsjC,GAAc,CAClD,IAAIgE,EAAalvC,GAAKQ,KAAKV,EAAQ0G,EAAO9L,MAE1C,GAAI8L,EAAOnG,OAAS6uC,EAAW5uC,KAAK1T,OAClC,OAAO0gD,EAAU9mC,EAAO9L,KAAM,CAC5B4F,KAAM,GACN2G,MAAOT,EAAOnG,OACdsG,IAAKH,EAAOnG,OAAS,GAG3B,CAEA,OAAO0tC,EAAe,IAAM5lC,GAAOqD,cAAc1L,GAAS,CACxDuL,GAAI6/B,IAIV,IAAK,wBAED,IAAIiE,GAGF3oC,OAAQglC,GACNN,EAIAkE,EAAkB7N,GAAeuN,GAAqBA,EAAkBlnC,cAA8D,QAA5CunC,EAAqBL,SAAsD,IAAvBK,IAAiCA,EAAmBlF,WAEtM,OAAI8E,GAAgBK,GAAmBzzC,GAAMiM,YAAYsjC,IAAgBM,EAAQnrC,OAAS,EACjFitC,EAAU9B,EAAQ9wC,KAAM,CAC7B4F,KAAM,GACN2G,MAAOukC,EAAQnrC,OAAS,EACxBsG,IAAK6kC,EAAQnrC,SAIV0tC,EAAe,IAAM5lC,GAAOmD,eAAexL,GAAS,CACzDuL,GAAI6/B,IAIV,IAAK,uBAED,OAAO6C,EAAe,KACpB5lC,GAAOmD,eAAexL,EAAQ,CAC5ByL,KAAM,SAERpD,GAAOqD,cAAc1L,EAAQ,CAC3ByL,KAAM,UAEP,CACDF,GAAI6/B,IAIV,IAAK,yBAED,OAAO6C,EAAe,IAAM5lC,GAAOmD,eAAexL,EAAQ,CACxDyL,KAAM,UACJ,CACFF,GAAI6/B,IAIV,IAAK,yBAED,OAAO6C,EAAe,IAAM5lC,GAAOmD,eAAexL,EAAQ,CACxDyL,KAAM,SACJ,CACFF,GAAI6/B,IAIV,IAAK,wBAED,OAAO6C,EAAe,IAAM5lC,GAAOqD,cAAc1L,EAAQ,CACvDyL,KAAM,UACJ,CACFF,GAAI6/B,IAIV,IAAK,wBAED,OAAO6C,EAAe,IAAM5lC,GAAOqD,cAAc1L,EAAQ,CACvDyL,KAAM,SACJ,CACFF,GAAI6/B,IAIV,IAAK,qBAED,OAAO6C,EAAe,IAAM5lC,GAAOmD,eAAexL,EAAQ,CACxDyL,KAAM,SACJ,CACFF,GAAI6/B,IAIV,IAAK,oBAED,OAAO6C,EAAe,IAAM5lC,GAAOqD,cAAc1L,EAAQ,CACvDyL,KAAM,SACJ,CACFF,GAAI6/B,IAIV,IAAK,kBAED,OAAO6C,EAAe,IAAM5lC,GAAO+D,gBAAgBpM,GAAS,CAC1DuL,GAAI6/B,IAIV,IAAK,kBAED,OAAO6C,EAAe,IAAM5lC,GAAO4D,YAAYjM,GAAS,CACtDuL,GAAI6/B,IAIV,IAAK,wBACL,IAAK,wBACL,IAAK,wBACL,IAAK,iBACL,IAAK,kBACL,IAAK,iBACL,IAAK,wBACL,IAAK,aAED,GAjhB+F,kBAA1El7C,OAAVA,EAihBQi2C,QAjhBuC,EAASj2C,EAAMO,YAAY9B,MAkhBnF,OAAOs/C,EAAe,IAAMrL,GAAYsD,WAAWlmC,EAAQmmC,GAAO,CAChE56B,GAAI6/B,IAIR,IAAItoC,EAAQqjC,QAAmCA,EAAO,GAiBtD,GAbIvF,GAAkCvuC,IAAI2N,KACxC8C,EAAQA,EAAMomB,QAAQ,SAAU,KAMrB,eAATn9B,GAAyB,YAAY+lB,KAAKhP,KAC5CA,EAAQA,EAAM7U,MAAM,GAAG,IAKrB6U,EAAMgE,SAAS,MACjB,OAAOmnC,EAAe,KACpB,IAAIsB,EAAQzsC,EAAMqU,MAAM,MAExBo4B,EAAMt5C,QAAQ,CAACu5C,EAAM7iD,KACf6iD,GACFnnC,GAAOgE,WAAWrM,EAAQwvC,GAGxB7iD,IAAM4iD,EAAMziD,OAAS,GACvBub,GAAO+D,gBAAgBpM,MAG1B,CACDuL,GAAI6/B,IAIR,GAAI7vC,GAAK8B,OAAO+tC,EAAY1kC,OAAO9L,KAAMwwC,EAAYzkC,MAAM/L,MAAO,CAChE,IAAK60C,EAASC,GAAS7zC,GAAM2K,MAAM4kC,GAC/BuE,EAAQ,CACVxoC,MAAOsoC,EAAQlvC,OACfsG,IAAK6oC,EAAMnvC,OACXC,KAAMsC,GAQR,GAAIA,GAASwpC,GAA+B,0BAATvgD,EAAkC,CACnE,IAAI6jD,EAAetD,EAAmBnlC,MAAQmlC,EAAmB9rC,KAAK2S,OAAO,QAE1Dw8B,EAAMxoC,MAAQwoC,EAAMnvC,KAAK2S,OAAO,UAE9By8B,EAAe,GAAKD,EAAM9oC,MAAQylC,EAAmBnlC,MAAQmlC,EAAmB9rC,KAAK1T,QACxG6iD,EAAMxoC,OAAS,EACfmlC,EAAqB,KACrBgC,KAEAhC,GAAqB,CAEzB,MAEIA,EAFgB,eAATvgD,IACkB,OAAvBugD,EACmBqD,KACZrD,IAAsBzwC,GAAMiM,YAAYsjC,IAAgBkB,EAAmBzlC,IAAMylC,EAAmB9rC,KAAK1T,SAAW2iD,EAAQlvC,SAChH4U,GAAgBA,GAAgB,CAAA,EAAIm3B,GAAqB,CAAA,EAAI,CAChF9rC,KAAM8rC,EAAmB9rC,KAAOsC,KAStC,GAAImsC,EAEF,YADAzB,EAAUiC,EAAQ70C,KAAM+0C,EAG5B,CAEA,OAAO1B,EAAe,IAAM5lC,GAAOgE,WAAWrM,EAAQ8C,GAAQ,CAC5DyI,GAAI6/B,IAtTZ,GA2ZAyE,cA3CkBx4C,IAMbo1C,MACHW,GAA4B,GAC5B5gB,WAAW4gB,KAoCb0C,mBA1BuBC,IAMrB,IAAIC,EALFvD,KAAqBC,KAIrBqD,EAAUxwB,KAAKmjB,GAAYD,GAAkBziC,EAAQ0iC,EAAUqN,MAKA,QAAhEC,EAAwB/O,GAAuB5uC,IAAI2N,UAA+C,IAA1BgwC,GAA4CA,MAiBvHC,YAnDgB,MACZvD,KAAuBD,KACzBzf,KAmDN,CAiBA,IAAIkjB,GAA4B1Q,GAAc2Q,EAAAA,gBAAkBC,EAAAA,UAmBhE,IAAIrnC,GAAc,CAAC,QAEnB,SAAS6N,GAAUpX,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAG1V,IAAIu+C,GAA6B,CAC/B7Y,SAAS,EACTD,WAAW,EACXL,eAAe,GAEboZ,GAA0BxR,GAA0B/0B,IACtD,IAAItW,KACFA,GACEsW,EACAxN,EAAU0J,GAAyB8D,EAAMhB,IAE7C,IAAK+1B,GACH,OAAO,KAGT,IArDIyR,EAqDAvwC,EAASu+B,KACTiS,GAtDAD,EAAeE,EAAAA,QAAO,GAC1BL,EAAAA,UAAU,KACRG,EAAal1C,SAAU,EAChB,KACLk1C,EAAal1C,SAAU,IAExB,IACIk1C,EAAal1C,UAgDfq1C,GAAgBC,EAAAA,SAAS,IAAM7E,GAlBtC,SAAyBjsC,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAKiqB,GAAUrqB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBulB,GAAUrqB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAkB3duX,CAAgB,CAC5EpX,UACCzD,KAQH,OAjDF,SAA6B9I,EAAMqiC,EAAUv5B,GAC3C,IAAKq0C,GAAoBD,EAAAA,SAAS,IAAM,IAAI5Z,iBAAiBjB,IAC7Doa,GAA0B,KAGxBU,EAAiBC,gBAEnBT,EAAAA,UAAU,KACR,IAAK38C,EAAK4H,QACR,MAAM,IAAIzK,MAAM,0DAIlB,OADAggD,EAAiB3Z,QAAQxjC,EAAK4H,QAASkB,GAChC,IAAMq0C,EAAiBpY,cAC7B,CAACoY,EAAkBn9C,EAAM8I,GAC9B,CA2BEu0C,CAAoBr9C,EAAMi9C,EAAaZ,mBAAoBO,IAC3D1P,GAAyBtqC,IAAI2J,EAAQ0wC,EAAapC,eAE9CkC,GACFE,EAAa1jB,QAGR0jB,GAtBkC,IAAM,KAyB7C9hC,GAAc,CAAC,SAAU,SACzByG,GAAe,CAAC,SAAU,SAG1B07B,GAAyB,CAACtqC,EAAOqkB,KACnC,IAHoBkmB,EAAMC,EAGtBC,EAAgBjrC,GAAyBQ,EAAOmI,IAEhDuiC,EAAgBlrC,GAAyB6kB,EAAOzV,IAEpD,OAAO5O,EAAMy6B,MAAwBpW,EAAMoW,MAPvB8P,EAO6DE,EAPvDD,EAOsEE,EAP7D5kD,OAAOuF,KAAKk/C,GAAMlkD,SAAWP,OAAOuF,KAAKm/C,GAAMnkD,QAAUP,OAAOuF,KAAKk/C,GAAMxzC,MAAMjL,GAAO0+C,EAAKhkD,eAAesF,IAAQy+C,EAAKz+C,KAAS0+C,EAAK1+C,MA+DxK01B,GAASj3B,IACX,IAAI6qB,OACFA,EAAMnb,KACNA,EAAIlC,OACJA,EAAMgC,KACNA,GACExP,EACAgP,EAASu+B,KACT3jC,EAAOgoC,GAAY6B,SAASzkC,EAAQQ,GACpC8J,EAAa/O,GAAKiD,OAAO5D,GACzBw2C,GAAsD,IAAlC1wC,EAAKygC,IAG7B,OAAInhC,EAAO4M,OAAOpO,GACI7K,EAAM7H,cAAculD,GAAiB,CACvDvkD,OAAQoT,GAAKqK,OAAO/L,GAAQ1R,SAOd,KAAd4T,EAAKF,MAAehC,EAAO9M,SAAS8M,EAAO9M,SAAS5E,OAAS,KAAO0T,GAASR,EAAO0M,SAASlO,IAAiD,KAAtC6J,GAAOkC,OAAOvK,EAAQsK,GAUhH,KAAd5J,EAAKF,KACa7M,EAAM7H,cAAculD,GAAiB,CACvDD,kBAAmBA,IAMnBv1B,GAAkC,OAAxBnb,EAAKF,KAAKvS,OAAM,GACR0F,EAAM7H,cAAcwlD,GAAY,CAClDC,YAAY,EACZ/wC,KAAME,EAAKF,OAIK7M,EAAM7H,cAAcwlD,GAAY,CAClD9wC,KAAME,EAAKF,OAzBS7M,EAAM7H,cAAculD,GAAiB,CACvDG,aAAa,EACbJ,kBAAmBA,KA+BrBE,GAAatgD,IACf,IAAIwP,KACFA,EAAI+wC,WACJA,GAAa,GACXvgD,EACAxF,EAAMilD,EAAAA,OAAO,MAEbgB,EAAiB,IACZ,GAAGvjD,OAAOsS,QAAmCA,EAAO,IAAItS,OAAOqjD,EAAa,KAAO,KAGvFG,GAAef,EAAAA,SAASc,GAqB7B,OAZAvB,GAA0B,KAExB,IAAIyB,EAAmBF,IAEnBjmD,EAAI6P,SAAW7P,EAAI6P,QAAQ87B,cAAgBwa,IAC7CnmD,EAAI6P,QAAQ87B,YAAcwa,KAOVh+C,EAAM7H,cAAc8lD,GAAgB,CACtDpmD,IAAKA,GACJkmD,IAGDE,GAA8BC,EAAAA,KAAmBC,EAAAA,WAAW,CAAC9gD,EAAOxF,IAClDmI,EAAM7H,cAAc,OAAQ,CAC9C,qBAAqB,EACrBN,IAAKA,GACJwF,EAAMU,YAMP2/C,GAAkBrgD,IACpB,IAAIlE,OACFA,EAAS,EAAC0kD,YACVA,GAAc,EAAKJ,kBACnBA,GAAoB,GAClBpgD,EACAsmC,EAAa,CACf,wBAAyBka,EAAc,IAAM,IAC7C,oBAAqB1kD,GAOvB,OAJIskD,IACF9Z,EAAW,gCAAiC,GAG1B3jC,EAAM7H,cAAc,OAAQS,OAAOC,OAAO,CAAA,EAAI8qC,GAAcwH,IAAe0S,EAAyB,KAAX,SAAiBA,EAA2B79C,EAAM7H,cAAc,KAAM,MAAQ,OAa7L,SAASimD,GAAgBC,GACnBA,EAAW32C,UACbyxB,aAAaklB,EAAW32C,SACxB22C,EAAW32C,QAAU,KAEzB,CAMA,IAAI42C,GAAOjhD,IACT,IAAI0P,KACFA,EAAImb,OACJA,EAAMrb,KACNA,EAAIhC,OACJA,EAAM0zC,kBACNA,EAAiBC,WACjBA,EAAanhD,GAAsB2C,EAAM7H,cAAcsmD,GAAa7lD,OAAOC,OAAO,CAAA,EAAIwE,KACpFA,EACAgP,EAASu+B,KACT8T,EAA4B5B,EAAAA,OAAO,MACnC6B,EAAiB7B,EAAAA,OAAO,OACvB8B,EAAiBC,GAAsB7B,EAAAA,UAAS,GACjD8B,EAA4BhC,EAAAA,OAAO,MACnCiC,EAAyBC,EAAAA,YAAYC,IAGvC,GAtCJ,SAA6CP,EAA2BQ,GAClER,EAA0Bh3C,UAC5Bg3C,EAA0Bh3C,QAAQm9B,aAE9Bqa,IACFR,EAA0Bh3C,QAAU,MAG1C,CA4BIy3C,CAAoCT,EAA4C,MAAjBO,GAE1C,MAAjBA,EAAuB,CACzB,IAAIG,EAEJ9S,GAA8BjpC,OAAOgJ,GACkB,QAAtD+yC,EAAwBryC,EAAKsyC,2BAA2D,IAA1BD,GAA4CA,EAAsB7lD,KAAKwT,EAAM,KAC9I,KAAO,CAGL,GAFAu/B,GAA8B5pC,IAAI2J,EAAQ4yC,IAErCP,EAA0Bh3C,QAAS,CAEtC,IAAI43C,EAAmBnlB,OAAO6L,gBAAkBA,GAChD0Y,EAA0Bh3C,QAAU,IAAI43C,EAAiB,KACvD,IAAIC,EAEoD,QAAvDA,EAAyBxyC,EAAKsyC,2BAA4D,IAA3BE,GAA6CA,EAAuBhmD,KAAKwT,EAAMkyC,IAEnJ,CAEAP,EAA0Bh3C,QAAQ47B,QAAQ2b,GAC1CN,EAAej3C,QAAUu3C,CAC3B,GACC,CAACN,EAAgB5xC,EAAMV,IACtBtO,EAAwBiC,EAAM7H,cAAcm8B,GAAQ,CACtDpM,OAAQA,EACRnb,KAAMA,EACNlC,OAAQA,EACRgC,KAAMA,IAEJ2yC,EAAoBzyC,EAAKwgC,IAkB7B,GAjBAkP,EAAAA,UAAU,KACJ+C,EACGV,EAA0Bp3C,UAE7Bo3C,EAA0Bp3C,QAAUmxB,WAAW,KAC7CgmB,GAAmB,GACnBC,EAA0Bp3C,QAAU,MACnC,OAGL02C,GAAgBU,GAChBD,GAAmB,IAGd,IAAMT,GAAgBU,IAC5B,CAACU,EAAmBX,IAEnBW,GAAqBZ,EAAiB,CACxC,IAAIa,EAAmB,CACrB1hD,SAAUgP,EAAK2yC,YACf/b,WAAY,CACV,0BAA0B,EAC1BzrC,MAAO,CACLiT,SAAU,WACVowB,IAAK,EACLokB,cAAe,OACf5kB,MAAO,OACP6kB,SAAU,OACVxa,QAAS,QACTya,QAAS,QACTC,WAAY,OACZC,eAAgB,OAEhBC,iBAAkB3U,GAAY,eAAY1pC,GAE5Cs+C,iBAAiB,EACjBpoD,IAAKknD,IAGThhD,EAAwBiC,EAAM7H,cAAc6H,EAAMW,SAAU,KAAM49C,EAAkBkB,GAAmB1hD,EACzG,CAQA,OAAOygD,EAAW,CAChB7a,WAJe,CACf,mBAAmB,GAInB5lC,WACAgP,OACAF,UAIAqzC,GAA4BlgD,EAAMk+C,KAAKI,GAAM,CAAC/wC,EAAM9C,IAC/CA,EAAKI,SAAW0C,EAAK1C,QAAUJ,EAAKyd,SAAW3a,EAAK2a,QAAUzd,EAAK+zC,aAAejxC,EAAKixC,YAAc/zC,EAAK8zC,oBAAsBhxC,EAAKgxC,mBAAqB9zC,EAAKoC,OAASU,EAAKV,MAAQ+pC,GAAOltC,OAAOe,EAAKsC,KAAMQ,EAAKR,OAAStC,EAAKsC,KAAKwgC,MAAwBhgC,EAAKR,KAAKwgC,KAE7QkR,GAAcphD,IAChB,IAAIsmC,WACFA,EAAU5lC,SACVA,GACEV,EACJ,OAAoB2C,EAAM7H,cAAc,OAAQS,OAAOC,OAAO,CAAA,EAAI8qC,GAAa5lC,IAO7E2P,GAAOrQ,IAeT,IAdA,IAAIoe,YACFA,EAAWyM,OACXA,EAAMrd,OACNA,EAAM0zC,kBACNA,EAAiBC,WACjBA,EAAU3xC,KACVA,GACExP,EACAgP,EAASu+B,KACT/yC,EAAMilD,EAAAA,OAAO,MACbphC,EAASk7B,GAAOn7B,YAAY5O,EAAM4O,GAClC7c,EAAMqwC,GAAY0C,QAAQtlC,EAAQQ,GAClC9O,EAAW,GAEN/E,EAAI,EAAGA,EAAI0iB,EAAOviB,OAAQH,IAAK,CACtC,IAAI+T,EAAO2O,EAAO1iB,GAClB+E,EAASwH,KAAmBvF,EAAM7H,cAAc+nD,GAAc,CAC5Dh4B,OAAQA,GAAUlvB,IAAM0iB,EAAOviB,OAAS,EACxCyF,IAAK,GAAGrE,OAAOqE,EAAI8wC,GAAI,KAAKn1C,OAAOvB,GACnCulD,kBAAmBA,EACnBxxC,KAAMA,EACNF,KAAMA,EACNhC,OAAQA,EACR2zC,WAAYA,IAEhB,CAGA,IAAI2B,EAAcnB,EAAAA,YAAYlwB,IAC5B,IAAImkB,EAAiBvG,GAAyBhuC,IAAI2N,GAE9CyiB,GACFmkB,SAAgEA,EAAevwC,IAAI9D,EAAKkwB,GACxF0d,GAAgB9pC,IAAImK,EAAMiiB,GAC1Byd,GAAgB7pC,IAAIosB,EAAMjiB,KAE1BomC,SAAgEA,EAAe5vC,OAAOzE,GACtF4tC,GAAgBnpC,OAAOwJ,GAEnBhV,EAAI6P,SACN6kC,GAAgBlpC,OAAOxL,EAAI6P,UAI/B7P,EAAI6P,QAAUonB,GACb,CAACj3B,EAAKwU,EAAQzN,EAAKiO,IACtB,OAAoB7M,EAAM7H,cAAc,OAAQ,CAC9C,kBAAmB,OACnBN,IAAKsoD,GACJpiD,IAGDqiD,GAA4BpgD,EAAMk+C,KAAKxwC,GAAM,CAACH,EAAM9C,IAC/CA,EAAKI,SAAW0C,EAAK1C,QAAUJ,EAAKyd,SAAW3a,EAAK2a,QAAUzd,EAAK+zC,aAAejxC,EAAKixC,YAAc/zC,EAAK8zC,oBAAsBhxC,EAAKgxC,mBAAqB9zC,EAAKoC,OAASU,EAAKV,MA9UzJ,EAACrC,EAAMvB,KAClC,GAAIuB,EAAKrR,SAAW8P,EAAQ9P,OAC1B,OAAO,EAGT,IAAK,IAAIH,EAAI,EAAGA,EAAIwR,EAAKrR,OAAQH,IAAK,CACpC,IAAI8Z,EAAQtI,EAAKxR,GACbm+B,EAAQluB,EAAQjQ,GAEpB,GAAI8Z,EAAMC,OAAOnG,SAAWuqB,EAAMpkB,OAAOnG,QAAUkG,EAAME,MAAMpG,SAAWuqB,EAAMnkB,MAAMpG,SAAWwwC,GAAuBtqC,EAAOqkB,GAC7H,OAAO,CAEX,CAEA,OAAO,GAgUqLkpB,CAAuB51C,EAAKgR,YAAalO,EAAKkO,cAOxO7G,GAAUvX,IACZ,IAAIoe,YACFA,EAAW5J,QACXA,EAAOyuC,cACPA,EAAgBlnD,GAAkB4G,EAAM7H,cAAcooD,GAAgB3nD,OAAOC,OAAO,GAAIO,IAAGmlD,kBAC3FA,EAAiBC,WACjBA,EAAUlyC,UACVA,GACEjP,EACAgP,EAASu+B,KACT4V,EAAWC,KACX1nC,EAAW1M,EAAO0M,SAASlH,GAC3BjT,EAAMqwC,GAAY0C,QAAQtlC,EAAQwF,GAClCha,EAAMmnD,EAAAA,YAAYnnD,IAEpB,IAAIo7C,EAAiBvG,GAAyBhuC,IAAI2N,GAE9CxU,GACFo7C,SAAgEA,EAAevwC,IAAI9D,EAAK/G,GACxF20C,GAAgB9pC,IAAImP,EAASha,GAC7B00C,GAAgB7pC,IAAI7K,EAAKga,KAEzBohC,SAAgEA,EAAe5vC,OAAOzE,GACtF4tC,GAAgBnpC,OAAOwO,KAExB,CAACxF,EAAQzN,EAAKiT,IACb9T,EAAW2iD,GAAY,CACzBjlC,cACA3b,KAAM+R,EACNyuC,gBACA/B,oBACAC,aACAlyC,cAIEq3B,EAAa,CACf,kBAAmB,UACnB9rC,OASF,GANIkhB,IACF4qB,EAAW,sBAAuB,IAK/B5qB,GAAYrE,GAAOyD,WAAW9L,EAAQwF,GAAU,CACnD,IAAIhF,EAAON,GAAKqK,OAAO/E,GACnB8uC,EAAMC,GAAa/zC,GAEX,QAAR8zC,IACFhd,EAAWgd,IAAMA,EAErB,CAGA,GAAIjsC,GAAOuE,OAAO5M,EAAQwF,GAAU,CAClC8xB,EAAW,oBAAqB,GAE3B6c,GAAYznC,IACf4qB,EAAWsc,iBAAkB,GAG/B,IAAIY,EAAM9nC,EAAW,OAAS,QACxB5J,IAAU5C,GAAKwC,MAAM8C,GAC3B9T,EAAwBiC,EAAM7H,cAAc0oD,EAAK,CAC/C,qBAAqB,EACrB3oD,MAAO,CACL8rB,OAAQ,IACR88B,MAAO,cACPC,QAAS,OACT51C,SAAU,aAEEnL,EAAM7H,cAAcioD,GAAc,CAChD7B,kBAAmBA,EACnB9iC,YAAa,GACbyM,QAAQ,EACRrd,OAAQgH,EACRhF,KAAMsC,KAER+8B,GAAcxpC,IAAIyM,EAAO,GACzBg9B,GAAezpC,IAAIyM,EAAO0C,EAC5B,CAEA,OAAOyuC,EAAc,CACnB3c,aACA5lC,WACA8T,aAIAmvC,GAA+BhhD,EAAMk+C,KAAKtpC,GAAS,CAACrH,EAAM9C,IACrD8C,EAAKsE,UAAYpH,EAAKoH,SAAWtE,EAAK+yC,gBAAkB71C,EAAK61C,eAAiB/yC,EAAKixC,aAAe/zC,EAAK+zC,YAAcjxC,EAAKgxC,oBAAsB9zC,EAAK8zC,mBA1c9H,EAAC/zC,EAAMvB,KACrC,GAAIuB,EAAKrR,SAAW8P,EAAQ9P,OAC1B,OAAO,EAGT,IAAK,IAAIH,EAAI,EAAGA,EAAIwR,EAAKrR,OAAQH,IAAK,CACpC,IAAI8Z,EAAQtI,EAAKxR,GACbm+B,EAAQluB,EAAQjQ,GAEpB,IAAKkP,GAAMwB,OAAOoJ,EAAOqkB,KAAWimB,GAAuBtqC,EAAOqkB,GAChE,OAAO,CAEX,CAEA,OAAO,GA4b0K8pB,CAA0B1zC,EAAKkO,YAAahR,EAAKgR,eAAiBlO,EAAKjB,YAAc7B,EAAK6B,aAAeiB,EAAKjB,aAAe7B,EAAK6B,WAAapE,GAAMwB,OAAO6D,EAAKjB,UAAW7B,EAAK6B,aAMhWi0C,GAAiBljD,IACnB,IAAIsmC,WACFA,EAAU5lC,SACVA,EAAQ8T,QACRA,GACExU,EAEAwjD,EADSjW,KACI7xB,SAASlH,GAAW,OAAS,MAC9C,OAAoB7R,EAAM7H,cAAc0oD,EAAKjoD,OAAOC,OAAO,CAAA,EAAI8qC,EAAY,CACzEzrC,MAAO,CACLiT,SAAU,cAEVpN,IAOFmjD,GAA+BvW,EAAAA,cAAc,IAAM,IAanDwW,GAA+BxW,EAAAA,eAAc,GAa7C+V,GAAcrjD,IAehB,IAdA,IAAIoe,YACFA,EAAW3b,KACXA,EAAIwgD,cACJA,EAAa/B,kBACbA,EAAiBC,WACjBA,EAAUlyC,UACVA,GACEjP,EACA+jD,EA7BGvW,EAAAA,WAAWqW,IA8Bd70C,EAASu+B,KACT3jC,EAAOgoC,GAAY6B,SAASzkC,EAAQvM,GACpC/B,EAAW,GACXsjD,EAActQ,GAAUv8B,UAAU1U,KAAUuM,EAAO0M,SAASjZ,IAAS4U,GAAOyD,WAAW9L,EAAQvM,GAE1F9G,EAAI,EAAGA,EAAI8G,EAAK/B,SAAS5E,OAAQH,IAAK,CAC7C,IAAII,EAAI6N,EAAK1M,OAAOvB,GAChBC,EAAI6G,EAAK/B,SAAS/E,GAClB4F,EAAMqwC,GAAY0C,QAAQtlC,EAAQpT,GAClC6Z,EAAQ4B,GAAO5B,MAAMzG,EAAQjT,GAC7BkoD,EAAMh1C,GAAapE,GAAM0L,aAAad,EAAOxG,GAC7Ci1C,EAAKH,EAAS,CAACnoD,EAAGG,IAEtB,IAAK,IAAIuiB,KAAOF,EAAa,CAC3B,IAAIvY,EAAIgF,GAAM0L,aAAa+H,EAAK7I,GAE5B5P,GACFq+C,EAAGh8C,KAAKrC,EAEZ,CAEI6tC,GAAUv8B,UAAUvb,GACtB8E,EAASwH,KAAmBvF,EAAM7H,cAAcgpD,GAAgBK,SAAU,CACxE5iD,IAAK,YAAYrE,OAAOqE,EAAI8wC,IAC5BnzC,QAAS+kD,GACKthD,EAAM7H,cAAc6oD,GAAiB,CACnDvlC,YAAa8lC,EACb1vC,QAAS5Y,EACT2F,IAAKA,EAAI8wC,GACT4Q,cAAeA,EACf/B,kBAAmBA,EACnBC,WAAYA,EACZlyC,UAAWg1C,MAGbvjD,EAASwH,KAAmBvF,EAAM7H,cAAcioD,GAAc,CAC5D3kC,YAAa8lC,EACb3iD,IAAKA,EAAI8wC,GACTxnB,OAAQm5B,GAAeroD,IAAM8G,EAAK/B,SAAS5E,OAAS,EACpD0R,OAAQ/K,EACRy+C,kBAAmBA,EACnBC,WAAYA,EACZ3xC,KAAM5T,KAIVizC,GAAcxpC,IAAIzJ,EAAGD,GACrBmzC,GAAezpC,IAAIzJ,EAAG6G,EACxB,CAEA,OAAO/B,GAOL0jD,GAA+B9W,EAAAA,eAAc,GAK7C8V,GAAc,IACT5V,EAAAA,WAAW4W,IAGhBC,GAA4B/W,EAAAA,cAAc,MAK1CgX,GAAW,KACb,IAAIC,EAAU/W,EAAAA,WAAW6W,IAEzB,IAAKE,EACH,MAAM,IAAI3kD,MAAM,4EAGlB,IAAIoP,OACFA,GACEu1C,EACJ,OAAOv1C,GAmCT,IAMIw1C,GAAU,CACZC,KAAM,QACNC,QAAS,CAAC,OAAQ,OAAQ,QAAS,KAAM,YAAa,SACtDC,aAAc,OACdC,YAAa,QACbC,iBAAkB,YAClBC,gBAAiB,aACjBtqC,eAAgB,mBAChBE,cAAe,gBACfqqC,eAAgB,aAChBC,cAAe,cACfC,OAAQ,QACR7pC,gBAAiB,cACjB8pC,WAAY,QACZC,KAAM,SAEJC,GAAgB,CAClBC,iBAAkB,SAClBC,gBAAiB,WACjBT,iBAAkB,WAClBC,gBAAiB,YACjBtqC,eAAgB,CAAC,iBAAkB,UACnCE,cAAe,CAAC,cAAe,UAC/B6qC,mBAAoB,uBACpBC,kBAAmB,CAAC,oBAAqB,UACzCC,mBAAoB,uBACpBC,kBAAmB,oBACnBC,mBAAoB,eACpBC,kBAAmB,iBACnBC,KAAM,cACNC,mBAAoB,UAElBC,GAAkB,CACpBN,mBAAoB,wBACpBC,kBAAmB,qBACnBG,KAAM,CAAC,SAAU,iBAMfjgD,GAASrE,IACX,IAAIykD,EAAUxB,GAAQjjD,GAClB0kD,EAAQb,GAAc7jD,GACtB+oC,EAAUyb,GAAgBxkD,GAC1B2kD,EAAYF,GAAWxa,GAAAA,SAASwa,GAChCG,EAAUF,GAASza,GAAAA,SAASya,GAC5BG,EAAY9b,GAAWkB,GAAAA,SAASlB,GACpC,OAAOhF,MACD4gB,IAAaA,EAAU5gB,SACvBuI,IAAYsY,GAAWA,EAAQ7gB,OAC9BuI,KAAYuY,IAAaA,EAAU9gB,MASxC+gB,GAAU,CACZC,OAAQ1gD,GAAO,QACf2gD,UAAW3gD,GAAO,WAClB4gD,eAAgB5gD,GAAO,gBACvB6gD,cAAe7gD,GAAO,eACtB8gD,iBAAkB9gD,GAAO,kBACzB+gD,gBAAiB/gD,GAAO,iBACxBghD,qBAAsBhhD,GAAO,sBAC7BihD,oBAAqBjhD,GAAO,qBAC5BkhD,qBAAsBlhD,GAAO,sBAC7BmhD,oBAAqBnhD,GAAO,qBAC5BohD,iBAAkBphD,GAAO,kBACzBqhD,gBAAiBrhD,GAAO,iBACxBshD,qBAAsBthD,GAAO,sBAC7BuhD,oBAAqBvhD,GAAO,qBAC5BwhD,SAAUxhD,GAAO,UACjByhD,mBAAoBzhD,GAAO,oBAC3B0hD,kBAAmB1hD,GAAO,mBAC1B2hD,mBAAoB3hD,GAAO,oBAC3B4hD,kBAAmB5hD,GAAO,mBAC1B6hD,OAAQ7hD,GAAO,QACf8hD,YAAa9hD,GAAO,mBACpB+hD,aAAc/hD,GAAO,cACrBgiD,qBAAsBhiD,GAAO,sBAC7BiiD,OAAQjiD,GAAO,SA+CbkiD,GAA2B,CAC7BthB,SAAS,EACTD,WAAW,EACXL,eAAe,EACf6hB,uBAAuB,GAIzB,MAAMC,WAA4BC,EAAAA,UAChC,WAAAxoD,GACEyoD,SAASrsD,WACTO,KAAKmoD,QAAU,KACfnoD,KAAK+rD,QAAU,KACf/rD,KAAKwjD,iBAAmB,IAC1B,CAEA,OAAA3Z,GACE,IAAImiB,GAEA3lD,KACFA,GACErG,KAAK4D,MAET,IAAKyC,EAAK4H,QACR,MAAM,IAAIzK,MAAM,0DAGkC,QAAnDwoD,EAAwBhsD,KAAKwjD,wBAAwD,IAA1BwI,GAA4CA,EAAsBniB,QAAQxjC,EAAK4H,QAASy9C,GACtJ,CAEA,iBAAAO,GACE,IAAIC,kBACFA,GACElsD,KAAK4D,MACLgP,EAAS5S,KAAKmoD,QAClBnoD,KAAK+rD,QA/EqB,EAACn5C,EAAQs5C,KACrC,IAAIC,EAAoB,GAEpBxiD,EAAQ,KACVwiD,EAAoB,IAiCtB,MAAO,CACLC,kBA/BsBzJ,IACtB,GAAKuJ,EAAkBj+C,QAAvB,CAIA,IAAIo+C,EAAmB1J,EAAUh+C,OAAO2wC,GAAYD,GAAkBziC,EAAQ0iC,EAAUqN,IACxFwJ,EAAkBrgD,QAAQugD,EAH1B,GA6BAC,WAvBF,WACMH,EAAkBzsD,OAAS,IAC7BysD,EAAkB/8C,UAAUvG,QAAQysC,IACZ,kBAAlBA,EAAS32C,OAMb22C,EAASS,aAAaltC,QAAQxC,IAC5BivC,EAAS7iC,OAAO5T,aAAawH,EAAMivC,EAASiX,eAE9CjX,EAASQ,WAAWjtC,QAAQxC,IAC1BivC,EAAS7iC,OAAO+oC,YAAYn1C,QAIhCsD,IAEJ,EAKEA,UAuCe6iD,CAAwB55C,EAAQs5C,GAC/ClsD,KAAKwjD,iBAAmB,IAAI7Z,iBAAiB3pC,KAAK+rD,QAAQK,mBAC1DpsD,KAAK6pC,SACP,CAEA,uBAAA4iB,GACE,IAAIC,EAAwBC,EAAwBC,EAK9CC,EAHFC,EAAwE,QAApDJ,EAAyB1sD,KAAKwjD,wBAAyD,IAA3BkJ,OAAoC,EAASA,EAAuBjJ,cAEpJqJ,SAA4DA,EAAiBptD,SAG5C,QAAlCmtD,EAAgB7sD,KAAK+rD,eAAuC,IAAlBc,GAAoCA,EAAcT,kBAAkBU,IAKjH,OAFqD,QAApDH,EAAyB3sD,KAAKwjD,wBAAyD,IAA3BmJ,GAA6CA,EAAuBvhB,aAC7F,QAAnCwhB,EAAiB5sD,KAAK+rD,eAAwC,IAAnBa,GAAqCA,EAAeN,aACzF,IACT,CAEA,kBAAAS,GACE,IAAIC,EAEgC,QAAnCA,EAAiBhtD,KAAK+rD,eAAwC,IAAnBiB,GAAqCA,EAAerjD,QAChG3J,KAAK6pC,SACP,CAEA,oBAAAojB,GACE,IAAIC,EAEiD,QAApDA,EAAyBltD,KAAKwjD,wBAAyD,IAA3B0J,GAA6CA,EAAuB9hB,YACnI,CAEA,MAAA7oC,GACE,OAAOvC,KAAK4D,MAAMU,QACpB,EAIFsnD,GAAoBuB,YAAclc,GAClC,IAAImc,GAAa1b,GAAaka,GAAsBjvC,IAClD,IAAIrY,SACFA,GACEqY,EACJ,OAAoBpW,EAAM7H,cAAc6H,EAAMW,SAAU,KAAM5C,IAG5D0jB,GAAc,CAAC,YAAa,WAAY,mBAAoB,cAAe,WAAY,gBAAiB,aAAc,oBAAqB,0BAA2B,QAAS,KAAM,wBACrLoC,GAAa,CAAC,QAElB,SAASH,GAAU7X,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAE1V,SAASwlB,GAAgBzX,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAK0qB,GAAU9qB,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBgmB,GAAU9qB,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAE3hB,IAAI46C,GAAWzpD,GAAsB2C,EAAM7H,cAAc6H,EAAMW,SAAU,KAAM+/C,GAAYrjD,IAMvF0pD,GAAW1pD,IACb,IAAI2pD,EAA2BhI,EAAAA,YAAY3hD,GAAsB2C,EAAM7H,cAAc8uD,GAAoBruD,OAAOC,OAAO,CAAA,EAAIwE,IAAS,KAEhI6pD,UACFA,EAAS9F,SACTA,EAAW+F,GACXC,iBAAkBC,EAAqB3H,YACvCA,EAAWc,SACXA,GAAW,EAAKF,cAChBA,EAAa9B,WACbA,EAAUD,kBACVA,EAAoByI,EAAwBM,wBAC5CA,EAA0BC,GAC1BrvD,MAAOsvD,EAAY,CAAA,EACnBj+C,GAAI+7C,EAAY,MAAKmC,qBACrBA,GAAuB,GACrBpqD,EACAsmC,EAAarxB,GAAyBjV,EAAOokB,IAE7CpV,EAASs1C,MAERhP,EAAa+U,GAAkB1K,EAAAA,UAAS,GACzCnlD,EAAMilD,EAAAA,OAAO,MACb6K,EAAqB7K,EAAAA,OAAO,KAC3B8K,EAAmBC,GAAwB7K,cAC5C8K,YACFA,EAAWnC,kBACXA,GA3RJ,WACE,IAAIt5C,EAASu+B,KACT+a,EAAoB7I,EAAAA,QAAO,GAC3BiL,EAAsBjL,EAAAA,OAAO,GAC7BgL,EAAc9I,EAAAA,YAAY,KAC5B,IAAI2G,EAAkBj+C,QAAtB,CAIAi+C,EAAkBj+C,SAAU,EAC5B,IAAIyyB,EAAS8U,GAAYC,UAAU7iC,GACnC8tB,EAAO6tB,qBAAqBD,EAAoBrgD,SAChDqgD,EAAoBrgD,QAAUyyB,EAAOuK,sBAAsB,KACzDihB,EAAkBj+C,SAAU,GAN9B,GAQC,CAAC2E,IAEJ,OADAowC,EAAAA,UAAU,IAAM,IAAMuL,qBAAqBD,EAAoBrgD,SAAU,IAClE,CACLi+C,oBACAmC,cAEJ,CAuQMG,IACA,CAAGC,GAAeC,EAAAA,WAAWpvD,GAAKA,EAAI,EAAG,GAC7Cu0C,GAAuB5qC,IAAI2J,EAAQ67C,GAEnCvb,GAAajqC,IAAI2J,EAAQm0C,GAEzB,IAAI4H,EAAQC,EAAAA,QAAQ,KAAA,CAClBC,sBAAsB,EACtBC,qBAAqB,EACrBC,cAAe,KACfC,oBAAoB,IAClB,IAGJhM,EAAAA,UAAU,KACJ5kD,EAAI6P,SAAWw/C,GACjBrvD,EAAI6P,QAAQsL,SAEb,CAACk0C,IAQJ,IAAIwB,EAAyB5L,EAAAA,SAMzBzE,EAAuBgQ,EAAAA,QAAQ,IAAMM,GAAS,KAChD,IAAIC,EAAsBF,EAAuBhhD,QAEjD,IAAKyjC,KAAe8D,GAAY0D,YAAYtmC,OAAc+7C,EAAMG,qBAAuBK,SAAkEA,EAAoB/N,gBAAkBuN,EAAME,qBAAsB,CACzN,IAAI/yC,EAAO05B,GAAYe,yBAAyB3jC,IAC5C4jC,cACFA,GACE16B,EACA0mB,EAAKgT,GAAYc,UAAU1jC,EAAQA,GACnC6jC,EAAe36B,EAAK46B,eASxB,GAPIF,IAAkBhU,GACpBmsB,EAAMI,cAAgBvY,EACtBrD,GAAWlqC,IAAI2J,GAAQ,IAEvBugC,GAAWvpC,OAAOgJ,IAGf6jC,EACH,OAAO1vB,GAAWxO,SAAS3F,GAG7B,IAAI0hC,WACFA,EAAUuH,UACVA,GACEpF,EACA2Y,EAAuB5Z,GAAYiD,kBAAkB7lC,EAAQ0hC,IAAekB,GAAYoD,8BAA8BhmC,EAAQ0hC,GAC9H+a,EAAsB7Z,GAAYiD,kBAAkB7lC,EAAQipC,IAAcrG,GAAYoD,8BAA8BhmC,EAAQipC,GAEhI,GAAIuT,GAAwBC,EAAqB,CAC/C,IAAIh2C,EAAQm8B,GAAYuC,aAAanlC,EAAQ6jC,EAAc,CACzDuB,YAAY,EACZC,eAAe,IAGb5+B,IACGm8B,GAAY0D,YAAYtmC,IAAau8C,SAAkEA,EAAoBhO,qBAA0BgO,SAAkEA,EAAoB/N,aAG9O+N,SAA0EA,EAAoBpO,iBAAiB1nC,GAF/G0N,GAAWtO,OAAO7F,EAAQyG,GAKhC,EAGI0tC,GAAcqI,GAAyBC,GACzCtoC,GAAWxO,SAAS3F,EAExB,GACC,KAAM,CAACA,EAAQm0C,EAAU4H,IACxBhQ,EAA+BiQ,EAAAA,QAAQ,IAAM/uB,GAAS+e,EAAsB,GAAI,CAACA,IACrFqQ,EAAuBhhD,QAAUi1C,GAAuB,CACtD78C,KAAMjI,EACNwgD,uBACAD,iCAEFmE,GAA0B,KACxB,IAAIwM,EAAuBC,EAGvB7uB,EAEAtiC,EAAI6P,UAAYyyB,EAASuT,GAAe71C,EAAI6P,WAC9C0kC,GAAiB1pC,IAAI2J,EAAQ8tB,GAC7BkS,GAAkB3pC,IAAI2J,EAAQxU,EAAI6P,SAClC8kC,GAAgB9pC,IAAI2J,EAAQxU,EAAI6P,SAChC6kC,GAAgB7pC,IAAI7K,EAAI6P,QAAS2E,IAEjCmgC,GAAgBnpC,OAAOgJ,GAIzB,IAAIC,UACFA,GACED,EAEA6jC,EADOjB,GAAYe,yBAAyB3jC,GACxB8jC,eAExB,GAAKD,GAAiBjB,GAAY2D,UAAUvmC,KAAwE,QAA5D08C,EAAwBL,EAAuBhhD,eAA+C,IAA1BqhD,IAAoCA,EAAsBhQ,oBAAtL,CAIA,IAAIkQ,EAAkBC,IACpB,IAAIC,EAAwC,SAAtBjZ,EAAa93C,KAEnC,GAAKkU,GAAc68C,EAAnB,CAKA,IACIpb,EADAuH,EAAYpF,EAAaoF,UAI7B,GAAIlK,IAAc8E,EAAaE,WAAa,EAAG,CAC7C,IAAIsF,EAAaxF,EAAayF,WAAW,GACrCC,EAAY1F,EAAayF,WAAWzF,EAAaE,WAAa,GAGhErC,EADE2H,EAAWD,iBAAmBH,EACnBM,EAAUU,aAGVZ,EAAWD,cAE5B,MACE1H,EAAamC,EAAanC,WAI5B,IAAIqb,EAAgB/c,GAAkB3tC,IAAI2N,GACtCg9C,GAA0B,EAO9B,GALID,EAAc9sB,SAASyR,IAAeqb,EAAc9sB,SAASgZ,KAC/D+T,GAA0B,GAIxBF,GAAmBE,GAA2B/8C,IAAc48C,EAAa,CAC3E,IAAII,EAAara,GAAYuC,aAAanlC,EAAQ6jC,EAAc,CAC9DuB,YAAY,EAGZC,eAAe,IAGjB,GAAI4X,GAAcphD,GAAMwB,OAAO4/C,EAAYh9C,GAAY,CACrD,IAAIi9C,EAAaC,EAEjB,IAAKpB,EAAMK,mBACT,OAIF,GAAmC,QAA9Bc,EAAcxb,SAAwC,IAAhBwb,GAAkF,QAAvDC,EAAwBD,EAAY7uB,qBAAqD,IAA1B8uB,GAAoCA,EAAsBjW,aAAa,+BAC1M,MAEJ,CACF,CAMA,IAAIjnC,GAAc2iC,GAAYkD,SAAS9lC,EAAQC,GAA/C,CASA87C,EAAMG,qBAAsB,EAC5B,IAAIkB,EAAcn9C,GAAa2iC,GAAY0E,WAAWtnC,EAAQC,GAgB9D,OAdIm9C,GACExa,GAAY0D,YAAYtmC,KAAY8+B,GACtC+E,EAAawZ,gBACJxhD,GAAM+K,WAAW3G,GAC1B4jC,EAAayZ,iBAAiBF,EAAYnT,aAAcmT,EAAYxV,UAAWwV,EAAYhU,eAAgBgU,EAAY1V,aAEvH7D,EAAayZ,iBAAiBF,EAAYhU,eAAgBgU,EAAY1V,YAAa0V,EAAYnT,aAAcmT,EAAYxV,WAG3HqT,EAAwBj7C,EAAQo9C,IAEhCvZ,EAAaG,kBAGRoZ,CApBP,CALEp9C,EAAOC,UAAY2iC,GAAYuC,aAAanlC,EAAQ6jC,EAAc,CAChEuB,YAAY,EACZC,eAAe,GA3DnB,GAsFExB,EAAaE,YAAc,GAC7B6Y,IAGF,IAAIW,EAA+K,YAA9F,QAA7DZ,EAAyBN,EAAuBhhD,eAAgD,IAA3BshD,OAAoC,EAASA,EAAuBnO,cAEjK,GAAK1P,IAAeye,EAApB,CAOA,IAAIC,EAAY,KACZC,EAAmBplB,sBAAsB,KAC3C,GAAIklB,EAAiB,CACnB,IAAIG,EAAqBb,IACvB,IACWja,GAAYc,UAAU1jC,EAAQA,GACpC2G,QACHi2C,EAAgBC,EAClB,CAAE,MAAOvvD,GACT,GAOFowD,IACAF,EAAYhxB,WAAW,KAIrBkxB,GAAmB,GACnB3B,EAAMG,qBAAsB,GAEhC,IAEF,MAAO,KACLP,qBAAqB8B,GAEjBD,GACF1wB,aAAa0wB,GAhCjB,CAJEhxB,WAAW,KACTuvB,EAAMG,qBAAsB,GArGhC,IAgJF,IAAInB,EAAmBpI,EAAAA,YAAYrc,IAGjC,GAFAmlB,KAEKtH,GAAYvR,GAAYiD,kBAAkB7lC,EAAQs2B,EAAMz2B,UAAY89C,GAAkBrnB,EAAO0kB,GAAwB,CACxH,IAAI4C,EAGJ,GAAIvB,EAAuBhhD,QACzB,OAAOghD,EAAuBhhD,QAAQuzC,qBAAqBtY,GAM7DyV,EAA6B/e,QAC7Bgf,EAAqBhf,QACrB,IAAI/sB,UACFA,GACED,GAEF8uC,UAAW/iD,GACTuqC,EACA6P,EAAO7P,EAAMyY,cAAgBzY,EAAM6P,WAAQ7wC,EAC3CuoD,EAA+B,0BAAT9xD,GAA6C,0BAATA,EAG9D,GAAI8xD,GAAuBjb,GAAY0D,YAAYtmC,GACjD,OAGF,IAAI89C,GAAS,EAEb,GAAa,eAAT/xD,GAAyBkU,GAAapE,GAAMiM,YAAY7H,IAG5Dq2B,EAAM6P,MAA8B,IAAtB7P,EAAM6P,KAAKr5C,QAAgB,UAAUglB,KAAKwkB,EAAM6P,OAGlC,IAA5BlmC,EAAUyG,OAAOnG,OAAc,CAC7B,IAAIw9C,EAAqBC,EAEzBF,GAAS,EAGL99C,EAAOiN,QACT6wC,GAAS,GAKX,IAAIp3C,OACFA,GACEzG,GACCxM,EAAM8M,GAAUqiC,GAAYiE,WAAW7mC,EAAQ0G,GAChDg7B,EAA4D,QAA9Cqc,EAAsBtqD,EAAK46B,qBAAmD,IAAxB0vB,OAAiC,EAASA,EAAoBpY,QAAQ,KAC1I7X,EAAS8U,GAAYC,UAAU7iC,GAEnC,GAAI89C,GAAUpc,GAAckB,GAAYE,WAAW9iC,EAAQ0hC,GAAa,CACtE,IAAIuc,EAGAC,EAAWpwB,aAAuC,EAASA,EAAOpiC,SAASyyD,iBAAiBzc,EAAY0c,WAAWC,WAAWC,YAE9HJ,IAAazqD,IAA4D,QAAlDwqD,EAAwBC,EAAS/mB,mBAAmD,IAA1B8mB,OAAmC,EAASA,EAAsBnxD,UAAYyT,IACjKu9C,GAAS,EAEb,CAIA,GAAIA,GAAUrqD,EAAK46B,eAAsO,SAApNP,SAA0H,QAAzEkwB,EAAwBlwB,EAAON,iBAAiB/5B,EAAK46B,sBAAsD,IAA1B2vB,OAA3F,EAAuIA,EAAsBO,YAAuB,CAC9P,IAAIp/B,EAAQ9W,GAAOgD,MAAMrL,EAAQ,CAC/BuL,GAAI7E,EAAO9L,KACXkZ,MAAOlnB,GAAK83C,GAAUv8B,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,KAG3DuyB,GAASjf,GAAKqK,OAAO4U,EAAM,IAAIrY,SAAS,QAC1Cg3C,GAAS,EAEb,CACF,CAKA,IAAK/xD,EAAKs7C,WAAW,WAAat7C,EAAKs7C,WAAW,YAAa,CAC7D,IAAK+D,GAAe9U,EAAMsJ,kBAE1B,GAAIwL,EAAa,CACf,IAAI3kC,EAAQm8B,GAAYuC,aAAanlC,EAAQorC,EAAa,CACxDhG,YAAY,EACZC,eAAe,IAGjB,IAAKplC,IAAcpE,GAAMwB,OAAO4C,EAAWwG,GAAQ,CACjDq3C,GAAS,EACT,IAAInR,GAAgBkR,GAAuB79C,EAAOC,WAAaoI,GAAOyF,SAAS9N,EAAQA,EAAOC,WAC9FkU,GAAWtO,OAAO7F,EAAQyG,GAEtBkmC,GACFlM,GAAyBpqC,IAAI2J,EAAQ2sC,EAEzC,CACF,CACF,CAIA,GAAIkR,EACF,OASF,GANKC,GACHxnB,EAAMkoB,iBAKJv+C,GAAapE,GAAMkM,WAAW9H,IAAclU,EAAKs7C,WAAW,UAAW,CACzE,IAAI9tB,EAAYxtB,EAAK8e,SAAS,YAAc,WAAa,UAIzD,YAHAxC,GAAOsD,eAAe3L,EAAQ,CAC5BuZ,aAGJ,CAEA,OAAQxtB,GACN,IAAK,sBACL,IAAK,cACL,IAAK,eAEDsc,GAAOsD,eAAe3L,GACtB,MAGJ,IAAK,gBACL,IAAK,uBAEDqI,GAAOqD,cAAc1L,GACrB,MAGJ,IAAK,wBAEDqI,GAAOmD,eAAexL,GACtB,MAGJ,IAAK,uBAEDqI,GAAOmD,eAAexL,EAAQ,CAC5ByL,KAAM,SAERpD,GAAOqD,cAAc1L,EAAQ,CAC3ByL,KAAM,SAER,MAGJ,IAAK,yBAEDpD,GAAOmD,eAAexL,EAAQ,CAC5ByL,KAAM,UAER,MAGJ,IAAK,yBAEDpD,GAAOmD,eAAexL,EAAQ,CAC5ByL,KAAM,SAER,MAGJ,IAAK,wBAEDpD,GAAOqD,cAAc1L,EAAQ,CAC3ByL,KAAM,UAER,MAGJ,IAAK,wBAEDpD,GAAOqD,cAAc1L,EAAQ,CAC3ByL,KAAM,SAER,MAGJ,IAAK,qBAEDpD,GAAOmD,eAAexL,EAAQ,CAC5ByL,KAAM,SAER,MAGJ,IAAK,oBAEDpD,GAAOqD,cAAc1L,EAAQ,CAC3ByL,KAAM,SAER,MAGJ,IAAK,kBACHpD,GAAO+D,gBAAgBpM,GACvB,MAEF,IAAK,kBAEDqI,GAAO4D,YAAYjM,GACnB,MAGJ,IAAK,wBACL,IAAK,iBACL,IAAK,kBACL,IAAK,iBACL,IAAK,wBACL,IAAK,aAEY,0BAATjU,GAME62C,GAAY0D,YAAYtmC,KAC1Bq7C,GAAe,GACf7a,GAAanqC,IAAI2J,GAAQ,IAO+C,kBAAvEmmC,aAAmC,EAASA,EAAK11C,YAAY9B,MAChEi0C,GAAYsD,WAAWlmC,EAAQmmC,GACN,iBAATA,IAGZ2X,EACFxC,EAAmBjgD,QAAQnC,KAAK,IAAMmP,GAAOgE,WAAWrM,EAAQmmC,IAEhE99B,GAAOgE,WAAWrM,EAAQmmC,IASpC,IAAIsY,EAA+E,QAAlEb,EAAwBnd,GAAyBpuC,IAAI2N,UAA+C,IAA1B49C,OAAmC,EAASA,EAAsBpiD,QAC7JilC,GAAyBzpC,OAAOgJ,IAE5By+C,GAAez+C,EAAOC,WAAcpE,GAAMwB,OAAO2C,EAAOC,UAAWw+C,IACrEtqC,GAAWtO,OAAO7F,EAAQy+C,EAE9B,GACC,CAACz+C,EAAQgsC,EAAsByP,EAAaT,EAAuB7G,EAAUpI,IAC5E+H,EAAcnB,EAAAA,YAAYl/C,IAChB,MAARA,GACFu4C,EAAqBjf,SACrBgf,EAA6Bhf,SAC7BiT,GAAkBhpC,OAAOgJ,GACzBmgC,GAAgBnpC,OAAOgJ,GAEnBxU,EAAI6P,SAAWokC,IAEjBj0C,EAAI6P,QAAQo9B,oBAAoB,cAAesiB,IAO7Ctb,IAEFhsC,EAAK8kC,iBAAiB,cAAewiB,GAIzCvvD,EAAI6P,QAAU5H,GACb,CAACu4C,EAAsBD,EAA8B/rC,EAAQ+6C,IAMhE7K,GAA0B,KACxB,IAAIpiB,EAAS8U,GAAYC,UAAU7iC,GAEnC,OADA8tB,EAAOpiC,SAAS6sC,iBAAiB,kBAAmBwT,GAC7C,KACLje,EAAOpiC,SAAS+sC,oBAAoB,kBAAmBsT,KAExD,CAACA,IACJ,IAAI38B,EAAc2lC,EAAS,CAAC/0C,EAAQ,KAChCuyC,EAAkBc,GAA0C,IAA3BrzC,EAAOtO,SAAS5E,QAA0D,IAA1CkB,MAAMJ,KAAKsS,GAAKwC,MAAM1C,IAASlT,QAAwC,KAAxBoT,GAAKqK,OAAOvK,KAAmBsmC,EAC/IoY,EAA2B/L,EAAAA,YAAYC,IAEvC,IAAI+L,EADF/L,GAAiBL,EAGnBiJ,EAAyF,QAAnEmD,EAAwB/L,EAAc3jB,+BAA+D,IAA1B0vB,OAAmC,EAASA,EAAsBhnC,QAEnK6jC,OAAqBlmD,IAEtB,CAACi9C,IAEJ,GAAIA,EAAiB,CACnB,IAAIprC,EAAQkB,GAAOlB,MAAMnH,EAAQ,IACjCoP,EAAYlW,KAAK,CACfgoC,CAACA,KAAqB,EACtBmS,cACAL,oBAAqB0L,EACrBh4C,OAAQS,EACRR,MAAOQ,GAEX,CAEA,IAAI8F,MACFA,GACEjN,EAGJ,GAFA+7C,EAAMK,oBAAqB,EAEvBp8C,EAAOC,WAAapE,GAAMiM,YAAY9H,EAAOC,YAAcgN,EAAO,CACpE,IAAIvG,OACFA,GACE1G,EAAOC,UACPS,EAAOR,GAAKQ,KAAKV,EAAQ0G,EAAO9L,MAEhC4M,EAAOvB,GAAyBvF,EAAM8W,IAI1C,IAAK+yB,GAAOltC,OAAOqD,EAAMuM,EAAO,CAC9BgC,OAAO,IACL,CACF8sC,EAAMK,oBAAqB,EAC3B,IAAIwC,EAAQryD,OAAOsyD,YAAYtyD,OAAOuF,KAAK0V,GAAM/R,IAAIqpD,GAAQ,CAACA,EAAM,QACpE1vC,EAAYlW,KAAKoe,GAAgBA,GAAgBA,GAAgB,CAC/D6pB,CAACA,KAA0B,GAC1Byd,GAAQ3xC,GAAQ,GAAI,CACrBvG,SACAC,MAAOD,IAEX,CACF,CA8BA,OA1BA0pC,EAAAA,UAAU,KACR5jB,WAAW,KACT,IAAIvsB,UACFA,GACED,EAEJ,GAAIC,EAAW,CACb,IACEyG,OAAQglC,GACNzrC,EAEA6C,EAAQ5C,GAAKQ,KAAKV,EAAQ0rC,EAAQ9wC,MAItC,GAAIqS,IAAUs9B,GAAOltC,OAAOyF,EAAOmK,EAAO,CACxCgC,OAAO,IAGP,YADA2xB,GAAkCvqC,IAAI2J,EAAQiN,EAGlD,CAEA2zB,GAAkC5pC,OAAOgJ,OAGzBrM,EAAM7H,cAAcspD,GAAgBD,SAAU,CAChEjlD,MAAOikD,GACOxgD,EAAM7H,cAAc+oD,GAAgBM,SAAU,CAC5DjlD,MAAO6kD,GACOphD,EAAM7H,cAAc0uD,GAAY,CAC9C/mD,KAAMjI,EACN8tD,kBAAmBA,GACL3lD,EAAM7H,cAAcmtD,EAAW1sD,OAAOC,OAAO,CAC3DuyD,KAAM5K,OAAW7+C,EAAY,UAC7B,kBAAkB6+C,QAAW7+C,GAC5BgiC,EAAY,CAMb0nB,cAAYvf,IAA6BD,KAAclI,EAAW0nB,WAClEC,YAAaxf,KAA6BD,GAAclI,EAAW2nB,YAAc,QACjFC,eAAgBzf,KAA6BD,GAAclI,EAAW4nB,eAAiB,QACvF,qBAAqB,EACrB,kBAAmB,QAEnBtL,iBAAkBO,EAIlBgL,QAAQ,EACRC,gCAAgC,EAChC5zD,IAAKsoD,EACLjoD,MAAOyrB,GAAgBA,GAAgB,CAAA,EAAI8jC,EAAuB,CAAA,EAAK9jC,GAAgB,CAErFxY,SAAU,WAEVy/C,WAAY,WAEZc,SAAU,cACT9D,EAAoB,CACrB+D,UAAW/D,GACT,CAAA,IAAMJ,GACVoE,cAAe5M,EAAAA,YAAYrc,IAIzB,IAAKmJ,KAA6B0U,IAAaqL,GAAelpB,EAAOgB,EAAWioB,gBAAkB3c,GAAYmD,oBAAoB/lC,EAAQs2B,EAAMz2B,UAC9Iy2B,EAAMkoB,kBAED5b,GAAY0D,YAAYtmC,IAAS,CACpC,IAAIy/C,EAASnpB,EAAM6P,KACnB99B,GAAOgE,WAAWrM,EAAQy/C,EAC5B,GAED,CAACnoB,EAAWioB,cAAev/C,EAAQm0C,IACtCuL,QAAS/M,EAAAA,YAAYrc,IACnB,IAAIkpB,GAAelpB,EAAOgB,EAAWooB,SAIrC,GAAIrD,EAAuBhhD,QACzBghD,EAAuBhhD,QAAQ40C,kBADjC,CASA,IAAK,IAAIp1C,KAAMygD,EAAmBjgD,QAChCR,IAGFygD,EAAmBjgD,QAAU,EAV7B,GAWC,CAACi8B,EAAWooB,UACfC,OAAQhN,EAAAA,YAAYrc,IAClB,IAAI6d,IAAY4H,EAAMG,qBAAwBtZ,GAAYmD,oBAAoB/lC,EAAQs2B,EAAMz2B,UAAW2/C,GAAelpB,EAAOgB,EAAWqoB,QAAxI,CAQA,IAAIz2C,EAAO05B,GAAYe,yBAAyB3jC,GAEhD,GAAI+7C,EAAMI,gBAAkBjzC,EAAK06B,cAAjC,CAIA,IAAIgc,cACFA,GACEtpB,EAKJ,KAAIspB,IAJKhd,GAAYc,UAAU1jC,EAAQA,IAUnCwhC,GAAaoe,IAAkBA,EAAc1Y,aAAa,sBAA9D,CAOA,GAAqB,MAAjB0Y,GAAyBre,GAAUqe,IAAkBhd,GAAYE,WAAW9iC,EAAQ4/C,GAAgB,CACtG,IAAInsD,EAAOmvC,GAAY4B,YAAYxkC,EAAQ4/C,GAE3C,GAAIlb,GAAUv8B,UAAU1U,KAAUuM,EAAO4M,OAAOnZ,GAC9C,MAEJ,CAKA,GAAIurC,GAAW,CACb,IAAI6E,EAAe36B,EAAK46B,eACxBD,SAA4DA,EAAaG,iBAC3E,CAEAzD,GAAWvpC,OAAOgJ,EArBlB,CAjBA,CAVA,GAiDC,CAACm0C,EAAU4H,EAAMG,oBAAqBH,EAAMI,cAAen8C,EAAQs3B,EAAWqoB,SACjFE,QAASlN,EAAAA,YAAYrc,IACnB,GAAIsM,GAAYqD,UAAUjmC,EAAQs2B,EAAMz2B,UAAY2/C,GAAelpB,EAAOgB,EAAWuoB,UAAYte,GAAUjL,EAAMz2B,QAAS,CACxH,IAAIpM,EAAOmvC,GAAY4B,YAAYxkC,EAAQs2B,EAAMz2B,QAC7CjF,EAAOgoC,GAAY6B,SAASzkC,EAAQvM,GAKxC,IAAK4U,GAAO0D,QAAQ/L,EAAQpF,IAASsF,GAAK7N,IAAI2N,EAAQpF,KAAUnH,EAC9D,OAGF,GA1gCW,IA0gCP6iC,EAAMgD,QAA2B1+B,EAAK9N,QAAU,EAAG,CACrD,IAAImtB,EAAYrf,EAEhB,IAAM8pC,GAAUv8B,UAAU1U,KAAS4U,GAAOiE,QAAQtM,EAAQvM,GAAQ,CAChE,IAAIqsD,EAEA3gC,EAAQ9W,GAAOgD,MAAMrL,EAAQ,CAC/B8T,MAAOlnB,GAAK83C,GAAUv8B,UAAUvb,IAAMyb,GAAOiE,QAAQtM,EAAQpT,GAC7D2e,GAAI3Q,IAENqf,EAAmF,QAAtE6lC,EAAU3gC,aAAqC,EAASA,EAAM,UAA4B,IAAZ2gC,EAAqBA,EAAUllD,EAAK3M,MAAM,EAAG,EAC1I,CAEA,IAAIwY,EAAQ4B,GAAO5B,MAAMzG,EAAQia,GAEjC,YADA9F,GAAWtO,OAAO7F,EAAQyG,EAE5B,CAEA,GAAI0tC,EACF,OAGF,IAAIjF,EAAS7mC,GAAOlB,MAAMnH,EAAQpF,GAE9BiM,EAAMwB,GAAOxB,IAAI7G,EAAQpF,GACzBmlD,EAAY13C,GAAO6F,KAAKlO,EAAQ,CAClCuL,GAAI2jC,IAEF8Q,EAAU33C,GAAO6F,KAAKlO,EAAQ,CAChCuL,GAAI1E,IAGN,GAAIk5C,GAAaC,GAAWzkD,GAAK8B,OAAO0iD,EAAU,GAAIC,EAAQ,IAAK,CACjE,IAAIC,EAAS53C,GAAO5B,MAAMzG,EAAQkvC,GAElC/6B,GAAWtO,OAAO7F,EAAQigD,EAC5B,CACF,GACC,CAACjgD,EAAQs3B,EAAWuoB,QAAS1L,IAChC+L,iBAAkBvN,EAAAA,YAAYrc,IAC5B,GAAIsM,GAAYmD,oBAAoB/lC,EAAQs2B,EAAMz2B,QAAS,CACzD,IAAIsgD,EASJ,GAPIvd,GAAY0D,YAAYtmC,KAC1Bq7C,GAAe,GACf7a,GAAanqC,IAAI2J,GAAQ,IAGmC,QAA7DmgD,EAAyB9D,EAAuBhhD,eAAgD,IAA3B8kD,GAA6CA,EAAuB1R,qBAAqBnY,GAE3JkpB,GAAelpB,EAAOgB,EAAW4oB,mBAAqBphB,GACxD,OAOF,IAAKE,KAAcK,KAAsBV,KAAWY,KAAqBD,IAAgBhJ,EAAM6P,KAAM,CACnG,IAAIia,EAAmBxf,GAAkCvuC,IAAI2N,GAC7D4gC,GAAkC5pC,OAAOgJ,QAEhB1K,IAArB8qD,IACFvf,GAAqBxqC,IAAI2J,EAAQA,EAAOiN,OACxCjN,EAAOiN,MAAQmzC,GAGjB/3C,GAAOgE,WAAWrM,EAAQs2B,EAAM6P,MAChC,IAAIgH,EAAYtM,GAAqBxuC,IAAI2N,GACzC6gC,GAAqB7pC,OAAOgJ,QAEV1K,IAAd63C,IACFntC,EAAOiN,MAAQkgC,EAEnB,CACF,GACC,CAAC7V,EAAW4oB,iBAAkBlgD,IACjCqgD,oBAAqB1N,EAAAA,YAAYrc,IAC3BsM,GAAYmD,oBAAoB/lC,EAAQs2B,EAAMz2B,UAAY2/C,GAAelpB,EAAOgB,EAAW+oB,uBACxFzd,GAAY0D,YAAYtmC,KAC3Bq7C,GAAe,GACf7a,GAAanqC,IAAI2J,GAAQ,MAG5B,CAACs3B,EAAW+oB,oBAAqBrgD,IACpCsgD,mBAAoB3N,EAAAA,YAAYrc,IAC9B,GAAIsM,GAAYmD,oBAAoB/lC,EAAQs2B,EAAMz2B,QAAS,CACzD,IAAI0gD,EAIJ,GAF8D,QAA7DA,EAAyBlE,EAAuBhhD,eAAgD,IAA3BklD,GAA6CA,EAAuB5R,uBAAuBrY,GAE7JkpB,GAAelpB,EAAOgB,EAAWgpB,qBAAuBxhB,GAC1D,OAGFuc,GAAe,GACf,IAAIp7C,UACFA,GACED,EAEJ,GAAIC,EAAW,CACb,GAAIpE,GAAMkM,WAAW9H,GAEnB,YADAoI,GAAOsD,eAAe3L,GAIxB,IAAIguB,EAAS3lB,GAAOgD,MAAMrL,EAAQ,CAChC8T,MAAOlnB,GAAK83C,GAAUv8B,UAAUvb,IAAMyb,GAAOqE,SAAS1M,EAAQpT,GAC9D8qB,KAAM,YAGR,GAAIsW,EAAQ,CACV,IAAI,CAAGjT,GAAciT,EAErB,GAAI3lB,GAAO+E,MAAMpN,EAAQC,EAAUyG,OAAQqU,GAAa,CACtD,IAAIrf,EAAQ2M,GAAOzH,MAAMZ,EAAQ+a,GACjC5G,GAAWpO,aAAa/F,EAAQ,CAC9B0G,OAAQhL,EACRiL,MAAOjL,GAEX,CACF,CACF,CACF,GACC,CAAC47B,EAAWgpB,mBAAoBtgD,IACnCwgD,OAAQ7N,EAAAA,YAAYrc,KACdsM,GAAYmD,oBAAoB/lC,EAAQs2B,EAAMz2B,SAAY2/C,GAAelpB,EAAOgB,EAAWkpB,SAAYC,GAAsBnqB,KAC/HA,EAAMkoB,iBACN5b,GAAY8D,gBAAgB1mC,EAAQs2B,EAAMoqB,cAAe,UAE1D,CAACppB,EAAWkpB,OAAQxgD,IACvB2gD,MAAOhO,EAAAA,YAAYrc,IACjB,IAAK6d,GAAYvR,GAAYmD,oBAAoB/lC,EAAQs2B,EAAMz2B,UAAY2/C,GAAelpB,EAAOgB,EAAWqpB,SAAWF,GAAsBnqB,GAAQ,CACnJA,EAAMkoB,iBACN5b,GAAY8D,gBAAgB1mC,EAAQs2B,EAAMoqB,cAAe,OACzD,IAAIzgD,UACFA,GACED,EAEJ,GAAIC,EACF,GAAIpE,GAAMkM,WAAW9H,GACnBoI,GAAOsD,eAAe3L,OACjB,CACL,IAAIvM,EAAOyM,GAAK1B,OAAOwB,EAAQC,EAAUyG,OAAO9L,MAE5CyN,GAAOuE,OAAO5M,EAAQvM,IACxB0gB,GAAWnd,OAAOgJ,EAEtB,CAEJ,GACC,CAACm0C,EAAUn0C,EAAQs3B,EAAWqpB,QACjCC,WAAYjO,EAAAA,YAAYrc,IACtB,GAAIsM,GAAYqD,UAAUjmC,EAAQs2B,EAAMz2B,UAAY2/C,GAAelpB,EAAOgB,EAAWspB,YAAa,CAIhG,IAAIntD,EAAOmvC,GAAY4B,YAAYxkC,EAAQs2B,EAAMz2B,QAE7C6kC,GAAUv8B,UAAU1U,IAAS4U,GAAOuE,OAAO5M,EAAQvM,IACrD6iC,EAAMkoB,gBAEV,GACC,CAAClnB,EAAWspB,WAAY5gD,IAC3B6gD,YAAalO,EAAAA,YAAYrc,IACvB,IAAK6d,GAAYvR,GAAYqD,UAAUjmC,EAAQs2B,EAAMz2B,UAAY2/C,GAAelpB,EAAOgB,EAAWupB,aAAc,CAC9G,IAAIptD,EAAOmvC,GAAY4B,YAAYxkC,EAAQs2B,EAAMz2B,QAC7CjF,EAAOgoC,GAAY6B,SAASzkC,EAAQvM,GAOxC,GANgBixC,GAAUv8B,UAAU1U,IAAS4U,GAAOuE,OAAO5M,EAAQvM,IAAS4U,GAAO6F,KAAKlO,EAAQ,CAC9FuL,GAAI3Q,EACJoZ,OAAO,IAIM,CACb,IAAIvN,EAAQ4B,GAAO5B,MAAMzG,EAAQpF,GACjCuZ,GAAWtO,OAAO7F,EAAQyG,EAC5B,CAEAs1C,EAAME,sBAAuB,EAC7BrZ,GAAY8D,gBAAgB1mC,EAAQs2B,EAAMyY,aAAc,OAC1D,GACC,CAACoF,EAAUn0C,EAAQs3B,EAAWupB,YAAa9E,IAC9C+E,OAAQnO,EAAAA,YAAYrc,IAClB,IAAK6d,GAAYvR,GAAYqD,UAAUjmC,EAAQs2B,EAAMz2B,UAAY2/C,GAAelpB,EAAOgB,EAAWwpB,QAAS,CACzGxqB,EAAMkoB,iBAEN,IAAIuC,EAAe/gD,EAAOC,UAEtBwG,EAAQm8B,GAAYuB,eAAenkC,EAAQs2B,GAC3C6P,EAAO7P,EAAMyY,aACjB56B,GAAWtO,OAAO7F,EAAQyG,GAEtBs1C,EAAME,wBACJ8E,GAAiBllD,GAAMwB,OAAO0jD,EAAct6C,IAAW4B,GAAO6F,KAAKlO,EAAQ,CAC7EuL,GAAI9E,EACJuN,OAAO,KAEPG,GAAWnd,OAAOgJ,EAAQ,CACxBuL,GAAIw1C,KAKVne,GAAYsD,WAAWlmC,EAAQmmC,GAG1BvD,GAAY2D,UAAUvmC,IACzB4iC,GAAYj8B,MAAM3G,EAEtB,CAEA+7C,EAAME,sBAAuB,GAC5B,CAAC9H,EAAUn0C,EAAQs3B,EAAWwpB,OAAQ/E,IACzCiF,UAAWrO,EAAAA,YAAYrc,KAChB6d,GAAY4H,EAAME,sBAAwB3kB,EAAW0pB,WAAape,GAAYqD,UAAUjmC,EAAQs2B,EAAMz2B,SACzGy3B,EAAW0pB,UAAU1qB,GAMvBylB,EAAME,sBAAuB,GAC5B,CAAC9H,EAAU4H,EAAOzkB,EAAYt3B,IACjCihD,QAAStO,EAAAA,YAAYrc,IACnB,IAAK6d,IAAa4H,EAAMG,qBAAuBtZ,GAAYiD,kBAAkB7lC,EAAQs2B,EAAMz2B,UAAY2/C,GAAelpB,EAAOgB,EAAW2pB,SAAU,CAChJ,IAAIrxB,EAAKgT,GAAYc,UAAU1jC,EAAQA,GACnCkJ,EAAO05B,GAAYe,yBAAyB3jC,GAKhD,GAJA+7C,EAAMI,cAAgBjzC,EAAK06B,cAIvB7E,IAAczI,EAAMz2B,SAAW+vB,EAEjC,YADAA,EAAGjpB,QAIL45B,GAAWlqC,IAAI2J,GAAQ,EACzB,GACC,CAACm0C,EAAU4H,EAAO/7C,EAAQs3B,EAAW2pB,UACxCC,UAAWvO,EAAAA,YAAYrc,IACrB,IAAK6d,GAAYvR,GAAYiD,kBAAkB7lC,EAAQs2B,EAAMz2B,QAAS,CACpE,IAAIshD,EAE0D,QAA7DA,EAAyB9E,EAAuBhhD,eAAgD,IAA3B8lD,GAA6CA,EAAuBtR,cAAcvZ,GACxJ,IAAI8N,YACFA,GACE9N,EASJ,GALIsM,GAAY0D,YAAYtmC,KAAuC,IAA5BokC,EAAYkC,cACjD9F,GAAanqC,IAAI2J,GAAQ,GACzBq7C,GAAe,IAGbmE,GAAelpB,EAAOgB,EAAW4pB,YAActe,GAAY0D,YAAYtmC,GACzE,OAGF,IAAIC,UACFA,GACED,EACAwF,EAAUxF,EAAOtO,SAAuB,OAAduO,EAAqBA,EAAU0G,MAAM/L,KAAK,GAAK,GACzEsV,EAA+C,QAAvCqkC,GAAar0C,GAAKqK,OAAO/E,IAKrC,GAAI6xC,GAAQoB,OAAOrU,GAAc,CAC/B9N,EAAMkoB,iBACN,IAAI4C,EAAqBphD,EAMzB,YAJuC,mBAA5BohD,EAAmBvK,MAC5BuK,EAAmBvK,OAIvB,CAEA,GAAIQ,GAAQwB,OAAOzU,GAAc,CAC/B9N,EAAMkoB,iBACN,IAAI6C,EAAsBrhD,EAM1B,YAJwC,mBAA7BqhD,EAAoBlL,MAC7BkL,EAAoBlL,OAIxB,CAMA,GAAIkB,GAAQgB,mBAAmBjU,GAM7B,OALA9N,EAAMkoB,sBACNrqC,GAAWvO,KAAK5F,EAAQ,CACtByL,KAAM,OACNjP,SAAS,IAKb,GAAI66C,GAAQiB,kBAAkBlU,GAK5B,OAJA9N,EAAMkoB,sBACNrqC,GAAWvO,KAAK5F,EAAQ,CACtByL,KAAM,SAKV,GAAI4rC,GAAQa,qBAAqB9T,GAO/B,OANA9N,EAAMkoB,sBACNrqC,GAAWvO,KAAK5F,EAAQ,CACtByL,KAAM,OACNqR,KAAM,QACNtgB,SAAS,IAKb,GAAI66C,GAAQc,oBAAoB/T,GAM9B,OALA9N,EAAMkoB,sBACNrqC,GAAWvO,KAAK5F,EAAQ,CACtByL,KAAM,OACNqR,KAAM,UAUV,GAAIu6B,GAAQG,eAAepT,GAazB,OAZA9N,EAAMkoB,sBAEFv+C,GAAapE,GAAMiM,YAAY7H,GACjCkU,GAAWvO,KAAK5F,EAAQ,CACtBxD,SAAU0T,IAGZiE,GAAWzO,SAAS1F,EAAQ,CAC1B8c,KAAM,WAOZ,GAAIu6B,GAAQI,cAAcrT,GAaxB,OAZA9N,EAAMkoB,sBAEFv+C,GAAapE,GAAMiM,YAAY7H,GACjCkU,GAAWvO,KAAK5F,EAAQ,CACtBxD,QAAS0T,IAGXiE,GAAWzO,SAAS1F,EAAQ,CAC1B8c,KAAM,SAOZ,GAAIu6B,GAAQkB,mBAAmBnU,GAa7B,OAZA9N,EAAMkoB,iBAEFv+C,GAAapE,GAAMkM,WAAW9H,IAChCkU,GAAWzO,SAAS1F,EAAQ,CAC1B8c,KAAM,eAIV3I,GAAWvO,KAAK5F,EAAQ,CACtByL,KAAM,OACNjP,SAAU0T,IAKd,GAAImnC,GAAQmB,kBAAkBpU,GAa5B,OAZA9N,EAAMkoB,iBAEFv+C,GAAapE,GAAMkM,WAAW9H,IAChCkU,GAAWzO,SAAS1F,EAAQ,CAC1B8c,KAAM,eAIV3I,GAAWvO,KAAK5F,EAAQ,CACtByL,KAAM,OACNjP,QAAS0T,IAQb,GAAKuvB,IAgHH,IAAIP,IAAaF,KAGX/+B,IAAco3C,GAAQK,iBAAiBtT,IAAgBiT,GAAQM,gBAAgBvT,KAAiBvoC,GAAMiM,YAAY7H,GAAY,CAChI,IAAI0b,EAAczb,GAAK1B,OAAOwB,EAAQC,EAAUyG,OAAO9L,MAEvD,GAAI8pC,GAAUv8B,UAAUwT,IAAgBtT,GAAOuE,OAAO5M,EAAQ2b,KAAiBtT,GAAOqE,SAAS1M,EAAQ2b,IAAgBtT,GAAOiE,QAAQtM,EAAQ2b,IAK5I,OAJA2a,EAAMkoB,sBACNn2C,GAAOmD,eAAexL,EAAQ,CAC5ByL,KAAM,SAIZ,MA7H2B,CAG7B,GAAI4rC,GAAQC,OAAOlT,IAAgBiT,GAAQe,SAAShU,IAAgBiT,GAAQuB,qBAAqBxU,GAE/F,YADA9N,EAAMkoB,iBAIR,GAAInH,GAAQqB,YAAYtU,GAGtB,OAFA9N,EAAMkoB,sBACNn2C,GAAO+D,gBAAgBpM,GAIzB,GAAIq3C,GAAQsB,aAAavU,GAGvB,OAFA9N,EAAMkoB,sBACNn2C,GAAO4D,YAAYjM,GAIrB,GAAIq3C,GAAQK,iBAAiBtT,GAW3B,OAVA9N,EAAMkoB,sBAEFv+C,GAAapE,GAAMkM,WAAW9H,GAChCoI,GAAOsD,eAAe3L,EAAQ,CAC5BuZ,UAAW,aAGblR,GAAOmD,eAAexL,IAM1B,GAAIq3C,GAAQM,gBAAgBvT,GAW1B,OAVA9N,EAAMkoB,sBAEFv+C,GAAapE,GAAMkM,WAAW9H,GAChCoI,GAAOsD,eAAe3L,EAAQ,CAC5BuZ,UAAW,YAGblR,GAAOqD,cAAc1L,IAMzB,GAAIq3C,GAAQO,qBAAqBxT,GAa/B,OAZA9N,EAAMkoB,sBAEFv+C,GAAapE,GAAMkM,WAAW9H,GAChCoI,GAAOsD,eAAe3L,EAAQ,CAC5BuZ,UAAW,aAGblR,GAAOmD,eAAexL,EAAQ,CAC5ByL,KAAM,UAOZ,GAAI4rC,GAAQQ,oBAAoBzT,GAa9B,OAZA9N,EAAMkoB,sBAEFv+C,GAAapE,GAAMkM,WAAW9H,GAChCoI,GAAOsD,eAAe3L,EAAQ,CAC5BuZ,UAAW,YAGblR,GAAOqD,cAAc1L,EAAQ,CAC3ByL,KAAM,UAOZ,GAAI4rC,GAAQS,qBAAqB1T,GAa/B,OAZA9N,EAAMkoB,sBAEFv+C,GAAapE,GAAMkM,WAAW9H,GAChCoI,GAAOsD,eAAe3L,EAAQ,CAC5BuZ,UAAW,aAGblR,GAAOmD,eAAexL,EAAQ,CAC5ByL,KAAM,UAOZ,GAAI4rC,GAAQU,oBAAoB3T,GAa9B,OAZA9N,EAAMkoB,sBAEFv+C,GAAapE,GAAMkM,WAAW9H,GAChCoI,GAAOsD,eAAe3L,EAAQ,CAC5BuZ,UAAW,YAGblR,GAAOqD,cAAc1L,EAAQ,CAC3ByL,KAAM,SAMd,CAiBF,GACC,CAAC0oC,EAAUn0C,EAAQs3B,EAAW4pB,YACjCI,QAAS3O,EAAAA,YAAYrc,IACd6d,IAAYvR,GAAYiD,kBAAkB7lC,EAAQs2B,EAAMz2B,SAAY2/C,GAAelpB,EAAOgB,EAAWgqB,YAQnG7hB,IAjsIcnJ,IAClBA,EAAMoqB,eAA+D,KAA9CpqB,EAAMoqB,cAAca,QAAQ,eAA6D,IAArCjrB,EAAMoqB,cAAcc,MAAM10D,OAgsIrE20D,CAAqBnrB,EAAM8N,cAAgBpF,MAC1E1I,EAAMkoB,iBACN5b,GAAYsD,WAAWlmC,EAAQs2B,EAAMoqB,iBAGxC,CAACvM,EAAUn0C,EAAQs3B,EAAWgqB,YAClB3tD,EAAM7H,cAAc2uD,GAAU,CAC7CrrC,YAAaA,EACb3b,KAAMuM,EACNi0C,cAAeA,EACf/B,kBAAmBA,EACnBC,WAAYA,EACZlyC,UAAWD,EAAOC,iBAOlB26C,GAAqB7wC,IACvB,IAAIutB,WACFA,EAAU5lC,SACVA,GACEqY,EACJ,OAIEpW,EAAM7H,cAAc,OAAQS,OAAOC,OAAO,CAAA,EAAI8qC,GAAa5lC,EAAUotC,IAA2BnrC,EAAM7H,cAAc,KAAM,QAO1HgvD,GAAkB,IAAM,GAKxBI,GAAiC,CAACl7C,EAAQukC,KAG5C,GAAIA,EAAStV,yBAA2BjvB,EAAOC,WAAaD,EAAOC,WAAapE,GAAMiM,YAAY9H,EAAOC,YAAa,CACpH,IAAIyhD,EAASnd,EAAS6E,eAAe/a,cACrCqzB,EAAOzyB,sBAAwBsV,EAAStV,sBAAsB96B,KAAKowC,GACnEzU,GAAe4xB,EAAQ,CACrB3zB,WAAY,qBAGP2zB,EAAOzyB,qBAChB,GAOEuwB,GAAiB,CAAClpB,EAAOqrB,KAC3B,IAAKA,EACH,OAAO,EAKT,IAAIC,EAA4BD,EAAQrrB,GAExC,OAAiC,MAA7BsrB,EACKA,EAGFtrB,EAAMurB,sBAAwBvrB,EAAMwrB,wBAMzCrB,GAAwBnqB,GACnBiL,GAAUjL,EAAMz2B,UAAYy2B,EAAMz2B,kBAAkBkiD,kBAAoBzrB,EAAMz2B,kBAAkBmiD,qBAMrGrE,GAAoB,CAACrnB,EAAOqrB,KAC9B,IAAKA,EACH,OAAO,EAKT,IAAIC,EAA4BD,EAAQrrB,GAExC,OAAiC,MAA7BsrB,EACKA,EAGFtrB,EAAM2rB,kBAOXC,GAA8B5jB,EAAAA,eAAc,GAiBhD,IAAI6jB,GAAoC7jB,EAAAA,cAAc,IAElD8jB,GAAc,CAACnqD,EAAGd,IAAMc,IAAMd,EAYlC,SAASkrD,GAAiBC,GACxB,IAAIC,EAAa11D,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAKu1D,IACjF,CAAGvG,GAAeC,EAAAA,WAAWpvD,GAAKA,EAAI,EAAG,GACzC6oD,EAAU/W,EAAAA,WAAW2jB,IAEzB,IAAK5M,EACH,MAAM,IAAI3kD,MAAM,oFAGlB,IAOI4xD,GAPAC,SACFA,EAAQlqB,iBACRA,GACEgd,EACAmN,EAAkCjS,EAAAA,SAClCkS,EAAiBlS,SAAO,IAAM,MAC9BmS,EAAsBnS,EAAAA,OAAO,MAGjC,IAEI+R,EADEF,IAAaK,EAAetnD,SAAWqnD,EAAgCrnD,QACzDinD,EAASG,KAETG,EAAoBvnD,OAExC,CAAE,MAAOwiC,GAKP,MAJI6kB,EAAgCrnD,SAAmBwiC,aA9CjCjtC,QA+CpBitC,EAAIrH,SAAW,4DAA4DtoC,OAAOw0D,EAAgCrnD,QAAQwnD,MAAO,SAG7HhlB,CACR,CAiCA,OA/BAqS,GAA0B,KACxByS,EAAetnD,QAAUinD,EACzBM,EAAoBvnD,QAAUmnD,EAC9BE,EAAgCrnD,aAAU/F,IAE5C46C,GAA0B,KACxB,SAAS4S,IACP,IACE,IAAIC,EAAmBJ,EAAetnD,QAAQonD,KAE9C,GAAIF,EAAWQ,EAAkBH,EAAoBvnD,SACnD,OAGFunD,EAAoBvnD,QAAU0nD,CAChC,CAAE,MAAOllB,GAKP6kB,EAAgCrnD,QAAUwiC,CAC5C,CAEAge,GACF,CAEA,IAAImH,EAAczqB,EAAiBuqB,GAEnC,OADAA,IACO,IAAME,KAEf,CAACzqB,EAAkBkqB,IACZD,CACT,CA+BA,IAAIjrC,GAAY,CAAC,SAAU,WAAY,WAAY,gBAM/C0rC,GAAQjyD,IACV,IAAIgP,OACFA,EAAMtO,SACNA,EAAQob,SACRA,EAAQo2C,aACRA,GACElyD,EACAwW,EAAOvB,GAAyBjV,EAAOumB,KAEtCg+B,EAAS4N,GAAcxvD,EAAMg9C,SAAS,KACzC,IAAKzwC,GAAKkI,WAAW86C,GACnB,MAAM,IAAItyD,MAAM,yEAAyE1C,OAAOqT,GAASC,UAAU0hD,KAGrH,IAAK76C,GAAOC,SAAStI,GACnB,MAAM,IAAIpP,MAAM,0CAA0C1C,OAAOqT,GAASC,UAAUxB,KAKtF,OAFAA,EAAOtO,SAAWwxD,EAClB32D,OAAOC,OAAOwT,EAAQwH,GACf,CACLzR,EAAG,EACHiK,aAGAojD,gBACFA,EACAt2C,SAAUu2C,GA3Dd,SAA4BrjD,GAC1B,IAAIsjD,EAAiB7S,EAAAA,OAAO,IAAIp1C,QAC5BkoD,EAAW9S,EAAAA,OAAO,CACpBzwC,WACC3E,QACCyR,EAAW6lC,EAAAA,YAAY3yC,IACzBujD,EAASvjD,OAASA,EAClBsjD,EAAertD,QAAQ+hC,GAAYA,EAASh4B,KAC3C,CAACsjD,EAAgBC,IAYpB,MAAO,CACLH,gBAZoBpH,EAAAA,QAAQ,KACrB,CACLyG,SAAU,IAAMc,EAASvjD,OACzBu4B,iBAAkBzC,IAChBwtB,EAAepqD,KAAK48B,GACb,KACLwtB,EAAeljD,OAAOkjD,EAAe/1D,QAAQuoC,GAAW,OAI7D,CAACwtB,EAAgBC,IAGlBz2C,WAEJ,CAoCM02C,CAAmBxjD,GACnByjD,EAAkB9Q,EAAAA,YAAY,KAC5B7lC,GACFA,EAAS9M,EAAOtO,UAGlByxD,EAAWO,IAAW,CACpB3tD,EAAG2tD,EAAY3tD,EAAI,EACnBiK,YAEFqjD,EAAqBrjD,IACpB,CAACA,EAAQqjD,EAAsBv2C,IAClCsjC,EAAAA,UAAU,KACR1P,GAAoBrqC,IAAI2J,EAAQyjD,GACzB,KACL/iB,GAAoBrqC,IAAI2J,EAAQ,UAEjC,CAACA,EAAQyjD,IACZ,IAAKld,EAAWod,GAAgBhT,EAAAA,SAAS/N,GAAY2D,UAAUvmC,IA0B/D,OAzBAowC,EAAAA,UAAU,KACRuT,EAAa/gB,GAAY2D,UAAUvmC,KAClC,CAACA,IACJkwC,GAA0B,KACxB,IAAIl1C,EAAK,IAAM2oD,EAAa/gB,GAAY2D,UAAUvmC,IAElD,OAAIy+B,IAAuB,IAIzB/yC,SAAS6sC,iBAAiB,UAAWv9B,GACrCtP,SAAS6sC,iBAAiB,WAAYv9B,GAC/B,KACLtP,SAAS+sC,oBAAoB,UAAWz9B,GACxCtP,SAAS+sC,oBAAoB,WAAYz9B,MAG3CtP,SAAS6sC,iBAAiB,QAASv9B,GAAI,GACvCtP,SAAS6sC,iBAAiB,OAAQv9B,GAAI,GAC/B,KACLtP,SAAS+sC,oBAAoB,QAASz9B,GAAI,GAC1CtP,SAAS+sC,oBAAoB,OAAQz9B,GAAI,MAG5C,IACiBrH,EAAM7H,cAAcq2D,GAAqBhN,SAAU,CACrEjlD,MAAOkzD,GACOzvD,EAAM7H,cAAcupD,GAAaF,SAAU,CACzDjlD,MAAOqlD,GACO5hD,EAAM7H,cAAcuyC,GAAc8W,SAAU,CAC1DjlD,MAAOqlD,EAAQv1C,QACDrM,EAAM7H,cAAco2D,GAAe/M,SAAU,CAC3DjlD,MAAOq2C,GACN70C,OA2BDkyD,GAAmB,CAAC3rD,EAAGd,KACpBc,IAAMd,MACNc,IAAMd,IACJ0E,GAAMwB,OAAOpF,EAAGd,GAOrB0sD,GAAmB,CAAClf,EAAMmf,KAC5B,IAAIn0C,GAAUm0C,EAAY50B,IAAM40B,EAAY30B,QAAU,EACtD,OAAOwV,EAAKzV,KAAOvf,GAAUg1B,EAAKxV,QAAUxf,GAG1Co0C,GAAoB,CAAC/jD,EAAQgkD,EAAQC,KACvC,IAAIC,EAAQthB,GAAY0E,WAAWtnC,EAAQgkD,GAAQ/0B,wBAC/Ck1B,EAAQvhB,GAAY0E,WAAWtnC,EAAQikD,GAAQh1B,wBACnD,OAAO40B,GAAiBK,EAAOC,IAAUN,GAAiBM,EAAOD,IA0CnE,SAAS1qD,GAAQgG,EAAQC,GAAkB,IAAI3N,EAAOvF,OAAOuF,KAAK0N,GAAS,GAAIjT,OAAOiB,sBAAuB,CAAE,IAAIkS,EAAUnT,OAAOiB,sBAAsBgS,GAAaC,IAAkBC,EAAUA,EAAQ3N,OAAO,SAAU4N,GAAO,OAAOpT,OAAO6F,yBAAyBoN,EAAQG,GAAKzM,UAAY,IAAMpB,EAAKoH,KAAK/L,MAAM2E,EAAM4N,EAAU,CAAE,OAAO5N,CAAM,CAExV,SAAS2mB,GAAc5Y,GAAU,IAAK,IAAIlT,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI0E,EAAyB,MAAhBxE,UAAUF,GAAaE,UAAUF,GAAK,CAAA,EAAQA,EAAI,EAAK6M,GAAQjN,OAAO8E,IAAS,GAAM4E,QAAQ,SAAU1D,GAAO8M,GAAgBQ,EAAQtN,EAAKlB,EAAOkB,GAAO,GAAehG,OAAOmN,0BAA6BnN,OAAOuT,iBAAiBD,EAAQtT,OAAOmN,0BAA0BrI,IAAmBmI,GAAQjN,OAAO8E,IAAS4E,QAAQ,SAAU1D,GAAOhG,OAAOqG,eAAeiN,EAAQtN,EAAKhG,OAAO6F,yBAAyBf,EAAQkB,GAAO,EAAM,CAAE,OAAOsN,CAAQ,CAUrhB,IAAIukD,GAAY,SAAmBpkD,GACjC,IAAIqkD,EAAqBx3D,UAAUC,OAAS,QAAsBwI,IAAjBzI,UAAU,GAAmBA,UAAU,GAAK,mBACzFS,EAAI0S,GACJ7S,MACFA,EAAK2f,SACLA,EAAQtB,eACRA,EAAcF,QACdA,EAAOyB,WACPA,GACEzf,EA4RJ,OAzRA+yC,GAAyBhqC,IAAI/I,EAAG,IAAIyO,SAEpCzO,EAAEge,QAAU,CAAC/Y,EAAKrC,KAChB,IAAIszC,EAAuBqJ,EAEmC,QAA7DrJ,EAAwB7C,GAAyBtuC,IAAI/E,UAA0C,IAA1Bk2C,GAA4CA,KAE7G5C,GAAkCvuC,IAAI/E,IAAmE,QAA5Du/C,EAAwB/L,GAAwBzuC,IAAI/E,UAA0C,IAA1Bu/C,GAAoCA,EAAsB//C,QAG9K8zC,GAAkCvqC,IAAI/I,EAAG,MAG3CuzC,GAAqB7pC,OAAO1J,GAC5Bge,EAAQ/Y,EAAKrC,IAGf5C,EAAEyf,WAAaxa,IACb,IAAIu6C,GAEClM,GAAkCvuC,IAAI/E,IAAoE,QAA7Dw/C,EAAyBhM,GAAwBzuC,IAAI/E,UAA2C,IAA3Bw/C,GAAqCA,EAAuBhgD,QAGjL8zC,GAAkCvqC,IAAI/I,EAAG,MAG3CuzC,GAAqB7pC,OAAO1J,GAC5Byf,EAAWxa,IAGbjF,EAAEke,eAAiBC,IACjB,GAAa,SAATA,EACF,OAAOD,EAAeC,GAGxB,GAAIne,EAAE2S,WAAapE,GAAMiM,YAAYxa,EAAE2S,WAAY,CACjD,IAAIqkD,EAAmBj8C,GAAOgD,MAAM/d,EAAG,CACrCwmB,MAAOlnB,GAAK83C,GAAUv8B,UAAUvb,IAAMyb,GAAOiE,QAAQhf,EAAGV,GACxD2e,GAAIje,EAAE2S,YAGR,GAAIqkD,EAAkB,CACpB,IAAI,CAAGC,GAAmBD,EACtBE,EAAqBn8C,GAAO5B,MAAMnZ,EAAGi3D,EAAiBj3D,EAAE2S,UAAUyG,QAClE+9C,EAlGe,EAACzkD,EAAQ0kD,KAClC,IAAIC,EAAsBt8C,GAAO5B,MAAMzG,EAAQnE,GAAMgL,IAAI69C,IACrD72C,EAAY7f,MAAMJ,KAAKya,GAAOwF,UAAU7N,EAAQ,CAClDuL,GAAIm5C,KAEFp0C,EAAO,EACPE,EAAQ3C,EAAU/gB,OAClB6iB,EAAS3S,KAAK4nD,MAAMp0C,EAAQ,GAEhC,GAAIuzC,GAAkB/jD,EAAQqI,GAAO5B,MAAMzG,EAAQ6N,EAAUyC,IAAQq0C,GACnE,OAAOt8C,GAAO5B,MAAMzG,EAAQ6N,EAAUyC,GAAOq0C,GAG/C,GAAI92C,EAAU/gB,OAAS,EACrB,OAAOub,GAAO5B,MAAMzG,EAAQ6N,EAAUA,EAAU/gB,OAAS,GAAI63D,GAG/D,KAAOh1C,IAAW9B,EAAU/gB,QAAU6iB,IAAWW,GAC3CyzC,GAAkB/jD,EAAQqI,GAAO5B,MAAMzG,EAAQ6N,EAAU8B,IAAUg1C,GACrEn0C,EAAQb,EAERW,EAAOX,EAGTA,EAAS3S,KAAK4nD,OAAOt0C,EAAOE,GAAS,GAGvC,OAAOnI,GAAO5B,MAAMzG,EAAQ6N,EAAU2C,GAAQm0C,IAuEjBE,CAAqBv3D,EAAGk3D,GAE1C3oD,GAAMiM,YAAY28C,IACrBtwC,GAAWnd,OAAO1J,EAAG,CACnBie,GAAIk5C,GAGV,CACF,GAKFn3D,EAAEH,MAAQ0N,IACR,IAAIiO,EAAU,GACV2iC,EAAe3K,GAAwBzuC,IAAI/E,GAE/C,GAAIm+C,SAAoDA,EAAa3+C,OAAQ,CAC3E,IAAI8+C,EAAcH,EAAah2C,IAAI40C,GA9kHzC,SAA2BA,EAAUxvC,GACnC,IAAID,KACFA,EAAI0vC,KACJA,EAAIjH,GACJA,GACEgH,EAEJ,OAAQxvC,EAAG9O,MACT,IAAK,cAED,OAAKwP,GAAK8B,OAAOxC,EAAGD,KAAMA,IAASC,EAAG0F,QAAU+pC,EAAKzjC,IAC5CwjC,EAGLxvC,EAAG0F,QAAU+pC,EAAKnjC,MACb,CACLmjC,KAAM,CACJnjC,MAAOtM,EAAG2F,KAAK1T,OAASw9C,EAAKnjC,MAC7BN,IAAKhM,EAAG2F,KAAK1T,OAASw9C,EAAKzjC,IAC3BrG,KAAM8pC,EAAK9pC,MAEb6iC,KACAzoC,QAIG,CACL0vC,KAAM,CACJnjC,MAAOmjC,EAAKnjC,MACZN,IAAKyjC,EAAKzjC,IAAMhM,EAAG2F,KAAK1T,OACxB0T,KAAM8pC,EAAK9pC,MAEb6iC,KACAzoC,QAIN,IAAK,cAED,OAAKW,GAAK8B,OAAOxC,EAAGD,KAAMA,IAASC,EAAG0F,QAAU+pC,EAAKzjC,IAC5CwjC,EAGLxvC,EAAG0F,OAAS1F,EAAG2F,KAAK1T,QAAUw9C,EAAKnjC,MAC9B,CACLmjC,KAAM,CACJnjC,MAAOmjC,EAAKnjC,MAAQtM,EAAG2F,KAAK1T,OAC5B+Z,IAAKyjC,EAAKzjC,IAAMhM,EAAG2F,KAAK1T,OACxB0T,KAAM8pC,EAAK9pC,MAEb6iC,KACAzoC,QAIG,CACL0vC,KAAM,CACJnjC,MAAOmjC,EAAKnjC,MACZN,IAAKyjC,EAAKzjC,IAAMhM,EAAG2F,KAAK1T,OACxB0T,KAAM8pC,EAAK9pC,MAEb6iC,KACAzoC,QAIN,IAAK,aAED,OAAKW,GAAK8B,OAAOxC,EAAGD,KAAMA,IAASC,EAAGiE,UAAYwrC,EAAKzjC,IAC9C,CACLyjC,OACAjH,KACAzoC,KAAMW,GAAKH,UAAUR,EAAMC,EAAI,CAC7BS,SAAU,cAKZT,EAAGiE,SAAWwrC,EAAKnjC,MACd,CACLmjC,KAAM,CACJnjC,MAAOmjC,EAAKnjC,MACZN,IAAK7J,KAAKD,IAAIlC,EAAGiE,SAAUwrC,EAAKzjC,KAChCrG,KAAM8pC,EAAK9pC,MAEb6iC,KACAzoC,QAIG,CACL0vC,KAAM,CACJnjC,MAAOmjC,EAAKnjC,MAAQtM,EAAGiE,SACvB+H,IAAKyjC,EAAKzjC,IAAMhM,EAAGiE,SACnB0B,KAAM8pC,EAAK9pC,MAEb6iC,KACAzoC,KAAMW,GAAKH,UAAUR,EAAMC,EAAI,CAC7BS,SAAU,aAKlB,IAAK,aAED,OAAKC,GAAK8B,OAAOxC,EAAGD,KAAMA,GAQnB,CACL0vC,KAAM,CACJnjC,MAAOmjC,EAAKnjC,MAAQtM,EAAGiE,SACvB+H,IAAKyjC,EAAKzjC,IAAMhM,EAAGiE,SACnB0B,KAAM8pC,EAAK9pC,MAEb6iC,KACAzoC,KAAMW,GAAKH,UAAUR,EAAMC,IAdpB,CACLyvC,OACAjH,KACAzoC,KAAMW,GAAKH,UAAUR,EAAMC,IAgBrC,IAAIqE,EAAU3D,GAAKH,UAAUR,EAAMC,GAEnC,OAAKqE,EAIE,CACLorC,OACA1vC,KAAMsE,EACNmkC,MANO,IAQX,CAs8GqDyhB,CAAkBza,EAAUxvC,IAAK9I,OAAOgzD,SACvFjkB,GAAwBzqC,IAAI/I,EAAGs+C,EACjC,CAEA,IAAIY,EAAmBxL,GAA4B3uC,IAAI/E,GAEnDk/C,GACFxL,GAA4B3qC,IAAI/I,EAAGu+C,GAAsBv+C,EAAGk/C,EAAkB3xC,IAGhF,IAAImqD,EAAgBjkB,GAAyB1uC,IAAI/E,GAEjD,GAAI03D,SAAsDA,EAAcz5C,GAAI,CAC1E,IAAIA,EAAK5P,GAAM2L,QAAQ09C,aAAqD,EAASA,EAAcz5C,IAAMigC,GAAsBl+C,EAAG03D,EAAcz5C,GAAI1Q,GAAMgxC,GAAsBv+C,EAAG03D,EAAcz5C,GAAI1Q,GACrMkmC,GAAyB1qC,IAAI/I,EAAGie,EAAKkN,GAAcA,GAAc,CAAA,EAAIusC,GAAgB,GAAI,CACvFz5C,OACG,KACP,CAEA,OAAQ1Q,EAAG9O,MACT,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,aAED+c,EAAQ5P,QAAQ+rD,GAAW33D,EAAGuN,EAAGD,OACjC,MAGJ,IAAK,gBAED,IAAIgjD,EAG0D,QAA7DA,EAAwBnd,GAAyBpuC,IAAI/E,UAA0C,IAA1BswD,GAA4CA,EAAsBpiD,QACxIilC,GAAyBzpC,OAAO1J,GAChC,MAGJ,IAAK,cACL,IAAK,cAEDwb,EAAQ5P,QAAQ+rD,GAAW33D,EAAGiO,GAAKiD,OAAO3D,EAAGD,QAC7C,MAGJ,IAAK,aAED,IAAIqG,EAAW1F,GAAKkD,SAAS5D,EAAGD,MAChCkO,EAAQ5P,QAAQ+rD,GAAW33D,EAAG2T,IAC9B,MAGJ,IAAK,YAED,IAAI2gB,EAAarmB,GAAKoB,OAAOpB,GAAKiD,OAAO3D,EAAGD,MAAOW,GAAKiD,OAAO3D,EAAGqE,UAClE4J,EAAQ5P,QAAQ+rD,GAAW33D,EAAGs0B,IAOpC,IAAK,IAAKhnB,EAAMrI,KAFhBpF,EAAM0N,GAEkBiO,GAAS,CAC/B,IAAKrV,GAAQ4U,GAAO5U,KAAKnG,EAAGsN,GAC5BwlC,GAAY/pC,IAAI5C,EAAMlB,EACxB,GAGFjF,EAAEo5C,gBAAkBP,IAClB,IAAIlmC,UACFA,GACE3S,EAEJ,GAAK2S,EAAL,CAIA,IAAKkH,EAAON,GAAOhL,GAAM2K,MAAMvG,GAC3B8/C,EAAY13C,GAAO6F,KAAK5gB,EAAG,CAC7Bie,GAAIpE,EAAMvM,OAERolD,EAAU33C,GAAO6F,KAAK5gB,EAAG,CAC3Bie,GAAI1E,EAAIjM,OAGV,IAAIiB,GAAMiM,YAAY7H,IAAe8/C,EAArC,CAMA,IAAIxb,EAAW3B,GAAY0E,WAAWh6C,EAAG2S,GACrCwoC,EAAWlE,EAASmE,gBACpBwc,EAASzc,EAAS3G,WAAW,GAUjC,GARA2G,EAAS3G,WAAW7rC,QAAQxC,IACtBA,EAAK0jC,aAA2C,KAA5B1jC,EAAK0jC,YAAYguB,SACvCD,EAASzxD,KAMTusD,EAAS,CACX,IAAK9nC,GAAY8nC,EACbzqD,EAAIgvC,EAAS6gB,aACbhjB,EAAUQ,GAAYc,UAAUp2C,EAAG4qB,GACvC3iB,EAAE8vD,YAAYjjB,GACdqG,EAAWlzC,EAAEmzC,eACf,CAmBA,GAbIqX,IACFmF,EAASzc,EAASM,cAAc,wBAKlC/6C,MAAMJ,KAAK66C,EAAS1B,iBAAiB,4BAA4B9wC,QAAQqvD,IACvE,IAAIC,EAAyD,MAA7CD,EAAGrjB,aAAa,yBAChCqjB,EAAGnuB,YAAcouB,EAAY,KAAO,KAKlC3jB,GAAUsjB,GAAS,CACrB,IAAIziC,EAAOyiC,EAAOv3B,cAAc7hC,cAAc,QAG9C22B,EAAK52B,MAAM0yD,WAAa,MACxB97B,EAAKv2B,YAAYg5D,GACjBzc,EAASv8C,YAAYu2B,GACrByiC,EAASziC,CACX,CAEA,IAAI9Y,EAAWrc,EAAEksB,cACbjP,EAASoE,KAAKnN,UAAUmI,GACxB67C,EAAU13B,OAAO23B,KAAKC,mBAAmBn7C,IAC7C26C,EAAOS,aAAa,sBAAuBH,GAC3Crf,EAAKyf,QAAQ,eAAe13D,OAAOm2D,GAAqBmB,GAExD,IAAIK,EAAMpd,EAAS9a,cAAc7hC,cAAc,OAO/C,OANA+5D,EAAI35D,YAAYu8C,GAChBod,EAAIF,aAAa,SAAU,QAC3Bld,EAAS9a,cAAca,KAAKtiC,YAAY25D,GACxC1f,EAAKyf,QAAQ,YAAaC,EAAI7b,WAC9B7D,EAAKyf,QAAQ,aAAczjB,GAAa0jB,IACxCpd,EAAS9a,cAAca,KAAKoa,YAAYid,GACjC1f,CAhEP,CAZA,GA+EF74C,EAAE44C,WAAaC,IACR74C,EAAE84C,mBAAmBD,IACxB74C,EAAE+4C,eAAeF,IAIrB74C,EAAE84C,mBAAqBD,IAIrB,IAAIx8B,EAAWw8B,EAAKob,QAAQ,eAAerzD,OAAOm2D,KA5sJtBtV,KAC9B,IAAI+W,EAAW/W,EAAawS,QAAQ,cAChC,CAAG53C,GAAYm8C,EAAShyC,MAAM0uB,KAAuB,GACzD,OAAO74B,GAysJqEo8C,CAA0B5f,GAEpG,GAAIx8B,EAAU,CACZ,IAAIq8C,EAAUC,mBAAmBn4B,OAAOo4B,KAAKv8C,IACzCw8C,EAASx3C,KAAKy3C,MAAMJ,GAExB,OADA14D,EAAE4e,eAAei6C,IACV,CACT,CAEA,OAAO,GAGT74D,EAAE+4C,eAAiBF,IACjB,IAAI3lC,EAAO2lC,EAAKob,QAAQ,cAExB,GAAI/gD,EAAM,CACR,IAAI6lD,EAAQ7lD,EAAK2W,MAAM,cACnBA,GAAQ,EAEZ,IAAK,IAAIq4B,KAAQ6W,EACXlvC,GACFhD,GAAW/O,WAAW9X,EAAG,CACvBsqB,QAAQ,IAIZtqB,EAAE+e,WAAWmjC,GACbr4B,GAAQ,EAGV,OAAO,CACT,CAEA,OAAO,GAGT7pB,EAAEwf,SAAWvQ,KAMakiC,GAAsB,GAAK6nB,EAASC,wBAA0BzwB,GAAYA,KAChF,KAChB,IAAI2tB,EAAkB/iB,GAAoBruC,IAAI/E,GAE1Cm2D,GACFA,IAGF32C,EAASvQ,MAINjP,CACT,EAEI23D,GAAa,CAAC33D,EAAGsN,KACnB,IAAIkO,EAAU,GAEd,IAAK,IAAKlc,EAAGG,KAAMsb,GAAO3L,OAAOpP,EAAG,CAClCie,GAAI3Q,IACF,CACF,IAAIrI,EAAMqwC,GAAY0C,QAAQh4C,EAAGV,GACjCkc,EAAQ5P,KAAK,CAACnM,EAAGwF,GACnB,CAEA,OAAOuW,GC7lKT,SAAS09C,KAKP,IAJA,IACIC,EACAC,EAFAvmD,EAAQ,EAGRoK,EAAS,GACNpK,EAAQtT,UAAUC,SACnB25D,EAAW55D,UAAUsT,QACnBumD,EAAgBC,GAAQF,MAC1Bl8C,IAAWA,GAAU,KACrBA,GAAUm8C,GAIhB,OAAOn8C,CACT,CACA,SAASo8C,GAAQC,GACf,GAAmB,iBAARA,EACT,OAAOA,EAIT,IAFA,IAAIF,EACAn8C,EAAS,GACJvY,EAAI,EAAGA,EAAI40D,EAAI95D,OAAQkF,IAC1B40D,EAAI50D,KACF00D,EAAgBC,GAAQC,EAAI50D,OAC9BuY,IAAWA,GAAU,KACrBA,GAAUm8C,GAIhB,OAAOn8C,CACT,CCtCA,SAASs8C,GAAiB31D,GACxB,IAAI41D,EAyDN,SAAwB51D,GACtB,IAAI61D,EAAQ71D,EAAO61D,MACjBC,EAAS91D,EAAO81D,OACdF,EAAW,CACbG,SAAU,IAAIzwD,IACd0wD,WAAY,IAEVC,EAiDN,SAAsCC,EAAmBJ,GACvD,IAAKA,EACH,OAAOI,EAET,OAAOA,EAAkB3xD,IAAI,SAAU4xD,GAgBrC,MAAO,CAfYA,EAAM,GACVA,EAAM,GACe5xD,IAAI,SAAU6xD,GAChD,MAA+B,iBAApBA,EACFN,EAASM,EAEa,iBAApBA,EACF/6D,OAAOsyD,YAAYtyD,OAAOmpC,QAAQ4xB,GAAiB7xD,IAAI,SAAU8xD,GACtE,IAAIh1D,EAAMg1D,EAAM,GACdr3D,EAAQq3D,EAAM,GAChB,MAAO,CAACP,EAASz0D,EAAKrC,EACxB,IAEKo3D,CACT,GAEF,EACF,CAvEkCE,CAA6Bj7D,OAAOmpC,QAAQxkC,EAAOu2D,aAAcT,GAMjG,OALAG,EAA0BlxD,QAAQ,SAAU4iB,GAC1C,IAAI6uC,EAAe7uC,EAAM,GAEzB8uC,GADe9uC,EAAM,GACiBiuC,EAAUY,EAAcX,EAChE,GACOD,CACT,CAvEiBc,CAAe12D,GAC1B22D,EAAyB32D,EAAO22D,uBAClCC,EAAwB52D,EAAO62D,+BAC/BA,OAA2D,IAA1BD,EAAmC,CAAA,EAAKA,EAgB3E,MAAO,CACLE,gBAhBF,SAAyBC,GACvB,IAAIC,EAAaD,EAAU9wC,MAPJ,KAYvB,MAHsB,KAAlB+wC,EAAW,IAAmC,IAAtBA,EAAWp7D,QACrCo7D,EAAW/tB,QAENguB,GAAkBD,EAAYpB,IAkCzC,SAAwCmB,GACtC,GAAIG,GAAuBt2C,KAAKm2C,GAAY,CAC1C,IAAII,EAA6BD,GAAuBE,KAAKL,GAAW,GACpEM,EAAWF,GAA4Bl3C,UAAU,EAAGk3C,EAA2B96D,QAAQ,MAC3F,GAAIg7D,EAEF,MAAO,cAAgBA,CAE3B,CACF,CA3CsDC,CAA+BP,EACnF,EAUEQ,4BATF,SAAqCf,EAAcgB,GACjD,IAAIC,EAAYd,EAAuBH,IAAiB,GACxD,OAAIgB,GAAsBX,EAA+BL,GAChD,GAAGx5D,OAAOy6D,EAAWZ,EAA+BL,IAEtDiB,CACT,EAKF,CACA,SAASR,GAAkBD,EAAYU,GACrC,GAA0B,IAAtBV,EAAWp7D,OACb,OAAO87D,EAAgBlB,aAEzB,IAAImB,EAAmBX,EAAW,GAC9BY,EAAsBF,EAAgB3B,SAAS50D,IAAIw2D,GACnDE,EAA8BD,EAAsBX,GAAkBD,EAAWj6D,MAAM,GAAI66D,QAAuBxzD,EACtH,GAAIyzD,EACF,OAAOA,EAET,GAA0C,IAAtCH,EAAgB1B,WAAWp6D,OAA/B,CAGA,IAAIk8D,EAAYd,EAAWj2D,KAvCF,KAwCzB,OAAO22D,EAAgB1B,WAAWjkB,KAAK,SAAUl5B,GAE/C,OAAOk/C,EADSl/C,EAAKk/C,WACJD,EACnB,IAAItB,YALJ,CAMF,CACA,IAAIU,GAAyB,aA6B7B,SAAST,GAA0BuB,EAAYN,EAAiBlB,EAAcX,GAC5EmC,EAAWjzD,QAAQ,SAAUqxD,GAC3B,GAA+B,iBAApBA,EAAX,CAKA,GAA+B,mBAApBA,EACT,OAAkBA,EA+BV6B,mBA9BNxB,GAA0BL,EAAgBP,GAAQ6B,EAAiBlB,EAAcX,QAGnF6B,EAAgB1B,WAAWhuD,KAAK,CAC9B+vD,UAAW3B,EACXI,aAAcA,IAIlBn7D,OAAOmpC,QAAQ4xB,GAAiBrxD,QAAQ,SAAUmzD,GAChD,IAAI72D,EAAM62D,EAAM,GAEhBzB,GADeyB,EAAM,GACiBC,GAAQT,EAAiBr2D,GAAMm1D,EAAcX,EACrF,EAhBA,KAJA,EACkD,KAApBO,EAAyBsB,EAAkBS,GAAQT,EAAiBtB,IAC1EI,aAAeA,CAEvC,CAiBF,EACF,CACA,SAAS2B,GAAQT,EAAiBhuD,GAChC,IAAI0uD,EAAyBV,EAU7B,OATAhuD,EAAKuc,MArGoB,KAqGQlhB,QAAQ,SAAUszD,GAC5CD,EAAuBrC,SAAS9wD,IAAIozD,IACvCD,EAAuBrC,SAAS5wD,IAAIkzD,EAAU,CAC5CtC,SAAU,IAAIzwD,IACd0wD,WAAY,KAGhBoC,EAAyBA,EAAuBrC,SAAS50D,IAAIk3D,EAC/D,GACOD,CACT,CC9GA,SAASE,GAAeC,GACtB,GAAIA,EAAe,EACjB,MAAO,CACLp3D,IAAK,WAEL,EACAgE,IAAK,WAAgB,GAGzB,IAAIqzD,EAAY,EACZ13B,EAAQ,IAAIx7B,IACZmzD,EAAgB,IAAInzD,IACxB,SAASozD,EAAOr3D,EAAKrC,GACnB8hC,EAAM37B,IAAI9D,EAAKrC,KACfw5D,EACgBD,IACdC,EAAY,EACZC,EAAgB33B,EAChBA,EAAQ,IAAIx7B,IAEhB,CACA,MAAO,CACLnE,IAAK,SAAaE,GAChB,IAAIrC,EAAQ8hC,EAAM3/B,IAAIE,GACtB,YAAc+C,IAAVpF,EACKA,OAEgCoF,KAApCpF,EAAQy5D,EAAct3D,IAAIE,KAC7Bq3D,EAAOr3D,EAAKrC,GACLA,QAFT,CAIF,EACAmG,IAAK,SAAa9D,EAAKrC,GACjB8hC,EAAM77B,IAAI5D,GACZy/B,EAAM37B,IAAI9D,EAAKrC,GAEf05D,EAAOr3D,EAAKrC,EAEhB,EAEJ,CCxCA,SAAS25D,GAAqB34D,GAC5B,IAAI44D,EAAY54D,EAAO44D,WAAa,IAChCC,EAAkD,IAArBD,EAAUh9D,OACvCk9D,EAA0BF,EAAU,GACpCG,EAAkBH,EAAUh9D,OAEhC,OAAO,SAAwBm7D,GAK7B,IAJA,IAGIiC,EAHAC,EAAY,GACZC,EAAe,EACfC,EAAgB,EAEXlqD,EAAQ,EAAGA,EAAQ8nD,EAAUn7D,OAAQqT,IAAS,CACrD,IAAImqD,EAAmBrC,EAAU9nD,GACjC,GAAqB,IAAjBiqD,EAAoB,CACtB,GAAIE,IAAqBN,IAA4BD,GAA8B9B,EAAUh6D,MAAMkS,EAAOA,EAAQ8pD,KAAqBH,GAAY,CACjJK,EAAUjxD,KAAK+uD,EAAUh6D,MAAMo8D,EAAelqD,IAC9CkqD,EAAgBlqD,EAAQ8pD,EACxB,QACF,CACA,GAAyB,MAArBK,EAA0B,CAC5BJ,EAA0B/pD,EAC1B,QACF,CACF,CACyB,MAArBmqD,EACFF,IAC8B,MAArBE,GACTF,GAEJ,CACA,IAAIG,EAA0D,IAArBJ,EAAUr9D,OAAem7D,EAAYA,EAAU92C,UAAUk5C,GAC9FG,EAAuBD,EAAmCljB,WAhCzC,KAmCrB,MAAO,CACL8iB,UAAWA,EACXK,qBAAsBA,EACtBC,cALkBD,EAAuBD,EAAmCp5C,UAAU,GAAKo5C,EAM3FG,6BALiCR,GAA2BA,EAA0BG,EAAgBH,EAA0BG,OAAgB/0D,EAOpJ,CACF,CCxCA,IAAIq1D,GAAsB,MCE1B,SAASC,KACP,IAAK,IAAIjyC,EAAO9rB,UAAUC,OAAQ+9D,EAAe,IAAI78D,MAAM2qB,GAAO7X,EAAO,EAAGA,EAAO6X,EAAM7X,IACvF+pD,EAAa/pD,GAAQjU,UAAUiU,GAEjC,IAAIgqD,EACAC,EACAC,EACAC,EACJ,SAA2BC,GACzB,IAAIC,EAAoBN,EAAa,GAEjC35D,EADiB25D,EAAa58D,MAAM,GACV28C,OAAO,SAAUwgB,EAAgBC,GAC7D,OAAOA,EAAoBD,EAC7B,EAAGD,KAKH,OAJAL,ECdJ,SAA2B55D,GACzB,MAAO,CACL8gC,MAAOw3B,GAAet4D,EAAOw4D,WAC7B4B,eAAgBzB,GAAqB34D,MAClC21D,GAAiB31D,GAExB,CDQkBq6D,CAAkBr6D,GAChC65D,EAAWD,EAAY94B,MAAM3/B,IAC7B24D,EAAWF,EAAY94B,MAAM37B,IAC7B40D,EAAiBO,EACVA,EAAcN,EACvB,EACA,SAASM,EAAcN,GACrB,IAAIhhD,EAAe6gD,EAASG,GAC5B,GAAIhhD,EACF,OAAOA,EAET,IAAI1H,ED1BR,SAAwB0oD,EAAWJ,GACjC,IAAIQ,EAAiBR,EAAYQ,eAC/BtD,EAAkB8C,EAAY9C,gBAC9BS,EAA8BqC,EAAYrC,4BAQxCgD,EAAwB,IAAI/0D,IAChC,OAAOw0D,EAAU/F,OAAOhuC,MAAMwzC,IAAqBl1D,IAAI,SAAUi2D,GAC/D,IAAIC,EAAkBL,EAAeI,GACnCvB,EAAYwB,EAAgBxB,UAC5BK,EAAuBmB,EAAgBnB,qBACvCC,EAAgBkB,EAAgBlB,cAChCC,EAA+BiB,EAAgBjB,6BAC7ChD,EAAeM,EAAgB0C,EAA+BD,EAAct5C,UAAU,EAAGu5C,GAAgCD,GACzH/B,EAAqB3D,QAAQ2F,GACjC,IAAKhD,EAAc,CACjB,IAAKgD,EACH,MAAO,CACLkB,iBAAiB,EACjBF,kBAAmBA,GAIvB,KADAhE,EAAeM,EAAgByC,IAE7B,MAAO,CACLmB,iBAAiB,EACjBF,kBAAmBA,GAGvBhD,GAAqB,CACvB,CACA,IAAImD,EDSR,SAAuB1B,GACrB,GAAIA,EAAUr9D,QAAU,EACtB,OAAOq9D,EAET,IAAI2B,EAAkB,GAClBC,EAAoB,GAWxB,OAVA5B,EAAUl0D,QAAQ,SAAUynC,GACe,MAAhBA,EAAS,IAEhCouB,EAAgB5yD,KAAK/L,MAAM2+D,EAAiBC,EAAkBC,OAAO99D,OAAO,CAACwvC,KAC7EquB,EAAoB,IAEpBA,EAAkB7yD,KAAKwkC,EAE3B,GACAouB,EAAgB5yD,KAAK/L,MAAM2+D,EAAiBC,EAAkBC,QACvDF,CACT,CC1B0BG,CAAc9B,GAAWl4D,KAAK,KAEpD,MAAO,CACL25D,iBAAiB,EACjBM,WAHe1B,EAAuBqB,EDxCnB,ICwC0DA,EAI7EnE,aAAcA,EACdgE,kBAAmBA,EACnBhD,mBAAoBA,EAExB,GAAGlsD,UAEFzK,OAAO,SAAUo0D,GAChB,IAAKA,EAAOyF,gBACV,OAAO,EAET,IAAIM,EAAa/F,EAAO+F,WACtBxE,EAAevB,EAAOuB,aACtBgB,EAAqBvC,EAAOuC,mBAC1ByD,EAAUD,EAAaxE,EAC3B,OAAI+D,EAAsBt1D,IAAIg2D,KAG9BV,EAAsBn1D,IAAI61D,GAC1B1D,EAA4Bf,EAAcgB,GAAoBzyD,QAAQ,SAAUm2D,GAC9E,OAAOX,EAAsBn1D,IAAI41D,EAAaE,EAChD,IACO,EACT,GAAG5vD,UAAU/G,IAAI,SAAU0wD,GACzB,OAAOA,EAAOuF,iBAChB,GAAGz5D,KAAK,IACV,CCxCiBo6D,CAAenB,EAAWJ,GAEvC,OADAE,EAASE,EAAW1oD,GACbA,CACT,CACA,OAAO,WACL,OAAOyoD,EAAezE,GAAOr5D,MAAM,KAAMN,WAC3C,CACF,CEpCA,SAASy/D,GAAU/5D,GACjB,IAAIg6D,EAAc,SAAqBxF,GACrC,OAAOA,EAAMx0D,IAAQ,EACvB,EAEA,OADAg6D,EAAYpD,eAAgB,EACrBoD,CACT,CCNA,IAAIC,GAAsB,6BACtBC,GAAgB,aAChBC,GAA6B,IAAIh2D,IAAI,CAAC,KAAM,OAAQ,WACpDi2D,GAAkB,mCAClBC,GAAkB,4HAElBC,GAAc,yDAClB,SAASC,GAAS58D,GAChB,OAAO68D,GAAS78D,IAAUw8D,GAAcv2D,IAAIjG,IAAUu8D,GAAc36C,KAAK5hB,IAAU88D,GAAkB98D,EACvG,CACA,SAAS88D,GAAkB98D,GACzB,OAAO+8D,GAAoB/8D,EAAO,SAAUg9D,GAC9C,CACA,SAASC,GAAgBj9D,GACvB,OAAO+8D,GAAoB/8D,EAAO,OAAQk9D,GAC5C,CACA,SAASC,GAAoBn9D,GAC3B,OAAO+8D,GAAoB/8D,EAAO,WAAYk9D,GAChD,CACA,SAASE,GAAep9D,GACtB,OAAO+8D,GAAoB/8D,EAAO,MAAOq9D,GAC3C,CACA,SAASC,GAAkBt9D,GACzB,OAAO+8D,GAAoB/8D,EAAO,SAAU68D,GAC9C,CAKA,SAASA,GAAS78D,GAChB,OAAQyJ,OAAOC,MAAMD,OAAOzJ,GAC9B,CACA,SAASu9D,GAAUv9D,GACjB,OAAOA,EAAM2a,SAAS,MAAQkiD,GAAS78D,EAAMjC,MAAM,GAAG,GACxD,CACA,SAASy/D,GAAUx9D,GACjB,OAAOy9D,GAAcz9D,IAAU+8D,GAAoB/8D,EAAO,SAAUy9D,GACtE,CACA,SAASC,GAAiB19D,GACxB,OAAOs8D,GAAoB16C,KAAK5hB,EAClC,CACA,SAAS29D,KACP,OAAO,CACT,CACA,SAASC,GAAa59D,GACpB,OAAOy8D,GAAgB76C,KAAK5hB,EAC9B,CACA,SAAS69D,GAAkB79D,GACzB,OAAO+8D,GAAoB/8D,EAAO,GAAI89D,GACxC,CACA,SAASf,GAAoB/8D,EAAO+9D,EAAOC,GACzC,IAAI1rD,EAASgqD,GAAoBlE,KAAKp4D,GACtC,QAAIsS,IACEA,EAAO,GACFA,EAAO,KAAOyrD,EAEhBC,EAAU1rD,EAAO,IAG5B,CACA,SAAS0qD,GAAah9D,GACpB,OAAO08D,GAAgB96C,KAAK5hB,EAC9B,CACA,SAASk9D,KACP,OAAO,CACT,CACA,SAASG,GAAMr9D,GACb,OAAOA,EAAMm3C,WAAW,OAC1B,CACA,SAASsmB,GAAcz9D,GACrB,OAAOyJ,OAAO+zD,UAAU/zD,OAAOzJ,GACjC,CACA,SAAS89D,GAAS99D,GAChB,OAAO28D,GAAY/6C,KAAK5hB,EAC1B,CCvEA,SAASi+D,KACP,IAAIC,EAAS9B,GAAU,UACnB+B,EAAU/B,GAAU,WACpB7oB,EAAO6oB,GAAU,QACjBgC,EAAahC,GAAU,cACvBiC,EAAcjC,GAAU,eACxBkC,EAAelC,GAAU,gBACzBmC,EAAgBnC,GAAU,iBAC1BoC,EAAcpC,GAAU,eACxBqC,EAAWrC,GAAU,YACrBsC,EAAYtC,GAAU,aACtBuC,EAAYvC,GAAU,aACtBwC,EAASxC,GAAU,UACnByC,EAAMzC,GAAU,OAChB0C,EAAqB1C,GAAU,sBAC/B2C,EAA6B3C,GAAU,8BACvC4C,EAAQ5C,GAAU,SAClB6C,EAAS7C,GAAU,UACnB9Y,EAAU8Y,GAAU,WACpB8C,EAAU9C,GAAU,WACpB+C,EAAW/C,GAAU,YACrBgD,EAAQhD,GAAU,SAClBiD,EAAQjD,GAAU,SAClBkD,EAAOlD,GAAU,QACjBpxB,EAAQoxB,GAAU,SAClBmD,EAAYnD,GAAU,aAOtBoD,EAAiC,WACnC,MAAO,CAAC,OAAQ9B,GAAkBS,EACpC,EACIsB,EAA0B,WAC5B,MAAO,CAAC/B,GAAkBS,EAC5B,EACIuB,EAAqB,WACvB,MAAO,CAAC,GAAI9C,GACd,EACI+C,EAAgC,WAClC,MAAO,CAAC,OAAQ9C,GAAUa,GAC5B,EAaIkC,EAAkB,WACpB,MAAO,CAAC,GAAI,IAAKlC,GACnB,EAIImC,EAAY,WACd,MAAO,CAAChD,GAAUS,GACpB,EACIwC,EAAwB,WAC1B,MAAO,CAACjD,GAAUa,GACpB,EACA,MAAO,CACLlE,UAAW,IACX3C,MAAO,CACLqH,OAAQ,CAACP,IACTQ,QAAS,CAACvB,IACVrpB,KAAM,CAAC,OAAQ,GAAIqqB,GAAcF,IACjCU,WAAYyB,IACZxB,YAAa,CAACH,GACdI,aAAc,CAAC,OAAQ,GAAI,OAAQV,GAAcF,IACjDa,cAAekB,IACfjB,YAAakB,IACbjB,SAAUoB,IACVnB,UAAWkB,IACXjB,UAAWmB,IACXlB,OAAQgB,IACRf,IAAKY,IACLX,mBAAoB,CAACZ,GACrBa,2BAA4B,CAACxB,GAAWT,IACxCkC,MAAOQ,IACPP,OAAQO,IACRlc,QAASuc,IACTX,QAASO,IACTN,SAAUU,IACVT,MAAOS,IACPR,MAAOO,IACPN,KAAMQ,IACN90B,MAAOy0B,IACPF,UAAWE,KAEblI,YAAa,CAMXwI,OAAQ,CAAC,CACPA,OAAQ,CAAC,OAAQ,SAAU,QAASrC,MAMtCsC,UAAW,CAAC,aAKZC,QAAS,CAAC,CACRA,QAAS,CAACrC,MAMZ,cAAe,CAAC,CACd,cA/DG,CAAC,OAAQ,QAAS,MAAO,aAAc,OAAQ,OAAQ,QAAS,YAqErE,eAAgB,CAAC,CACf,eAtEG,CAAC,OAAQ,QAAS,MAAO,aAAc,OAAQ,OAAQ,QAAS,YA4ErE,eAAgB,CAAC,CACf,eAAgB,CAAC,OAAQ,QAAS,aAAc,kBAMlD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,QAAS,WAM9Bt0B,IAAK,CAAC,CACJA,IAAK,CAAC,SAAU,aAMlBT,QAAS,CAAC,QAAS,eAAgB,SAAU,OAAQ,cAAe,QAAS,eAAgB,gBAAiB,aAAc,eAAgB,qBAAsB,qBAAsB,qBAAsB,kBAAmB,YAAa,YAAa,OAAQ,cAAe,WAAY,YAAa,UAK3Sq3B,MAAS,CAAC,CACRA,MAAS,CAAC,QAAS,OAAQ,UAM7Br5D,MAAO,CAAC,CACNA,MAAO,CAAC,OAAQ,QAAS,OAAQ,UAMnCs5D,UAAW,CAAC,UAAW,kBAKvB,aAAc,CAAC,CACb7wD,OAAQ,CAAC,UAAW,QAAS,OAAQ,OAAQ,gBAM/C,kBAAmB,CAAC,CAClBA,OAAQ,GAAGtR,OAhJR,CAAC,SAAU,SAAU,OAAQ,cAAe,WAAY,QAAS,eAAgB,YAAa,OAgJ/D,CAAC0/D,OAMrC0C,SAAU,CAAC,CACTA,SAtKG,CAAC,OAAQ,SAAU,OAAQ,UAAW,YA4K3C,aAAc,CAAC,CACb,aA7KG,CAAC,OAAQ,SAAU,OAAQ,UAAW,YAmL3C,aAAc,CAAC,CACb,aApLG,CAAC,OAAQ,SAAU,OAAQ,UAAW,YA0L3CC,WAAY,CAAC,CACXA,WA9LG,CAAC,OAAQ,UAAW,UAoMzB,eAAgB,CAAC,CACf,eArMG,CAAC,OAAQ,UAAW,UA2MzB,eAAgB,CAAC,CACf,eA5MG,CAAC,OAAQ,UAAW,UAkNzBzxD,SAAU,CAAC,SAAU,QAAS,WAAY,WAAY,UAKtDowD,MAAO,CAAC,CACNA,MAAO,CAACA,KAMV,UAAW,CAAC,CACV,UAAW,CAACA,KAMd,UAAW,CAAC,CACV,UAAW,CAACA,KAMd/nD,MAAO,CAAC,CACNA,MAAO,CAAC+nD,KAMVroD,IAAK,CAAC,CACJA,IAAK,CAACqoD,KAMRhgC,IAAK,CAAC,CACJA,IAAK,CAACggC,KAMR1+C,MAAO,CAAC,CACNA,MAAO,CAAC0+C,KAMV//B,OAAQ,CAAC,CACPA,OAAQ,CAAC+/B,KAMX5+C,KAAM,CAAC,CACLA,KAAM,CAAC4+C,KAMTsB,WAAY,CAAC,UAAW,YAAa,YAKrCl4D,EAAG,CAAC,CACFA,EAAG,CAAC,OAAQo1D,MAOd+C,MAAO,CAAC,CACNA,MAAOf,MAMT,iBAAkB,CAAC,CACjBgB,KAAM,CAAC,MAAO,cAAe,MAAO,iBAMtC,YAAa,CAAC,CACZA,KAAM,CAAC,OAAQ,eAAgB,YAMjCA,KAAM,CAAC,CACLA,KAAM,CAAC,IAAK,OAAQ,UAAW,OAAQ9C,MAMzC+C,KAAM,CAAC,CACLA,KAAMb,MAMRc,OAAQ,CAAC,CACPA,OAAQd,MAMVe,MAAO,CAAC,CACNA,MAAO,CAAC,QAAS,OAAQ,OAAQnD,MAMnC,YAAa,CAAC,CACZ,YAAa,CAACG,MAMhB,gBAAiB,CAAC,CAChBiD,IAAK,CAAC,OAAQ,CACZruC,KAAM,CAAC,OAAQirC,KACdE,MAML,YAAa,CAAC,CACZ,YAAaiC,MAMf,UAAW,CAAC,CACV,UAAWA,MAMb,YAAa,CAAC,CACZ,YAAa,CAAChC,MAMhB,gBAAiB,CAAC,CAChBkD,IAAK,CAAC,OAAQ,CACZtuC,KAAM,CAACirC,KACNE,MAML,YAAa,CAAC,CACZ,YAAaiC,MAMf,UAAW,CAAC,CACV,UAAWA,MAMb,YAAa,CAAC,CACZ,YAAa,CAAC,MAAO,MAAO,QAAS,YAAa,eAMpD,YAAa,CAAC,CACZ,YAAa,CAAC,OAAQ,MAAO,MAAO,KAAMjC,MAM5C,YAAa,CAAC,CACZ,YAAa,CAAC,OAAQ,MAAO,MAAO,KAAMA,MAM5CmB,IAAK,CAAC,CACJA,IAAK,CAACA,KAMR,QAAS,CAAC,CACR,QAAS,CAACA,KAMZ,QAAS,CAAC,CACR,QAAS,CAACA,KAMZ,kBAAmB,CAAC,CAClBiC,QAAS,CAAC,UAAU9iE,OAhajB,CAAC,QAAS,MAAO,SAAU,UAAW,SAAU,SAAU,cAsa/D,gBAAiB,CAAC,CAChB,gBAAiB,CAAC,QAAS,MAAO,SAAU,aAM9C,eAAgB,CAAC,CACf,eAAgB,CAAC,OAAQ,QAAS,MAAO,SAAU,aAMrD,gBAAiB,CAAC,CAChB+iE,QAAS,CAAC,UAAU/iE,OArbjB,CAAC,QAAS,MAAO,SAAU,UAAW,SAAU,SAAU,WAqbtB,CAAC,eAM1C,cAAe,CAAC,CACdgjE,MAAO,CAAC,QAAS,MAAO,SAAU,WAAY,aAMhD,aAAc,CAAC,CACb5/D,KAAM,CAAC,OAAQ,QAAS,MAAO,SAAU,UAAW,cAMtD,gBAAiB,CAAC,CAChB,gBAAiB,GAAGpD,OA1cjB,CAAC,QAAS,MAAO,SAAU,UAAW,SAAU,SAAU,WA0ctB,CAAC,eAM1C,cAAe,CAAC,CACd,cAAe,CAAC,QAAS,MAAO,SAAU,WAAY,aAMxD,aAAc,CAAC,CACb,aAAc,CAAC,OAAQ,QAAS,MAAO,SAAU,aAOnDnB,EAAG,CAAC,CACFA,EAAG,CAACqiE,KAMN+B,GAAI,CAAC,CACHA,GAAI,CAAC/B,KAMPgC,GAAI,CAAC,CACHA,GAAI,CAAChC,KAMPiC,GAAI,CAAC,CACHA,GAAI,CAACjC,KAMPkC,GAAI,CAAC,CACHA,GAAI,CAAClC,KAMPmC,GAAI,CAAC,CACHA,GAAI,CAACnC,KAMPoC,GAAI,CAAC,CACHA,GAAI,CAACpC,KAMPqC,GAAI,CAAC,CACHA,GAAI,CAACrC,KAMPsC,GAAI,CAAC,CACHA,GAAI,CAACtC,KAMPx3D,EAAG,CAAC,CACFA,EAAG,CAACu3D,KAMNwC,GAAI,CAAC,CACHA,GAAI,CAACxC,KAMPyC,GAAI,CAAC,CACHA,GAAI,CAACzC,KAMP0C,GAAI,CAAC,CACHA,GAAI,CAAC1C,KAMP2C,GAAI,CAAC,CACHA,GAAI,CAAC3C,KAMP4C,GAAI,CAAC,CACHA,GAAI,CAAC5C,KAMP6C,GAAI,CAAC,CACHA,GAAI,CAAC7C,KAMP8C,GAAI,CAAC,CACHA,GAAI,CAAC9C,KAMP+C,GAAI,CAAC,CACHA,GAAI,CAAC/C,KAMP,UAAW,CAAC,CACV,UAAW,CAACj0B,KAMd,kBAAmB,CAAC,mBAKpB,UAAW,CAAC,CACV,UAAW,CAACA,KAMd,kBAAmB,CAAC,mBAMpBvjC,EAAG,CAAC,CACFA,EAAG,CAAC,OAAQ,MAAO,MAAO,MAAOi2D,GAAkBS,KAMrD,QAAS,CAAC,CACR,QAAS,CAAC,MAAO,MAAO,MAAOT,GAAkBd,MAMnD,QAAS,CAAC,CACR,QAAS,CAAC,IAAK,OAAQ,OAAQ,MAAO,MAAO,MAAO,QAAS,CAC3DqF,OAAQ,CAACrE,KACRA,GAAcF,MAMnB32D,EAAG,CAAC,CACFA,EAAG,CAAC22D,GAAkBS,EAAS,OAAQ,MAAO,MAAO,SAMvD,QAAS,CAAC,CACR,QAAS,CAAC,MAAO,MAAO,MAAOT,GAAkBd,MAMnD,QAAS,CAAC,CACR,QAAS,CAACc,GAAkBS,EAAS,MAAO,MAAO,SAOrD,YAAa,CAAC,CACZ7tD,KAAM,CAAC,OAAQstD,GAAcd,MAM/B,iBAAkB,CAAC,cAAe,wBAKlC,aAAc,CAAC,SAAU,cAKzB,cAAe,CAAC,CACdoF,KAAM,CAAC,OAAQ,aAAc,QAAS,SAAU,SAAU,WAAY,OAAQ,YAAa,QAAS5E,MAMtG,cAAe,CAAC,CACd4E,KAAM,CAACvE,MAMT,aAAc,CAAC,eAKf,cAAe,CAAC,WAKhB,mBAAoB,CAAC,gBAKrB,aAAc,CAAC,cAAe,iBAK9B,cAAe,CAAC,oBAAqB,gBAKrC,eAAgB,CAAC,qBAAsB,oBAKvCwE,SAAU,CAAC,CACTA,SAAU,CAAC,UAAW,QAAS,SAAU,OAAQ,QAAS,SAAUzE,MAMtE,aAAc,CAAC,CACb,aAAc,CAAC,OAAQb,GAAUS,MAMnC3hC,QAAS,CAAC,CACRA,QAAS,CAAC,OAAQ,QAAS,OAAQ,SAAU,UAAW,QAAS+hC,GAAkBd,MAMrF,aAAc,CAAC,CACb,aAAc,CAAC,OAAQc,MAMzB,kBAAmB,CAAC,CAClBzvD,KAAM,CAAC,OAAQ,OAAQ,UAAWyvD,MAMpC,sBAAuB,CAAC,CACtBzvD,KAAM,CAAC,SAAU,aAOnB,oBAAqB,CAAC,CACpBk1C,YAAa,CAAC+a,KAMhB,sBAAuB,CAAC,CACtB,sBAAuB,CAAC5a,KAM1B,iBAAkB,CAAC,CACjBhzC,KAAM,CAAC,OAAQ,SAAU,QAAS,UAAW,QAAS,SAMxD,aAAc,CAAC,CACbA,KAAM,CAAC4tD,KAMT,eAAgB,CAAC,CACf,eAAgB,CAAC5a,KAMnB,kBAAmB,CAAC,YAAa,WAAY,eAAgB,gBAK7D,wBAAyB,CAAC,CACxB8e,WAAY,GAAGpkE,OA1zBZ,CAAC,QAAS,SAAU,SAAU,SAAU,QA0zBJ,CAAC,WAM1C,4BAA6B,CAAC,CAC5BokE,WAAY,CAAC,OAAQ,YAAaxF,MAMpC,mBAAoB,CAAC,CACnB,mBAAoB,CAAC,OAAQc,GAAkBd,MAMjD,wBAAyB,CAAC,CACxBwF,WAAY,CAAClE,KAMf,iBAAkB,CAAC,YAAa,YAAa,aAAc,eAK3D,gBAAiB,CAAC,WAAY,gBAAiB,aAK/CmE,OAAQ,CAAC,CACPA,OAAQ5C,MAMV,iBAAkB,CAAC,CACjB6C,MAAO,CAAC,WAAY,MAAO,SAAU,SAAU,WAAY,cAAe,MAAO,QAAS5E,MAM5F6E,WAAY,CAAC,CACXA,WAAY,CAAC,SAAU,SAAU,MAAO,WAAY,WAAY,kBAMlEp4B,MAAS,CAAC,CACRA,MAAS,CAAC,SAAU,QAAS,MAAO,UAMtCq4B,QAAS,CAAC,CACRA,QAAS,CAAC,OAAQ,SAAU,UAM9BzB,QAAS,CAAC,CACRA,QAAS,CAAC,OAAQrD,MAOpB,gBAAiB,CAAC,CAChB+E,GAAI,CAAC,QAAS,QAAS,YAMzB,UAAW,CAAC,CACV,UAAW,CAAC,SAAU,UAAW,UAAW,UAO9C,aAAc,CAAC,CACb,aAAc,CAACnf,KAMjB,YAAa,CAAC,CACZ,YAAa,CAAC,SAAU,UAAW,aAMrC,cAAe,CAAC,CACdmf,GAAI,GAAGzkE,OA36BJ,CAAC,SAAU,SAAU,OAAQ,cAAe,WAAY,QAAS,eAAgB,YAAa,OA26BnE,CAACm/D,OAMjC,YAAa,CAAC,CACZsF,GAAI,CAAC,YAAa,CAChBC,OAAQ,CAAC,GAAI,IAAK,IAAK,QAAS,aAOpC,UAAW,CAAC,CACVD,GAAI,CAAC,OAAQ,QAAS,UAAWxF,MAMnC,WAAY,CAAC,CACXwF,GAAI,CAAC,OAAQ,CACX,cAAe,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,OACrDrF,MAML,WAAY,CAAC,CACXqF,GAAI,CAACvE,KAMP,oBAAqB,CAAC,CACpBxgE,KAAM,CAACqhE,KAMT,mBAAoB,CAAC,CACnB4D,IAAK,CAAC5D,KAMR,kBAAmB,CAAC,CAClBthE,GAAI,CAACshE,KAMP,gBAAiB,CAAC,CAChBrhE,KAAM,CAACohE,KAMT,eAAgB,CAAC,CACf6D,IAAK,CAAC7D,KAMR,cAAe,CAAC,CACdrhE,GAAI,CAACqhE,KAOP8D,QAAS,CAAC,CACRA,QAAS,CAACtE,KAMZ,YAAa,CAAC,CACZ,YAAa,CAACA,KAMhB,YAAa,CAAC,CACZ,YAAa,CAACA,KAMhB,YAAa,CAAC,CACZ,YAAa,CAACA,KAMhB,YAAa,CAAC,CACZ,YAAa,CAACA,KAMhB,YAAa,CAAC,CACZ,YAAa,CAACA,KAMhB,YAAa,CAAC,CACZ,YAAa,CAACA,KAMhB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,WAAY,CAAC,CACXuE,OAAQ,CAACrE,KAMX,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,iBAAkB,CAAClb,KAMrB,eAAgB,CAAC,CACfuf,OAAQ,GAAG7kE,OAzqCR,CAAC,QAAS,SAAU,SAAU,SAAU,QAyqCR,CAAC,aAMtC,WAAY,CAAC,CACX,WAAY,CAACwgE,KAMf,mBAAoB,CAAC,oBAKrB,WAAY,CAAC,CACX,WAAY,CAACA,KAMf,mBAAoB,CAAC,oBAKrB,iBAAkB,CAAC,CACjB,iBAAkB,CAAClb,KAMrB,eAAgB,CAAC,CACfwf,OA/sCG,CAAC,QAAS,SAAU,SAAU,SAAU,UAqtC7C,eAAgB,CAAC,CACfD,OAAQ,CAACxE,KAMX,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,eAAgB,CAAC,CACfyE,OAAQ,CAACzE,KAMX,gBAAiB,CAAC,CAChB7Z,QAAS,CAAC,IAAIxmD,OA9wCX,CAAC,QAAS,SAAU,SAAU,SAAU,WAoxC7C,iBAAkB,CAAC,CACjB,iBAAkB,CAAC0/D,GAAkBd,MAMvC,YAAa,CAAC,CACZpY,QAAS,CAACoY,MAMZ,gBAAiB,CAAC,CAChBpY,QAAS,CAAC0Z,KAMZ,SAAU,CAAC,CACT6E,KAAMrD,MAMR,eAAgB,CAAC,cAKjB,aAAc,CAAC,CACbqD,KAAM,CAAC7E,KAMT,eAAgB,CAAC,CACf,eAAgB,CAAC5a,KAMnB,gBAAiB,CAAC,CAChB,cAAe,CAACsZ,MAMlB,oBAAqB,CAAC,CACpB,cAAe,CAACsB,KAOlB8E,OAAQ,CAAC,CACPA,OAAQ,CAAC,GAAI,QAAS,OAAQpF,GAAcC,MAM9C,eAAgB,CAAC,CACfmF,OAAQ,CAACrF,MAMXra,QAAS,CAAC,CACRA,QAAS,CAACA,KAMZ,YAAa,CAAC,CACZ,YAr2CG,CAAC,SAAU,WAAY,SAAU,UAAW,SAAU,UAAW,cAAe,aAAc,aAAc,aAAc,aAAc,YAAa,MAAO,aAAc,QAAS,aAAc,kBA22CtM,WAAY,CAAC,CACX,WA52CG,CAAC,SAAU,WAAY,SAAU,UAAW,SAAU,UAAW,cAAe,aAAc,aAAc,aAAc,aAAc,YAAa,MAAO,aAAc,QAAS,aAAc,kBAo3CtMzhD,OAAQ,CAAC,CACPA,OAAQ,CAAC,GAAI,UAMf0xC,KAAM,CAAC,CACLA,KAAM,CAACA,KAMT6qB,WAAY,CAAC,CACXA,WAAY,CAACA,KAMfK,SAAU,CAAC,CACTA,SAAU,CAACA,KAMb,cAAe,CAAC,CACd,cAAe,CAAC,GAAI,OAAQb,GAAcF,MAM5CgB,UAAW,CAAC,CACVA,UAAW,CAACA,KAMd,aAAc,CAAC,CACb,aAAc,CAACC,KAMjBC,OAAQ,CAAC,CACPA,OAAQ,CAACA,KAMXO,SAAU,CAAC,CACTA,SAAU,CAACA,KAMbE,MAAO,CAAC,CACNA,MAAO,CAACA,KAOV,kBAAmB,CAAC,CAClB,kBAAmB,CAAC,GAAI,UAM1B,gBAAiB,CAAC,CAChB,gBAAiB,CAAC9rB,KAMpB,sBAAuB,CAAC,CACtB,sBAAuB,CAAC6qB,KAM1B,oBAAqB,CAAC,CACpB,oBAAqB,CAACK,KAMxB,qBAAsB,CAAC,CACrB,qBAAsB,CAACC,KAMzB,sBAAuB,CAAC,CACtB,sBAAuB,CAACC,KAM1B,kBAAmB,CAAC,CAClB,kBAAmB,CAACC,KAMtB,mBAAoB,CAAC,CACnB,mBAAoB,CAACtb,KAMvB,oBAAqB,CAAC,CACpB,oBAAqB,CAAC6b,KAMxB,iBAAkB,CAAC,CACjB,iBAAkB,CAACE,KAOrB,kBAAmB,CAAC,CAClBwD,OAAQ,CAAC,WAAY,cAMvB,iBAAkB,CAAC,CACjB,iBAAkB,CAACtE,KAMrB,mBAAoB,CAAC,CACnB,mBAAoB,CAACA,KAMvB,mBAAoB,CAAC,CACnB,mBAAoB,CAACA,KAMvB,eAAgB,CAAC,CACf0E,MAAO,CAAC,OAAQ,WAMlBC,QAAS,CAAC,CACRA,QAAS,CAAC,MAAO,YAOnBC,WAAY,CAAC,CACXA,WAAY,CAAC,OAAQ,MAAO,GAAI,SAAU,UAAW,SAAU,YAAazF,MAM9E0F,SAAU,CAAC,CACTA,SAAUtD,MAMZuD,KAAM,CAAC,CACLA,KAAM,CAAC,SAAU,KAAM,MAAO,SAAU3F,MAM1C4F,MAAO,CAAC,CACNA,MAAOxD,MAMTyD,QAAS,CAAC,CACRA,QAAS,CAAC,OAAQ,OAAQ,OAAQ,QAAS,SAAU7F,MAOvDxyD,UAAW,CAAC,CACVA,UAAW,CAAC,GAAI,MAAO,UAMzBk0D,MAAO,CAAC,CACNA,MAAO,CAACA,KAMV,UAAW,CAAC,CACV,UAAW,CAACA,KAMd,UAAW,CAAC,CACV,UAAW,CAACA,KAMdoE,OAAQ,CAAC,CACPA,OAAQ,CAAChG,GAAWE,MAMtB,cAAe,CAAC,CACd,cAAe,CAAC6B,KAMlB,cAAe,CAAC,CACd,cAAe,CAACA,KAMlB,SAAU,CAAC,CACT,SAAU,CAACD,KAMb,SAAU,CAAC,CACT,SAAU,CAACA,KAMb,mBAAoB,CAAC,CACnBmE,OAAQ,CAAC,SAAU,MAAO,YAAa,QAAS,eAAgB,SAAU,cAAe,OAAQ,WAAY/F,MAO/GgG,OAAQ,CAAC,CACPA,OAAQ,CAAC,OAAQxF,KAMnByF,WAAY,CAAC,mBAKbC,OAAQ,CAAC,CACPA,OAAQ,CAAC,OAAQ,UAAW,UAAW,OAAQ,OAAQ,OAAQ,OAAQ,cAAe,OAAQ,eAAgB,WAAY,OAAQ,YAAa,gBAAiB,QAAS,OAAQ,UAAW,OAAQ,WAAY,aAAc,aAAc,aAAc,WAAY,WAAY,WAAY,WAAY,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,cAAe,cAAe,UAAW,WAAYlG,MAM/a,cAAe,CAAC,CACdmG,MAAO,CAAC3F,KAMV,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,OAAQ,UAM7B4F,OAAQ,CAAC,CACPA,OAAQ,CAAC,OAAQ,IAAK,IAAK,MAM7B,kBAAmB,CAAC,CAClBxjC,OAAQ,CAAC,OAAQ,YAMnB,WAAY,CAAC,CACX,WAAYm/B,MAMd,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,WAAY,CAAC,CACX,WAAYA,MAMd,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,aAAc,CAAC,CACbsE,KAAM,CAAC,QAAS,MAAO,SAAU,gBAMnC,YAAa,CAAC,CACZA,KAAM,CAAC,SAAU,YAMnB,YAAa,CAAC,CACZA,KAAM,CAAC,OAAQ,IAAK,IAAK,UAM3B,kBAAmB,CAAC,CAClBA,KAAM,CAAC,YAAa,eAMtBC,MAAO,CAAC,CACNA,MAAO,CAAC,OAAQ,OAAQ,aAAc,eAAgB,CACpDC,IAAK,CAAC,IAAK,OAAQ,QAAS,IAAK,KAAM,YAO3CtuD,OAAQ,CAAC,CACPA,OAAQ,CAAC,OAAQ,OAAQ,MAAO,UAMlC,cAAe,CAAC,CACd,cAAe,CAAC,OAAQ,SAAU,WAAY,YAAa+nD,MAO7DwG,KAAM,CAAC,CACLA,KAAM,CAAChG,EAAQ,UAMjB,WAAY,CAAC,CACXiG,OAAQ,CAACvH,GAAUU,MAMrB6G,OAAQ,CAAC,CACPA,OAAQ,CAACjG,EAAQ,UAOnBkG,GAAI,CAAC,UAAW,gBAElBzM,uBAAwB,CACtByI,SAAU,CAAC,aAAc,cACzBC,WAAY,CAAC,eAAgB,gBAC7BrB,MAAO,CAAC,UAAW,UAAW,QAAS,MAAO,MAAO,QAAS,SAAU,QACxE,UAAW,CAAC,QAAS,QACrB,UAAW,CAAC,MAAO,UACnBwB,KAAM,CAAC,QAAS,OAAQ,UACxB3B,IAAK,CAAC,QAAS,SACfhiE,EAAG,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC9CokE,GAAI,CAAC,KAAM,MACXC,GAAI,CAAC,KAAM,MACXx5D,EAAG,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC9C+5D,GAAI,CAAC,KAAM,MACXC,GAAI,CAAC,KAAM,MACX,YAAa,CAAC,WACd,aAAc,CAAC,cAAe,mBAAoB,aAAc,cAAe,gBAC/E,cAAe,CAAC,cAChB,mBAAoB,CAAC,cACrB,aAAc,CAAC,cACf,cAAe,CAAC,cAChB,eAAgB,CAAC,cACjBkB,QAAS,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,cAC1L,YAAa,CAAC,aAAc,cAC5B,YAAa,CAAC,aAAc,cAC5B,YAAa,CAAC,aAAc,cAC5B,YAAa,CAAC,aAAc,cAC5B,YAAa,CAAC,aAAc,cAC5B,YAAa,CAAC,aAAc,cAC5B,iBAAkB,CAAC,mBAAoB,oBACvC,WAAY,CAAC,aAAc,aAAc,aAAc,aAAc,aAAc,cACnF,aAAc,CAAC,aAAc,cAC7B,aAAc,CAAC,aAAc,cAC7B,eAAgB,CAAC,iBAAkB,iBAAkB,iBAAkB,kBACvE,iBAAkB,CAAC,iBAAkB,kBACrC,iBAAkB,CAAC,iBAAkB,kBACrC,WAAY,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,aACxG,YAAa,CAAC,YAAa,aAC3B,YAAa,CAAC,YAAa,aAC3B,WAAY,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,aACxG,YAAa,CAAC,YAAa,aAC3B,YAAa,CAAC,YAAa,cAE7B/K,+BAAgC,CAC9B,YAAa,CAAC,YAGpB,CCl/DA,IAAIwM,GAAuB3J,GAAoBuD,UCDlCqG,GAIX,WAAA/jE,CAAoB66B,GAAAl+B,KAAAk+B,KAAAA,EAEpBl+B,KAAA6/B,SAAWwnC,MAAOppC,KAA2BzS,KAE3CxrB,KAAK2/B,SAEL3/B,KAAKowD,UAAYhxB,WAAWioC,UAC1B,IACErnE,KAAKsnE,sBAAwB,IAAIC,sBAG3BtpC,KAAQzS,EAAMxrB,KAAKsnE,sBAAsBE,QAE/CxnE,KAAKsnE,2BAAwBp/D,CAC/B,CAAE,MAAOlG,GAAQ,GAChBhC,KAAKk+B,OAGVl+B,KAAA2/B,OAAS,KACH3/B,KAAKsnE,wBACPtnE,KAAKsnE,sBAAsBG,QAC3BznE,KAAKsnE,2BAAwBp/D,QAGRA,IAAnBlI,KAAKowD,YACP1wB,aAAa1/B,KAAKowD,WAClBpwD,KAAKowD,eAAYloD,GA1Bc,ECNrC,SAASC,GAAEjI,GAAG,IAAIb,EAAE2J,EAAExJ,EAAE,GAAG,GAAG,iBAAiBU,GAAG,iBAAiBA,EAAEV,GAAGU,OAAO,GAAG,iBAAiBA,EAAE,GAAGU,MAAM+F,QAAQzG,GAAG,IAAIb,EAAE,EAAEA,EAAEa,EAAER,OAAOL,IAAIa,EAAEb,KAAK2J,EAAEb,GAAEjI,EAAEb,OAAOG,IAAIA,GAAG,KAAKA,GAAGwJ,QAAQ,IAAI3J,KAAKa,EAAEA,EAAEb,KAAKG,IAAIA,GAAG,KAAKA,GAAGH,GAAG,OAAOG,CAAC,CAAQ,SAASkoE,KAAO,IAAI,IAAIxnE,EAAEb,EAAE2J,EAAE,EAAExJ,EAAE,GAAGwJ,EAAEvJ,UAAUC,SAASQ,EAAET,UAAUuJ,QAAQ3J,EAAE8I,GAAEjI,MAAMV,IAAIA,GAAG,KAAKA,GAAGH,GAAG,OAAOG,CAAC,CCG3V,SAAUmoE,MAAMC,GACpB,OAAOT,GAAQO,GAAKE,GACtB,CCIM,SAAUC,GACd/zD,EACA9C,GAEA,OACE8C,EAAKg0D,YAAY30D,SAAWnC,EAAK82D,YAAY30D,SDqBlB40D,ECpBZj0D,EAAKg0D,YAAYt6D,KDoBWw6D,ECpBLh3D,EAAK82D,YAAYt6D,KDqBzDu6D,EAAKroE,SAAWsoE,EAAKtoE,QAAUqoE,EAAK33D,MAAM,CAACtN,EAAOiQ,IAAUjQ,IAAUklE,EAAKj1D,MCpBzEe,EAAKm0D,mBAAqBj3D,EAAKi3D,kBAC/Bn0D,EAAKo0D,kBAAoBl3D,EAAKk3D,gBDkBJ,IAACH,EAAgBC,CChB/C,CChBA,IAAIG,GAAU,CAIZC,UAAUtlE,GACDiF,EAAcjF,IAAUlC,MAAM+F,QAAQ7D,EAAMulE,QAAUznE,MAAM+F,QAAQ7D,EAAMwlE,SAAkC,IAAvBxlE,EAAMulE,MAAM3oE,QAAgB4d,GAAUI,gBAAgB5a,EAAMulE,MAAM,GAAGvoD,eAAwC,IAAvBhd,EAAMwlE,MAAM5oE,QAAgB4d,GAAUI,gBAAgB5a,EAAMwlE,MAAM,GAAGxoD,cAUvPyoD,GAAS,IAAI55D,QACb65D,GAAU,IAAI75D,QAEd85D,GAAgB,CAIlBC,gBAAgB5lE,GACPqlE,GAAQC,UAAUtlE,EAAM6lE,UAAY1tD,GAAOC,SAASpY,GAM7D8lE,UAAUh2D,GACD41D,GAAQvjE,IAAI2N,GAMrBi2D,SAASj2D,GACA21D,GAAOtjE,IAAI2N,GAMpB,IAAA62C,CAAK72C,GACHA,EAAO62C,MACT,EAKA,IAAAV,CAAKn2C,GACHA,EAAOm2C,MACT,EAMA,cAAA+f,CAAel2D,EAAQhF,GACrB,IAAIkG,EAAO20D,GAAcG,UAAUh2D,GACnC41D,GAAQv/D,IAAI2J,GAAQ,GACpBhF,IACA46D,GAAQv/D,IAAI2J,EAAQkB,EACtB,EAMA,aAAAi1D,CAAcn2D,EAAQhF,GACpB,IAAIkG,EAAO20D,GAAcI,SAASj2D,GAClC21D,GAAOt/D,IAAI2J,GAAQ,GACnBhF,IACA26D,GAAOt/D,IAAI2J,EAAQkB,EACrB,GCtEK,MA+GDk1D,GAAc,CAACv7D,EAAeqG,OAEhCA,GACY,gBAAZrG,EAAG9O,MACW,gBAAdmV,EAAKnV,MACL8O,EAAG0F,SAAWW,EAAKX,OAASW,EAAKV,KAAK1T,SACtCyO,GAAK8B,OAAOxC,EAAGD,KAAMsG,EAAKtG,WAM1BsG,GACY,gBAAZrG,EAAG9O,MACW,gBAAdmV,EAAKnV,MACL8O,EAAG0F,OAAS1F,EAAG2F,KAAK1T,SAAWoU,EAAKX,SACpChF,GAAK8B,OAAOxC,EAAGD,KAAMsG,EAAKtG,OC5HxBy7D,GAAkC,CAACx7D,EAAIqG,KAC3C,MAAMo1D,EAAmB,aAEzB,OACc,gBAAZz7D,EAAG9O,OACHwc,GAAQJ,UAAUtN,EAAGpH,OACrBoH,EAAGpH,KAAK1H,OAASuqE,MAML,gBAAZz7D,EAAG9O,OACHwc,GAAQJ,UAAUtN,EAAGpH,OACrBoH,EAAGpH,KAAK1H,OAASuqE,MAML,aAAZz7D,EAAG9O,QACH,SAAU8O,EAAGyI,gBACbzI,EAAGyI,cAAcvX,OAASuqE,MAKb,YAAXz7D,EAAG9O,QAAsB,SAAU8O,EAAGwI,aAAcxI,EAAGwI,WAAWtX,OAASuqE,MAKjE,eAAZz7D,EAAG9O,QACH,SAAU8O,EAAGwI,aACbxI,EAAGwI,WAAWtX,OAASuqE,MAMX,eAAZz7D,EAAG9O,QACH,SAAU8O,EAAGwI,aACbxI,EAAGwI,WAAWtX,OAASuqE,ID0FM,CAACz7D,GAChB,kBAAZA,EAAG9O,KCrFAwqE,CAAkB17D,kBAGX27D,KACd,MAAMx2D,EAASg8C,EAAAA,QAAQ,KACrB,MAAMh8C,EDxDwB,EAChCA,EACAq2D,KAEA,MAAM/oE,EAAI0S,GACJ7S,MAAEA,GAAUG,EAmGlB,OAlGAA,EAAEyoE,QAAU,CAAEL,MAAO,GAAID,MAAO,IAEhCnoE,EAAEupD,KAAO,KACP,MAAMkf,QAAEA,GAAYzoE,GACdmoE,MAAEA,GAAUM,EAElB,GAAIN,EAAM3oE,OAAS,EAAG,CACpB,MAAM61C,EAAQ8yB,EAAMA,EAAM3oE,OAAS,GAE/B61C,EAAM8zB,iBACRtiD,GAAWpO,aAAazY,EAAGq1C,EAAM8zB,iBAGnCZ,GAAcM,cAAc7oE,EAAG,KAC7B+a,GAAO8F,mBAAmB7gB,EAAG,KAC3B,IAAK,MAAMuN,KAAM8nC,EAAMz1B,WACrB5f,EAAEH,MAAM0N,OAKdk7D,EAAQN,MAAMjgD,MACdloB,EAAEopE,aAAa,QAAS/zB,EAC1B,GAGFr1C,EAAE6oD,KAAO,KACP,MAAM4f,QAAEA,GAAYzoE,GACdooE,MAAEA,GAAUK,EAElB,GAAIL,EAAM5oE,OAAS,EAAG,CACpB,MAAM61C,EAAQ+yB,EAAMA,EAAM5oE,OAAS,GAEnC+oE,GAAcM,cAAc7oE,EAAG,KAC7B+a,GAAO8F,mBAAmB7gB,EAAG,KAC3B,MAAMqpE,EAAah0B,EAAMz1B,WAAWzX,IAAIiV,GAAUO,SAASzO,UAE3D,IAAK,MAAM3B,KAAM87D,EACfrpE,EAAEH,MAAM0N,GAEN8nC,EAAM8zB,iBACRtiD,GAAWpO,aAAazY,EAAGq1C,EAAM8zB,qBAKvCnpE,EAAEopE,aAAa,QAAS/zB,GACxBozB,EAAQL,MAAMlgD,KAChB,GAGFloB,EAAEH,MAAS0N,IACT,MAAMqS,WAAEA,EAAU6oD,QAAEA,GAAYzoE,GAC1BooE,MAAEA,GAAUK,EACZa,EAAYlB,EAAMA,EAAM5oE,OAAS,GACjC+pE,EAASD,GAAaA,EAAU1pD,WAAW0pD,EAAU1pD,WAAWpgB,OAAS,GAC/E,IAAIgqE,EAAOjB,GAAcI,SAAS3oE,GAC9B+3B,EAAQwwC,GAAcG,UAAU1oE,GAMpC,GAJY,MAARwpE,IACFA,EAAOT,EAAWx7D,EAAIg8D,IAGpBC,EAAM,CAWR,GAVa,MAATzxC,IAEAA,EADe,MAAbuxC,IAE6B,IAAtB1pD,EAAWpgB,QAGZspE,GAAYv7D,EAAIg8D,KAIxBD,GAAavxC,EACfuxC,EAAU1pD,WAAWhU,KAAK2B,OACrB,CACL,MAAM8nC,EAAQ,CACZz1B,WAAY,CAACrS,GACb47D,gBAAiBnpE,EAAE2S,WAErB3S,EAAEopE,aAAa,QAAS/zB,EAC1B,CAEA,KAAO+yB,EAAM5oE,OAAS,KACpB4oE,EAAMv7B,QAGR47B,EAAQN,MAAQ,EAClB,CAEAtoE,EAAM0N,IAGRvN,EAAEopE,aAAe,CAAC7T,EAA0BlgB,KAC1Cr1C,EAAEyoE,QAAQlT,GAAO3pD,KAAKypC,IAGjBr1C,GChDUypE,CAAmB3S,GAAU1rC,MAAiB29C,KAEvDzpD,OAAEA,GAAW5M,EACnBA,EAAO4M,OAAUpH,GAER,eADCA,EAAQzZ,MAIL6gB,EAAOpH,GAIpB,MAAMsR,aAAEA,GAAiB9W,EACzBA,EAAO8W,aAAgBtR,GAEd,eADCA,EAAQzZ,MAIL+qB,EAAatR,GAI1B,MAAMkH,SAAEA,GAAa1M,EAUrB,OATAA,EAAO0M,SAAYlH,GAEV,eADCA,EAAQzZ,KAELyZ,EAAQwoB,OAERthB,EAASlH,GAIfxF,GACN,IAEH,OAAOA,CACT,CC3DM,SAAUg3D,GAAuBh3D,GACrC,MAAMC,UAAEA,GAAcD,EACtB,IAAKC,EACH,OAAO,KAGT,MAAMg3D,EA4ER,SAA0BxwD,GACxB,MAAMC,OAAEA,EAAMC,MAAEA,GAAUF,EAE1B,GAAI9K,GAAMiC,SAAS8I,EAAQC,GACzB,OAAOF,EAIT,MAAO,CACLC,OAAQC,EACRA,MAAOD,EAEX,CAxF+BwwD,CAAiBj3D,GAGxCk3D,EAAqB,CACzBzwD,OAAQ2B,GAAOlB,MAAMnH,EAAQ,IAC7B2G,MAAOswD,EAAqBvwD,QAExB0wD,EAAoB,CACxB1wD,OAAQuwD,EAAqBtwD,MAC7BA,MAAO0B,GAAOxB,IAAI7G,EAAQ,KAItBW,EAAS02D,GAAwBr3D,EAAQm3D,GACzCv2D,EAAQy2D,GAAwBr3D,EAAQo3D,GAG9C,MAAO,CACLn3D,UAAWg3D,EACX5B,iBAAkB10D,EAClB22D,aALmBD,GAAwBr3D,EAAQi3D,GAMnD3B,gBAAiB10D,EAErB,CAEM,SAAU22D,GAA8Bv3D,GAK5C,OAAOq3D,GAAwBr3D,EAJE,CAC/B0G,OAAQ2B,GAAOlB,MAAMnH,EAAQ,IAC7B2G,MAAO0B,GAAOxB,IAAI7G,EAAQ,KAG9B,CAGM,SAAUq3D,GAAwBr3D,EAAgByG,GACtD,MACOU,EAAON,GAAOhL,GAAM2K,MAAMC,GACjC,IAAIjG,EAAO,GACPg3D,EAAyB,KAE7B,IAAK,MAAO/jE,EAAMmH,KAASyN,GAAOvD,MAAM9E,EAAQ,CAC9CuL,GAAI9E,EACJqN,MAAOzS,GAAKC,OACZ0S,MARY,QASV,CACF,IAAIvnB,EAAIgH,EAAK+M,KAGb,MAAO2e,GAAS9W,GAAOgD,MAAMrL,EAAQ,CACnCuL,GAAI3Q,EACJkZ,MAAQlnB,GAAM2b,GAAQJ,UAAUvb,IAAiB,cAAXA,EAAEb,QACpC,CAAC,MAGHyrE,IAAcr4C,GAASA,IAErBq4C,IACFh3D,GAAQ,MAEVg3D,EAAYr4C,GAGV5jB,GAAK8B,OAAOzC,EAAMiM,EAAIjM,QACxBnO,EAAIA,EAAEwB,MAAM,EAAG4Y,EAAItG,SAGjBhF,GAAK8B,OAAOzC,EAAMuM,EAAMvM,QAC1BnO,EAAIA,EAAEwB,MAAMkZ,EAAM5G,SAGpBC,GAAQ/T,CACV,CAEA,OAAO+T,CACT,CCtHM,SAAUi3D,GAAkBz3D,EAAgB03D,GAEhDvjD,GAAWnd,OAAOgJ,EAAQ,CACxBuL,GAAI,CACF7E,OAAQ2B,GAAOlB,MAAMnH,EAAQ,IAC7B2G,MAAO0B,GAAOxB,IAAI7G,EAAQ,OAK1B03D,GAAuB,KAAZA,GAEbvjD,GAAWtP,YACT7E,EACA,CACE,CACEjU,KAAM,YACN2F,SAAU,CAAC,CAAE8O,KAAMk3D,MAGvB,CACEnsD,GAAI,CAAC,IAIb,CCxBM,SAAUosD,GAA+B33D,GAE7C,MAAMvD,EAAgB,GACtB,IAAK,MAAOhJ,EAAMmH,KAASsF,GAAK4E,MAAM9E,GAChCuI,GAAQJ,UAAU1U,IAAuB,eAAdA,EAAK1H,MAClC0Q,EAAMvD,KAAK0B,GAGf,IAAK,MAAMA,KAAQ6B,EACjB,IACE0X,GAAWjP,YAAYlF,EAAQ,CAAEuL,GAAI3Q,GACvC,CAAE,MAAOtN,GACP6B,QAAQyoE,IAAI,sEAAuEtqE,EACrF,CAEJ,CC4DA,MAoCauqE,GAGT,CACFC,aAAc,IACdC,kBAAmBC,EAAAA,gCACnBC,kBAAkB,EAClBC,UAAU,EACVC,uDAAuD,EACvDC,oCAAoC,EACpCC,qCA9CkD,CAClD/hC,EACAgiC,KAEA,MAAMC,EAAYC,EAAAA,UAAYliC,EAAMmiC,QAAUniC,EAAMoiC,QAGpD,OAAOpiC,EAAM/jC,MAAQ+lE,GAAYC,GAwCjCI,qCApCAriC,GAGkB,QAAdA,EAAM/jC,IAkCVqmE,kCA5B+C,KAAM,2LC3FvD,MAAMC,GAAwBv6B,EAAAA,cAA0C,CACtEw6B,aAAa,EACbC,eAAgB,SAWLC,GAAyB,EAAGtnE,eACvC,MAAOonE,EAAaC,GAAkBpoB,EAAAA,UAAkB,GAExD,OACEsoB,MAACJ,GAAsB1jB,UAASjlD,MAAO,CAAE4oE,cAAaC,2BACnDrnE,KAKMwnE,GAA2B,IAAM16B,EAAAA,WAAWq6B,IC2BzD,IAAIM,GAA0B,WAE5B,SAASA,EAAW58D,GAClB,IAAIu7B,EAAQ1qC,KAEZA,KAAKgsE,WAAa,SAAUlqE,GAC1B,IAAIyR,EAIAA,EAFsB,IAAtBm3B,EAAMuhC,KAAKvsE,OACTgrC,EAAMwhC,eACCxhC,EAAMwhC,eAAe3f,YACrB7hB,EAAMyhC,QACNzhC,EAAMo4B,UAAUlkE,WAEhB8rC,EAAMn3B,OAGRm3B,EAAMuhC,KAAKvhC,EAAMuhC,KAAKvsE,OAAS,GAAG6sD,YAG7C7hB,EAAMo4B,UAAUjkE,aAAaiD,EAAKyR,GAElCm3B,EAAMuhC,KAAKngE,KAAKhK,EAClB,EAEA9B,KAAKosE,cAA8BlkE,IAAnBiH,EAAQk9D,QAAwCl9D,EAAQk9D,OACxErsE,KAAKisE,KAAO,GACZjsE,KAAKssE,IAAM,EACXtsE,KAAKusE,MAAQp9D,EAAQo9D,MAErBvsE,KAAKmF,IAAMgK,EAAQhK,IACnBnF,KAAK8iE,UAAY3zD,EAAQ2zD,UACzB9iE,KAAKmsE,QAAUh9D,EAAQg9D,QACvBnsE,KAAKksE,eAAiB/8D,EAAQ+8D,eAC9BlsE,KAAKuT,OAAS,IAChB,CAEA,IAAIi5D,EAAST,EAAWnsE,UA0CxB,OAxCA4sE,EAAOC,QAAU,SAAiB/0D,GAChCA,EAAM7O,QAAQ7I,KAAKgsE,WACrB,EAEAQ,EAAOv9B,OAAS,SAAgBy9B,GAI1B1sE,KAAKssE,KAAOtsE,KAAKosE,SAAW,KAAQ,IAAO,GAC7CpsE,KAAKgsE,WA7DX,SAA4B78D,GAC1B,IAAIrN,EAAMxD,SAASI,cAAc,SASjC,OARAoD,EAAIy2D,aAAa,eAAgBppD,EAAQhK,UAEnB+C,IAAlBiH,EAAQo9D,OACVzqE,EAAIy2D,aAAa,QAASppD,EAAQo9D,OAGpCzqE,EAAIhD,YAAYR,SAASW,eAAe,KACxC6C,EAAIy2D,aAAa,SAAU,IACpBz2D,CACT,CAkDsB6qE,CAAmB3sE,OAGrC,IAAI8B,EAAM9B,KAAKisE,KAAKjsE,KAAKisE,KAAKvsE,OAAS,GAEvC,GAAIM,KAAKosE,SAAU,CACjB,IAAIQ,EAtFV,SAAqB9qE,GACnB,GAAIA,EAAI8qE,MACN,OAAO9qE,EAAI8qE,MAMb,IAAK,IAAIrtE,EAAI,EAAGA,EAAIjB,SAASuuE,YAAYntE,OAAQH,IAC/C,GAAIjB,SAASuuE,YAAYttE,GAAGutE,YAAchrE,EACxC,OAAOxD,SAASuuE,YAAYttE,EAOlC,CAqEkBwtE,CAAYjrE,GAExB,IAGE8qE,EAAMI,WAAWN,EAAME,EAAMK,SAASvtE,OACxC,CAAE,MAAOQ,GACT,CACF,MACE4B,EAAIhD,YAAYR,SAASW,eAAeytE,IAG1C1sE,KAAKssE,KACP,EAEAE,EAAO5sC,MAAQ,WACb5/B,KAAKisE,KAAKpjE,QAAQ,SAAU/G,GAC1B,IAAIorE,EAEJ,OAA6C,OAArCA,EAAkBprE,EAAI2nB,iBAAsB,EAASyjD,EAAgB1xB,YAAY15C,EAC3F,GACA9B,KAAKisE,KAAO,GACZjsE,KAAKssE,IAAM,CACb,EAEOP,CACT,CAhF8B,GCzDnBoB,GAAK,OACLC,GAAM,QACNC,GAAS,WAETC,GAAU,OACVC,GAAU,OACVC,GAAc,OAUdC,GAAY,aCZZC,GAAM99D,KAAK89D,IAMXltE,GAAOq6B,OAAO8yC,aAMdvuE,GAASD,OAAOC,OAepB,SAAS24D,GAAMj1D,GACrB,OAAOA,EAAMi1D,MACd,CAiBO,SAASj8B,GAASh5B,EAAO8qE,EAASC,GACxC,OAAO/qE,EAAMg5B,QAAQ8xC,EAASC,EAC/B,CAOO,SAASC,GAAShrE,EAAOijB,GAC/B,OAAOjjB,EAAM3C,QAAQ4lB,EACtB,CAOO,SAASgoD,GAAQjrE,EAAOiQ,GAC9B,OAAiC,EAA1BjQ,EAAMmiB,WAAWlS,EACzB,CAQO,SAASi7D,GAAQlrE,EAAOmrE,EAAOx0D,GACrC,OAAO3W,EAAMjC,MAAMotE,EAAOx0D,EAC3B,CAMO,SAASy0D,GAAQprE,GACvB,OAAOA,EAAMpD,MACd,CAMO,SAASyuE,GAAQrrE,GACvB,OAAOA,EAAMpD,MACd,CAOO,SAAS0uE,GAAQtrE,EAAOwsC,GAC9B,OAAOA,EAAMxjC,KAAKhJ,GAAQA,CAC3B,CCvGO,IAAIs/C,GAAO,EACPisB,GAAS,EACT3uE,GAAS,EACTgS,GAAW,EACX48D,GAAY,EACZC,GAAa,GAWjB,SAASloE,GAAMvD,EAAOgZ,EAAM1K,EAAQzS,EAAMiF,EAAOU,EAAU5E,GACjE,MAAO,CAACoD,MAAOA,EAAOgZ,KAAMA,EAAM1K,OAAQA,EAAQzS,KAAMA,EAAMiF,MAAOA,EAAOU,SAAUA,EAAU89C,KAAMA,GAAMisB,OAAQA,GAAQ3uE,OAAQA,EAAQmuC,OAAQ,GACrJ,CAOO,SAAS77B,GAAM8J,EAAMlY,GAC3B,OAAOxE,GAAOiH,GAAK,GAAI,KAAM,KAAM,GAAI,KAAM,KAAM,GAAIyV,EAAM,CAACpc,QAASoc,EAAKpc,QAASkE,EACtF,CAYO,SAASkQ,KAMf,OALAw6D,GAAY58D,GAAW,EAAIq8D,GAAOQ,KAAc78D,IAAY,EAExD28D,KAAwB,KAAdC,KACbD,GAAS,EAAGjsB,MAENksB,EACR,CAKO,SAASt9D,KAMf,OALAs9D,GAAY58D,GAAWhS,GAASquE,GAAOQ,GAAY78D,MAAc,EAE7D28D,KAAwB,KAAdC,KACbD,GAAS,EAAGjsB,MAENksB,EACR,CAKO,SAASE,KACf,OAAOT,GAAOQ,GAAY78D,GAC3B,CAKO,SAASi1D,KACf,OAAOj1D,EACR,CAOO,SAAS7Q,GAAOotE,EAAOx0D,GAC7B,OAAOu0D,GAAOO,GAAYN,EAAOx0D,EAClC,CAMO,SAASg1D,GAAO9vE,GACtB,OAAQA,GAEP,KAAK,EAAG,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GACtC,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,IAE3D,KAAK,GAAI,KAAK,IAAK,KAAK,IACvB,OAAO,EAER,KAAK,GACJ,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAC/B,OAAO,EAER,KAAK,GAAI,KAAK,GACb,OAAO,EAGT,OAAO,CACR,CAMO,SAAS+vE,GAAO5rE,GACtB,OAAOs/C,GAAOisB,GAAS,EAAG3uE,GAASwuE,GAAOK,GAAazrE,GAAQ4O,GAAW,EAAG,EAC9E,CAMO,SAASi9D,GAAS7rE,GACxB,OAAOyrE,GAAa,GAAIzrE,CACzB,CAMO,SAAS8rE,GAASjwE,GACxB,OAAOo5D,GAAKl3D,GAAM6Q,GAAW,EAAGm9D,GAAmB,KAATlwE,EAAcA,EAAO,EAAa,KAATA,EAAcA,EAAO,EAAIA,IAC7F,CAcO,SAAS0mE,GAAY1mE,GAC3B,MAAO2vE,GAAYE,OACdF,GAAY,IACft9D,KAIF,OAAOy9D,GAAM9vE,GAAQ,GAAK8vE,GAAMH,IAAa,EAAI,GAAK,GACvD,CAwBO,SAASQ,GAAU/7D,EAAOg8D,GAChC,OAASA,GAAS/9D,QAEbs9D,GAAY,IAAMA,GAAY,KAAQA,GAAY,IAAMA,GAAY,IAAQA,GAAY,IAAMA,GAAY,MAG/G,OAAOztE,GAAMkS,EAAO4zD,MAAWoI,EAAQ,GAAe,IAAVP,MAA0B,IAAVx9D,MAC7D,CAMO,SAAS69D,GAAWlwE,GAC1B,KAAOqS,aACEs9D,IAEP,KAAK3vE,EACJ,OAAO+S,GAER,KAAK,GAAI,KAAK,GACA,KAAT/S,GAAwB,KAATA,GAClBkwE,GAAUP,IACX,MAED,KAAK,GACS,KAAT3vE,GACHkwE,GAAUlwE,GACX,MAED,KAAK,GACJqS,KAIH,OAAOU,EACR,CAOO,SAASs9D,GAAWrwE,EAAMoU,GAChC,KAAO/B,MAEFrS,EAAO2vE,KAAc,KAGhB3vE,EAAO2vE,KAAc,IAAsB,KAAXE,QAG1C,MAAO,KAAO3tE,GAAMkS,EAAOrB,GAAW,GAAK,IAAMlR,GAAc,KAAT7B,EAAcA,EAAOqS,KAC5E,CAMO,SAASi+D,GAAYl8D,GAC3B,MAAQ07D,GAAMD,OACbx9D,KAED,OAAOnQ,GAAMkS,EAAOrB,GACrB,CC7OO,SAASw9D,GAASpsE,GACxB,OAAO6rE,GAAQ3V,GAAM,GAAI,KAAM,KAAM,KAAM,CAAC,IAAKl2D,EAAQ4rE,GAAM5rE,GAAQ,EAAG,CAAC,GAAIA,GAChF,CAcO,SAASk2D,GAAOl2D,EAAOgZ,EAAM1K,EAAQs7D,EAAMyC,EAAOC,EAAUC,EAAQp8D,EAAQq8D,GAiBlF,IAhBA,IAAIv8D,EAAQ,EACRI,EAAS,EACTzT,EAAS2vE,EACTE,EAAS,EACTpU,EAAW,EACX9pD,EAAW,EACXm+D,EAAW,EACXC,EAAW,EACXC,EAAY,EACZpB,EAAY,EACZ3vE,EAAO,GACPiF,EAAQurE,EACR7qE,EAAW8qE,EACXO,EAAYjD,EACZ6B,EAAa5vE,EAEV8wE,UACEp+D,EAAWi9D,EAAWA,EAAYt9D,MAEzC,KAAK,GACJ,GAAgB,KAAZK,GAAqD,IAAlC08D,GAAOQ,EAAY7uE,EAAS,GAAU,EACiB,GAAzEouE,GAAQS,GAAczyC,GAAQ8yC,GAAQN,GAAY,IAAK,OAAQ,SAClEoB,GAAY,GACb,KACD,CAED,KAAK,GAAI,KAAK,GAAI,KAAK,GACtBnB,GAAcK,GAAQN,GACtB,MAED,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GAC9BC,GAAclJ,GAAWh0D,GACzB,MAED,KAAK,GACJk9D,GAAcO,GAASnI,KAAU,EAAG,GACpC,SAED,KAAK,GACJ,OAAQ6H,MACP,KAAK,GAAI,KAAK,GACbJ,GAAOwB,GAAQZ,GAAUh+D,KAAQ21D,MAAU7qD,EAAM1K,GAASk+D,GAC1D,MACD,QACCf,GAAc,IAEhB,MAED,KAAK,IAAMiB,EACVv8D,EAAOF,KAAWm7D,GAAOK,GAAcmB,EAExC,KAAK,IAAMF,EAAU,KAAK,GAAI,KAAK,EAClC,OAAQlB,GAEP,KAAK,EAAG,KAAK,IAAKmB,EAAW,EAE7B,KAAK,GAAKt8D,GAAyB,GAAbu8D,IAAiBnB,EAAazyC,GAAQyyC,EAAY,MAAO,KAC1EpT,EAAW,GAAM+S,GAAOK,GAAc7uE,GACzC0uE,GAAOjT,EAAW,GAAK0U,GAAYtB,EAAa,IAAK7B,EAAMt7D,EAAQ1R,EAAS,GAAKmwE,GAAY/zC,GAAQyyC,EAAY,IAAK,IAAM,IAAK7B,EAAMt7D,EAAQ1R,EAAS,GAAI4vE,GAC7J,MAED,KAAK,GAAIf,GAAc,IAEvB,QAGC,GAFAH,GAAOuB,EAAYG,GAAQvB,EAAYzyD,EAAM1K,EAAQ2B,EAAOI,EAAQg8D,EAAOl8D,EAAQtU,EAAMiF,EAAQ,GAAIU,EAAW,GAAI5E,GAAS0vE,GAE3G,MAAdd,EACH,GAAe,IAAXn7D,EACH6lD,GAAMuV,EAAYzyD,EAAM6zD,EAAWA,EAAW/rE,EAAOwrE,EAAU1vE,EAAQuT,EAAQ3O,QAE/E,OAAmB,KAAXirE,GAA2C,MAA1BxB,GAAOQ,EAAY,GAAa,IAAMgB,GAE9D,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAClCvW,GAAMl2D,EAAO6sE,EAAWA,EAAWjD,GAAQ0B,GAAO0B,GAAQhtE,EAAO6sE,EAAWA,EAAW,EAAG,EAAGR,EAAOl8D,EAAQtU,EAAMwwE,EAAOvrE,EAAQ,GAAIlE,GAAS4E,GAAW6qE,EAAO7qE,EAAU5E,EAAQuT,EAAQy5D,EAAO9oE,EAAQU,GACzM,MACD,QACC00D,GAAMuV,EAAYoB,EAAWA,EAAWA,EAAW,CAAC,IAAKrrE,EAAU,EAAG2O,EAAQ3O,IAIpFyO,EAAQI,EAASgoD,EAAW,EAAGqU,EAAWE,EAAY,EAAG/wE,EAAO4vE,EAAa,GAAI7uE,EAAS2vE,EAC1F,MAED,KAAK,GACJ3vE,EAAS,EAAIwuE,GAAOK,GAAapT,EAAW9pD,EAC7C,QACC,GAAIm+D,EAAW,EACd,GAAiB,KAAblB,IACDkB,OACE,GAAiB,KAAblB,GAAkC,GAAdkB,KAA6B,KAAV17D,KAC/C,SAEF,OAAQy6D,GAAc/tE,GAAK8tE,GAAYA,EAAYkB,GAElD,KAAK,GACJE,EAAYv8D,EAAS,EAAI,GAAKo7D,GAAc,MAAM,GAClD,MAED,KAAK,GACJt7D,EAAOF,MAAYm7D,GAAOK,GAAc,GAAKmB,EAAWA,EAAY,EACpE,MAED,KAAK,GAEW,KAAXlB,OACHD,GAAcK,GAAQ59D,OAEvBu+D,EAASf,KAAQr7D,EAASzT,EAASwuE,GAAOvvE,EAAO4vE,GAAcU,GAAWtI,OAAW2H,IACrF,MAED,KAAK,GACa,KAAbj9D,GAAyC,GAAtB68D,GAAOK,KAC7BiB,EAAW,IAIjB,OAAOJ,CACR,CAgBO,SAASU,GAAShtE,EAAOgZ,EAAM1K,EAAQ2B,EAAOI,EAAQg8D,EAAOl8D,EAAQtU,EAAMiF,EAAOU,EAAU5E,GAKlG,IAJA,IAAIqwE,EAAO58D,EAAS,EAChBu5D,EAAkB,IAAXv5D,EAAeg8D,EAAQ,CAAC,IAC/B9pC,EAAO8oC,GAAOzB,GAETntE,EAAI,EAAG4K,EAAI,EAAGvF,EAAI,EAAGrF,EAAIwT,IAASxT,EAC1C,IAAK,IAAIqD,EAAI,EAAG8G,EAAIskE,GAAOlrE,EAAOitE,EAAO,EAAGA,EAAOrC,GAAIvjE,EAAI8I,EAAO1T,KAAM2L,EAAIpI,EAAOF,EAAIyiC,IAAQziC,GAC1FsI,EAAI6sD,GAAK5tD,EAAI,EAAIuiE,EAAK9pE,GAAK,IAAM8G,EAAIoyB,GAAQpyB,EAAG,OAAQgjE,EAAK9pE,QAChEgB,EAAMgB,KAAOsG,GAEhB,OAAO7E,GAAKvD,EAAOgZ,EAAM1K,EAAmB,IAAX+B,EAAeo6D,GAAU5uE,EAAMiF,EAAOU,EAAU5E,EAClF,CAQO,SAASkwE,GAAS9sE,EAAOgZ,EAAM1K,GACrC,OAAO/K,GAAKvD,EAAOgZ,EAAM1K,EAAQk8D,GAAS9sE,GD/InC8tE,IC+IiDN,GAAOlrE,EAAO,GAAG,GAAK,EAC/E,CASO,SAAS+sE,GAAa/sE,EAAOgZ,EAAM1K,EAAQ1R,GACjD,OAAO2G,GAAKvD,EAAOgZ,EAAM1K,EAAQo8D,GAAaQ,GAAOlrE,EAAO,EAAGpD,GAASsuE,GAAOlrE,EAAOpD,EAAS,GAAG,GAAKA,EACxG,CCtLO,SAASswE,GAAW1rE,EAAUokC,GAIpC,IAHA,IAAIunC,EAAS,GACTvwE,EAASyuE,GAAO7pE,GAEX/E,EAAI,EAAGA,EAAIG,EAAQH,IAC3B0wE,GAAUvnC,EAASpkC,EAAS/E,GAAIA,EAAG+E,EAAUokC,IAAa,GAE3D,OAAOunC,CACR,CASO,SAAS77D,GAAWgE,EAASrF,EAAOzO,EAAUokC,GACpD,OAAQtwB,EAAQzZ,MACf,IJPiB,SIOL,GAAIyZ,EAAQ9T,SAAS5E,OAAQ,MACzC,IJlBkB,UIkBL,KAAK8tE,GAAa,OAAOp1D,EAAQy1B,OAASz1B,EAAQy1B,QAAUz1B,EAAQtV,MACjF,KAAKwqE,GAAS,MAAO,GACrB,KAAKG,GAAW,OAAOr1D,EAAQy1B,OAASz1B,EAAQtV,MAAQ,IAAMktE,GAAU53D,EAAQ9T,SAAUokC,GAAY,IACtG,KAAK6kC,GAASn1D,EAAQtV,MAAQsV,EAAQxU,MAAMiB,KAAK,KAGlD,OAAOqpE,GAAO5pE,EAAW0rE,GAAU53D,EAAQ9T,SAAUokC,IAAatwB,EAAQy1B,OAASz1B,EAAQtV,MAAQ,IAAMwB,EAAW,IAAM,EAC3H,CCnCA,SAAS4rE,GAAQtiE,GACf,IAAIg3B,EAAQzlC,OAAOqK,OAAO,MAC1B,OAAO,SAAU2mE,GAEf,YADmBjoE,IAAf08B,EAAMurC,KAAoBvrC,EAAMurC,GAAOviE,EAAGuiE,IACvCvrC,EAAMurC,EACf,CACF,CCDA,IAAIC,GAA8B,SAAqCnC,EAAOh7D,EAAQF,GAIpF,IAHA,IAAI1B,EAAW,EACXi9D,EAAY,EAGdj9D,EAAWi9D,EACXA,EAAYE,KAEK,KAAbn9D,GAAiC,KAAdi9D,IACrBr7D,EAAOF,GAAS,IAGd07D,GAAMH,IAIVt9D,KAGF,OAAOnQ,GAAMotE,EAAOv8D,GACtB,EA6CI2+D,GAAW,SAAkBvtE,EAAOmQ,GACtC,OAAO07D,GA5CK,SAAiB5V,EAAQ9lD,GAErC,IAAIF,GAAQ,EACRu7D,EAAY,GAEhB,GACE,OAAQG,GAAMH,IACZ,KAAK,EAEe,KAAdA,GAA+B,KAAXE,OAKtBv7D,EAAOF,GAAS,GAGlBgmD,EAAOhmD,IAAUq9D,GAA4B1+D,GAAW,EAAGuB,EAAQF,GACnE,MAEF,KAAK,EACHgmD,EAAOhmD,IAAU67D,GAAQN,GACzB,MAEF,KAAK,EAEH,GAAkB,KAAdA,EAAkB,CAEpBvV,IAAShmD,GAAoB,KAAXy7D,KAAgB,MAAQ,GAC1Cv7D,EAAOF,GAASgmD,EAAOhmD,GAAOrT,OAC9B,KACF,CAIF,QACEq5D,EAAOhmD,IAAUvS,GAAK8tE,UAEnBA,EAAYt9D,MAErB,OAAO+nD,CACT,CAGiBuX,CAAQ5B,GAAM5rE,GAAQmQ,GACvC,EAGIs9D,GAA+B,IAAI5hE,QACnC6hE,GAAS,SAAgBp4D,GAC3B,GAAqB,SAAjBA,EAAQzZ,MAAoByZ,EAAQhH,UAExCgH,EAAQ1Y,OAAS,GAFjB,CAUA,IAJA,IAAIoD,EAAQsV,EAAQtV,MAChBsO,EAASgH,EAAQhH,OACjBq/D,EAAiBr4D,EAAQi2D,SAAWj9D,EAAOi9D,QAAUj2D,EAAQgqC,OAAShxC,EAAOgxC,KAE1D,SAAhBhxC,EAAOzS,MAEZ,KADAyS,EAASA,EAAOA,QACH,OAIf,IAA6B,IAAzBgH,EAAQxU,MAAMlE,QAAwC,KAAxBoD,EAAMmiB,WAAW,IAE/CsrD,GAActrE,IAAImM,MAMlBq/D,EAAJ,CAIAF,GAActnE,IAAImP,GAAS,GAK3B,IAJA,IAAInF,EAAS,GACTk8D,EAAQkB,GAASvtE,EAAOmQ,GACxBy9D,EAAct/D,EAAOxN,MAEhBrE,EAAI,EAAGqF,EAAI,EAAGrF,EAAI4vE,EAAMzvE,OAAQH,IACvC,IAAK,IAAI4K,EAAI,EAAGA,EAAIumE,EAAYhxE,OAAQyK,IAAKvF,IAC3CwT,EAAQxU,MAAMgB,GAAKqO,EAAO1T,GAAK4vE,EAAM5vE,GAAGu8B,QAAQ,OAAQ40C,EAAYvmE,IAAMumE,EAAYvmE,GAAK,IAAMglE,EAAM5vE,EAT3G,CAtBA,CAkCF,EACIoxE,GAAc,SAAqBv4D,GACrC,GAAqB,SAAjBA,EAAQzZ,KAAiB,CAC3B,IAAImE,EAAQsV,EAAQtV,MAGI,MAAxBA,EAAMmiB,WAAW,IACO,KAAxBniB,EAAMmiB,WAAW,KAEf7M,EAAgB,OAAI,GACpBA,EAAQtV,MAAQ,GAEpB,CACF,EAIA,SAAS82D,GAAO92D,EAAOpD,GACrB,OL9GK,SAAeoD,EAAOpD,GAC5B,OAA0B,GAAnBquE,GAAOjrE,EAAO,MAAiBpD,GAAU,EAAKquE,GAAOjrE,EAAO,KAAO,EAAKirE,GAAOjrE,EAAO,KAAO,EAAKirE,GAAOjrE,EAAO,KAAO,EAAKirE,GAAOjrE,EAAO,GAAK,CACvJ,CK4GU8tE,CAAK9tE,EAAOpD,IAElB,KAAK,KACH,OAAO2tE,GAAS,SAAWvqE,EAAQA,EAGrC,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAOuqE,GAASvqE,EAAQA,EAG1B,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAOuqE,GAASvqE,EAAQsqE,GAAMtqE,EAAQqqE,GAAKrqE,EAAQA,EAGrD,KAAK,KACL,KAAK,KACH,OAAOuqE,GAASvqE,EAAQqqE,GAAKrqE,EAAQA,EAGvC,KAAK,KACH,OAAOuqE,GAASvqE,EAAQqqE,GAAK,QAAUrqE,EAAQA,EAGjD,KAAK,KACH,OAAOuqE,GAASvqE,EAAQg5B,GAAQh5B,EAAO,iBAAkBuqE,GAAS,WAAaF,GAAK,aAAerqE,EAGrG,KAAK,KACH,OAAOuqE,GAASvqE,EAAQqqE,GAAK,aAAerxC,GAAQh5B,EAAO,cAAe,IAAMA,EAGlF,KAAK,KACH,OAAOuqE,GAASvqE,EAAQqqE,GAAK,iBAAmBrxC,GAAQh5B,EAAO,4BAA6B,IAAMA,EAGpG,KAAK,KACH,OAAOuqE,GAASvqE,EAAQqqE,GAAKrxC,GAAQh5B,EAAO,SAAU,YAAcA,EAGtE,KAAK,KACH,OAAOuqE,GAASvqE,EAAQqqE,GAAKrxC,GAAQh5B,EAAO,QAAS,kBAAoBA,EAG3E,KAAK,KACH,OAAOuqE,GAAS,OAASvxC,GAAQh5B,EAAO,QAAS,IAAMuqE,GAASvqE,EAAQqqE,GAAKrxC,GAAQh5B,EAAO,OAAQ,YAAcA,EAGpH,KAAK,KACH,OAAOuqE,GAASvxC,GAAQh5B,EAAO,qBAAsB,KAAOuqE,GAAS,MAAQvqE,EAG/E,KAAK,KACH,OAAOg5B,GAAQA,GAAQA,GAAQh5B,EAAO,eAAgBuqE,GAAS,MAAO,cAAeA,GAAS,MAAOvqE,EAAO,IAAMA,EAGpH,KAAK,KACL,KAAK,KACH,OAAOg5B,GAAQh5B,EAAO,oBAAqBuqE,aAG7C,KAAK,KACH,OAAOvxC,GAAQA,GAAQh5B,EAAO,oBAAqBuqE,GAAS,cAAgBF,GAAK,gBAAiB,aAAc,WAAaE,GAASvqE,EAAQA,EAGhJ,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAOg5B,GAAQh5B,EAAO,kBAAmBuqE,GAAS,QAAUvqE,EAG9D,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEH,GAAIorE,GAAOprE,GAAS,EAAIpD,EAAS,EAAG,OAAQquE,GAAOjrE,EAAOpD,EAAS,IAEjE,KAAK,IAEH,GAAkC,KAA9BquE,GAAOjrE,EAAOpD,EAAS,GAAW,MAGxC,KAAK,IACH,OAAOo8B,GAAQh5B,EAAO,mBAAoB,KAAOuqE,GAAP,UAAiCD,IAAoC,KAA7BW,GAAOjrE,EAAOpD,EAAS,GAAY,KAAO,UAAYoD,EAG1I,KAAK,IACH,OAAQgrE,GAAQhrE,EAAO,WAAa82D,GAAO99B,GAAQh5B,EAAO,UAAW,kBAAmBpD,GAAUoD,EAAQA,EAE9G,MAGF,KAAK,KAEH,GAAkC,MAA9BirE,GAAOjrE,EAAOpD,EAAS,GAAY,MAGzC,KAAK,KACH,OAAQquE,GAAOjrE,EAAOorE,GAAOprE,GAAS,IAAMgrE,GAAQhrE,EAAO,eAAiB,MAE1E,KAAK,IACH,OAAOg5B,GAAQh5B,EAAO,IAAK,IAAMuqE,IAAUvqE,EAG7C,KAAK,IACH,OAAOg5B,GAAQh5B,EAAO,wBAAyB,KAAOuqE,IAAgC,KAAtBU,GAAOjrE,EAAO,IAAa,UAAY,IAAxD,UAA+EuqE,GAA/E,SAAwGF,GAAK,WAAarqE,EAG7K,MAGF,KAAK,KACH,OAAQirE,GAAOjrE,EAAOpD,EAAS,KAE7B,KAAK,IACH,OAAO2tE,GAASvqE,EAAQqqE,GAAKrxC,GAAQh5B,EAAO,qBAAsB,MAAQA,EAG5E,KAAK,IACH,OAAOuqE,GAASvqE,EAAQqqE,GAAKrxC,GAAQh5B,EAAO,qBAAsB,SAAWA,EAG/E,KAAK,GACH,OAAOuqE,GAASvqE,EAAQqqE,GAAKrxC,GAAQh5B,EAAO,qBAAsB,MAAQA,EAG9E,OAAOuqE,GAASvqE,EAAQqqE,GAAKrqE,EAAQA,EAGzC,OAAOA,CACT,CAEA,IAqCI+tE,GAAuB,CArCZ,SAAkBz4D,EAASrF,EAAOzO,EAAUokC,GACzD,GAAItwB,EAAQ1Y,YAAkB0Y,EAAgB,OAAG,OAAQA,EAAQzZ,MAC/D,KAAK6uE,GACHp1D,EAAgB,OAAIwhD,GAAOxhD,EAAQtV,MAAOsV,EAAQ1Y,QAClD,MAEF,KAAK+tE,GACH,OAAOuC,GAAU,CAACh+D,GAAKoG,EAAS,CAC9BtV,MAAOg5B,GAAQ1jB,EAAQtV,MAAO,IAAK,IAAMuqE,OACtC3kC,GAEP,KAAK6kC,GACH,GAAIn1D,EAAQ1Y,OAAQ,OL7MnB,SAAkB4vC,EAAO5G,GAC/B,OAAO4G,EAAMjnC,IAAIqgC,GAAU7jC,KAAK,GACjC,CK2MiCisE,CAAQ14D,EAAQxU,MAAO,SAAUd,GAC1D,OLtRD,SAAgBA,EAAO8qE,GAC7B,OAAQ9qE,EAAQ8qE,EAAQ1S,KAAKp4D,IAAUA,EAAM,GAAKA,CACnD,CKoRgB4jB,CAAM5jB,EAAO,0BAEnB,IAAK,aACL,IAAK,cACH,OAAOktE,GAAU,CAACh+D,GAAKoG,EAAS,CAC9BxU,MAAO,CAACk4B,GAAQh5B,EAAO,cAAe,gBACnC4lC,GAGP,IAAK,gBACH,OAAOsnC,GAAU,CAACh+D,GAAKoG,EAAS,CAC9BxU,MAAO,CAACk4B,GAAQh5B,EAAO,aAAc,IAAMuqE,GAAS,eAClDr7D,GAAKoG,EAAS,CAChBxU,MAAO,CAACk4B,GAAQh5B,EAAO,aAAc,eACnCkP,GAAKoG,EAAS,CAChBxU,MAAO,CAACk4B,GAAQh5B,EAAO,aAAcqqE,GAAK,gBACvCzkC,GAGT,MAAO,EACT,GAEN,GAIIqoC,GAAc,SAAqB5hE,GACrC,IAAIhK,EAAMgK,EAAQhK,IAElB,GAAY,QAARA,EAAe,CACjB,IAAI6rE,EAAY1yE,SAASq7C,iBAAiB,qCAK1C/4C,MAAMhB,UAAUiJ,QAAQ/I,KAAKkxE,EAAW,SAAU3qE,IASN,IAFfA,EAAKwuC,aAAa,gBAEpB10C,QAAQ,OAIjC7B,SAASC,KAAKO,YAAYuH,GAC1BA,EAAKkyD,aAAa,SAAU,IAC9B,EACF,CAEA,IAGIuK,EAkBAmO,EArBAC,EAAgB/hE,EAAQ+hE,eAAiBL,GAEzCM,EAAW,CAAA,EAEXC,EAAiB,GAGnBtO,EAAY3zD,EAAQ2zD,WAAaxkE,SAASC,KAC1CqC,MAAMhB,UAAUiJ,QAAQ/I,KAExBxB,SAASq7C,iBAAiB,wBAA2Bx0C,EAAM,OAAS,SAAUkB,GAG5E,IAFA,IAAIgrE,EAAShrE,EAAKwuC,aAAa,gBAAgB9qB,MAAM,KAE5CxqB,EAAI,EAAGA,EAAI8xE,EAAO3xE,OAAQH,IACjC4xE,EAASE,EAAO9xE,KAAM,EAGxB6xE,EAAetlE,KAAKzF,EACtB,GAKF,IAGMirE,EClXmB5oC,EDmXnB6oC,EAAoB,CAACn9D,ICnXFs0B,EDmXuB,SAAUgkC,GACtD4E,EAAariC,OAAOy9B,EACtB,ECpXI,SAAUt0D,GACXA,EAAQ0D,OACR1D,EAAUA,EAAQy1B,SACrBnF,EAAStwB,EACZ,IDiXOo5D,ECvYD,SAAqBC,GAC3B,IAAI/xE,EAASyuE,GAAOsD,GAEpB,OAAO,SAAUr5D,EAASrF,EAAOzO,EAAUokC,GAG1C,IAFA,IAAIunC,EAAS,GAEJ1wE,EAAI,EAAGA,EAAIG,EAAQH,IAC3B0wE,GAAUwB,EAAWlyE,GAAG6Y,EAASrF,EAAOzO,EAAUokC,IAAa,GAEhE,OAAOunC,CACR,CACD,CD4XqByB,CAPM,CAAClB,GAAQG,IAOe7vE,OAAOowE,EAAeK,IAMrEN,EAAU,SAAgB/b,EAAUyc,EAAY/E,EAAOgF,GACrDN,EAAe1E,EAJRoD,GAAUd,GAMVha,EAAWA,EAAW,IAAMyc,EAAWE,OAAS,IAAMF,EAAWE,QANtCL,GAQ9BI,IACFhtC,EAAMusC,SAASQ,EAAWpwE,OAAQ,EAEtC,EAGF,IAAIqjC,EAAQ,CACVz/B,IAAKA,EACLynE,MAAO,IAAIb,GAAW,CACpB5mE,IAAKA,EACL29D,UAAWA,EACXyJ,MAAOp9D,EAAQo9D,MACfF,OAAQl9D,EAAQk9D,OAChBF,QAASh9D,EAAQg9D,QACjBD,eAAgB/8D,EAAQ+8D,iBAE1BK,MAAOp9D,EAAQo9D,MACf4E,SAAUA,EACVW,WAAY,CAAA,EACZ7iC,OAAQgiC,GAGV,OADArsC,EAAMgoC,MAAMH,QAAQ2E,GACbxsC,CACT,EEnbA,IAAImtC,GAAe,CACjBC,wBAAyB,EACzBC,YAAa,EACbC,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,EAClBC,QAAS,EACTC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbzP,QAAS,EACTO,KAAM,EACNmP,SAAU,EACVC,aAAc,EACdC,WAAY,EACZC,aAAc,EACdC,UAAW,EACXC,QAAS,EACTC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,cAAe,EACfC,eAAgB,EAChBC,gBAAiB,EACjBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,iBAAkB,EAClBC,WAAY,EACZC,WAAY,EACZvtB,QAAS,EACTqd,MAAO,EACPmQ,QAAS,EACT1R,MAAO,EACP2R,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,gBAAiB,EAEjBC,YAAa,EACbC,aAAc,EACdC,YAAa,EACbC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,cAAe,EACfC,YAAa,GC1CXC,GAAiB,aACjBC,GAAiB,8BAEjBC,GAAmB,SAA0BzZ,GAC/C,OAAkC,KAA3BA,EAASl2C,WAAW,EAC7B,EAEI4vD,GAAqB,SAA4B/xE,GACnD,OAAgB,MAATA,GAAkC,kBAAVA,CACjC,EAEIgyE,GAAkC5E,GAAQ,SAAU6E,GACtD,OAAOH,GAAiBG,GAAaA,EAAYA,EAAUj5C,QAAQ44C,GAAgB,OAAO9jC,aAC5F,GAEIokC,GAAoB,SAA2B7vE,EAAKrC,GACtD,OAAQqC,GACN,IAAK,YACL,IAAK,gBAED,GAAqB,iBAAVrC,EACT,OAAOA,EAAMg5B,QAAQ64C,GAAgB,SAAUjuD,EAAOuuD,EAAIC,GAMxD,OALAxO,GAAS,CACPnlE,KAAM0zE,EACNpD,OAAQqD,EACRlkE,KAAM01D,IAEDuO,CACT,GAKR,OAAsB,IAAlBE,GAAShwE,IAAeyvE,GAAiBzvE,IAAyB,iBAAVrC,GAAgC,IAAVA,EAI3EA,EAHEA,EAAQ,IAInB,EAIA,SAASsyE,GAAoBC,EAAavD,EAAYwD,GACpD,GAAqB,MAAjBA,EACF,MAAO,GAGT,IAAIC,EAAoBD,EAExB,QAA2CptE,IAAvCqtE,EAAkBC,iBAEpB,OAAOD,EAGT,cAAeD,GACb,IAAK,UAED,MAAO,GAGX,IAAK,SAED,IAAIG,EAAYH,EAEhB,GAAuB,IAAnBG,EAAUC,KAMZ,OALAhP,GAAS,CACPnlE,KAAMk0E,EAAUl0E,KAChBswE,OAAQ4D,EAAU5D,OAClB7gE,KAAM01D,IAED+O,EAAUl0E,KAGnB,IAAIo0E,EAAmBL,EAEvB,QAAgCptE,IAA5BytE,EAAiB9D,OAAsB,CACzC,IAAI7gE,EAAO2kE,EAAiB3kE,KAE5B,QAAa9I,IAAT8I,EAGF,UAAgB9I,IAAT8I,GACL01D,GAAS,CACPnlE,KAAMyP,EAAKzP,KACXswE,OAAQ7gE,EAAK6gE,OACb7gE,KAAM01D,IAER11D,EAAOA,EAAKA,KAKhB,OADa2kE,EAAiB9D,OAAS,GAEzC,CAEA,OA2BR,SAAgCwD,EAAavD,EAAY5/D,GACvD,IAAIiL,EAAS,GAEb,GAAIvc,MAAM+F,QAAQuL,GAChB,IAAK,IAAI3S,EAAI,EAAGA,EAAI2S,EAAIxS,OAAQH,IAC9B4d,GAAUi4D,GAAoBC,EAAavD,EAAY5/D,EAAI3S,IAAM,SAGnE,IAAK,IAAI4F,KAAO+M,EAAK,CACnB,IAAIpP,EAAQoP,EAAI/M,GAEhB,GAAqB,iBAAVrC,EAAoB,CAC7B,IAAI8yE,EAAW9yE,EAEG,MAAdgvE,QAA+C5pE,IAAzB4pE,EAAW8D,GACnCz4D,GAAUhY,EAAM,IAAM2sE,EAAW8D,GAAY,IACpCf,GAAmBe,KAC5Bz4D,GAAU23D,GAAiB3vE,GAAO,IAAM6vE,GAAkB7vE,EAAKywE,GAAY,IAE/E,MAKE,IAAIh1E,MAAM+F,QAAQ7D,IAA8B,iBAAbA,EAAM,IAAkC,MAAdgvE,QAA+C5pE,IAAzB4pE,EAAWhvE,EAAM,IAM7F,CACL,IAAI+yE,EAAeT,GAAoBC,EAAavD,EAAYhvE,GAEhE,OAAQqC,GACN,IAAK,YACL,IAAK,gBAEDgY,GAAU23D,GAAiB3vE,GAAO,IAAM0wE,EAAe,IACvD,MAGJ,QAGI14D,GAAUhY,EAAM,IAAM0wE,EAAe,IAG7C,MAtBE,IAAK,IAAIjtC,EAAK,EAAGA,EAAK9lC,EAAMpD,OAAQkpC,IAC9BisC,GAAmB/xE,EAAM8lC,MAC3BzrB,GAAU23D,GAAiB3vE,GAAO,IAAM6vE,GAAkB7vE,EAAKrC,EAAM8lC,IAAO,IAsBtF,CAGF,OAAOzrB,CACT,CAhFe24D,CAAuBT,EAAavD,EAAYwD,GAG3D,IAAK,WAED,QAAoBptE,IAAhBmtE,EAA2B,CAC7B,IAAIU,EAAiBrP,GACjBtxD,EAASkgE,EAAcD,GAE3B,OADA3O,GAASqP,EACFX,GAAoBC,EAAavD,EAAY18D,EACtD,EAON,IAAIwgE,EAAWN,EAEf,GAAkB,MAAdxD,EACF,OAAO8D,EAGT,IAAII,EAASlE,EAAW8D,GACxB,YAAkB1tE,IAAX8tE,EAAuBA,EAASJ,CACzC,CAyDA,IAGIlP,GAHAuP,GAAe,+BAInB,SAASC,GAAgB1qD,EAAMsmD,EAAYuD,GACzC,GAAoB,IAAhB7pD,EAAK9rB,QAAmC,iBAAZ8rB,EAAK,IAA+B,OAAZA,EAAK,SAAkCtjB,IAAnBsjB,EAAK,GAAGqmD,OAClF,OAAOrmD,EAAK,GAGd,IAAI2qD,GAAa,EACbtE,EAAS,GACbnL,QAASx+D,EACT,IAAIkuE,EAAU5qD,EAAK,GAEJ,MAAX4qD,QAAmCluE,IAAhBkuE,EAAQC,KAC7BF,GAAa,EACbtE,GAAUuD,GAAoBC,EAAavD,EAAYsE,IAIvDvE,GAF2BuE,EAEI,GAIjC,IAAK,IAAI72E,EAAI,EAAGA,EAAIisB,EAAK9rB,OAAQH,IAAK,CAGpC,GAFAsyE,GAAUuD,GAAoBC,EAAavD,EAAYtmD,EAAKjsB,IAExD42E,EAGFtE,GAFyBuE,EAEI72E,EAEjC,CAGA02E,GAAaK,UAAY,EAIzB,IAHA,IACI5vD,EADA6vD,EAAiB,GAG0B,QAAvC7vD,EAAQuvD,GAAa/a,KAAK2W,KAChC0E,GAAkB,IAAM7vD,EAAM,GAGhC,IAAInlB,EC/NN,SAAiBshB,GAYf,IANA,IAEIje,EAFAiF,EAAI,EAGJtK,EAAI,EACJi3E,EAAM3zD,EAAInjB,OAEP82E,GAAO,IAAKj3E,EAAGi3E,GAAO,EAE3B5xE,EAEe,YAAV,OAHLA,EAAwB,IAApBie,EAAIoC,WAAW1lB,IAAmC,IAAtBsjB,EAAIoC,aAAa1lB,KAAc,GAA2B,IAAtBsjB,EAAIoC,aAAa1lB,KAAc,IAA4B,IAAtBsjB,EAAIoC,aAAa1lB,KAAc,MAG9F,OAAZqF,IAAM,KAAgB,IAIpDiF,EAEe,YAAV,OALLjF,GAEAA,IAAM,MAGoC,OAAZA,IAAM,KAAgB,IAErC,YAAV,MAAJiF,IAAyC,OAAZA,IAAM,KAAgB,IAItD,OAAQ2sE,GACN,KAAK,EACH3sE,IAA8B,IAAxBgZ,EAAIoC,WAAW1lB,EAAI,KAAc,GAEzC,KAAK,EACHsK,IAA8B,IAAxBgZ,EAAIoC,WAAW1lB,EAAI,KAAc,EAEzC,KAAK,EAEHsK,EAEe,YAAV,OAHLA,GAAyB,IAApBgZ,EAAIoC,WAAW1lB,MAGsB,OAAZsK,IAAM,KAAgB,IASxD,SAHAA,EAEe,YAAV,OAHLA,GAAKA,IAAM,MAG+B,OAAZA,IAAM,KAAgB,KACvCA,IAAM,MAAQ,GAAG/B,SAAS,GACzC,CD8Ka2uE,CAAW5E,GAAU0E,EAEhC,MAAO,CACLh1E,KAAMA,EACNswE,OAAQA,EACR7gE,KAAM01D,GAEV,CEvOA,SAASgQ,GAAoB5E,EAAY6E,EAAkBC,GACzD,IAAIC,EAAe,GAQnB,OAPAD,EAAW7sD,MAAM,KAAKlhB,QAAQ,SAAUgyD,QACR3yD,IAA1B4pE,EAAWjX,GACb8b,EAAiB7qE,KAAKgmE,EAAWjX,GAAa,KACrCA,IACTgc,GAAgBhc,EAAY,IAEhC,GACOgc,CACT,CACA,IAAIC,GAAiB,SAAwBlyC,EAAO+sC,EAAYoF,GAC9D,IAAIlc,EAAYj2B,EAAMz/B,IAAM,IAAMwsE,EAAWpwE,MAO5B,IAAhBw1E,QAIwD7uE,IAAhC08B,EAAMktC,WAAWjX,KACxCj2B,EAAMktC,WAAWjX,GAAa8W,EAAWE,OAE7C,EACImF,GAAe,SAAsBpyC,EAAO+sC,EAAYoF,GAC1DD,GAAelyC,EAAO+sC,EAAYoF,GAClC,IAAIlc,EAAYj2B,EAAMz/B,IAAM,IAAMwsE,EAAWpwE,KAE7C,QAAwC2G,IAApC08B,EAAMusC,SAASQ,EAAWpwE,MAAqB,CACjD,IAAI0M,EAAU0jE,EAEd,GACE/sC,EAAMqK,OAAO0iC,IAAe1jE,EAAU,IAAM4sD,EAAY,GAAI5sD,EAAS22B,EAAMgoC,OAAO,GAElF3+D,EAAUA,EAAQ+C,gBACC9I,IAAZ+F,EACX,CACF,ECtCA,SAASgpE,GAAqBryC,EAAO+sC,GACnC,QAAwCzpE,IAApC08B,EAAMusC,SAASQ,EAAWpwE,MAC5B,OAAOqjC,EAAMqK,OAAO,GAAI0iC,EAAY/sC,EAAMgoC,OAAO,EAErD,CAEA,SAAS30C,GAAM65C,EAAY3zE,EAAK08D,GAC9B,IAAI8b,EAAmB,GACnBE,EAAeH,GAAoB5E,EAAY6E,EAAkB9b,GAErE,OAAI8b,EAAiBj3E,OAAS,EACrBm7D,EAGFgc,EAAe14E,EAAIw4E,EAC5B,CAEA,IAyEIO,GAAa,SAASA,EAAW1rD,GAGnC,IAFA,IAAI2rD,EAAM,GAED53E,EAAI,EAAGA,EAAIisB,EAAK9rB,OAAQH,IAAK,CACpC,IAAI4wE,EAAM3kD,EAAKjsB,GACf,GAAW,MAAP4wE,EAAJ,CACA,IAAIiH,OAAQ,EAEZ,cAAejH,GACb,IAAK,UACH,MAEF,IAAK,SAED,GAAIvvE,MAAM+F,QAAQwpE,GAChBiH,EAAQF,EAAW/G,QAInB,IAAK,IAAIvrE,KAFTwyE,EAAQ,GAEMjH,EACRA,EAAIvrE,IAAMA,IACZwyE,IAAUA,GAAS,KACnBA,GAASxyE,GAKf,MAGJ,QAEIwyE,EAAQjH,EAIViH,IACFD,IAAQA,GAAO,KACfA,GAAOC,EAjCQ,CAmCnB,CAEA,OAAOD,CACT,ECpIIE,GDgBgB,SAAuBloE,GACzC,IAAIy1B,EAAQmsC,GAAY5hE,GAExBy1B,EAAMgoC,MAAMP,OAAS,SAAUvpE,GAE7B9C,KAAKosE,SAAWtpE,CAClB,EAEA8hC,EAAM4rC,QAAS,EAEf,IAAIryE,EAAM,WACR,IAAK,IAAIotB,EAAO9rB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM2qB,GAAO7X,EAAO,EAAGA,EAAO6X,EAAM7X,IAC/E8X,EAAK9X,GAAQjU,UAAUiU,GAGzB,IAAIi+D,EAAauE,GAAgB1qD,EAAMoZ,EAAMktC,gBAAY5pE,GAEzD,OADA8uE,GAAapyC,EAAO+sC,GAAY,GACzB/sC,EAAMz/B,IAAM,IAAMwsE,EAAWpwE,IACtC,EAiCA,MAAO,CACLpD,IAAKA,EACLm5E,GAVO,WACP,IAAK,IAAIrrD,EAAQxsB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMqrB,GAAQ9W,EAAQ,EAAGA,EAAQ8W,EAAO9W,IACpFqW,EAAKrW,GAAS1V,UAAU0V,GAG1B,OAAO8iB,GAAM2M,EAAMktC,WAAY3zE,EAAK+4E,GAAW1rD,GACjD,EAKE+rD,aApBiB,WACjB,IAAK,IAAIvrD,EAAQvsB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMorB,GAAQjX,EAAQ,EAAGA,EAAQiX,EAAOjX,IACpFyW,EAAKzW,GAAStV,UAAUsV,GAG1B,IAAI48D,EAAauE,GAAgB1qD,EAAMoZ,EAAMktC,YAC7CmF,GAAqBryC,EAAO+sC,EAC9B,EAcE8D,UAnCc,WACd,IAAK,IAAI1pD,EAAQtsB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAMmrB,GAAQzX,EAAQ,EAAGA,EAAQyX,EAAOzX,IACpFkX,EAAKlX,GAAS7U,UAAU6U,GAG1B,IAAIq9D,EAAauE,GAAgB1qD,EAAMoZ,EAAMktC,YACzC0F,EAAY,aAAe7F,EAAWpwE,KAK1C,OAJA01E,GAAqBryC,EAAO,CAC1BrjC,KAAMowE,EAAWpwE,KACjBswE,OAAQ,cAAgB2F,EAAY,IAAM7F,EAAWE,OAAS,MAEzD2F,CACT,EAwBE/K,QAAS,SAAiBgL,GACxBA,EAAI5uE,QAAQ,SAAU1D,GACpBy/B,EAAMusC,SAAShsE,IAAO,CACxB,EACF,EACAy6B,MAAO,WACLgF,EAAMktC,WAAa,CAAA,EACnBltC,EAAMusC,SAAW,CAAA,EACjBvsC,EAAMgoC,MAAMhtC,OACd,EACAgtC,MAAOhoC,EAAMgoC,MACbhoC,MAAOA,EACP8xC,oBAAqBA,GAAoB3vE,KAAK,KAAM69B,EAAMktC,YAC1D75C,MAAOA,GAAMlxB,KAAK,KAAM69B,EAAMktC,WAAY3zE,GAE9C,CCvFqBu5E,CAAc,CACjCvyE,IAAK,QAIHmyE,GAAKD,GAAeC,GAKpBn5E,GAAMk5E,GAAel5E,ICNHoI,EAAMm+C,WAG1B,CAACxgB,EAA2C9lC,SAA3Cy8D,UAAEA,EAAS8c,OAAEA,EAAMC,SAAEA,KAAah0E,EAAK3D,EAAAikC,EAAvC,CAAA,YAAA,SAAA,aAAmD,OACpD2nC,EAAAA,IAAA,OAAA1sE,OAAAC,OAAA,CAAA,EACMwE,EAAK,CACTxF,IAAKA,EACLy8D,UAAWyc,GACTzc,EACA18D,EAAG;;iBAEQy5E,EAAYD,EAAS,QAAU,OAAUA,EAAS,QAAU;cAMzDpxE,EAAMm+C,WACxB,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eAAiC,OAChC2nC,EAAAA,IAAA,OAAA1sE,OAAAC,OAAA,CAAA,EACMwE,EAAK,CACTxF,IAAKA,EACLy8D,UAAWyc,GACT,iBACAzc,EACA18D,EAAG;;;gBASJ,MAAM05E,GAAOtxE,EAAMm+C,WACxB,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eACC,OACE2nC,EAAAA,IAAA,MAAA1sE,OAAAC,OAAA,CAAA,EACMwE,EAAK,CAAA,cACG,OACZxF,IAAKA,EACLy8D,UAAWyc,GACTzc,EACA18D,EAAG;;;;;;;;kBAcA25E,GAAS,EAAGxzE,cACI,iBAAbhG,SAAwB46D,EAAS6e,aAAazzE,EAAUhG,SAAS8iC,MAAQ,KAGlE76B,EAAMm+C,WAC3B,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eAAiC,OAChC2nC,EAAAA,IAACgM,GAAI14E,OAAAC,OAAA,CAAA,EACCwE,GACJxF,IAAKA,EACLy8D,UAAWyc,GACTzc,EACA18D,EAAG;;;;;;gBC1EX,MAAM65E,GAAsB,CAACC,EAAoDn1E,KAC/EkgD,EAAAA,UAAU,KACR,GAA4B,OAAxBi1B,EAAYhqE,QAAkB,CAEhCgqE,EAAYhqE,QAAQxP,MAAM8rB,OAAS,MACnC,MAAM0V,EAAeg4C,EAAYhqE,QAAQgyB,aAIzCg4C,EAAYhqE,QAAQxP,MAAM8rB,OAAS0V,EAAe,IACpD,GACC,CAACg4C,EAAan1E,KCdnB,IAA6BgG,GAAE,KAAuB0B,GAAE,sBAAsB0B,GAAE,uBAAuBH,GAAE,QAAQ5C,GAAE,SAAS,SAAS6C,GAAEjB,EAAE/B,EAAEyB,EAAEa,EAAEzB,EAAE1D,EAAEkE,GAAG,GAAGlE,IAAI6C,EAAEtJ,OAAO,OAAOmK,IAAIkB,EAAErL,OAA7K,EAA4C,IAA4I,IAAI2L,EAAE,GAAGxB,KAAK1D,IAAI,QAAU,IAAPkE,EAAEgB,GAAY,OAAOhB,EAAEgB,GAAG,IAAI,IAAuCpB,EAAEa,EAAEE,EAAEN,EAAzChC,EAAE4C,EAAEyZ,OAAO5e,GAAGgF,EAAEV,EAAEtK,QAAQuI,EAAEmB,GAAGS,EAAE,EAAUa,GAAG,IAAGlB,EAAE+B,GAAEjB,EAAE/B,EAAEyB,EAAEa,EAAEH,EAAE,EAAEhF,EAAE,EAAEkE,IAAKC,IAAIa,IAAItB,EAAEI,GAAnU,EAAwUO,GAAEka,KAAK3Z,EAAEga,OAAO5Z,EAAE,KAAKlB,GAAtV,IAA2Ve,EAAED,EAAElK,MAAMgJ,EAAEsB,EAAE,GAAGub,MAAMxa,MAAMrC,EAAE,IAAII,GAAG2F,KAAKsoE,IAAIpvE,GAAEkC,EAAEtL,UAAUqM,GAAE2Y,KAAK3Z,EAAEga,OAAO5Z,EAAE,KAAKlB,GAApb,IAAybS,EAAEK,EAAElK,MAAMgJ,EAAEsB,EAAE,GAAGub,MAAMvd,MAAMU,EAAE,IAAII,GAAG2F,KAAKsoE,IAAIpvE,GAAE4B,EAAEhL,WAAWuK,GAA7e,IAAkfJ,EAAE,IAAII,GAAG2F,KAAKsoE,IAAIpvE,GAAEqC,EAAEtB,KAAKkB,EAAEga,OAAO5Z,KAAKnC,EAAE+b,OAAO5e,KAAK8D,GAAvhB,SAA+hBA,EAA3iB,IAAgjBQ,EAAEsa,OAAO5Z,EAAE,KAAKG,EAAEyZ,OAAO5e,EAAE,IAAImF,EAAEyZ,OAAO5e,EAAE,KAAKmF,EAAEyZ,OAAO5e,IAAIsE,EAAEsa,OAAO5Z,EAAE,KAAKG,EAAEyZ,OAAO5e,MAAroB,IAA2oB2E,EAAEkB,GAAEjB,EAAE/B,EAAEyB,EAAEa,EAAEH,EAAE,EAAEhF,EAAE,EAAEkE,IAAOJ,IAAIA,EAA1qB,GAA4qBa,IAAMb,EAAEK,IAAIA,EAAEL,GAAGkB,EAAEV,EAAEtK,QAAQuI,EAAEyC,EAAE,GAAG,OAAOd,EAAEgB,GAAGf,EAAEA,CAAC,CAAC,SAASW,GAAEF,GAAG,OAAOA,EAAE6lC,cAAc9U,QAAQ3yB,GAAE,IAAI,CAAC,SAAS8C,GAAElB,EAAE/B,GAAG,OAAOgD,GAAEjB,EAAE/B,EAAEiC,GAAEF,GAAGE,GAAEjC,GAAG,EAAE,EAAE,GAAG,CCA51B,SAASmvE,KACP,OAAOA,GAAWh5E,OAAOC,OAASD,OAAOC,OAAO2H,OAAS,SAAUvH,GACjE,IAAK,IAAIU,EAAI,EAAGA,EAAIT,UAAUC,OAAQQ,IAAK,CACzC,IAAIb,EAAII,UAAUS,GAClB,IAAK,IAAIiI,KAAK9I,GAAG,CAAG,GAAEQ,eAAeC,KAAKT,EAAG8I,KAAO3I,EAAE2I,GAAK9I,EAAE8I,GAC/D,CACA,OAAO3I,CACT,EAAG24E,GAASp4E,MAAM,KAAMN,UAC1B,CCRA,SAAS24E,GAA0CC,EAAsBC,GAAmBC,yBAA0BA,GAA2B,GAAU,IACvJ,OAAO,SAAqBrvC,GAExB,GADAmvC,SAAoEA,EAAqBnvC,IACxD,IAA7BqvC,IAAuCrvC,EAAM2rB,iBAAkB,OAAOyjB,aAAyD,EAASA,EAAgBpvC,EAChK,CACJ,CCQI,SAASsvC,MAA6ChiD,GACtD,OAAQnwB,GAAOmwB,EAAK3tB,QAASzK,GAR7B,SAAsCA,EAAK0E,GACxB,mBAAR1E,EAAoBA,EAAI0E,GAC1B1E,UAAmCA,EAAI6P,QAAUnL,EAC9D,CAKuC21E,CAA6Br6E,EAAKiI,GAGzE,CAII,SAASqyE,MAA6CliD,GAEtD,OAAOmiD,EAAAA,YAAmBH,MAA6ChiD,GAAOA,EAClF,CCkEqG,SAASoiD,MAA8CC,GACxJ,MAAMC,EAAYD,EAAO,GACzB,GAAsB,IAAlBA,EAAOn5E,OAAc,OAAOo5E,EAChC,MAAMC,EAAe,KACjB,MAAMC,EAAaH,EAAOxwE,IAAK4wE,IAAW,CAClCC,SAAUD,IACVE,UAAWF,EAAYE,aAG/B,OAAO,SAA2BC,GAC9B,MAAMC,EAAcL,EAAWx7B,OAAO,CAAC87B,GAAcJ,SAAUA,EAAWC,UAAWA,MAM1E,IACAG,KAHYJ,EAASE,GACI,UAAUD,OAK3C,CAAA,GACH,OAAOI,EAAAA,QAAe,KAAA,CACd,CAAC,UAAUT,EAAUK,aAAcE,IAEzC,CACEA,GAER,GAGJ,OADAN,EAAaI,UAAYL,EAAUK,UAC5BJ,CACX,CChHI,MAAMS,GAA4C7hB,QAAuB,OAAfrlB,iBAAsC,IAAfA,gBAAwB,EAASA,WAAWh0C,UAAYm7E,EAAAA,gBAAyB,OCJhKC,GAAmCC,EAAa,QAAQ7xE,aAAW,MACzE,GACA,IAAI8xE,GAA8B,EAClC,SAASC,GAA0CC,GAC/C,MAAO7jC,EAAI8jC,GAASJ,EAAap2B,SAASm2B,MAO1C,OANAM,GAAuB,KACGD,EAAOE,GAAUA,QAAyCA,EAAUp/C,OAAO++C,QAElG,CACCE,IAEGA,IAAoB7jC,EAAK,SAASA,IAAO,GACpD,CCXI,SAASikC,GAA0CxxC,GACnD,MAAMge,EAAcyzB,EAAAA,OAAczxC,GAIlC,OAHA0xC,EAAAA,UAAiB,KACb1zB,EAAYz4C,QAAUy6B,IAEnB2xC,EAAAA,QAAe,IAAI,IAAI7uD,KACtB,IAAI8uD,EACJ,OAAwD,QAAhDA,EAAuB5zB,EAAYz4C,eAA8C,IAAzBqsE,OAAkC,EAASA,EAAqBx6E,KAAK4mD,KAAgBl7B,IAE3J,GACN,CCXA,SAAS+uD,IAA2CliD,KAAMA,EAAOmiD,YAAaA,EAAc96D,SAAUA,EAAW,SAC7G,MAAO+6D,EAAkBC,GAwB7B,UAAsDF,YAAaA,EAAc96D,SAAUA,IACvF,MAAMi7D,EAAoBC,EAAAA,SAAgBJ,IACnC13E,GAAS63E,EACVE,EAAeC,EAAAA,OAAch4E,GAC7Bi4E,EAAeC,GAAsBt7D,GAW3C,OAVAu7D,EAAAA,UAAiB,KACTJ,EAAa5sE,UAAYnL,IACzBi4E,EAAaj4E,GACb+3E,EAAa5sE,QAAUnL,IAE5B,CACCA,EACA+3E,EACAE,IAEGJ,CACX,CAxCoDO,CAA2C,CACvFV,YAAaA,EACb96D,SAAUA,IAERy7D,OAAwBjzE,IAATmwB,EACf+iD,EAASD,EAAe9iD,EAAOoiD,EAC/BM,EAAeC,GAAsBt7D,GAa3C,MAAO,CACH07D,EAbaC,cAAoBC,IACjC,GAAIH,EAAc,CACd,MACMr4E,EAA6B,mBAAdw4E,EADNA,EACwCjjD,GAAQijD,EAC3Dx4E,IAAUu1B,GAAM0iD,EAAaj4E,EACrC,MAAO43E,EAAoBY,IAC5B,CACCH,EACA9iD,EACAqiD,EACAK,IAMR,CCpBqG,MAAMQ,GAA0DC,EAAAA,WAAkB,CAAC53E,EAAO63E,KAC3L,MAAQn3E,SAAUA,KAAco3E,GAAc93E,EACxC+3E,EAAgBC,EAAAA,SAAgBC,QAAQv3E,GACxCw3E,EAAYH,EAAc9lC,KAAKkmC,IACrC,GAAID,EAAW,CAEX,MAAME,EAAaF,EAAUl4E,MAAMU,SAC7B23E,EAAcN,EAActzE,IAAK2T,GAC/BA,IAAU8/D,EAGNF,EAAAA,SAAgB7M,MAAMiN,GAAc,EAAUJ,EAAAA,SAAgBM,KAAK,MAClDC,EAAAA,eAAsBH,GAAcA,EAAWp4E,MAAMU,SAAW,KAC3E0X,GAElB,OAAqBogE,EAAAA,cAAqBC,GAAiCC,GAAqC,CAAA,EAAIZ,EAAW,CAC3Ht9E,IAAKq9E,IACSU,EAAAA,eAAsBH,GAA4BO,EAAAA,aAAoBP,OAAY9zE,EAAW+zE,GAAe,KAClI,CACA,OAAqBG,EAAAA,cAAqBC,GAAiCC,GAAqC,CAAA,EAAIZ,EAAW,CAC3Ht9E,IAAKq9E,IACLn3E,KAERi3E,GAA0Cj6E,YAAc,OAG6C,MAAM+6E,GAAgDb,EAAAA,WAAkB,CAAC53E,EAAO63E,KACjL,MAAQn3E,SAAUA,KAAco3E,GAAc93E,EAC9C,OAAkBu4E,EAAAA,eAAsB73E,GAAgCi4E,EAAAA,aAAoBj4E,EAAU,IAC/Fk4E,GAAiCd,EAAWp3E,EAASV,OACxDxF,IAAKq+E,GAAmBhB,EAAcn3E,EAASlG,OAE5Cw9E,EAAAA,SAAgB7M,MAAMzqE,GAAY,EAAIs3E,WAAgBM,KAAK,MAAQ,OAE9EG,GAAgC/6E,YAAc,YAGuD,MAAMo7E,GAA4C,EAAGp4E,SAAUA,KAC3I83E,gBAAqBO,EAAAA,SAAiB,KAAMr4E,GAEgC,SAASy3E,GAAkC//D,GAC5I,OAAqBmgE,EAAAA,eAAsBngE,IAAUA,EAAMrd,OAAS+9E,EACxE,CACA,SAASF,GAAiCd,EAAWkB,GAEjD,MAAMC,EAAgB,IACfD,GAEP,IAAI,MAAMv3E,KAAYu3E,EAAW,CAC7B,MAAME,EAAgBpB,EAAUr2E,GAC1B03E,EAAiBH,EAAWv3E,GAChB,WAAWqf,KAAKrf,GACnBw3E,EAAcx3E,GAAY,IAAImmB,KACzCuxD,SAAwDA,KAAkBvxD,GAC1EsxD,SAAsDA,KAAiBtxD,IAErD,UAAbnmB,EAAsBw3E,EAAcx3E,GAAY,IAClDy3E,KACAC,GAEe,cAAb13E,IAA0Bw3E,EAAcx3E,GAAY,CACzDy3E,EACAC,GACFp4E,OAAOgzD,SAAS9yD,KAAK,KAC3B,CACA,MAAO,IACA62E,KACAmB,EAEX,CCrEA,MAmB2GG,GAnBvE,CAChC,IACA,SACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,IACA,OACA,MACA,MAM+Kx/B,OAAO,CAACy/B,EAAW52E,KAClM,MAAMyM,EAAqBoqE,EAAAA,WAAkB,CAACt5E,EAAO63E,KACjD,MAAQ0B,QAASA,KAAaC,GAAmBx5E,EAC3Cy5E,EAAOF,EAAUG,GAAcj3E,EAIrC,OAHAk3E,EAAAA,UAAiB,KACb78C,OAAOv9B,OAAOsD,IAAI,cAAe,GAClC,IACkB+2E,EAAAA,cAAqBH,EAAMI,GAAqC,CAAA,EAAIL,EAAgB,CACrGh/E,IAAKq9E,OAIb,OADA3oE,EAAKxR,YAAc,aAAa+E,IACzB,IACA42E,EACH52E,CAACA,GAAOyM,IAEb,IC1BH,MAAM4qE,GAAuC,0BACvCC,GAA6C,sCAC7CC,GAAsC,gCAC5C,IAAIC,GACJ,MAAMC,GAA8DC,EAAAA,cAAqB,CACrFC,OAAQ,IAAI10E,IACZ20E,uCAAwC,IAAI30E,IAC5C40E,SAAU,IAAI50E,MAEZ60E,GAA0DC,EAAAA,WAAkB,CAACx6E,EAAO63E,KACtF,MAAQ4C,4BAA6BA,GAA8B,EAAQC,gBAAiBA,EAAkBC,qBAAsBA,EAAuBC,eAAgBA,EAAiBC,kBAAmBA,EAAoBC,UAAWA,KAAeC,GAAe/6E,EACtQukD,EAAUy2B,EAAAA,WAAkBd,KAC3Be,EAAOC,GAAWC,EAAAA,SAAgB,QAChC72D,GAAS62D,EAAAA,SAAgB,IAC5BC,EAAeC,GAAuBxD,EAAep1E,GAAOy4E,EAAQz4E,IAEpE23E,EAASp9E,MAAMJ,KAAK2nD,EAAQ61B,SAC3BkB,GAAgD,IAChD/2B,EAAQ81B,wCACbp9E,OAAM,GACFs+E,EAAoDnB,EAAO79E,QAAQ++E,GACnEnsE,EAAQ8rE,EAAQb,EAAO79E,QAAQ0+E,IAAS,EACxCO,EAA8Bj3B,EAAQ81B,uCAAuC54C,KAAO,EACpFg6C,EAAyBtsE,GAASosE,EAClCG,EAoHN,SAAqDf,GACrD,MAAMgB,EAA2BC,GAAsBjB,GACjDkB,EAA8BC,EAAAA,QAAc,GAC5CC,EAAiBD,EAAAA,OAAc,QAwDrC,OAvDAE,EAAAA,UAAiB,KACb,MAAMC,EAAqB32C,IACvB,GAAIA,EAAMz2B,SAAWgtE,EAA4BxxE,QAAS,CACtD,MAAM6xE,EAAc,CAChBC,cAAe72C,GAEnB,SAAS82C,IACLC,GAAmDtC,GAA4C4B,EAA0BO,EAAa,CAClII,UAAU,GAElB,CAYsB,UAAtBh3C,EAAMi3C,aACF7hF,SAAS+sC,oBAAoB,QAASs0C,EAAe1xE,SACrD0xE,EAAe1xE,QAAU+xE,EACzB1hF,SAAS6sC,iBAAiB,QAASw0C,EAAe1xE,QAAS,CACvDmyE,MAAM,KAEPJ,GACX,CACAP,EAA4BxxE,SAAU,GAcpCqwB,EAAUoC,OAAOtB,WAAW,KAC9B9gC,SAAS6sC,iBAAiB,cAAe00C,IAC1C,GACH,MAAO,KACHn/C,OAAOhB,aAAapB,GACpBhgC,SAAS+sC,oBAAoB,cAAew0C,GAC5CvhF,SAAS+sC,oBAAoB,QAASs0C,EAAe1xE,WAE1D,CACCsxE,IAEG,CAEHc,qBAAsB,IAAIZ,EAA4BxxE,SAAU,EAExE,CAnL+BqyE,CAA6Cp3C,IACpE,MAAMz2B,EAASy2B,EAAMz2B,OACf8tE,EAAwB,IACvBp4B,EAAQ+1B,UACb/rD,KAAMquD,GAASA,EAAO39C,SAASpwB,IAE5B4sE,IAA0BkB,IAC/BhC,SAAoEA,EAAqBr1C,GACzFu1C,SAA8DA,EAAkBv1C,GAC3EA,EAAM2rB,kBAAkB6pB,SAA8CA,OAEzE+B,EA4KN,SAA+CjC,GAC/C,MAAMkC,EAAqBlB,GAAsBhB,GAC3CmC,EAA4BjB,EAAAA,QAAc,GAkBhD,OAjBAE,EAAAA,UAAiB,KACb,MAAMgB,EAAe13C,IACjB,GAAIA,EAAMz2B,SAAWkuE,EAA0B1yE,QAAS,CAIpDgyE,GAAmDrC,GAAqC8C,EAHpE,CAChBX,cAAe72C,GAEsG,CACrHg3C,UAAU,GAElB,GAGJ,OADA5hF,SAAS6sC,iBAAiB,UAAWy1C,GAC9B,IAAItiF,SAAS+sC,oBAAoB,UAAWu1C,IAEpD,CACCF,IAEG,CACHG,eAAgB,IAAIF,EAA0B1yE,SAAU,EAExD6yE,cAAe,IAAIH,EAA0B1yE,SAAU,EAE/D,CArMyB8yE,CAAuC73C,IACxD,MAAMz2B,EAASy2B,EAAMz2B,OACG,IACjB01C,EAAQ+1B,UACb/rD,KAAMquD,GAASA,EAAO39C,SAASpwB,MAGjC+rE,SAAwDA,EAAet1C,GACvEu1C,SAA8DA,EAAkBv1C,GAC3EA,EAAM2rB,kBAAkB6pB,SAA8CA,OAqD/E,OC5GA,SAAmDsC,GACnD,MAAM1C,EAAkB2C,GAAsBD,GAC9CE,EAAAA,UAAiB,KACb,MAAMz+B,EAAiBvZ,IACD,WAAdA,EAAM/jC,KAAkBm5E,EAAgBp1C,IAGhD,OADA5qC,SAAS6sC,iBAAiB,UAAWsX,GAC9B,IAAInkD,SAAS+sC,oBAAoB,UAAWoX,IAEpD,CACC67B,GAER,CD6CI6C,CAAyBj4C,IACEn2B,IAAUo1C,EAAQ61B,OAAO34C,KAAO,IAEvDi5C,SAA0DA,EAAgBp1C,IACrEA,EAAM2rB,kBAAoB6pB,IAC3Bx1C,EAAMkoB,iBACNstB,QAGRkB,EAAAA,UAAiB,KACb,GAAKf,EAUL,OATIR,IAC4D,IAAxDl2B,EAAQ81B,uCAAuC54C,OAC/Cw4C,GAAkDv/E,SAAS8iC,KAAK3iC,MAAMynD,cACtE5nD,SAAS8iC,KAAK3iC,MAAMynD,cAAgB,QAExCiC,EAAQ81B,uCAAuC/0E,IAAI21E,IAEvD12B,EAAQ61B,OAAO90E,IAAI21E,GACnBuC,KACO,KACC/C,GAAuF,IAAxDl2B,EAAQ81B,uCAAuC54C,OAAY/mC,SAAS8iC,KAAK3iC,MAAMynD,cAAgB23B,MAEvI,CACCgB,EACAR,EACAl2B,IAOFy3B,EAAAA,UAAiB,IACR,KACEf,IACL12B,EAAQ61B,OAAOp0E,OAAOi1E,GACtB12B,EAAQ81B,uCAAuCr0E,OAAOi1E,GACtDuC,OAEL,CACCvC,EACA12B,IAEJy3B,EAAAA,UAAiB,KACb,MAAMyB,EAAe,IAAIn5D,EAAM,CAAA,GAG/B,OADA5pB,SAAS6sC,iBAAiBuyC,GAAsC2D,GACzD,IAAI/iF,SAAS+sC,oBAAoBqyC,GAAsC2D,IAE/E,IACkBC,EAAAA,cAAqBC,GAAiB9oB,IAAK+oB,GAAqC,CAAA,EAAI7C,EAAY,CACjHvgF,IAAK4gF,EACLvgF,MAAO,CACHynD,cAAek5B,EAA8BC,EAAyB,OAAS,YAASn3E,KACrFtE,EAAMnF,OAEboiF,eAAgBY,GAA4B79E,EAAMi9E,eAAgBJ,EAAaI,gBAC/EC,cAAeW,GAA4B79E,EAAMk9E,cAAeL,EAAaK,eAC7ET,qBAAsBoB,GAA4B79E,EAAMy8E,qBAAsBf,EAAmBe,2BAgIzG,SAASe,KACL,MAAMl4C,EAAQ,IAAIw4C,YAAYhE,IAC9Bp/E,SAASirC,cAAcL,EAC3B,CACA,SAAS+2C,GAAmD1+E,EAAMgzD,EAASroB,GAAUg0C,SAAUA,IAC3F,MAAMztE,EAASy5B,EAAO6zC,cAActtE,OAC9By2B,EAAQ,IAAIw4C,YAAYngF,EAAM,CAChCogF,SAAS,EACTC,YAAY,EACZ11C,OAAQA,IAERqoB,GAAS9hD,EAAO04B,iBAAiB5pC,EAAMgzD,EAAS,CAChD6rB,MAAM,IAENF,EDvLJ,SAAmDztE,EAAQy2B,GACvDz2B,GAAQovE,EAAAA,UAAiB,IAAIpvE,EAAO82B,cAAcL,GAE1D,CCoLkB44C,CAAmCrvE,EAAQy2B,GACpDz2B,EAAO82B,cAAcL,EAC9B,CEhQA,MAAM64C,GAA2C,8BAC3CC,GAA6C,gCAC7CC,GAAsC,CACxCN,SAAS,EACTC,YAAY,GAKVM,GAA0DC,EAAAA,WAAkB,CAACv+E,EAAO63E,KACtF,MAAQ2G,KAAMA,GAAO,EAAQC,QAASA,GAAU,EAAQC,iBAAkBC,EAAuBC,mBAAoBC,KAA4BC,GAAe9+E,GACzJ++E,EAAYC,GAAgBC,EAAAA,SAAgB,MAC7CP,EAAmBQ,GAAsBP,GACzCC,EAAqBM,GAAsBL,GAC3CM,EAAwBC,EAAAA,OAAc,MACtChE,EAAeiE,GAAuBxH,EAAep1E,GAAOu8E,EAAav8E,IAEzE68E,EAAaF,EAAAA,OAAc,CAC7BG,QAAQ,EACR,KAAA50C,GACIvuC,KAAKmjF,QAAS,CAClB,EACA,MAAAC,GACIpjF,KAAKmjF,QAAS,CAClB,IACDl1E,QACHo1E,EAAAA,UAAiB,KACb,GAAIhB,EAAS,CACT,SAASiB,EAAcp6C,GACnB,GAAIg6C,EAAWC,SAAWR,EAAY,OACtC,MAAMlwE,EAASy2B,EAAMz2B,OACjBkwE,EAAW9/C,SAASpwB,GAASswE,EAAsB90E,QAAUwE,EAC5D8wE,GAA4BR,EAAsB90E,QAAS,CAC5DwK,QAAQ,GAEhB,CACA,SAAS+qE,EAAet6C,IAChBg6C,EAAWC,QAAWR,IACrBA,EAAW9/C,SAASqG,EAAMspB,gBAAgB+wB,GAA4BR,EAAsB90E,QAAS,CACtGwK,QAAQ,IAEhB,CAGA,OAFAna,SAAS6sC,iBAAiB,UAAWm4C,GACrChlF,SAAS6sC,iBAAiB,WAAYq4C,GAC/B,KACHllF,SAAS+sC,oBAAoB,UAAWi4C,GACxChlF,SAAS+sC,oBAAoB,WAAYm4C,GAEjD,GACD,CACCnB,EACAM,EACAO,EAAWC,SAEfE,EAAAA,UAAiB,KACb,GAAIV,EAAY,CACZc,GAAuCv6E,IAAIg6E,GAC3C,MAAMQ,EAA2BplF,SAASk4C,cAE1C,IAD4BmsC,EAAW9/C,SAAS6gD,GACtB,CACtB,MAAMC,EAAa,IAAIjC,YAAYK,GAA0CE,IAC7EU,EAAWx3C,iBAAiB42C,GAA0CO,GACtEK,EAAWp5C,cAAco6C,GACpBA,EAAW9uB,oBA2E5B,SAA0C+uB,GAAcnrE,OAAQA,GAAS,GAAW,IACpF,MAAMirE,EAA2BplF,SAASk4C,cAC1C,IAAK,MAAMqtC,KAAaD,EAIpB,GAHAL,GAA4BM,EAAW,CACnCprE,OAAQA,IAERna,SAASk4C,gBAAkBktC,EAA0B,MAEjE,CAlFoBI,EAqLuBhgB,EArL4CigB,GAA4CpB,GAsLxH7e,EAAMn/D,OAAQq/E,GAAwB,MAAjBA,EAAKv4C,UAtL4G,CACzHhzB,QAAQ,IAERna,SAASk4C,gBAAkBktC,GAA0BH,GAA4BZ,GAE7F,CACA,MAAO,KACHA,EAAWt3C,oBAAoB02C,GAA0CO,GAGzEljD,WAAW,KACP,MAAM6kD,EAAe,IAAIvC,YAAYM,GAA4CC,IACjFU,EAAWx3C,iBAAiB62C,GAA4CQ,GACxEG,EAAWp5C,cAAc06C,GACpBA,EAAapvB,kBAAkB0uB,GAA4BG,QAA2EA,EAA2BplF,SAAS8iC,KAAM,CACjL3oB,QAAQ,IAGZkqE,EAAWt3C,oBAAoB22C,GAA4CQ,GAC3EiB,GAAuCS,OAAOhB,IAC/C,GAEX,CA+JR,IAA2Cpf,GA9JpC,CACC6e,EACAL,EACAE,EACAU,IAEJ,MAAMzgC,EAAgB0hC,cAAoBj7C,IACtC,IAAKk5C,IAASC,EAAS,OACvB,GAAIa,EAAWC,OAAQ,OACvB,MAAMiB,EAAyB,QAAdl7C,EAAM/jC,MAAkB+jC,EAAMm7C,SAAWn7C,EAAMoiC,UAAYpiC,EAAMmiC,QAC5EiZ,EAAiBhmF,SAASk4C,cAChC,GAAI4tC,GAAYE,EAAgB,CAC5B,MAAMxhB,EAAY55B,EAAMq7C,eACjBjoE,EAAOrL,GAiDtB,SAAgD6xD,GAChD,MAAM8gB,EAAaG,GAA4CjhB,GACzDxmD,EAAQkoE,GAAkCZ,EAAY9gB,GACtD7xD,EAAOuzE,GAAkCZ,EAAWx0E,UAAW0zD,GACrE,MAAO,CACHxmD,EACArL,EAER,CAzDkCwzE,CAAuC3hB,GAC3BxmD,GAASrL,EAIlCi4B,EAAMw7C,UAAYJ,IAAmBrzE,EAK/Bi4B,EAAMw7C,UAAYJ,IAAmBhoE,IAC5C4sB,EAAMkoB,iBACFgxB,GAAMmB,GAA4BtyE,EAAM,CACxCwH,QAAQ,MAPZywB,EAAMkoB,iBACFgxB,GAAMmB,GAA4BjnE,EAAO,CACzC7D,QAAQ,KALZ6rE,IAAmBxhB,GAAW55B,EAAMkoB,gBAchD,GACD,CACCgxB,EACAC,EACAa,EAAWC,SAEf,OAAqBwB,gBAAqBC,GAAiBnsB,IAAKosB,GAAqC,CACjGC,UAAU,GACXpC,EAAY,CACXtkF,IAAK4gF,EACLlrB,UAAWrR,OAwCf,SAASshC,GAA4CjhB,GACrD,MAAMprD,EAAQ,GACRqtE,EAASzmF,SAASyyD,iBAAiB+R,EAAW9R,WAAWg0B,aAAc,CACzEC,WAAa5+E,IACT,MAAM6+E,EAAiC,UAAjB7+E,EAAKolC,SAAqC,WAAdplC,EAAK1H,KACvD,OAAI0H,EAAKykE,UAAYzkE,EAAK8+E,QAAUD,EAAsBl0B,WAAWo0B,YAG9D/+E,EAAKy+E,UAAY,EAAI9zB,WAAWq0B,cAAgBr0B,WAAWo0B,eAG1E,KAAML,EAAO1nC,YAAW3lC,EAAM5L,KAAKi5E,EAAOx2D,aAE1C,OAAO7W,CACX,CAII,SAAS8sE,GAAkCpoE,EAAU0mD,GACrD,IAAK,MAAM1qD,KAAWgE,EAElB,IAAKkpE,GAA+BltE,EAAS,CACzCmtE,KAAMziB,IACN,OAAO1qD,CAEnB,CACA,SAASktE,GAA+Bj/E,GAAQk/E,KAAMA,IAClD,GAA0C,WAAtCnlD,iBAAiB/5B,GAAM+8D,WAAyB,OAAO,EAC3D,KAAM/8D,GAAK,CAEP,QAAa6B,IAATq9E,GAAsBl/E,IAASk/E,EAAM,OAAO,EAChD,GAAuC,SAAnCnlD,iBAAiB/5B,GAAMslC,QAAoB,OAAO,EACtDtlC,EAAOA,EAAK46B,aAChB,CACA,OAAO,CACX,CAIA,SAASsiD,GAA4BnrE,GAAWK,OAAQA,GAAS,GAAW,IAExE,GAAIL,GAAWA,EAAQmB,MAAO,CAC1B,MAAMmqE,EAA2BplF,SAASk4C,cAC1Cp+B,EAAQmB,MAAM,CACV6+B,eAAe,IAEfhgC,IAAYsrE,GAVxB,SAAiDtrE,GAC7C,OAAOA,aAAmBu8C,kBAAoB,WAAYv8C,CAC9D,CAQoDotE,CAAwCptE,IAAYK,GAAQL,EAAQK,QACpH,CACJ,CAGqG,MAAMgrE,GAC3G,WACmE,IAAIhuB,EAAQ,GAC3E,MAAO,CACH,GAAAvsD,CAAKg6E,GAED,MAAMuC,EAAmBhwB,EAAM,GAC3BytB,IAAeuC,IAAkBA,SAA4DA,EAAiBl3C,SAElHknB,EAAQiwB,GAAkCjwB,EAAOytB,GACjDztB,EAAMtd,QAAQ+qC,EAClB,EACA,MAAAgB,CAAQhB,GACJ,IAAIyC,EACJlwB,EAAQiwB,GAAkCjwB,EAAOytB,GACxB,QAAxByC,EAAUlwB,EAAM,UAA4B,IAAZkwB,GAAsBA,EAAQvC,QACnE,EAER,CAlBoJwC,GAmBpJ,SAASF,GAAkCp2C,EAAO00C,GAC9C,MAAM6B,EAAe,IACdv2C,GAEDv8B,EAAQ8yE,EAAa1lF,QAAQ6jF,GAEnC,OADc,IAAVjxE,GAAc8yE,EAAa7yE,OAAOD,EAAO,GACtC8yE,CACX,CCnPA,MAAMC,GAA0DC,EAAAA,WAAkB,CAACniF,EAAO63E,KACtF,IAAIuK,EACJ,MAAQljB,UAAWA,GAA2B,OAAfxwB,iBAAsC,IAAfA,YAAkF,QAAhD0zC,EAAuB1zC,WAAWh0C,gBAA+C,IAAzB0nF,OAAlE,EAA6GA,EAAqB5kD,SAAU6kD,GAAgBriF,EAC1O,OAAOk/D,EAA0BojB,EAAgBnO,aAA2BoO,EAAAA,cAAqBC,GAAiB3tB,IAAK4tB,GAAqC,CAAA,EAAIJ,EAAa,CACzK7nF,IAAKq9E,KACJ3Y,GAAa,OCCtB,MAAMwjB,GAA6C1iF,IAC/C,MAAQ2iF,QAASA,EAAUjiF,SAAUA,GAAcV,EAC7C4iF,EAa2F,SAA2CD,GAC5I,MAAO1H,EAAOC,GAAW2H,aACnBC,EAAYC,EAAAA,OAAc,IAC1BC,EAAiBD,EAAAA,OAAcJ,GAC/BM,EAAuBF,EAAAA,OAAc,QACrCG,EAAeP,EAAU,UAAY,aACpC53B,EAAOo4B,GA7BlB,SAAmDD,EAAcE,GAC7D,OAAOC,EAAAA,WAAkB,CAACt4B,EAAOzlB,KAC7B,MAAMg+C,EAAYF,EAAQr4B,GAAOzlB,GACjC,OAAOg+C,QAA6CA,EAAYv4B,GACjEm4B,EACP,CAwB0BK,CAA0CL,EAAc,CAC1EM,QAAS,CACLC,QAAS,YACTC,cAAe,oBAEnBC,iBAAkB,CACdC,MAAO,UACPC,cAAe,aAEnBC,UAAW,CACPF,MAAO,aAsEf,OAnEAG,EAAAA,UAAiB,KACb,MAAMC,EAAuBC,GAAuCnB,EAAUz4E,SAC9E44E,EAAqB54E,QAAoB,YAAV0gD,EAAsBi5B,EAAuB,QAC7E,CACCj5B,IAEJm5B,GAAuB,KACnB,MAAMjW,EAAS6U,EAAUz4E,QACnB85E,EAAanB,EAAe34E,QAElC,GAD0B85E,IAAexB,EAClB,CACnB,MAAMyB,EAAoBnB,EAAqB54E,QACzC25E,EAAuBC,GAAuChW,GACpE,GAAI0U,EAASQ,EAAK,cACb,GAA6B,SAAzBa,GAAwG,UAApE/V,aAAuC,EAASA,EAAOlmC,SAEpGo7C,EAAK,eACA,CAO8BA,EAA3BgB,GADYC,IAAsBJ,EACF,gBAC1B,UACd,CACAhB,EAAe34E,QAAUs4E,CAC7B,GACD,CACCA,EACAQ,IAEJe,GAAuB,KACnB,GAAIjJ,EAAO,CAKT,MAAMoJ,EAAsB/+C,IACtB,MACMg/C,EADuBL,GAAuCnB,EAAUz4E,SAC9ByL,SAASwvB,EAAMi/C,eAC3Dj/C,EAAMz2B,SAAWosE,GAASqJ,GAG9BE,EAAAA,UAAiB,IAAIrB,EAAK,mBAGxBsB,EAAwBn/C,IACtBA,EAAMz2B,SAAWosE,IACrBgI,EAAqB54E,QAAU45E,GAAuCnB,EAAUz4E,WAKpF,OAHA4wE,EAAM1zC,iBAAiB,iBAAkBk9C,GACzCxJ,EAAM1zC,iBAAiB,kBAAmB88C,GAC1CpJ,EAAM1zC,iBAAiB,eAAgB88C,GAChC,KACHpJ,EAAMxzC,oBAAoB,iBAAkBg9C,GAC5CxJ,EAAMxzC,oBAAoB,kBAAmB48C,GAC7CpJ,EAAMxzC,oBAAoB,eAAgB48C,GAElD,CAEAlB,EAAK,kBACN,CACClI,EACAkI,IAEG,CACHuB,UAAW,CACP,UACA,oBACF5uE,SAASi1C,GACXvwD,IAAKmqF,EAAAA,YAAoBliF,IACjBA,IAAMqgF,EAAUz4E,QAAUmyB,iBAAiB/5B,IAC/Cy4E,EAAQz4E,IACT,IAEX,CA7GqBmiF,CAAkCjC,GAC7CvqE,EAA4B,mBAAb1X,EAA0BA,EAAS,CACpDiiF,QAASC,EAAS8B,YACjBG,EAAAA,SAAgBvM,KAAK53E,GACpBlG,EAAMsqF,GAAuBlC,EAASpoF,IAAK4d,EAAM5d,KAEvD,MADuC,mBAAbkG,GACLkiF,EAAS8B,UAA0BK,EAAAA,aAAoB3sE,EAAO,CAC/E5d,IAAKA,IACJ,MAsG4F,SAASypF,GAAuChW,GACjJ,OAAQA,aAAuC,EAASA,EAAOsW,gBAAkB,MACrF,CAtGA7B,GAA0ChlF,YAAc,WC3BuB,IAAIsnF,GAA8B,EAsBjH,SAASC,KACL,MAAMzwE,EAAU9Z,SAASI,cAAc,QAIvC,OAHA0Z,EAAQmgD,aAAa,yBAA0B,IAC/CngD,EAAQ0sE,SAAW,EACnB1sE,EAAQ3Z,MAAMO,QAAU,mEACjBoZ,CACX,CC/BO,IAAI0wE,GAAqB,4BACrBC,GAAqB,0BCYzB,SAASC,GAAU5qF,EAAK0E,GAO3B,MANmB,mBAAR1E,EACPA,EAAI0E,GAEC1E,IACLA,EAAI6P,QAAUnL,GAEX1E,CACX,CClBA,IAAI0kD,GAA8C,oBAAXpiB,OAAyBn6B,EAAMw8C,gBAAkBx8C,EAAMy8C,UAC1FimC,GAAgB,IAAIt6E,QAejB,SAASu6E,GAAa1yD,EAAM2yD,GAC/B,ICL2BrzB,EAAcptB,EACrCtqC,EDIAsoD,GCLuBoP,EDKsB,KCLRptB,EDKc,SAAU0gD,GAC7D,OAAO5yD,EAAK3tB,QAAQ,SAAUzK,GAAO,OAAO4qF,GAAU5qF,EAAKgrF,EAAW,EAC1E,ECNIhrF,EAAMmlD,WAAS,WAAc,MAAA,CAE7BzgD,MAAOgzD,EAEPptB,SAAUA,EAEV2gD,OAAQ,CACJ,WAAIp7E,GACA,OAAO7P,EAAI0E,KACf,EACA,WAAImL,CAAQnL,GACR,IAAImO,EAAO7S,EAAI0E,MACXmO,IAASnO,IACT1E,EAAI0E,MAAQA,EACZ1E,EAAIsqC,SAAS5lC,EAAOmO,GAE5B,GAEJ,GAAG,GAEP7S,EAAIsqC,SAAWA,EACRtqC,EAAIirF,QDMX,OAnBAvmC,GAA0B,WACtB,IAAIwmC,EAAWL,GAAchkF,IAAIyhD,GACjC,GAAI4iC,EAAU,CACV,IAAIC,EAAa,IAAIjgF,IAAIggF,GACrBE,EAAa,IAAIlgF,IAAIktB,GACrBizD,EAAY/iC,EAAYz4C,QAC5Bs7E,EAAW1gF,QAAQ,SAAUzK,GACpBorF,EAAWzgF,IAAI3K,IAChB4qF,GAAU5qF,EAAK,KAEvB,GACAorF,EAAW3gF,QAAQ,SAAUzK,GACpBmrF,EAAWxgF,IAAI3K,IAChB4qF,GAAU5qF,EAAKqrF,EAEvB,EACJ,CACAR,GAAchgF,IAAIy9C,EAAalwB,EACnC,EAAG,CAACA,IACGkwB,CACX,CE3CA,SAASgjC,GAAK7+E,GACV,OAAOA,CACX,CAqEO,SAAS8+E,GAAoBx6E,QAChB,IAAZA,IAAsBA,EAAU,CAAA,GACpC,IAAIy6E,EAtER,SAA2BC,EAAUnY,QACd,IAAfA,IAAyBA,EAAagY,IAC1C,IAAII,EAAS,GACTC,GAAW,EACXH,EAAS,CACTI,KAAM,WACF,GAAID,EACA,MAAM,IAAIvmF,MAAM,oGAEpB,OAAIsmF,EAAOpqF,OACAoqF,EAAOA,EAAOpqF,OAAS,GAE3BmqF,CACX,EACAI,UAAW,SAAUlxC,GACjB,IAAIirC,EAAOtS,EAAW34B,EAAMgxC,GAE5B,OADAD,EAAOh+E,KAAKk4E,GACL,WACH8F,EAASA,EAAOnlF,OAAO,SAAU/B,GAAK,OAAOA,IAAMohF,CAAM,EAC7D,CACJ,EACAkG,iBAAkB,SAAUtgD,GAExB,IADAmgD,GAAW,EACJD,EAAOpqF,QAAQ,CAClB,IAAIyqF,EAAML,EACVA,EAAS,GACTK,EAAIthF,QAAQ+gC,EAChB,CACAkgD,EAAS,CACLh+E,KAAM,SAAUlJ,GAAK,OAAOgnC,EAAGhnC,EAAI,EACnC+B,OAAQ,WAAc,OAAOmlF,CAAQ,EAE7C,EACAM,aAAc,SAAUxgD,GACpBmgD,GAAW,EACX,IAAIM,EAAe,GACnB,GAAIP,EAAOpqF,OAAQ,CACf,IAAIyqF,EAAML,EACVA,EAAS,GACTK,EAAIthF,QAAQ+gC,GACZygD,EAAeP,CACnB,CACA,IAAIQ,EAAe,WACf,IAAIH,EAAME,EACVA,EAAe,GACfF,EAAIthF,QAAQ+gC,EAChB,EACI2gD,EAAQ,WAAc,OAAOz9E,QAAQgf,UAAU/e,KAAKu9E,EAAe,EACvEC,IACAT,EAAS,CACLh+E,KAAM,SAAUlJ,GACZynF,EAAav+E,KAAKlJ,GAClB2nF,GACJ,EACA5lF,OAAQ,SAAUA,GAEd,OADA0lF,EAAeA,EAAa1lF,OAAOA,GAC5BmlF,CACX,EAER,GAEJ,OAAOF,CACX,CAQiBY,CAAkB,MAE/B,OADAZ,EAAOz6E,QAAUjQ,EAAS,CAAEmoE,OAAO,EAAMojB,KAAK,GAASt7E,GAChDy6E,CACX,CC3EA,IAAIc,GAAU,SAAUxmD,GACpB,IAAIymD,EAAUzmD,EAAGymD,QAASvwE,EAAOna,EAAOikC,EAAI,CAAC,YAC7C,IAAKymD,EACD,MAAM,IAAInnF,MAAM,sEAEpB,IAAIonF,EAASD,EAAQX,OACrB,IAAKY,EACD,MAAM,IAAIpnF,MAAM,4BAEpB,OAAO+C,EAAM7H,cAAcksF,EAAQ1rF,EAAS,CAAA,EAAIkb,GACpD,EAEO,SAASywE,GAAcjB,EAAQkB,GAElC,OADAlB,EAAOK,UAAUa,GACVJ,EACX,CAJAA,GAAQK,iBAAkB,ECZnB,IAAIC,GAAYrB,KCInBsB,GAAU,WAEd,EAIIC,GAAe3kF,EAAMm+C,WAAW,SAAU9gD,EAAOunF,GACjD,IAAI/sF,EAAMmI,EAAM88C,OAAO,MACnBnf,EAAK39B,EAAMg9C,SAAS,CACpB6nC,gBAAiBH,GACjBI,eAAgBJ,GAChBK,mBAAoBL,KACpB5iD,EAAYnE,EAAG,GAAIqnD,EAAernD,EAAG,GACrCsnD,EAAe5nF,EAAM4nF,aAAclnF,EAAWV,EAAMU,SAAUu2D,EAAYj3D,EAAMi3D,UAAW4wB,EAAkB7nF,EAAM6nF,gBAAiBC,EAAU9nF,EAAM8nF,QAASC,EAAS/nF,EAAM+nF,OAAQhB,EAAU/mF,EAAM+mF,QAASiB,EAAchoF,EAAMgoF,YAAaC,EAAQjoF,EAAMioF,MAAOC,EAAiBloF,EAAMkoF,eAAgBrnD,EAAK7gC,EAAMkM,GAAIi8E,OAAmB,IAAPtnD,EAAgB,MAAQA,EAAIrqB,EAAOna,EAAO2D,EAAO,CAAC,eAAgB,WAAY,YAAa,kBAAmB,UAAW,SAAU,UAAW,cAAe,QAAS,iBAAkB,OAC7f8mF,EAAUC,EACVqB,EAAe9C,GAAa,CAAC9qF,EAAK+sF,IAClCc,EAAiB/sF,EAASA,EAAS,CAAA,EAAIkb,GAAOiuB,GAClD,OAAQ9hC,EAAM7H,cAAc6H,EAAMW,SAAU,KACxCwkF,GAAYnlF,EAAM7H,cAAcgsF,EAAS,CAAEC,QAASK,GAAWS,gBAAiBA,EAAiBE,OAAQA,EAAQC,YAAaA,EAAaC,MAAOA,EAAON,aAAcA,EAAcO,iBAAkBA,EAAgBI,QAAS9tF,IAChOotF,EAAgBjlF,EAAM4lF,aAAa5lF,EAAM8mD,SAAS6uB,KAAK53E,GAAWpF,EAASA,EAAS,CAAA,EAAI+sF,GAAiB,CAAE7tF,IAAK4tF,KAAqBzlF,EAAM7H,cAAcqtF,EAAW7sF,EAAS,CAAA,EAAI+sF,EAAgB,CAAEpxB,UAAWA,EAAWz8D,IAAK4tF,IAAiB1nF,GACvP,GACA4mF,GAAakB,aAAe,CACxBV,SAAS,EACTD,iBAAiB,EACjBI,OAAO,GAEXX,GAAatU,WAAa,CACtByV,UAAWtD,GACXuD,UAAWxD,IChCf,SAASyD,KACL,IAAKjuF,SACD,OAAO,KACX,IAAIwD,EAAMxD,SAASI,cAAc,SACjCoD,EAAInD,KAAO,WACX,IAAI4tE,ECFc,WAIlB,GAAiC,oBAAtBigB,kBACP,OAAOA,iBAGf,CDNgBC,GAIZ,OAHIlgB,GACAzqE,EAAIy2D,aAAa,QAASgU,GAEvBzqE,CACX,CAeO,IAAI4qF,GAAsB,WAC7B,IAAIC,EAAU,EACVC,EAAa,KACjB,MAAO,CACH1jF,IAAK,SAAUzK,GARvB,IAAwBqD,EASG,GAAX6qF,IACKC,EAAaL,SApBlC,SAAsBzqF,EAAK3D,GAEnB2D,EAAI/C,WAEJ+C,EAAI/C,WAAWC,QAAUb,EAGzB2D,EAAIhD,YAAYR,SAASW,eAAed,GAEhD,CAYoB0uF,CAAaD,EAAYnuF,GAXrBqD,EAYW8qF,GAXpBtuF,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,IAC7DM,YAAYgD,IAaT6qF,GACJ,EACAzI,OAAQ,eACJyI,GACgBC,IACZA,EAAWnjE,YAAcmjE,EAAWnjE,WAAW+xB,YAAYoxC,GAC3DA,EAAa,KAErB,EAER,EExCWE,GAAiB,WACxB,ICIIlgB,EDJAmgB,GCIAngB,EAAQ8f,KACL,SAAU7a,EAAQmb,GACrBzmF,EAAMy8C,UAAU,WAEZ,OADA4pB,EAAM1jE,IAAI2oE,GACH,WACHjF,EAAMsX,QACV,CACJ,EAAG,CAACrS,GAAUmb,GAClB,GDNA,OALY,SAAU9oD,GAClB,IAAI2tC,EAAS3tC,EAAG2tC,OAAQob,EAAU/oD,EAAG+oD,QAErC,OADAF,EAASlb,EAAQob,GACV,IACX,CAEJ,EEfWC,GAAU,CACjBhqE,KAAM,EACN4e,IAAK,EACL1e,MAAO,EACPu+C,IAAK,GAEL3I,GAAQ,SAAUp2D,GAAK,OAAO+J,SAAS/J,GAAK,GAAI,KAAO,CAAG,EAQnDuqF,GAAc,SAAUC,GAE/B,QADgB,IAAZA,IAAsBA,EAAU,UACd,oBAAX1sD,OACP,OAAOwsD,GAEX,IAAIG,EAZQ,SAAUD,GACtB,IAAItnD,EAAKpF,OAAON,iBAAiB9hC,SAAS8iC,MACtCle,EAAO4iB,EAAe,YAAZsnD,EAAwB,cAAgB,cAClDtrD,EAAMgE,EAAe,YAAZsnD,EAAwB,aAAe,aAChDhqE,EAAQ0iB,EAAe,YAAZsnD,EAAwB,eAAiB,eACxD,MAAO,CAACp0B,GAAM91C,GAAO81C,GAAMl3B,GAAMk3B,GAAM51C,GAC3C,CAMkBkqE,CAAUF,GACpBG,EAAgBjvF,SAAS0iC,gBAAgBd,YACzCstD,EAAc9sD,OAAOa,WACzB,MAAO,CACHre,KAAMmqE,EAAQ,GACdvrD,IAAKurD,EAAQ,GACbjqE,MAAOiqE,EAAQ,GACf1rB,IAAK/xD,KAAKkuB,IAAI,EAAG0vD,EAAcD,EAAgBF,EAAQ,GAAKA,EAAQ,IAE5E,ECxBII,GAAQX,KACDY,GAAgB,qBAIvBC,GAAY,SAAUzpD,EAAI0pD,EAAeR,EAASS,GAClD,IAAI3qE,EAAOghB,EAAGhhB,KAAM4e,EAAMoC,EAAGpC,IAAK1e,EAAQ8gB,EAAG9gB,MAAOu+C,EAAMz9B,EAAGy9B,IAE7D,YADgB,IAAZyrB,IAAsBA,EAAU,UAC7B,QAAQtsF,ObVgB,0BaUc,4BAA4BA,OAAO+sF,EAAW,yBAAyB/sF,OAAO6gE,EAAK,OAAO7gE,OAAO+sF,EAAW,mBAAmB/sF,OAAO4sF,GAAe,8BAA8B5sF,OAAO+sF,EAAW,8CAA8C/sF,OAAO,CACnS8sF,GAAiB,sBAAsB9sF,OAAO+sF,EAAW,KAC7C,WAAZT,GACI,uBAAuBtsF,OAAOoiB,EAAM,0BAA0BpiB,OAAOghC,EAAK,4BAA4BhhC,OAAOsiB,EAAO,kEAAkEtiB,OAAO6gE,EAAK,OAAO7gE,OAAO+sF,EAAW,WACnN,YAAZT,GAAyB,kBAAkBtsF,OAAO6gE,EAAK,OAAO7gE,OAAO+sF,EAAW,MAE/ElpF,OAAOgzD,SACP9yD,KAAK,IAAK,kBAAkB/D,OAAOgoF,GAAoB,mBAAmBhoF,OAAO6gE,EAAK,OAAO7gE,OAAO+sF,EAAW,mBAAmB/sF,OAAOioF,GAAoB,0BAA0BjoF,OAAO6gE,EAAK,OAAO7gE,OAAO+sF,EAAW,mBAAmB/sF,OAAOgoF,GAAoB,MAAMhoF,OAAOgoF,GAAoB,qBAAqBhoF,OAAO+sF,EAAW,mBAAmB/sF,OAAOioF,GAAoB,MAAMjoF,OAAOioF,GAAoB,4BAA4BjoF,OAAO+sF,EAAW,uBAAuB/sF,OAAO4sF,GAAe,aAAa5sF,ObZ9e,iCaY6gB,MAAMA,OAAO6gE,EAAK,aACnkB,EACImsB,GAAuB,WACvB,IAAInB,EAAUhgF,SAASrO,SAAS8iC,KAAKyT,aAAa64C,KAAkB,IAAK,IACzE,OAAOK,SAASpB,GAAWA,EAAU,CACzC,EAkBWqB,GAAkB,SAAU9pD,GACnC,IAAI+pD,EAAa/pD,EAAG+pD,WAAYC,EAAchqD,EAAGgqD,YAAazpD,EAAKP,EAAGkpD,QAASA,OAAiB,IAAP3oD,EAAgB,SAAWA,EAjBpHl+B,EAAMy8C,UAAU,WAEZ,OADA1kD,SAAS8iC,KAAKm3B,aAAam1B,IAAgBI,KAAyB,GAAGhmF,YAChE,WACH,IAAIqmF,EAAaL,KAAyB,EACtCK,GAAc,EACd7vF,SAAS8iC,KAAKgtD,gBAAgBV,IAG9BpvF,SAAS8iC,KAAKm3B,aAAam1B,GAAeS,EAAWrmF,WAE7D,CACJ,EAAG,IAaH,IAAI65D,EAAMp7D,EAAMqoD,QAAQ,WAAc,OAAOu+B,GAAYC,EAAU,EAAG,CAACA,IACvE,OAAO7mF,EAAM7H,cAAc+uF,GAAO,CAAE5b,OAAQ8b,GAAUhsB,GAAMssB,EAAYb,EAAUc,EAA6B,GAAf,eACpG,ECpDIG,IAAmB,EACvB,GAAsB,oBAAX3tD,OACP,IACI,IAAIvxB,GAAUhQ,OAAOqG,eAAe,CAAA,EAAI,UAAW,CAC/CP,IAAK,WAED,OADAopF,IAAmB,GACZ,CACX,IAGJ3tD,OAAOyK,iBAAiB,OAAQh8B,GAASA,IAEzCuxB,OAAO2K,oBAAoB,OAAQl8B,GAASA,GAChD,CACA,MAAOshC,GACH49C,IAAmB,CACvB,CAEG,IAAIC,KAAaD,IAAmB,CAAEE,SAAS,GCN3CC,GAA0B,SAAUC,EAAMpoF,GACjD,IAAI4H,EAAU5H,EACd,EAAG,CAMC,GAJ0B,oBAAfywC,YAA8B7oC,aAAmB6oC,aACxD7oC,EAAUA,EAAQkzB,MAEHutD,GAAuBD,EAAMxgF,GAC9B,CACd,IAAIi2B,EAAKyqD,GAAmBF,EAAMxgF,GAClC,GADgDi2B,EAAG,GAAQA,EAAG,GAE1D,OAAO,CAEf,CACAj2B,EAAUA,EAAQwb,UACtB,OAASxb,GAAWA,IAAY3P,SAAS8iC,MACzC,OAAO,CACX,EAiBIstD,GAAyB,SAAUD,EAAMpoF,GACzC,MAAgB,MAATooF,EA/CmB,SAAUpoF,GACpC,IAAIwrE,EAASnxC,OAAON,iBAAiB/5B,GACrC,MAA6B,WAArBwrE,EAAOxxC,aACTwxC,EAAOxxC,YAAcwxC,EAAOvxC,WAAkC,YAArBuxC,EAAOxxC,UAE1D,CA0C0BuuD,CAAwBvoF,GAzCpB,SAAUA,GACpC,IAAIwrE,EAASnxC,OAAON,iBAAiB/5B,GACrC,MAA6B,WAArBwrE,EAAOvxC,aACTuxC,EAAOxxC,YAAcwxC,EAAOvxC,WAAkC,YAArBuxC,EAAOvxC,UAE1D,CAoC0DuuD,CAAwBxoF,EAClF,EACIsoF,GAAqB,SAAUF,EAAMpoF,GACrC,MAAgB,MAATooF,EAlBA,EAFyBvqD,EAoBU79B,GAnBvBk8B,UAA0B2B,EAAGjE,aAA6BiE,EAAGlE,cAO1D,SAAUkE,GAEhC,MAAO,CADUA,EAAG5B,WAA0B4B,EAAG/D,YAA2B+D,EAAGhE,YAMnF,CAKsD4uD,CAAoBzoF,GApBhD,IAAU69B,CAqBpC,EC7CW6qD,GAAa,SAAU7lD,GAC9B,MAAO,mBAAoBA,EAAQ,CAACA,EAAM8lD,eAAe,GAAG/3C,QAAS/N,EAAM8lD,eAAe,GAAG93C,SAAW,CAAC,EAAG,EAChH,EACW+3C,GAAa,SAAU/lD,GAAS,MAAO,CAACA,EAAMgmD,OAAQhmD,EAAMimD,OAAS,EAC5EC,GAAa,SAAUhxF,GACvB,OAAOA,GAAO,YAAaA,EAAMA,EAAI6P,QAAU7P,CACnD,EAEIixF,GAAgB,SAAUp5C,GAAM,MAAO,4BAA4Bn1C,OAAOm1C,EAAI,qDAAqDn1C,OAAOm1C,EAAI,4BAA8B,EAC5KgJ,GAAY,EACZqwC,GAAY,GCbhB,IAAAC,GAAe1E,GAAcG,GDctB,SAA6BpnF,GAChC,IAAI4rF,EAAqBjpF,EAAM88C,OAAO,IAClCosC,EAAgBlpF,EAAM88C,OAAO,CAAC,EAAG,IACjCqsC,EAAanpF,EAAM88C,SACnBpN,EAAK1vC,EAAMg9C,SAAStE,MAAa,GACjCwuC,EAAQlnF,EAAMg9C,SAAS,WAAc,OAAOupC,IAAkB,GAAG,GACjE6C,EAAYppF,EAAM88C,OAAOz/C,GAC7B2C,EAAMy8C,UAAU,WACZ2sC,EAAU1hF,QAAUrK,CACxB,EAAG,CAACA,IACJ2C,EAAMy8C,UAAU,WACZ,GAAIp/C,EAAMioF,MAAO,CACbvtF,SAAS8iC,KAAK08B,UAAU50D,IAAI,uBAAuBpI,OAAOm1C,IAC1D,IAAI25C,EAAUtvF,EAAc,CAACsD,EAAMsoF,QAAQj+E,UAAWrK,EAAM+nF,QAAU,IAAItjF,IAAI+mF,KAAa,GAAMzqF,OAAOgzD,SAExG,OADAi4B,EAAQ/mF,QAAQ,SAAU25B,GAAM,OAAOA,EAAGs7B,UAAU50D,IAAI,uBAAuBpI,OAAOm1C,GAAM,GACrF,WACH33C,SAAS8iC,KAAK08B,UAAUomB,OAAO,uBAAuBpjF,OAAOm1C,IAC7D25C,EAAQ/mF,QAAQ,SAAU25B,GAAM,OAAOA,EAAGs7B,UAAUomB,OAAO,uBAAuBpjF,OAAOm1C,GAAM,EACnG,CACJ,CAEJ,EAAG,CAACryC,EAAMioF,MAAOjoF,EAAMsoF,QAAQj+E,QAASrK,EAAM+nF,SAC9C,IAAIkE,EAAoBtpF,EAAMg/C,YAAY,SAAUrc,EAAO93B,GACvD,GAAI,YAAa83B,GAAkC,IAAzBA,EAAM4mD,QAAQpwF,OACpC,OAAQiwF,EAAU1hF,QAAQ69E,eAE9B,IAIIiE,EAJAjpB,EAAQioB,GAAW7lD,GACnB8mD,EAAaP,EAAcxhF,QAC3BihF,EAAS,WAAYhmD,EAAQA,EAAMgmD,OAASc,EAAW,GAAKlpB,EAAM,GAClEqoB,EAAS,WAAYjmD,EAAQA,EAAMimD,OAASa,EAAW,GAAKlpB,EAAM,GAElEr0D,EAASy2B,EAAMz2B,OACfw9E,EAAgBrgF,KAAK89D,IAAIwhB,GAAUt/E,KAAK89D,IAAIyhB,GAAU,IAAM,IAEhE,GAAI,YAAajmD,GAA2B,MAAlB+mD,GAAyC,UAAhBx9E,EAAO9T,KACtD,OAAO,EAEX,IAAIuxF,EAA+B1B,GAAwByB,EAAex9E,GAC1E,IAAKy9E,EACD,OAAO,EAUX,GARIA,EACAH,EAAcE,GAGdF,EAAgC,MAAlBE,EAAwB,IAAM,IAC5CC,EAA+B1B,GAAwByB,EAAex9E,KAGrEy9E,EACD,OAAO,EAKX,IAHKR,EAAWzhF,SAAW,mBAAoBi7B,IAAUgmD,GAAUC,KAC/DO,EAAWzhF,QAAU8hF,IAEpBA,EACD,OAAO,EAEX,IAAII,EAAgBT,EAAWzhF,SAAW8hF,EAC1C,ODhBkB,SAAUtB,EAAM2B,EAAWlnD,EAAOmnD,GACxD,IAAIC,EATiB,SAAU7B,EAAMtiE,GAMrC,MAAgB,MAATsiE,GAA8B,QAAdtiE,GAAsB,EAAK,CACtD,CAE0BokE,CAAmB9B,EAAM/tD,OAAON,iBAAiBgwD,GAAWjkE,WAC9EqkE,EAAQF,EAAkBD,EAE1B59E,EAASy2B,EAAMz2B,OACfg+E,EAAeL,EAAUvtD,SAASpwB,GAClCi+E,GAAqB,EACrBC,EAAkBH,EAAQ,EAC1BI,EAAkB,EAClBC,EAAqB,EACzB,EAAG,CACC,IAAI3sD,EAAKyqD,GAAmBF,EAAMh8E,GAASf,EAAWwyB,EAAG,GACrD4sD,EADoE5sD,EAAG,GAAeA,EAAG,GACnDosD,EAAkB5+E,GACxDA,GAAYo/E,IACRpC,GAAuBD,EAAMh8E,KAC7Bm+E,GAAmBE,EACnBD,GAAsBn/E,GAG9Be,EAASA,EAAOgX,UACpB,QAEEgnE,GAAgBh+E,IAAWnU,SAAS8iC,MAEjCqvD,IAAiBL,EAAUvtD,SAASpwB,IAAW29E,IAAc39E,IAQlE,OAPIk+E,GAAyD,IAApBC,EACrCF,GAAqB,EAEfC,GACmC,IAAvBE,IAClBH,GAAqB,GAElBA,CACX,CCjBeK,CAAaZ,EAAe/+E,EAAQ83B,EAAyB,MAAlBinD,EAAwBjB,EAASC,EACvF,EAAG,IACC6B,EAAgBzqF,EAAMg/C,YAAY,SAAUjE,GAC5C,IAAIpY,EAAQoY,EACZ,GAAKguC,GAAU5vF,QAAU4vF,GAAUA,GAAU5vF,OAAS,KAAO+tF,EAA7D,CAIA,IAAI+C,EAAQ,WAAYtnD,EAAQ+lD,GAAW/lD,GAAS6lD,GAAW7lD,GAC3D+nD,EAAczB,EAAmBvhF,QAAQtJ,OAAO,SAAUzE,GAAK,OAAOA,EAAEqB,OAAS2nC,EAAMvqC,MAAQuB,EAAEuS,SAAWy2B,EAAMz2B,QAxE3G,SAAU7P,EAAG8G,GAAK,OAAO9G,EAAE,KAAO8G,EAAE,IAAM9G,EAAE,KAAO8G,EAAE,EAAI,CAwE4DwnF,CAAahxF,EAAEswF,MAAOA,EAAQ,GAAG,GAEjK,GAAIS,GAAeA,EAAYE,OAC3BjoD,EAAMkoB,sBAIV,IAAK6/B,EAAa,CACd,IAAIG,GAAczB,EAAU1hF,QAAQ09E,QAAU,IACzCtjF,IAAI+mF,IACJzqF,OAAOgzD,SACPhzD,OAAO,SAAU0B,GAAQ,OAAOA,EAAKw8B,SAASqG,EAAMz2B,OAAS,IACjD2+E,EAAW1xF,OAAS,EAAImwF,EAAkB3mD,EAAOkoD,EAAW,KAAOzB,EAAU1hF,QAAQ29E,cAElG1iD,EAAMkoB,gBAEd,CAlBA,CAmBJ,EAAG,IACCigC,EAAe9qF,EAAMg/C,YAAY,SAAUhkD,EAAMivF,EAAO/9E,EAAQ0+E,GAChE,IAAIjoD,EAAQ,CAAE3nC,KAAMA,EAAMivF,MAAOA,EAAO/9E,OAAQA,EAAQ0+E,OAAQA,GAChE3B,EAAmBvhF,QAAQnC,KAAKo9B,GAChC9J,WAAW,WACPowD,EAAmBvhF,QAAUuhF,EAAmBvhF,QAAQtJ,OAAO,SAAUzE,GAAK,OAAOA,IAAMgpC,CAAO,EACtG,EAAG,EACP,EAAG,IACCooD,EAAmB/qF,EAAMg/C,YAAY,SAAUrc,GAC/CumD,EAAcxhF,QAAU8gF,GAAW7lD,GACnCwmD,EAAWzhF,aAAU/F,CACzB,EAAG,IACCqpF,EAAchrF,EAAMg/C,YAAY,SAAUrc,GAC1CmoD,EAAanoD,EAAMvqC,KAAMswF,GAAW/lD,GAAQA,EAAMz2B,OAAQo9E,EAAkB3mD,EAAOtlC,EAAMsoF,QAAQj+E,SACrG,EAAG,IACCujF,EAAkBjrF,EAAMg/C,YAAY,SAAUrc,GAC9CmoD,EAAanoD,EAAMvqC,KAAMowF,GAAW7lD,GAAQA,EAAMz2B,OAAQo9E,EAAkB3mD,EAAOtlC,EAAMsoF,QAAQj+E,SACrG,EAAG,IACH1H,EAAMy8C,UAAU,WAUZ,OATAssC,GAAUxjF,KAAK2hF,GACf7pF,EAAM2nF,aAAa,CACfH,gBAAiBmG,EACjBlG,eAAgBkG,EAChBjG,mBAAoBkG,IAExBlzF,SAAS6sC,iBAAiB,QAAS6lD,EAAe1C,IAClDhwF,SAAS6sC,iBAAiB,YAAa6lD,EAAe1C,IACtDhwF,SAAS6sC,iBAAiB,aAAcmmD,EAAkBhD,IACnD,WACHgB,GAAYA,GAAU3qF,OAAO,SAAU8sF,GAAQ,OAAOA,IAAShE,CAAO,GACtEnvF,SAAS+sC,oBAAoB,QAAS2lD,EAAe1C,IACrDhwF,SAAS+sC,oBAAoB,YAAa2lD,EAAe1C,IACzDhwF,SAAS+sC,oBAAoB,aAAcimD,EAAkBhD,GACjE,CACJ,EAAG,IACH,IAAI7C,EAAkB7nF,EAAM6nF,gBAAiBI,EAAQjoF,EAAMioF,MAC3D,OAAQtlF,EAAM7H,cAAc6H,EAAMW,SAAU,KACxC2kF,EAAQtlF,EAAM7H,cAAc+uF,EAAO,CAAE5b,OAAQwd,GAAcp5C,KAAS,KACpEw1C,EAAkBllF,EAAM7H,cAAcsvF,GAAiB,CAAEZ,QAAS,WAAc,KACxF,GEzIIsE,GAAoBnrF,EAAMm+C,WAAW,SAAU9gD,EAAOxF,GAAO,OAAQmI,EAAM7H,cAAcwsF,GAAchsF,EAAS,GAAI0E,EAAO,CAAExF,IAAKA,EAAKusF,QAASD,KAAc,GAClKgH,GAAkB9a,WAAasU,GAAatU,WCL5C,IAOI+a,GAAa,IAAIhjF,QACjBijF,GAAoB,IAAIjjF,QACxBkjF,GAAY,CAAA,EACZC,GAAY,EACZC,GAAa,SAAU1rF,GACvB,OAAOA,IAASA,EAAK86B,MAAQ4wD,GAAW1rF,EAAKojB,YACjD,EAwBIuoE,GAAyB,SAAUC,EAAgBxoE,EAAYyoE,EAAYC,GAC3E,IAAIl9D,EAxBa,SAAU7jB,EAAQ6jB,GACnC,OAAOA,EACF5sB,IAAI,SAAUoK,GACf,GAAIrB,EAAOyxB,SAASpwB,GAChB,OAAOA,EAEX,IAAI2/E,EAAkBL,GAAWt/E,GACjC,OAAI2/E,GAAmBhhF,EAAOyxB,SAASuvD,GAC5BA,GAEXrwF,QAAQC,MAAM,cAAeyQ,EAAQ,0BAA2BrB,EAAQ,mBACjE,KACX,GACKzM,OAAO,SAAU/B,GAAK,OAAO+0D,QAAQ/0D,EAAI,EAClD,CAUkByvF,CAAe5oE,EAAY7oB,MAAM+F,QAAQsrF,GAAkBA,EAAiB,CAACA,IACtFJ,GAAUK,KACXL,GAAUK,GAAc,IAAIvjF,SAEhC,IAAI2jF,EAAgBT,GAAUK,GAC1BK,EAAc,GACdC,EAAiB,IAAIlpF,IACrBmpF,EAAiB,IAAInpF,IAAI2rB,GACzBy9D,EAAO,SAAUlwD,GACZA,IAAMgwD,EAAezpF,IAAIy5B,KAG9BgwD,EAAetpF,IAAIs5B,GACnBkwD,EAAKlwD,EAAG/Y,YACZ,EACAwL,EAAQpsB,QAAQ6pF,GAChB,IAAIC,EAAO,SAAUvhF,GACZA,IAAUqhF,EAAe1pF,IAAIqI,IAGlCxQ,MAAMhB,UAAUiJ,QAAQ/I,KAAKsR,EAAO9M,SAAU,SAAU+B,GACpD,GAAImsF,EAAezpF,IAAI1C,GACnBssF,EAAKtsF,QAGL,IACI,IAAIuzC,EAAOvzC,EAAKwuC,aAAas9C,GACzBS,EAAyB,OAATh5C,GAA0B,UAATA,EACjCi5C,GAAgBlB,GAAW1sF,IAAIoB,IAAS,GAAK,EAC7CysF,GAAeR,EAAcrtF,IAAIoB,IAAS,GAAK,EACnDsrF,GAAW1oF,IAAI5C,EAAMwsF,GACrBP,EAAcrpF,IAAI5C,EAAMysF,GACxBP,EAAYzmF,KAAKzF,GACI,IAAjBwsF,GAAsBD,GACtBhB,GAAkB3oF,IAAI5C,GAAM,GAEZ,IAAhBysF,GACAzsF,EAAKkyD,aAAa25B,EAAY,QAE7BU,GACDvsF,EAAKkyD,aAAa45B,EAAkB,OAE5C,CACA,MAAOjyF,GACH6B,QAAQC,MAAM,kCAAmCqE,EAAMnG,EAC3D,CAER,EACJ,EAIA,OAHAyyF,EAAKlpE,GACL+oE,EAAe7oF,QACfmoF,KACO,WACHS,EAAY1pF,QAAQ,SAAUxC,GAC1B,IAAIwsF,EAAelB,GAAW1sF,IAAIoB,GAAQ,EACtCysF,EAAcR,EAAcrtF,IAAIoB,GAAQ,EAC5CsrF,GAAW1oF,IAAI5C,EAAMwsF,GACrBP,EAAcrpF,IAAI5C,EAAMysF,GACnBD,IACIjB,GAAkB7oF,IAAI1C,IACvBA,EAAK+nF,gBAAgB+D,GAEzBP,GAAkBhoF,OAAOvD,IAExBysF,GACDzsF,EAAK+nF,gBAAgB8D,EAE7B,KACAJ,KAGIH,GAAa,IAAIhjF,QACjBgjF,GAAa,IAAIhjF,QACjBijF,GAAoB,IAAIjjF,QACxBkjF,GAAY,CAAA,EAEpB,CACJ,EAQWkB,GAAa,SAAUd,EAAgBxoE,EAAYyoE,QACvC,IAAfA,IAAyBA,EAAa,oBAC1C,IAAIj9D,EAAUr0B,MAAMJ,KAAKI,MAAM+F,QAAQsrF,GAAkBA,EAAiB,CAACA,IACvEe,EA9He,SAAUf,GAC7B,MAAwB,oBAAb3zF,SACA,MAEQsC,MAAM+F,QAAQsrF,GAAkBA,EAAe,GAAKA,GACnD1xD,cAAca,IACtC,CAwHyC6xD,CAAiBhB,GACtD,OAAKe,GAKL/9D,EAAQnpB,KAAK/L,MAAMk1B,EAASr0B,MAAMJ,KAAKwyF,EAAiBr5C,iBAAiB,yBAClEq4C,GAAuB/8D,EAAS+9D,EAAkBd,EAAY,gBAL1D,WAAc,OAAO,IAAM,CAM1C,ECnGqG,MAAMgB,GAAoC,UACxIC,IjCR8F,SAAkDha,EAAWia,EAAyB,IACvL,IAAIC,EAAkB,GAmC2E,MAAMpa,EAAc,KACjH,MAAMqa,EAAgBD,EAAgBhrF,IAAKkrF,GAClBC,EAAAA,cAAqBD,IAE9C,OAAO,SAAkB5uD,GACrB,MAAM8uD,GAAY9uD,aAAqC,EAASA,EAAMw0C,KAAema,EACrF,OAAO/Z,EAAAA,QAAe,KAAA,CACd,CAAC,UAAUJ,KAAc,IAClBx0C,EACHw0C,CAACA,GAAYsa,KAGvB,CACE9uD,EACA8uD,GAER,GAGJ,OADAxa,EAAYE,UAAYA,EACjB,CAnD0F,SAAmDua,EAAmBH,GACnK,MAAMI,EAA4BH,EAAAA,cAAqBD,GACjDxgF,EAAQsgF,EAAgB3zF,OAK9B,SAASqoD,EAASnkD,GACd,MAAQ+gC,MAAOA,EAAQrgC,SAAUA,KAAc6jD,GAAYvkD,EACrDgwF,GAAWjvD,aAAqC,EAASA,EAAMw0C,GAAWpmE,KAAW4gF,EAErF7wF,EAAQy2E,EAAAA,QAAe,IAAIpxB,EAC/BhpD,OAAOywC,OAAOuY,IAChB,OAAqB0rC,EAAAA,cAAqBD,EAAQ7rC,SAAU,CACxDjlD,MAAOA,GACRwB,EACP,CASA,OAtBA+uF,EAAkB,IACXA,EACHE,GAmBJxrC,EAASzmD,YAAcoyF,EAAoB,WACpC,CACH3rC,EATJ,SAAoB+rC,EAAcnvD,GAC9B,MAAMivD,GAAWjvD,aAAqC,EAASA,EAAMw0C,GAAWpmE,KAAW4gF,EACrFxrC,EAAU4rC,EAAAA,WAAkBH,GAClC,GAAIzrC,EAAS,OAAOA,EACpB,QAAuBjgD,IAAnBqrF,EAA8B,OAAOA,EACzC,MAAM,IAAI/vF,MAAM,KAAKswF,6BAAwCJ,MACjE,EAMJ,EAwBI9a,GAA2CK,KAAgBma,GAEnE,CiCnD+FY,CAA0Bd,KAClHe,GAAsCC,IAA0Cf,GAA0CD,IAqDtBiB,GAAoC,gBACxIC,GAAsCC,IAA0ClB,GAA0CgB,GAAmC,CAChKG,gBAAYpsF,IAqB2FqsF,GAAqC,gBAC1IC,GAA0DC,EAAAA,WAAkB,CAAC7wF,EAAO63E,KACtF,MAAMiZ,EAAgBL,GAAuCE,GAAoC3wF,EAAM+wF,gBAC/FL,WAAYA,EAAaI,EAAcJ,cAAgBM,GAAiBhxF,EAC1EukD,EAAU+rC,GAAuCK,GAAoC3wF,EAAM+wF,eACjG,OAAOxsC,EAAQ0sC,MAAsBC,EAAAA,cAAqBC,GAAiB,CACvExO,QAAS+N,GAAcnsC,EAAQ6sC,MAClBF,EAAAA,cAAqBG,GAAyCC,GAAqC,CAAA,EAAIN,EAAc,CAClIx2F,IAAKq9E,MACF,OAKLwZ,GAAwDR,EAAAA,WAAkB,CAAC7wF,EAAO63E,KACpF,MAAQkZ,cAAeA,KAAmBC,GAAiBhxF,EACrDukD,EAAU+rC,GAAuCK,GAAoCI,GAC3F,OAEAG,EAAAA,cAAqBK,GAAqB,CACtCrlF,GAAIslF,GACJtJ,gBAAgB,EAChBH,OAAQ,CACJxjC,EAAQktC,aAECP,gBAAqBQ,GAAiB78B,IAAKy8B,GAAqC,CAC7F,aAAcK,GAA+BptC,EAAQ6sC,OACtDJ,EAAc,CACbx2F,IAAKq9E,EAELh9E,MAAO,CACHynD,cAAe,UACZ0uC,EAAan2F,aAM+E+2F,GAAqC,gBAC1IC,GAA0DhB,EAAAA,WAAkB,CAAC7wF,EAAO63E,KACtF,MAAMiZ,EAAgBL,GAAuCmB,GAAoC5xF,EAAM+wF,gBAC/FL,WAAYA,EAAaI,EAAcJ,cAAgBoB,GAAiB9xF,EAC1EukD,EAAU+rC,GAAuCsB,GAAoC5xF,EAAM+wF,eACjG,OAAqBG,EAAAA,cAAqBC,GAAiB,CACvDxO,QAAS+N,GAAcnsC,EAAQ6sC,MAChC7sC,EAAQ0sC,MAAsBC,EAAAA,cAAqBa,GAA0CT,GAAqC,CAAA,EAAIQ,EAAc,CACnJt3F,IAAKq9E,KACWqZ,EAAAA,cAAqBc,GAA6CV,GAAqC,CAAA,EAAIQ,EAAc,CACzIt3F,IAAKq9E,QAM8Fka,GAAyDlB,EAAAA,WAAkB,CAAC7wF,EAAO63E,KAC1L,MAAMtzB,EAAU+rC,GAAuCsB,GAAoC5xF,EAAM+wF,eAC3FU,EAAaQ,EAAAA,OAAc,MAC3B7W,EAAe8W,GAAuBra,EAActzB,EAAQktC,WAAYA,GAK9E,OAJAU,EAAAA,UAAiB,KACb,MAAMlyB,EAAUwxB,EAAWpnF,QAC3B,GAAI41D,EAAS,OAAOmyB,GAAkBnyB,IACvC,IACkBixB,EAAAA,cAAqBmB,GAAyCf,GAAqC,CAAA,EAAItxF,EAAO,CAC/HxF,IAAK4gF,EAELkX,UAAW/tC,EAAQ6sC,KACnB3W,6BAA6B,EAC7B8X,iBAAkBC,GAA4BxyF,EAAMuyF,iBAAmBjtD,IACnE,IAAImtD,EACJntD,EAAMkoB,iBACmD,QAAxDilC,EAAwBluC,EAAQmuC,WAAWroF,eAA+C,IAA1BooF,GAAoCA,EAAsB98E,UAE/HglE,qBAAsB6X,GAA4BxyF,EAAM26E,qBAAuBr1C,IAC3E,MAAM62C,EAAgB72C,EAAMgD,OAAO6zC,cAC7BwW,EAAyC,IAAzBxW,EAAcyW,SAA0C,IAA1BzW,EAAczU,SACpB,IAAzByU,EAAcyW,QAAgBD,IAEjCrtD,EAAMkoB,mBAG5BotB,eAAgB4X,GAA4BxyF,EAAM46E,eAAiBt1C,GAAQA,EAAMkoB,uBAIkBwkC,GAA4DnB,EAAAA,WAAkB,CAAC7wF,EAAO63E,KAC7L,MAAMtzB,EAAU+rC,GAAuCsB,GAAoC5xF,EAAM+wF,eAC3F8B,EAA0BZ,EAAAA,QAAc,GAC9C,OAAqBf,EAAAA,cAAqBmB,GAAyCf,GAAqC,CAAA,EAAItxF,EAAO,CAC/HxF,IAAKq9E,EACLya,WAAW,EACX7X,6BAA6B,EAC7B8X,iBAAmBjtD,IACf,IAAIwtD,EAGIC,GAF6C,QAApDD,EAAwB9yF,EAAMuyF,wBAAwD,IAA1BO,GAAoCA,EAAsB52F,KAAK8D,EAAOslC,GAC9HA,EAAM2rB,oBAEF4hC,EAAwBxoF,SAAmE,QAAzD0oF,EAAyBxuC,EAAQmuC,WAAWroF,eAAgD,IAA3B0oF,GAAqCA,EAAuBp9E,QACpK2vB,EAAMkoB,kBAEVqlC,EAAwBxoF,SAAU,GAEtCwwE,kBAAoBv1C,IAChB,IAAI0tD,EAAuBC,EAC2B,QAArDD,EAAwBhzF,EAAM66E,yBAAyD,IAA1BmY,GAAoCA,EAAsB92F,KAAK8D,EAAOslC,GAC/HA,EAAM2rB,mBAAkB4hC,EAAwBxoF,SAAU,GAM/D,MAAMwE,EAASy2B,EAAMz2B,QAC6D,QAAzDokF,EAAyB1uC,EAAQmuC,WAAWroF,eAAgD,IAA3B4oF,OAAoC,EAASA,EAAuBh0D,SAASpwB,KAClJy2B,EAAMkoB,uBAIoE6kC,GAAwDxB,EAAAA,WAAkB,CAAC7wF,EAAO63E,KACzL,MAAQkZ,cAAeA,EAAgBuB,UAAWA,EAAYY,gBAAiBA,EAAkBX,iBAAkBA,KAAsBT,GAAiB9xF,EACpJukD,EAAU+rC,GAAuCsB,GAAoCb,GAErF3V,EAAe8W,GAAuBra,EADzBoa,EAAAA,OAAc,OAIjC,OrBhOAkB,EAAAA,UAAiB,KACb,IAAIC,EAAcC,EAClB,MAAMC,EAAa54F,SAASq7C,iBAAiB,4BAI7C,OAHAr7C,SAAS8iC,KAAK+1D,sBAAsB,aAAiD,QAAlCH,EAAeE,EAAW,UAAiC,IAAjBF,EAA0BA,EAAenO,MACtIvqF,SAAS8iC,KAAK+1D,sBAAsB,YAAiD,QAAnCF,EAAgBC,EAAW,UAAkC,IAAlBD,EAA2BA,EAAgBpO,MACxID,KACO,KACiC,IAAhCA,IAAmCtqF,SAASq7C,iBAAiB,4BAA4B9wC,QAASxC,GAAOA,EAAK69E,UAElH0E,OAEL,IqBqNkBkM,EAAAA,cAAqBsC,EAAAA,SAAiB,KAAoBtC,EAAAA,cAAqBuC,GAAmB,CACnHla,SAAS,EACTiF,MAAM,EACNC,QAAS6T,EACT5T,iBAAkBwU,EAClBtU,mBAAoB2T,GACPrB,EAAAA,cAAqBwC,GAAyBpC,GAAqC,CAChGvjC,KAAM,SACN1b,GAAIkS,EAAQovC,UACZ,mBAAoBpvC,EAAQqvC,cAC5B,kBAAmBrvC,EAAQsvC,QAC3B,aAAclC,GAA+BptC,EAAQ6sC,OACtDU,EAAc,CACbt3F,IAAK4gF,EACLN,UAAW,IAAIv2B,EAAQuvC,cAAa,QAClC,KAIiGC,GAAmC,cA6CzC,SAASpC,GAA+BP,GACzI,OAAOA,EAAO,OAAS,QAC3B,EjC3SA,SAAmDtB,EAAmBH,GAClE,MAAMK,EAAwBJ,EAAAA,cAAqBD,GACnD,SAASxrC,EAASnkD,GACd,MAAQU,SAAUA,KAAc6jD,GAAYvkD,EAEtCd,EAAQy2E,EAAAA,QAAe,IAAIpxB,EAC/BhpD,OAAOywC,OAAOuY,IAChB,OAAqB0rC,EAAAA,cAAqBD,EAAQ7rC,SAAU,CACxDjlD,MAAOA,GACRwB,EACP,CAOAyjD,EAASzmD,YAAcoyF,EAAoB,UAK/C,CiCuR6FkE,CAD5C,qBAC2G,CACxJC,YAAarC,GACbsC,UAAWH,GACXI,SAAU,WAsCd,MAAMC,GAnT6Cp0F,IAC/C,MAAQ+wF,cAAeA,EAAgBrwF,SAAUA,EAAW0wF,KAAMiD,EAAWC,YAAaA,EAAcR,aAAcA,EAAe7C,MAAOA,GAAQ,GAAUjxF,EACxJ0yF,EAAaT,EAAAA,OAAc,MAC3BR,EAAaQ,EAAAA,OAAc,OAC1Bb,GAAO,EAAOmD,GAAWC,GAA4B,CACxD//D,KAAM4/D,EACNzd,YAAa0d,EACbx4E,SAAUg4E,IAEd,OAAqB5C,EAAAA,cAAqBb,GAAsC,CAC5EtvD,MAAOgwD,EACP2B,WAAYA,EACZjB,WAAYA,EACZkC,UAAWc,KACXZ,QAASY,KACTb,cAAea,KACfrD,KAAMA,EACN0C,aAAcS,EACdG,aAAcC,EAAAA,YAAmB,IAAIJ,EAASK,IAAYA,GAExD,CACEL,IAEJtD,MAAOA,GACRvwF,IA6RDm0F,GA7P6C70F,IAC/C,MAAQ+wF,cAAeA,EAAgBL,WAAYA,EAAahwF,SAAUA,EAAWw+D,UAAWA,GAAel/D,EACzGukD,EAAU+rC,GAAuCC,GAAmCQ,GAC1F,OAAqBG,EAAAA,cAAqBV,GAAsC,CAC5EzvD,MAAOgwD,EACPL,WAAYA,GACboE,EAAAA,SAAgBrwF,IAAI/D,EAAW0X,GAAsB84E,EAAAA,cAAqBC,GAAiB,CACtFxO,QAAS+N,GAAcnsC,EAAQ6sC,MAClBF,EAAAA,cAAqB6D,GAAe,CACjDxb,SAAS,EACTra,UAAWA,GACZ9mD,OAmPL48E,GAA4CpE,GAC5CqE,GAA4CpD,GC7VyD,IAA8BprF,GAAE,kBAAkBH,GAAE,wBAAqD+B,GAAE,iBAAiB6sF,GAAG,GAAG7sF,iCAAgCC,GAAE,mBAAmB5B,GAAE,aAAa45D,GAAG,CAAC/7D,EAAE4C,IAAIguF,GAAG5wF,EAAE4C,GAAGiuF,GAAG35F,EAAE6xC,mBAAc,GAAQ/qC,GAAE,IAAI9G,EAAE+xC,WAAW4nD,IAAIC,GAAG55F,EAAE6xC,mBAAc,GAAQrlC,GAAE,IAAIxM,EAAE+xC,WAAW6nD,IAAIC,GAAG75F,EAAE6xC,mBAAc,GAAQioD,GAAG95F,EAAEqlD,WAAW,CAACv8C,EAAE4C,KAAK,IAAIvL,EAAEH,EAAEgkD,OAAO,MAAMx7C,EAAE0C,GAAE,KAAK,IAAIrK,EAAEZ,EAAEuL,EAAE,MAAM,CAACkb,OAAO,GAAGjjB,MAA+E,OAAxE+H,EAAe,OAAZvL,EAAE6I,EAAErF,OAAaxD,EAAsB,OAAnBY,EAAEiI,EAAEghF,mBAAoB,EAAOjpF,EAAE0wC,eAAqB/lC,EAAE,GAAGuuF,SAAS,CAACrqB,MAAM,EAAEjL,MAAM,IAAI16D,IAAIiwF,OAAO,IAAI/vF,QAAQ3I,EAAE4J,GAAE,IAAI,IAAIjB,KAAKG,EAAEc,GAAE,IAAI,IAAInB,KAAKJ,EAAEuB,GAAE,IAAI,IAAInB,KAAKgB,EAAEG,GAAE,IAAI,IAAIjB,KAAKR,EAAEwwF,GAAGnxF,IAAI04D,MAAM92D,EAAEzF,SAAS3E,EAAEmD,MAAMkI,EAAEuuF,cAAcluF,EAAE1G,OAAOiG,EAAE4uF,aAAaluF,EAAEmuF,YAAYruF,GAAE,KAAMX,GAAGtC,EAAEG,EAAEjJ,EAAEq6F,QAAQ3tF,EAAE1M,EAAEq6F,QAAQvzE,EAAE9mB,EAAEq6F,QAAQvuF,EAAEwuF,KAAK1uF,GAAE,KAAK,QAAO,IAAJD,EAAW,CAAC,IAAI9K,EAAE8K,EAAE+sD,OAAOnnB,cAAc/oC,EAAEoG,QAAQnL,MAAM5C,EAAEiL,EAAE,EAAE/C,GAAGoC,EAAEqrB,MAAM,GAAG,CAAC7qB,IAAI,IAAIR,EAAEnL,EAAEuvD,QAAQ,KAAA,CAAMgrC,UAAU15F,IAAIkK,EAAE6D,QAAQ/E,IAAIhJ,GAAG,IAAIkK,EAAE6D,QAAQrE,OAAO1J,IAAI25F,SAAS,IAAIhyF,EAAEoG,QAAQ6rF,SAAS,CAAC55F,EAAEZ,EAAEuL,KAAK,IAAItL,EAAEoJ,EAAEkB,EAAE,IAAI1K,OAAO46F,GAAGlyF,EAAEoG,QAAQ/N,GAAGZ,GAAG,CAAC,GAAGuI,EAAEoG,QAAQ/N,GAAGZ,EAAM,WAAJY,EAAawN,IAAI5C,IAAIK,EAAE,EAAEhB,QAAQ,GAAO,UAAJjK,EAAY,SAA0C,KAAvB,OAAdX,EAAEuJ,EAAEmF,cAAe,EAAO1O,EAAEuD,OAAgB,CAAC,IAAIF,EAAK,MAAHtD,EAAQA,EAAE,GAAsD,YAAlB,OAAhCuK,GAAGlB,EAAEG,EAAEmF,SAASsrF,gBAAsB1vF,EAAE/J,KAAK6I,EAAE/F,GAAS,CAAMiI,GAAGM,EAAE,EAAE/C,EAAE,CAACoC,EAAEqrB,MAAM,GAAGA,KAAK,KAAKzrB,EAAE6D,QAAQpF,QAAQ3I,GAAGA,QAAQ,IAAIwK,EAAErL,EAAEuvD,QAAQ,KAAA,CAAM9rD,MAAM,CAAC5C,EAAEZ,KAAKA,IAAI0J,EAAEiF,QAAQhJ,IAAI/E,KAAK8I,EAAEiF,QAAQhF,IAAI/I,EAAEZ,GAAGuI,EAAEoG,QAAQmrF,SAASt1B,MAAM76D,IAAI/I,EAAEiJ,EAAE7J,IAAI6L,EAAE,EAAE,KAAKL,IAAIN,EAAEqrB,WAAWmuD,KAAK,CAAC9jF,EAAEZ,KAAKqB,EAAEsN,QAAQ/E,IAAIhJ,GAAGZ,IAAImK,EAAEwE,QAAQlF,IAAIzJ,GAAGmK,EAAEwE,QAAQhJ,IAAI3F,GAAG4J,IAAIhJ,GAAGuJ,EAAEwE,QAAQhF,IAAI3J,EAAE,IAAIgK,IAAI,CAACpJ,MAAMiL,EAAE,EAAE,KAAKuC,IAAI5C,IAAIjD,EAAEoG,QAAQnL,OAAOqH,IAAIK,EAAEqrB,SAAS,KAAK7sB,EAAEiF,QAAQrE,OAAO1J,GAAGS,EAAEsN,QAAQrE,OAAO1J,GAAG2H,EAAEoG,QAAQmrF,SAASt1B,MAAMl6D,OAAO1J,GAAG,IAAI2K,EAAEjG,IAAIuG,EAAE,EAAE,KAAKuC,KAAQ,MAAH7C,OAAQ,EAAOA,EAAEgqC,aAAa,SAAS30C,GAAGiK,IAAIK,EAAEqrB,WAAWmpC,MAAM9+D,IAAIuJ,EAAEwE,QAAQlF,IAAI7I,IAAIuJ,EAAEwE,QAAQhF,IAAI/I,EAAE,IAAIoJ,KAAK,KAAKN,EAAEiF,QAAQrE,OAAO1J,GAAGuJ,EAAEwE,QAAQrE,OAAO1J,KAAKyE,OAAO,IAAImE,EAAEmF,QAAQurF,aAAa34B,MAAM92D,GAAG5B,EAAE,cAAc6xF,WAAWx6F,EAAEy6F,OAAO3xF,EAAE4xF,QAAQ/zE,EAAEg0E,QAAQpuF,IAAI,IAAI,SAAS5C,EAAEjJ,GAAG,IAAI2K,EAAEtL,EAAE,IAAID,EAA2C,OAAxCC,EAAiB,OAAdsL,EAAE/B,EAAEmF,cAAe,EAAOpD,EAAElG,QAAcpF,EAAE2kE,GAAG,OAAOhkE,EAAEZ,EAAEY,EAAE2H,EAAEoG,QAAQ8X,QAAQ,CAAC,CAAC,SAASjb,IAAI,IAAItL,EAAEyO,UAAUpG,EAAEoG,QAAQ8X,SAAiC,IAAzBjd,EAAEmF,QAAQurF,aAAkB,OAAO,IAAIt5F,EAAE2H,EAAEoG,QAAQmrF,SAASt1B,MAAMxkE,EAAE,GAAGuI,EAAEoG,QAAQmrF,SAASC,OAAOxwF,QAAQtJ,IAAI,IAAIoJ,EAAEc,EAAEwE,QAAQhJ,IAAI1F,GAAGsK,EAAE,EAAElB,EAAEE,QAAQjG,IAAI,IAAIoJ,EAAE9L,EAAE+E,IAAIrC,GAAGiH,EAAE+F,KAAKkuB,IAAI9xB,EAAEnC,KAAKvK,EAAEwM,KAAK,CAACvM,EAAEsK,MAAM,IAAIgB,EAAErL,EAAEyO,QAAQ0tC,cAAhxE,wBAAkyEhxC,IAAIi0D,KAAK,CAACr/D,EAAEoJ,KAAK,IAAIqD,EAAE4N,EAAG,IAAI/P,EAAEtK,EAAEs1C,aAAavqC,IAAG1H,EAAE+F,EAAEksC,aAAavqC,IAAG,OAAqB,OAAb0B,EAAE9L,EAAE+E,IAAIrC,IAAUoJ,EAAE,IAAmB,OAAd4N,EAAG1Z,EAAE+E,IAAI4E,IAAU+P,EAAG,KAAK/Q,QAAQtJ,IAAI,IAAIoJ,EAAEpJ,EAAEg5C,QAAQruC,IAAGvB,EAAEA,EAAE7J,YAAYS,EAAE0hC,gBAAgBt4B,EAAEpJ,EAAEA,EAAEg5C,QAAQ,GAAGruC,WAAUW,EAAE/L,YAAYS,EAAE0hC,gBAAgBp2B,EAAEtL,EAAEA,EAAEg5C,QAAQ,GAAGruC,aAAY5K,EAAEs/D,KAAK,CAACr/D,EAAEoJ,IAAIA,EAAE,GAAGpJ,EAAE,IAAIsJ,QAAQtJ,IAAI,IAAIoJ,EAAEnJ,EAAEyO,QAAQ0tC,cAAc,GAAGtxC,MAAKC,OAAM/K,EAAE,QAAW,MAAHoJ,GAASA,EAAEs4B,cAAcniC,YAAY6J,IAAI,CAAC,SAASwB,IAAI,IAAIjK,EAAEyK,IAAIkrC,KAAKhrC,IAAIA,EAAEuvF,cAAc96F,EAAK,MAAHY,OAAQ,EAAOA,EAAE20C,aAAavqC,IAAGE,EAAEsvF,SAAS,QAAQx6F,QAAG,EAAO,CAAC,SAASoO,IAAI,IAAI7F,EAAEoG,QAAQ8X,SAAiC,IAAzBjd,EAAEmF,QAAQurF,aAA2D,YAAxC3xF,EAAEoG,QAAQmrF,SAASrqB,MAAMpuE,EAAEsN,QAAQo3B,MAAYx9B,EAAEoG,QAAQmrF,SAASC,OAAO,IAAI/vF,IAAI,IAAIpJ,EAAE,EAAE,IAAI,IAAIZ,KAAKqB,EAAEsN,QAAQ,CAAC,IAAuB1O,EAAE4J,EAAnBH,EAAEiF,QAAQhJ,IAAI3F,IAAUuI,EAAEoG,QAAQmrF,SAASt1B,MAAM76D,IAAI3J,EAAEC,GAAGA,EAAE,GAAGW,GAAG,CAAC,IAAI,IAAIZ,EAAEuL,KAAKpB,EAAEwE,QAAQ,IAAI,IAAI1O,KAAKsL,EAAE,GAAGhD,EAAEoG,QAAQmrF,SAASt1B,MAAM7+D,IAAI1F,GAAG,EAAE,CAACsI,EAAEoG,QAAQmrF,SAASC,OAAOnwF,IAAI5J,GAAG,KAAK,CAACuI,EAAEoG,QAAQmrF,SAASrqB,MAAM7uE,CAAC,CAAC,SAASkI,IAAI,IAAI9I,EAAEuL,EAAEtL,EAAE,IAAIW,EAAE0E,IAAI1E,KAA0B,OAApBZ,EAAEY,EAAE+gC,oBAAqB,EAAO3hC,EAAEV,cAAcsB,IAA2D,OAAtDX,EAAoB,OAAjBsL,EAAE3K,EAAEq4C,QAAQluC,UAAU,EAAOQ,EAAE8wC,cAAnvG,6BAA6wGp8C,EAAEmjC,eAAe,CAAC3Q,MAAM,aAAa7xB,EAAEwiC,eAAe,CAAC3Q,MAAM,YAAY,CAAC,SAASntB,IAAI,IAAI1E,EAAE,OAAqB,OAAdA,EAAEV,EAAEyO,cAAe,EAAO/N,EAAEy7C,cAAc,GAAG1vC,2BAA0B,CAAC,SAAStB,IAAI,OAAO/J,MAAMJ,KAAKhB,EAAEyO,QAAQ0rC,iBAAiBm/C,IAAI,CAAC,SAASzvF,EAAEnJ,GAAG,IAAI2K,EAAEF,IAAIzK,GAAG2K,GAAGL,EAAEsvF,SAAS,QAAQjvF,EAAEgqC,aAAavqC,IAAG,CAAC,SAASY,EAAEhL,GAAG,IAAI2J,EAAE,IAAIvK,EAAEsF,IAAIiG,EAAEF,IAAIpL,EAAEsL,EAAE0b,UAAU3jB,GAAGA,IAAItD,GAAGqJ,EAAEkC,EAAEtL,EAAEW,GAAkB,OAAd2J,EAAEf,EAAEmF,UAAgBpE,EAAEu4E,OAAOz5E,EAAEpJ,EAAEW,EAAE,EAAE2K,EAAEA,EAAEnL,OAAO,GAAGH,EAAEW,IAAI2K,EAAEnL,OAAOmL,EAAE,GAAGA,EAAEtL,EAAEW,IAAIyI,GAAG6B,EAAEsvF,SAAS,QAAQnxF,EAAEksC,aAAavqC,IAAG,CAAC,SAAS7B,EAAEvI,GAAG,IAAwCX,EAApCD,EAAEsF,IAAIiG,EAAK,MAAHvL,OAAQ,EAAOA,EAAEi5C,QAAQluC,IAAK,KAAKQ,IAAItL,GAAGsL,EAAE3K,EAAE,EAAEm6F,GAAGxvF,EAAER,IAAGiwF,GAAGzvF,EAAER,IAAG9K,EAAK,MAAHsL,OAAQ,EAAOA,EAAE8wC,cAAcm9C,IAAIv5F,EAAEiL,EAAEsvF,SAAS,QAAQv6F,EAAEs1C,aAAavqC,KAAIY,EAAEhL,EAAE,CAAC,IAAIq6F,EAAG,IAAIlxF,EAAEsB,IAAIjL,OAAO,GAAGoa,EAAG5Z,IAAIA,EAAEkxD,iBAAiBlxD,EAAEmrE,QAAQkvB,IAAKr6F,EAAEmkF,OAAO57E,EAAE,GAAGyC,EAAE,IAAIsvF,EAAGt6F,IAAIA,EAAEkxD,iBAAiBlxD,EAAEmrE,QAAQhiE,EAAE,GAAGnJ,EAAEmkF,OAAO57E,GAAE,GAAIyC,GAAE,IAAK,OAAO7L,EAAEX,cAAc,MAAM,CAACN,IAAI6L,GAAE,CAACzK,EAAEuL,OAAON,EAAE,YAAY,GAAGqpD,UAAU5zD,IAAI,IAAIZ,EAAE,GAAoB,OAAhBA,EAAEmL,EAAEqpD,YAAkBx0D,EAAEQ,KAAK2K,EAAEvK,IAAIA,EAAE20D,iBAAiB,OAAO30D,EAAEiF,KAAK,IAAI,IAAI,IAAI,IAAKiG,GAAGlL,EAAEorE,SAASxxD,EAAG5Z,GAAG,MAAM,IAAI,YAAa4Z,EAAG5Z,GAAG,MAAM,IAAI,IAAI,IAAI,IAAKkL,GAAGlL,EAAEorE,SAASkvB,EAAGt6F,GAAG,MAAM,IAAI,UAAWs6F,EAAGt6F,GAAG,MAAM,IAAI,OAAQA,EAAEkxD,iBAAiB/nD,EAAE,GAAG,MAAM,IAAI,MAAOnJ,EAAEkxD,iBAAiBmpC,IAAK,MAAM,IAAI,QAAQ,IAAIr6F,EAAE82C,YAAYkC,YAAY,CAACh5C,EAAEkxD,iBAAiB,IAAIvmD,EAAEjG,IAAI,GAAGiG,EAAE,CAAC,IAAItL,EAAE,IAAIk7F,MAAMvuF,IAAGrB,EAAE0+B,cAAchqC,EAAE,CAAC,KAAKF,EAAEX,cAAc,QAAQ,CAAC,aAAa,GAAGg8F,QAAQhwF,EAAEwvF,QAAQjkD,GAAGvrC,EAAEyvF,QAAQ17F,MAAMk8F,IAAI5wF,GAAG1K,EAAEX,cAAcu6F,GAAGlxC,SAAS,CAACjlD,MAAM0H,GAAGnL,EAAEX,cAAcs6F,GAAGjxC,SAAS,CAACjlD,MAAM4H,GAAG/K,OAAOi7F,GAAGv7F,EAAEqlD,WAAW,CAACv8C,EAAE4C,KAAK,IAAIob,EAAEhb,EAAE,IAAI3L,EAAEH,EAAEq6F,QAAQ7xF,EAAExI,EAAEgkD,OAAO,MAAM1iD,EAAEtB,EAAE+xC,WAAW8nD,IAAIzvF,EAAEtD,KAAI6C,EAAEswF,GAAGnxF,GAAGiC,EAA+C,OAA5Ce,EAAiB,OAAdgb,EAAEnd,EAAEiF,cAAe,EAAOkY,EAAEmuE,YAAkBnpF,EAAK,MAAHxK,OAAQ,EAAOA,EAAE2zF,WAAWrpF,GAAE,IAAIxB,EAAEu6E,KAAKxkF,EAAK,MAAHmB,OAAQ,EAAOA,EAAEs1C,IAAI,IAAI,IAAIntC,EAAE+xF,GAAGr7F,EAAEqI,EAAE,CAACM,EAAErF,MAAMqF,EAAE7D,SAASuD,IAAIkC,EAAE8B,KAAIlM,EAAE+I,GAAE8B,GAAGA,EAAE1H,OAAO0H,EAAE1H,QAAQgG,EAAEmF,SAASjD,EAAEtC,GAAE8B,MAAGJ,IAAgB,IAAbX,EAAE9E,aAAiB6F,EAAEub,QAAOvb,EAAE4uF,SAASt1B,MAAM7+D,IAAIzF,GAAG,IAAsJ,SAAS6L,IAAI,IAAIb,EAAEE,EAAEE,IAAgC,OAA3BF,GAAGF,EAAExB,EAAEiF,SAAS6sF,WAAiBpwF,EAAE5K,KAAK0K,EAAE1B,EAAEmF,QAAQ,CAAC,SAASrD,IAAIb,EAAE+vF,SAAS,QAAQhxF,EAAEmF,SAAQ,EAAG,CAAC,GAA7Q5O,EAAE2jD,UAAU,KAAK,IAAIx4C,EAAE3C,EAAEoG,QAAQ,GAAMzD,IAAGrC,EAAE2iE,SAAU,OAAOtgE,EAAE2gC,iBAAiBj/B,GAAEb,GAAG,IAAIb,EAAE6gC,oBAAoBn/B,GAAEb,IAAI,CAACL,EAAE7C,EAAE2yF,SAAS3yF,EAAE2iE,YAA4I9/D,EAAE,OAAO,KAAK,IAAI8/D,SAASx/D,EAAExI,MAAMsI,EAAE0vF,SAASrwF,EAAE6pF,WAAWhsF,KAAKyD,GAAG5D,EAAE,OAAO9I,EAAEX,cAAc,MAAM,CAACN,IAAI6L,GAAE,CAACpC,EAAEkD,OAAOgB,EAAEkqC,GAAGz2C,EAAE,YAAY,GAAGmyD,KAAK,SAAS,gBAAgBrmD,QAAG,EAAO,gBAAgB3L,QAAG,EAAO,gBAAgB2L,QAAG,EAAO,gBAAgB3L,QAAG,EAAOo7F,cAAczvF,OAAE,EAAOV,EAAE6nD,QAAQnnD,OAAE,EAAOD,GAAGlD,EAAE7D,YAAY02F,GAAG37F,EAAEqlD,WAAW,CAACv8C,EAAE4C,KAAK,IAAIkwF,QAAQz7F,EAAE8E,SAASuD,EAAEysF,WAAW3zF,KAAK8I,GAAGtB,EAAEa,EAAE3J,EAAEq6F,QAAQtvF,EAAE/K,EAAEgkD,OAAO,MAAMv6C,EAAEzJ,EAAEgkD,OAAO,MAAMt5C,EAAE1K,EAAEq6F,QAAQ/5F,EAAEwG,KAAI6E,EAAEtC,GAAE4C,MAAG3K,IAAgB,IAAbhB,EAAEgF,aAAiB2G,EAAEya,QAAOza,EAAE8tF,SAASC,OAAOtwF,IAAIC,KAAOiC,GAAE,IAAItL,EAAEq/D,MAAMh2D,GAAG,IAAI6xF,GAAG7xF,EAAEoB,EAAE,CAACjC,EAAErF,MAAMqF,EAAE8yF,QAAQnyF,IAAI,IAAIuC,EAAEhM,EAAEuvD,QAAQ,KAAA,CAAM3Y,GAAGjtC,EAAEsrF,WAAW3zF,IAAI,CAACA,IAAIiK,EAAEvL,EAAEX,cAAcw6F,GAAGnxC,SAAS,CAACjlD,MAAMuI,GAAGxD,GAAG,OAAOxI,EAAEX,cAAc,MAAM,CAACN,IAAI6L,GAAE,CAACG,EAAEW,OAAOtB,EAAE,aAAa,GAAGkoD,KAAK,eAAewzB,QAAOn6E,QAAE,GAAWxL,GAAGH,EAAEX,cAAc,MAAM,CAACN,IAAI0K,EAAE,qBAAqB,GAAG,eAAc,EAAGmtC,GAAGlsC,GAAGvK,GAAGH,EAAEX,cAAc,MAAM,CAAC,mBAAmB,GAAGizD,KAAK,QAAQ,kBAAkBnyD,EAAEuK,OAAE,GAAQa,MAAMswF,GAAG77F,EAAEqlD,WAAW,CAACv8C,EAAE4C,KAAK,IAAIowF,aAAa37F,KAAKqI,GAAGM,EAAExH,EAAEtB,EAAEgkD,OAAO,MAAM55C,EAAEf,GAAEM,IAAIA,EAAE+c,QAAQ,OAAOvmB,GAAIiK,EAAOpK,EAAEX,cAAc,MAAM,CAACN,IAAI6L,GAAE,CAACtJ,EAAEoK,OAAOlD,EAAE,iBAAiB,GAAG8pD,KAAK,cAAvE,OAAuFypC,GAAG/7F,EAAEqlD,WAAW,CAACv8C,EAAE4C,KAAK,IAAIwuF,cAAc/5F,KAAKqI,GAAGM,EAAExH,EAAW,MAATwH,EAAErF,MAAY2G,EAAEoC,KAAI7C,EAAEN,GAAE/I,GAAGA,EAAEomB,QAAQ3b,EAAE1B,GAAE/I,GAAGA,EAAEmD,OAAOgG,EAAE3C,KAAI4D,EAAE1K,EAAEuvD,QAAQ,KAAK,IAAI5jD,EAAE,IAAIrL,EAA4B,OAAzBqL,EAAElC,EAAEkxF,WAAW/rF,cAAe,EAAOjD,EAAE2wC,cAAc,GAAG1vC,MAAK3B,OAAMF,OAAO,OAAU,MAAHzK,OAAQ,EAAOA,EAAEk1C,aAAa,OAAO,CAACzqC,EAAEtB,EAAEkxF,aAAa,OAAO36F,EAAE2jD,UAAU,KAAc,MAAT76C,EAAErF,OAAa2G,EAAEqwF,SAAS,SAAS3xF,EAAErF,QAAQ,CAACqF,EAAErF,QAAQzD,EAAEX,cAAc,QAAQ,CAACN,IAAI2M,KAAKlD,EAAE,aAAa,GAAGwzF,aAAa,MAAMxpC,YAAY,MAAMD,YAAW,EAAG,oBAAoB,OAAOD,KAAK,WAAW,iBAAgB,EAAG,gBAAgB7oD,EAAEmxF,OAAO,kBAAkBnxF,EAAEqxF,QAAQ,wBAAwBpwF,EAAEksC,GAAGntC,EAAEoxF,QAAQv7F,KAAK,OAAOmE,MAAMnC,EAAEwH,EAAErF,MAAMkG,EAAE0W,SAAS/f,IAAIgB,GAAG8I,EAAEqwF,SAAS,SAASn6F,EAAE8S,OAAO3P,OAAU,MAAHtD,GAASA,EAAEG,EAAE8S,OAAO3P,YAAYw4F,GAAGj8F,EAAEqlD,WAAW,CAACv8C,EAAE4C,KAAK,IAAIzG,SAAS9E,KAAKqI,GAAGM,EAAExH,EAAEtB,EAAEgkD,OAAO,MAAM55C,EAAEpK,EAAEgkD,OAAO,MAAMr6C,EAAE7C,KAAI,OAAO9G,EAAE2jD,UAAU,KAAK,GAAGv5C,EAAEwE,SAAStN,EAAEsN,QAAQ,CAAC,IAA4BlE,EAAxBK,EAAEX,EAAEwE,QAAQnF,EAAEnI,EAAEsN,QAAUtO,EAAE,IAAI4sC,eAAe,KAAKxiC,EAAEkhC,sBAAsB,KAAK,IAAIjgC,EAAEZ,EAAEi4B,aAAav5B,EAAErK,MAAM88F,YAAY,qBAAqBvwF,EAAEwwF,QAAQ,GAAG,UAAU,OAAO77F,EAAEkqC,QAAQz/B,GAAG,KAAKmkD,qBAAqBxkD,GAAGpK,EAAE0sC,UAAUjiC,GAAG,GAAG,IAAI/K,EAAEX,cAAc,MAAM,CAACN,IAAI6L,GAAE,CAACtJ,EAAEoK,OAAOlD,EAAE,YAAY,GAAG8pD,KAAK,UAAU,aAAa,cAAc1b,GAAGjtC,EAAEixF,OAAO,kBAAkBjxF,EAAEkxF,SAAS76F,EAAEX,cAAc,MAAM,CAACN,IAAIqL,EAAE,kBAAkB,IAAIjK,MAAMi8F,GAAGp8F,EAAEqlD,WAAW,CAACv8C,EAAE4C,KAAK,IAAIiqF,KAAKx1F,EAAEk4F,aAAa7vF,EAAE6zF,iBAAiB/6F,EAAEg7F,iBAAiBlyF,EAAEq5D,UAAU95D,KAAKoB,GAAGjC,EAAE,OAAO9I,EAAEX,cAAck9F,GAAO,CAAC5G,KAAKx1F,EAAEk4F,aAAa7vF,GAAGxI,EAAEX,cAAcm9F,GAAS,CAAC/4B,UAAU95D,GAAG3J,EAAEX,cAAco9F,GAAU,CAAC,eAAe,GAAGjhC,UAAUl6D,IAAItB,EAAEX,cAAcq9F,GAAU,CAAC,aAAa5zF,EAAE04D,MAAM,cAAc,GAAGhG,UAAUpxD,GAAGpK,EAAEX,cAAcy6F,GAAG,CAAC/6F,IAAI2M,KAAKX,SAAS4xF,GAAG38F,EAAEqlD,WAAW,CAACv8C,EAAE4C,KAAK,IAAIvL,EAAEH,EAAEgkD,QAAO,GAAIx7C,EAAEa,GAAE/H,GAAsB,IAAnBA,EAAEy4F,SAASrqB,OAAW,OAAO1vE,EAAE2jD,UAAU,KAAKxjD,EAAEyO,SAAQ,GAAI,IAAIzO,EAAEyO,UAAUpG,EAAE,KAAKxI,EAAEX,cAAc,MAAM,CAACN,IAAI2M,KAAK5C,EAAE,aAAa,GAAGwpD,KAAK,mBAAmBsqC,GAAG58F,EAAEqlD,WAAW,CAACv8C,EAAE4C,KAAK,IAAImxF,SAAS18F,EAAE8E,SAASuD,KAAKlH,GAAGwH,EAAE,OAAO9I,EAAEX,cAAc,MAAM,CAACN,IAAI2M,KAAKpK,EAAE,eAAe,GAAGgxD,KAAK,cAAc,gBAAgBnyD,EAAE,gBAAgB,EAAE,gBAAgB,IAAI,aAAa,cAAcH,EAAEX,cAAc,MAAM,CAAC,eAAc,GAAImJ,MAAMs0F,GAAGh9F,OAAOC,OAAO+5F,GAAG,CAACiD,KAAKd,GAAGe,KAAKzB,GAAG0B,MAAMlB,GAAGmB,MAAMvB,GAAGwB,UAAUtB,GAAGuB,OAAOhB,GAAGiB,MAAMV,GAAGW,QAAQV,KAAK,SAAS5B,GAAGlyF,EAAE4C,GAAG,IAAIvL,EAAE2I,EAAEy0F,mBAAmB,KAAKp9F,GAAG,CAAC,GAAGA,EAAEkc,QAAQ3Q,GAAG,OAAOvL,EAAEA,EAAEA,EAAEo9F,kBAAkB,CAAC,CAAC,SAAStC,GAAGnyF,EAAE4C,GAAG,IAAIvL,EAAE2I,EAAE00F,uBAAuB,KAAKr9F,GAAG,CAAC,GAAGA,EAAEkc,QAAQ3Q,GAAG,OAAOvL,EAAEA,EAAEA,EAAEq9F,sBAAsB,CAAC,CAAC,SAASvD,GAAGnxF,GAAG,IAAI4C,EAAE1L,EAAEgkD,OAAOl7C,GAAG,OAAO8C,GAAE,KAAKF,EAAEkD,QAAQ9F,IAAI4C,CAAC,CAAC,IAAIE,GAAiB,oBAARy1B,OAAoBrhC,EAAE2jD,UAAU3jD,EAAE0jD,gBAAgB,SAASx4C,GAAEpC,GAAG,IAAI4C,EAAE1L,EAAEgkD,SAAS,YAAmB,IAAZt4C,EAAEkD,UAAmBlD,EAAEkD,QAAQ9F,KAAK4C,CAAC,CAAC,SAASd,GAAE9B,GAAG,OAAO4C,IAAI5C,EAAEU,QAAQrJ,IAAc,mBAAHA,EAAcA,EAAEuL,GAAM,MAAHvL,IAAUA,EAAEyO,QAAQlD,KAAK,CAAC,SAASrC,GAAEP,GAAG,IAAI4C,EAAEc,KAAIrM,EAAE,IAAI2I,EAAE4C,EAAE8uF,YAAY,OAAOx6F,EAAEy9F,qBAAqB/xF,EAAE6uF,UAAUp6F,EAAEA,EAAE,CAAC,SAASq7F,GAAG1yF,EAAE4C,EAAEvL,GAAG,IAAIqI,EAAExI,EAAEgkD,SAAS1iD,EAAEwF,KAAI,OAAO8E,GAAE,KAAK,IAAIjC,EAAE,IAAIS,EAAE,MAAM,IAAIW,EAAE,IAAI,IAAItB,KAAKtJ,EAAE,CAAC,GAAa,iBAAHsJ,EAAY,OAAOA,EAAEivD,OAAOnnB,cAAc,GAAa,iBAAH9nC,GAAa,YAAYA,EAAE,OAAOA,EAAEmF,QAAmC,OAA1B7D,EAAEtB,EAAEmF,QAAQ87B,kBAAmB,EAAO3/B,EAAE2tD,OAAOnnB,cAAc/oC,EAAEoG,OAAO,CAAE,EAA/M,GAAmNtN,EAAEmC,MAAMqF,EAAEsB,GAAkB,OAAdT,EAAE+B,EAAEkD,UAAgBjF,EAAEuvD,aAAajuD,GAAEb,GAAG5B,EAAEoG,QAAQxE,IAAI5B,CAAC,CAAC,IAAI8xF,GAAG,KAAK,IAAIxxF,EAAE4C,GAAG1L,EAAEkkD,WAAW/jD,EAAE+K,GAAE,IAAI,IAAInB,KAAK,OAAO6B,GAAE,KAAKzL,EAAEyO,QAAQpF,QAAQhB,GAAGA,KAAKrI,EAAEyO,QAAQ,IAAI7E,KAAK,CAACjB,IAAI,CAACN,EAAElH,KAAKnB,EAAEyO,QAAQhF,IAAIpB,EAAElH,GAAGoK,EAAE,CAAA,KAAM4vF,GAAG,CAACjpF,SAAS,WAAW4vB,MAAM,MAAM/W,OAAO,MAAMy3C,QAAQ,IAAID,OAAO,OAAOmB,SAAS,SAAS65B,KAAK,mBAAmB5rC,WAAW,SAASmQ,YAAY,KCEjiU,SAAS07B,GAAqB3kB,EAAsBC,GAAiBC,yBAAEA,GAA2B,GAAS,IACzG,OAAO,SAAqBrvC,GAE1B,GADAmvC,IAAuBnvC,IACU,IAA7BqvC,IAAuCrvC,EAAM2rB,iBAC/C,OAAOyjB,IAAkBpvC,EAE7B,CACF,CCPA,SAAS+zD,GAAO7+F,EAAK0E,GACnB,GAAmB,mBAAR1E,EACT,OAAOA,EAAI0E,GACF1E,UACTA,EAAI6P,QAAUnL,EAElB,CACA,SAASo6F,MAAe1mE,GACtB,OAAQnwB,IACN,IAAI82F,GAAa,EACjB,MAAMC,EAAW5mE,EAAKnuB,IAAKjK,IACzB,MAAMi/F,EAAUJ,GAAO7+F,EAAKiI,GAI5B,OAHK82F,GAAgC,mBAAXE,IACxBF,GAAa,GAERE,IAET,GAAIF,EACF,MAAO,KACL,IAAK,IAAI59F,EAAI,EAAGA,EAAI69F,EAAS19F,OAAQH,IAAK,CACxC,MAAM89F,EAAUD,EAAS79F,GACH,mBAAX89F,EACTA,IAEAJ,GAAOzmE,EAAKj3B,GAAI,KAEpB,GAIR,CACA,SAAS+9F,MAAmB9mE,GAC1B,OAAOjwB,EAAMg/C,YAAY23C,MAAe1mE,GAAOA,EACjD,CCqBA,SAAS+mE,MAAwB1kB,GAC/B,MAAMC,EAAYD,EAAO,GACzB,GAAsB,IAAlBA,EAAOn5E,OAAc,OAAOo5E,EAChC,MAAMG,EAAc,KAClB,MAAMD,EAAaH,EAAOxwE,IAAKm1F,IAAY,CACzCtkB,SAAUskB,IACVrkB,UAAWqkB,EAAarkB,aAE1B,OAAO,SAA2BC,GAChC,MAAME,EAAaN,EAAWx7B,OAAO,CAACigD,GAAevkB,WAAUC,gBAGtD,IAAKskB,KAFOvkB,EAASE,GACI,UAAUD,OAEzC,CAAA,GACH,OAAO5yE,EAAMqoD,QAAQ,MAAS,CAAC,UAAUkqB,EAAUK,aAAcG,IAAe,CAACA,GACnF,GAGF,OADAL,EAAYE,UAAYL,EAAUK,UAC3BF,CACT,CCzEA,IAAIykB,GAAmBprD,YAAYh0C,SAAWiI,EAAMw8C,gBAAkB,OCGtE,SAAS46C,GAAWC,GAClB,MAAMC,EAA4BC,GAAgBF,GAC5CG,EAAQx3F,EAAMm+C,WAAW,CAAC9gD,EAAO63E,KACrC,MAAMn3E,SAAEA,KAAao3E,GAAc93E,EAC7B+3E,EAAgBp1E,EAAM8mD,SAASwuB,QAAQv3E,GACvCw3E,EAAYH,EAAc9lC,KAAKmoD,IACrC,GAAIliB,EAAW,CACb,MAAME,EAAaF,EAAUl4E,MAAMU,SAC7B23E,EAAcN,EAActzE,IAAK2T,GACjCA,IAAU8/D,EACRv1E,EAAM8mD,SAAS0hB,MAAMiN,GAAc,EAAUz1E,EAAM8mD,SAAS6uB,KAAK,MAC9D31E,EAAM03F,eAAejiB,GAAcA,EAAWp4E,MAAMU,SAAW,KAE/D0X,GAGX,OAAuB7U,EAAAA,IAAI02F,EAAW,IAAKniB,EAAWt9E,IAAKq9E,EAAcn3E,SAAUiC,EAAM03F,eAAejiB,GAAcz1E,EAAM4lF,aAAanQ,OAAY,EAAQC,GAAe,MAC9K,CACA,OAAuB90E,EAAAA,IAAI02F,EAAW,IAAKniB,EAAWt9E,IAAKq9E,EAAcn3E,eAG3E,OADAy5F,EAAMz8F,YAAc,GAAGs8F,SAChBG,CACT,CAGA,SAASD,GAAgBF,GACvB,MAAMC,EAAYt3F,EAAMm+C,WAAW,CAAC9gD,EAAO63E,KACzC,MAAMn3E,SAAEA,KAAao3E,GAAc93E,EACnC,GAAI2C,EAAM03F,eAAe35F,GAAW,CAClC,MAAM45F,EAkDZ,SAAuB9lF,GACrB,IAAIrT,EAAS5F,OAAO6F,yBAAyBoT,EAAQxU,MAAO,QAAQqB,IAChEk5F,EAAUp5F,GAAU,mBAAoBA,GAAUA,EAAOG,eAC7D,GAAIi5F,EACF,OAAO/lF,EAAQha,IAIjB,GAFA2G,EAAS5F,OAAO6F,yBAAyBoT,EAAS,QAAQnT,IAC1Dk5F,EAAUp5F,GAAU,mBAAoBA,GAAUA,EAAOG,eACrDi5F,EACF,OAAO/lF,EAAQxU,MAAMxF,IAEvB,OAAOga,EAAQxU,MAAMxF,KAAOga,EAAQha,GACtC,CA9D0BggG,CAAc95F,GAC5B+5F,EAyBZ,SAAoB3iB,EAAWkB,GAC7B,MAAMC,EAAgB,IAAKD,GAC3B,IAAK,MAAMv3E,KAAYu3E,EAAY,CACjC,MAAME,EAAgBpB,EAAUr2E,GAC1B03E,EAAiBH,EAAWv3E,GAChB,WAAWqf,KAAKrf,GAE5By3E,GAAiBC,EACnBF,EAAcx3E,GAAY,IAAImmB,KAC5B,MAAMpW,EAAS2nE,KAAkBvxD,GAEjC,OADAsxD,KAAiBtxD,GACVpW,GAEA0nE,IACTD,EAAcx3E,GAAYy3E,GAEN,UAAbz3E,EACTw3E,EAAcx3E,GAAY,IAAKy3E,KAAkBC,GAC3B,cAAb13E,IACTw3E,EAAcx3E,GAAY,CAACy3E,EAAeC,GAAgBp4E,OAAOgzD,SAAS9yD,KAAK,KAEnF,CACA,MAAO,IAAK62E,KAAcmB,EAC5B,CAhDqByhB,CAAW5iB,EAAWp3E,EAASV,OAI9C,OAHIU,EAAS3F,OAAS4H,EAAMW,WAC1Bm3F,EAAOjgG,IAAMq9E,EAAeyhB,GAAYzhB,EAAcyiB,GAAeA,GAEhE33F,EAAM4lF,aAAa7nF,EAAU+5F,EACtC,CACA,OAAO93F,EAAM8mD,SAAS0hB,MAAMzqE,GAAY,EAAIiC,EAAM8mD,SAAS6uB,KAAK,MAAQ,OAG1E,OADA2hB,EAAUv8F,YAAc,GAAGs8F,cACpBC,CACT,CACA,IAAIU,GAAuBp7F,OAAO,mBAWlC,SAAS66F,GAAYhiF,GACnB,OAAOzV,EAAM03F,eAAejiF,IAAgC,mBAAfA,EAAMrd,MAAuB,cAAeqd,EAAMrd,MAAQqd,EAAMrd,KAAK6/F,YAAcD,EAClI,CCtDA,IAmBIE,GAnBQ,CACV,IACA,SACA,MACA,OACA,KACA,KACA,MACA,QACA,QACA,KACA,MACA,KACA,IACA,SACA,OACA,MACA,MAEoBjhD,OAAO,CAACy/B,EAAW52E,KACvC,MAAMq4F,EAAOf,GAAW,aAAat3F,KAC/ByM,EAAOvM,EAAMm+C,WAAW,CAAC9gD,EAAO63E,KACpC,MAAM0B,QAAEA,KAAYC,GAAmBx5E,EACjCy5E,EAAOF,EAAUuhB,EAAOr4F,EAI9B,MAHsB,oBAAXq6B,SACTA,OAAOv9B,OAAOsD,IAAI,cAAe,GAEZU,EAAAA,IAAIk2E,EAAM,IAAKD,EAAgBh/E,IAAKq9E,MAG7D,OADA3oE,EAAKxR,YAAc,aAAa+E,IACzB,IAAK42E,EAAW52E,CAACA,GAAOyM,IAC9B,IClCH,SAAS6rF,GAAej2D,GACtB,MAAMge,EAAcngD,EAAM88C,OAAO3a,GAIjC,OAHAniC,EAAMy8C,UAAU,KACd0D,EAAYz4C,QAAUy6B,IAEjBniC,EAAMqoD,QAAQ,IAAM,IAAIpjC,IAASk7B,EAAYz4C,aAAaud,GAAO,GAC1E,CCEA,IAIIozE,GAHAC,GAAiB,0BACjBC,GAAuB,sCACvBC,GAAgB,gCAEhBC,GAA0Bz4F,EAAM2qC,cAAc,CAChD8sC,OAAwB,IAAI10E,IAC5B20E,uCAAwD,IAAI30E,IAC5D40E,SAA0B,IAAI50E,MAE5B21F,GAAmB14F,EAAMm+C,WAC3B,CAAC9gD,EAAO63E,KACN,MAAM4C,4BACJA,GAA8B,EAAKC,gBACnCA,EAAeC,qBACfA,EAAoBC,eACpBA,EAAcC,kBACdA,EAAiBC,UACjBA,KACGC,GACD/6E,EACEukD,EAAU5hD,EAAM6qC,WAAW4tD,KAC1B34F,EAAMy4E,GAAWv4E,EAAMg9C,SAAS,MACjChjB,EAAgBl6B,GAAMk6B,eAAiB+R,YAAYh0C,UACnD,CAAG4pB,GAAS3hB,EAAMg9C,SAAS,CAAA,GAC3By7B,EAAese,GAAgB7hB,EAAeyjB,GAAUpgB,EAAQogB,IAChElhB,EAASp9E,MAAMJ,KAAK2nD,EAAQ61B,SAC3BkB,GAAgD,IAAI/2B,EAAQ81B,wCAAwCp9E,UACrGs+E,EAAoDnB,EAAO79E,QAAQ++E,GACnEnsE,EAAQ1M,EAAO23E,EAAO79E,QAAQkG,IAAQ,EACtC+4E,EAA8Bj3B,EAAQ81B,uCAAuC54C,KAAO,EACpFg6C,EAAyBtsE,GAASosE,EAClCG,EA4FV,SAA+Bf,EAAsBh+C,EAAgB+R,YAAYh0C,UAC/E,MAAMihF,EAA2Bof,GAAepgB,GAC1CkB,EAA8Bl5E,EAAM88C,QAAO,GAC3Cs8B,EAAiBp5E,EAAM88C,OAAO,QAoCpC,OAlCA98C,EAAMy8C,UAAU,KACd,MAAM68B,EAAqB32C,IACzB,GAAIA,EAAMz2B,SAAWgtE,EAA4BxxE,QAAS,CACxD,IAAIkxF,EAA4C,WAC9CC,GACEN,GACAvf,EACAO,EACA,CAAEI,UAAU,GAEhB,EAEA,MAAMJ,EAAc,CAAEC,cAAe72C,GACX,UAAtBA,EAAMi3C,aACR5/C,EAAc8K,oBAAoB,QAASs0C,EAAe1xE,SAC1D0xE,EAAe1xE,QAAUkxF,EACzB5+D,EAAc4K,iBAAiB,QAASw0C,EAAe1xE,QAAS,CAAEmyE,MAAM,KAExE+e,GAEJ,MACE5+D,EAAc8K,oBAAoB,QAASs0C,EAAe1xE,SAE5DwxE,EAA4BxxE,SAAU,GAElCqwB,EAAUoC,OAAOtB,WAAW,KAChCmB,EAAc4K,iBAAiB,cAAe00C,IAC7C,GACH,MAAO,KACLn/C,OAAOhB,aAAapB,GACpBiC,EAAc8K,oBAAoB,cAAew0C,GACjDt/C,EAAc8K,oBAAoB,QAASs0C,EAAe1xE,WAE3D,CAACsyB,EAAeg/C,IACZ,CAELc,qBAAsB,IAAMZ,EAA4BxxE,SAAU,EAEtE,CAvI+BoxF,CAAuBn2D,IAChD,MAAMz2B,EAASy2B,EAAMz2B,OACf8tE,EAAwB,IAAIp4B,EAAQ+1B,UAAU/rD,KAAMquD,GAAWA,EAAO39C,SAASpwB,IAChF4sE,IAA0BkB,IAC/BhC,IAAuBr1C,GACvBu1C,IAAoBv1C,GACfA,EAAM2rB,kBAAkB6pB,QAC5Bn+C,GACGkgD,EAgIV,SAAyBjC,EAAgBj+C,EAAgB+R,YAAYh0C,UACnE,MAAMoiF,EAAqBie,GAAengB,GACpCmC,EAA4Bp6E,EAAM88C,QAAO,GAa/C,OAZA98C,EAAMy8C,UAAU,KACd,MAAM49B,EAAe13C,IACnB,GAAIA,EAAMz2B,SAAWkuE,EAA0B1yE,QAAS,CAEtDmxF,GAA6BL,GAAere,EADxB,CAAEX,cAAe72C,GACwC,CAC3Eg3C,UAAU,GAEd,GAGF,OADA3/C,EAAc4K,iBAAiB,UAAWy1C,GACnC,IAAMrgD,EAAc8K,oBAAoB,UAAWu1C,IACzD,CAACrgD,EAAemgD,IACZ,CACLG,eAAgB,IAAMF,EAA0B1yE,SAAU,EAC1D6yE,cAAe,IAAMH,EAA0B1yE,SAAU,EAE7D,CAnJyBqxF,CAAiBp2D,IACpC,MAAMz2B,EAASy2B,EAAMz2B,OACG,IAAI01C,EAAQ+1B,UAAU/rD,KAAMquD,GAAWA,EAAO39C,SAASpwB,MAE/E+rE,IAAiBt1C,GACjBu1C,IAAoBv1C,GACfA,EAAM2rB,kBAAkB6pB,QAC5Bn+C,GAwCH,OC9FJ,SAA0BygD,EAAqBzgD,EAAgB+R,YAAYh0C,UACzE,MAAMggF,EAAkBqgB,GAAe3d,GACvCz6E,EAAMy8C,UAAU,KACd,MAAMP,EAAiBvZ,IACH,WAAdA,EAAM/jC,KACRm5E,EAAgBp1C,IAIpB,OADA3I,EAAc4K,iBAAiB,UAAWsX,EAAe,CAAE88C,SAAS,IAC7D,IAAMh/D,EAAc8K,oBAAoB,UAAWoX,EAAe,CAAE88C,SAAS,KACnF,CAACjhB,EAAiB/9C,GACvB,CD4CIi/D,CAAkBt2D,IACOn2B,IAAUo1C,EAAQ61B,OAAO34C,KAAO,IAEvDi5C,IAAkBp1C,IACbA,EAAM2rB,kBAAoB6pB,IAC7Bx1C,EAAMkoB,iBACNstB,OAEDn+C,GACHh6B,EAAMy8C,UAAU,KACd,GAAK38C,EAUL,OATIg4E,IAC0D,IAAxDl2B,EAAQ81B,uCAAuC54C,OACjDu5D,GAA4Br+D,EAAca,KAAK3iC,MAAMynD,cACrD3lB,EAAca,KAAK3iC,MAAMynD,cAAgB,QAE3CiC,EAAQ81B,uCAAuC/0E,IAAI7C,IAErD8hD,EAAQ61B,OAAO90E,IAAI7C,GACnBo5F,KACO,KACDphB,GAAuF,IAAxDl2B,EAAQ81B,uCAAuC54C,OAChF9E,EAAca,KAAK3iC,MAAMynD,cAAgB04C,MAG5C,CAACv4F,EAAMk6B,EAAe89C,EAA6Bl2B,IACtD5hD,EAAMy8C,UAAU,IACP,KACA38C,IACL8hD,EAAQ61B,OAAOp0E,OAAOvD,GACtB8hD,EAAQ81B,uCAAuCr0E,OAAOvD,GACtDo5F,OAED,CAACp5F,EAAM8hD,IACV5hD,EAAMy8C,UAAU,KACd,MAAMq+B,EAAe,IAAMn5D,EAAM,IAEjC,OADA5pB,SAAS6sC,iBAAiB0zD,GAAgBxd,GACnC,IAAM/iF,SAAS+sC,oBAAoBwzD,GAAgBxd,IACzD,IACoBl6E,EAAAA,IACrBs3F,GAAUhmC,IACV,IACKkmB,EACHvgF,IAAK4gF,EACLvgF,MAAO,CACLynD,cAAek5B,EAA8BC,EAAyB,OAAS,YAAS,KACrFz7E,EAAMnF,OAEXoiF,eAAgBmc,GAAqBp5F,EAAMi9E,eAAgBJ,EAAaI,gBACxEC,cAAekc,GAAqBp5F,EAAMk9E,cAAeL,EAAaK,eACtET,qBAAsB2c,GACpBp5F,EAAMy8E,qBACNf,EAAmBe,0BAM7B4e,GAAiB39F,YA1GY,mBA2G7B,IACIo+F,GAAyBn5F,EAAMm+C,WAAW,CAAC9gD,EAAO63E,KACpD,MAAMtzB,EAAU5hD,EAAM6qC,WAAW4tD,IAC3B5gG,EAAMmI,EAAM88C,OAAO,MACnB27B,EAAese,GAAgB7hB,EAAcr9E,GAUnD,OATAmI,EAAMy8C,UAAU,KACd,MAAM38C,EAAOjI,EAAI6P,QACjB,GAAI5H,EAEF,OADA8hD,EAAQ+1B,SAASh1E,IAAI7C,GACd,KACL8hD,EAAQ+1B,SAASt0E,OAAOvD,KAG3B,CAAC8hD,EAAQ+1B,WACW/2E,EAAAA,IAAIs3F,GAAUhmC,IAAK,IAAK70D,EAAOxF,IAAK4gF,MAmE7D,SAASygB,KACP,MAAMv2D,EAAQ,IAAIw4C,YAAYmd,IAC9BvgG,SAASirC,cAAcL,EACzB,CACA,SAASk2D,GAA6B79F,EAAMgzD,EAASroB,GAAQg0C,SAAEA,IAC7D,MAAMztE,EAASy5B,EAAO6zC,cAActtE,OAC9By2B,EAAQ,IAAIw4C,YAAYngF,EAAM,CAAEogF,SAAS,EAAOC,YAAY,EAAM11C,WACpEqoB,GAAS9hD,EAAO04B,iBAAiB5pC,EAAMgzD,EAAS,CAAE6rB,MAAM,IACxDF,EFzKN,SAAqCztE,EAAQy2B,GACvCz2B,GAAQymD,EAASymC,UAAU,IAAMltF,EAAO82B,cAAcL,GAC5D,CEwKI02D,CAA4BntF,EAAQy2B,GAEpCz2B,EAAO82B,cAAcL,EAEzB,CA9EAw2D,GAAuBp+F,YAhBL,yBE7GlB,IAAIu+F,GAAqB,8BACrBC,GAAuB,gCACvBC,GAAgB,CAAEpe,SAAS,EAAOC,YAAY,GAE9Coe,GAAaz5F,EAAMm+C,WAAW,CAAC9gD,EAAO63E,KACxC,MAAM2G,KACJA,GAAO,EAAKC,QACZA,GAAU,EACVC,iBAAkBC,EAClBC,mBAAoBC,KACjBC,GACD9+E,GACGk/D,EAAW8f,GAAgBr8E,EAAMg9C,SAAS,MAC3C++B,EAAmBqc,GAAepc,GAClCC,EAAqBmc,GAAelc,GACpCM,EAAwBx8E,EAAM88C,OAAO,MACrC27B,EAAese,GAAgB7hB,EAAep1E,GAASu8E,EAAav8E,IACpE68E,EAAa38E,EAAM88C,OAAO,CAC9B8/B,QAAQ,EACR,KAAA50C,GACEvuC,KAAKmjF,QAAS,CAChB,EACA,MAAAC,GACEpjF,KAAKmjF,QAAS,CAChB,IACCl1E,QACH1H,EAAMy8C,UAAU,KACd,GAAIq/B,EAAS,CACX,IAAI4d,EAAiB,SAAS/2D,GAC5B,GAAIg6C,EAAWC,SAAWrgB,EAAW,OACrC,MAAMrwD,EAASy2B,EAAMz2B,OACjBqwD,EAAUjgC,SAASpwB,GACrBswE,EAAsB90E,QAAUwE,EAEhC8G,GAAMwpE,EAAsB90E,QAAS,CAAEwK,QAAQ,GAEnD,EAAGynF,EAAkB,SAASh3D,GAC5B,GAAIg6C,EAAWC,SAAWrgB,EAAW,OACrC,MAAMtQ,EAAgBtpB,EAAMspB,cACN,OAAlBA,IACCsQ,EAAUjgC,SAAS2vB,IACtBj5C,GAAMwpE,EAAsB90E,QAAS,CAAEwK,QAAQ,IAEnD,EAAG0nF,EAAmB,SAASx9C,GAE7B,GADuBrkD,SAASk4C,gBACTl4C,SAAS8iC,KAChC,IAAK,MAAMkU,KAAYqN,EACjBrN,EAASS,aAAar2C,OAAS,GAAG6Z,GAAMupD,EAEhD,EAEAxkE,SAAS6sC,iBAAiB,UAAW80D,GACrC3hG,SAAS6sC,iBAAiB,WAAY+0D,GACtC,MAAM18C,EAAmB,IAAI7Z,iBAAiBw2D,GAE9C,OADIr9B,GAAWtf,EAAiB3Z,QAAQi5B,EAAW,CAAE34B,WAAW,EAAMC,SAAS,IACxE,KACL9rC,SAAS+sC,oBAAoB,UAAW40D,GACxC3hG,SAAS+sC,oBAAoB,WAAY60D,GACzC18C,EAAiBpY,aAErB,GACC,CAACi3C,EAASvf,EAAWogB,EAAWC,SACnC58E,EAAMy8C,UAAU,KACd,GAAI8f,EAAW,CACbs9B,GAAiBl3F,IAAIg6E,GACrB,MAAMQ,EAA2BplF,SAASk4C,cAE1C,IAD4BssB,EAAUjgC,SAAS6gD,GACrB,CACxB,MAAMC,EAAa,IAAIjC,YAAYme,GAAoBE,IACvDj9B,EAAU33B,iBAAiB00D,GAAoBvd,GAC/Cxf,EAAUv5B,cAAco6C,GACnBA,EAAW9uB,oBAkDxB,SAAoB+uB,GAAYnrE,OAAEA,GAAS,GAAU,CAAA,GACnD,MAAMirE,EAA2BplF,SAASk4C,cAC1C,IAAK,MAAMqtC,KAAaD,EAEtB,GADArqE,GAAMsqE,EAAW,CAAEprE,WACfna,SAASk4C,gBAAkBktC,EAA0B,MAE7D,CAvDU2c,EA6HWv8B,EA7HYw8B,GAAsBx9B,GA8H9CgB,EAAMn/D,OAAQq/E,GAA0B,MAAjBA,EAAKv4C,UA9H+B,CAAEhzB,QAAQ,IAChEna,SAASk4C,gBAAkBktC,GAC7BnqE,GAAMupD,GAGZ,CACA,MAAO,KACLA,EAAUz3B,oBAAoBw0D,GAAoBvd,GAClDljD,WAAW,KACT,MAAM6kD,EAAe,IAAIvC,YAAYoe,GAAsBC,IAC3Dj9B,EAAU33B,iBAAiB20D,GAAsBtd,GACjD1f,EAAUv5B,cAAc06C,GACnBA,EAAapvB,kBAChBt7C,GAAMmqE,GAA4BplF,SAAS8iC,KAAM,CAAE3oB,QAAQ,IAE7DqqD,EAAUz3B,oBAAoBy0D,GAAsBtd,GACpD4d,GAAiBlc,OAAOhB,IACvB,GAEP,CA0GJ,IAAqBpf,GAzGhB,CAAChB,EAAWwf,EAAkBE,EAAoBU,IACrD,MAAMzgC,EAAgBl8C,EAAMg/C,YACzBrc,IACC,IAAKk5C,IAASC,EAAS,OACvB,GAAIa,EAAWC,OAAQ,OACvB,MAAMiB,EAAyB,QAAdl7C,EAAM/jC,MAAkB+jC,EAAMm7C,SAAWn7C,EAAMoiC,UAAYpiC,EAAMmiC,QAC5EiZ,EAAiBhmF,SAASk4C,cAChC,GAAI4tC,GAAYE,EAAgB,CAC9B,MAAMic,EAAar3D,EAAMq7C,eAClBjoE,EAAOrL,GA2BtB,SAA0B6xD,GACxB,MAAM8gB,EAAa0c,GAAsBx9B,GACnCxmD,EAAQkkF,GAAY5c,EAAY9gB,GAChC7xD,EAAOuvF,GAAY5c,EAAWx0E,UAAW0zD,GAC/C,MAAO,CAACxmD,EAAOrL,EACjB,CAhC8BwvF,CAAiBF,GACLjkF,GAASrL,EAIpCi4B,EAAMw7C,UAAYJ,IAAmBrzE,EAG/Bi4B,EAAMw7C,UAAYJ,IAAmBhoE,IAC9C4sB,EAAMkoB,iBACFgxB,GAAM7oE,GAAMtI,EAAM,CAAEwH,QAAQ,MAJhCywB,EAAMkoB,iBACFgxB,GAAM7oE,GAAM+C,EAAO,CAAE7D,QAAQ,KAJ/B6rE,IAAmBic,GAAYr3D,EAAMkoB,gBAU7C,GAEF,CAACgxB,EAAMC,EAASa,EAAWC,SAE7B,OAAuBh8E,MAAIs3F,GAAUhmC,IAAK,CAAEqsB,UAAU,KAAOpC,EAAYtkF,IAAK4gF,EAAclrB,UAAWrR,MAgBzG,SAAS69C,GAAsBx9B,GAC7B,MAAMprD,EAAQ,GACRqtE,EAASzmF,SAASyyD,iBAAiB+R,EAAW9R,WAAWg0B,aAAc,CAC3EC,WAAa5+E,IACX,MAAM6+E,EAAiC,UAAjB7+E,EAAKolC,SAAqC,WAAdplC,EAAK1H,KACvD,OAAI0H,EAAKykE,UAAYzkE,EAAK8+E,QAAUD,EAAsBl0B,WAAWo0B,YAC9D/+E,EAAKy+E,UAAY,EAAI9zB,WAAWq0B,cAAgBr0B,WAAWo0B,eAGtE,KAAOL,EAAO1nC,YAAY3lC,EAAM5L,KAAKi5E,EAAOx2D,aAC5C,OAAO7W,CACT,CACA,SAAS8oF,GAAYpkF,EAAU0mD,GAC7B,IAAK,MAAM1qD,KAAWgE,EACpB,IAAKmoB,GAASnsB,EAAS,CAAEmtE,KAAMziB,IAAc,OAAO1qD,CAExD,CACA,SAASmsB,GAASl+B,GAAMk/E,KAAEA,IACxB,GAA0C,WAAtCnlD,iBAAiB/5B,GAAM+8D,WAAyB,OAAO,EAC3D,KAAO/8D,GAAM,CACX,QAAa,IAATk/E,GAAmBl/E,IAASk/E,EAAM,OAAO,EAC7C,GAAuC,SAAnCnlD,iBAAiB/5B,GAAMslC,QAAoB,OAAO,EACtDtlC,EAAOA,EAAK46B,aACd,CACA,OAAO,CACT,CAIA,SAAS1nB,GAAMnB,GAASK,OAAEA,GAAS,GAAU,CAAA,GAC3C,GAAIL,GAAWA,EAAQmB,MAAO,CAC5B,MAAMmqE,EAA2BplF,SAASk4C,cAC1Cp+B,EAAQmB,MAAM,CAAE6+B,eAAe,IAC3BhgC,IAAYsrE,GAPpB,SAA2BtrE,GACzB,OAAOA,aAAmBu8C,kBAAoB,WAAYv8C,CAC5D,CAKgDsoF,CAAkBtoF,IAAYK,GACxEL,EAAQK,QACZ,CACF,CAlDAunF,GAAW1+F,YArHY,aAwKvB,IAAI8+F,GACJ,WACE,IAAI3qC,EAAQ,GACZ,MAAO,CACL,GAAAvsD,CAAIg6E,GACF,MAAMuC,EAAmBhwB,EAAM,GAC3BytB,IAAeuC,GACjBA,GAAkBl3C,QAEpBknB,EAAQkrC,GAAYlrC,EAAOytB,GAC3BztB,EAAMtd,QAAQ+qC,EAChB,EACA,MAAAgB,CAAOhB,GACLztB,EAAQkrC,GAAYlrC,EAAOytB,GAC3BztB,EAAM,IAAI2tB,QACZ,EAEJ,CAjBuBwd,GAkBvB,SAASD,GAAYrxD,EAAO00C,GAC1B,MAAM6B,EAAe,IAAIv2C,GACnBv8B,EAAQ8yE,EAAa1lF,QAAQ6jF,GAInC,OAHc,IAAVjxE,GACF8yE,EAAa7yE,OAAOD,EAAO,GAEtB8yE,CACT,CCpMA,IACI/N,GAASvxE,EAAMm+C,WAAW,CAAC9gD,EAAO63E,KACpC,MAAQ3Y,UAAW+9B,KAAkB5a,GAAgBriF,GAC9CwjF,EAAS0Z,GAAcv6F,EAAMg9C,UAAS,GAC7CR,GAAgB,IAAM+9C,GAAW,GAAO,IACxC,MAAMh+B,EAAY+9B,GAAiBzZ,GAAW90C,YAAYh0C,UAAU8iC,KACpE,OAAO0hC,EAAY5J,EAAS6e,aAA6B5wE,EAAAA,IAAIs3F,GAAUhmC,IAAK,IAAKwtB,EAAa7nF,IAAKq9E,IAAiB3Y,GAAa,OAEnIgV,GAAOx2E,YARW,SCSlB,IAAIy/F,GAAYn9F,IACd,MAAM2iF,QAAEA,EAAOjiF,SAAEA,GAAaV,EACxB4iF,EAOR,SAAqBD,GACnB,MAAOlgF,EAAMy4E,GAAWkiB,EAAOz9C,WACzBmjC,EAAYsa,EAAO39C,OAAO,MAC1BujC,EAAiBoa,EAAO39C,OAAOkjC,GAC/BM,EAAuBma,EAAO39C,OAAO,QACrCyjC,EAAeP,EAAU,UAAY,aACpC53B,EAAOo4B,GAvBhB,SAAyBD,EAAcE,GACrC,OAAOzgF,EAAMmoD,WAAW,CAACC,EAAOzlB,IACZ89C,EAAQr4B,GAAOzlB,IACbylB,EACnBm4B,EACL,CAkBwBma,CAAgBna,EAAc,CAClDM,QAAS,CACPC,QAAS,YACTC,cAAe,oBAEjBC,iBAAkB,CAChBC,MAAO,UACPC,cAAe,aAEjBC,UAAW,CACTF,MAAO,aAmEX,OAhEAwZ,EAAOh+C,UAAU,KACf,MAAM4kC,EAAuBsZ,GAAiBxa,EAAUz4E,SACxD44E,EAAqB54E,QAAoB,YAAV0gD,EAAsBi5B,EAAuB,QAC3E,CAACj5B,IACJ5L,GAAgB,KACd,MAAM8uB,EAAS6U,EAAUz4E,QACnB85E,EAAanB,EAAe34E,QAElC,GAD0B85E,IAAexB,EAClB,CACrB,MAAMyB,EAAoBnB,EAAqB54E,QACzC25E,EAAuBsZ,GAAiBrvB,GAC9C,GAAI0U,EACFQ,EAAK,cACA,GAA6B,SAAzBa,GAAuD,SAApB/V,GAAQlmC,QACpDo7C,EAAK,eACA,CAGHA,EADEgB,GADgBC,IAAsBJ,EAEnC,gBAEA,UAET,CACAhB,EAAe34E,QAAUs4E,CAC3B,GACC,CAACA,EAASQ,IACbhkC,GAAgB,KACd,GAAI18C,EAAM,CACR,IAAI+pD,EACJ,MAAM+wC,EAAc96F,EAAKk6B,cAAcC,aAAeE,OAChDunD,EAAsB/+C,IAC1B,MACMg/C,EADuBgZ,GAAiBxa,EAAUz4E,SACRyL,SAAS0nF,IAAI3yD,OAAOvF,EAAMi/C,gBAC1E,GAAIj/C,EAAMz2B,SAAWpM,GAAQ6hF,IAC3BnB,EAAK,kBACAH,EAAe34E,SAAS,CAC3B,MAAMozF,EAAkBh7F,EAAK5H,MAAM6iG,kBACnCj7F,EAAK5H,MAAM6iG,kBAAoB,WAC/BlxC,EAAY+wC,EAAY/hE,WAAW,KACI,aAAjC/4B,EAAK5H,MAAM6iG,oBACbj7F,EAAK5H,MAAM6iG,kBAAoBD,IAGrC,GAGEhZ,EAAwBn/C,IACxBA,EAAMz2B,SAAWpM,IACnBwgF,EAAqB54E,QAAUizF,GAAiBxa,EAAUz4E,WAM9D,OAHA5H,EAAK8kC,iBAAiB,iBAAkBk9C,GACxChiF,EAAK8kC,iBAAiB,kBAAmB88C,GACzC5hF,EAAK8kC,iBAAiB,eAAgB88C,GAC/B,KACLkZ,EAAYzhE,aAAa0wB,GACzB/pD,EAAKglC,oBAAoB,iBAAkBg9C,GAC3ChiF,EAAKglC,oBAAoB,kBAAmB48C,GAC5C5hF,EAAKglC,oBAAoB,eAAgB48C,GAE7C,CACElB,EAAK,kBAEN,CAAC1gF,EAAM0gF,IACH,CACLuB,UAAW,CAAC,UAAW,oBAAoB5uE,SAASi1C,GACpDvwD,IAAK4iG,EAAOz7C,YAAa25C,IACvBxY,EAAUz4E,QAAUixF,EAAQ9+D,iBAAiB8+D,GAAS,KACtDpgB,EAAQogB,IACP,IAEP,CAjGmBqC,CAAYhb,GACvBvqE,EAA4B,mBAAb1X,EAA0BA,EAAS,CAAEiiF,QAASC,EAAS8B,YAAe0Y,EAAO3zC,SAAS6uB,KAAK53E,GAC1GlG,EAAMk/F,GAAgB9W,EAASpoF,IAmGvC,SAAuBga,GACrB,IAAIrT,EAAS5F,OAAO6F,yBAAyBoT,EAAQxU,MAAO,QAAQqB,IAChEk5F,EAAUp5F,GAAU,mBAAoBA,GAAUA,EAAOG,eAC7D,GAAIi5F,EACF,OAAO/lF,EAAQha,IAIjB,GAFA2G,EAAS5F,OAAO6F,yBAAyBoT,EAAS,QAAQnT,IAC1Dk5F,EAAUp5F,GAAU,mBAAoBA,GAAUA,EAAOG,eACrDi5F,EACF,OAAO/lF,EAAQxU,MAAMxF,IAEvB,OAAOga,EAAQxU,MAAMxF,KAAOga,EAAQha,GACtC,CA/G4CggG,CAAcpiF,IAExD,MADuC,mBAAb1X,GACLkiF,EAAS8B,UAAY0Y,EAAO7U,aAAanwE,EAAO,CAAE5d,QAAS,MA8FlF,SAAS8iG,GAAiBrvB,GACxB,OAAOA,GAAQsW,eAAiB,MAClC,CA9FA4Y,GAASz/F,YAAc,WCrBvB,IAAIytE,GAAQ,EAmBZ,SAASyyB,KACP,MAAMppF,EAAU9Z,SAASI,cAAc,QAOvC,OANA0Z,EAAQmgD,aAAa,yBAA0B,IAC/CngD,EAAQ0sE,SAAW,EACnB1sE,EAAQ3Z,MAAM6oD,QAAU,OACxBlvC,EAAQ3Z,MAAM2nD,QAAU,IACxBhuC,EAAQ3Z,MAAMiT,SAAW,QACzB0G,EAAQ3Z,MAAMynD,cAAgB,OACvB9tC,CACT,CC/BO,IAAI4yE,GAAYrB,KCInBsB,GAAU,WAEd,EAIIC,GAAe3kF,EAAMm+C,WAAW,SAAU9gD,EAAOunF,GACjD,IAAI/sF,EAAMmI,EAAM88C,OAAO,MACnBnf,EAAK39B,EAAMg9C,SAAS,CACpB6nC,gBAAiBH,GACjBI,eAAgBJ,GAChBK,mBAAoBL,KACpB5iD,EAAYnE,EAAG,GAAIqnD,EAAernD,EAAG,GACrCsnD,EAAe5nF,EAAM4nF,aAAclnF,EAAWV,EAAMU,SAAUu2D,EAAYj3D,EAAMi3D,UAAW4wB,EAAkB7nF,EAAM6nF,gBAAiBC,EAAU9nF,EAAM8nF,QAASC,EAAS/nF,EAAM+nF,OAAQhB,EAAU/mF,EAAM+mF,QAASsD,EAAarqF,EAAMqqF,WAAYrC,EAAchoF,EAAMgoF,YAAaC,EAAQjoF,EAAMioF,MAAOC,EAAiBloF,EAAMkoF,eAAgBrnD,EAAK7gC,EAAMkM,GAAIi8E,OAAmB,IAAPtnD,EAAgB,MAAQA,EAAI2oD,EAAUxpF,EAAMwpF,QAAShzE,EAAOna,EAAO2D,EAAO,CAAC,eAAgB,WAAY,YAAa,kBAAmB,UAAW,SAAU,UAAW,aAAc,cAAe,QAAS,iBAAkB,KAAM,YACzkB8mF,EAAUC,EACVqB,EAAe9C,GAAa,CAAC9qF,EAAK+sF,IAClCc,EAAiB/sF,EAASA,EAAS,CAAA,EAAIkb,GAAOiuB,GAClD,OAAQ9hC,EAAM7H,cAAc6H,EAAMW,SAAU,KACxCwkF,GAAYnlF,EAAM7H,cAAcgsF,EAAS,CAAEC,QAASK,GAAWS,gBAAiBA,EAAiBE,OAAQA,EAAQsC,WAAYA,EAAYrC,YAAaA,EAAaC,MAAOA,EAAON,aAAcA,EAAcO,iBAAkBA,EAAgBI,QAAS9tF,EAAKgvF,QAASA,IACtQ5B,EAAgBjlF,EAAM4lF,aAAa5lF,EAAM8mD,SAAS6uB,KAAK53E,GAAWpF,EAASA,EAAS,CAAA,EAAI+sF,GAAiB,CAAE7tF,IAAK4tF,KAAqBzlF,EAAM7H,cAAcqtF,EAAW7sF,EAAS,CAAA,EAAI+sF,EAAgB,CAAEpxB,UAAWA,EAAWz8D,IAAK4tF,IAAiB1nF,GACvP,GACA4mF,GAAakB,aAAe,CACxBV,SAAS,EACTD,iBAAiB,EACjBI,OAAO,GAEXX,GAAatU,WAAa,CACtByV,UAAWtD,GACXuD,UAAWxD,ICjCf,IAAIuF,IAAmB,EACvB,GAAsB,oBAAX3tD,OACP,IACI,IAAIvxB,GAAUhQ,OAAOqG,eAAe,CAAA,EAAI,UAAW,CAC/CP,IAAK,WAED,OADAopF,IAAmB,GACZ,CACX,IAGJ3tD,OAAOyK,iBAAiB,OAAQh8B,GAASA,IAEzCuxB,OAAO2K,oBAAoB,OAAQl8B,GAASA,GAChD,CACA,MAAOshC,GACH49C,IAAmB,CACvB,CAEG,IAAIC,KAAaD,IAAmB,CAAEE,SAAS,GCdlDkT,GAAuB,SAAUp7F,EAAM68D,GACvC,KAAM78D,aAAgB8U,SAClB,OAAO,EAEX,IAAI02D,EAASnxC,OAAON,iBAAiB/5B,GACrC,MAEqB,WAArBwrE,EAAO3O,MAED2O,EAAOxxC,YAAcwxC,EAAOvxC,YAbX,SAAUj6B,GAEjC,MAAwB,aAAjBA,EAAKolC,OAChB,CAUoDi2D,CAAqBr7F,IAA8B,YAArBwrE,EAAO3O,GACzF,EAGWsrB,GAA0B,SAAUC,EAAMpoF,GACjD,IAAIk6B,EAAgBl6B,EAAKk6B,cACrBtyB,EAAU5H,EACd,EAAG,CAMC,GAJ0B,oBAAfywC,YAA8B7oC,aAAmB6oC,aACxD7oC,EAAUA,EAAQkzB,MAEHutD,GAAuBD,EAAMxgF,GAC9B,CACd,IAAIi2B,EAAKyqD,GAAmBF,EAAMxgF,GAClC,GAD2Di2B,EAAG,GAAmBA,EAAG,GAEhF,OAAO,CAEf,CACAj2B,EAAUA,EAAQwb,UACtB,OAASxb,GAAWA,IAAYsyB,EAAca,MAC9C,OAAO,CACX,EAiBIstD,GAAyB,SAAUD,EAAMpoF,GACzC,MAAgB,MAATooF,EAtCmB,SAAUpoF,GAAQ,OAAOo7F,GAAqBp7F,EAAM,YAAc,CAsCtEuoF,CAAwBvoF,GArCpB,SAAUA,GAAQ,OAAOo7F,GAAqBp7F,EAAM,YAAc,CAqCtCwoF,CAAwBxoF,EAClF,EACIsoF,GAAqB,SAAUF,EAAMpoF,GACrC,MAAgB,MAATooF,EAlBA,EAFyBvqD,EAoBU79B,GAnBvBk8B,UAA0B2B,EAAGjE,aAA6BiE,EAAGlE,cAO1D,SAAUkE,GAEhC,MAAO,CADUA,EAAG5B,WAA0B4B,EAAG/D,YAA2B+D,EAAGhE,YAMnF,CAKsD4uD,CAAoBzoF,GApBhD,IAAU69B,CAqBpC,ECnDW6qD,GAAa,SAAU7lD,GAC9B,MAAO,mBAAoBA,EAAQ,CAACA,EAAM8lD,eAAe,GAAG/3C,QAAS/N,EAAM8lD,eAAe,GAAG93C,SAAW,CAAC,EAAG,EAChH,EACW+3C,GAAa,SAAU/lD,GAAS,MAAO,CAACA,EAAMgmD,OAAQhmD,EAAMimD,OAAS,EAC5EC,GAAa,SAAUhxF,GACvB,OAAOA,GAAO,YAAaA,EAAMA,EAAI6P,QAAU7P,CACnD,EAEIixF,GAAgB,SAAUp5C,GAAM,MAAO,4BAA4Bn1C,OAAOm1C,EAAI,qDAAqDn1C,OAAOm1C,EAAI,4BAA8B,EAC5KgJ,GAAY,EACZqwC,GAAY,GAyIhB,SAASqS,GAAyBt7F,GAE9B,IADA,IAAIu7F,EAAe,KACH,OAATv7F,GACCA,aAAgBywC,aAChB8qD,EAAev7F,EAAK86B,KACpB96B,EAAOA,EAAK86B,MAEhB96B,EAAOA,EAAKojB,WAEhB,OAAOm4E,CACX,CChKA,IAAAlX,GAAeG,GAAcG,GDctB,SAA6BpnF,GAChC,IAAI4rF,EAAqBjpF,EAAM88C,OAAO,IAClCosC,EAAgBlpF,EAAM88C,OAAO,CAAC,EAAG,IACjCqsC,EAAanpF,EAAM88C,SACnBpN,EAAK1vC,EAAMg9C,SAAStE,MAAa,GACjCwuC,EAAQlnF,EAAMg9C,SAASupC,IAAgB,GACvC6C,EAAYppF,EAAM88C,OAAOz/C,GAC7B2C,EAAMy8C,UAAU,WACZ2sC,EAAU1hF,QAAUrK,CACxB,EAAG,CAACA,IACJ2C,EAAMy8C,UAAU,WACZ,GAAIp/C,EAAMioF,MAAO,CACbvtF,SAAS8iC,KAAK08B,UAAU50D,IAAI,uBAAuBpI,OAAOm1C,IAC1D,IAAI25C,EAAUtvF,EAAc,CAACsD,EAAMsoF,QAAQj+E,UAAWrK,EAAM+nF,QAAU,IAAItjF,IAAI+mF,KAAa,GAAMzqF,OAAOgzD,SAExG,OADAi4B,EAAQ/mF,QAAQ,SAAU25B,GAAM,OAAOA,EAAGs7B,UAAU50D,IAAI,uBAAuBpI,OAAOm1C,GAAM,GACrF,WACH33C,SAAS8iC,KAAK08B,UAAUomB,OAAO,uBAAuBpjF,OAAOm1C,IAC7D25C,EAAQ/mF,QAAQ,SAAU25B,GAAM,OAAOA,EAAGs7B,UAAUomB,OAAO,uBAAuBpjF,OAAOm1C,GAAM,EACnG,CACJ,CAEJ,EAAG,CAACryC,EAAMioF,MAAOjoF,EAAMsoF,QAAQj+E,QAASrK,EAAM+nF,SAC9C,IAAIkE,EAAoBtpF,EAAMg/C,YAAY,SAAUrc,EAAO93B,GACvD,GAAK,YAAa83B,GAAkC,IAAzBA,EAAM4mD,QAAQpwF,QAAiC,UAAfwpC,EAAMvqC,MAAoBuqC,EAAMoiC,QACvF,OAAQqkB,EAAU1hF,QAAQ69E,eAE9B,IAIIiE,EAJAjpB,EAAQioB,GAAW7lD,GACnB8mD,EAAaP,EAAcxhF,QAC3BihF,EAAS,WAAYhmD,EAAQA,EAAMgmD,OAASc,EAAW,GAAKlpB,EAAM,GAClEqoB,EAAS,WAAYjmD,EAAQA,EAAMimD,OAASa,EAAW,GAAKlpB,EAAM,GAElEr0D,EAASy2B,EAAMz2B,OACfw9E,EAAgBrgF,KAAK89D,IAAIwhB,GAAUt/E,KAAK89D,IAAIyhB,GAAU,IAAM,IAEhE,GAAI,YAAajmD,GAA2B,MAAlB+mD,GAAyC,UAAhBx9E,EAAO9T,KACtD,OAAO,EAGX,IAAIkU,EAAY6tB,OAAOgW,eACnBpC,EAAazhC,GAAaA,EAAUyhC,WAExC,KAD0BA,IAAaA,IAAe7hC,GAAU6hC,EAAWzR,SAASpwB,IAEhF,OAAO,EAEX,IAAIy9E,EAA+B1B,GAAwByB,EAAex9E,GAC1E,IAAKy9E,EACD,OAAO,EAUX,GARIA,EACAH,EAAcE,GAGdF,EAAgC,MAAlBE,EAAwB,IAAM,IAC5CC,EAA+B1B,GAAwByB,EAAex9E,KAGrEy9E,EACD,OAAO,EAKX,IAHKR,EAAWzhF,SAAW,mBAAoBi7B,IAAUgmD,GAAUC,KAC/DO,EAAWzhF,QAAU8hF,IAEpBA,EACD,OAAO,EAEX,IAAII,EAAgBT,EAAWzhF,SAAW8hF,EAC1C,ODjBkB,SAAUtB,EAAM2B,EAAWlnD,EAAOmnD,GACxD,IAAIC,EATiB,SAAU7B,EAAMtiE,GAMrC,MAAgB,MAATsiE,GAA8B,QAAdtiE,GAAsB,EAAK,CACtD,CAE0BokE,CAAmB9B,EAAM/tD,OAAON,iBAAiBgwD,GAAWjkE,WAC9EqkE,EAAQF,EAAkBD,EAE1B59E,EAASy2B,EAAMz2B,OACfg+E,EAAeL,EAAUvtD,SAASpwB,GAClCi+E,GAAqB,EACrBC,EAAkBH,EAAQ,EAC1BI,EAAkB,EAClBC,EAAqB,EACzB,EAAG,CACC,IAAKp+E,EACD,MAEJ,IAAIyxB,EAAKyqD,GAAmBF,EAAMh8E,GAASf,EAAWwyB,EAAG,GACrD4sD,EADoE5sD,EAAG,GAAeA,EAAG,GACnDosD,EAAkB5+E,GACxDA,GAAYo/E,IACRpC,GAAuBD,EAAMh8E,KAC7Bm+E,GAAmBE,EACnBD,GAAsBn/E,GAG9B,IAAImwF,EAAWpvF,EAAOgX,WAGtBhX,EAAUovF,GAAYA,EAAS9hE,WAAajtB,KAAKgvF,uBAAyBD,EAAS1gE,KAAO0gE,CAC9F,QAEEpR,GAAgBh+E,IAAWnU,SAAS8iC,MAEjCqvD,IAAiBL,EAAUvtD,SAASpwB,IAAW29E,IAAc39E,IAUlE,OARIk+E,GACkB/gF,KAAK89D,IAAIkjB,GAAmB,IAGxCD,GACY/gF,KAAK89D,IAAImjB,GAAsB,KAHjDH,GAAqB,GAMlBA,CACX,CCxBeK,CAAaZ,EAAe/+E,EAAQ83B,EAAyB,MAAlBinD,EAAwBjB,EAASC,EACvF,EAAG,IACC6B,EAAgBzqF,EAAMg/C,YAAY,SAAUjE,GAC5C,IAAIpY,EAAQoY,EACZ,GAAKguC,GAAU5vF,QAAU4vF,GAAUA,GAAU5vF,OAAS,KAAO+tF,EAA7D,CAIA,IAAI+C,EAAQ,WAAYtnD,EAAQ+lD,GAAW/lD,GAAS6lD,GAAW7lD,GAC3D+nD,EAAczB,EAAmBvhF,QAAQtJ,OAAO,SAAUzE,GAAK,OAAOA,EAAEqB,OAAS2nC,EAAMvqC,OAASuB,EAAEuS,SAAWy2B,EAAMz2B,QAAUy2B,EAAMz2B,SAAWvS,EAAE0hG,eA/EzI,SAAUh/F,EAAG8G,GAAK,OAAO9G,EAAE,KAAO8G,EAAE,IAAM9G,EAAE,KAAO8G,EAAE,EAAI,CA+EiGwnF,CAAahxF,EAAEswF,MAAOA,EAAQ,GAAG,GAEtM,GAAIS,GAAeA,EAAYE,OACvBjoD,EAAM04C,YACN14C,EAAMkoB,sBAKd,IAAK6/B,EAAa,CACd,IAAIG,GAAczB,EAAU1hF,QAAQ09E,QAAU,IACzCtjF,IAAI+mF,IACJzqF,OAAOgzD,SACPhzD,OAAO,SAAU0B,GAAQ,OAAOA,EAAKw8B,SAASqG,EAAMz2B,OAAS,IACjD2+E,EAAW1xF,OAAS,EAAImwF,EAAkB3mD,EAAOkoD,EAAW,KAAOzB,EAAU1hF,QAAQ29E,cAE9F1iD,EAAM04C,YACN14C,EAAMkoB,gBAGlB,CAtBA,CAuBJ,EAAG,IACCigC,EAAe9qF,EAAMg/C,YAAY,SAAUhkD,EAAMivF,EAAO/9E,EAAQ0+E,GAChE,IAAIjoD,EAAQ,CAAE3nC,KAAMA,EAAMivF,MAAOA,EAAO/9E,OAAQA,EAAQ0+E,OAAQA,EAAQyQ,aAAcD,GAAyBlvF,IAC/G+8E,EAAmBvhF,QAAQnC,KAAKo9B,GAChC9J,WAAW,WACPowD,EAAmBvhF,QAAUuhF,EAAmBvhF,QAAQtJ,OAAO,SAAUzE,GAAK,OAAOA,IAAMgpC,CAAO,EACtG,EAAG,EACP,EAAG,IACCooD,EAAmB/qF,EAAMg/C,YAAY,SAAUrc,GAC/CumD,EAAcxhF,QAAU8gF,GAAW7lD,GACnCwmD,EAAWzhF,aAAU/F,CACzB,EAAG,IACCqpF,EAAchrF,EAAMg/C,YAAY,SAAUrc,GAC1CmoD,EAAanoD,EAAMvqC,KAAMswF,GAAW/lD,GAAQA,EAAMz2B,OAAQo9E,EAAkB3mD,EAAOtlC,EAAMsoF,QAAQj+E,SACrG,EAAG,IACCujF,EAAkBjrF,EAAMg/C,YAAY,SAAUrc,GAC9CmoD,EAAanoD,EAAMvqC,KAAMowF,GAAW7lD,GAAQA,EAAMz2B,OAAQo9E,EAAkB3mD,EAAOtlC,EAAMsoF,QAAQj+E,SACrG,EAAG,IACH1H,EAAMy8C,UAAU,WAUZ,OATAssC,GAAUxjF,KAAK2hF,GACf7pF,EAAM2nF,aAAa,CACfH,gBAAiBmG,EACjBlG,eAAgBkG,EAChBjG,mBAAoBkG,IAExBlzF,SAAS6sC,iBAAiB,QAAS6lD,EAAe1C,IAClDhwF,SAAS6sC,iBAAiB,YAAa6lD,EAAe1C,IACtDhwF,SAAS6sC,iBAAiB,aAAcmmD,EAAkBhD,IACnD,WACHgB,GAAYA,GAAU3qF,OAAO,SAAU8sF,GAAQ,OAAOA,IAAShE,CAAO,GACtEnvF,SAAS+sC,oBAAoB,QAAS2lD,EAAe1C,IACrDhwF,SAAS+sC,oBAAoB,YAAa2lD,EAAe1C,IACzDhwF,SAAS+sC,oBAAoB,aAAcimD,EAAkBhD,GACjE,CACJ,EAAG,IACH,IAAI7C,EAAkB7nF,EAAM6nF,gBAAiBI,EAAQjoF,EAAMioF,MAC3D,OAAQtlF,EAAM7H,cAAc6H,EAAMW,SAAU,KACxC2kF,EAAQtlF,EAAM7H,cAAc+uF,EAAO,CAAE5b,OAAQwd,GAAcp5C,KAAS,KACpEw1C,EAAkBllF,EAAM7H,cAAcsvF,GAAiB,CAAEC,WAAYrqF,EAAMqqF,WAAYb,QAASxpF,EAAMwpF,UAAa,KAC3H,GEpJIsE,GAAoBnrF,EAAMm+C,WAAW,SAAU9gD,EAAOxF,GAAO,OAAQmI,EAAM7H,cAAcwsF,GAAchsF,EAAS,GAAI0E,EAAO,CAAExF,IAAKA,EAAKusF,QAASD,KAAc,GAClKgH,GAAkB9a,WAAasU,GAAatU,WCc5C,IAAImrB,GAAc,UACbC,IlBDL,SAA4B7oB,EAAWia,EAAyB,IAC9D,IAAIC,EAAkB,GAqBtB,MAAMpa,EAAc,KAClB,MAAMqa,EAAgBD,EAAgBhrF,IAAKkrF,GAClChtF,EAAM2qC,cAAcqiD,IAE7B,OAAO,SAAkB5uD,GACvB,MAAM8uD,EAAW9uD,IAAQw0C,IAAcma,EACvC,OAAO/sF,EAAMqoD,QACX,KAAA,CAAS,CAAC,UAAUuqB,KAAc,IAAKx0C,EAAOw0C,CAACA,GAAYsa,KAC3D,CAAC9uD,EAAO8uD,GAEZ,GAGF,OADAxa,EAAYE,UAAYA,EACjB,CAjCP,SAAwBua,EAAmBH,GACzC,MAAMI,EAAcptF,EAAM2qC,cAAcqiD,GAClCxgF,EAAQsgF,EAAgB3zF,OAC9B2zF,EAAkB,IAAIA,EAAiBE,GACvC,MAAMxrC,EAAYnkD,IAChB,MAAM+gC,MAAEA,EAAKrgC,SAAEA,KAAa6jD,GAAYvkD,EAClCgwF,EAAUjvD,IAAQw0C,KAAapmE,IAAU4gF,EACzC7wF,EAAQyD,EAAMqoD,QAAQ,IAAMzG,EAAShpD,OAAOywC,OAAOuY,IACzD,OAAuBhhD,EAAAA,IAAIysF,EAAQ7rC,SAAU,CAAEjlD,QAAOwB,cAUxD,OARAyjD,EAASzmD,YAAcoyF,EAAoB,WAQpC,CAAC3rC,EAPR,SAAqB+rC,EAAcnvD,GACjC,MAAMivD,EAAUjvD,IAAQw0C,KAAapmE,IAAU4gF,EACzCxrC,EAAU5hD,EAAM6qC,WAAWwiD,GACjC,GAAIzrC,EAAS,OAAOA,EACpB,QAAuB,IAAnBorC,EAA2B,OAAOA,EACtC,MAAM,IAAI/vF,MAAM,KAAKswF,6BAAwCJ,MAC/D,EAEF,EAcwB6J,GAAqBtkB,KAAgBma,GAC/D,CkBnC+C6O,CAAmBF,KAC7DG,GAAgBC,IAAoBH,GAAoBD,IAoCzDK,GAAe,gBACC77F,EAAMm+C,WACxB,CAAC9gD,EAAO63E,KACN,MAAMkZ,cAAEA,KAAkB0N,GAAiBz+F,EACrCukD,EAAUg6C,GAAiBC,GAAczN,GACzC2N,EAAqBhF,GAAgB7hB,EAActzB,EAAQmuC,YACjE,OAAuBnvF,EAAAA,IACrBs3F,GAAUjI,OACV,CACE73F,KAAM,SACN,gBAAiB,SACjB,gBAAiBwpD,EAAQ6sC,KACzB,gBAAiB7sC,EAAQovC,UACzB,aAAcgL,GAASp6C,EAAQ6sC,SAC5BqN,EACHjkG,IAAKkkG,EACL7vC,QAASuqC,GAAqBp5F,EAAM6uD,QAAStK,EAAQmwC,kBAK/Ch3F,YAAc8gG,GAC5B,IAAII,GAAc,gBACbC,GAAgBC,IAAoBV,GAAoBQ,GAAa,CACxElO,gBAAY,IAEVqO,GAAgB/+F,IAClB,MAAM+wF,cAAEA,EAAaL,WAAEA,EAAUhwF,SAAEA,EAAQw+D,UAAEA,GAAcl/D,EACrDukD,EAAUg6C,GAAiBK,GAAa7N,GAC9C,OAAuBxtF,EAAAA,IAAIs7F,GAAgB,CAAE99D,MAAOgwD,EAAeL,aAAYhwF,SAAUiC,EAAM8mD,SAAShlD,IAAI/D,EAAW0X,GAA0B7U,EAAAA,IAAI45F,GAAU,CAAExa,QAAS+N,GAAcnsC,EAAQ6sC,KAAM1wF,SAA0B6C,EAAAA,IAAIy7F,GAAiB,CAAEzlB,SAAS,EAAMra,YAAWx+D,SAAU0X,UAE7R2mF,GAAarhG,YAAckhG,GAC3B,IAAIK,GAAe,gBACfC,GAAgBv8F,EAAMm+C,WACxB,CAAC9gD,EAAO63E,KACN,MAAMiZ,EAAgBgO,GAAiBG,GAAcj/F,EAAM+wF,gBACrDL,WAAEA,EAAaI,EAAcJ,cAAeM,GAAiBhxF,EAC7DukD,EAAUg6C,GAAiBU,GAAcj/F,EAAM+wF,eACrD,OAAOxsC,EAAQ0sC,MAAwB1tF,MAAI45F,GAAU,CAAExa,QAAS+N,GAAcnsC,EAAQ6sC,KAAM1wF,SAA0B6C,MAAI47F,GAAmB,IAAKnO,EAAcx2F,IAAKq9E,MAAqB,OAG9LqnB,GAAcxhG,YAAcuhG,GAC5B,IAAInE,GAAOf,GAAW,8BAClBoF,GAAoBx8F,EAAMm+C,WAC5B,CAAC9gD,EAAO63E,KACN,MAAMkZ,cAAEA,KAAkBC,GAAiBhxF,EACrCukD,EAAUg6C,GAAiBU,GAAclO,GAC/C,OAGkBxtF,EAAAA,IAAI+jF,GAAc,CAAEp7E,GAAI4uF,GAAM5S,gBAAgB,EAAMH,OAAQ,CAACxjC,EAAQktC,YAAa/wF,SAA0B6C,EAAAA,IAC1Hs3F,GAAUhmC,IACV,CACE,aAAc8pC,GAASp6C,EAAQ6sC,SAC5BJ,EACHx2F,IAAKq9E,EACLh9E,MAAO,CAAEynD,cAAe,UAAW0uC,EAAan2F,aAMtDukG,GAAe,gBACfC,GAAgB18F,EAAMm+C,WACxB,CAAC9gD,EAAO63E,KACN,MAAMiZ,EAAgBgO,GAAiBM,GAAcp/F,EAAM+wF,gBACrDL,WAAEA,EAAaI,EAAcJ,cAAeoB,GAAiB9xF,EAC7DukD,EAAUg6C,GAAiBa,GAAcp/F,EAAM+wF,eACrD,OAAuBxtF,MAAI45F,GAAU,CAAExa,QAAS+N,GAAcnsC,EAAQ6sC,KAAM1wF,SAAU6jD,EAAQ0sC,MAAwB1tF,EAAAA,IAAI+7F,GAAoB,IAAKxN,EAAct3F,IAAKq9E,IAAkCt0E,EAAAA,IAAIg8F,GAAuB,IAAKzN,EAAct3F,IAAKq9E,QAG/PwnB,GAAc3hG,YAAc0hG,GAC5B,IAAIE,GAAqB38F,EAAMm+C,WAC7B,CAAC9gD,EAAO63E,KACN,MAAMtzB,EAAUg6C,GAAiBa,GAAcp/F,EAAM+wF,eAC/CU,EAAa9uF,EAAM88C,OAAO,MAC1B27B,EAAese,GAAgB7hB,EAActzB,EAAQktC,WAAYA,GAKvE,OAJA9uF,EAAMy8C,UAAU,KACd,MAAM6gB,EAAUwxB,EAAWpnF,QAC3B,GAAI41D,EAAS,OAAOkvB,GAAWlvB,IAC9B,IACoB18D,EAAAA,IACrBi8F,GACA,IACKx/F,EACHxF,IAAK4gF,EACLkX,UAAW/tC,EAAQ6sC,KACnB3W,6BAA6B,EAC7B8X,iBAAkB6G,GAAqBp5F,EAAMuyF,iBAAmBjtD,IAC9DA,EAAMkoB,iBACNjJ,EAAQmuC,WAAWroF,SAASsL,UAE9BglE,qBAAsBye,GAAqBp5F,EAAM26E,qBAAuBr1C,IACtE,MAAM62C,EAAgB72C,EAAMgD,OAAO6zC,cAC7BwW,EAAyC,IAAzBxW,EAAcyW,SAA0C,IAA1BzW,EAAczU,SACpB,IAAzByU,EAAcyW,QAAgBD,IACjCrtD,EAAMkoB,mBAE1BotB,eAAgBwe,GACdp5F,EAAM46E,eACLt1C,GAAUA,EAAMkoB,sBAMvB+xC,GAAwB58F,EAAMm+C,WAChC,CAAC9gD,EAAO63E,KACN,MAAMtzB,EAAUg6C,GAAiBa,GAAcp/F,EAAM+wF,eAC/C8B,EAA0BlwF,EAAM88C,QAAO,GACvCggD,EAA2B98F,EAAM88C,QAAO,GAC9C,OAAuBl8C,EAAAA,IACrBi8F,GACA,IACKx/F,EACHxF,IAAKq9E,EACLya,WAAW,EACX7X,6BAA6B,EAC7B8X,iBAAmBjtD,IACjBtlC,EAAMuyF,mBAAmBjtD,GACpBA,EAAM2rB,mBACJ4hC,EAAwBxoF,SAASk6C,EAAQmuC,WAAWroF,SAASsL,QAClE2vB,EAAMkoB,kBAERqlC,EAAwBxoF,SAAU,EAClCo1F,EAAyBp1F,SAAU,GAErCwwE,kBAAoBv1C,IAClBtlC,EAAM66E,oBAAoBv1C,GACrBA,EAAM2rB,mBACT4hC,EAAwBxoF,SAAU,EACM,gBAApCi7B,EAAMgD,OAAO6zC,cAAcphF,OAC7B0kG,EAAyBp1F,SAAU,IAGvC,MAAMwE,EAASy2B,EAAMz2B,OACf6wF,EAAkBn7C,EAAQmuC,WAAWroF,SAAS40B,SAASpwB,GACzD6wF,GAAiBp6D,EAAMkoB,iBACa,YAApCloB,EAAMgD,OAAO6zC,cAAcphF,MAAsB0kG,EAAyBp1F,SAC5Ei7B,EAAMkoB,sBAOdgyC,GAAoB78F,EAAMm+C,WAC5B,CAAC9gD,EAAO63E,KACN,MAAMkZ,cAAEA,EAAauB,UAAEA,EAASY,gBAAEA,EAAeX,iBAAEA,KAAqBT,GAAiB9xF,EACnFukD,EAAUg6C,GAAiBa,GAAcrO,GACzCU,EAAa9uF,EAAM88C,OAAO,MAC1B27B,EAAese,GAAgB7hB,EAAc4Z,GAEnD,ORxMF9uF,EAAMy8C,UAAU,KACd,MAAMk0C,EAAa54F,SAASq7C,iBAAiB,4BAI7C,OAHAr7C,SAAS8iC,KAAK+1D,sBAAsB,aAAcD,EAAW,IAAMsK,MACnEljG,SAAS8iC,KAAK+1D,sBAAsB,YAAaD,EAAW,IAAMsK,MAClEzyB,KACO,KACS,IAAVA,IACFzwE,SAASq7C,iBAAiB,4BAA4B9wC,QAASxC,GAASA,EAAK69E,UAE/EnV,OAED,IQ6LsBznE,EAAAA,KAAKJ,WAAU,CAAE5C,SAAU,CAChC6C,EAAAA,IACd64F,GACA,CACE7iB,SAAS,EACTiF,MAAM,EACNC,QAAS6T,EACT5T,iBAAkBwU,EAClBtU,mBAAoB2T,EACpB7xF,SAA0B6C,EAAAA,IACxB83F,GACA,CACEttC,KAAM,SACN1b,GAAIkS,EAAQovC,UACZ,mBAAoBpvC,EAAQqvC,cAC5B,kBAAmBrvC,EAAQsvC,QAC3B,aAAc8K,GAASp6C,EAAQ6sC,SAC5BU,EACHt3F,IAAK4gF,EACLN,UAAW,IAAMv2B,EAAQuvC,cAAa,OAK9BpwF,OAAKJ,EAAAA,SAAU,CAAE5C,SAAU,CACzB6C,EAAAA,IAAIo8F,GAAc,CAAE9L,QAAStvC,EAAQsvC,UACrCtwF,EAAAA,IAAIq8F,GAAoB,CAAEnO,aAAYmC,cAAervC,EAAQqvC,wBAKjFiM,GAAa,cACbC,GAAcn9F,EAAMm+C,WACtB,CAAC9gD,EAAO63E,KACN,MAAMkZ,cAAEA,KAAkBgP,GAAe//F,EACnCukD,EAAUg6C,GAAiBsB,GAAY9O,GAC7C,OAAuBxtF,MAAIs3F,GAAUmF,GAAI,CAAE3tD,GAAIkS,EAAQsvC,WAAYkM,EAAYvlG,IAAKq9E,MAGxFioB,GAAYpiG,YAAcmiG,GAC1B,IAAII,GAAmB,oBACnBC,GAAoBv9F,EAAMm+C,WAC5B,CAAC9gD,EAAO63E,KACN,MAAMkZ,cAAEA,KAAkBoP,GAAqBngG,EACzCukD,EAAUg6C,GAAiB0B,GAAkBlP,GACnD,OAAuBxtF,MAAIs3F,GAAU9+F,EAAG,CAAEs2C,GAAIkS,EAAQqvC,iBAAkBuM,EAAkB3lG,IAAKq9E,MAGnGqoB,GAAkBxiG,YAAcuiG,GAChC,IAAIG,GAAa,cACbC,GAAc19F,EAAMm+C,WACtB,CAAC9gD,EAAO63E,KACN,MAAMkZ,cAAEA,KAAkBuP,GAAetgG,EACnCukD,EAAUg6C,GAAiB6B,GAAYrP,GAC7C,OAAuBxtF,EAAAA,IACrBs3F,GAAUjI,OACV,CACE73F,KAAM,YACHulG,EACH9lG,IAAKq9E,EACLhpB,QAASuqC,GAAqBp5F,EAAM6uD,QAAS,IAAMtK,EAAQuvC,cAAa,QAMhF,SAAS6K,GAASvN,GAChB,OAAOA,EAAO,OAAS,QACzB,CAHAiP,GAAY3iG,YAAc0iG,GAI1B,IAAIG,GAAqB,sBACpBC,GAAiBC,IlBrRtB,SAAwB3Q,EAAmBH,GACzC,MAAMK,EAAUrtF,EAAM2qC,cAAcqiD,GAC9BxrC,EAAYnkD,IAChB,MAAMU,SAAEA,KAAa6jD,GAAYvkD,EAC3Bd,EAAQyD,EAAMqoD,QAAQ,IAAMzG,EAAShpD,OAAOywC,OAAOuY,IACzD,OAAuBhhD,EAAAA,IAAIysF,EAAQ7rC,SAAU,CAAEjlD,QAAOwB,cASxD,OAPAyjD,EAASzmD,YAAcoyF,EAAoB,WAOpC,CAAC3rC,EANR,SAAqB+rC,GACnB,MAAM3rC,EAAU5hD,EAAM6qC,WAAWwiD,GACjC,GAAIzrC,EAAS,OAAOA,EACpB,QAAuB,IAAnBorC,EAA2B,OAAOA,EACtC,MAAM,IAAI/vF,MAAM,KAAKswF,6BAAwCJ,MAC/D,EAEF,CkBsQ2CxiD,CAAcizD,GAAoB,CAC3EtM,YAAamL,GACblL,UAAW2L,GACX1L,SAAU,WAERwL,GAAe,EAAG9L,cACpB,MAAM6M,EAAsBD,GAAkBF,IACxCI,EAAU,KAAKD,EAAoBzM,8BAA8ByM,EAAoBxM,wGAEjEwM,EAAoBxM,gJAE4BwM,EAAoBvM,WAO9F,OANAxxF,EAAMy8C,UAAU,KACd,GAAIy0C,EAAS,CACMn5F,SAASkmG,eAAe/M,IAC1B11F,QAAQC,MAAMuiG,EAC/B,GACC,CAACA,EAAS9M,IACN,MAGL+L,GAAqB,EAAGnO,aAAYmC,oBACtC,MACM+M,EAAU,6EADkBF,GAFL,4BAG0FxM,gBAQvH,OAPAtxF,EAAMy8C,UAAU,KACd,MAAMyhD,EAAgBpP,EAAWpnF,SAAS4mC,aAAa,oBACvD,GAAI2iD,GAAiBiN,EAAe,CACXnmG,SAASkmG,eAAehN,IAC1Bz1F,QAAQ2iG,KAAKH,EACpC,GACC,CAACA,EAASlP,EAAYmC,IAClB,MAIL1f,GAAS6qB,GACTgC,GAAU7B,GACV8B,GAAU3B,GACV4B,GAAQnB,GACRoB,GAAchB,GACdiB,GAAQd,GC5TRe,GAAoB,CACtBC,MAAO,6BACP3jE,MAAO,GACP/W,OAAQ,GACR26E,QAAS,YACTl+B,KAAM,OACNC,OAAQ,eACRwN,YAAa,EACb0wB,cAAe,QACfC,eAAgB,SCNlB,MAAMC,GAAeloF,GAAWA,EAAO2e,QAAQ,qBAAsB,SAAS8U,cCDxEznC,GDEmB,EAACm8F,EAAUC,KAClC,MAAM15C,EAAYnH,EAAAA,WAChB,EAAG2C,QAAQ,eAAgBhiB,OAAO,GAAIovC,cAAc,EAAG+wB,sBAAqBlhG,cAAa8V,GAAQhc,IAAQM,EAAAA,cACvG,MACA,CACEN,SACG4mG,GACH1jE,MAAO+D,EACP9a,OAAQ8a,EACR4hC,OAAQ5f,EACRotB,YAAa+wB,EAA4C,GAAtBj5F,OAAOkoE,GAAoBloE,OAAO84B,GAAQovC,EAC7E5Z,UAAW,iBAAiBwqC,GAAYC,QACrClrF,GAEL,IACKmrF,EAASl9F,IAAI,EAAEvG,EAAK2jG,KAAW/mG,EAAAA,cAAcoD,EAAK2jG,QACjD7kG,MAAM+F,QAAQrC,GAAYA,EAAW,CAACA,KAAc,MAK9D,OADAunD,EAAUvqD,YAAc,GAAGgkG,IACpBz5C,GCvBC65C,CAAiB,IAAK,CAC9B,CAAC,OAAQ,CAAEj8F,EAAG,aAActE,IAAK,WACjC,CAAC,OAAQ,CAAEsE,EAAG,aAActE,IAAK,aCE7Bw9F,GAAgBz+D,QAAA22B,UACpBA,EAASv2D,SACTA,GAAQ4/B,EACLtgC,EAAK3D,EAAAikC,EAHY,0BAI4C,OAChE2nC,EAAAA,IAAC85B,GAAsBxmG,OAAAC,OAAA,GAAKwE,YAC1BioE,EAAAA,IAAA,MAAA,CAAKhR,UAAW8M,GAAG9M,GAAUv2D,SAAGA,QAIpCq+F,GAAarhG,YAAcqkG,GAAuBrkG,YAElD,MAAMwhG,GAAgBv8F,EAAMm+C,WAG1B,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eAAiC,OAClC2nC,EAAAA,IAAC+5B,GAAuBzmG,OAAAC,OAAA,CACtBhB,IAAKA,EACLy8D,UAAW8M,GACT,+KACA9M,IAEEj3D,MAGRk/F,GAAcxhG,YAAcskG,GAAwBtkG,YAE9BiF,EAAMm+C,WAG1B,CAACxgB,EAAmC9lC,SAAnCy8D,UAAEA,EAASv2D,SAAEA,GAAQ4/B,EAAKtgC,EAAK3D,EAAAikC,EAA/B,0BAA2C,OAC5C2hE,OAAClD,GAAY,CAAAr+F,SAAA,CACXunE,EAAAA,IAACi3B,GAAa,IACd+C,OAACC,GAAuB3mG,OAAAC,OAAA,CACtBhB,IAAKA,EACLy8D,UAAW8M,GACT,wgBACA9M,IAEEj3D,EAAK,CAAAU,SAAA,CAERA,EACDuhG,EAAAA,KAACE,GAAqB,CAAClrC,UAAU,gRAA+Qv2D,SAAA,CAC9SunE,EAAAA,IAAC1iE,GAAC,CAAC0xD,UAAU,YACbgR,MAAA,OAAA,CAAMhR,UAAU,UAASv2D,SAAA,sBAKnBhD,YAAcwkG,GAAwBxkG,YAehCiF,EAAMm+C,WAGxB,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eAAiC,OAClC2nC,EAAAA,IAACm6B,GAAqB7mG,OAAAC,OAAA,CACpBhB,IAAKA,EACLy8D,UAAW8M,GAAG,oDAAqD9M,IAC/Dj3D,MAGItC,YAAc0kG,GAAsB1kG,YAEtBiF,EAAMm+C,WAG9B,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eAAiC,OAClC2nC,EAAAA,IAACo6B,GAA2B9mG,OAAAC,OAAA,CAC1BhB,IAAKA,EACLy8D,UAAW8M,GAAG,gCAAiC9M,IAC3Cj3D,MAGUtC,YAAc2kG,GAA4B3kG,YC1F5D,MAAM4kG,GAAU3/F,EAAMm+C,WAGpB,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eAAiC,OAClC2nC,EAAAA,IAACs6B,GAAgBhnG,OAAAC,OAAA,CACfhB,IAAKA,EACLy8D,UAAW8M,GACT,4FACA9M,IAEEj3D,MAGRsiG,GAAQ5kG,YAAc6kG,GAAiB7kG,YAgBvC,MAAM8kG,GAAe7/F,EAAMm+C,WAGzB,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eAAiC,OAClC2nC,MAAA,MAAA,CAAKhR,UAAU,kCAAiC,qBAAoB,GAAEv2D,SAEpEunE,MAACs6B,GAAiB7J,qBAChBl+F,IAAKA,EACLy8D,UAAW8M,GACT,yJACA9M,IAEEj3D,QAKVwiG,GAAa9kG,YAAc6kG,GAAiB7J,MAAMh7F,YAElD,MAAM+kG,GAAc9/F,EAAMm+C,WAGxB,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eAAiC,OAClC2nC,EAAAA,IAACs6B,GAAiB/J,KAAIj9F,OAAAC,OAAA,CACpBhB,IAAKA,EACLy8D,UAAW8M,GAAG,uDAAwD9M,IAClEj3D,MAIRyiG,GAAY/kG,YAAc6kG,GAAiB/J,KAAK96F,YAEhD,MAAMglG,GAAe//F,EAAMm+C,WAGzB,CAAC9gD,EAAOxF,IACRytE,EAAAA,IAACs6B,GAAiBzJ,MAAKv9F,OAAAC,OAAA,CAAChB,IAAKA,EAAKy8D,UAAU,4BAA+Bj3D,KAG7E0iG,GAAahlG,YAAc6kG,GAAiBzJ,MAAMp7F,YAElD,MAAMilG,GAAehgG,EAAMm+C,WAGzB,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eAAiC,OAClC2nC,EAAAA,IAACs6B,GAAiB5J,MAAKp9F,OAAAC,OAAA,CACrBhB,IAAKA,EACLy8D,UAAW8M,GACT,yNACA9M,IAEEj3D,MAIR2iG,GAAajlG,YAAc6kG,GAAiB5J,MAAMj7F,YAElD,MAAMklG,GAAmBjgG,EAAMm+C,WAG7B,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eAAiC,OAClC2nC,EAAAA,IAACs6B,GAAiB3J,UAASr9F,OAAAC,OAAA,CACzBhB,IAAKA,EACLy8D,UAAW8M,GAAG,uBAAwB9M,IAClCj3D,MAGR4iG,GAAiBllG,YAAc6kG,GAAiB3J,UAAUl7F,YAE1D,MAAMmlG,GAAclgG,EAAMm+C,WAGxB,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eAAiC,OAClC2nC,EAAAA,IAACs6B,GAAiB9J,KAAIl9F,OAAAC,OAAA,CACpBhB,IAAKA,EACLy8D,UAAW8M,GACT,oNACA9M,IAEEj3D,MC3FF,SAAU8iG,GAAgB9iG,GAC9B,MAAO+iG,EAAeC,GAAoBrjD,EAAAA,SAAiB,IAE3D,OACEsiD,EAAAA,KAACK,GAAO,CACNrrC,UAAU,8BACV/3D,MAAO6jG,EACPpN,cAAgBz2F,IACd8jG,EAAiB9jG,IAEnB6B,OAAQ,CAAC7B,EAAOijB,IAEW,KAArBniB,EAAMijG,YAGN/jG,EAAMm3C,WAAWr2C,EAAMijG,YAHS,EAM7B,YAGTh7B,EAAAA,IAACu6B,IACCtjG,MAAOc,EAAMijG,WACbhsC,UAAU,sBACV5U,YAAY,4BAEd4/C,EAAAA,KAACQ,GAAW,CAAA/hG,SAAA,CACVunE,EAAAA,IAACy6B,GAAY,CAAAhiG,SAAA,sBAEbunE,EAAAA,IAAC06B,GAAY,CAACtL,QAAQ,+BACnBr3F,EAAMkjG,eAAez+F,IAAK0+F,GAEvBl7B,EAAAA,IAAC46B,GAAW,CAEV3jG,MAAOikG,EAAYxlG,KACnBu5F,SAAWh4F,IACTc,EAAMojG,eAAeD,IACtBziG,SAEDuhG,EAAAA,KAAA,MAAA,CAAKhrC,UAAU,oDACbgR,EAAAA,IAACo7B,GAAI,CAAC3lE,MAAM,OAAO/W,OAAO,OAAMjmB,SAC9BunE,EAAAA,IAAA,MAAA,CACEq7B,IAAKH,EAAYI,aACjBv6D,IAAKm6D,EAAYK,kBACjBvsC,UAAU,oBAGbksC,EAAYxlG,SAdV,QAAQwlG,EAAYK,qBAAqBL,EAAYxlG,WAwClEsqE,MAAC26B,GAAgB,CAAA,QAIzB,CAEM,SAAUS,IAAK3iG,SACnBA,EAAQg9B,MACRA,EAAK/W,OACLA,IAMA,OACEshD,EAAAA,WAAKhR,UAAU,mCAAmCp8D,MAAO,CAAE6iC,MAAOA,EAAO/W,OAAQA,GAAQjmB,SACtFA,GAGP,CDEAmiG,GAAYnlG,YAAc6kG,GAAiB9J,KAAK/6F,YElHhD,IAAImB,GAAkBU,OAAOsD,IAAI,cAC7B4gG,GAAM9gG,EAAM,QAAQwxD,OAAOjwD,YAI/B,SAASw/F,GAAgBlvF,GACvB,OAAkB,MAAXA,GAAsC,iBAAZA,GAAwB,aAAcA,GAAWA,EAAQhX,WAAaqB,IAAmB,aAAc2V,IAHhH,iBADHtV,EAI4IsV,EAAQ1V,WAH3H,OAAVI,GAAkB,SAAUA,GADlE,IAAuBA,CAKvB,CAEA,SAAS66F,GAAWC,GAClB,MAAMC,EAA4BC,GAAgBF,GAC5CG,EAAQx3F,EAAMm+C,WAAW,CAAC9gD,EAAO63E,KACrC,IAAIn3E,SAAEA,KAAao3E,GAAc93E,EAC7B0jG,GAAgBhjG,IAA4B,mBAAR+iG,KACtC/iG,EAAW+iG,GAAI/iG,EAAS5B,WAE1B,MAAMi5E,EAAgBp1E,EAAM8mD,SAASwuB,QAAQv3E,GACvCw3E,EAAYH,EAAc9lC,KAAKmoD,IACrC,GAAIliB,EAAW,CACb,MAAME,EAAaF,EAAUl4E,MAAMU,SAC7B23E,EAAcN,EAActzE,IAAK2T,GACjCA,IAAU8/D,EACRv1E,EAAM8mD,SAAS0hB,MAAMiN,GAAc,EAAUz1E,EAAM8mD,SAAS6uB,KAAK,MAC9D31E,EAAM03F,eAAejiB,GAAcA,EAAWp4E,MAAMU,SAAW,KAE/D0X,GAGX,OAAuB7U,EAAAA,IAAI02F,EAAW,IAAKniB,EAAWt9E,IAAKq9E,EAAcn3E,SAAUiC,EAAM03F,eAAejiB,GAAcz1E,EAAM4lF,aAAanQ,OAAY,EAAQC,GAAe,MAC9K,CACA,OAAuB90E,EAAAA,IAAI02F,EAAW,IAAKniB,EAAWt9E,IAAKq9E,EAAcn3E,eAG3E,OADAy5F,EAAMz8F,YAAc,GAAGs8F,SAChBG,CACT,CACA,IAAIW,GAAuBf,GAAW,QAEtC,SAASG,GAAgBF,GACvB,MAAMC,EAAYt3F,EAAMm+C,WAAW,CAAC9gD,EAAO63E,KACzC,IAAIn3E,SAAEA,KAAao3E,GAAc93E,EAIjC,GAHI0jG,GAAgBhjG,IAA4B,mBAAR+iG,KACtC/iG,EAAW+iG,GAAI/iG,EAAS5B,WAEtB6D,EAAM03F,eAAe35F,GAAW,CAClC,MAAM45F,EAkDZ,SAAuB9lF,GACrB,IAAIrT,EAAS5F,OAAO6F,yBAAyBoT,EAAQxU,MAAO,QAAQqB,IAChEk5F,EAAUp5F,GAAU,mBAAoBA,GAAUA,EAAOG,eAC7D,GAAIi5F,EACF,OAAO/lF,EAAQha,IAIjB,GAFA2G,EAAS5F,OAAO6F,yBAAyBoT,EAAS,QAAQnT,IAC1Dk5F,EAAUp5F,GAAU,mBAAoBA,GAAUA,EAAOG,eACrDi5F,EACF,OAAO/lF,EAAQxU,MAAMxF,IAEvB,OAAOga,EAAQxU,MAAMxF,KAAOga,EAAQha,GACtC,CA9D0BggG,CAAc95F,GAC5B+5F,EAyBZ,SAAoB3iB,EAAWkB,GAC7B,MAAMC,EAAgB,IAAKD,GAC3B,IAAK,MAAMv3E,KAAYu3E,EAAY,CACjC,MAAME,EAAgBpB,EAAUr2E,GAC1B03E,EAAiBH,EAAWv3E,GAChB,WAAWqf,KAAKrf,GAE5By3E,GAAiBC,EACnBF,EAAcx3E,GAAY,IAAImmB,KAC5B,MAAMpW,EAAS2nE,KAAkBvxD,GAEjC,OADAsxD,KAAiBtxD,GACVpW,GAEA0nE,IACTD,EAAcx3E,GAAYy3E,GAEN,UAAbz3E,EACTw3E,EAAcx3E,GAAY,IAAKy3E,KAAkBC,GAC3B,cAAb13E,IACTw3E,EAAcx3E,GAAY,CAACy3E,EAAeC,GAAgBp4E,OAAOgzD,SAAS9yD,KAAK,KAEnF,CACA,MAAO,IAAK62E,KAAcmB,EAC5B,CAhDqByhB,CAAW5iB,EAAWp3E,EAASV,OAI9C,OAHIU,EAAS3F,OAAS4H,EAAMW,WAC1Bm3F,EAAOjgG,IAAMq9E,EAAeyhB,GAAYzhB,EAAcyiB,GAAeA,GAEhE33F,EAAM4lF,aAAa7nF,EAAU+5F,EACtC,CACA,OAAO93F,EAAM8mD,SAAS0hB,MAAMzqE,GAAY,EAAIiC,EAAM8mD,SAAS6uB,KAAK,MAAQ,OAG1E,OADA2hB,EAAUv8F,YAAc,GAAGs8F,cACpBC,CACT,CACA,IAAIU,GAAuBp7F,OAAO,mBAWlC,SAAS66F,GAAYhiF,GACnB,OAAOzV,EAAM03F,eAAejiF,IAAgC,mBAAfA,EAAMrd,MAAuB,cAAeqd,EAAMrd,MAAQqd,EAAMrd,KAAK6/F,YAAcD,EAClI,CCxEA,MAAMgJ,GAAiBzkG,GAAyB,kBAAVA,EAAsB,GAAGhC,OAAOgC,GAAmB,IAAVA,EAAc,IAAMA,EACtFw0E,GAAK5P,GACL8/B,GAAM,CAACC,EAAM3jG,IACdF,IACJ,IAAIxF,EACJ,GAAyE,OAApE0F,aAAuC,EAASA,EAAO4jG,UAAmB,OAAOpwB,GAAGmwB,EAAM7jG,aAAqC,EAASA,EAAM+jG,MAAO/jG,aAAqC,EAASA,EAAMi3D,WAC9M,MAAM6sC,SAAEA,kBAAWE,GAAqB9jG,EAClC+jG,EAAuB1oG,OAAOuF,KAAKgjG,GAAUr/F,IAAKy/F,IACpD,MAAMC,EAAcnkG,aAAqC,EAASA,EAAMkkG,GAClEE,EAAqBJ,aAAyD,EAASA,EAAgBE,GAC7G,GAAoB,OAAhBC,EAAsB,OAAO,KACjC,MAAME,EAAaV,GAAcQ,IAAgBR,GAAcS,GAC/D,OAAON,EAASI,GAASG,KAEvBC,EAAwBtkG,GAASzE,OAAOmpC,QAAQ1kC,GAAO45C,OAAO,CAAC2qD,EAAKC,KACtE,IAAKjjG,EAAKrC,GAASslG,EACnB,YAAclgG,IAAVpF,IAGJqlG,EAAIhjG,GAAOrC,GAFAqlG,GAIZ,CAAA,GACGE,EAA+BvkG,SAAoF,QAAnC1F,EAAM0F,EAAOwkG,wBAAsC,IAARlqG,OAArD,EAA+EA,EAAIo/C,OAAO,CAAC2qD,EAAKI,KACxK,IAAMZ,MAAOa,EAAU3tC,UAAW4tC,KAAiBC,GAA2BH,EAC9E,OAAOppG,OAAOmpC,QAAQogE,GAAwBt4F,MAAOg4F,IACjD,IAAKjjG,EAAKrC,GAASslG,EACnB,OAAOxnG,MAAM+F,QAAQ7D,GAASA,EAAM4W,SAAS,IACtCkuF,KACAM,GACL/iG,IAAQ,IACHyiG,KACAM,GACJ/iG,KAASrC,IACX,IACEqlG,EACHK,EACAC,GACAN,GACL,IACH,OAAO7wB,GAAGmwB,EAAMI,EAAsBQ,EAA8BzkG,aAAqC,EAASA,EAAM+jG,MAAO/jG,aAAqC,EAASA,EAAMi3D,YClCrL8tC,GAAiBnB,GACrB,uQACA,CACEE,SAAU,CACRI,QAAS,CACPh3D,QAAS,yDACT83D,YAAa,qEACbthD,QAAS,iFACTuhD,UAAW,+DACXC,MAAO,+CACPC,KAAM,mDAER1jE,KAAM,CACJyL,QAAS,iBACTk4D,GAAI,sBACJC,GAAI,uBACJC,KAAM,cAGVtB,gBAAiB,CACfE,QAAS,UACTziE,KAAM,aAWN8jE,GAAS5iG,EAAMm+C,WACnB,CAACxgB,EAAyD9lC,KAAzD,IAAAy8D,UAAEA,EAASitC,QAAEA,EAAOziE,KAAEA,EAAI83C,QAAEA,GAAU,GAAKj5C,EAAKtgC,EAAK3D,EAAAikC,EAArD,0CACC,MAAMm5C,EAAOF,EAAUuhB,GAAO,SAC9B,OACE7yB,EAAAA,IAACwR,EAAIl+E,OAAAC,OAAA,CAACy7D,UAAW8M,GAAGghC,GAAe,CAAEb,UAASziE,OAAMw1B,eAAez8D,IAAKA,GAASwF,MAIvFulG,GAAO7nG,YAAc,SCzCrB,IAmBIm9F,GAnBQ,CACV,IACA,SACA,MACA,OACA,KACA,KACA,MACA,QACA,QACA,KACA,MACA,KACA,IACA,SACA,OACA,MACA,MAEoBjhD,OAAO,CAACy/B,EAAW52E,KACvC,MAAMq4F,EAAOf,GAAW,aAAat3F,KAC/ByM,EAAOvM,EAAMm+C,WAAW,CAAC9gD,EAAO63E,KACpC,MAAM0B,QAAEA,KAAYC,GAAmBx5E,EACjCy5E,EAAOF,EAAUuhB,EAAOr4F,EAI9B,MAHsB,oBAAXq6B,SACTA,OAAOv9B,OAAOsD,IAAI,cAAe,GAEZU,EAAAA,IAAIk2E,EAAM,IAAKD,EAAgBh/E,IAAKq9E,MAG7D,OADA3oE,EAAKxR,YAAc,aAAa+E,IACzB,IAAK42E,EAAW52E,CAACA,GAAOyM,IAC9B,IC7BCs2F,GAAQ7iG,EAAMm+C,WAAW,CAAC9gD,EAAO63E,IACZt0E,EAAAA,IACrBs3F,GAAU59B,MACV,IACKj9D,EACHxF,IAAKq9E,EACL4tB,YAAcngE,IACGA,EAAMz2B,OACV8lC,QAAQ,qCACnB30C,EAAMylG,cAAcngE,IACfA,EAAM2rB,kBAAoB3rB,EAAMgD,OAAS,GAAGhD,EAAMkoB,sBAK/Dg4C,GAAM9nG,YAhBK,QAiBX,IAAIgoG,GAAOF,GCjBX,MAAMG,GAAgB/B,GACpB,8FAGI4B,GAAQ7iG,EAAMm+C,WAGlB,CAACxgB,EAAyB9lC,KAAzB,IAAAy8D,UAAEA,GAAS32B,EAAKtgC,EAAK3D,EAAAikC,EAArB,eAAiC,OAClC2nC,EAAAA,IAAC29B,GAAmBrqG,OAAAC,OAAA,CAAChB,IAAKA,EAAKy8D,UAAW8M,GAAG4hC,KAAiB1uC,IAAgBj3D,MCdhF,SAASoV,GAA8B7Q,EAAGjI,GACxC,GAAI,MAAQiI,EAAG,MAAO,CAAA,EACtB,IAAI9I,EAAI,CAAA,EACR,IAAK,IAAIG,KAAK2I,EAAG,GAAI,CAAA,EAAGtI,eAAeC,KAAKqI,EAAG3I,GAAI,CACjD,QAAWU,EAAEC,QAAQX,GAAI,SACzBH,EAAEG,GAAK2I,EAAE3I,EACX,CACA,OAAOH,CACT,CDQA+pG,GAAM9nG,YAAckoG,GAAoBloG;;;;;;;;oCEdX,eAAzBN,QAAQC,IAAIC,SACduoG,GAAAjiG,wCCMW,IAAIuC,EAAE,mBAAoB5G,QAAQA,OAAOsD,IAAIsE,EAAEhB,EAAE5G,OAAOsD,IAAI,iBAAiB,MAAMgD,EAAEM,EAAE5G,OAAOsD,IAAI,gBAAgB,MAAMvG,EAAE6J,EAAE5G,OAAOsD,IAAI,kBAAkB,MAAMuC,EAAEe,EAAE5G,OAAOsD,IAAI,qBAAqB,MAAM2D,EAAEL,EAAE5G,OAAOsD,IAAI,kBAAkB,MAAMoD,EAAEE,EAAE5G,OAAOsD,IAAI,kBAAkB,MAAM7B,EAAEmF,EAAE5G,OAAOsD,IAAI,iBAAiB,MAAM9F,EAAEoJ,EAAE5G,OAAOsD,IAAI,oBAAoB,MAAM+D,EAAET,EAAE5G,OAAOsD,IAAI,yBAAyB,MAAMjH,EAAEuK,EAAE5G,OAAOsD,IAAI,qBAAqB,MAAM9G,EAAEoK,EAAE5G,OAAOsD,IAAI,kBAAkB,MAAM4C,EAAEU,EACpf5G,OAAOsD,IAAI,uBAAuB,MAAM0B,EAAE4B,EAAE5G,OAAOsD,IAAI,cAAc,MAAMpH,EAAE0K,EAAE5G,OAAOsD,IAAI,cAAc,MAAMkC,EAAEoB,EAAE5G,OAAOsD,IAAI,eAAe,MAAM8D,EAAER,EAAE5G,OAAOsD,IAAI,qBAAqB,MAAM7D,EAAEmH,EAAE5G,OAAOsD,IAAI,mBAAmB,MAAMiD,EAAEK,EAAE5G,OAAOsD,IAAI,eAAe,MAClQ,SAASyE,EAAEL,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAI/B,EAAE+B,EAAEzJ,SAAS,OAAO0H,GAAG,KAAKiC,EAAE,OAAOF,EAAEA,EAAElM,MAAQ,KAAKgC,EAAE,KAAK6J,EAAE,KAAKtK,EAAE,KAAKkK,EAAE,KAAKpB,EAAE,KAAKrJ,EAAE,OAAOkL,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEzJ,UAAY,KAAKwD,EAAE,KAAKpF,EAAE,KAAKH,EAAE,KAAK8I,EAAE,KAAK0B,EAAE,OAAOgB,EAAE,QAAQ,OAAO/B,GAAG,KAAKW,EAAE,OAAOX,EAAE,CAAC,CAAC,SAAS3C,EAAE0E,GAAG,OAAOK,EAAEL,KAAKL,CAAC,QAACk/F,GAAAC,UAAkBhpG,EAAE+oG,GAAAE,eAAuBp/F,EAAEk/F,GAAAG,gBAAwBjlG,EAAE8kG,mBAAwB7/F,EAAE6/F,GAAAvuF,QAAgBpQ,EAAE2+F,GAAAI,WAAmBtqG,EAAEkqG,GAAAxiG,SAAiBhH,EAAEwpG,GAAAK,KAAa1qG,EAAEqqG,QAAavhG,EAAEuhG,GAAA5xB,OAAeruE,EAChfigG,GAAAM,SAAiB5/F,EAAEs/F,GAAAO,WAAmBjhG,EAAE0gG,GAAAQ,SAAiBvqG,EAAE+pG,GAAAS,YAAoB,SAASt/F,GAAG,OAAO1E,EAAE0E,IAAIK,EAAEL,KAAKlK,CAAC,EAAE+oG,GAAAU,iBAAyBjkG,EAAEujG,GAAAW,kBAA0B,SAASx/F,GAAG,OAAOK,EAAEL,KAAKjG,CAAC,EAAE8kG,GAAAY,kBAA0B,SAASz/F,GAAG,OAAOK,EAAEL,KAAKhB,CAAC,EAAE6/F,GAAA3uF,UAAkB,SAASlQ,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAEzJ,WAAW2J,CAAC,EAAE2+F,GAAAa,aAAqB,SAAS1/F,GAAG,OAAOK,EAAEL,KAAKrL,CAAC,EAAEkqG,GAAAc,WAAmB,SAAS3/F,GAAG,OAAOK,EAAEL,KAAK3K,CAAC,EAAEwpG,GAAAe,OAAe,SAAS5/F,GAAG,OAAOK,EAAEL,KAAKxL,CAAC,EAC1dqqG,GAAAgB,OAAe,SAAS7/F,GAAG,OAAOK,EAAEL,KAAK1C,CAAC,EAAEuhG,YAAiB,SAAS7+F,GAAG,OAAOK,EAAEL,KAAKpB,CAAC,EAAEigG,GAAAiB,WAAmB,SAAS9/F,GAAG,OAAOK,EAAEL,KAAKT,CAAC,EAAEs/F,GAAAkB,aAAqB,SAAS//F,GAAG,OAAOK,EAAEL,KAAK7B,CAAC,EAAE0gG,GAAAmB,WAAmB,SAAShgG,GAAG,OAAOK,EAAEL,KAAKlL,CAAC,EAC1O+pG,GAAAoB,mBAA2B,SAASjgG,GAAG,MAAM,iBAAkBA,GAAG,mBAAoBA,GAAGA,IAAI3K,GAAG2K,IAAIL,GAAGK,IAAIT,GAAGS,IAAI7B,GAAG6B,IAAIlL,GAAGkL,IAAIxB,GAAG,iBAAkBwB,GAAG,OAAOA,IAAIA,EAAEzJ,WAAW/B,GAAGwL,EAAEzJ,WAAW+G,GAAG0C,EAAEzJ,WAAWyI,GAAGgB,EAAEzJ,WAAWwD,GAAGiG,EAAEzJ,WAAW5B,GAAGqL,EAAEzJ,WAAWmJ,GAAGM,EAAEzJ,WAAWwB,GAAGiI,EAAEzJ,WAAWsI,GAAGmB,EAAEzJ,WAAWuH,EAAE,EAAE+gG,GAAAqB,OAAe7/F,KDXhT1E,GAEjBijG,GAAAjiG,mBEQ2B,eAAzBxG,QAAQC,IAAIC,UACd,WAKF,IAAI8pG,EAA8B,mBAAX7nG,QAAyBA,OAAOsD,IACnDb,EAAqBolG,EAAY7nG,OAAOsD,IAAI,iBAAmB,MAC/DxE,EAAoB+oG,EAAY7nG,OAAOsD,IAAI,gBAAkB,MAC7DjF,EAAsBwpG,EAAY7nG,OAAOsD,IAAI,kBAAoB,MACjE/E,EAAyBspG,EAAY7nG,OAAOsD,IAAI,qBAAuB,MACvEhF,EAAsBupG,EAAY7nG,OAAOsD,IAAI,kBAAoB,MACjEwkG,EAAsBD,EAAY7nG,OAAOsD,IAAI,kBAAoB,MACjEvE,EAAqB8oG,EAAY7nG,OAAOsD,IAAI,iBAAmB,MAG/DykG,EAAwBF,EAAY7nG,OAAOsD,IAAI,oBAAsB,MACrE0kG,EAA6BH,EAAY7nG,OAAOsD,IAAI,yBAA2B,MAC/EpE,EAAyB2oG,EAAY7nG,OAAOsD,IAAI,qBAAuB,MACvE9E,EAAsBqpG,EAAY7nG,OAAOsD,IAAI,kBAAoB,MACjE7E,EAA2BopG,EAAY7nG,OAAOsD,IAAI,uBAAyB,MAC3EjE,EAAkBwoG,EAAY7nG,OAAOsD,IAAI,cAAgB,MACzDhE,EAAkBuoG,EAAY7nG,OAAOsD,IAAI,cAAgB,MACzD2kG,EAAmBJ,EAAY7nG,OAAOsD,IAAI,eAAiB,MAC3D4kG,EAAyBL,EAAY7nG,OAAOsD,IAAI,qBAAuB,MACvE6kG,EAAuBN,EAAY7nG,OAAOsD,IAAI,mBAAqB,MACnE8kG,EAAmBP,EAAY7nG,OAAOsD,IAAI,eAAiB,MAO/D,SAASskG,EAAO34F,GACd,GAAsB,iBAAXA,GAAkC,OAAXA,EAAiB,CACjD,IAAIhR,EAAWgR,EAAOhR,SAEtB,OAAQA,GACN,KAAKwE,EACH,IAAIjH,EAAOyT,EAAOzT,KAElB,OAAQA,GACN,KAAKusG,EACL,KAAKC,EACL,KAAK3pG,EACL,KAAKC,EACL,KAAKC,EACL,KAAKC,EACH,OAAOhD,EAET,QACE,IAAI6sG,EAAe7sG,GAAQA,EAAKyC,SAEhC,OAAQoqG,GACN,KAAKtpG,EACL,KAAKG,EACL,KAAKI,EACL,KAAKD,EACL,KAAKyoG,EACH,OAAOO,EAET,QACE,OAAOpqG,GAKjB,KAAKa,EACH,OAAOb,EAEf,CAGA,CAEA,IAAIuoG,EAAYuB,EACZtB,EAAiBuB,EACjBtB,EAAkB3nG,EAClBupG,EAAkBR,EAClB9vF,EAAUvV,EACVkkG,EAAaznG,EACb6E,EAAW1F,EACXuoG,EAAOtnG,EACPipG,EAAOlpG,EACPs1E,EAAS71E,EACT+nG,EAAWvoG,EACXwoG,EAAavoG,EACbwoG,EAAWvoG,EACXgqG,GAAsC,EAa1C,SAASvB,EAAiBh4F,GACxB,OAAO24F,EAAO34F,KAAY+4F,CAC5B,CAmCAS,GAAAjC,UAAoBA,EACpBiC,GAAAhC,eAAyBA,EACzBgC,GAAA/B,gBAA0BA,EAC1B+B,GAAAH,gBAA0BA,EAC1BG,GAAAzwF,QAAkBA,EAClBywF,GAAA9B,WAAqBA,EACrB8B,GAAA1kG,SAAmBA,EACnB0kG,GAAA7B,KAAeA,EACf6B,GAAAF,KAAeA,EACfE,GAAA9zB,OAAiBA,EACjB8zB,GAAA5B,SAAmBA,EACnB4B,GAAA3B,WAAqBA,EACrB2B,GAAA1B,SAAmBA,EACnB0B,GAAAzB,YA7DA,SAAqB/3F,GASnB,OAPOu5F,IACHA,GAAsC,EAEtC5pG,QAAc,KAAE,kLAIbqoG,EAAiBh4F,IAAW24F,EAAO34F,KAAY84F,CACxD,EAoDAU,GAAAxB,iBAA2BA,EAC3BwB,GAAAvB,kBAjDA,SAA2Bj4F,GACzB,OAAO24F,EAAO34F,KAAYlQ,CAC5B,EAgDA0pG,GAAAtB,kBA/CA,SAA2Bl4F,GACzB,OAAO24F,EAAO34F,KAAY64F,CAC5B,EA8CAW,GAAA7wF,UA7CA,SAAmB3I,GACjB,MAAyB,iBAAXA,GAAkC,OAAXA,GAAmBA,EAAOhR,WAAawE,CAC9E,EA4CAgmG,GAAArB,aA3CA,SAAsBn4F,GACpB,OAAO24F,EAAO34F,KAAY/P,CAC5B,EA0CAupG,GAAApB,WAzCA,SAAoBp4F,GAClB,OAAO24F,EAAO34F,KAAY5Q,CAC5B,EAwCAoqG,GAAAnB,OAvCA,SAAgBr4F,GACd,OAAO24F,EAAO34F,KAAY3P,CAC5B,EAsCAmpG,GAAAlB,OArCA,SAAgBt4F,GACd,OAAO24F,EAAO34F,KAAY5P,CAC5B,EAoCAopG,GAAAC,SAnCA,SAAkBz5F,GAChB,OAAO24F,EAAO34F,KAAYnQ,CAC5B,EAkCA2pG,GAAAjB,WAjCA,SAAoBv4F,GAClB,OAAO24F,EAAO34F,KAAY3Q,CAC5B,EAgCAmqG,GAAAhB,aA/BA,SAAsBx4F,GACpB,OAAO24F,EAAO34F,KAAY1Q,CAC5B,EA8BAkqG,GAAAf,WA7BA,SAAoBz4F,GAClB,OAAO24F,EAAO34F,KAAYzQ,CAC5B,EA4BAiqG,GAAAd,mBAxIA,SAA4BnsG,GAC1B,MAAuB,iBAATA,GAAqC,mBAATA,GAC1CA,IAAS6C,GAAuB7C,IAASwsG,GAA8BxsG,IAAS8C,GAAuB9C,IAAS+C,GAA0B/C,IAASgD,GAAuBhD,IAASiD,GAA4C,iBAATjD,GAA8B,OAATA,IAAkBA,EAAKyC,WAAaqB,GAAmB9D,EAAKyC,WAAaoB,GAAmB7D,EAAKyC,WAAa6pG,GAAuBtsG,EAAKyC,WAAac,GAAsBvD,EAAKyC,WAAaiB,GAA0B1D,EAAKyC,WAAaiqG,GAA0B1sG,EAAKyC,WAAakqG,GAAwB3sG,EAAKyC,WAAamqG,GAAoB5sG,EAAKyC,WAAagqG,EACplB,EAsIAQ,GAAAb,OAAiBA,CACd,CArKD;;;;;uCCNF,IAAI3qG,EAAwBjB,OAAOiB,sBAC/BP,EAAiBV,OAAOS,UAAUC,eAClCisG,EAAmB3sG,OAAOS,UAAUS,4BAsDxC0rG,GA5CA,WACC,IACC,IAAK5sG,OAAOC,OACX,OAAO,EAMR,IAAI4sG,EAAQ,IAAInxE,OAAO,OAEvB,GADAmxE,EAAM,GAAK,KACkC,MAAzC7sG,OAAOkN,oBAAoB2/F,GAAO,GACrC,OAAO,EAKR,IADA,IAAIC,EAAQ,CAAA,EACH1sG,EAAI,EAAGA,EAAI,GAAIA,IACvB0sG,EAAM,IAAMpxE,OAAO8yC,aAAapuE,IAAMA,EAEvC,IAAI2sG,EAAS/sG,OAAOkN,oBAAoB4/F,GAAO5jG,IAAI,SAAU7I,GAC5D,OAAOysG,EAAMzsG,EAChB,GACE,GAAwB,eAApB0sG,EAAOrnG,KAAK,IACf,OAAO,EAIR,IAAIsnG,EAAQ,CAAA,EAIZ,MAHA,uBAAuBpiF,MAAM,IAAIlhB,QAAQ,SAAUujG,GAClDD,EAAMC,GAAUA,CACnB,GAEI,yBADEjtG,OAAOuF,KAAKvF,OAAOC,OAAO,CAAA,EAAI+sG,IAAQtnG,KAAK,GAMjD,CAAG,MAAO4rC,GAER,OAAO,CACT,CACA,CAEiB47D,GAAoBltG,OAAOC,OAAS,SAAUqT,EAAQxO,GAKtE,IAJA,IAAIzD,EAEA8R,EADA/R,EAtDL,SAAkB8a,GACjB,GAAIA,QACH,MAAM,IAAIujB,UAAU,yDAGrB,OAAOz/B,OAAOkc,EACf,CAgDUixF,CAAS75F,GAGTnT,EAAI,EAAGA,EAAIG,UAAUC,OAAQJ,IAAK,CAG1C,IAAK,IAAI6F,KAFT3E,EAAOrB,OAAOM,UAAUH,IAGnBO,EAAeC,KAAKU,EAAM2E,KAC7B5E,EAAG4E,GAAO3E,EAAK2E,IAIjB,GAAI/E,EAAuB,CAC1BkS,EAAUlS,EAAsBI,GAChC,IAAK,IAAIjB,EAAI,EAAGA,EAAI+S,EAAQ5S,OAAQH,IAC/BusG,EAAiBhsG,KAAKU,EAAM8R,EAAQ/S,MACvCgB,EAAG+R,EAAQ/S,IAAMiB,EAAK8R,EAAQ/S,IAGnC,CACA,CAEC,OAAOgB,CACR,+CC9EAgsG,GAF2B,gFCT3BxjG,GAAiBP,SAAS1I,KAAKiH,KAAK5H,OAAOS,UAAUC,oDCSrD,IAAI2sG,EAAe,WAAW,EAE9B,GAA6B,eAAzBxrG,QAAQC,IAAIC,SAA2B,CACzC,IAAIurG,EAAuBjmG,KACvBkmG,EAAqB,CAAA,EACrB3jG,EAAMpB,KAEV6kG,EAAe,SAASp5F,GACtB,IAAIg2B,EAAU,YAAch2B,EACL,oBAAZrR,SACTA,QAAQC,MAAMonC,GAEhB,IAIE,MAAM,IAAI5lC,MAAM4lC,EACtB,CAAM,MAAOxmC,GAAG,CAChB,CACA,CAaA,SAAS+pG,EAAeC,EAAWh9D,EAAQi9D,EAAUnpG,EAAeopG,GAClE,GAA6B,eAAzB9rG,QAAQC,IAAIC,SACd,IAAK,IAAI6rG,KAAgBH,EACvB,GAAI7jG,EAAI6jG,EAAWG,GAAe,CAChC,IAAI/qG,EAIJ,IAGE,GAAuC,mBAA5B4qG,EAAUG,GAA8B,CACjD,IAAIt8D,EAAMjtC,OACPE,GAAiB,eAAiB,KAAOmpG,EAAW,UAAYE,EAAjE,oGACwFH,EAAUG,GADlG,mGAKF,MADAt8D,EAAIlvC,KAAO,sBACLkvC,CAClB,CACUzuC,EAAQ4qG,EAAUG,GAAcn9D,EAAQm9D,EAAcrpG,EAAempG,EAAU,KAAMJ,EAC/F,CAAU,MAAOO,GACPhrG,EAAQgrG,CAClB,CAWQ,IAVIhrG,GAAWA,aAAiBwB,OAC9BgpG,GACG9oG,GAAiB,eAAiB,2BACnCmpG,EAAW,KAAOE,EADlB,kGAEqE/qG,EAFrE,kKAQAA,aAAiBwB,SAAWxB,EAAMonC,WAAWsjE,GAAqB,CAGpEA,EAAmB1qG,EAAMonC,UAAW,EAEpC,IAAIqsB,EAAQq3C,EAAWA,IAAa,GAEpCN,EACE,UAAYK,EAAW,UAAY7qG,EAAMonC,SAAoB,MAATqsB,EAAgBA,EAAQ,IAExF,CACA,CAGA,QAOAk3C,EAAeM,kBAAoB,WACJ,eAAzBjsG,QAAQC,IAAIC,WACdwrG,EAAqB,CAAA,EAEzB,EAEAQ,GAAiBP,qCC7FjB,IAAIQ,EAAU3mG,KACVpH,EAASuI,KAET8kG,EAAuBhwE,KACvB1zB,EAAMqkG,KACNT,EAAiBU,KAEjBb,EAAe,WAAW,EAiB9B,SAASc,IACP,OAAO,IACT,OAjB6B,eAAzBtsG,QAAQC,IAAIC,WACdsrG,EAAe,SAASp5F,GACtB,IAAIg2B,EAAU,YAAch2B,EACL,oBAAZrR,SACTA,QAAQC,MAAMonC,GAEhB,IAIE,MAAM,IAAI5lC,MAAM4lC,EACtB,CAAM,MAAOxmC,GAAG,CAChB,GAOA2qG,GAAiB,SAAStP,EAAgBuP,GAExC,IAAIC,EAAoC,mBAAXtqG,QAAyBA,OAAO+sC,SAuE7D,IAAIw9D,EAAY,gBAIZC,EAAiB,CACnBr+D,MAAOs+D,EAA2B,SAClCC,OAAQD,EAA2B,UACnCE,KAAMF,EAA2B,WACjC3vE,KAAM2vE,EAA2B,YACjCG,OAAQH,EAA2B,UACnCx7F,OAAQw7F,EAA2B,UACnCzwF,OAAQywF,EAA2B,UACnCI,OAAQJ,EAA2B,UAEnCK,IA6HOC,EAA2BZ,GA5HlCa,QA+HF,SAAkCC,GAkBhC,OAAOF,EAjBP,SAAkBtqG,EAAOyB,EAAU3B,EAAempG,EAAUwB,GAC1D,GAA2B,mBAAhBD,EACT,OAAO,IAAIE,EAAc,aAAeD,EAAe,mBAAqB3qG,EAAgB,mDAE9F,IAAI6qG,EAAY3qG,EAAMyB,GACtB,IAAKzE,MAAM+F,QAAQ4nG,GAEjB,OAAO,IAAID,EAAc,WAAazB,EAAW,KAAOwB,EAA/B,cADVG,EAAYD,GAC6E,kBAAoB7qG,EAAgB,yBAE9I,IAAK,IAAInE,EAAI,EAAGA,EAAIgvG,EAAU7uG,OAAQH,IAAK,CACzC,IAAIyC,EAAQosG,EAAYG,EAAWhvG,EAAGmE,EAAempG,EAAUwB,EAAe,IAAM9uG,EAAI,IAAKktG,GAC7F,GAAIzqG,aAAiBwB,MACnB,OAAOxB,CAEjB,CACM,OAAO,IACb,EAEA,EAjJIoW,QA4JO81F,EARP,SAAkBtqG,EAAOyB,EAAU3B,EAAempG,EAAUwB,GAC1D,IAAIE,EAAY3qG,EAAMyB,GACtB,OAAK44F,EAAesQ,GAIb,KAFE,IAAID,EAAc,WAAazB,EAAW,KAAOwB,EAA/B,cADVG,EAAYD,GAC6E,kBAAoB7qG,EAAgB,qCAGpJ,GA1JI+qG,YAuKOP,EARP,SAAkBtqG,EAAOyB,EAAU3B,EAAempG,EAAUwB,GAC1D,IAAIE,EAAY3qG,EAAMyB,GACtB,OAAK8nG,EAAQrC,mBAAmByD,GAIzB,KAFE,IAAID,EAAc,WAAazB,EAAW,KAAOwB,EAA/B,cADVG,EAAYD,GAC6E,kBAAoB7qG,EAAgB,0CAGpJ,GArKIgrG,WAyKF,SAAmCC,GASjC,OAAOT,EARP,SAAkBtqG,EAAOyB,EAAU3B,EAAempG,EAAUwB,GAC1D,KAAMzqG,EAAMyB,aAAqBspG,GAAgB,CAC/C,IAAIC,EAAoBD,EAAcptG,MAAQmsG,EAE9C,OAAO,IAAIY,EAAc,WAAazB,EAAW,KAAOwB,EAA/B,iBAuSTE,EAxSmB3qG,EAAMyB,IAyS9BhC,aAAgBkrG,EAAUlrG,YAAY9B,KAG9CgtG,EAAUlrG,YAAY9B,KAFpBmsG,GAzS0G,mBAAoBhqG,EAA1G,4BAA+JkrG,EAAoB,KACpN,CAsSE,IAAsBL,EArSlB,OAAO,IACb,EAEA,EAlLIloG,KAwRO6nG,EANP,SAAkBtqG,EAAOyB,EAAU3B,EAAempG,EAAUwB,GAC1D,OAAKxxF,EAAOjZ,EAAMyB,IAGX,KAFE,IAAIipG,EAAc,WAAazB,EAAW,KAAOwB,EAA/B,kBAAwE3qG,EAAgB,2BAGzH,GAtRImrG,SAsNF,SAAmCT,GAoBjC,OAAOF,EAnBP,SAAkBtqG,EAAOyB,EAAU3B,EAAempG,EAAUwB,GAC1D,GAA2B,mBAAhBD,EACT,OAAO,IAAIE,EAAc,aAAeD,EAAe,mBAAqB3qG,EAAgB,oDAE9F,IAAI6qG,EAAY3qG,EAAMyB,GAClBypG,EAAWN,EAAYD,GAC3B,GAAiB,WAAbO,EACF,OAAO,IAAIR,EAAc,WAAazB,EAAW,KAAOwB,EAA/B,cAAoES,EAAW,kBAAoBprG,EAAgB,0BAE9I,IAAK,IAAIyB,KAAOopG,EACd,GAAIxlG,EAAIwlG,EAAWppG,GAAM,CACvB,IAAInD,EAAQosG,EAAYG,EAAWppG,EAAKzB,EAAempG,EAAUwB,EAAe,IAAMlpG,EAAKsnG,GAC3F,GAAIzqG,aAAiBwB,MACnB,OAAOxB,CAEnB,CAEM,OAAO,IACb,EAEA,EA1OI+sG,MAkLF,SAA+BC,GAC7B,IAAKpuG,MAAM+F,QAAQqoG,GAWjB,MAV6B,eAAzBhuG,QAAQC,IAAIC,UAEZsrG,EADE/sG,UAAUC,OAAS,EAEnB,+DAAiED,UAAUC,OAA3E,uFAIW,0DAGV4tG,EAoBT,OAAOY,EAjBP,SAAkBtqG,EAAOyB,EAAU3B,EAAempG,EAAUwB,GAE1D,IADA,IAAIE,EAAY3qG,EAAMyB,GACb9F,EAAI,EAAGA,EAAIyvG,EAAetvG,OAAQH,IACzC,GAAIw6F,EAAGwU,EAAWS,EAAezvG,IAC/B,OAAO,KAIX,IAAI0vG,EAAe1tF,KAAKnN,UAAU46F,EAAgB,SAAkB7pG,EAAKrC,GAEvE,MAAa,WADFosG,EAAepsG,GAEjB+3B,OAAO/3B,GAETA,CACf,GACM,OAAO,IAAIwrG,EAAc,WAAazB,EAAW,KAAOwB,EAAe,eAAiBxzE,OAAO0zE,GAAtE,kBAA6G7qG,EAAgB,sBAAwBurG,EAAe,IACnM,EAEA,EAlNIE,UA2OF,SAAgCC,GAC9B,IAAKxuG,MAAM+F,QAAQyoG,GAEjB,MADyB,eAAzBpuG,QAAQC,IAAIC,UAA4BsrG,EAAa,0EAC9Cc,EAGT,IAAK,IAAI/tG,EAAI,EAAGA,EAAI6vG,EAAoB1vG,OAAQH,IAAK,CACnD,IAAI8vG,EAAUD,EAAoB7vG,GAClC,GAAuB,mBAAZ8vG,EAKT,OAJA7C,EACE,8FACc8C,EAAyBD,GAAW,aAAe9vG,EAAI,KAEhE+tG,CAEf,CAiBI,OAAOY,EAfP,SAAkBtqG,EAAOyB,EAAU3B,EAAempG,EAAUwB,GAE1D,IADA,IAAIkB,EAAgB,GACXhwG,EAAI,EAAGA,EAAI6vG,EAAoB1vG,OAAQH,IAAK,CACnD,IACIiwG,GAAgBH,EADND,EAAoB7vG,IACNqE,EAAOyB,EAAU3B,EAAempG,EAAUwB,EAAc5B,GACpF,GAAqB,MAAjB+C,EACF,OAAO,KAELA,EAAcz2D,MAAQhwC,EAAIymG,EAAcz2D,KAAM,iBAChDw2D,EAAczjG,KAAK0jG,EAAcz2D,KAAK02D,aAEhD,CAEM,OAAO,IAAInB,EAAc,WAAazB,EAAW,KAAOwB,EAA/B,kBAAwE3qG,EAAgB,KADrF6rG,EAAc7vG,OAAS,EAAK,2BAA6B6vG,EAAc1qG,KAAK,MAAQ,IAAK,IACyB,IACpJ,EAEA,EA3QI6qG,MA8RF,SAAgCC,GAmB9B,OAAOzB,EAlBP,SAAkBtqG,EAAOyB,EAAU3B,EAAempG,EAAUwB,GAC1D,IAAIE,EAAY3qG,EAAMyB,GAClBypG,EAAWN,EAAYD,GAC3B,GAAiB,WAAbO,EACF,OAAO,IAAIR,EAAc,WAAazB,EAAW,KAAOwB,EAAe,cAAgBS,EAA9D,kBAAmGprG,EAAgB,yBAE9I,IAAK,IAAIyB,KAAOwqG,EAAY,CAC1B,IAAIN,EAAUM,EAAWxqG,GACzB,GAAuB,mBAAZkqG,EACT,OAAOO,EAAsBlsG,EAAempG,EAAUwB,EAAclpG,EAAK+pG,EAAeG,IAE1F,IAAIrtG,EAAQqtG,EAAQd,EAAWppG,EAAKzB,EAAempG,EAAUwB,EAAe,IAAMlpG,EAAKsnG,GACvF,GAAIzqG,EACF,OAAOA,CAEjB,CACM,OAAO,IACb,EAEA,EAjTI6tG,MAmTF,SAAsCF,GA6BpC,OAAOzB,EA5BP,SAAkBtqG,EAAOyB,EAAU3B,EAAempG,EAAUwB,GAC1D,IAAIE,EAAY3qG,EAAMyB,GAClBypG,EAAWN,EAAYD,GAC3B,GAAiB,WAAbO,EACF,OAAO,IAAIR,EAAc,WAAazB,EAAW,KAAOwB,EAAe,cAAgBS,EAA9D,kBAAmGprG,EAAgB,yBAG9I,IAAIosG,EAAU1wG,EAAO,CAAA,EAAIwE,EAAMyB,GAAWsqG,GAC1C,IAAK,IAAIxqG,KAAO2qG,EAAS,CACvB,IAAIT,EAAUM,EAAWxqG,GACzB,GAAI4D,EAAI4mG,EAAYxqG,IAA2B,mBAAZkqG,EACjC,OAAOO,EAAsBlsG,EAAempG,EAAUwB,EAAclpG,EAAK+pG,EAAeG,IAE1F,IAAKA,EACH,OAAO,IAAIf,EACT,WAAazB,EAAW,KAAOwB,EAAe,UAAYlpG,EAAM,kBAAoBzB,EAApF,mBACmB6d,KAAKnN,UAAUxQ,EAAMyB,GAAW,KAAM,MACzD,iBAAmBkc,KAAKnN,UAAUjV,OAAOuF,KAAKirG,GAAa,KAAM,OAGrE,IAAI3tG,EAAQqtG,EAAQd,EAAWppG,EAAKzB,EAAempG,EAAUwB,EAAe,IAAMlpG,EAAKsnG,GACvF,GAAIzqG,EACF,OAAOA,CAEjB,CACM,OAAO,IACb,EAGA,GAzUE,SAAS+3F,EAAGn3F,EAAG8G,GAEb,OAAI9G,IAAM8G,EAGK,IAAN9G,GAAW,EAAIA,GAAM,EAAI8G,EAGzB9G,GAAMA,GAAK8G,GAAMA,CAE9B,CAUE,SAAS4kG,EAAcllE,EAAS2P,GAC9B/4C,KAAKopC,QAAUA,EACfppC,KAAK+4C,KAAOA,GAAwB,iBAATA,EAAoBA,EAAM,CAAA,EACrD/4C,KAAKy1D,MAAQ,EACjB,CAIE,SAASy4C,EAA2B6B,GAClC,GAA6B,eAAzB/uG,QAAQC,IAAIC,SACd,IAAI8uG,EAA0B,CAAA,EAC1BC,EAA6B,EAEnC,SAASC,EAAUC,EAAYvsG,EAAOyB,EAAU3B,EAAempG,EAAUwB,EAAc+B,GAIrF,GAHA1sG,EAAgBA,GAAiBgqG,EACjCW,EAAeA,GAAgBhpG,EAE3B+qG,IAAW3D,EAAsB,CACnC,GAAIe,EAAqB,CAEvB,IAAI/8D,EAAM,IAAIjtC,MACZ,qLAKF,MADAitC,EAAIlvC,KAAO,sBACLkvC,CAChB,CAAe,GAA6B,eAAzBzvC,QAAQC,IAAIC,UAAgD,oBAAZa,QAAyB,CAElF,IAAIsuG,EAAW3sG,EAAgB,IAAM2B,GAElC2qG,EAAwBK,IAEzBJ,EAA6B,IAE7BzD,EACE,2EACuB6B,EAAe,cAAgB3qG,EADtD,wNAMFssG,EAAwBK,IAAY,EACpCJ,IAEZ,CACA,CACM,OAAuB,MAAnBrsG,EAAMyB,GACJ8qG,EACsB,OAApBvsG,EAAMyB,GACD,IAAIipG,EAAc,OAASzB,EAAW,KAAOwB,EAA3B,+BAAiF3qG,EAAgB,+BAErH,IAAI4qG,EAAc,OAASzB,EAAW,KAAOwB,EAA3B,+BAAiF3qG,EAAgB,oCAErH,KAEAqsG,EAASnsG,EAAOyB,EAAU3B,EAAempG,EAAUwB,EAElE,CAEI,IAAIiC,EAAmBJ,EAAUnpG,KAAK,MAAM,GAG5C,OAFAupG,EAAiBH,WAAaD,EAAUnpG,KAAK,MAAM,GAE5CupG,CACX,CAEE,SAAS1C,EAA2B6B,GAiBlC,OAAOvB,EAhBP,SAAkBtqG,EAAOyB,EAAU3B,EAAempG,EAAUwB,EAAc+B,GACxE,IAAI7B,EAAY3qG,EAAMyB,GAEtB,OADempG,EAAYD,KACVkB,EAMR,IAAInB,EACT,WAAazB,EAAW,KAAOwB,EAA/B,cAHgBa,EAAeX,GAGmD,kBAAoB7qG,EAAtG,gBAA+I+rG,EAAe,KAC9J,CAACA,aAAcA,IAGZ,IACb,EAEA,CAsKE,SAASG,EAAsBlsG,EAAempG,EAAUwB,EAAclpG,EAAKxG,GACzE,OAAO,IAAI2vG,GACR5qG,GAAiB,eAAiB,KAAOmpG,EAAW,UAAYwB,EAAe,IAAMlpG,EAAtF,6FACiFxG,EAAO,KAE9F,CAwDE,SAASke,EAAO0xF,GACd,cAAeA,GACb,IAAK,SACL,IAAK,SACL,IAAK,YACH,OAAO,EACT,IAAK,UACH,OAAQA,EACV,IAAK,SACH,GAAI3tG,MAAM+F,QAAQ4nG,GAChB,OAAOA,EAAUn+F,MAAMyM,GAEzB,GAAkB,OAAd0xF,GAAsBtQ,EAAesQ,GACvC,OAAO,EAGT,IAAIgC,EAjbV,SAAuBC,GACrB,IAAID,EAAaC,IAAkB/C,GAAmB+C,EAAc/C,IAAoB+C,EAjB/D,eAkBzB,GAA0B,mBAAfD,EACT,OAAOA,CAEb,CA4ayBE,CAAclC,GAC/B,IAAIgC,EAqBF,OAAO,EApBP,IACIG,EADAxgE,EAAWqgE,EAAWzwG,KAAKyuG,GAE/B,GAAIgC,IAAehC,EAAUjmE,SAC3B,OAASooE,EAAOxgE,EAASl/B,QAAQm/B,MAC/B,IAAKtzB,EAAO6zF,EAAK5tG,OACf,OAAO,OAKX,OAAS4tG,EAAOxgE,EAASl/B,QAAQm/B,MAAM,CACrC,IAAIp0B,EAAQ20F,EAAK5tG,MACjB,GAAIiZ,IACGc,EAAOd,EAAM,IAChB,OAAO,CAGzB,CAMQ,OAAO,EACT,QACE,OAAO,EAEf,CA2BE,SAASyyF,EAAYD,GACnB,IAAIO,SAAkBP,EACtB,OAAI3tG,MAAM+F,QAAQ4nG,GACT,QAELA,aAAqBrzE,OAIhB,SAlCX,SAAkB4zE,EAAUP,GAE1B,MAAiB,WAAbO,KAKCP,IAK8B,WAA/BA,EAAU,kBAKQ,mBAAXprG,QAAyBorG,aAAqBprG,OAK7D,CAcQi6B,CAAS0xE,EAAUP,GACd,SAEFO,CACX,CAIE,SAASI,EAAeX,GACtB,GAAI,MAAOA,EACT,MAAO,GAAKA,EAEd,IAAIO,EAAWN,EAAYD,GAC3B,GAAiB,WAAbO,EAAuB,CACzB,GAAIP,aAAqBtxE,KACvB,MAAO,OACF,GAAIsxE,aAAqBrzE,OAC9B,MAAO,QAEf,CACI,OAAO4zE,CACX,CAIE,SAASQ,EAAyBxsG,GAChC,IAAInE,EAAOuwG,EAAepsG,GAC1B,OAAQnE,GACN,IAAK,QACL,IAAK,SACH,MAAO,MAAQA,EACjB,IAAK,UACL,IAAK,OACL,IAAK,SACH,MAAO,KAAOA,EAChB,QACE,OAAOA,EAEf,CAcE,OAxbA2vG,EAAc1uG,UAAY4D,MAAM5D,UAobhC+tG,EAAehB,eAAiBA,EAChCgB,EAAeV,kBAAoBN,EAAeM,kBAClDU,EAAegD,UAAYhD,EAEpBA,CACT,wCCxlBA,IAAIlB,EAAuBjmG,KAE3B,SAASoqG,IAAgB,CACzB,SAASC,IAAyB,QAClCA,EAAuB5D,kBAAoB2D,EAE3CE,GAAiB,WACf,SAASC,EAAKntG,EAAOyB,EAAU3B,EAAempG,EAAUwB,EAAc+B,GACpE,GAAIA,IAAW3D,EAAf,CAIA,IAAIh8D,EAAM,IAAIjtC,MACZ,mLAKF,MADAitC,EAAIlvC,KAAO,sBACLkvC,CAPV,CAQA,CAEE,SAASugE,IACP,OAAOD,CACX,CAHEA,EAAKZ,WAAaY,EAMlB,IAAIpD,EAAiB,CACnBr+D,MAAOyhE,EACPlD,OAAQkD,EACRjD,KAAMiD,EACN9yE,KAAM8yE,EACNhD,OAAQgD,EACR3+F,OAAQ2+F,EACR5zF,OAAQ4zF,EACR/C,OAAQ+C,EAER9C,IAAK8C,EACL5C,QAAS6C,EACT54F,QAAS24F,EACTtC,YAAasC,EACbrC,WAAYsC,EACZ3qG,KAAM0qG,EACNlC,SAAUmC,EACVjC,MAAOiC,EACP7B,UAAW6B,EACXtB,MAAOsB,EACPnB,MAAOmB,EAEPrE,eAAgBkE,EAChB5D,kBAAmB2D,GAKrB,OAFAjD,EAAegD,UAAYhD,EAEpBA,CACT,wCCzDA,QAA6B,eAAzB3sG,QAAQC,IAAIC,SAA2B,CACzC,IAAIisG,EAAU3mG,KAKdyqG,GAAAzpG,QAAiBG,KAAqCwlG,EAAQpyF,UADpC,KAE5B,MAGEk2F,GAAAzpG,QAAiBi1B,wCCjBnB,SAASt0B,GAAEjI,GAAG,IAAIb,EAAE2J,EAAExJ,EAAE,GAAG,GAAG,iBAAiBU,GAAG,iBAAiBA,EAAEV,GAAGU,OAAO,GAAG,iBAAiBA,EAAE,GAAGU,MAAM+F,QAAQzG,GAAG,CAAC,IAAI2H,EAAE3H,EAAER,OAAO,IAAIL,EAAE,EAAEA,EAAEwI,EAAExI,IAAIa,EAAEb,KAAK2J,EAAEb,GAAEjI,EAAEb,OAAOG,IAAIA,GAAG,KAAKA,GAAGwJ,EAAE,MAAM,IAAIA,KAAK9I,EAAEA,EAAE8I,KAAKxJ,IAAIA,GAAG,KAAKA,GAAGwJ,GAAG,OAAOxJ,CAAC,CAAQ,SAASkoE,KAAO,IAAI,IAAIxnE,EAAEb,EAAE2J,EAAE,EAAExJ,EAAE,GAAGqI,EAAEpI,UAAUC,OAAOsJ,EAAEnB,EAAEmB,KAAK9I,EAAET,UAAUuJ,MAAM3J,EAAE8I,GAAEjI,MAAMV,IAAIA,GAAG,KAAKA,GAAGH,GAAG,OAAOG,CAAC,CCAhW,SAAS0xG,GAAeC,EAAOC,EAAiBC,OAAUnpG,GACvE,MAAM+nE,EAAS,CAAA,EAkBf,OAjBA9wE,OAAOuF,KAAKysG,GAAOtoG,QAGnByoG,IACErhC,EAAOqhC,GAAQH,EAAMG,GAAM9zD,OAAO,CAAC2qD,EAAKhjG,KACtC,GAAIA,EAAK,CACP,MAAMosG,EAAeH,EAAgBjsG,GAChB,KAAjBosG,GACFpJ,EAAIr8F,KAAKylG,GAEPF,GAAWA,EAAQlsG,IACrBgjG,EAAIr8F,KAAKulG,EAAQlsG,GAErB,CACA,OAAOgjG,GACN,IAAItjG,KAAK,OAEPorE,CACT,yECfAuhC,EAAAhqG,QALA,SAAgCtH,GAC9B,OAAOA,GAAKA,EAAEuxG,WAAavxG,EAAI,CAC7B4wC,QAAW5wC,EAEf,EACyCsxG,EAAAhqG,QAAAiqG,YAA4B,EAAMD,EAAOhqG,QAAiB,QAAIgqG,EAAOhqG,yBCA/F,SAASkqG,GAAsBluF,GAK5C,IAAImuF,EAAM,0CAA4CnuF,EACtD,IAAK,IAAIjkB,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,GAAK,EAGzCoyG,GAAO,WAAar5C,mBAAmB74D,UAAUF,IAEnD,MAAO,uBAAyBikB,EAAO,WAAamuF,EAAM,wBAE5D,wGClBA,SAAet2F,EAAK1L,EAAMpD,OAAOqlG,iBAAkB9zE,EAAMvxB,OAAOslG,kBAC9D,OAAOjiG,KAAKkuB,IAAInuB,EAAKC,KAAKD,IAAI0L,EAAKyiB,GACrC,wCCAA,IAAIg0E,EAAyBtrG,KAC7BrH,OAAOqG,eAAeusG,GAAS,aAAc,CAC3CjvG,OAAO,IAETivG,GAAAC,MAAgBA,EAChBD,GAAAE,MAmWA,SAAeC,EAAYC,EAAS/rD,EAASgsD,EAAQ,GACnD,MAAMC,EAAe,CAACtoG,EAAGlC,IAAM+H,KAAK83B,OAAO39B,IAAM,EAAIqoG,IAAU,EAAIhsD,GAAWv+C,IAAM,EAAIuqG,GAAShsD,IAAYgsD,GACvGE,EAAkBC,EAAeL,GACjCM,EAAeD,EAAeJ,GAC9BM,EAAM,CAACJ,EAAaC,EAAgB1iE,OAAO,GAAI4iE,EAAa5iE,OAAO,IAAKyiE,EAAaC,EAAgB1iE,OAAO,GAAI4iE,EAAa5iE,OAAO,IAAKyiE,EAAaC,EAAgB1iE,OAAO,GAAI4iE,EAAa5iE,OAAO,KAC3M,OAAO8iE,EAAe,CACpB/zG,KAAM,MACNixC,OAAQ6iE,GAEZ,EA3WAV,GAAAY,kBAAuB,EACvBZ,GAAAa,OAAiBA,EACjBb,GAAAQ,eAAyBA,EACzBR,GAAAc,UAAoBA,EACpBd,GAAAe,iBA8NA,SAA0BC,EAAYb,GACpC,MAAMc,EAAOC,EAAaF,GACpBG,EAAOD,EAAaf,GAC1B,OAAQtiG,KAAKkuB,IAAIk1E,EAAME,GAAQ,MAAStjG,KAAKD,IAAIqjG,EAAME,GAAQ,IACjE,EAjOAnB,GAAAkB,aAAuBA,EACvBlB,GAAAoB,SAAmBA,EACnBpB,GAAAqB,SAAmBA,EACnBrB,GAAAsB,QAAkBA,EAClBtB,GAAAuB,kBAmPA,SAA2BjsD,EAAOvkD,EAAOywG,GACvC,IACE,OAAOvB,EAAM3qD,EAAOvkD,EACxB,CAAI,MAAOd,GAIP,OAHIuxG,GAAoC,eAAzBvyG,QAAQC,IAAIC,UACzBa,QAAQ2iG,KAAK6O,GAERlsD,CACX,CACA,EA3PA0qD,GAAAyB,8BAAmC,EACnCzB,GAAA0B,mBA8QA,SAA4BpsD,EAAOqsD,EAAaH,GAC9C,IACE,OAAOX,EAAOvrD,EAAOqsD,EACzB,CAAI,MAAO1xG,GAIP,OAHIuxG,GAAoC,eAAzBvyG,QAAQC,IAAIC,UACzBa,QAAQ2iG,KAAK6O,GAERlsD,CACX,CACA,EAtRA0qD,GAAA4B,sBAmUA,SAA+BtsD,EAAOqsD,EAAaH,GACjD,IACE,OAAOV,EAAUxrD,EAAOqsD,EAC5B,CAAI,MAAO1xG,GAIP,OAHIuxG,GAAoC,eAAzBvyG,QAAQC,IAAIC,UACzBa,QAAQ2iG,KAAK6O,GAERlsD,CACX,CACA,EA3UA0qD,GAAA6B,oBA6SA,SAA6BvsD,EAAOqsD,EAAaH,GAC/C,IACE,OAAOF,EAAQhsD,EAAOqsD,EAC1B,CAAI,MAAO1xG,GAIP,OAHIuxG,GAAoC,eAAzBvyG,QAAQC,IAAIC,UACzBa,QAAQ2iG,KAAK6O,GAERlsD,CACX,CACA,EArTA0qD,GAAAW,eAAyBA,EACzBX,GAAA8B,SAgJA,SAAkBxsD,GAEhB,GAA2B,IAAvBA,EAAMlnD,QAAQ,KAChB,OAAOknD,EAET,MAAMzX,OACJA,GACE2iE,EAAelrD,GACnB,MAAO,IAAIzX,EAAOvnC,IAAI,CAAC7I,EAAGD,IAnH5B,SAAkBu0G,GAChB,MAAMC,EAAMD,EAAIhsG,SAAS,IACzB,OAAsB,IAAfisG,EAAIr0G,OAAe,IAAIq0G,IAAQA,CACxC,CAgHkCC,CAAe,IAANz0G,EAAUqQ,KAAK83B,MAAM,IAAMloC,GAAKA,IAAIqF,KAAK,KACpF,EAxJA,IAAIovG,EAA0BnC,EAAuBnqG,IACjDusG,EAASpC,EAAuBr1E,IAUpC,SAAS03E,EAAarxG,EAAO6M,EAAM,EAAGmuB,EAAM,GAM1C,MAL6B,eAAzB98B,QAAQC,IAAIC,WACV4B,EAAQ6M,GAAO7M,EAAQg7B,IACzB/7B,QAAQC,MAAM,2BAA2Bc,sBAA0B6M,MAAQmuB,QAGxE,EAAIo2E,EAAOpjE,SAAShuC,EAAO6M,EAAKmuB,EACzC,CAOA,SAASq1E,EAAS9rD,GAChBA,EAAQA,EAAMxmD,MAAM,GACpB,MAAM+Y,EAAK,IAAIshB,OAAO,OAAOmsB,EAAM3nD,QAAU,EAAI,EAAI,KAAM,KAC3D,IAAIshE,EAAS3Z,EAAM3gC,MAAM9M,GAIzB,OAHIonD,GAA+B,IAArBA,EAAO,GAAGthE,SACtBshE,EAASA,EAAO34D,IAAI7I,GAAKA,EAAIA,IAExBwhE,EAAS,MAAwB,IAAlBA,EAAOthE,OAAe,IAAM,MAAMshE,EAAO34D,IAAI,CAAC7I,EAAGuT,IAC9DA,EAAQ,EAAIpG,SAASnN,EAAG,IAAMoQ,KAAK83B,MAAM/6B,SAASnN,EAAG,IAAM,IAAM,KAAQ,KAC/EqF,KAAK,SAAW,EACrB,CAaA,SAAS0tG,EAAelrD,GAEtB,GAAIA,EAAM1oD,KACR,OAAO0oD,EAET,GAAwB,MAApBA,EAAMtiC,OAAO,GACf,OAAOwtF,EAAeY,EAAS9rD,IAEjC,MAAM+sD,EAAS/sD,EAAMlnD,QAAQ,KACvBxB,EAAO0oD,EAAMtjC,UAAU,EAAGqwF,GAChC,QAAI,CAAC,MAAO,OAAQ,MAAO,OAAQ,SAASj0G,QAAQxB,GAClD,MAAM,IAAI6E,MAA+B,eAAzBxC,QAAQC,IAAIC,SAA4B,sBAAsBmmD,0GACY,EAAI4sD,EAAwBnjE,SAAS,EAAGuW,IAEpI,IACIgtD,EADAzkE,EAASyX,EAAMtjC,UAAUqwF,EAAS,EAAG/sD,EAAM3nD,OAAS,GAExD,GAAa,UAATf,GAMF,GALAixC,EAASA,EAAO7lB,MAAM,KACtBsqF,EAAazkE,EAAO7C,QACE,IAAlB6C,EAAOlwC,QAAwC,MAAxBkwC,EAAO,GAAG7qB,OAAO,KAC1C6qB,EAAO,GAAKA,EAAO,GAAG/uC,MAAM,SAE1B,CAAC,OAAQ,aAAc,UAAW,eAAgB,YAAYV,QAAQk0G,GACxE,MAAM,IAAI7wG,MAA+B,eAAzBxC,QAAQC,IAAIC,SAA4B,sBAAsBmzG,kHACY,EAAIJ,EAAwBnjE,SAAS,GAAIujE,SAGrIzkE,EAASA,EAAO7lB,MAAM,KAGxB,OADA6lB,EAASA,EAAOvnC,IAAIvF,GAASsiC,WAAWtiC,IACjC,CACLnE,OACAixC,SACAykE,aAEJ,CAQA,MAAM1B,EAAetrD,IACnB,MAAMitD,EAAkB/B,EAAelrD,GACvC,OAAOitD,EAAgB1kE,OAAO/uC,MAAM,EAAG,GAAGwH,IAAI,CAACgT,EAAKilC,KAAgD,IAAxCg0D,EAAgB31G,KAAKwB,QAAQ,QAAyB,IAARmgD,EAAY,GAAGjlC,KAASA,GAAKxW,KAAK,MAE9IktG,GAAAY,aAAuBA,EAoBvB,SAASD,EAAerrD,GACtB,MAAM1oD,KACJA,EAAI01G,WACJA,GACEhtD,EACJ,IAAIzX,OACFA,GACEyX,EAaJ,OAZ4B,IAAxB1oD,EAAKwB,QAAQ,OAEfyvC,EAASA,EAAOvnC,IAAI,CAAC7I,EAAGD,IAAMA,EAAI,EAAIoN,SAASnN,EAAG,IAAMA,IACvB,IAAxBb,EAAKwB,QAAQ,SACtByvC,EAAO,GAAK,GAAGA,EAAO,MACtBA,EAAO,GAAK,GAAGA,EAAO,OAGtBA,GAD4B,IAA1BjxC,EAAKwB,QAAQ,SACN,GAAGk0G,KAAczkE,EAAO/qC,KAAK,OAE7B,GAAG+qC,EAAO/qC,KAAK,QAEnB,GAAGlG,KAAQixC,IACpB,CAuBA,SAASwjE,EAAS/rD,GAChBA,EAAQkrD,EAAelrD,GACvB,MAAMzX,OACJA,GACEyX,EACEx9C,EAAI+lC,EAAO,GACXtwC,EAAIswC,EAAO,GAAK,IAChBjvC,EAAIivC,EAAO,GAAK,IAChB/kC,EAAIvL,EAAIsQ,KAAKD,IAAIhP,EAAG,EAAIA,GACxBqI,EAAI,CAACxJ,EAAGoF,GAAKpF,EAAIqK,EAAI,IAAM,KAAOlJ,EAAIkK,EAAI+E,KAAKkuB,IAAIluB,KAAKD,IAAI/K,EAAI,EAAG,EAAIA,EAAG,OAChF,IAAIjG,EAAO,MACX,MAAM8zG,EAAM,CAAC7iG,KAAK83B,MAAa,IAAP1+B,EAAE,IAAW4G,KAAK83B,MAAa,IAAP1+B,EAAE,IAAW4G,KAAK83B,MAAa,IAAP1+B,EAAE,KAK1E,MAJmB,SAAfq+C,EAAM1oD,OACRA,GAAQ,IACR8zG,EAAI3mG,KAAK8jC,EAAO,KAEX8iE,EAAe,CACpB/zG,OACAixC,OAAQ6iE,GAEZ,CASA,SAASQ,EAAa5rD,GAEpB,IAAIorD,EAAqB,SADzBprD,EAAQkrD,EAAelrD,IACP1oD,MAAiC,SAAf0oD,EAAM1oD,KAAkB4zG,EAAea,EAAS/rD,IAAQzX,OAASyX,EAAMzX,OASzG,OARA6iE,EAAMA,EAAIpqG,IAAIgT,IACO,UAAfgsC,EAAM1oD,OACR0c,GAAO,KAEFA,GAAO,OAAUA,EAAM,QAAUA,EAAM,MAAS,QAAU,MAI5D9O,QAAQ,MAASkmG,EAAI,GAAK,MAASA,EAAI,GAAK,MAASA,EAAI,IAAIjX,QAAQ,GAC9E,CAuBA,SAASwW,EAAM3qD,EAAOvkD,GAWpB,OAVAukD,EAAQkrD,EAAelrD,GACvBvkD,EAAQqxG,EAAarxG,GACF,QAAfukD,EAAM1oD,MAAiC,QAAf0oD,EAAM1oD,OAChC0oD,EAAM1oD,MAAQ,KAEG,UAAf0oD,EAAM1oD,KACR0oD,EAAMzX,OAAO,GAAK,IAAI9sC,IAEtBukD,EAAMzX,OAAO,GAAK9sC,EAEb4vG,EAAerrD,EACxB,CAkBA,SAASurD,EAAOvrD,EAAOqsD,GAGrB,GAFArsD,EAAQkrD,EAAelrD,GACvBqsD,EAAcS,EAAaT,IACO,IAA9BrsD,EAAM1oD,KAAKwB,QAAQ,OACrBknD,EAAMzX,OAAO,IAAM,EAAI8jE,OAClB,QAAIrsD,EAAM1oD,KAAKwB,QAAQ,SAAiD,IAAhCknD,EAAM1oD,KAAKwB,QAAQ,SAChE,IAAK,IAAIZ,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1B8nD,EAAMzX,OAAOrwC,IAAM,EAAIm0G,EAG3B,OAAOhB,EAAerrD,EACxB,CAkBA,SAASgsD,EAAQhsD,EAAOqsD,GAGtB,GAFArsD,EAAQkrD,EAAelrD,GACvBqsD,EAAcS,EAAaT,IACO,IAA9BrsD,EAAM1oD,KAAKwB,QAAQ,OACrBknD,EAAMzX,OAAO,KAAO,IAAMyX,EAAMzX,OAAO,IAAM8jE,OACxC,QAAIrsD,EAAM1oD,KAAKwB,QAAQ,OAC5B,IAAK,IAAIZ,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1B8nD,EAAMzX,OAAOrwC,KAAO,IAAM8nD,EAAMzX,OAAOrwC,IAAMm0G,OAE1C,QAAIrsD,EAAM1oD,KAAKwB,QAAQ,SAC5B,IAAK,IAAIZ,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1B8nD,EAAMzX,OAAOrwC,KAAO,EAAI8nD,EAAMzX,OAAOrwC,IAAMm0G,EAG/C,OAAOhB,EAAerrD,EACxB,CAmBA,SAASwrD,EAAUxrD,EAAOqsD,EAAc,KACtC,OAAOT,EAAa5rD,GAAS,GAAMurD,EAAOvrD,EAAOqsD,GAAeL,EAAQhsD,EAAOqsD,EACjF,QA5MA3B,GAAAyB,yBAlBiC,CAACnsD,EAAOksD,KACvC,IACE,OAAOZ,EAAatrD,EACxB,CAAI,MAAOrlD,GAIP,OAHIuxG,GAAoC,eAAzBvyG,QAAQC,IAAIC,UACzBa,QAAQ2iG,KAAK6O,GAERlsD,CACX,kBC3He,SAASktD,GAAWp3F,GACjC,GAAsB,iBAAXA,EACT,MAAM,IAAI3Z,MAA+B,eAAzBxC,QAAQC,IAAIC,SAA4B,uDAA2DszG,GAAuB,IAE5I,OAAOr3F,EAAO4H,OAAO,GAAG8rB,cAAgB1zB,EAAOtc,MAAM,EACvD,mDCHe,SAAS4zG,GAAaroB,EAAcxoF,GACjD,MAAMqsE,EAASkI,GAAS,CAAA,EAAIv0E,GAwB5B,OAvBAzE,OAAOuF,KAAK0nF,GAAcvjF,QAAQxD,IAChC,GAAIA,EAASyC,WAAW4e,MAAM,wBAC5BupD,EAAO5qE,GAAY8yE,GAAS,CAAA,EAAIiU,EAAa/mF,GAAW4qE,EAAO5qE,SAC1D,GAAIA,EAASyC,WAAW4e,MAAM,iCAAkC,CACrE,MAAMguF,EAAmBtoB,EAAa/mF,IAAa,CAAA,EAC7Cq2E,EAAY93E,EAAMyB,GACxB4qE,EAAO5qE,GAAY,CAAA,EACdq2E,GAAcv8E,OAAOuF,KAAKg3E,GAGnBg5B,GAAqBv1G,OAAOuF,KAAKgwG,IAI3CzkC,EAAO5qE,GAAY8yE,GAAS,CAAA,EAAIuD,GAChCv8E,OAAOuF,KAAKgwG,GAAkB7rG,QAAQ8rG,IACpC1kC,EAAO5qE,GAAUsvG,GAAgBF,GAAaC,EAAiBC,GAAej5B,EAAUi5B,OAJ1F1kC,EAAO5qE,GAAYq2E,EAHnBzL,EAAO5qE,GAAYqvG,CAUvB,WAAgCxsG,IAArB+nE,EAAO5qE,KAChB4qE,EAAO5qE,GAAY+mF,EAAa/mF,MAG7B4qE,CACT,CC3BA,MAAM2kC,GAA4BruG,EAAM2qC,mBAAchpC,GA4C/C,SAAS2sG,IAAgBjxG,MAC9BA,EAAKrC,KACLA,IAGA,OAzBF,SAAuBuzG,GACrB,MAAMn7C,MACJA,EAAKp4D,KACLA,EAAIqC,MACJA,GACEkxG,EACJ,IAAKn7C,IAAUA,EAAMo7C,aAAep7C,EAAMo7C,WAAWxzG,GACnD,OAAOqC,EAET,MAAME,EAAS61D,EAAMo7C,WAAWxzG,GAChC,OAAIuC,EAAOsoF,aAEFqoB,GAAa3wG,EAAOsoF,aAAcxoF,GAEtCE,EAAOkxG,gBAAmBlxG,EAAO4jG,SAI/B9jG,EAFE6wG,GAAa3wG,EAAQF,EAGhC,CAMSqxG,CAAc,CACnBrxG,QACArC,OACAo4D,MAAO,CACLo7C,WALQxuG,EAAM6qC,WAAWwjE,MAQ/B,CCrCO,SAASC,GAAgBC,GAC9B,OAAOI,GAAsBJ,EAC/B,CDXyB,eAAzB9zG,QAAQC,IAAIC,WAQAyvG,GAAUtqG,KAIbsqG,GAAUv+F,QClBM,eAAzBpR,QAAQC,IAAIC,WAQAyvG,GAAUtqG,KAIbsqG,GAAUv+F,OAAO+9F,uGCpB1B,IAAIgF,EAAU3uG,KAMV4uG,EAAgB,CAClBC,mBAAmB,EACnBloD,aAAa,EACbmoD,cAAc,EACdlpB,cAAc,EACd9qF,aAAa,EACbi0G,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACXh3G,MAAM,GAEJi3G,EAAgB,CAClBr0G,MAAM,EACN7B,QAAQ,EACRE,WAAW,EACXi2G,QAAQ,EACRC,QAAQ,EACRr2G,WAAW,EACXs2G,OAAO,GASLC,EAAe,CACjB50G,UAAY,EACZsO,SAAS,EACT08E,cAAc,EACd9qF,aAAa,EACbq0G,WAAW,EACXh3G,MAAM,GAEJs3G,EAAe,CAAA,EAInB,SAASC,EAAWC,GAElB,OAAIhB,EAAQzK,OAAOyL,GACVH,EAIFC,EAAaE,EAAoB,WAAMf,CAChD,CAXAa,EAAad,EAAQrL,YAhBK,CACxB1oG,UAAY,EACZmB,QAAQ,EACR6pF,cAAc,EACd9qF,aAAa,EACbq0G,WAAW,GAYbM,EAAad,EAAQzJ,MAAQsK,EAY7B,IAAIxwG,EAAiBrG,OAAOqG,eACxB6G,EAAsBlN,OAAOkN,oBAC7BjM,EAAwBjB,OAAOiB,sBAC/B4E,EAA2B7F,OAAO6F,yBAClCuD,EAAiBpJ,OAAOoJ,eACxB6tG,EAAkBj3G,OAAOS,UAsC7By2G,GArCA,SAASC,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,iBAApBD,EAA8B,CAEvC,GAAIJ,EAAiB,CACnB,IAAIM,EAAqBnuG,EAAeiuG,GAEpCE,GAAsBA,IAAuBN,GAC/CE,EAAqBC,EAAiBG,EAAoBD,EAElE,CAEI,IAAI/xG,EAAO2H,EAAoBmqG,GAE3Bp2G,IACFsE,EAAOA,EAAK5D,OAAOV,EAAsBo2G,KAM3C,IAHA,IAAIG,EAAgBT,EAAWK,GAC3BK,EAAgBV,EAAWM,GAEtBj3G,EAAI,EAAGA,EAAImF,EAAKhF,SAAUH,EAAG,CACpC,IAAI4F,EAAMT,EAAKnF,GAEf,KAAKq2G,EAAczwG,IAAUsxG,GAAaA,EAAUtxG,IAAWyxG,GAAiBA,EAAczxG,IAAWwxG,GAAiBA,EAAcxxG,IAAO,CAC7I,IAAI0xG,EAAa7xG,EAAyBwxG,EAAiBrxG,GAE3D,IAEEK,EAAe+wG,EAAiBpxG,EAAK0xG,EAC/C,CAAU,MAAO32G,GAAG,CACpB,CACA,CACA,CAEE,OAAOq2G,CACT,KClGA,IC8BW1qC,GACLirC,GD3BFC,KAAqBxwG,EAA+B,oBAAIA,EAA+B,mBACvFywG,GAA2CD,IAL5B,SAAsBvtG,GACvC,OAAOA,GACT,EAIIytG,GAAuCF,IAAsBxwG,EAAMw8C,gBEInEm0D,GAAqC3wG,EAAM2qC,cAMxB,oBAAhByL,YAA6Co0B,GAAY,CAC9D5rE,IAAK,QACF,MAEDgyG,GAAgBD,GAAoBnvD,SAKpCqvD,GAAmB,SAA0Bn5E,GAC/C,OAAoBymB,EAAAA,WAAW,SAAU9gD,EAAOxF,GAE9C,IAAIwmC,EAAQwM,EAAAA,WAAW8lE,IACvB,OAAOj5E,EAAKr6B,EAAOghC,EAAOxmC,EAC5B,EACF,EAEIi5G,GAA8B9wG,EAAM2qC,cAAc,IA6ClDomE,GAAS,CAAA,EAAGz3G,eAEZ03G,GAAe,qCAgBfC,GAAY,SAAmB76F,GACjC,IAAIioB,EAAQjoB,EAAKioB,MACb+sC,EAAah1D,EAAKg1D,WAClBoF,EAAcp6D,EAAKo6D,YAMvB,OALAD,GAAelyC,EAAO+sC,EAAYoF,GAClCigC,GAAyC,WACvC,OAAOhgC,GAAapyC,EAAO+sC,EAAYoF,EACzC,GAEO,IACT,EAEI0gC,GAAyBL,GAAiB,SAAUxzG,EAAOghC,EAAOxmC,GACpE,IAAIs5G,EAAU9zG,EAAMzF,IAIG,iBAAZu5G,QAAsDxvG,IAA9B08B,EAAMktC,WAAW4lC,KAClDA,EAAU9yE,EAAMktC,WAAW4lC,IAG7B,IAAIC,EAAmB/zG,EAAM2zG,IACzB5gC,EAAmB,CAAC+gC,GACpB78C,EAAY,GAEe,iBAApBj3D,EAAMi3D,UACfA,EAAY6b,GAAoB9xC,EAAMktC,WAAY6E,EAAkB/yE,EAAMi3D,WAC9C,MAAnBj3D,EAAMi3D,YACfA,EAAYj3D,EAAMi3D,UAAY,KAGhC,IAAI8W,EAAauE,GAAgBS,OAAkBzuE,EAAW3B,EAAM6qC,WAAWimE,KAE/Ex8C,GAAaj2B,EAAMz/B,IAAM,IAAMwsE,EAAWpwE,KAC1C,IAAIw3B,EAAW,CAAA,EAEf,IAAK,IAAIzkB,KAAS1Q,EACZ0zG,GAAOx3G,KAAK8D,EAAO0Q,IAAoB,QAAVA,GAAmBA,IAAUijG,KAC5Dx+E,EAASzkB,GAAS1Q,EAAM0Q,IAU5B,OANAykB,EAAS8hC,UAAYA,EAEjBz8D,IACF26B,EAAS36B,IAAMA,GAGGmI,EAAM7H,cAAc6H,EAAMW,SAAU,KAAmBX,EAAM7H,cAAc84G,GAAW,CACxG5yE,MAAOA,EACP+sC,WAAYA,EACZoF,YAAyC,iBAArB4gC,IACLpxG,EAAM7H,cAAci5G,EAAkB5+E,GACzD,GAEI6+E,GAAYH,GD7IZtwG,GAAM,SAAaxI,EAAMiF,GAE3B,IAAI4nB,EAAO/rB,UAEX,GAAa,MAATmE,IAAkB0zG,GAAOx3G,KAAK8D,EAAO,OACvC,OAAO2C,EAAM7H,cAAcqB,WAAMmI,EAAWsjB,GAG9C,IAAIqsF,EAAarsF,EAAK9rB,OAClBo4G,EAAwB,IAAIl3G,MAAMi3G,GACtCC,EAAsB,GAAKL,GAC3BK,EAAsB,GC4DC,SAA4Bn5G,EAAMiF,GAEzD,IAAIm1B,EAAW,CAAA,EAEf,IAAK,IAAIrlB,KAAQ9P,EACX0zG,GAAOx3G,KAAK8D,EAAO8P,KACrBqlB,EAASrlB,GAAQ9P,EAAM8P,IAM3B,OAFAqlB,EAASw+E,IAAgB54G,EAElBo6B,CACT,CDzE6Bg/E,CAAmBp5G,EAAMiF,GAEpD,IAAK,IAAIrE,EAAI,EAAGA,EAAIs4G,EAAYt4G,IAC9Bu4G,EAAsBv4G,GAAKisB,EAAKjsB,GAGlC,OAAOgH,EAAM7H,cAAcqB,MAAM,KAAM+3G,EACzC,EAEWjsC,GAIR1kE,KAAQA,GAAM,CAAA,GADM2vG,KAAQA,GAAMjrC,GAAKirC,MAAQjrC,GAAKirC,IAAM,CAAA,IAM7D,IAAIkB,GAAwBZ,GAAiB,SAAUxzG,EAAOghC,GAE5D,IACI+sC,EAAauE,GAAgB,CADpBtyE,EAAMiuE,aACwB3pE,EAAW3B,EAAM6qC,WAAWimE,KAMnEY,EAAW1xG,EAAM88C,SAqDrB,OApDA4zD,GAAqC,WACnC,IAAI9xG,EAAMy/B,EAAMz/B,IAAM,UAElBynE,EAAQ,IAAIhoC,EAAMgoC,MAAMvpE,YAAY,CACtC8B,IAAKA,EACLonE,MAAO3nC,EAAMgoC,MAAML,MACnBzJ,UAAWl+B,EAAMgoC,MAAM9J,UACvBuJ,OAAQznC,EAAMgoC,MAAMR,WAElB8rC,GAAc,EACd7xG,EAAO/H,SAASq9C,cAAc,uBAA0Bx2C,EAAM,IAAMwsE,EAAWpwE,KAAO,MAc1F,OAZIqjC,EAAMgoC,MAAMX,KAAKvsE,SACnBktE,EAAMr5D,OAASqxB,EAAMgoC,MAAMX,KAAK,IAGrB,OAAT5lE,IACF6xG,GAAc,EAEd7xG,EAAKkyD,aAAa,eAAgBpzD,GAClCynE,EAAMH,QAAQ,CAACpmE,KAGjB4xG,EAAShqG,QAAU,CAAC2+D,EAAOsrC,GACpB,WACLtrC,EAAMhtC,OACR,CACF,EAAG,CAACgF,IACJqyE,GAAqC,WACnC,IAAIkB,EAAkBF,EAAShqG,QAC3B2+D,EAAQurC,EAAgB,GAG5B,GAFkBA,EAAgB,GAGhCA,EAAgB,IAAK,MADvB,CAUA,QALwBjwG,IAApBypE,EAAW3gE,MAEbgmE,GAAapyC,EAAO+sC,EAAW3gE,MAAM,GAGnC47D,EAAMX,KAAKvsE,OAAQ,CAErB,IAAI0Y,EAAUw0D,EAAMX,KAAKW,EAAMX,KAAKvsE,OAAS,GAAGk9F,mBAChDhwB,EAAMr5D,OAAS6E,EACfw0D,EAAMhtC,OACR,CAEAgF,EAAMqK,OAAO,GAAI0iC,EAAY/E,GAAO,EAdpC,CAeF,EAAG,CAAChoC,EAAO+sC,EAAWpwE,OACf,IACT,GAEA,SAASpD,KACP,IAAK,IAAIotB,EAAO9rB,UAAUC,OAAQ8rB,EAAO,IAAI5qB,MAAM2qB,GAAO7X,EAAO,EAAGA,EAAO6X,EAAM7X,IAC/E8X,EAAK9X,GAAQjU,UAAUiU,GAGzB,OAAOwiE,GAAgB1qD,EACzB,CAEA,SAASiqD,KACP,IAAI2iC,EAAaj6G,GAAI4B,WAAM,EAAQN,WAC/B8B,EAAO,aAAe62G,EAAW72G,KACrC,MAAO,CACLA,KAAMA,EACNswE,OAAQ,cAAgBtwE,EAAO,IAAM62G,EAAWvmC,OAAS,IACzD6D,KAAM,EACN5tE,SAAU,WACR,MAAO,QAAU9H,KAAKuB,KAAO,IAAMvB,KAAK6xE,OAAS,OACnD,EAEJ,CE1HA,IAAIwmC,GAAkB,gjICOlBC,GDL6BpoC,GAAQ,SAAU73C,GACjD,OAAOggF,GAAgB3zF,KAAK2T,IAAgC,MAAvBA,EAAKpT,WAAW,IAE3B,MAAvBoT,EAAKpT,WAAW,IAEhBoT,EAAKpT,WAAW,GAAK,EAC1B,GCCIszF,GAA2B,SAAkCpzG,GAC/D,MAAe,UAARA,CACT,EAEIqzG,GAA8B,SAAqC12G,GACrE,MAAsB,iBAARA,GAGdA,EAAImjB,WAAW,GAAK,GAAKqzF,GAA2BC,EACtD,EACIE,GAA4B,SAAmC32G,EAAKqN,EAASupG,GAC/E,IAAIC,EAEJ,GAAIxpG,EAAS,CACX,IAAIypG,EAA2BzpG,EAAQwpG,kBACvCA,EAAoB72G,EAAI+2G,uBAAyBD,EAA2B,SAAUvzG,GACpF,OAAOvD,EAAI+2G,sBAAsBxzG,IAAauzG,EAAyBvzG,EACzE,EAAIuzG,CACN,CAMA,MAJiC,mBAAtBD,GAAoCD,IAC7CC,EAAoB72G,EAAI+2G,uBAGnBF,CACT,EAEInB,GAAY,SAAmB76F,GACjC,IAAIioB,EAAQjoB,EAAKioB,MACb+sC,EAAah1D,EAAKg1D,WAClBoF,EAAcp6D,EAAKo6D,YAMvB,OALAD,GAAelyC,EAAO+sC,EAAYoF,GAClCigC,GAAyC,WACvC,OAAOhgC,GAAapyC,EAAO+sC,EAAYoF,EACzC,GAEO,IACT,ECpCI+hC,GDsCe,SAASC,EAAaj3G,EAAKqN,GAE5C,IAEIonE,EACAyiC,EAHAN,EAAS52G,EAAIm3G,iBAAmBn3G,EAChCo3G,EAAUR,GAAU52G,EAAIq3G,gBAAkBr3G,OAI9BoG,IAAZiH,IACFonE,EAAiBpnE,EAAQ0xD,MACzBm4C,EAAkB7pG,EAAQsD,QAG5B,IAAIkmG,EAAoBF,GAA0B32G,EAAKqN,EAASupG,GAC5DU,EAA2BT,GAAqBH,GAA4BU,GAC5EG,GAAeD,EAAyB,MAC5C,OAAO,WAEL,IAAI5tF,EAAO/rB,UACPoyE,EAAS6mC,QAAmCxwG,IAAzBpG,EAAI0zE,iBAAiC1zE,EAAI0zE,iBAAiB30E,MAAM,GAAK,GAM5F,QAJuBqH,IAAnBquE,GACF1E,EAAO/lE,KAAK,SAAWyqE,EAAiB,KAG3B,MAAX/qD,EAAK,SAA8BtjB,IAAhBsjB,EAAK,GAAG6qD,IAE7BxE,EAAO/lE,KAAK/L,MAAM8xE,EAAQrmD,OACrB,CACL,IAAI8tF,EAAqB9tF,EAAK,GAE9BqmD,EAAO/lE,KAAKwtG,EAAmB,IAI/B,IAHA,IAAI9iC,EAAMhrD,EAAK9rB,OACXH,EAAI,EAEDA,EAAIi3E,EAAKj3E,IAEdsyE,EAAO/lE,KAAK0f,EAAKjsB,GAAI+5G,EAAmB/5G,GAE5C,CAEA,IAAIg6G,EAASnC,GAAiB,SAAUxzG,EAAOghC,EAAOxmC,GACpD,IAAIo7G,EAAWH,GAAez1G,EAAMkM,IAAMopG,EACtCr+C,EAAY,GACZ4+C,EAAsB,GACtBpkC,EAAczxE,EAElB,GAAmB,MAAfA,EAAM+1D,MAAe,CAGvB,IAAK,IAAIx0D,KAFTkwE,EAAc,CAAA,EAEEzxE,EACdyxE,EAAYlwE,GAAOvB,EAAMuB,GAG3BkwE,EAAY1b,MAAQpzD,EAAM6qC,WAAWimE,GACvC,CAE+B,iBAApBzzG,EAAMi3D,UACfA,EAAY6b,GAAoB9xC,EAAMktC,WAAY2nC,EAAqB71G,EAAMi3D,WACjD,MAAnBj3D,EAAMi3D,YACfA,EAAYj3D,EAAMi3D,UAAY,KAGhC,IAAI8W,EAAauE,GAAgBrE,EAAO/wE,OAAO24G,GAAsB70E,EAAMktC,WAAYuD,GACvFxa,GAAaj2B,EAAMz/B,IAAM,IAAMwsE,EAAWpwE,UAElB2G,IAApB8wG,IACFn+C,GAAa,IAAMm+C,GAGrB,IAAIU,EAAyBL,QAAqCnxG,IAAtBywG,EAAkCH,GAA4BgB,GAAYJ,EAClHrgF,EAAW,CAAA,EAEf,IAAK,IAAIrlB,KAAQ9P,EACXy1G,GAAwB,OAAT3lG,GAEfgmG,EAAuBhmG,KACzBqlB,EAASrlB,GAAQ9P,EAAM8P,IAU3B,OANAqlB,EAAS8hC,UAAYA,EAEjBz8D,IACF26B,EAAS36B,IAAMA,GAGGmI,EAAM7H,cAAc6H,EAAMW,SAAU,KAAmBX,EAAM7H,cAAc84G,GAAW,CACxG5yE,MAAOA,EACP+sC,WAAYA,EACZoF,YAAiC,iBAAbyiC,IACLjzG,EAAM7H,cAAc86G,EAAUzgF,GACjD,GAwBA,OAvBAwgF,EAAOj4G,iBAAiC4G,IAAnBquE,EAA+BA,EAAiB,WAAgC,iBAAZ2iC,EAAuBA,EAAUA,EAAQ53G,aAAe43G,EAAQ33G,MAAQ,aAAe,IAChLg4G,EAAOntB,aAAetqF,EAAIsqF,aAC1BmtB,EAAON,eAAiBM,EACxBA,EAAOJ,eAAiBD,EACxBK,EAAO/jC,iBAAmB3D,EAC1B0nC,EAAOV,sBAAwBF,EAC/Bx5G,OAAOqG,eAAe+zG,EAAQ,WAAY,CACxCz2G,MAAO,WAKL,MAAO,IAAMk2G,CACf,IAGFO,EAAOI,cAAgB,SAAUC,EAASC,GAIxC,OAHgBd,EAAaa,EAASzhC,GAAS,CAAA,EAAIhpE,EAAS0qG,EAAa,CACvElB,kBAAmBF,GAA0Bc,EAAQM,GAAa,MAEnD95G,WAAM,EAAQ8xE,EACjC,EAEO0nC,CACT,CACF,EC3J0BxyG,KAAK,MAJpB,CAAC,IAAK,OAAQ,UAAW,OAAQ,UAAW,QAAS,QAAS,IAAK,OAAQ,MAAO,MAAO,MAAO,aAAc,OAAQ,KAAM,SAAU,SAAU,UAAW,OAAQ,OAAQ,MAAO,WAAY,OAAQ,WAAY,KAAM,MAAO,UAAW,MAAO,SAAU,MAAO,KAAM,KAAM,KAAM,QAAS,WAAY,aAAc,SAAU,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAAQ,SAAU,SAAU,KAAM,OAAQ,IAAK,SAAU,MAAO,QAAS,MAAO,MAAO,SAAU,QAAS,SAAU,KAAM,OAAQ,OAAQ,MAAO,OAAQ,UAAW,OAAQ,WAAY,OAAQ,QAAS,MAAO,WAAY,SAAU,KAAM,WAAY,SAAU,SAAU,IAAK,QAAS,UAAW,MAAO,WAAY,IAAK,KAAM,KAAM,OAAQ,IAAK,OAAQ,SAAU,UAAW,SAAU,QAAS,SAAU,OAAQ,SAAU,QAAS,MAAO,UAAW,MAAO,QAAS,QAAS,KAAM,WAAY,QAAS,KAAM,QAAS,OAAQ,QAAS,KAAM,QAAS,IAAK,KAAM,MAAO,QAAS,MAC77B,SAAU,WAAY,OAAQ,UAAW,gBAAiB,IAAK,QAAS,OAAQ,iBAAkB,OAAQ,OAAQ,UAAW,UAAW,WAAY,iBAAkB,OAAQ,OAAQ,MAAO,OAAQ,SAIhM8B,QAAQ,SAAU4iC,GACrBqtE,GAAOrtE,GAAWqtE,GAAOrtE,EAC3B,GCWA,MAAMquE,GAAW,IAAI1wG,IACN,SAAS2wG,GAAqBn2G,GAC3C,MAAMo2G,YACJA,EAAWC,eACXA,EAAc31G,SACdA,GACEV,EACEghC,EAAQr+B,EAAMqoD,QAAQ,KAC1B,MAAMyhD,EAAW,GAAG2J,KAAeC,IACnC,GAAwB,iBAAb37G,UAAyBw7G,GAAS/wG,IAAIsnG,GAC/C,OAAOyJ,GAAS70G,IAAIorG,GAEtB,MAAM6J,EA7BV,SAAkBF,EAAaC,GAC7B,MAAME,EAAeppC,GAAY,CAC/B5rE,IAAK,MACLgnE,QAAS6tC,IAEX,GAAIC,EAAgB,CAClB,MAAMG,EAAaD,EAAalrE,OAChCkrE,EAAalrE,OAAS,IAAIzjB,KACnBA,EAAK,GAAGqmD,OAAOnrD,MAAM,sBAExB8E,EAAK,GAAGqmD,OAAS,eAAermD,EAAK,GAAGqmD,WAEnCuoC,KAAc5uF,GAEzB,CACA,OAAO2uF,CACT,CAakBE,CAASL,EAAaC,GAEpC,OADAH,GAAS7wG,IAAIonG,EAAU6J,GAChBA,GACN,CAACF,EAAaC,IACjB,OAAID,GAAeC,EACGpuC,EAAAA,IAAKsrC,GAAe,CACtCr0G,MAAO8hC,EACPtgC,SAAUA,IAGPA,CACT,CCzCe,SAASg2G,GAAa12G,GACnC,MAAMiuE,OACJA,EAAM0oC,aACNA,EAAe,CAAA,GACb32G,EACE42G,EAAiC,mBAAX3oC,EAAwB4oC,IAAc5oC,SAP3D3/D,OADQA,EAQkEuoG,IAPT,IAA5Bt7G,OAAOuF,KAAKwN,GAAKxS,OAOkC66G,EAAeE,GARhH,IAAiBvoG,GAQ6G2/D,EAC5H,OAAoBhG,EAAAA,IAAKmsC,GAAQ,CAC/BnmC,OAAQ2oC,GAEZ,CDiCyB,eAAzBx5G,QAAQC,IAAIC,WAA4B64G,GAAqBpE,UAAY,CAIvErxG,SAAUqsG,GAAUtqG,KAKpB4zG,eAAgBtJ,GAAU7C,KAM1BkM,YAAarJ,GAAU7C,OC/CA,eAAzB9sG,QAAQC,IAAIC,WAA4Bo5G,GAAa3E,UAAY,CAC/D4E,aAAc5J,GAAUv+F,OACxBy/D,OAAQ8+B,GAAUxB,UAAU,CAACwB,GAAUrhE,MAAOqhE,GAAUxzF,OAAQwzF,GAAUv+F,OAAQu+F,GAAU1yE,SCQvF,MASDtD,GAAU;;;;;;;;AA1BD,SAAgB74B,EAAKqN,GAClC,MAAMurG,EAAgBC,GAAS74G,EAAKqN,GACpC,MAA6B,eAAzBnO,QAAQC,IAAIC,SACP,IAAI2wE,KACT,MAAMskC,EAA2B,iBAARr0G,EAAmB,IAAIA,KAAS,YAMzD,OALsB,IAAlB+vE,EAAOnyE,OACTqC,QAAQC,MAAM,CAAC,uCAAuCm0G,uCAAgD,gFAAgFtxG,KAAK,OAClLgtE,EAAO1/C,KAAK1zB,QAAmByJ,IAAVzJ,IAC9BsD,QAAQC,MAAM,mBAAmBm0G,wDAE5BuE,KAAiB7oC,IAGrB6oC,CACT,yBAGsC,CAAC54G,EAAK84G,KAGtCh6G,MAAM+F,QAAQ7E,EAAI0zE,oBACpB1zE,EAAI0zE,iBAAmBolC,EAAU94G,EAAI0zE,6CAOlC,SAAkC3D,GAEvC,OADAl3C,GAAQ,GAAKk3C,EACNgpC,GAAkBlgF,GAC3B,0BCvCO,SAAS5yB,GAAci8E,GAC5B,GAAoB,iBAATA,GAA8B,OAATA,EAC9B,OAAO,EAET,MAAMpkF,EAAYT,OAAOoJ,eAAey7E,GACxC,QAAsB,OAAdpkF,GAAsBA,IAAcT,OAAOS,WAAkD,OAArCT,OAAOoJ,eAAe3I,IAA0BuD,OAAOC,eAAe4gF,GAAW7gF,OAAO+sC,YAAY8zC,EACtK,CACA,SAAS82B,GAAU72G,GACjB,GAAkBsC,EAAM03F,eAAeh6F,KAAY8D,GAAc9D,GAC/D,OAAOA,EAET,MAAMgsE,EAAS,CAAA,EAIf,OAHA9wE,OAAOuF,KAAKT,GAAQ4E,QAAQ1D,IAC1B8qE,EAAO9qE,GAAO21G,GAAU72G,EAAOkB,MAE1B8qE,CACT,CACe,SAAS8qC,GAAUtoG,EAAQxO,EAAQkL,EAAU,CAC1D6rG,OAAO,IAEP,MAAM/qC,EAAS9gE,EAAQ6rG,MAAQ7iC,GAAS,CAAA,EAAI1lE,GAAUA,EAiBtD,OAhBI1K,GAAc0K,IAAW1K,GAAc9D,IACzC9E,OAAOuF,KAAKT,GAAQ4E,QAAQ1D,IACRoB,EAAM03F,eAAeh6F,EAAOkB,IAC5C8qE,EAAO9qE,GAAOlB,EAAOkB,GACZ4C,GAAc9D,EAAOkB,KAEhChG,OAAOS,UAAUC,eAAeC,KAAK2S,EAAQtN,IAAQ4C,GAAc0K,EAAOtN,IAExE8qE,EAAO9qE,GAAO41G,GAAUtoG,EAAOtN,GAAMlB,EAAOkB,GAAMgK,GACzCA,EAAQ6rG,MACjB/qC,EAAO9qE,GAAO4C,GAAc9D,EAAOkB,IAAQ21G,GAAU72G,EAAOkB,IAAQlB,EAAOkB,GAE3E8qE,EAAO9qE,GAAOlB,EAAOkB,KAIpB8qE,CACT,4IC/BA,IAAIrqE,EAAqBzC,OAAOsD,IAAI,8BAClCxE,EAAoBkB,OAAOsD,IAAI,gBAC/BjF,EAAsB2B,OAAOsD,IAAI,kBACjC/E,EAAyByB,OAAOsD,IAAI,qBACpChF,EAAsB0B,OAAOsD,IAAI,kBACjCtE,EAAsBgB,OAAOsD,IAAI,kBACjCvE,EAAqBiB,OAAOsD,IAAI,iBAChCpE,EAAyBc,OAAOsD,IAAI,qBACpC9E,EAAsBwB,OAAOsD,IAAI,kBACjC7E,EAA2BuB,OAAOsD,IAAI,uBACtCjE,EAAkBW,OAAOsD,IAAI,cAC7BhE,EAAkBU,OAAOsD,IAAI,cAC7Bw0G,EAA6B93G,OAAOsD,IAAI,yBACxCpF,EAAyB8B,OAAOsD,IAAI,0BACtC,SAASskG,EAAO34F,GACd,GAAI,iBAAoBA,GAAU,OAASA,EAAQ,CACjD,IAAIhR,EAAWgR,EAAOhR,SACtB,OAAQA,GACN,KAAKwE,EACH,OAAUwM,EAASA,EAAOzT,MACxB,KAAK6C,EACL,KAAKC,EACL,KAAKC,EACL,KAAKC,EACL,KAAKC,EACL,KAAKq5G,EACH,OAAO7oG,EACT,QACE,OAAUA,EAASA,GAAUA,EAAOhR,UAClC,KAAKc,EACL,KAAKG,EACL,KAAKI,EACL,KAAKD,EAEL,KAAKL,EACH,OAAOiQ,EACT,QACE,OAAOhR,GAGjB,KAAKa,EACH,OAAOb,EAEf,CACA,QACA85G,GAAArR,gBAA0B1nG,EAC1B+4G,GAAAzP,gBAA0BvpG,EAC1Bg5G,GAAA//F,QAAkBvV,EAClBs1G,GAAApR,WAAqBznG,EACrB64G,GAAAh0G,SAAmB1F,EACnB05G,GAAAnR,KAAetnG,EACfy4G,GAAAxP,KAAelpG,EACf04G,GAAApjC,OAAiB71E,EACjBi5G,GAAAlR,SAAmBvoG,EACnBy5G,GAAAjR,WAAqBvoG,EACrBw5G,GAAAhR,SAAmBvoG,EACnBu5G,GAAAC,aAAuBv5G,EACvBs5G,GAAA7Q,kBAA4B,SAAUj4F,GACpC,OAAO24F,EAAO34F,KAAYjQ,CAC5B,EACA+4G,GAAA5Q,kBAA4B,SAAUl4F,GACpC,OAAO24F,EAAO34F,KAAYlQ,CAC5B,EACAg5G,GAAAngG,UAAoB,SAAU3I,GAC5B,MACE,iBAAoBA,GACpB,OAASA,GACTA,EAAOhR,WAAawE,CAExB,EACAs1G,GAAA3Q,aAAuB,SAAUn4F,GAC/B,OAAO24F,EAAO34F,KAAY/P,CAC5B,EACA64G,GAAA1Q,WAAqB,SAAUp4F,GAC7B,OAAO24F,EAAO34F,KAAY5Q,CAC5B,EACA05G,GAAAzQ,OAAiB,SAAUr4F,GACzB,OAAO24F,EAAO34F,KAAY3P,CAC5B,EACAy4G,GAAAxQ,OAAiB,SAAUt4F,GACzB,OAAO24F,EAAO34F,KAAY5P,CAC5B,EACA04G,GAAArP,SAAmB,SAAUz5F,GAC3B,OAAO24F,EAAO34F,KAAYnQ,CAC5B,EACAi5G,GAAAvQ,WAAqB,SAAUv4F,GAC7B,OAAO24F,EAAO34F,KAAY3Q,CAC5B,EACAy5G,GAAAtQ,aAAuB,SAAUx4F,GAC/B,OAAO24F,EAAO34F,KAAY1Q,CAC5B,EACAw5G,GAAArQ,WAAqB,SAAUz4F,GAC7B,OAAO24F,EAAO34F,KAAYzQ,CAC5B,EACAu5G,GAAAE,eAAyB,SAAUhpG,GACjC,OAAO24F,EAAO34F,KAAYxQ,CAC5B,EACAs5G,GAAApQ,mBAA6B,SAAUnsG,GACrC,MAAO,iBAAoBA,GACzB,mBAAsBA,GACtBA,IAAS6C,GACT7C,IAAS8C,GACT9C,IAAS+C,GACT/C,IAASgD,GACThD,IAASiD,GACR,iBAAoBjD,GACnB,OAASA,IACRA,EAAKyC,WAAaqB,GACjB9D,EAAKyC,WAAaoB,GAClB7D,EAAKyC,WAAac,GAClBvD,EAAKyC,WAAae,GAClBxD,EAAKyC,WAAaiB,GAClB1D,EAAKyC,WAAaC,QAClB,IAAW1C,EAAK08G,YAGxB,EACAH,GAAAnQ,OAAiBA;;;;;;;;;oCCrHjB,eAAiB/pG,QAAQC,IAAIC,UAC3B,WACE,SAAS6pG,EAAO34F,GACd,GAAI,iBAAoBA,GAAU,OAASA,EAAQ,CACjD,IAAIhR,EAAWgR,EAAOhR,SACtB,OAAQA,GACN,KAAKwE,EACH,OAAUwM,EAASA,EAAOzT,MACxB,KAAK6C,EACL,KAAKC,EACL,KAAKC,EACL,KAAKC,EACL,KAAKC,EACL,KAAKq5G,EACH,OAAO7oG,EACT,QACE,OAAUA,EAASA,GAAUA,EAAOhR,UAClC,KAAKc,EACL,KAAKG,EACL,KAAKI,EACL,KAAKD,EAEL,KAAKL,EACH,OAAOiQ,EACT,QACE,OAAOhR,GAGjB,KAAKa,EACH,OAAOb,EAEnB,CACA,CACI,IAAIwE,EAAqBzC,OAAOsD,IAAI,8BAClCxE,EAAoBkB,OAAOsD,IAAI,gBAC/BjF,EAAsB2B,OAAOsD,IAAI,kBACjC/E,EAAyByB,OAAOsD,IAAI,qBACpChF,EAAsB0B,OAAOsD,IAAI,kBACjCtE,EAAsBgB,OAAOsD,IAAI,kBACjCvE,EAAqBiB,OAAOsD,IAAI,iBAChCpE,EAAyBc,OAAOsD,IAAI,qBACpC9E,EAAsBwB,OAAOsD,IAAI,kBACjC7E,EAA2BuB,OAAOsD,IAAI,uBACtCjE,EAAkBW,OAAOsD,IAAI,cAC7BhE,EAAkBU,OAAOsD,IAAI,cAC7Bw0G,EAA6B93G,OAAOsD,IAAI,yBACxCpF,EAAyB8B,OAAOsD,IAAI,0BACtCmlG,GAAA/B,gBAA0B1nG,EAC1BypG,GAAAH,gBAA0BvpG,EAC1B0pG,GAAAzwF,QAAkBvV,EAClBgmG,GAAA9B,WAAqBznG,EACrBupG,GAAA1kG,SAAmB1F,EACnBoqG,GAAA7B,KAAetnG,EACfmpG,GAAAF,KAAelpG,EACfopG,GAAA9zB,OAAiB71E,EACjB2pG,GAAA5B,SAAmBvoG,EACnBmqG,GAAA3B,WAAqBvoG,EACrBkqG,GAAA1B,SAAmBvoG,EACnBiqG,GAAAuP,aAAuBv5G,EACvBgqG,GAAAvB,kBAA4B,SAAUj4F,GACpC,OAAO24F,EAAO34F,KAAYjQ,CAChC,EACIypG,GAAAtB,kBAA4B,SAAUl4F,GACpC,OAAO24F,EAAO34F,KAAYlQ,CAChC,EACI0pG,GAAA7wF,UAAoB,SAAU3I,GAC5B,MACE,iBAAoBA,GACpB,OAASA,GACTA,EAAOhR,WAAawE,CAE5B,EACIgmG,GAAArB,aAAuB,SAAUn4F,GAC/B,OAAO24F,EAAO34F,KAAY/P,CAChC,EACIupG,GAAApB,WAAqB,SAAUp4F,GAC7B,OAAO24F,EAAO34F,KAAY5Q,CAChC,EACIoqG,GAAAnB,OAAiB,SAAUr4F,GACzB,OAAO24F,EAAO34F,KAAY3P,CAChC,EACImpG,GAAAlB,OAAiB,SAAUt4F,GACzB,OAAO24F,EAAO34F,KAAY5P,CAChC,EACIopG,GAAAC,SAAmB,SAAUz5F,GAC3B,OAAO24F,EAAO34F,KAAYnQ,CAChC,EACI2pG,GAAAjB,WAAqB,SAAUv4F,GAC7B,OAAO24F,EAAO34F,KAAY3Q,CAChC,EACImqG,GAAAhB,aAAuB,SAAUx4F,GAC/B,OAAO24F,EAAO34F,KAAY1Q,CAChC,EACIkqG,GAAAf,WAAqB,SAAUz4F,GAC7B,OAAO24F,EAAO34F,KAAYzQ,CAChC,EACIiqG,GAAAwP,eAAyB,SAAUhpG,GACjC,OAAO24F,EAAO34F,KAAYxQ,CAChC,EACIgqG,GAAAd,mBAA6B,SAAUnsG,GACrC,MAAO,iBAAoBA,GACzB,mBAAsBA,GACtBA,IAAS6C,GACT7C,IAAS8C,GACT9C,IAAS+C,GACT/C,IAASgD,GACThD,IAASiD,GACR,iBAAoBjD,GACnB,OAASA,IACRA,EAAKyC,WAAaqB,GACjB9D,EAAKyC,WAAaoB,GAClB7D,EAAKyC,WAAac,GAClBvD,EAAKyC,WAAae,GAClBxD,EAAKyC,WAAaiB,GAClB1D,EAAKyC,WAAaC,QAClB,IAAW1C,EAAK08G,YAG5B,EACIzP,GAAAb,OAAiBA,CAClB,CAvHD,sCCV2B,eAAzB/pG,QAAQC,IAAIC,SACduoG,GAAAjiG,QAAiBhB,KAEjBijG,GAAAjiG,QAAiBG,6BCDnB,MAAM2zG,GAAmB,oDAClB,SAASC,GAAgB3tG,GAC9B,MAAM8Y,EAAQ,GAAG9Y,IAAK8Y,MAAM40F,IAE5B,OADa50F,GAASA,EAAM,IACb,EACjB,CACA,SAAS80F,GAAyB3vD,EAAW4vD,EAAW,IACtD,OAAO5vD,EAAUvqD,aAAeuqD,EAAUtqD,MAAQg6G,GAAgB1vD,IAAc4vD,CAClF,CACA,SAASC,GAAeC,EAAWr5G,EAAWs5G,GAC5C,MAAMC,EAAeL,GAAyBl5G,GAC9C,OAAOq5G,EAAUr6G,cAAiC,KAAjBu6G,EAAsB,GAAGD,KAAeC,KAAkBD,EAC7F,gDAOe,SAAwB/vD,GACrC,GAAiB,MAAbA,EAAJ,CAGA,GAAyB,iBAAdA,EACT,OAAOA,EAET,GAAyB,mBAAdA,EACT,OAAO2vD,GAAyB3vD,EAAW,aAI7C,GAAyB,iBAAdA,EACT,OAAQA,EAAUzqD,UAChB,KAAK0oG,GAAAA,WACH,OAAO4R,GAAe7vD,EAAWA,EAAUtpD,OAAQ,cACrD,KAAKmpG,GAAAA,KACH,OAAOgQ,GAAe7vD,EAAWA,EAAUltD,KAAM,QACnD,QACE,OAhBN,CAoBF,wBC5CA,MAAMwrB,GAAY,CAAC,SAAU,OAAQ,QAmBtB,SAAS2xF,GAAkBC,GACxC,MAAMnsE,OAGFA,EAAS,CACPosE,GAAI,EAEJhT,GAAI,IAEJiT,GAAI,IAEJhT,GAAI,KAEJiT,GAAI,MACL79F,KACDA,EAAO,KAAIqyF,KACXA,EAAO,GACLqL,EACJr+E,EAAQ1kB,GAA8B+iG,EAAa5xF,IAC/CgyF,EAlCsBvsE,KAC5B,MAAMwsE,EAAqBj9G,OAAOuF,KAAKkrC,GAAQvnC,IAAIlD,IAAG,CACpDA,MACAkW,IAAKu0B,EAAOzqC,OACP,GAGP,OADAi3G,EAAmBx9C,KAAK,CAACy9C,EAAaC,IAAgBD,EAAYhhG,IAAMihG,EAAYjhG,KAC7E+gG,EAAmB5+D,OAAO,CAAC2qD,EAAKj2F,IAC9BimE,GAAS,CAAA,EAAIgwB,EAAK,CACvB,CAACj2F,EAAI/M,KAAM+M,EAAImJ,MAEhB,CAAA,IAuBkBkhG,CAAsB3sE,GACrClrC,EAAOvF,OAAOuF,KAAKy3G,GACzB,SAASnuE,EAAG7oC,GAEV,MAAO,qBAD8B,iBAAhByqC,EAAOzqC,GAAoByqC,EAAOzqC,GAAOA,IAC1BkZ,IACtC,CACA,SAASkvB,EAAKpoC,GAEZ,MAAO,sBAD8B,iBAAhByqC,EAAOzqC,GAAoByqC,EAAOzqC,GAAOA,GAC1BurG,EAAO,MAAMryF,IACnD,CACA,SAASm+F,EAAQziG,EAAON,GACtB,MAAMgjG,EAAW/3G,EAAKvE,QAAQsZ,GAC9B,MAAO,qBAA8C,iBAAlBm2B,EAAO71B,GAAsB61B,EAAO71B,GAASA,IAAQsE,uBAA2C,IAAbo+F,GAAqD,iBAA3B7sE,EAAOlrC,EAAK+3G,IAA0B7sE,EAAOlrC,EAAK+3G,IAAahjG,GAAOi3F,EAAO,MAAMryF,IACrO,CAkBA,OAAO85D,GAAS,CACdzzE,OACAkrC,OAAQusE,EACRnuE,KACAT,OACAivE,UACAtgC,KAvBF,SAAc/2E,GACZ,OAAIT,EAAKvE,QAAQgF,GAAO,EAAIT,EAAKhF,OACxB88G,EAAQr3G,EAAKT,EAAKA,EAAKvE,QAAQgF,GAAO,IAExC6oC,EAAG7oC,EACZ,EAmBEu3G,IAlBF,SAAav3G,GAEX,MAAMw3G,EAAWj4G,EAAKvE,QAAQgF,GAC9B,OAAiB,IAAbw3G,EACK3uE,EAAGtpC,EAAK,IAEbi4G,IAAaj4G,EAAKhF,OAAS,EACtB6tC,EAAK7oC,EAAKi4G,IAEZH,EAAQr3G,EAAKT,EAAKA,EAAKvE,QAAQgF,GAAO,IAAI22B,QAAQ,SAAU,qBACrE,EASEzd,QACCqf,EACL,CCjFA,MAAMgyE,GAAQ,CACZtuC,aAAc,GCAVw7C,GAA8C,eAAzB57G,QAAQC,IAAIC,SAA4ByvG,GAAUxB,UAAU,CAACwB,GAAU5C,OAAQ4C,GAAUxzF,OAAQwzF,GAAUv+F,OAAQu+F,GAAUrhE,QAAU,CAAA,ECAlK,SAASrX,GAAMkwE,EAAKnkB,GAClB,OAAKA,EAGE+2B,GAAU5S,EAAKnkB,EAAM,CAC1Bg3B,OAAO,IAHA7S,CAKX,CCDO,MAAMv4D,GAAS,CACpBosE,GAAI,EAEJhT,GAAI,IAEJiT,GAAI,IAEJhT,GAAI,KAEJiT,GAAI,MAEAW,GAAqB,CAGzBn4G,KAAM,CAAC,KAAM,KAAM,KAAM,KAAM,MAC/BspC,GAAI7oC,GAAO,qBAAqByqC,GAAOzqC,SAElC,SAAS23G,GAAkBl5G,EAAO2qG,EAAWwO,GAClD,MAAMpjD,EAAQ/1D,EAAM+1D,OAAS,CAAA,EAC7B,GAAI/4D,MAAM+F,QAAQ4nG,GAAY,CAC5B,MAAMyO,EAAmBrjD,EAAMoiD,aAAec,GAC9C,OAAOtO,EAAU/wD,OAAO,CAAC2qD,EAAKnkB,EAAMjxE,KAClCo1F,EAAI6U,EAAiBhvE,GAAGgvE,EAAiBt4G,KAAKqO,KAAWgqG,EAAmBxO,EAAUx7F,IAC/Eo1F,GACN,CAAA,EACL,CACA,GAAyB,iBAAdoG,EAAwB,CACjC,MAAMyO,EAAmBrjD,EAAMoiD,aAAec,GAC9C,OAAO19G,OAAOuF,KAAK6pG,GAAW/wD,OAAO,CAAC2qD,EAAK8U,KAEzC,QAAI99G,OAAOuF,KAAKs4G,EAAiBptE,QAAUA,IAAQzvC,QAAQ88G,GAAoB,CAE7E9U,EADiB6U,EAAiBhvE,GAAGivE,IACrBF,EAAmBxO,EAAU0O,GAAaA,EAC5D,KAAO,CACL,MAAMC,EAASD,EACf9U,EAAI+U,GAAU3O,EAAU2O,EAC1B,CACA,OAAO/U,GACN,CAAA,EACL,CAEA,OADe4U,EAAmBxO,EAEpC,CAsCO,SAAS4O,GAAwBC,EAAgB3+G,GACtD,OAAO2+G,EAAe5/D,OAAO,CAAC2qD,EAAKhjG,KACjC,MAAMk4G,EAAmBlV,EAAIhjG,GAK7B,QAJ4Bk4G,GAA6D,IAAzCl+G,OAAOuF,KAAK24G,GAAkB39G,gBAErEyoG,EAAIhjG,GAENgjG,GACN1pG,EACL,CC7FO,SAAS6+G,GAAQprG,EAAK1E,EAAM+vG,GAAY,GAC7C,IAAK/vG,GAAwB,iBAATA,EAClB,OAAO,KAIT,GAAI0E,GAAOA,EAAIsrG,MAAQD,EAAW,CAChC,MAAMliG,EAAM,QAAQ7N,IAAOuc,MAAM,KAAKyzB,OAAO,CAAC2qD,EAAKnkB,IAASmkB,GAAOA,EAAInkB,GAAQmkB,EAAInkB,GAAQ,KAAM9xE,GACjG,GAAW,MAAPmJ,EACF,OAAOA,CAEX,CACA,OAAO7N,EAAKuc,MAAM,KAAKyzB,OAAO,CAAC2qD,EAAKnkB,IAC9BmkB,GAAoB,MAAbA,EAAInkB,GACNmkB,EAAInkB,GAEN,KACN9xE,EACL,CACO,SAASurG,GAAcC,EAAc1vG,EAAW2vG,EAAgBC,EAAYD,GACjF,IAAI76G,EAWJ,OATEA,EAD0B,mBAAjB46G,EACDA,EAAaC,GACZ/8G,MAAM+F,QAAQ+2G,GACfA,EAAaC,IAAmBC,EAEhCN,GAAQI,EAAcC,IAAmBC,EAE/C5vG,IACFlL,EAAQkL,EAAUlL,EAAO86G,EAAWF,IAE/B56G,CACT,CACA,SAASrE,GAAM0Q,GACb,MAAMkpB,KACJA,EAAIwlF,YACJA,EAAc1uG,EAAQkpB,KAAIylF,SAC1BA,EAAQ9vG,UACRA,GACEmB,EAIEvB,EAAKhK,IACT,GAAmB,MAAfA,EAAMy0B,GACR,OAAO,KAET,MAAMk2E,EAAY3qG,EAAMy0B,GAElBqlF,EAAeJ,GADP15G,EAAM+1D,MACgBmkD,IAAa,CAAA,EAcjD,OAAOhB,GAAkBl5G,EAAO2qG,EAbLoP,IACzB,IAAI76G,EAAQ26G,GAAcC,EAAc1vG,EAAW2vG,GAKnD,OAJIA,IAAmB76G,GAAmC,iBAAnB66G,IAErC76G,EAAQ26G,GAAcC,EAAc1vG,EAAW,GAAGqqB,IAA0B,YAAnBslF,EAA+B,GAAKpJ,GAAWoJ,KAAmBA,KAEzG,IAAhBE,EACK/6G,EAEF,CACL+6G,CAACA,GAAc/6G,MASrB,OAJA8K,EAAG+nG,UAAqC,eAAzB30G,QAAQC,IAAIC,SAA4B,CACrDm3B,CAACA,GAAOukF,IACN,CAAA,EACJhvG,EAAGmwG,YAAc,CAAC1lF,GACXzqB,CACT,CCpEA,MAAMqI,GAAa,CACjBzL,EAAG,SACH7K,EAAG,WAECq+G,GAAa,CACjB3+G,EAAG,MACH8I,EAAG,QACH4B,EAAG,SACHpJ,EAAG,OACHiC,EAAG,CAAC,OAAQ,SACZ8G,EAAG,CAAC,MAAO,WAEPu0G,GAAU,CACdC,QAAS,KACTC,QAAS,KACTC,SAAU,KACVC,SAAU,MAMNC,GC3BS,SAAiB1wG,GAC9B,MAAMg3B,EAAQ,CAAA,EACd,OAAOurC,SACcjoE,IAAf08B,EAAMurC,KACRvrC,EAAMurC,GAAOviE,EAAGuiE,IAEXvrC,EAAMurC,GAEjB,CDmByBD,CAAQ73C,IAE/B,GAAIA,EAAK34B,OAAS,EAAG,CACnB,IAAIu+G,GAAQ5lF,GAGV,MAAO,CAACA,GAFRA,EAAO4lF,GAAQ5lF,EAInB,CACA,MAAOxtB,EAAGd,GAAKsuB,EAAKtO,MAAM,IACpBoxC,EAAWllD,GAAWpL,GACtBshB,EAAY6xF,GAAWj0G,IAAM,GACnC,OAAOnJ,MAAM+F,QAAQwlB,GAAaA,EAAU9jB,IAAI6+C,GAAOiU,EAAWjU,GAAO,CAACiU,EAAWhvC,KAE1EoyF,GAAa,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,SAAU,YAAa,cAAe,eAAgB,aAAc,UAAW,UAAW,eAAgB,oBAAqB,kBAAmB,cAAe,mBAAoB,kBAC5OC,GAAc,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,UAAW,aAAc,eAAgB,gBAAiB,cAAe,WAAY,WAAY,gBAAiB,qBAAsB,mBAAoB,eAAgB,oBAAqB,mBAChQC,GAAc,IAAIF,MAAeC,IAChC,SAASE,GAAgB/kD,EAAOmkD,EAAU30B,EAAc9jF,GAC7D,IAAIs5G,EACJ,MAAMC,EAA+D,OAA/CD,EAAWrB,GAAQ3jD,EAAOmkD,GAAU,IAAkBa,EAAWx1B,EACvF,MAA4B,iBAAjBy1B,EACFlxC,GACc,iBAARA,EACFA,GAEoB,eAAzB1sE,QAAQC,IAAIC,UACK,iBAARwsE,GACT3rE,QAAQC,MAAM,iBAAiBqD,8CAAqDqoE,MAGjFkxC,EAAelxC,GAGtB9sE,MAAM+F,QAAQi4G,GACTlxC,GACc,iBAARA,EACFA,GAEoB,eAAzB1sE,QAAQC,IAAIC,WACTqL,OAAO+zD,UAAUoN,GAEXA,EAAMkxC,EAAal/G,OAAS,GACrCqC,QAAQC,MAAM,CAAC,4BAA4B0rE,gBAAmB,6BAA6BnsD,KAAKnN,UAAUwqG,MAAkB,GAAGlxC,OAASkxC,EAAal/G,OAAS,0CAA0CmF,KAAK,OAF7M9C,QAAQC,MAAM,CAAC,oBAAoB87G,qJAAiKA,oBAA2Bj5G,KAAK,QAKjO+5G,EAAalxC,IAGI,mBAAjBkxC,EACFA,GAEoB,eAAzB59G,QAAQC,IAAIC,UACda,QAAQC,MAAM,CAAC,oBAAoB87G,cAAqBc,iBAA6B,kDAAkD/5G,KAAK,OAEvI,OACT,CACO,SAASg6G,GAAmBllD,GACjC,OAAO+kD,GAAgB/kD,EAAO,UAAW,EAAG,UAC9C,CACO,SAASmlD,GAASC,EAAaxQ,GACpC,GAAyB,iBAAdA,GAAuC,MAAbA,EACnC,OAAOA,EAET,MACM/vD,EAAcugE,EADRnvG,KAAK89D,IAAI6gC,IAErB,OAAIA,GAAa,EACR/vD,EAEkB,iBAAhBA,GACDA,EAEH,IAAIA,GACb,CAOA,SAASwgE,GAAmBp7G,EAAOc,EAAM2zB,EAAM0mF,GAG7C,IAA2B,IAAvBr6G,EAAKvE,QAAQk4B,GACf,OAAO,KAET,MACM0kF,EAbD,SAA+BkC,EAAeF,GACnD,OAAOxQ,GAAa0Q,EAAczhE,OAAO,CAAC2qD,EAAK0V,KAC7C1V,EAAI0V,GAAeiB,GAASC,EAAaxQ,GAClCpG,GACN,CAAA,EACL,CAQ6B+W,CADLZ,GAAiBjmF,GACyB0mF,GAEhE,OAAOjC,GAAkBl5G,EADPA,EAAMy0B,GACmB0kF,EAC7C,CACA,SAASt+G,GAAMmF,EAAOc,GACpB,MAAMq6G,EAAcF,GAAmBj7G,EAAM+1D,OAC7C,OAAOx6D,OAAOuF,KAAKd,GAAOyE,IAAIgwB,GAAQ2mF,GAAmBp7G,EAAOc,EAAM2zB,EAAM0mF,IAAcvhE,OAAOvlB,GAAO,GAC1G,CACO,SAAS8pC,GAAOn+D,GACrB,OAAOnF,GAAMmF,EAAO26G,GACtB,CAMO,SAASv8C,GAAQp+D,GACtB,OAAOnF,GAAMmF,EAAO46G,GACtB,CElIA,SAASl2D,MAAWupB,GAClB,MAAMstC,EAAWttC,EAAOr0B,OAAO,CAAC2qD,EAAK1pG,KACnCA,EAAMs/G,YAAYl1G,QAAQwvB,IACxB8vE,EAAI9vE,GAAQ55B,IAEP0pG,GACN,CAAA,GAIGv6F,EAAKhK,GACFzE,OAAOuF,KAAKd,GAAO45C,OAAO,CAAC2qD,EAAK9vE,IACjC8mF,EAAS9mF,GACJJ,GAAMkwE,EAAKgX,EAAS9mF,GAAMz0B,IAE5BukG,EACN,CAAA,GAIL,OAFAv6F,EAAG+nG,UAAqC,eAAzB30G,QAAQC,IAAIC,SAA4B2wE,EAAOr0B,OAAO,CAAC2qD,EAAK1pG,IAAUU,OAAOC,OAAO+oG,EAAK1pG,EAAMk3G,WAAY,CAAA,GAAM,CAAA,EAChI/nG,EAAGmwG,YAAclsC,EAAOr0B,OAAO,CAAC2qD,EAAK1pG,IAAU0pG,EAAIrnG,OAAOrC,EAAMs/G,aAAc,IACvEnwG,CACT,CCjBO,SAASwxG,GAAgBt8G,GAC9B,MAAqB,iBAAVA,EACFA,EAEF,GAAGA,WACZ,CACA,SAASu8G,GAAkBhnF,EAAMrqB,GAC/B,OAAOvP,GAAM,CACX45B,OACAylF,SAAU,UACV9vG,aAEJ,CH2GA+zD,GAAO4zC,UAAqC,eAAzB30G,QAAQC,IAAIC,SAA4Bq9G,GAAW/gE,OAAO,CAACtrC,EAAK/M,KACjF+M,EAAI/M,GAAOy3G,GACJ1qG,GACN,CAAA,GAAM,CAAA,EACT6vD,GAAOg8C,YAAcQ,GAIrBv8C,GAAQ2zC,UAAqC,eAAzB30G,QAAQC,IAAIC,SAA4Bs9G,GAAYhhE,OAAO,CAACtrC,EAAK/M,KACnF+M,EAAI/M,GAAOy3G,GACJ1qG,GACN,CAAA,GAAM,CAAA,EACT8vD,GAAQ+7C,YAAcS,GAIuB,eAAzBx9G,QAAQC,IAAIC,UAA4Bu9G,GAAYjhE,OAAO,CAACtrC,EAAK/M,KACnF+M,EAAI/M,GAAOy3G,GACJ1qG,GACN,CAAA,GG7HI,MAAMyzD,GAAS05C,GAAkB,SAAUD,IACrC14E,GAAY24E,GAAkB,YAAaD,IAC3Cz4E,GAAc04E,GAAkB,cAAeD,IAC/Cx4E,GAAey4E,GAAkB,eAAgBD,IACjDE,GAAaD,GAAkB,aAAcD,IAC7Cj+C,GAAck+C,GAAkB,eAChCE,GAAiBF,GAAkB,kBACnCG,GAAmBH,GAAkB,oBACrCI,GAAoBJ,GAAkB,qBACtCK,GAAkBL,GAAkB,mBACpC/3D,GAAU+3D,GAAkB,UAAWD,IACvCO,GAAeN,GAAkB,gBAIjCj+C,GAAex9D,IAC1B,QAA2BsE,IAAvBtE,EAAMw9D,cAAqD,OAAvBx9D,EAAMw9D,aAAuB,CACnE,MAAM29C,EAAcL,GAAgB96G,EAAM+1D,MAAO,qBAAsB,EAAG,gBACpEojD,EAAqBxO,IAAS,CAClCntC,aAAc09C,GAASC,EAAaxQ,KAEtC,OAAOuO,GAAkBl5G,EAAOA,EAAMw9D,aAAc27C,EACtD,CACA,OAAO,MAET37C,GAAau0C,UAAqC,eAAzB30G,QAAQC,IAAIC,SAA4B,CAC/DkgE,aAAcw7C,IACZ,CAAA,EACJx7C,GAAa28C,YAAc,CAAC,gBACZz1D,GAAQqd,GAAQj/B,GAAWC,GAAaC,GAAc04E,GAAYn+C,GAAao+C,GAAgBC,GAAkBC,GAAmBC,GAAiBt+C,GAAc9Z,GAASq4D,ICvCrL,MAAMh+C,GAAM/9D,IACjB,QAAkBsE,IAAdtE,EAAM+9D,KAAmC,OAAd/9D,EAAM+9D,IAAc,CACjD,MAAMo9C,EAAcL,GAAgB96G,EAAM+1D,MAAO,UAAW,EAAG,OACzDojD,EAAqBxO,IAAS,CAClC5sC,IAAKm9C,GAASC,EAAaxQ,KAE7B,OAAOuO,GAAkBl5G,EAAOA,EAAM+9D,IAAKo7C,EAC7C,CACA,OAAO,MAETp7C,GAAIg0C,UAAqC,eAAzB30G,QAAQC,IAAIC,SAA4B,CACtDygE,IAAKi7C,IACH,CAAA,EACJj7C,GAAIo8C,YAAc,CAAC,OAIZ,MAAM6B,GAAYh8G,IACvB,QAAwBsE,IAApBtE,EAAMg8G,WAA+C,OAApBh8G,EAAMg8G,UAAoB,CAC7D,MAAMb,EAAcL,GAAgB96G,EAAM+1D,MAAO,UAAW,EAAG,aACzDojD,EAAqBxO,IAAS,CAClCqR,UAAWd,GAASC,EAAaxQ,KAEnC,OAAOuO,GAAkBl5G,EAAOA,EAAMg8G,UAAW7C,EACnD,CACA,OAAO,MAET6C,GAAUjK,UAAqC,eAAzB30G,QAAQC,IAAIC,SAA4B,CAC5D0+G,UAAWhD,IACT,CAAA,EACJgD,GAAU7B,YAAc,CAAC,aAIlB,MAAM8B,GAASj8G,IACpB,QAAqBsE,IAAjBtE,EAAMi8G,QAAyC,OAAjBj8G,EAAMi8G,OAAiB,CACvD,MAAMd,EAAcL,GAAgB96G,EAAM+1D,MAAO,UAAW,EAAG,UACzDojD,EAAqBxO,IAAS,CAClCsR,OAAQf,GAASC,EAAaxQ,KAEhC,OAAOuO,GAAkBl5G,EAAOA,EAAMi8G,OAAQ9C,EAChD,CACA,OAAO,MAET8C,GAAOlK,UAAqC,eAAzB30G,QAAQC,IAAIC,SAA4B,CACzD2+G,OAAQjD,IACN,CAAA,EACJiD,GAAO9B,YAAc,CAAC,UCrDf,SAAS+B,GAAiBh9G,EAAO86G,GACtC,MAAkB,SAAdA,EACKA,EAEF96G,CACT,CD4EawlD,GAAQqZ,GAAKi+C,GAAWC,GA3BXphH,GAAM,CAC9B45B,KAAM,eAEe55B,GAAM,CAC3B45B,KAAM,YAEoB55B,GAAM,CAChC45B,KAAM,iBAEuB55B,GAAM,CACnC45B,KAAM,oBAEoB55B,GAAM,CAChC45B,KAAM,iBAE2B55B,GAAM,CACvC45B,KAAM,wBAEwB55B,GAAM,CACpC45B,KAAM,qBAEyB55B,GAAM,CACrC45B,KAAM,sBAEgB55B,GAAM,CAC5B45B,KAAM,cE9ED,SAAS0nF,GAAgBj9G,GAC9B,OAAOA,GAAS,GAAe,IAAVA,EAAyB,IAARA,EAAH,IAAoBA,CACzD,CDmBgBwlD,GAhBK7pD,GAAM,CACzB45B,KAAM,QACNylF,SAAU,UACV9vG,UAAW8xG,KAEUrhH,GAAM,CAC3B45B,KAAM,UACNwlF,YAAa,kBACbC,SAAU,UACV9vG,UAAW8xG,KAEkBrhH,GAAM,CACnC45B,KAAM,kBACNylF,SAAU,UACV9vG,UAAW8xG,MChBN,MAAMx+E,GAAQ7iC,GAAM,CACzB45B,KAAM,QACNrqB,UAAW+xG,KAEA55D,GAAWviD,IACtB,QAAuBsE,IAAnBtE,EAAMuiD,UAA6C,OAAnBviD,EAAMuiD,SAAmB,CAC3D,MAAM42D,EAAqBxO,IACzB,IAAIyR,EAAcC,EAClB,MAAMhD,GAA8C,OAA/B+C,EAAep8G,EAAM+1D,QAA+D,OAA5CqmD,EAAeA,EAAajE,cAAgE,OAAvCiE,EAAeA,EAAapwE,aAAkB,EAASowE,EAAazR,KAAe2R,GAAkB3R,GACvN,OAAK0O,EAKgI,QAA/F,OAAhCgD,EAAgBr8G,EAAM+1D,QAAiE,OAA9CsmD,EAAgBA,EAAclE,kBAAuB,EAASkE,EAAc5hG,MAClH,CACL8nC,SAAU,GAAG82D,IAAar5G,EAAM+1D,MAAMoiD,YAAY19F,QAG/C,CACL8nC,SAAU82D,GAVH,CACL92D,SAAU45D,GAAgBxR,KAYhC,OAAOuO,GAAkBl5G,EAAOA,EAAMuiD,SAAU42D,EAClD,CACA,OAAO,MAET52D,GAAS43D,YAAc,CAAC,YACjB,MAAMoC,GAAW1hH,GAAM,CAC5B45B,KAAM,WACNrqB,UAAW+xG,KAEAx1F,GAAS9rB,GAAM,CAC1B45B,KAAM,SACNrqB,UAAW+xG,KAEAK,GAAY3hH,GAAM,CAC7B45B,KAAM,YACNrqB,UAAW+xG,KAEA7tD,GAAYzzD,GAAM,CAC7B45B,KAAM,YACNrqB,UAAW+xG,KAEYthH,GAAM,CAC7B45B,KAAM,OACNwlF,YAAa,QACb7vG,UAAW+xG,KAEathH,GAAM,CAC9B45B,KAAM,OACNwlF,YAAa,SACb7vG,UAAW+xG,KAKEz3D,GAAQhnB,GAAO6kB,GAAUg6D,GAAU51F,GAAQ61F,GAAWluD,GAH5CzzD,GAAM,CAC7B45B,KAAM,eCxDR,MAAMgoF,GAAkB,CAEtB16C,OAAQ,CACNm4C,SAAU,UACV9vG,UAAWoxG,IAEb14E,UAAW,CACTo3E,SAAU,UACV9vG,UAAWoxG,IAEbz4E,YAAa,CACXm3E,SAAU,UACV9vG,UAAWoxG,IAEbx4E,aAAc,CACZk3E,SAAU,UACV9vG,UAAWoxG,IAEbE,WAAY,CACVxB,SAAU,UACV9vG,UAAWoxG,IAEbj+C,YAAa,CACX28C,SAAU,WAEZyB,eAAgB,CACdzB,SAAU,WAEZ0B,iBAAkB,CAChB1B,SAAU,WAEZ2B,kBAAmB,CACjB3B,SAAU,WAEZ4B,gBAAiB,CACf5B,SAAU,WAEZx2D,QAAS,CACPw2D,SAAU,UACV9vG,UAAWoxG,IAEbO,aAAc,CACZ7B,SAAU,WAEZ18C,aAAc,CACZ08C,SAAU,qBACVr/G,MAAO2iE,IAGT/Z,MAAO,CACLy2D,SAAU,UACV9vG,UAAW8xG,IAEbQ,QAAS,CACPxC,SAAU,UACVD,YAAa,kBACb7vG,UAAW8xG,IAEbxN,gBAAiB,CACfwL,SAAU,UACV9vG,UAAW8xG,IAGbngH,EAAG,CACDlB,MAAOujE,IAETmC,GAAI,CACF1lE,MAAOujE,IAEToC,GAAI,CACF3lE,MAAOujE,IAETqC,GAAI,CACF5lE,MAAOujE,IAETsC,GAAI,CACF7lE,MAAOujE,IAET+B,GAAI,CACFtlE,MAAOujE,IAETgC,GAAI,CACFvlE,MAAOujE,IAETA,QAAS,CACPvjE,MAAOujE,IAET17B,WAAY,CACV7nC,MAAOujE,IAETz7B,aAAc,CACZ9nC,MAAOujE,IAETx7B,cAAe,CACb/nC,MAAOujE,IAETv7B,YAAa,CACXhoC,MAAOujE,IAETo8C,SAAU,CACR3/G,MAAOujE,IAETq8C,SAAU,CACR5/G,MAAOujE,IAETu+C,cAAe,CACb9hH,MAAOujE,IAETw+C,mBAAoB,CAClB/hH,MAAOujE,IAETy+C,iBAAkB,CAChBhiH,MAAOujE,IAET0+C,aAAc,CACZjiH,MAAOujE,IAET2+C,kBAAmB,CACjBliH,MAAOujE,IAET4+C,gBAAiB,CACfniH,MAAOujE,IAETx3D,EAAG,CACD/L,MAAOsjE,IAET4C,GAAI,CACFlmE,MAAOsjE,IAET6C,GAAI,CACFnmE,MAAOsjE,IAET8C,GAAI,CACFpmE,MAAOsjE,IAET+C,GAAI,CACFrmE,MAAOsjE,IAETwC,GAAI,CACF9lE,MAAOsjE,IAETyC,GAAI,CACF/lE,MAAOsjE,IAETA,OAAQ,CACNtjE,MAAOsjE,IAET8+C,UAAW,CACTpiH,MAAOsjE,IAET++C,YAAa,CACXriH,MAAOsjE,IAETg/C,aAAc,CACZtiH,MAAOsjE,IAETi/C,WAAY,CACVviH,MAAOsjE,IAETm8C,QAAS,CACPz/G,MAAOsjE,IAETo8C,QAAS,CACP1/G,MAAOsjE,IAETk/C,aAAc,CACZxiH,MAAOsjE,IAETm/C,kBAAmB,CACjBziH,MAAOsjE,IAETo/C,gBAAiB,CACf1iH,MAAOsjE,IAETq/C,YAAa,CACX3iH,MAAOsjE,IAETs/C,iBAAkB,CAChB5iH,MAAOsjE,IAETu/C,eAAgB,CACd7iH,MAAOsjE,IAGTw/C,aAAc,CACZ1D,aAAa,EACb7vG,UAAWlL,IAAK,CACd,eAAgB,CACd6oC,QAAS7oC,MAIf6oC,QAAS,CAAA,EACTu3B,SAAU,CAAA,EACVs+C,aAAc,CAAA,EACdp+C,WAAY,CAAA,EACZjS,WAAY,CAAA,EAEZswD,UAAW,CAAA,EACXC,cAAe,CAAA,EACfC,SAAU,CAAA,EACVC,eAAgB,CAAA,EAChBC,WAAY,CAAA,EACZC,aAAc,CAAA,EACdr+C,MAAO,CAAA,EACPH,KAAM,CAAA,EACNmP,SAAU,CAAA,EACVE,WAAY,CAAA,EACZovC,UAAW,CAAA,EACXC,aAAc,CAAA,EACdC,YAAa,CAAA,EAEbtgD,IAAK,CACHljE,MAAOkjE,IAETk+C,OAAQ,CACNphH,MAAOohH,IAETD,UAAW,CACTnhH,MAAOmhH,IAET1sC,WAAY,CAAA,EACZJ,QAAS,CAAA,EACTovC,aAAc,CAAA,EACdC,gBAAiB,CAAA,EACjBC,aAAc,CAAA,EACdC,oBAAqB,CAAA,EACrBC,iBAAkB,CAAA,EAClBC,kBAAmB,CAAA,EACnBC,SAAU,CAAA,EAEV9wG,SAAU,CAAA,EACVqiE,OAAQ,CACN+pC,SAAU,UAEZh8E,IAAK,CAAA,EACL1e,MAAO,CAAA,EACP2e,OAAQ,CAAA,EACR7e,KAAM,CAAA,EAENu/F,UAAW,CACT3E,SAAU,WAGZx8E,MAAO,CACLtzB,UAAW+xG,IAEb55D,SAAU,CACR1nD,MAAO0nD,IAETg6D,SAAU,CACRnyG,UAAW+xG,IAEbx1F,OAAQ,CACNvc,UAAW+xG,IAEbK,UAAW,CACTpyG,UAAW+xG,IAEb7tD,UAAW,CACTlkD,UAAW+xG,IAEb75E,UAAW,CAAA,EAEXw8E,WAAY,CACV5E,SAAU,cAEZ6E,SAAU,CACR7E,SAAU,cAEZ8E,UAAW,CACT9E,SAAU,cAEZpqC,WAAY,CACVoqC,SAAU,cAEZ+E,cAAe,CAAA,EACfC,cAAe,CAAA,EACfnvC,WAAY,CAAA,EACZovC,UAAW,CAAA,EACXC,WAAY,CACVnF,aAAa,EACbC,SAAU,eChRP,SAASmF,KACd,SAASC,EAAc7qF,EAAMhd,EAAKs+C,EAAO71D,GACvC,MAAMF,EAAQ,CACZy0B,CAACA,GAAOhd,EACRs+C,SAEIxqD,EAAUrL,EAAOu0B,GACvB,IAAKlpB,EACH,MAAO,CACLkpB,CAACA,GAAOhd,GAGZ,MAAMwiG,YACJA,EAAcxlF,EAAIylF,SAClBA,EAAQ9vG,UACRA,EAASvP,MACTA,GACE0Q,EACJ,GAAW,MAAPkM,EACF,OAAO,KAIT,GAAiB,eAAbyiG,GAAqC,YAARziG,EAC/B,MAAO,CACLgd,CAACA,GAAOhd,GAGZ,MAAMqiG,EAAeJ,GAAQ3jD,EAAOmkD,IAAa,CAAA,EACjD,GAAIr/G,EACF,OAAOA,EAAMmF,GAef,OAAOk5G,GAAkBl5G,EAAOyX,EAbLsiG,IACzB,IAAI76G,EAAQg8G,GAASpB,EAAc1vG,EAAW2vG,GAK9C,OAJIA,IAAmB76G,GAAmC,iBAAnB66G,IAErC76G,EAAQg8G,GAASpB,EAAc1vG,EAAW,GAAGqqB,IAA0B,YAAnBslF,EAA+B,GAAKpJ,GAAWoJ,KAAmBA,KAEpG,IAAhBE,EACK/6G,EAEF,CACL+6G,CAACA,GAAc/6G,IAIrB,CAoEA,OAnEA,SAASqgH,EAAgBv/G,GACvB,IAAIw/G,EACJ,MAAMC,GACJA,EAAE1pD,MACFA,EAAQ,CAAA,EAAE2pD,OACVA,GACE1/G,GAAS,CAAA,EACb,IAAKy/G,EACH,OAAO,KAET,MAAMv/G,EAA8D,OAApDs/G,EAAwBzpD,EAAM4pD,mBAA6BH,EAAwB/C,GAOnG,SAASmD,EAASC,GAChB,IAAIC,EAAWD,EACf,GAAuB,mBAAZA,EACTC,EAAWD,EAAQ9pD,QACd,GAAuB,iBAAZ8pD,EAEhB,OAAOA,EAET,IAAKC,EACH,OAAO,KAET,MAAMC,EVZL,SAAqCC,EAAmB,IAC7D,IAAIC,EAMJ,OAL8E,OAAlDA,EAAwBD,EAAiBl/G,WAAgB,EAASm/G,EAAsBrmE,OAAO,CAAC2qD,EAAKhjG,KAE/HgjG,EAD2Byb,EAAiB51E,GAAG7oC,IACrB,CAAA,EACnBgjG,GACN,CAAA,KAC0B,CAAA,CAC/B,CUI+B2b,CAA4BnqD,EAAMoiD,aACrDgI,EAAkB5kH,OAAOuF,KAAKi/G,GACpC,IAAIxlH,EAAMwlH,EA4BV,OA3BAxkH,OAAOuF,KAAKg/G,GAAU76G,QAAQm7G,IAC5B,MAAMlhH,GApFImhH,EAoFaP,EAASM,GApFb7zC,EAoFwBxW,EAnFvB,mBAAZsqD,EAAyBA,EAAQ9zC,GAAO8zC,GADxD,IAAkBA,EAAS9zC,EAqFnB,GAAIrtE,QACF,GAAqB,iBAAVA,EACT,GAAIgB,EAAOkgH,GACT7lH,EAAM85B,GAAM95B,EAAK+kH,EAAcc,EAAUlhH,EAAO62D,EAAO71D,QAClD,CACL,MAAMo8G,EAAoBpD,GAAkB,CAC1CnjD,SACC72D,EAAOF,IAAC,CACTohH,CAACA,GAAWphH,MAlG5B,YAAgCshH,GAC9B,MAAMpU,EAAUoU,EAAQ1mE,OAAO,CAAC94C,EAAM0N,IAAW1N,EAAK5D,OAAO3B,OAAOuF,KAAK0N,IAAU,IAC7E+xG,EAAQ,IAAI76G,IAAIwmG,GACtB,OAAOoU,EAAQ9zG,MAAMgC,GAAU+xG,EAAM9+E,OAASlmC,OAAOuF,KAAK0N,GAAQ1S,OACpE,CAgGkB0kH,CAAoBlE,EAAmBp9G,GAOzC3E,EAAM85B,GAAM95B,EAAK+hH,GANjB/hH,EAAI6lH,GAAYb,EAAgB,CAC9BE,GAAIvgH,EACJ62D,QACA2pD,QAAQ,GAKd,MAEAnlH,EAAM85B,GAAM95B,EAAK+kH,EAAcc,EAAUlhH,EAAO62D,EAAO71D,OAIxDw/G,GAAU3pD,EAAM0qD,iBACZ,CACL,YAAalH,GAAwB4G,EAAiB5lH,IAGnDg/G,GAAwB4G,EAAiB5lH,EAClD,CACA,OAAOyC,MAAM+F,QAAQ08G,GAAMA,EAAGh7G,IAAIm7G,GAAYA,EAASH,EACzD,CAEF,CACA,MAAMF,GAAkBF,KCzET,SAASqB,GAAYn/G,EAAK0sE,GAEvC,MAAMlY,EAAQ35D,KACd,GAAI25D,EAAM6jD,MAAgD,mBAAjC7jD,EAAM4qD,uBAAuC,CAGpE,MAAMrvD,EAAWyE,EAAM4qD,uBAAuBp/G,GAAK22B,QAAQ,eAAgB,eAC3E,MAAO,CACLo5B,CAACA,GAAW2c,EAEhB,CACA,OAAIlY,EAAM6qD,QAAQl6F,OAASnlB,EAClB0sE,EAEF,CAAA,CACT,CD2DAsxC,GAAgBpF,YAAc,CAAC,MElI/B,MAAM5zF,GAAY,CAAC,cAAe,UAAW,UAAW,SAQxD,SAASs6F,GAAYt1G,EAAU,MAAOqc,GACpC,MACIuwF,YAAa6H,EAAmB,CAAA,EAChCY,QAASE,EAAe,CAAA,EACxBzjD,QAAS0jD,EACTjV,MAAOkV,EAAa,CAAA,GAClBz1G,EACJuuB,EAAQ1kB,GAA8B7J,EAASgb,IAC3C4xF,EAAcD,GAAkB8H,GAChC3iD,ECdO,SAAuB0jD,EAAe,GAEnD,GAAIA,EAAaE,IACf,OAAOF,EAMT,MAAM32G,EAAY6wG,GAAmB,CACnC59C,QAAS0jD,IAEL1jD,EAAU,IAAI6jD,KACW,eAAzB9jH,QAAQC,IAAIC,WACR4jH,EAAUplH,QAAU,GACxBqC,QAAQC,MAAM,mEAAmE8iH,EAAUplH,YAG7D,IAArBolH,EAAUplH,OAAe,CAAC,GAAKolH,GAChCz8G,IAAIgxD,IACd,MAAM4W,EAASjiE,EAAUqrD,GACzB,MAAyB,iBAAX4W,EAAsB,GAAGA,MAAaA,IACnDprE,KAAK,MAGV,OADAo8D,EAAQ4jD,KAAM,EACP5jD,CACT,CDZkB8jD,CAAcJ,GAC9B,IAAIK,EAAWjK,GAAU,CACvBgB,cACA5vF,UAAW,MACX4oF,WAAY,CAAA,EAEZyP,QAASrsC,GAAS,CAChB7tD,KAAM,SACLo6F,GACHzjD,UACAyuC,MAAOv3B,GAAS,GAAIu3B,GAAOkV,IAC1BlnF,GAUH,OATAsnF,EAASV,YAAcA,GACvBU,EAAWx5F,EAAKgyB,OAAO,CAAC2qD,EAAK9uC,IAAa0hD,GAAU5S,EAAK9uC,GAAW2rD,GACpEA,EAASzB,kBAAoBprC,GAAS,GAAIkoC,GAA0B,MAAT3iF,OAAgB,EAASA,EAAM6lF,mBAC1FyB,EAASC,YAAc,SAAYrhH,GACjC,OAAOu/G,GAAgB,CACrBE,GAAIz/G,EACJ+1D,MAAO35D,MAEX,EACOglH,CACT,2GEvCA,MAAM76F,GAAY,CAAC,wEAmBJ,SAAsBvmB,GACnC,MACIy/G,GAAI6B,GACFthH,EACJ85B,EAAQ1kB,GAA8BpV,EAAOumB,KACzCg7F,YACJA,EAAWC,WACXA,GAvBexhH,KACjB,IAAIyhH,EAAuBrF,EAC3B,MAAM5qG,EAAS,CACb+vG,YAAa,CAAA,EACbC,WAAY,CAAA,GAERthH,EAAsI,OAA5HuhH,EAAiC,MAATzhH,GAAiD,OAA/Bo8G,EAAep8G,EAAM+1D,YAAiB,EAASqmD,EAAauD,mBAA6B8B,EAAwBhF,GAQ3K,OAPAlhH,OAAOuF,KAAKd,GAAOiF,QAAQwvB,IACrBv0B,EAAOu0B,GACTjjB,EAAO+vG,YAAY9sF,GAAQz0B,EAAMy0B,GAEjCjjB,EAAOgwG,WAAW/sF,GAAQz0B,EAAMy0B,KAG7BjjB,GAUHkwG,CAAW5nF,GACf,IAAI6nF,EAcJ,OAZEA,EADE3kH,MAAM+F,QAAQu+G,GACN,CAACC,KAAgBD,GACF,mBAATA,EACN,IAAI15F,KACZ,MAAMpW,EAAS8vG,KAAQ15F,GACvB,OAAKzjB,GAAcqN,GAGZ+iE,GAAS,CAAA,EAAIgtC,EAAa/vG,GAFxB+vG,GAKDhtC,GAAS,GAAIgtC,EAAaD,GAE/B/sC,GAAS,CAAA,EAAIitC,EAAY,CAC9B/B,GAAIkC,GAER,sGC7CA,IAAIzT,EAAyBtrG,KAC7BrH,OAAOqG,eAAeggH,GAAS,aAAc,CAC3C1iH,OAAO,IAET0iH,GAAA10E,QA2GA,SAAsB20E,EAAQ,IAC5B,MAAMC,QACJA,EAAOnL,aACPA,EAAeoL,EAAkBC,sBACjCA,EAAwBjN,EAAiBkN,sBACzCA,EAAwBlN,GACtB8M,EACEK,EAAWliH,IACR,EAAImiH,EAAiBj1E,UAAS,EAAIk1E,EAAUl1E,SAAS,CAAA,EAAIltC,EAAO,CACrE+1D,MAAOssD,GAAa,EAAID,EAAUl1E,SAAS,CAAA,EAAIltC,EAAO,CACpD22G,eACAmL,gBAKN,OADAI,EAASI,gBAAiB,EACnB,CAACpkH,EAAKqkH,EAAe,OAE1B,EAAIC,EAAcC,wBAAwBvkH,EAAK+vE,GAAUA,EAAOltE,OAAOlG,KAAoB,MAATA,GAAiBA,EAAMynH,kBACzG,MACI3kH,KAAMmC,EACN4tG,KAAMgV,EACNC,qBAAsBC,EACtBC,OAAQC,EAAWC,kBAGnBA,EAAoBC,EAAyBC,EAAqBP,KAChEH,EACJh3G,GAAU,EAAI23G,EAA+Bh2E,SAASq1E,EAAcY,GAChEC,EAAYtjH,GAAiBA,EAAcu2C,WAAW,QAAYqsE,EAAgB,aAAe,SAGjGC,OAAqDr+G,IAA9Bs+G,EAA0CA,EAGvEF,GAAmC,SAAlBA,GAA8C,SAAlBA,IAA4B,EACnEG,EAASC,IAAe,EAC9B,IAAI7lD,EACyB,eAAzB7/D,QAAQC,IAAIC,UACVwC,IAGFm9D,EAAQ,GAAGn9D,KAAiBmjH,EAAqBP,GAAiB,WAGtE,IAAIW,EAA0BtO,EAIR,SAAlB2N,GAA8C,SAAlBA,EAC9BW,EAA0BrB,EACjBU,EAETW,EAA0BpB,EA1IhC,SAAqB/jH,GACnB,MAAsB,iBAARA,GAIdA,EAAImjB,WAAW,GAAK,EACtB,CAqIe8xD,CAAYj1E,KAErBmlH,OAA0B/+G,GAE5B,MAAMg/G,GAAwB,EAAId,EAAct1E,SAAShvC,GAAK,EAAIkkH,EAAUl1E,SAAS,CACnF6nE,kBAAmBsO,EACnBpmD,SACC1xD,IACGg4G,EAAoBC,GAIC,mBAAdA,GAA4BA,EAAUnO,iBAAmBmO,IAAa,EAAIC,EAAWt/G,eAAeq/G,GACtGxjH,IACL,MAAM+1D,EAAQssD,EAAa,CACzBtsD,MAAO/1D,EAAM+1D,MACb4gD,eACAmL,YAEF,OAAO4B,EAAgBF,GAAW,EAAIpB,EAAUl1E,SAAS,CAAA,EAAIltC,EAAO,CAClE+1D,UACEA,EAAM0qD,iBAAmB2C,OAAY9+G,IAGtCk/G,EAEHG,EAAoB,CAACC,KAAaC,KACtC,IAAIC,EAAsBP,EAAkBK,GAC5C,MAAMG,EAA8BF,EAAcA,EAAYp/G,IAAI8+G,GAAqB,GACnFzjH,GAAiBijH,GACnBgB,EAA4B77G,KAAKlI,IAC/B,MAAM+1D,EAAQssD,GAAa,EAAID,EAAUl1E,SAAS,CAAA,EAAIltC,EAAO,CAC3D22G,eACAmL,aAEF,IAAK/rD,EAAMo7C,aAAep7C,EAAMo7C,WAAWrxG,KAAmBi2D,EAAMo7C,WAAWrxG,GAAesxG,eAC5F,OAAO,KAET,MAAMA,EAAiBr7C,EAAMo7C,WAAWrxG,GAAesxG,eACjD4S,EAAyB,CAAA,EAO/B,OALAzoH,OAAOmpC,QAAQ0sE,GAAgBnsG,QAAQ,EAAEg/G,EAASC,MAChDF,EAAuBC,GAAWP,EAAgBQ,GAAW,EAAI9B,EAAUl1E,SAAS,CAAA,EAAIltC,EAAO,CAC7F+1D,UACEA,EAAM0qD,iBAAmB,aAAUn8G,KAElCy+G,EAAkB/iH,EAAOgkH,KAGhClkH,IAAkB6iH,GACpBoB,EAA4B77G,KAAKlI,IAC/B,IAAImkH,EACJ,MAAMpuD,EAAQssD,GAAa,EAAID,EAAUl1E,SAAS,CAAA,EAAIltC,EAAO,CAC3D22G,eACAmL,aAGF,OAAO4B,EAAgB,CACrB5f,SAF6B,MAAT/tC,GAA2D,OAAzCouD,EAAoBpuD,EAAMo7C,aAAiF,OAAzDgT,EAAoBA,EAAkBrkH,SAA0B,EAASqkH,EAAkBrgB,WAGlL,EAAIse,EAAUl1E,SAAS,CAAA,EAAIltC,EAAO,CACnC+1D,UACEA,EAAM0qD,iBAAmB,aAAUn8G,KAGtCu+G,GACHkB,EAA4B77G,KAAKg6G,GAEnC,MAAMkC,EAAwBL,EAA4BjoH,OAAS+nH,EAAY/nH,OAC/E,GAAIkB,MAAM+F,QAAQ6gH,IAAaQ,EAAwB,EAAG,CACxD,MAAMC,EAAe,IAAIrnH,MAAMonH,GAAuBhhD,KAAK,IAE3D0gD,EAAsB,IAAIF,KAAaS,GACvCP,EAAoBrxC,IAAM,IAAImxC,EAASnxC,OAAQ4xC,EACvD,CACM,MAAMp8D,EAAYq7D,EAAsBQ,KAAwBC,GAChE,GAA6B,eAAzB3mH,QAAQC,IAAIC,SAA2B,CACzC,IAAII,EACAoC,IACFpC,EAAc,GAAGoC,KAAgB,EAAIwkH,EAAYp3E,SAASw1E,GAAiB,YAEzDp+G,IAAhB5G,IACFA,EAAc,WAAU,EAAI6mH,EAAgBr3E,SAAShvC,OAEvD+pD,EAAUvqD,YAAcA,CAChC,CAIM,OAHIQ,EAAIsmH,UACNv8D,EAAUu8D,QAAUtmH,EAAIsmH,SAEnBv8D,GAKT,OAHIq7D,EAAsBmB,aACxBd,EAAkBc,WAAanB,EAAsBmB,YAEhDd,EAEX,EA/PA/B,GAAA7M,kBAA4BA,EAC5B6M,GAAAG,wBAA6B,EAC7B,IAAIK,EAAYlU,yBCThB,SAAS35B,IACP,OAAOq5B,EAAAhqG,QAAiB2wE,EAAWh5E,OAAOC,OAASD,OAAOC,OAAO2H,OAAS,SAAUvH,GAClF,IAAK,IAAIU,EAAI,EAAGA,EAAIT,UAAUC,OAAQQ,IAAK,CACzC,IAAIb,EAAII,UAAUS,GAClB,IAAK,IAAIiI,KAAK9I,GAAG,CAAG,GAAEQ,eAAeC,KAAKT,EAAG8I,KAAO3I,EAAE2I,GAAK9I,EAAE8I,GACnE,CACI,OAAO3I,CACX,EAAKgyG,sBAA4B,EAAMA,EAAOhqG,QAAiB,QAAIgqG,EAAOhqG,QAAS2wE,EAASp4E,MAAM,KAAMN,UACxG,CACA+xG,EAAAhqG,QAAiB2wE,EAAUq5B,EAAAhqG,QAAAiqG,YAA4B,EAAMD,EAAOhqG,QAAiB,QAAIgqG,EAAOhqG,2BDC5Fs/G,EAAiChV,yBEDrCN,EAAAhqG,QATA,SAAuCW,EAAGjI,GACxC,GAAI,MAAQiI,EAAG,MAAO,CAAA,EACtB,IAAI9I,EAAI,CAAA,EACR,IAAK,IAAIG,KAAK2I,EAAG,GAAI,CAAA,EAAGtI,eAAeC,KAAKqI,EAAG3I,GAAI,CACjD,QAAWU,EAAEC,QAAQX,GAAI,SACzBH,EAAEG,GAAK2I,EAAE3I,EACb,CACE,OAAOH,CACT,EACgDmyG,EAAAhqG,QAAAiqG,YAA4B,EAAMD,EAAOhqG,QAAiB,QAAIgqG,EAAOhqG,2BFEjH4+G,EAWJ,SAAiClmH,EAAGiI,GAAK,GAAUjI,GAAKA,EAAEuxG,WAAY,OAAOvxG,EAAG,GAAI,OAASA,GAAK,iBAAmBA,GAAK,mBAAqBA,EAAG,MAAO,CAAE4wC,QAAS5wC,GAAK,IAAIb,EAAIipH,EAAyBngH,GAAI,GAAI9I,GAAKA,EAAE0J,IAAI7I,GAAI,OAAOb,EAAE4F,IAAI/E,GAAI,IAAIV,EAAI,CAAE+oH,UAAW,MAAQ19G,EAAI1L,OAAOqG,gBAAkBrG,OAAO6F,yBAA0B,IAAK,IAAI8D,KAAK5I,EAAG,GAAI,YAAc4I,GAAK3J,OAAOS,UAAUC,eAAeC,KAAKI,EAAG4I,GAAI,CAAE,IAAIvJ,EAAIsL,EAAI1L,OAAO6F,yBAAyB9E,EAAG4I,GAAK,KAAMvJ,IAAMA,EAAE0F,KAAO1F,EAAE0J,KAAO9J,OAAOqG,eAAehG,EAAGsJ,EAAGvJ,GAAKC,EAAEsJ,GAAK5I,EAAE4I,EAAG,CAAG,OAAOtJ,EAAEsxC,QAAU5wC,EAAGb,GAAKA,EAAE4J,IAAI/I,EAAGV,GAAIA,CAAE,CAX3jBgpH,CAAwBpb,IACxCia,EAAaha,GACb6a,EAAcpW,EAAuB2W,IACrCN,EAAkBrW,EAAuB4W,IACzCC,EAAe7W,EAAuB8W,IACtC7C,EAAmBjU,EAAuB+W,IAC9C,MAAM1+F,EAAY,CAAC,cACjBC,EAAa,CAAC,YACd28F,EAAa,CAAC,OAAQ,OAAQ,uBAAwB,SAAU,qBAElE,SAASuB,EAAyBpoH,GAAK,GAAI,mBAAqByO,QAAS,OAAO,KAAM,IAAIxG,EAAI,IAAIwG,QAAWtP,EAAI,IAAIsP,QAAW,OAAQ25G,EAA2B,SAAUpoH,GAAK,OAAOA,EAAIb,EAAI8I,CAAE,GAAIjI,EAAG,CAgB1M,SAASy4G,EAAkBtgF,GACzB,MAAgB,eAATA,GAAkC,UAATA,GAA6B,OAATA,GAA0B,OAATA,CACvE,CACA,SAASywF,EAAan3C,EAAYq1C,GAKhC,OAJIA,GAAar1C,GAAoC,iBAAfA,GAA2BA,EAAWE,SAAWF,EAAWE,OAAO53B,WAAW,YAElH03B,EAAWE,OAAS,UAAUm1C,KAAansF,OAAO82C,EAAWE,YAExDF,CACT,CACA,MAAMg0C,EAAqBH,GAAAG,oBAA6B,EAAIgD,EAAa73E,WACnE+1E,EAAuB1pG,GACtBA,EAGEA,EAAO4H,OAAO,GAAG6rB,cAAgBzzB,EAAOtc,MAAM,GAF5Csc,EAIX,SAAS8oG,GAAa1L,aACpBA,EAAY5gD,MACZA,EAAK+rD,QACLA,IAEA,OApCexzG,EAoCAynD,EAnCoB,IAA5Bx6D,OAAOuF,KAAKwN,GAAKxS,OAmCA66G,EAAe5gD,EAAM+rD,IAAY/rD,EApC3D,IAAiBznD,CAqCjB,CACA,SAAS00G,EAAyBtV,GAChC,OAAKA,EAGE,CAAC1tG,EAAOiuE,IAAWA,EAAOy/B,GAFxB,IAGX,CACA,SAASgW,EAAgByB,EAAepsG,EAAMqqG,GAC5C,IAAIgC,WACAA,GACErsG,EACJ/Y,GAAQ,EAAIkjH,EAA+Bh2E,SAASn0B,EAAMwN,GAC5D,MAAM8+F,EAA6C,mBAAlBF,EAA+BA,GAAc,EAAI/C,EAAUl1E,SAAS,CACnGk4E,cACCplH,IAAUmlH,EACb,GAAInoH,MAAM+F,QAAQsiH,GAChB,OAAOA,EAAkBC,QAAQC,GAAiB7B,EAAgB6B,GAAe,EAAInD,EAAUl1E,SAAS,CACtGk4E,cACCplH,GAAQojH,IAEb,GAAMiC,GAAkD,iBAAtBA,GAAkCroH,MAAM+F,QAAQsiH,EAAkBvhB,UAAW,CAC7G,MAAMA,SACFA,EAAW,IACTuhB,EAEN,IAAI7zG,GADY,EAAI0xG,EAA+Bh2E,SAASm4E,EAAmB7+F,GAyB/E,OAvBAs9E,EAAS7+F,QAAQi/F,IACf,IAAIshB,GAAU,EAYd,GAX6B,mBAAlBthB,EAAQlkG,MACjBwlH,EAAUthB,EAAQlkG,OAAM,EAAIoiH,EAAUl1E,SAAS,CAC7Ck4E,cACCplH,EAAOolH,IAEV7pH,OAAOuF,KAAKojG,EAAQlkG,OAAOiF,QAAQ1D,KACd,MAAd6jH,OAAqB,EAASA,EAAW7jH,MAAU2iG,EAAQlkG,MAAMuB,IAAQvB,EAAMuB,KAAS2iG,EAAQlkG,MAAMuB,KACzGikH,GAAU,KAIZA,EAAS,CACNxoH,MAAM+F,QAAQyO,KACjBA,EAAS,CAACA,IAEZ,MAAMi0G,EAAwC,mBAAlBvhB,EAAQrpG,MAAuBqpG,EAAQrpG,OAAM,EAAIunH,EAAUl1E,SAAS,CAC9Fk4E,cACCplH,EAAOolH,IAAelhB,EAAQrpG,MACjC2W,EAAOtJ,KAAKk7G,EAAY8B,GAAa,EAAI1C,EAAckD,0BAA0BD,GAAerC,GAAaqC,EACrH,IAEWj0G,CACX,CACE,OAAO4xG,EAAY8B,GAAa,EAAI1C,EAAckD,0BAA0BL,GAAoBjC,GAAaiC,CAC/G,0BGhHA,MAAMM,GAAmB7lH,GAAiBA,EAepC8lH,GAd2B,MAC/B,IAAIC,EAAWF,GACf,MAAO,CACL,SAAAG,CAAUC,GACRF,EAAWE,CACb,EACAF,SAAS/lH,GACA+lH,EAAS/lH,GAElB,KAAAkmH,GACEH,EAAWF,EACb,IAGuBM,GCddC,GAAqB,CAChCnyC,OAAQ,SACRoyC,QAAS,UACTC,UAAW,YACXl/C,SAAU,WACV9oE,MAAO,QACPioH,SAAU,WACVC,QAAS,UACTC,aAAc,eACdn1B,KAAM,OACNjuC,SAAU,WACVqjE,SAAU,WACVC,SAAU,YAEG,SAASC,GAAqB5mH,EAAe4tG,EAAMiZ,EAAoB,OACpF,MAAMC,EAAmBV,GAAmBxY,GAC5C,OAAOkZ,EAAmB,GAAGD,KAAqBC,IAAqB,GAAGhB,GAAmBC,SAAS/lH,MAAkB4tG,GAC1H,CClBA,MAAM/hG,GAAS,CACbk7G,MAAO,OACPC,MAAO,QCFHC,GAAO,CACX,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLC,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCdFC,GACA,UADAA,GAGC,UAHDA,GAIC,UAJDA,GAKC,UALDA,GAMC,UANDA,GAQC,UCRDC,GAIC,UAJDA,GAKC,UALDA,GAMC,UANDA,GAQC,UARDA,GASC,UCTDC,GAIC,UAJDA,GAKC,UALDA,GAMC,UANDA,GAQC,UARDA,GAUC,UCVDC,GACA,UADAA,GAGC,UAHDA,GAKC,UALDA,GAQC,UARDA,GASC,UCTDC,GAIC,UAJDA,GAKC,UALDA,GAMC,UANDA,GAQC,UARDA,GAUC,UCVDC,GAIC,UAJDA,GAKC,UALDA,GAMC,UANDA,GAQC,UARDA,GASC,UATDA,GAUC,UCPDlhG,GAAY,CAAC,OAAQ,oBAAqB,eAWnCmhG,GAAQ,CAEnBl4G,KAAM,CAEJm4G,QAAS,sBAET1iB,UAAW,qBAEX/9B,SAAU,uBAGZ0gD,QAAS,sBAGTtZ,WAAY,CACVuZ,MAAOl8G,GAAOm7G,MACd55E,QAASvhC,GAAOm7G,OAGlB9qE,OAAQ,CAEN+3B,OAAQ,sBAER+zC,MAAO,sBACPC,aAAc,IAEdtB,SAAU,sBACVuB,gBAAiB,IAEjB9gD,SAAU,sBAEV+gD,mBAAoB,sBACpBC,gBAAiB,IACjBvyG,MAAO,sBACPwyG,aAAc,IACdC,iBAAkB,MAGTC,GAAO,CAClB74G,KAAM,CACJm4G,QAASh8G,GAAOm7G,MAChB7hB,UAAW,2BACX/9B,SAAU,2BACVo+B,KAAM,4BAERsiB,QAAS,4BACTtZ,WAAY,CACVuZ,MAAO,UACP36E,QAAS,WAEX8O,OAAQ,CACN+3B,OAAQpoE,GAAOm7G,MACfgB,MAAO,4BACPC,aAAc,IACdtB,SAAU,4BACVuB,gBAAiB,IACjB9gD,SAAU,2BACV+gD,mBAAoB,4BACpBC,gBAAiB,IACjBvyG,MAAO,4BACPwyG,aAAc,IACdC,iBAAkB,MAGtB,SAASE,GAAeC,EAAQhgG,EAAWigG,EAAOC,GAChD,MAAMC,EAAmBD,EAAYf,OAASe,EACxCE,EAAkBF,EAAYJ,MAAsB,IAAdI,EACvCF,EAAOhgG,KACNggG,EAAOtsH,eAAeusH,GACxBD,EAAOhgG,GAAaggG,EAAOC,GACJ,UAAdjgG,EACTggG,EAAOb,MAAQjY,GAAAA,QAAQ8Y,EAAOK,KAAMF,GACb,SAAdngG,IACTggG,EAAOF,KAAOrZ,GAAAA,OAAOuZ,EAAOK,KAAMD,IAGxC,CAsFe,SAASE,GAAcjI,GACpC,MAAMl6F,KACFA,EAAO,QAAOoiG,kBACdA,EAAoB,EAACL,YACrBA,EAAc,IACZ7H,EACJ9mF,EAAQ1kB,GAA8BwrG,EAASr6F,IAC3CohG,EAAU/G,EAAQ+G,SA5F1B,SAA2BjhG,EAAO,SAChC,MAAa,SAATA,EACK,CACLkiG,KAAMrB,GACNG,MAAOH,GACPc,KAAMd,IAGH,CACLqB,KAAMrB,GACNG,MAAOH,GACPc,KAAMd,GAEV,CA+EqCwB,CAAkBriG,GAC/Cu+E,EAAY2b,EAAQ3b,WA/E5B,SAA6Bv+E,EAAO,SAClC,MAAa,SAATA,EACK,CACLkiG,KAAMxB,GACNM,MAAON,GACPiB,KAAMjB,IAGH,CACLwB,KAAMxB,GACNM,MAAON,GACPiB,KAAMjB,GAEV,CAkEyC4B,CAAoBtiG,GACrDtoB,EAAQwiH,EAAQxiH,OAlExB,SAAyBsoB,EAAO,SAC9B,MAAa,SAATA,EACK,CACLkiG,KAAMvB,GACNK,MAAOL,GACPgB,KAAMhB,IAGH,CACLuB,KAAMvB,GACNK,MAAOL,GACPgB,KAAMhB,GAEV,CAqDiC4B,CAAgBviG,GACzCwiG,EAAOtI,EAAQsI,MArDvB,SAAwBxiG,EAAO,SAC7B,MAAa,SAATA,EACK,CACLkiG,KAAMpB,GACNE,MAAOF,GACPa,KAAMb,IAGH,CACLoB,KAAMpB,GACNE,MAAOF,GACPa,KAAMb,GAEV,CAwC+B2B,CAAeziG,GACtC0iG,EAAUxI,EAAQwI,SAxC1B,SAA2B1iG,EAAO,SAChC,MAAa,SAATA,EACK,CACLkiG,KAAMnB,GACNC,MAAOD,GACPY,KAAMZ,IAGH,CACLmB,KAAMnB,GACNC,MAAOD,GACPY,KAAMZ,GAEV,CA2BqC4B,CAAkB3iG,GAC/CipF,EAAUiR,EAAQjR,SA3B1B,SAA2BjpF,EAAO,SAChC,MAAa,SAATA,EACK,CACLkiG,KAAMtB,GACNI,MAAOJ,GACPe,KAAMf,IAGH,CACLsB,KAAM,UAENlB,MAAOJ,GACPe,KAAMf,GAEV,CAaqCgC,CAAkB5iG,GAKrD,SAAS6iG,EAAgBjb,GACvB,MAAMkb,EAAeta,GAAAA,iBAAiBZ,EAAY+Z,GAAK74G,KAAKm4G,UAAYmB,EAAoBT,GAAK74G,KAAKm4G,QAAUD,GAAMl4G,KAAKm4G,QAC3H,GAA6B,eAAzBvqH,QAAQC,IAAIC,SAA2B,CACzC,MAAMqgE,EAAWuxC,GAAAA,iBAAiBZ,EAAYkb,GAC1C7rD,EAAW,GACbx/D,QAAQC,MAAM,CAAC,8BAA8Bu/D,WAAkB6rD,QAAmBlb,IAAc,2EAA4E,kFAAkFrtG,KAAK,MAEvQ,CACA,OAAOuoH,CACT,CACA,MAAMC,EAAe,EACnBhmE,QACA9lD,OACA+rH,YAAY,IACZC,aAAa,IACbC,YAAY,QAMZ,KAJAnmE,EAAQ8wB,GAAS,CAAA,EAAI9wB,IACVmlE,MAAQnlE,EAAMimE,KACvBjmE,EAAMmlE,KAAOnlE,EAAMimE,KAEhBjmE,EAAMxnD,eAAe,QACxB,MAAM,IAAI2D,MAA+B,eAAzBxC,QAAQC,IAAIC,SAA4B,iBAAiBK,EAAO,KAAKA,KAAU,6GACzC+rH,gBAA0B9Y,GAAuB,GAAIjzG,EAAO,KAAKA,KAAU,GAAI+rH,IAEvI,GAA0B,iBAAfjmE,EAAMmlE,KACf,MAAM,IAAIhpH,MAA+B,eAAzBxC,QAAQC,IAAIC,SAA4B,iBAAiBK,EAAO,KAAKA,KAAU,4FAC1DggB,KAAKnN,UAAUizC,EAAMmlE,oSAYvDhY,GAAuB,GAAIjzG,EAAO,KAAKA,KAAU,GAAIggB,KAAKnN,UAAUizC,EAAMmlE,QAO/E,OALAN,GAAe7kE,EAAO,QAASkmE,EAAYlB,GAC3CH,GAAe7kE,EAAO,OAAQmmE,EAAWnB,GACpChlE,EAAM+lE,eACT/lE,EAAM+lE,aAAeD,EAAgB9lE,EAAMmlE,OAEtCnlE,GAEHomE,EAAQ,CACZxB,QACAX,UAE2B,eAAzBtqH,QAAQC,IAAIC,WACTusH,EAAMnjG,IACTvoB,QAAQC,MAAM,2BAA2BsoB,0BAwD7C,OArDsBywF,GAAU5iC,GAAS,CAEvC5oE,OAAQ4oE,GAAS,CAAA,EAAI5oE,IAGrB+a,OAEAihG,QAAS8B,EAAa,CACpBhmE,MAAOkkE,EACPhqH,KAAM,YAGRsnG,UAAWwkB,EAAa,CACtBhmE,MAAOwhD,EACPtnG,KAAM,YACN+rH,UAAW,OACXC,WAAY,OACZC,UAAW,SAGbxrH,MAAOqrH,EAAa,CAClBhmE,MAAOrlD,EACPT,KAAM,UAGRgyG,QAAS8Z,EAAa,CACpBhmE,MAAOksD,EACPhyG,KAAM,YAGRurH,KAAMO,EAAa,CACjBhmE,MAAOylE,EACPvrH,KAAM,SAGRyrH,QAASK,EAAa,CACpBhmE,MAAO2lE,EACPzrH,KAAM,YAGRopH,QAGA+B,oBAEAS,kBAEAE,eAIAhB,eACCoB,EAAMnjG,IAAQoT,EAEnB,CC9SA,MAAMvT,GAAY,CAAC,aAAc,WAAY,kBAAmB,oBAAqB,mBAAoB,iBAAkB,eAAgB,cAAe,WAK1J,MAAMujG,GAAc,CAClB5K,cAAe,aAEX6K,GAAoB,6CAMX,SAASC,GAAiBpJ,EAASxB,GAChD,MAAMrmG,EAA6B,mBAAfqmG,EAA4BA,EAAWwB,GAAWxB,GACpEN,WACEA,EAAaiL,GAAiBhL,SAE9BA,EAAW,GAAEkL,gBAEbA,EAAkB,IAAGC,kBACrBA,EAAoB,IAAGC,iBACvBA,EAAmB,IAAGC,eACtBA,EAAiB,IAAGC,aAGpBA,EAAe,GAAEC,YAEjBA,EACAC,QAASC,GACPzxG,EACJ+gB,EAAQ1kB,GAA8B2D,EAAMwN,IACjB,eAAzBnpB,QAAQC,IAAIC,WACU,iBAAbyhH,GACT5gH,QAAQC,MAAM,+CAEY,iBAAjBisH,GACTlsH,QAAQC,MAAM,oDAGlB,MAAMqsH,EAAO1L,EAAW,GAClBwL,EAAUC,GAAQ,CAAK/oF,GAAWA,EAAO4oF,EAAeI,EAAzB,OAC/BC,EAAe,CAAC56C,EAAYruC,EAAMsuC,EAAYkvC,EAAe0L,KAAWp2C,UAAS,CACrFuqC,aACAhvC,aACAivC,SAAUwL,EAAQ9oF,GAElBsuC,cACC+uC,IAAeiL,GAAoB,CACpC9K,eAhDW//G,EAgDa+/G,EAAgBx9E,EA/CnCz1B,KAAK83B,MAAc,IAAR5kC,GAAe,KA+ChB,MACb,CAAA,EAAIyrH,EAAQL,GAjDlB,IAAeprH,GAkDP4kG,EAAW,CACf8mB,GAAIF,EAAaT,EAAiB,GAAI,OAAO,KAC7CjqB,GAAI0qB,EAAaT,EAAiB,GAAI,KAAK,IAC3CY,GAAIH,EAAaR,EAAmB,GAAI,MAAO,GAC/CY,GAAIJ,EAAaR,EAAmB,GAAI,MAAO,KAC/Ca,GAAIL,EAAaR,EAAmB,GAAI,MAAO,GAC/Cc,GAAIN,EAAaP,EAAkB,GAAI,IAAK,KAC5Cc,UAAWP,EAAaR,EAAmB,GAAI,KAAM,KACrDgB,UAAWR,EAAaP,EAAkB,GAAI,KAAM,IACpDgB,MAAOT,EAAaR,EAAmB,GAAI,IAAK,KAChDkB,MAAOV,EAAaR,EAAmB,GAAI,KAAM,KACjDt3B,OAAQ83B,EAAaP,EAAkB,GAAI,KAAM,GAAKL,IACtD1nD,QAASsoD,EAAaR,EAAmB,GAAI,KAAM,IACnDmB,SAAUX,EAAaR,EAAmB,GAAI,KAAM,EAAGJ,IAEvDwB,QAAS,CACPxM,WAAY,UACZhvC,WAAY,UACZivC,SAAU,UACVhvC,WAAY,UACZkvC,cAAe,YAGnB,OAAO9H,GAAU5iC,GAAS,CACxB81C,eACAE,UACAzL,aACAC,WACAkL,kBACAC,oBACAC,mBACAC,kBACCtmB,GAAWhqE,EAAO,CACnBs9E,OAAO,GAEX,CCtFA,SAASmU,MAAgBprD,GACvB,MAAO,CAAC,GAAGA,EAAG,QAAQA,EAAG,QAAQA,EAAG,QAAQA,EAAG,uBAA6C,GAAGA,EAAG,QAAQA,EAAG,QAAQA,EAAG,QAAQA,EAAG,wBAAgD,GAAGA,EAAG,QAAQA,EAAG,QAAQA,EAAG,SAASA,EAAG,0BAAmDl/D,KAAK,IACrR,CAGA,MAAMuqH,GAAU,CAAC,OAAQD,GAAa,EAAG,EAAG,GAAG,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,GAAa,EAAG,EAAG,GAAG,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,GAAa,EAAG,EAAG,GAAG,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,GAAa,EAAG,EAAG,GAAG,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAG,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,KAAO,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAG,EAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAG,EAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAG,EAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,KAAO,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAG,EAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAG,EAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAG,EAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,KAAO,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAG,EAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAI,EAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAI,EAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAI,EAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAI,EAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,IAAI,EAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,MAAQ,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,IAAI,EAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,MAAQ,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,IAAI,EAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,ICN5xChlG,GAAY,CAAC,WAAY,SAAU,SAG5BklG,GAAS,CAEpBC,UAAW,+BAGXC,QAAS,+BAETC,OAAQ,6BAERC,MAAO,gCAKIvpD,GAAW,CACtBwpD,SAAU,IACVC,QAAS,IACTC,MAAO,IAEPC,SAAU,IAEVC,QAAS,IAETC,eAAgB,IAEhBC,cAAe,KAEjB,SAASC,GAASC,GAChB,MAAO,GAAGtgH,KAAK83B,MAAMwoF,MACvB,CACA,SAASC,GAAsB5lG,GAC7B,IAAKA,EACH,OAAO,EAET,MAAM6lG,EAAW7lG,EAAS,GAG1B,OAAO3a,KAAK83B,MAAmD,IAA5C,EAAI,GAAK0oF,GAAY,IAAOA,EAAW,GAC5D,CACe,SAASC,GAAkBC,GACxC,MAAMC,EAAep4C,GAAS,CAAA,EAAIk3C,GAAQiB,EAAiBjB,QACrDmB,EAAiBr4C,GAAS,CAAA,EAAIjS,GAAUoqD,EAAiBpqD,UAkC/D,OAAOiS,GAAS,CACdg4C,yBACA3mH,OAnCa,CAAC5F,EAAQ,CAAC,OAAQuL,EAAU,MACzC,MACI+2D,SAAUuqD,EAAiBD,EAAeX,SAC1CR,OAAQqB,EAAeH,EAAajB,UAASlpD,MAC7CA,EAAQ,GACNj3D,EACJuuB,EAAQ1kB,GAA8B7J,EAASgb,IACjD,GAA6B,eAAzBnpB,QAAQC,IAAIC,SAA2B,CACzC,MAAMyvH,EAAW7tH,GAA0B,iBAAVA,EAG3B68D,EAAW78D,IAAU0J,MAAM44B,WAAWtiC,IACvC6tH,EAAS/sH,IAAWhD,MAAM+F,QAAQ/C,IACrC7B,QAAQC,MAAM,oDAEX29D,EAAS8wD,IAAoBE,EAASF,IACzC1uH,QAAQC,MAAM,mEAAmEyuH,MAE9EE,EAASD,IACZ3uH,QAAQC,MAAM,4CAEX29D,EAASyG,IAAWuqD,EAASvqD,IAChCrkE,QAAQC,MAAM,uDAEO,iBAAZmN,GACTpN,QAAQC,MAAM,CAAC,+DAAgE,kGAAkG6C,KAAK,OAEtJ,IAA9B1F,OAAOuF,KAAKg5B,GAAOh+B,QACrBqC,QAAQC,MAAM,kCAAkC7C,OAAOuF,KAAKg5B,GAAO74B,KAAK,SAE5E,CACA,OAAQjE,MAAM+F,QAAQ/C,GAASA,EAAQ,CAACA,IAAQyE,IAAIuoH,GAAgB,GAAGA,KAA0C,iBAAnBH,EAA8BA,EAAiBR,GAASQ,MAAmBC,KAAiC,iBAAVtqD,EAAqBA,EAAQ6pD,GAAS7pD,MAAUvhE,KAAK,OAKpPyrH,EAAkB,CACnBjB,OAAQkB,EACRrqD,SAAUsqD,GAEd,CCrFA,MAAMz8C,GAAS,CACb88C,cAAe,IACfC,IAAK,KACLC,UAAW,KACXC,OAAQ,KACRC,OAAQ,KACRp8B,MAAO,KACPq8B,SAAU,KACVC,QAAS,MCPLhnG,GAAY,CAAC,cAAe,SAAU,UAAW,UAAW,cAAe,aAAc,SCA/F,MAAMowF,GDWN,SAAqBprG,EAAU,MAAOqc,GACpC,MACIkqF,OAAQ0b,EAAc,CAAA,EACtB5M,QAASE,EAAe,CAAA,EACxB2M,YAAaC,EAAmB,CAAA,EAChCtO,WAAYuO,EAAkB,CAAA,GAC5BpiH,EACJuuB,EAAQ1kB,GAA8B7J,EAASgb,IACjD,GAAIhb,EAAQquG,WAGgBt1G,IAA5BiH,EAAQqiH,gBACN,MAAM,IAAIhuH,MAA+B,eAAzBxC,QAAQC,IAAIC,SAA4B,2FAChCszG,GAAuB,KAEjD,MAAMgQ,EAAUiI,GAAc/H,GACxB+M,EAAcC,GAAkBviH,GACtC,IAAI61G,EAAWjK,GAAU0W,EAAa,CACpC/b,QE/BiCqG,EF+BZ0V,EAAY1V,YE/BarG,EF+BA0b,EE9BzCj5C,GAAS,CACdw5C,QAAS,CACPz/D,UAAW,GACX,CAAC6pD,EAAY/tE,GAAG,OAAQ,CACtB,kCAAmC,CACjCkkB,UAAW,KAGf,CAAC6pD,EAAY/tE,GAAG,OAAQ,CACtBkkB,UAAW,MAGdwjD,IFmBD8O,UAEA4K,QAASA,GAAQvuH,QACjBmiH,WAAY4K,GAAiBpJ,EAAS+M,GACtCF,YAAahB,GAAkBiB,GAC/Bv9C,OAAQoE,GAAS,CAAA,EAAIpE,MErCV,IAAsBgoC,EAAarG,EFyChD,GAFAsP,EAAWjK,GAAUiK,EAAUtnF,GAC/BsnF,EAAWx5F,EAAKgyB,OAAO,CAAC2qD,EAAK9uC,IAAa0hD,GAAU5S,EAAK9uC,GAAW2rD,GACvC,eAAzBhkH,QAAQC,IAAIC,SAA2B,CAEzC,MAAM0wH,EAAe,CAAC,SAAU,UAAW,YAAa,WAAY,QAAS,WAAY,UAAW,eAAgB,WAAY,YAC1HpO,EAAW,CAACn9G,EAAM8vG,KACtB,IAAIhxG,EAGJ,IAAKA,KAAOkB,EAAM,CAChB,MAAM2V,EAAQ3V,EAAKlB,GACnB,IAAkC,IAA9BysH,EAAazxH,QAAQgF,IAAehG,OAAOuF,KAAKsX,GAAOtc,OAAS,EAAG,CACrE,GAA6B,eAAzBsB,QAAQC,IAAIC,SAA2B,CACzC,MAAM2wH,EAAavH,GAAqB,GAAInlH,GAC5CpD,QAAQC,MAAM,CAAC,cAAcm0G,wDAAqEhxG,sBAAyB,sCAAuCoc,KAAKnN,UAAU/N,EAAM,KAAM,GAAI,GAAI,mCAAmCwrH,aAAuBtwG,KAAKnN,UAAU,CAC5Q0H,KAAM,CACJ,CAAC,KAAK+1G,KAAe71G,IAEtB,KAAM,GAAI,GAAI,yCAAyCnX,KAAK,MACjE,CAEAwB,EAAKlB,GAAO,CAAA,CACd,CACF,GAEFhG,OAAOuF,KAAKsgH,EAASjQ,YAAYlsG,QAAQstG,IACvC,MAAMnB,EAAiBgQ,EAASjQ,WAAWoB,GAAWnB,eAClDA,GAA+C,IAA7BmB,EAAUh2G,QAAQ,QACtCqjH,EAASxO,EAAgBmB,IAG/B,CAQA,OAPA6O,EAASzB,kBAAoBprC,GAAS,GAAIkoC,GAA0B,MAAT3iF,OAAgB,EAASA,EAAM6lF,mBAC1FyB,EAASC,YAAc,SAAYrhH,GACjC,OAAOu/G,GAAgB,CACrBE,GAAIz/G,EACJ+1D,MAAO35D,MAEX,EACOglH,CACT,CC7EqBP,GEFrB,MCOM3L,GAASC,GAAa,CAC1B2M,QCTa,aDUbnL,gBACAqL,sBDV4BvtF,GGA9B,SAA+BA,GAC7B,MAAgB,eAATA,GAAkC,UAATA,GAA6B,OAATA,GAA0B,OAATA,CACvE,CHFsCwtF,CAAsBxtF,IAAkB,YAATA,IIAtD,SAASy5F,GAAuBpuH,EAAeytG,EAAOoZ,EAAoB,OACvF,MAAMn1G,EAAS,CAAA,EAIf,OAHA+7F,EAAMtoG,QAAQyoG,IACZl8F,EAAOk8F,GAAQgZ,GAAqB5mH,EAAe4tG,EAAMiZ,KAEpDn1G,CACT,CCLO,SAAS28G,GAAuBzgB,GACrC,OAAOgZ,GAAqB,aAAchZ,EAC5C,CACuBwgB,GAAuB,aAAc,CAAC,OAAQ,eAAgB,iBAAkB,cAAe,aAAc,gBAAiB,kBAAmB,gBAAiB,iBAAkB,kBCD3M,MAAM3nG,GAAY,CAAC,WAAY,YAAa,QAAS,YAAa,WAAY,YAAa,iBAAkB,cAAe,WAsBtH6nG,GAAclZ,GAAO,MAAO,CAChCv3G,KAAM,aACN+vG,KAAM,OACNqV,kBAAmB,CAAC/iH,EAAOiuE,KACzB,MAAMm3C,WACJA,GACEplH,EACJ,MAAO,CAACiuE,EAAO/1D,KAA2B,YAArBktG,EAAW3hE,OAAuBwqB,EAAO,QAAQ0iC,GAAWyU,EAAW3hE,UAAWwqB,EAAO,WAAW0iC,GAAWyU,EAAWrG,gBAP/H7J,CASjB,EACDn/C,QACAqvD,iBAEA,IAAIiJ,EAAoBC,EAAuBC,EAAqBC,EAAmBC,EAAuBC,EAAoBC,EAAuBC,EAAoBC,EAAuBC,EAAuBC,EAAUC,EAAWC,EAChP,MAAO,CACLxsE,WAAY,OACZ/kB,MAAO,MACP/W,OAAQ,MACRohB,QAAS,eAGTq7B,KAAMgiD,EAAW8J,mBAAgB5qH,EAAY,eAC7CyqE,WAAY,EACZ1M,WAAwD,OAA3CgsD,EAAqBt4D,EAAM03D,cAA+E,OAAtDa,EAAwBD,EAAmBzoH,aAAkB,EAAS0oH,EAAsBpyH,KAAKmyH,EAAoB,OAAQ,CAC5L/rD,SAAuD,OAA5CisD,EAAsBx4D,EAAM03D,cAAgF,OAAvDc,EAAsBA,EAAoBjsD,eAAoB,EAASisD,EAAoBxC,UAE7JhN,SAAU,CACRuM,QAAS,UACT6D,OAAkD,OAAzCX,EAAoBz4D,EAAMqpD,aAA8E,OAAtDqP,EAAwBD,EAAkBjE,cAAmB,EAASkE,EAAsBvyH,KAAKsyH,EAAmB,MAAQ,UACvLxoC,QAAoD,OAA1C0oC,EAAqB34D,EAAMqpD,aAA+E,OAAvDuP,EAAwBD,EAAmBnE,cAAmB,EAASoE,EAAsBzyH,KAAKwyH,EAAoB,MAAQ,SAC3LU,OAAmD,OAA1CR,EAAqB74D,EAAMqpD,aAA+E,OAAvDyP,EAAwBD,EAAmBrE,cAAmB,EAASsE,EAAsB3yH,KAAK0yH,EAAoB,MAAQ,aAC1LxJ,EAAWrG,UAEbt7D,MAAmK,OAA3JqrE,EAAsE,OAA7CC,GAAYh5D,EAAM6jD,MAAQ7jD,GAAO6qD,UAA+D,OAA1CmO,EAAWA,EAAS3J,EAAW3hE,aAAkB,EAASsrE,EAASnG,MAAgBkG,EAAwB,CAChM9yE,OAAuD,OAA9CgzE,GAAaj5D,EAAM6jD,MAAQ7jD,GAAO6qD,UAAsD,OAAjCoO,EAAYA,EAAUhzE,aAAkB,EAASgzE,EAAUj7C,OAC3H7M,SAAyD,OAA9C+nD,GAAal5D,EAAM6jD,MAAQ7jD,GAAO6qD,UAAsD,OAAjCqO,EAAYA,EAAUjzE,aAAkB,EAASizE,EAAU/nD,SAC7HokD,aAAShnH,GACT8gH,EAAW3hE,UAGX4rE,GAAuB1sH,EAAMm+C,WAAW,SAAiBwuE,EAAS90H,GACtE,MAAMwF,EAAQixG,GAAgB,CAC5BjxG,MAAOsvH,EACP3xH,KAAM,gBAEF+C,SACFA,EAAQu2D,UACRA,EAASxT,MACTA,EAAQ,UAAS8uD,UACjBA,EAAY,MAAKwM,SACjBA,EAAW,SAAQwQ,UACnBA,EAASC,eACTA,GAAiB,EAAKC,YACtBA,EAAWnuB,QACXA,EAAU,aACRthG,EACJ85B,EAAQ1kB,GAA8BpV,EAAOumB,IACzC2oG,EAA6BvsH,EAAM03F,eAAe35F,IAA+B,QAAlBA,EAAS3F,KACxEqqH,EAAa7wC,GAAS,CAAA,EAAIv0E,EAAO,CACrCyjD,QACA8uD,YACAwM,WACA2Q,iBAAkBJ,EAAQvQ,SAC1ByQ,iBACAluB,UACA4tB,kBAEIS,EAAO,CAAA,EACRH,IACHG,EAAKruB,QAAUA,GAEjB,MAAMmM,EAlFkB2X,KACxB,MAAM3hE,MACJA,EAAKs7D,SACLA,EAAQtR,QACRA,GACE2X,EAIJ,OAAO9X,GAHO,CACZp1F,KAAM,CAAC,OAAkB,YAAVurC,GAAuB,QAAQktD,GAAWltD,KAAU,WAAWktD,GAAWoO,OAE9DoP,GAAwB1gB,IAyErCmiB,CAAkBxK,GAClC,OAAoBnjB,EAAAA,KAAMmsB,GAAa75C,GAAS,CAC9CroE,GAAIqmG,EACJt7C,UAAW6M,GAAK2pC,EAAQv1F,KAAM++C,GAC9B44D,UAAW,QACXpsE,MAAO8rE,EACP,eAAeE,QAAcnrH,EAC7BypD,KAAM0hE,EAAc,WAAQnrH,EAC5B9J,IAAKA,GACJm1H,EAAM71F,EAAOo1F,GAAiBxuH,EAASV,MAAO,CAC/ColH,WAAYA,EACZ1kH,SAAU,CAACwuH,EAAgBxuH,EAASV,MAAMU,SAAWA,EAAU+uH,EAA2BxnD,EAAAA,IAAK,QAAS,CACtGvnE,SAAU+uH,IACP,QAET,GCtGe,SAASK,GAAclmH,EAAMlM,GAC1C,SAASuqD,EAAUjoD,EAAOxF,GACxB,OAAoBytE,EAAAA,IAAKonD,GAAS96C,GAAS,CACzC,cAAe,GAAG72E,QAClBlD,IAAKA,GACJwF,EAAO,CACRU,SAAUkJ,IAEd,CAOA,MAN6B,eAAzBxM,QAAQC,IAAIC,WAGd2qD,EAAUvqD,YAAc,GAAGA,SAE7BuqD,EAAUu8D,QAAU6K,GAAQ7K,QACR7hH,EAAMk+C,KAAmBl+C,EAAMm+C,WAAWmH,GAChE,CDuFyB,eAAzB7qD,QAAQC,IAAIC,WAA4B+xH,GAAQtd,UAAmC,CAQjFrxG,SAAUqsG,GAAUtqG,KAIpBgrG,QAASV,GAAUv+F,OAInByoD,UAAW81C,GAAUxzF,OAQrBkqC,MAAOspD,GAAgDxB,UAAU,CAACwB,GAAU5B,MAAM,CAAC,UAAW,SAAU,WAAY,UAAW,YAAa,QAAS,OAAQ,UAAW,YAAa4B,GAAUxzF,SAK/Lg5F,UAAWxF,GAAUlC,YAKrBkU,SAAUhS,GAAgDxB,UAAU,CAACwB,GAAU5B,MAAM,CAAC,UAAW,QAAS,SAAU,UAAW4B,GAAUxzF,SAIzIg2G,UAAWxiB,GAAUxzF,OAQrBi2G,eAAgBziB,GAAU7C,KAM1B6lB,eAAgBhjB,GAAUxzF,OAI1BkmG,GAAI1S,GAAUxB,UAAU,CAACwB,GAAUxC,QAAQwC,GAAUxB,UAAU,CAACwB,GAAU1yE,KAAM0yE,GAAUv+F,OAAQu+F,GAAU7C,QAAS6C,GAAU1yE,KAAM0yE,GAAUv+F,SAK/IihH,YAAa1iB,GAAUxzF,OASvB+nF,QAASyL,GAAUxzF,SAErB81G,GAAQ7K,QAAU,UEhLlB,IAAAwL,GAAeF,GAA4B7nD,EAAAA,IAAK,OAAQ,CACtDpiE,EAAG,oLACD,UCPW,SAASoqH,MAAcr9F,GAMpC,OAAOjwB,EAAMqoD,QAAQ,IACfp4B,EAAKpmB,MAAMhS,GAAc,MAAPA,GACb,KAEF01H,IACLt9F,EAAK3tB,QAAQzK,KCFJ,SAAgBA,EAAK0E,GACf,mBAAR1E,EACTA,EAAI0E,GACK1E,IACTA,EAAI6P,QAAUnL,EAElB,CDHQm6F,CAAO7+F,EAAK01H,MAIft9F,EACL,CEpBA,MAAMu9F,GAAUpjB,GAAUxB,UAAU,CAACwB,GAAU1yE,KAAM0yE,GAAUv+F,SCsC/D,ICvCuC4hH,GAAWC,GDuClDC,ICvCuCF,GDuCTrjB,GAAUlC,YCvCUwlB,GDSlD,SAAiCrwH,EAAOyB,EAAU3B,EAAempG,EAAUwB,GACzE,MAAME,EAAY3qG,EAAMyB,GAClB8uH,EAAe9lB,GAAgBhpG,EACrC,GAAiB,MAAbkpG,GAKc,oBAAX7tE,OACL,OAAO,KAET,IAAI0zF,EAcJ,MAHyB,mBAAd7lB,GA7Bb,SAA0BE,GAExB,MAAM7uG,UACJA,EAAY,CAAA,GACV6uG,EACJ,OAAO92C,QAAQ/3D,EAAUy0H,iBAC3B,CAuB0CC,CAAiB/lB,KACvD6lB,EAAc,yEAEIlsH,IAAhBksH,EACK,IAAI5wH,MAAM,WAAWqpG,OAAcsnB,qBAAgCzwH,sDAAuE0wH,uEAE5I,IACT,ECrC+B,eAAzBpzH,QAAQC,IAAIC,SACP,IAAM,KAER,YAAqBsqB,GAC1B,OAAOwoG,MAAaxoG,IAASyoG,MAAazoG,EAC5C,GCKF,MAAM+oG,GAAsC,oBAAX7zF,OAAyBn6B,EAAMw8C,gBAAkBx8C,EAAMy8C,UCDxF,SAASwxE,GAAiB5mH,GACxB,MAAMxP,EAAMmI,EAAM88C,OAAOz1C,GAIzB,OAHA2mH,GAAkB,KAChBn2H,EAAI6P,QAAUL,IAETrH,EAAM88C,OAAO,IAAI73B,KAExB,EAAIptB,EAAI6P,YAAYud,IAAOvd,OAC7B,CCfA,MAAMwmH,GAAgB,CAAA,ECAtB,MAAMC,GAAQ,GCCP,MAAMC,GACX,WAAAtxH,GACErD,KAAK40H,UAAY,KACjB50H,KAAK2J,MAAQ,KACY,OAAnB3J,KAAK40H,YACPl1F,aAAa1/B,KAAK40H,WAClB50H,KAAK40H,UAAY,OAGrB50H,KAAK60H,cAAgB,IACZ70H,KAAK2J,KAEhB,CACA,aAAOH,GACL,OAAO,IAAImrH,EACb,CAIA,KAAA56G,CAAMqsD,EAAOx4D,GACX5N,KAAK2J,QACL3J,KAAK40H,UAAYx1F,WAAW,KAC1Bp/B,KAAK40H,UAAY,KACjBhnH,KACCw4D,EACL,EAEa,SAAS0uD,KACtB,MAAMxqF,EFpBO,SAAoByqF,EAAMC,GACvC,MAAM52H,EAAMmI,EAAM88C,OAAOoxE,IAIzB,OAHIr2H,EAAI6P,UAAYwmH,KAClBr2H,EAAI6P,QAAU8mH,EAAKC,IAEd52H,CACT,CEckB62H,CAAWN,GAAQnrH,QAAQyE,QAE3C,OD1Ba,SAAoBL,GAEjCrH,EAAMy8C,UAAUp1C,EAAI8mH,GAEtB,CCqBEQ,CAAW5qF,EAAQuqF,eACZvqF,CACT,CC9BA,IAAI6qF,IAAmB,EACnBC,IAA0B,EAC9B,MAAMC,GAAiC,IAAIV,GACrCW,GAAsB,CAC1BliH,MAAM,EACN2S,QAAQ,EACR4rF,KAAK,EACL4jB,KAAK,EACLC,OAAO,EACPC,UAAU,EACV1nB,QAAQ,EACR2nB,MAAM,EACNC,OAAO,EACPC,MAAM,EACN92F,MAAM,EACN+2F,UAAU,EACV,kBAAkB,GAkCpB,SAASpzE,GAAcvZ,GACjBA,EAAMmiC,SAAWniC,EAAMm7C,QAAUn7C,EAAMoiC,UAG3C6pD,IAAmB,EACrB,CASA,SAASt1C,KACPs1C,IAAmB,CACrB,CACA,SAASW,KACsB,WAAzB91H,KAAK+1H,iBAKHX,KACFD,IAAmB,EAGzB,CAeA,SAASa,GAAe9sF,GACtB,MAAMz2B,OACJA,GACEy2B,EACJ,IACE,OAAOz2B,EAAOiJ,QAAQ,iBACxB,CAAE,MAAO1Z,GAKT,CAIA,OAAOmzH,IAjFT,SAAuC9uH,GACrC,MAAM1H,KACJA,EAAI8sC,QACJA,GACEplC,EACJ,QAAgB,UAAZolC,IAAuB6pF,GAAoB32H,IAAU0H,EAAK0gD,WAG9C,aAAZtb,IAA2BplC,EAAK0gD,YAGhC1gD,EAAKmyC,iBAIX,CAkE6By9E,CAA8BxjH,EAC3D,CACe,SAASyjH,KACtB,MAAM93H,EAAMmI,EAAMg/C,YAAYl/C,IAhChC,IAAiB8vH,EAiCD,MAAR9vH,KAjCS8vH,EAkCH9vH,EAAKk6B,eAjCb4K,iBAAiB,UAAWsX,IAAe,GAC/C0zE,EAAIhrF,iBAAiB,YAAa00C,IAAmB,GACrDs2C,EAAIhrF,iBAAiB,cAAe00C,IAAmB,GACvDs2C,EAAIhrF,iBAAiB,aAAc00C,IAAmB,GACtDs2C,EAAIhrF,iBAAiB,mBAAoB2qF,IAAwB,KA+B9D,IACGM,EAAoB7vH,EAAM88C,QAAO,GAoCvC,MAAO,CACL+yE,oBACAviE,QATF,SAA4B3qB,GAC1B,QAAI8sF,GAAe9sF,KACjBktF,EAAkBnoH,SAAU,GACrB,EAGX,EAIEskD,OAlCF,WAME,QAAI6jE,EAAkBnoH,UAKpBmnH,IAA0B,EAC1BC,GAA+Bt7G,MAAM,IAAK,KACxCq7G,IAA0B,IAE5BgB,EAAkBnoH,SAAU,GACrB,EAGX,EAgBE7P,MAEJ,CClKA,SAASi4H,GAAgBh3H,EAAGa,GAC1B,OAAOm2H,GAAkBl3H,OAAOuN,eAAiBvN,OAAOuN,eAAe3F,OAAS,SAAU1H,EAAGa,GAC3F,OAAOb,EAAEkpH,UAAYroH,EAAGb,CAC1B,EAAGg3H,GAAgBh3H,EAAGa,EACxB,CCHA,IAAAo2H,GAAe/vH,EAAM2qC,cAAc,MCO5B,SAASqlF,GAAgBjyH,EAAUkyH,GACxC,IAIIphH,EAASjW,OAAOqK,OAAO,MAO3B,OANIlF,GAAU+oD,EAAAA,SAAShlD,IAAI/D,EAAU,SAAUyG,GAC7C,OAAOA,CACT,GAAGlC,QAAQ,SAAUmT,GAEnB5G,EAAO4G,EAAM7W,KATF,SAAgB6W,GAC3B,OAAOw6G,GAASv4B,EAAAA,eAAejiF,GAASw6G,EAAMx6G,GAASA,CACzD,CAOsBy6G,CAAOz6G,EAC7B,GACO5G,CACT,CAiEA,SAASshH,GAAQ16G,EAAOqc,EAAMz0B,GAC5B,OAAsB,MAAfA,EAAMy0B,GAAgBz0B,EAAMy0B,GAAQrc,EAAMpY,MAAMy0B,EACzD,CAaO,SAASs+F,GAAoBC,EAAWC,EAAkBC,GAC/D,IAAIC,EAAmBR,GAAgBK,EAAUtyH,UAC7CA,EA/DC,SAA4BwP,EAAM9C,GAIvC,SAASgmH,EAAe7xH,GACtB,OAAOA,KAAO6L,EAAOA,EAAK7L,GAAO2O,EAAK3O,EACxC,CALA2O,EAAOA,GAAQ,CAAA,EACf9C,EAAOA,GAAQ,CAAA,EAQf,IAcIzR,EAdA03H,EAAkB93H,OAAOqK,OAAO,MAChC0tH,EAAc,GAElB,IAAK,IAAIC,KAAWrjH,EACdqjH,KAAWnmH,EACTkmH,EAAYx3H,SACdu3H,EAAgBE,GAAWD,EAC3BA,EAAc,IAGhBA,EAAYprH,KAAKqrH,GAKrB,IAAIC,EAAe,CAAA,EAEnB,IAAK,IAAIC,KAAWrmH,EAAM,CACxB,GAAIimH,EAAgBI,GAClB,IAAK93H,EAAI,EAAGA,EAAI03H,EAAgBI,GAAS33H,OAAQH,IAAK,CACpD,IAAI+3H,EAAiBL,EAAgBI,GAAS93H,GAC9C63H,EAAaH,EAAgBI,GAAS93H,IAAMy3H,EAAeM,EAC7D,CAGFF,EAAaC,GAAWL,EAAeK,EACzC,CAGA,IAAK93H,EAAI,EAAGA,EAAI23H,EAAYx3H,OAAQH,IAClC63H,EAAaF,EAAY33H,IAAMy3H,EAAeE,EAAY33H,IAG5D,OAAO63H,CACT,CAmBiBG,CAAmBV,EAAkBE,GAmCpD,OAlCA53H,OAAOuF,KAAKJ,GAAUuE,QAAQ,SAAU1D,GACtC,IAAI6W,EAAQ1X,EAASa,GACrB,GAAK84F,EAAAA,eAAejiF,GAApB,CACA,IAAIw7G,EAAWryH,KAAO0xH,EAClBY,EAAWtyH,KAAO4xH,EAClBW,EAAYb,EAAiB1xH,GAC7BwyH,EAAY15B,EAAAA,eAAey5B,KAAeA,EAAU9zH,MAAMg0H,IAE1DH,GAAaD,IAAWG,EAQhBF,IAAWD,GAAYG,EAMxBF,GAAWD,GAAWv5B,EAAAA,eAAey5B,KAI9CpzH,EAASa,GAAOgnF,EAAAA,aAAanwE,EAAO,CAClC86G,SAAUA,EAAS/vH,KAAK,KAAMiV,GAC9B47G,GAAIF,EAAU9zH,MAAMg0H,GACpBC,KAAMnB,GAAQ16G,EAAO,OAAQ46G,GAC7BtoF,MAAOooF,GAAQ16G,EAAO,QAAS46G,MAXjCtyH,EAASa,GAAOgnF,EAAAA,aAAanwE,EAAO,CAClC47G,IAAI,IAVNtzH,EAASa,GAAOgnF,EAAAA,aAAanwE,EAAO,CAClC86G,SAAUA,EAAS/vH,KAAK,KAAMiV,GAC9B47G,IAAI,EACJC,KAAMnB,GAAQ16G,EAAO,OAAQ46G,GAC7BtoF,MAAOooF,GAAQ16G,EAAO,QAAS46G,IAZP,CA+B9B,GACOtyH,CACT,CClIA,IAAIsrC,GAASzwC,OAAOywC,QAAU,SAAU19B,GACtC,OAAO/S,OAAOuF,KAAKwN,GAAK7J,IAAI,SAAUzD,GACpC,OAAOsN,EAAItN,EACb,EACF,EAuBIkzH,GAA+B,SAAUC,GAG3C,SAASD,EAAgBl0H,EAAOukD,GAC9B,IAAIzd,EAIAstF,GAFJttF,EAAQqtF,EAAiBj4H,KAAKE,KAAM4D,EAAOukD,IAAYnoD,MAE9Bg4H,aAAajxH,KC5C1C,SAAgC7G,GAC9B,QAAI,IAAWA,EAAG,MAAM,IAAI+3H,eAAe,6DAC3C,OAAO/3H,CACT,CDyC+Cg4H,CAAuBxtF,IAUlE,OAPAA,EAAMikB,MAAQ,CACZwpE,aAAc,CACZC,YAAY,GAEdJ,aAAcA,EACdK,aAAa,GAER3tF,CACT,EEtDF,SAAwBrrC,EAAGwI,GACzBxI,EAAEO,UAAYT,OAAOqK,OAAO3B,EAAEjI,WAAYP,EAAEO,UAAUyD,YAAchE,EAAGqN,GAAerN,EAAGwI,EAC3F,CFkCEywH,CAAeR,EAAiBC,GAoBhC,IAAIvrD,EAASsrD,EAAgBl4H,UAqE7B,OAnEA4sE,EAAOvgB,kBAAoB,WACzBjsD,KAAKonF,SAAU,EACfpnF,KAAK85F,SAAS,CACZq+B,aAAc,CACZC,YAAY,IAGlB,EAEA5rD,EAAOvf,qBAAuB,WAC5BjtD,KAAKonF,SAAU,CACjB,EAEA0wC,EAAgBriB,yBAA2B,SAAkCmhB,EAAWj6G,GACtF,IDiBmC/Y,EAAOkzH,ECjBtCD,EAAmBl6G,EAAKrY,SACxB0zH,EAAer7G,EAAKq7G,aAExB,MAAO,CACL1zH,SAFgBqY,EAAK07G,aDeYz0H,ECbcgzH,EDaPE,ECbkBkB,EDcvDzB,GAAgB3yH,EAAMU,SAAU,SAAU0X,GAC/C,OAAOmwE,EAAAA,aAAanwE,EAAO,CACzB86G,SAAUA,EAAS/vH,KAAK,KAAMiV,GAC9B47G,IAAI,EACJW,OAAQ7B,GAAQ16G,EAAO,SAAUpY,GACjC0qC,MAAOooF,GAAQ16G,EAAO,QAASpY,GAC/Bi0H,KAAMnB,GAAQ16G,EAAO,OAAQpY,IAEjC,ICtB8E+yH,GAAoBC,EAAWC,EAAkBmB,GAC3HK,aAAa,EAEjB,EAGA7rD,EAAOwrD,aAAe,SAAsBh8G,EAAO3V,GACjD,IAAImyH,EAAsBjC,GAAgBv2H,KAAK4D,MAAMU,UACjD0X,EAAM7W,OAAOqzH,IAEbx8G,EAAMpY,MAAMkzH,UACd96G,EAAMpY,MAAMkzH,SAASzwH,GAGnBrG,KAAKonF,SACPpnF,KAAK85F,SAAS,SAAUnrC,GACtB,IAAIrqD,EAAW6zE,GAAS,GAAIxpB,EAAMrqD,UAGlC,cADOA,EAAS0X,EAAM7W,KACf,CACLb,SAAUA,EAEd,GAEJ,EAEAkoE,EAAOjqE,OAAS,WACd,IAAIk2H,EAAcz4H,KAAK4D,MACnBioD,EAAY4sE,EAAYtiB,UACxBuiB,EAAeD,EAAYC,aAC3B90H,EAAQoV,GAA8By/G,EAAa,CAAC,YAAa,iBAEjEN,EAAen4H,KAAK2uD,MAAMwpE,aAC1B7zH,EAAWsrC,GAAO5vC,KAAK2uD,MAAMrqD,UAAU+D,IAAIqwH,GAK/C,cAJO90H,EAAM20H,cACN30H,EAAM0qC,aACN1qC,EAAMi0H,KAEK,OAAdhsE,EACkBtlD,EAAM7H,cAAc43H,GAAuBvuE,SAAU,CACvEjlD,MAAOq1H,GACN7zH,GAGeiC,EAAM7H,cAAc43H,GAAuBvuE,SAAU,CACvEjlD,MAAOq1H,GACO5xH,EAAM7H,cAAcmtD,EAAWjoD,EAAOU,GACxD,EAEOwzH,CACT,CA3FmC,CA2FjCvxH,EAAMslD,WGxHR,SAAS8sE,GAAkBvmH,GACzB,QAAelK,IAAXkK,EACF,MAAO,CAAA,EAET,MAAMgD,EAAS,CAAA,EAIf,OAHAjW,OAAOuF,KAAK0N,GAAQzN,OAAO0zB,KAAUA,EAAK3R,MAAM,aAAuC,mBAAjBtU,EAAOimB,KAAuBxvB,QAAQwvB,IAC1GjjB,EAAOijB,GAAQjmB,EAAOimB,KAEjBjjB,CACT,CCCA,SAASwjH,GAAeC,GACtB,MAAMC,aACJA,EAAYC,gBACZA,EAAeC,kBACfA,EAAiBC,uBACjBA,EAAsBp+D,UACtBA,GACEg+D,EACJ,IAAKC,EAAc,CAGjB,MAAMI,EAAgBxxD,GAAwB,MAAnBqxD,OAA0B,EAASA,EAAgBl+D,UAAWA,EAAqC,MAA1Bo+D,OAAiC,EAASA,EAAuBp+D,UAAgC,MAArBm+D,OAA4B,EAASA,EAAkBn+D,WACjOs+D,EAAchhD,GAAS,GAAuB,MAAnB4gD,OAA0B,EAASA,EAAgBt6H,MAAiC,MAA1Bw6H,OAAiC,EAASA,EAAuBx6H,MAA4B,MAArBu6H,OAA4B,EAASA,EAAkBv6H,OACpNmF,EAAQu0E,GAAS,CAAA,EAAI4gD,EAAiBE,EAAwBD,GAOpE,OANIE,EAAcx5H,OAAS,IACzBkE,EAAMi3D,UAAYq+D,GAEhB/5H,OAAOuF,KAAKy0H,GAAaz5H,OAAS,IACpCkE,EAAMnF,MAAQ06H,GAET,CACLv1H,QACAw1H,iBAAalxH,EAEjB,CAKA,MAAMmxH,ECvCR,SAA8BjnH,EAAQknH,EAAc,IAClD,QAAepxH,IAAXkK,EACF,MAAO,CAAA,EAET,MAAMgD,EAAS,CAAA,EAIf,OAHAjW,OAAOuF,KAAK0N,GAAQzN,OAAO0zB,GAAQA,EAAK3R,MAAM,aAAuC,mBAAjBtU,EAAOimB,KAAyBihG,EAAY5/G,SAAS2e,IAAOxvB,QAAQwvB,IACtIjjB,EAAOijB,GAAQjmB,EAAOimB,KAEjBjjB,CACT,CD8BwBmkH,CAAqBphD,GAAS,CAAA,EAAI8gD,EAAwBD,IAC1EQ,EAAsCb,GAAkBK,GACxDS,EAAiCd,GAAkBM,GACnDS,EAAoBZ,EAAaO,GAMjCH,EAAgBxxD,GAA0B,MAArBgyD,OAA4B,EAASA,EAAkB7+D,UAA8B,MAAnBk+D,OAA0B,EAASA,EAAgBl+D,UAAWA,EAAqC,MAA1Bo+D,OAAiC,EAASA,EAAuBp+D,UAAgC,MAArBm+D,OAA4B,EAASA,EAAkBn+D,WACnSs+D,EAAchhD,GAAS,CAAA,EAAyB,MAArBuhD,OAA4B,EAASA,EAAkBj7H,MAA0B,MAAnBs6H,OAA0B,EAASA,EAAgBt6H,MAAiC,MAA1Bw6H,OAAiC,EAASA,EAAuBx6H,MAA4B,MAArBu6H,OAA4B,EAASA,EAAkBv6H,OAClRmF,EAAQu0E,GAAS,CAAA,EAAIuhD,EAAmBX,EAAiBU,EAAgCD,GAO/F,OANIN,EAAcx5H,OAAS,IACzBkE,EAAMi3D,UAAYq+D,GAEhB/5H,OAAOuF,KAAKy0H,GAAaz5H,OAAS,IACpCkE,EAAMnF,MAAQ06H,GAET,CACLv1H,QACAw1H,YAAaM,EAAkBt7H,IAEnC,CE1DA,SAASu7H,GAAO/1H,GACd,MAAMi3D,UACJA,EAASw2C,QACTA,EAAOuoB,QACPA,GAAU,EAAKC,QACfA,EAAOC,QACPA,EAAOC,WACPA,EACAnC,GAAIoC,EAAMlD,SACVA,EAAQxsF,QACRA,GACE1mC,GACGq2H,EAASC,GAAc3zH,EAAMg9C,UAAS,GACvC42E,EAAkBzyD,GAAK7M,EAAWw2C,EAAQ+oB,OAAQ/oB,EAAQgpB,cAAeT,GAAWvoB,EAAQipB,eAC5FC,EAAe,CACnBj5F,MAAOy4F,EACPxvG,OAAQwvG,EACRj4F,KAAOi4F,EAAa,EAAKD,EACzB52G,MAAQ62G,EAAa,EAAKF,GAEtBW,EAAiB9yD,GAAK2pC,EAAQr1F,MAAOi+G,GAAW5oB,EAAQopB,aAAcb,GAAWvoB,EAAQqpB,cAc/F,OAbKV,GAAWC,GACdC,GAAW,GAEb3zH,EAAMy8C,UAAU,KACd,IAAKg3E,GAAsB,MAAZlD,EAAkB,CAE/B,MAAM1mE,EAAYhxB,WAAW03F,EAAUxsF,GACvC,MAAO,KACL5K,aAAa0wB,GAEjB,GAEC,CAAC0mE,EAAUkD,EAAQ1vF,IACFuhC,EAAAA,IAAK,OAAQ,CAC/BhR,UAAWs/D,EACX17H,MAAO87H,EACPj2H,SAAuBunE,EAAAA,IAAK,OAAQ,CAClChR,UAAW2/D,KAGjB,CN8EA1C,GAAgBniB,UAAqC,eAAzB30G,QAAQC,IAAIC,SAA4B,CAQlEi1G,UAAWxF,GAAU1C,IAerB3pG,SAAUqsG,GAAUtqG,KAOpBkyH,OAAQ5nB,GAAU7C,KAOlBx/D,MAAOqiE,GAAU7C,KAOjB+pB,KAAMlnB,GAAU7C,KAYhB4qB,aAAc/nB,GAAU1yE,MACtB,CAAA,EACJ65F,GAAgB1rC,aA5KG,CACjB+pB,UAAW,MACXuiB,aAAc,SAAsB18G,GAClC,OAAOA,CACT,GMiCuB,eAAzBhb,QAAQC,IAAIC,WAA4By4H,GAAOhkB,UAAY,CAIzDtE,QAASV,GAAUv+F,OAAO+9F,WAC1Bt1C,UAAW81C,GAAUxzF,OAIrBy6G,GAAIjnB,GAAU7C,KAIdgpB,SAAUnmB,GAAU1yE,KAIpB27F,QAASjpB,GAAU7C,KAInBisB,WAAYppB,GAAU5C,OAItB8rB,QAASlpB,GAAU5C,OAInB+rB,QAASnpB,GAAU5C,OAInBzjE,QAASqmE,GAAU5C,OAAOoC,aChF5B,MAAMwqB,GAAqB7I,GAAuB,iBAAkB,CAAC,OAAQ,SAAU,gBAAiB,gBAAiB,QAAS,eAAgB,iBCD5I3nG,GAAY,CAAC,SAAU,UAAW,aACxC,IACEywG,GACAC,GACAC,GACAC,GAJE9wH,GAAI5K,GAAKA,EAgBb,MAEM27H,GAAgBvlD,GAAUmlD,KAAOA,GAAK3wH,EAAC;;;;;;;;;;IAWvCgxH,GAAexlD,GAAUolD,KAAQA,GAAM5wH,EAAC;;;;;;;;IASxCixH,GAAkBzlD,GAAUqlD,KAAQA,GAAM7wH,EAAC;;;;;;;;;;;;IAapCkxH,GAAkBriB,GAAO,OAAQ,CAC5Cv3G,KAAM,iBACN+vG,KAAM,QAFuBwH,CAG5B,CACD51C,SAAU,SACVhd,cAAe,OACfx0C,SAAU,WACVqiE,OAAQ,EACRjyC,IAAK,EACL1e,MAAO,EACP2e,OAAQ,EACR7e,KAAM,EACNk+C,aAAc,YAKHg6D,GAAoBtiB,GAAO6gB,GAAQ,CAC9Cp4H,KAAM,iBACN+vG,KAAM,UAFyBwH,CAG9BiiB,KAAQA,GAAM9wH,EAAC;;;;MAIZ;;;sBAGgB;0BACI;iCACO;;;MAG3B;0BACoB;;;OAGnB;;;;;;;;;OASA;;sBAEe;0BACI;iCACO;;;OAG1B;;;;;sBAKe;;iCAEW;;;;GAI7B0wH,GAAmBN,cAAeW,GAlGrB,IAkG8C,EAC7DrhE,WACIA,EAAM03D,YAAYhC,OAAOC,UAAWqL,GAAmBL,cAAe,EAC1E3gE,WACIA,EAAM03D,YAAYnrD,SAASypD,QAASgL,GAAmB3+G,MAAO2+G,GAAmBF,aAAcQ,GAtGpF,IAsG4G,EAC3HthE,WACIA,EAAM03D,YAAYhC,OAAOC,UAAWqL,GAAmBD,aAAcQ,GAAiB,EAC1FvhE,WACIA,EAAM03D,YAAYhC,OAAOC,WAOzB+L,GAA2B90H,EAAMm+C,WAAW,SAAqBwuE,EAAS90H,GAC9E,MAAMwF,EAAQixG,GAAgB,CAC5BjxG,MAAOsvH,EACP3xH,KAAM,oBAGJ+5H,OAAQC,GAAa,EAAKlqB,QAC1BA,EAAU,CAAA,EAAEx2C,UACZA,GACEj3D,EACJ85B,EAAQ1kB,GAA8BpV,EAAOumB,KACxCqxG,EAASC,GAAcl1H,EAAMg9C,SAAS,IACvC8zE,EAAU9wH,EAAM88C,OAAO,GACvBq4E,EAAiBn1H,EAAM88C,OAAO,MACpC98C,EAAMy8C,UAAU,KACV04E,EAAeztH,UACjBytH,EAAeztH,UACfytH,EAAeztH,QAAU,OAE1B,CAACutH,IAGJ,MAAMG,EAAoBp1H,EAAM88C,QAAO,GAGjCu4E,EAAa9G,KAGb+G,EAAmBt1H,EAAM88C,OAAO,MAChCyf,EAAYv8D,EAAM88C,OAAO,MACzBy4E,EAAcv1H,EAAMg/C,YAAYuvD,IACpC,MAAM8kB,QACJA,EAAOC,QACPA,EAAOC,QACPA,EAAOC,WACPA,EAAUnwF,GACVA,GACEkrE,EACJ2mB,EAAWM,GAAc,IAAIA,EAAyBlwD,EAAAA,IAAKuvD,GAAmB,CAC5E/pB,QAAS,CACP+oB,OAAQ1yD,GAAK2pC,EAAQ+oB,OAAQO,GAAmBP,QAChDC,cAAe3yD,GAAK2pC,EAAQgpB,cAAeM,GAAmBN,eAC9DC,cAAe5yD,GAAK2pC,EAAQipB,cAAeK,GAAmBL,eAC9Dt+G,MAAO0rD,GAAK2pC,EAAQr1F,MAAO2+G,GAAmB3+G,OAC9Cy+G,aAAc/yD,GAAK2pC,EAAQopB,aAAcE,GAAmBF,cAC5DC,aAAchzD,GAAK2pC,EAAQqpB,aAAcC,GAAmBD,eAE9DpwF,QAhKW,IAiKXsvF,QAASA,EACTC,QAASA,EACTC,QAASA,EACTC,WAAYA,GACX1C,EAAQppH,WACXopH,EAAQppH,SAAW,EACnBytH,EAAeztH,QAAU27B,GACxB,CAACynE,IACEt3F,EAAQxT,EAAMg/C,YAAY,CAACrc,EAAQ,GAAI/5B,EAAU,CAAA,EAAIy6B,EAAK,UAC9D,MAAMgwF,QACJA,GAAU,EAAK0B,OACfA,EAASC,GAAcpsH,EAAQyqH,QAAOoC,YACtCA,GAAc,GACZ7sH,EACJ,GAA8C,eAAhC,MAAT+5B,OAAgB,EAASA,EAAMvqC,OAAyBg9H,EAAkB1tH,QAE7E,YADA0tH,EAAkB1tH,SAAU,GAGgB,gBAAhC,MAATi7B,OAAgB,EAASA,EAAMvqC,QAClCg9H,EAAkB1tH,SAAU,GAE9B,MAAMmK,EAAU4jH,EAAc,KAAOl5D,EAAU70D,QACzCspC,EAAOn/B,EAAUA,EAAQypB,wBAA0B,CACvDP,MAAO,EACP/W,OAAQ,EACRrH,KAAM,EACN4e,IAAK,GAIP,IAAI+3F,EACAC,EACAC,EACJ,GAAIuB,QAAoBpzH,IAAVghC,GAAyC,IAAlBA,EAAM+N,SAAmC,IAAlB/N,EAAMgO,UAAkBhO,EAAM+N,UAAY/N,EAAM4mD,QAC1G+pC,EAAUjqH,KAAK83B,MAAM6P,EAAKjW,MAAQ,GAClCw4F,EAAUlqH,KAAK83B,MAAM6P,EAAKhtB,OAAS,OAC9B,CACL,MAAM0sB,QACJA,EAAOC,QACPA,GACEhO,EAAM4mD,SAAW5mD,EAAM4mD,QAAQpwF,OAAS,EAAIwpC,EAAM4mD,QAAQ,GAAK5mD,EACnE2wF,EAAUjqH,KAAK83B,MAAMuP,EAAUM,EAAKr0B,MACpC42G,EAAUlqH,KAAK83B,MAAMwP,EAAUK,EAAKzV,IACtC,CACA,GAAIw5F,EACFvB,EAAanqH,KAAKqsH,MAAM,EAAI1kF,EAAKjW,OAAS,EAAIiW,EAAKhtB,QAAU,GAAK,GAG9DwvG,EAAa,GAAM,IACrBA,GAAc,OAEX,CACL,MAAMmC,EAAqF,EAA7EtsH,KAAKkuB,IAAIluB,KAAK89D,KAAKt1D,EAAUA,EAAQ8nB,YAAc,GAAK25F,GAAUA,GAAe,EACzFsC,EAAsF,EAA9EvsH,KAAKkuB,IAAIluB,KAAK89D,KAAKt1D,EAAUA,EAAQ4nB,aAAe,GAAK85F,GAAUA,GAAe,EAChGC,EAAanqH,KAAKqsH,KAAKC,GAAS,EAAIC,GAAS,EAC/C,CAGa,MAATjzF,GAAiBA,EAAM4mD,QAIQ,OAA7B+rC,EAAiB5tH,UAEnB4tH,EAAiB5tH,QAAU,KACzB6tH,EAAY,CACVlC,UACAC,UACAC,UACAC,aACAnwF,QAKJgyF,EAAW7hH,MA3OS,GA2OW,KACzB8hH,EAAiB5tH,UACnB4tH,EAAiB5tH,UACjB4tH,EAAiB5tH,QAAU,SAKjC6tH,EAAY,CACVlC,UACAC,UACAC,UACAC,aACAnwF,QAGH,CAAC2xF,EAAYO,EAAaF,IACvBhC,EAAUrzH,EAAMg/C,YAAY,KAChCxrC,EAAM,CAAA,EAAI,CACR6/G,SAAS,KAEV,CAAC7/G,IACEmxB,EAAO3kC,EAAMg/C,YAAY,CAACrc,EAAOU,KAKrC,GAJAgyF,EAAWjyH,QAImC,cAAhC,MAATu/B,OAAgB,EAASA,EAAMvqC,OAAwBk9H,EAAiB5tH,QAM3E,OALA4tH,EAAiB5tH,UACjB4tH,EAAiB5tH,QAAU,UAC3B2tH,EAAW7hH,MAAM,EAAG,KAClBmxB,EAAKhC,EAAOU,KAIhBiyF,EAAiB5tH,QAAU,KAC3BwtH,EAAWM,GACLA,EAAWr8H,OAAS,EACfq8H,EAAWl7H,MAAM,GAEnBk7H,GAETL,EAAeztH,QAAU27B,GACxB,CAACgyF,IAMJ,OALAr1H,EAAM61H,oBAAoBh+H,EAAK,KAAA,CAC7Bw7H,UACA7/G,QACAmxB,SACE,CAAC0uF,EAAS7/G,EAAOmxB,IACD2gC,EAAAA,IAAKsvD,GAAiBhjD,GAAS,CACjDtd,UAAW6M,GAAKizD,GAAmB7+G,KAAMu1F,EAAQv1F,KAAM++C,GACvDz8D,IAAK0kE,GACJplC,EAAO,CACRp5B,SAAuBunE,EAAAA,IAAKisD,GAAiB,CAC3C3hB,UAAW,KACX0hB,MAAM,EACNvzH,SAAUk3H,MAGhB,GC1TO,SAASa,GAA0B/qB,GACxC,OAAOgZ,GAAqB,gBAAiBhZ,EAC/C,CDyTyB,eAAzBtwG,QAAQC,IAAIC,WAA4Bm6H,GAAY1lB,UAAY,CAK9D2lB,OAAQ3qB,GAAU7C,KAIlBuD,QAASV,GAAUv+F,OAInByoD,UAAW81C,GAAUxzF,SCrUvB,MAAMm/G,GAAoBxK,GAAuB,gBAAiB,CAAC,OAAQ,WAAY,iBCDjF3nG,GAAY,CAAC,SAAU,eAAgB,WAAY,YAAa,YAAa,WAAY,gBAAiB,qBAAsB,cAAe,wBAAyB,gBAAiB,SAAU,UAAW,gBAAiB,cAAe,UAAW,iBAAkB,YAAa,UAAW,cAAe,eAAgB,YAAa,aAAc,cAAe,eAAgB,WAAY,mBAAoB,iBAAkB,QAgCvaoyG,GAAiBzjB,GAAO,SAAU,CAC7Cv3G,KAAM,gBACN+vG,KAAM,OACNqV,kBAAmB,CAAC/iH,EAAOiuE,IAAWA,EAAO/1D,MAHjBg9F,CAI3B,CACDntE,QAAS,cACTk2E,WAAY,SACZD,eAAgB,SAChBlwG,SAAU,WACVw0B,UAAW,aACXs2F,wBAAyB,cACzBlqB,gBAAiB,cAGjBhrD,QAAS,EACTqe,OAAQ,EACR5D,OAAQ,EAERX,aAAc,EACdY,QAAS,EAET0E,OAAQ,UACRrgB,WAAY,OACZo2E,cAAe,SACfC,cAAe,OAEfC,iBAAkB,OAElBr2E,eAAgB,OAEhBe,MAAO,UACP,sBAAuB,CACrBu1E,YAAa,QAEf,CAAC,KAAKN,GAAkBxxD,YAAa,CACnC5kB,cAAe,OAEfwgB,OAAQ,WAEV,eAAgB,CACdm2D,YAAa,WASXC,GAA0Bv2H,EAAMm+C,WAAW,SAAoBwuE,EAAS90H,GAC5E,MAAMwF,EAAQixG,GAAgB,CAC5BjxG,MAAOsvH,EACP3xH,KAAM,mBAEFq+C,OACFA,EAAMm9E,aACNA,GAAe,EAAKz4H,SACpBA,EAAQu2D,UACRA,EAASs7C,UACTA,EAAY,SAAQrrC,SACpBA,GAAW,EAAKkyD,cAChBA,GAAgB,EAAKC,mBACrBA,GAAqB,EAAKC,YAC1BA,GAAc,EAAKC,cACnBA,EAAgB,IAAG5qE,OACnBA,EAAME,QACNA,EAAO2qE,cACPA,EAAaC,YACbA,EAAWxpE,QACXA,EAAOypE,eACPA,EAAcxpE,UACdA,EAASypE,QACTA,EAAOl0B,YACPA,EAAWm0B,aACXA,EAAYC,UACZA,EAASC,WACTA,EAAUC,YACVA,EAAWC,aACXA,EAAY94C,SACZA,EAAW,EAAC+4C,iBACZA,EAAgBC,eAChBA,EAAcn/H,KACdA,GACEiF,EACJ85B,EAAQ1kB,GAA8BpV,EAAOumB,IACzC4zG,EAAYx3H,EAAM88C,OAAO,MACzB26E,EAAYz3H,EAAM88C,OAAO,MACzB46E,EAAkBpK,GAAWmK,EAAWF,IACxC1H,kBACJA,EACAviE,QAASqqE,EACT3rE,OAAQ4rE,EACR//H,IAAKggI,GACHlI,MACG/L,EAAckU,GAAmB93H,EAAMg9C,UAAS,GACnDunB,GAAYq/C,GACdkU,GAAgB,GAElB93H,EAAM61H,oBAAoBx8E,EAAQ,KAAA,CAChCuqE,aAAc,KACZkU,GAAgB,GAChBN,EAAU9vH,QAAQsL,WAElB,IACJ,MAAO+kH,EAAcC,GAAmBh4H,EAAMg9C,UAAS,GACvDh9C,EAAMy8C,UAAU,KACdu7E,GAAgB,IACf,IACH,MAAMC,EAAoBF,IAAiBtB,IAAkBlyD,EAM7D,SAAS2zD,EAAiBC,EAAcC,EAAeC,EAAmB3B,GACxE,OAAOzI,GAAiBtrF,IAClBy1F,GACFA,EAAcz1F,GAMhB,OAJe01F,GACAZ,EAAU/vH,SACvB+vH,EAAU/vH,QAAQywH,GAAcx1F,IAE3B,GAEX,CAhBA3iC,EAAMy8C,UAAU,KACVmnE,GAAgB+S,IAAgBF,GAAiBsB,GACnDN,EAAU/vH,QAAQ2rH,WAEnB,CAACoD,EAAeE,EAAa/S,EAAcmU,IAa9C,MAAMO,EAAkBJ,EAAiB,QAASp1B,GAC5Cy1B,EAAoBL,EAAiB,OAAQrB,GAC7C2B,EAAkBN,EAAiB,OAAQpB,GAC3C2B,EAAgBP,EAAiB,OAAQhB,GACzCwB,EAAmBR,EAAiB,OAAQv1F,IAC5CihF,GACFjhF,EAAMkoB,iBAEJosE,GACFA,EAAat0F,KAGXg2F,EAAmBT,EAAiB,QAASb,GAC7CuB,EAAiBV,EAAiB,OAAQf,GAC1C0B,GAAkBX,EAAiB,OAAQd,GAC3C0B,GAAaZ,EAAiB,OAAQv1F,IAC1Ci1F,EAAkBj1F,IACgB,IAA9BktF,EAAkBnoH,SACpBowH,GAAgB,GAEd9rE,GACFA,EAAOrpB,KAER,GACG03C,GAAc4zC,GAAiBtrF,IAE9B60F,EAAU9vH,UACb8vH,EAAU9vH,QAAUi7B,EAAMq7C,eAE5B25C,EAAmBh1F,IACe,IAA9BktF,EAAkBnoH,UACpBowH,GAAgB,GACZf,GACFA,EAAep0F,IAGf2qB,GACFA,EAAQ3qB,KAGNo2F,GAAoB,KACxB,MAAM9oC,EAASunC,EAAU9vH,QACzB,OAAOkoG,GAA2B,WAAdA,KAA+C,MAAnB3f,EAAO/qD,SAAmB+qD,EAAO+oC,OAM7EC,GAAaj5H,EAAM88C,QAAO,GAC1BZ,GAAgB+xE,GAAiBtrF,IAEjCg0F,IAAgBsC,GAAWvxH,SAAWk8G,GAAgB6T,EAAU/vH,SAAyB,MAAdi7B,EAAM/jC,MACnFq6H,GAAWvxH,SAAU,EACrB+vH,EAAU/vH,QAAQi9B,KAAKhC,EAAO,KAC5B80F,EAAU/vH,QAAQ8L,MAAMmvB,MAGxBA,EAAMz2B,SAAWy2B,EAAMq7C,eAAiB+6C,MAAqC,MAAdp2F,EAAM/jC,KACvE+jC,EAAMkoB,iBAEJ0C,GACFA,EAAU5qB,GAIRA,EAAMz2B,SAAWy2B,EAAMq7C,eAAiB+6C,MAAqC,UAAdp2F,EAAM/jC,MAAoB2lE,IAC3F5hC,EAAMkoB,iBACFqB,GACFA,EAAQvpB,MAIRu2F,GAAcjL,GAAiBtrF,IAG/Bg0F,GAA6B,MAAdh0F,EAAM/jC,KAAe64H,EAAU/vH,SAAWk8G,IAAiBjhF,EAAM2rB,mBAClF2qE,GAAWvxH,SAAU,EACrB+vH,EAAU/vH,QAAQi9B,KAAKhC,EAAO,KAC5B80F,EAAU/vH,QAAQ2rH,QAAQ1wF,MAG1Bq0F,GACFA,EAAQr0F,GAINupB,GAAWvpB,EAAMz2B,SAAWy2B,EAAMq7C,eAAiB+6C,MAAqC,MAAdp2F,EAAM/jC,MAAgB+jC,EAAM2rB,kBACxGpC,EAAQvpB,KAGZ,IAAIw2F,GAAgBvpB,EACE,WAAlBupB,KAA+BhiG,EAAM6hG,MAAQ7hG,EAAMn9B,MACrDm/H,GAAgBvC,GAElB,MAAMwC,GAAc,CAAA,EACE,WAAlBD,IACFC,GAAYhhI,UAAgBuJ,IAATvJ,EAAqB,SAAWA,EACnDghI,GAAY70D,SAAWA,IAElBptC,EAAM6hG,MAAS7hG,EAAMn9B,KACxBo/H,GAAYhuE,KAAO,UAEjBmZ,IACF60D,GAAY,iBAAmB70D,IAGnC,MAAM80D,GAAY/L,GAAWz1H,EAAKggI,EAAiBL,GACtB,eAAzB/8H,QAAQC,IAAIC,UAEdqF,EAAMy8C,UAAU,KACVw7E,IAAsBR,EAAU/vH,SAClClM,QAAQC,MAAM,CAAC,+DAAgE,4EAA4E6C,KAAK,QAEjK,CAAC25H,IAEN,MAAMxV,GAAa7wC,GAAS,CAAA,EAAIv0E,EAAO,CACrCm5H,eACA5mB,YACArrC,WACAkyD,gBACAC,qBACAC,cACAp4C,WACAqlC,iBAEI9Y,GA3QkB2X,KACxB,MAAMl+C,SACJA,EAAQq/C,aACRA,EAAY0V,sBACZA,EAAqBxuB,QACrBA,GACE2X,EAIE8W,EAAkB5uB,GAHV,CACZp1F,KAAM,CAAC,OAAQgvD,GAAY,WAAYq/C,GAAgB,iBAEXkS,GAA2BhrB,GAIzE,OAHI8Y,GAAgB0V,IAClBC,EAAgBhkH,MAAQ,IAAI+jH,KAEvBC,GA6PStM,CAAkBxK,IAClC,OAAoBnjB,EAAAA,KAAM02B,GAAgBpkD,GAAS,CACjDroE,GAAI4vH,GACJ7kE,UAAW6M,GAAK2pC,GAAQv1F,KAAM++C,GAC9BmuD,WAAYA,GACZz2D,OAAQ8sE,GACR5sE,QAASA,EACT2qE,cAAe0B,EACfjrE,QAAS+sB,GACT9sB,UAAWrR,GACX86E,QAASkC,GACTp2B,YAAaw1B,EACbrB,aAAcyB,EACdxB,UAAWuB,EACX3B,YAAa0B,EACbrB,WAAYyB,EACZxB,YAAayB,GACbxB,aAAcsB,EACd9gI,IAAKwhI,GACL96C,SAAUha,GAAW,EAAKga,EAC1BnmF,KAAMA,GACLghI,GAAajiG,EAAO,CACrBp5B,SAAU,CAACA,EAAUk6H,EAGrB3yD,EAAAA,IAAKwvD,GAAaljD,GAAS,CACzB/5E,IAAK6/H,EACL3C,OAAQyB,GACPc,IAAqB,QAE5B,GC3TO,SAASkC,GAAoBzuB,GAClC,OAAOgZ,GAAqB,UAAWhZ,EACzC,CD0TyB,eAAzBtwG,QAAQC,IAAIC,WAA4B47H,GAAWnnB,UAAmC,CASpF/1D,OAAQm0E,GAMRgJ,aAAcpsB,GAAU7C,KAIxBxpG,SAAUqsG,GAAUtqG,KAIpBgrG,QAASV,GAAUv+F,OAInByoD,UAAW81C,GAAUxzF,OAKrBg5F,UAAW6pB,GAKXl1D,SAAU6lC,GAAU7C,KAQpBkvB,cAAersB,GAAU7C,KAKzBmvB,mBAAoBtsB,GAAU7C,KAK9BovB,YAAavsB,GAAU7C,KASvB+xB,sBAAuBlvB,GAAUxzF,OAIjCoiH,KAAM5uB,GAAgD1C,IAKtDkvB,cAAexsB,GAAUlC,YAIzBl8C,OAAQo+C,GAAU1yE,KAIlBw0B,QAASk+C,GAAU1yE,KAInBm/F,cAAezsB,GAAU1yE,KAIzBo/F,YAAa1sB,GAAU1yE,KAIvB41B,QAAS88C,GAAU1yE,KAKnBq/F,eAAgB3sB,GAAU1yE,KAI1B61B,UAAW68C,GAAU1yE,KAIrBs/F,QAAS5sB,GAAU1yE,KAInBorE,YAAasH,GAAU1yE,KAIvBu/F,aAAc7sB,GAAU1yE,KAIxBw/F,UAAW9sB,GAAU1yE,KAIrBy/F,WAAY/sB,GAAU1yE,KAItB0/F,YAAahtB,GAAU1yE,KAIvB2/F,aAAcjtB,GAAU1yE,KAIxBolF,GAAI1S,GAAUxB,UAAU,CAACwB,GAAUxC,QAAQwC,GAAUxB,UAAU,CAACwB,GAAU1yE,KAAM0yE,GAAUv+F,OAAQu+F,GAAU7C,QAAS6C,GAAU1yE,KAAM0yE,GAAUv+F,SAI/I0yE,SAAU6rB,GAAU5C,OAIpB8vB,iBAAkBltB,GAAUv+F,OAI5B0rH,eAAgBntB,GAAUxB,UAAU,CAACwB,GAAU1yE,KAAM0yE,GAAUjB,MAAM,CACnEzhG,QAAS0iG,GAAUjB,MAAM,CACvBkqB,QAASjpB,GAAU1yE,KAAKkyE,WACxBp2F,MAAO42F,GAAU1yE,KAAKkyE,WACtBjlE,KAAMylE,GAAU1yE,KAAKkyE,iBAMzBxxG,KAAMgyG,GAAUxB,UAAU,CAACwB,GAAU5B,MAAM,CAAC,SAAU,QAAS,WAAY4B,GAAUxzF,WCrdvF,MAAM8iH,GAAcnO,GAAuB,UAAW,CAAC,OAAQ,YAAa,aAAc,aAAc,YAAa,eAAgB,iBAAkB,eAAgB,eAAgB,WAAY,YAAa,wBAAyB,0BAA2B,YAAa,wBAAyB,0BAA2B,WAAY,SAAU,kBAAmB,oBAAqB,gBAAiB,kBAAmB,SAAU,cAAe,eAAgB,qBAAsB,uBAAwB,OAAQ,YAAa,aAAc,mBAAoB,qBAAsB,QAAS,aAAc,cAAe,aAAc,kBAAmB,mBAAoB,yBAA0B,2BAA4B,iCAAkC,mCAAoC,+BAAgC,iCAAkC,iBCD91B3nG,GAAY,CAAC,SAAU,YAAa,YAAa,QAAS,YAAa,aAAc,WAAY,OAAQ,QAAS,UAAW,WAAY,YAAa,UAAW,OAAQ,UAAW,WAAY,yBAoChM+1G,GAAWpnB,GAAO,MAAO,CAC7Bv3G,KAAM,UACN+vG,KAAM,OACNqV,kBAAmB,CAAC/iH,EAAOiuE,KACzB,MAAMm3C,WACJA,GACEplH,GACEyjD,MACJA,EAAK84E,UACLA,EAASC,UACTA,EAASC,SACTA,EAAQh7F,KACRA,EAAIyiE,QACJA,GACEkhB,EACJ,MAAO,CAAC,CACN,CAAC,MAAMiX,GAAYK,UAAWzuD,EAAOyuD,QACpC,CACD,CAAC,MAAML,GAAYK,UAAWzuD,EAAO,SAAS0iC,GAAWlvE,OACxD,CACD,CAAC,MAAM46F,GAAYK,UAAWzuD,EAAO,cAAc0iC,GAAWltD,OAC7D,CACD,CAAC,MAAM44E,GAAY/2B,QAASr3B,EAAOq3B,MAClC,CACD,CAAC,MAAM+2B,GAAY/2B,QAASr3B,EAAO,OAAO0iC,GAAWlvE,OACpD,CACD,CAAC,MAAM46F,GAAY/2B,QAASr3B,EAAO,YAAY0iC,GAAW4rB,OACzD,CACD,CAAC,MAAMF,GAAYM,cAAe1uD,EAAO0uD,YACxC,CACD,CAAC,MAAMN,GAAYM,cAAe1uD,EAAO,aAAa0iC,GAAWlvE,OAChE,CACD,CAAC,MAAM46F,GAAYM,cAAe1uD,EAAO,kBAAkB0iC,GAAWltD,OACrE,CACD,CAAC,MAAM44E,GAAYM,cAAe1uD,EAAO,aAAa0iC,GAAWzM,UAAgByM,GAAWltD,OAC3FwqB,EAAO/1D,KAAM+1D,EAAO,OAAO0iC,GAAWlvE,MAAUwsC,EAAO,QAAQ0iC,GAAWltD,MAAW+4E,GAAavuD,EAAOuuD,UAAWA,GAAuB,YAAV/4E,GAAuBwqB,EAAO,iBAAiB0iC,GAAWltD,OAAYg5E,GAAYxuD,EAAO2uD,UAAWH,GAAsB,YAAVh5E,GAAuBwqB,EAAO,iBAAiB0iC,GAAWltD,MAAWwqB,EAAOi2B,GAAUj2B,EAAO,GAAGi2B,IAAUyM,GAAWltD,SAnC5VyxD,CAqCd,EACDn/C,QACAqvD,iBAEA,MAAMyX,EAAmC,UAAvB9mE,EAAM6qD,QAAQl6F,KAAmBqvC,EAAM6qD,QAAQmG,KAAK,KAAOhxD,EAAM6qD,QAAQmG,KAAK,KAChG,OAAOxyC,GAAS,CACdhyB,SAAU,OACVu8D,WAAY/oD,EAAMqpD,WAAWN,WAC7BC,SAAUhpD,EAAMqpD,WAAWmL,QAAQ,IACnCxiF,QAAS,cACTk2E,WAAY,SACZD,eAAgB,SAChBr3F,OAAQ,GACR88B,OAAQsS,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQpxG,KAAKm4G,QAC1CjZ,iBAAkB34C,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQ5kE,OAAOyqE,SACtDjpD,aAAc,GACdjQ,WAAY,SACZ8U,WAAYtM,EAAM03D,YAAY7nH,OAAO,CAAC,mBAAoB,eAE1Dk9D,OAAQ,QAERpf,QAAS,EACThB,eAAgB,OAChBqf,OAAQ,EAER3D,QAAS,EAETy6D,cAAe,SACfv2F,UAAW,aACX,CAAC,KAAK+5F,GAAYn1D,YAAa,CAC7B1kB,SAAUuT,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQ5kE,OAAOksE,gBAC9C5lE,cAAe,QAEjB,CAAC,MAAM+5E,GAAYK,UAAW,CAC5Btf,WAAY,EACZF,aAAa,EACbx/E,MAAO,GACP/W,OAAQ,GACR88B,MAAOsS,EAAM6jD,KAAO7jD,EAAM6jD,KAAKgH,QAAQkc,KAAKC,mBAAqBF,EACjE9d,SAAUhpD,EAAMqpD,WAAWmL,QAAQ,KAErC,CAAC,MAAM8R,GAAYW,sBAAuB,CACxCv5E,OAAQsS,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQ+G,QAAQ6B,aAC7C9a,iBAAkB34C,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQ+G,QAAQU,MAEzD,CAAC,MAAMgU,GAAYY,wBAAyB,CAC1Cx5E,OAAQsS,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQ3b,UAAUukB,aAC/C9a,iBAAkB34C,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQ3b,UAAUojB,MAE3D,CAAC,MAAMgU,GAAYa,eAAgB,CACjC9f,WAAY,EACZF,aAAa,EACbx/E,MAAO,GACP/W,OAAQ,GACRo4F,SAAUhpD,EAAMqpD,WAAWmL,QAAQ,KAErC,CAAC,MAAM8R,GAAY/2B,QAAS/wB,GAAS,CACnC6oC,WAAY,EACZF,aAAa,GACQ,UAApBkI,EAAW3jF,MAAoB,CAChCs9E,SAAU,GACV3B,WAAY,EACZF,aAAa,GACZkI,EAAWmX,YAAcnX,EAAW3hE,OAAS8wB,GAAS,CACvD9wB,MAAOsS,EAAM6jD,KAAO7jD,EAAM6jD,KAAKgH,QAAQkc,KAAKK,iBAAmBN,GACzC,YAArBzX,EAAW3hE,OAAuB,CACnCA,MAAO,aAET,CAAC,MAAM44E,GAAYM,cAAepoD,GAAS,CACzCqkD,wBAAyB,cACzBn1E,MAAOsS,EAAM6jD,KAAO,QAAQ7jD,EAAM6jD,KAAKgH,QAAQpxG,KAAK4tH,yBAA2BhvB,SAAMr4C,EAAM6qD,QAAQpxG,KAAKm4G,QAAS,KACjH5I,SAAU,GACVj8C,OAAQ,UACR3E,OAAQ,eACR,UAAW,CACT1a,MAAOsS,EAAM6jD,KAAO,QAAQ7jD,EAAM6jD,KAAKgH,QAAQpxG,KAAK4tH,wBAA0BhvB,SAAMr4C,EAAM6qD,QAAQpxG,KAAKm4G,QAAS,MAE7F,UAApBvC,EAAW3jF,MAAoB,CAChCs9E,SAAU,GACV7B,YAAa,EACbE,YAAY,GACU,YAArBgI,EAAW3hE,OAAuB,CACnCA,MAAOsS,EAAM6jD,KAAO,QAAQ7jD,EAAM6jD,KAAKgH,QAAQwE,EAAW3hE,OAAO45E,6BAA+BjvB,GAAAA,MAAMr4C,EAAM6qD,QAAQwE,EAAW3hE,OAAO+lE,aAAc,IACpJ,oBAAqB,CACnB/lE,OAAQsS,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQwE,EAAW3hE,OAAO+lE,iBAGtC,UAApBpE,EAAW3jF,MAAoB,CAChC9a,OAAQ,IACc,YAArBy+F,EAAW3hE,OAAuB,CACnCirD,iBAAkB34C,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQwE,EAAW3hE,OAAOmlE,KACjEnlE,OAAQsS,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQwE,EAAW3hE,OAAO+lE,cACtDpE,EAAWqX,UAAY,CACxB,CAAC,KAAKJ,GAAY9V,gBAAiB,CACjC7X,gBAAiB34C,EAAM6jD,KAAO,QAAQ7jD,EAAM6jD,KAAKgH,QAAQ5kE,OAAOshF,0BAA0BvnE,EAAM6jD,KAAKgH,QAAQ5kE,OAAOgsE,qBAAqBjyD,EAAM6jD,KAAKgH,QAAQ5kE,OAAOmsE,iBAAmB/Z,GAAAA,MAAMr4C,EAAM6qD,QAAQ5kE,OAAOyqE,SAAU1wD,EAAM6qD,QAAQ5kE,OAAOgsE,gBAAkBjyD,EAAM6qD,QAAQ5kE,OAAOmsE,gBAExR/C,EAAWqX,UAAiC,YAArBrX,EAAW3hE,OAAuB,CAC1D,CAAC,KAAK44E,GAAY9V,gBAAiB,CACjC7X,iBAAkB34C,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQwE,EAAW3hE,OAAO4kE,SAGpE,EACDtyD,QACAqvD,gBACI7wC,GAAS,CAAA,EAAI6wC,EAAWoX,WAAa,CACzC/5E,WAAY,OACZm2E,wBAAyB,cACzB91D,OAAQ,UACR,UAAW,CACT4rC,gBAAiB34C,EAAM6jD,KAAO,QAAQ7jD,EAAM6jD,KAAKgH,QAAQ5kE,OAAOshF,0BAA0BvnE,EAAM6jD,KAAKgH,QAAQ5kE,OAAOgsE,qBAAqBjyD,EAAM6jD,KAAKgH,QAAQ5kE,OAAO+rE,iBAAmB3Z,GAAAA,MAAMr4C,EAAM6qD,QAAQ5kE,OAAOyqE,SAAU1wD,EAAM6qD,QAAQ5kE,OAAOgsE,gBAAkBjyD,EAAM6qD,QAAQ5kE,OAAO+rE,eAEzR,CAAC,KAAKsU,GAAY9V,gBAAiB,CACjC7X,gBAAiB34C,EAAM6jD,KAAO,QAAQ7jD,EAAM6jD,KAAKgH,QAAQ5kE,OAAOshF,0BAA0BvnE,EAAM6jD,KAAKgH,QAAQ5kE,OAAOgsE,qBAAqBjyD,EAAM6jD,KAAKgH,QAAQ5kE,OAAOmsE,iBAAmB/Z,GAAAA,MAAMr4C,EAAM6qD,QAAQ5kE,OAAOyqE,SAAU1wD,EAAM6qD,QAAQ5kE,OAAOgsE,gBAAkBjyD,EAAM6qD,QAAQ5kE,OAAOmsE,eAEzR,WAAY,CACVtJ,WAAY9oD,EAAM6jD,MAAQ7jD,GAAOy1D,QAAQ,KAE1CpG,EAAWoX,WAAkC,YAArBpX,EAAW3hE,OAAuB,CAC3D,CAAC,cAAc44E,GAAY9V,gBAAiB,CAC1C7X,iBAAkB34C,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQwE,EAAW3hE,OAAO4kE,QAEjE,EACFtyD,QACAqvD,gBACI7wC,GAAS,CAAA,EAA2B,aAAvB6wC,EAAWlhB,SAA0B,CACtDwK,gBAAiB,cACjB3sC,OAAQhM,EAAM6jD,KAAO,aAAa7jD,EAAM6jD,KAAKgH,QAAQkc,KAAKS,gBAAkB,aAAoC,UAAvBxnE,EAAM6qD,QAAQl6F,KAAmBqvC,EAAM6qD,QAAQmG,KAAK,KAAOhxD,EAAM6qD,QAAQmG,KAAK,OACvK,CAAC,KAAKsV,GAAYG,mBAAoB,CACpC9tB,iBAAkB34C,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQ5kE,OAAO8rE,OAExD,CAAC,KAAKuU,GAAY9V,gBAAiB,CACjC7X,iBAAkB34C,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQ5kE,OAAOrmC,OAExD,CAAC,MAAM0mH,GAAYK,UAAW,CAC5Btf,WAAY,GAEd,CAAC,MAAMif,GAAYa,eAAgB,CACjC9f,WAAY,GAEd,CAAC,MAAMif,GAAY/2B,QAAS,CAC1B8X,WAAY,GAEd,CAAC,MAAMif,GAAYmB,aAAc,CAC/BpgB,WAAY,GAEd,CAAC,MAAMif,GAAYM,cAAe,CAChCzf,YAAa,GAEf,CAAC,MAAMmf,GAAYoB,mBAAoB,CACrCvgB,YAAa,IAES,aAAvBkI,EAAWlhB,SAA+C,YAArBkhB,EAAW3hE,OAAuB,CACxEA,OAAQsS,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQwE,EAAW3hE,OAAOmlE,KACvD7mD,OAAQ,aAAahM,EAAM6jD,KAAO,QAAQ7jD,EAAM6jD,KAAKgH,QAAQwE,EAAW3hE,OAAOi6E,qBAAuBtvB,SAAMr4C,EAAM6qD,QAAQwE,EAAW3hE,OAAOmlE,KAAM,MAClJ,CAAC,KAAKyT,GAAYG,mBAAoB,CACpC9tB,gBAAiB34C,EAAM6jD,KAAO,QAAQ7jD,EAAM6jD,KAAKgH,QAAQwE,EAAW3hE,OAAOi6E,iBAAiB3nE,EAAM6jD,KAAKgH,QAAQ5kE,OAAO+rE,gBAAkB3Z,GAAAA,MAAMr4C,EAAM6qD,QAAQwE,EAAW3hE,OAAOmlE,KAAM7yD,EAAM6qD,QAAQ5kE,OAAO+rE,eAE3M,CAAC,KAAKsU,GAAY9V,gBAAiB,CACjC7X,gBAAiB34C,EAAM6jD,KAAO,QAAQ7jD,EAAM6jD,KAAKgH,QAAQwE,EAAW3hE,OAAOi6E,iBAAiB3nE,EAAM6jD,KAAKgH,QAAQ5kE,OAAOmsE,gBAAkB/Z,GAAAA,MAAMr4C,EAAM6qD,QAAQwE,EAAW3hE,OAAOmlE,KAAM7yD,EAAM6qD,QAAQ5kE,OAAOmsE,eAE3M,CAAC,MAAMkU,GAAYM,cAAe,CAChCl5E,MAAOsS,EAAM6jD,KAAO,QAAQ7jD,EAAM6jD,KAAKgH,QAAQwE,EAAW3hE,OAAOi6E,qBAAuBtvB,GAAAA,MAAMr4C,EAAM6qD,QAAQwE,EAAW3hE,OAAOmlE,KAAM,IACpI,oBAAqB,CACnBnlE,OAAQsS,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQwE,EAAW3hE,OAAOmlE,UAIvD+U,GAAYzoB,GAAO,OAAQ,CAC/Bv3G,KAAM,UACN+vG,KAAM,QACNqV,kBAAmB,CAAC/iH,EAAOiuE,KACzB,MAAMm3C,WACJA,GACEplH,GACEyhC,KACJA,GACE2jF,EACJ,MAAO,CAACn3C,EAAOhR,MAAOgR,EAAO,QAAQ0iC,GAAWlvE,SAVlCyzE,CAYf,EACDkQ,gBACI7wC,GAAS,CACbjV,SAAU,SACVs+C,aAAc,WACd/6E,YAAa,GACbF,aAAc,GACd4qB,WAAY,UACY,aAAvB63D,EAAWlhB,SAA0B,CACtCrhE,YAAa,GACbF,aAAc,IACO,UAApByiF,EAAW3jF,MAAoB,CAChCoB,YAAa,EACbF,aAAc,GACO,UAApByiF,EAAW3jF,MAA2C,aAAvB2jF,EAAWlhB,SAA0B,CACrErhE,YAAa,EACbF,aAAc,KAEhB,SAASi7F,GAAsBC,GAC7B,MAA6B,cAAtBA,EAAct8H,KAA6C,WAAtBs8H,EAAct8H,GAC5D,CAKA,MAAMu7H,GAAoBn6H,EAAMm+C,WAAW,SAAcwuE,EAAS90H,GAChE,MAAMwF,EAAQixG,GAAgB,CAC5BjxG,MAAOsvH,EACP3xH,KAAM,aAGJ++H,OAAQoB,EAAU7mE,UAClBA,EACAulE,UAAWuB,EAAat6E,MACxBA,EAAQ,UACR8uD,UAAWupB,EACXa,WAAYqB,EAAc92D,SAC1BA,GAAW,EACXo+B,KAAM24B,EAAQhhE,MACdA,EAAKpO,QACLA,EAAO4tE,SACPA,EAAQvsE,UACRA,EAASypE,QACTA,EAAOl4F,KACPA,EAAO,SAAQyiE,QACfA,EAAU,SAAQhjB,SAClBA,EAAQg9C,sBACRA,GAAwB,GACtBl+H,EACJ85B,EAAQ1kB,GAA8BpV,EAAOumB,IACzC43G,EAAUx7H,EAAM88C,OAAO,MACvBu8E,EAAY/L,GAAWkO,EAAS3jI,GAChC4jI,EAAwB94F,IAE5BA,EAAM+4F,kBACF5B,GACFA,EAASn3F,IA2BPk3F,KAA8B,IAAlBuB,IAA2BlvE,IAAiBkvE,EACxDxrB,EAAYiqB,GAAaC,EAAWvD,GAAa4C,GAAiB,MAClE1W,EAAa7wC,GAAS,CAAA,EAAIv0E,EAAO,CACrCuyG,YACArrC,WACAzlC,OACAgiB,QACA84E,UAAwB55H,EAAM03F,eAAe4jC,IAAYA,EAASj+H,MAAMyjD,OAAiBA,EACzFg5E,WAAYA,EACZD,YACAt4B,YAEIuJ,EA3UkB2X,KACxB,MAAM3X,QACJA,EAAOvmC,SACPA,EAAQzlC,KACRA,EAAIgiB,MACJA,EAAK84E,UACLA,EAASE,SACTA,EAAQD,UACRA,EAASt4B,QACTA,GACEkhB,EAQJ,OAAO9X,GAPO,CACZp1F,KAAM,CAAC,OAAQgsF,EAASh9B,GAAY,WAAY,OAAOypC,GAAWlvE,KAAS,QAAQkvE,GAAWltD,KAAU+4E,GAAa,YAAaA,GAAa,iBAAiB7rB,GAAWltD,KAAUg5E,GAAY,YAAaA,GAAY,iBAAiB9rB,GAAWltD,KAAU,GAAGygD,IAAUyM,GAAWltD,MACxRwZ,MAAO,CAAC,QAAS,QAAQ0zC,GAAWlvE,MACpCi7F,OAAQ,CAAC,SAAU,SAAS/rB,GAAWlvE,KAAS,cAAckvE,GAAWltD,MACzE6hD,KAAM,CAAC,OAAQ,OAAOqL,GAAWlvE,KAAS,YAAYkvE,GAAW4rB,MACjEI,WAAY,CAAC,aAAc,aAAahsB,GAAWlvE,KAAS,kBAAkBkvE,GAAWltD,KAAU,aAAaktD,GAAWzM,UAAgByM,GAAWltD,OAE3H04E,GAAqB1uB,IAyTlCmiB,CAAkBxK,GAC5BkZ,EAAY/rB,IAAc2mB,GAAa3kD,GAAS,CACpDg+B,UAAWupB,GAAiB,MAC5BG,sBAAuBxuB,EAAQ8Y,cAC9BkW,GAAY,CACbrD,eAAe,IACZ,CAAA,EACL,IAAIuD,EAAa,KACbF,IACFE,EAAaqB,GAA+Br7H,EAAM03F,eAAe2jC,GAAiCr7H,EAAM4lF,aAAay1C,EAAgB,CACnI/mE,UAAW6M,GAAKk6D,EAAeh+H,MAAMi3D,UAAWw2C,EAAQkvB,YACxD9tE,QAASuvE,IACQn2D,EAAAA,IAAK+nD,GAAY,CAClC/4D,UAAW6M,GAAK2pC,EAAQkvB,YACxB9tE,QAASuvE,KAGb,IAAI1B,EAAS,KACToB,GAA2Bn7H,EAAM03F,eAAeyjC,KAClDpB,EAAsB/5H,EAAM4lF,aAAau1C,EAAY,CACnD7mE,UAAW6M,GAAK2pC,EAAQivB,OAAQoB,EAAW99H,MAAMi3D,cAGrD,IAAIquC,EAAO,KAWX,OAVI24B,GAAyBt7H,EAAM03F,eAAe4jC,KAChD34B,EAAoB3iG,EAAM4lF,aAAa01C,EAAU,CAC/ChnE,UAAW6M,GAAK2pC,EAAQnI,KAAM24B,EAASj+H,MAAMi3D,cAGpB,eAAzB75D,QAAQC,IAAIC,UACVo/H,GAAUp3B,GACZnnG,QAAQC,MAAM,mGAGE6jG,EAAAA,KAAMq6B,GAAU/nD,GAAS,CAC3CroE,GAAIqmG,EACJt7C,UAAW6M,GAAK2pC,EAAQv1F,KAAM++C,GAC9BiQ,YAAUs1D,IAAat1D,SAAkB5iE,EACzCuqD,QAASA,EACTqB,UA3EoB5qB,IAEhBA,EAAMq7C,gBAAkBr7C,EAAMz2B,QAAU+uH,GAAsBt4F,IAGhEA,EAAMkoB,iBAEJ0C,GACFA,EAAU5qB,IAoEZq0F,QAjEkBr0F,IAEdA,EAAMq7C,gBAAkBr7C,EAAMz2B,SAC5B4tH,GAAYmB,GAAsBt4F,GACpCm3F,EAASn3F,GACc,WAAdA,EAAM/jC,KAAoB48H,EAAQ9zH,SAC3C8zH,EAAQ9zH,QAAQooC,QAGhBknF,GACFA,EAAQr0F,IAwDV9qC,IAAKwhI,EACL96C,SAAUg9C,GAAyBh3D,GAAW,EAAKga,EACnDkkC,WAAYA,GACXkZ,EAAWxkG,EAAO,CACnBp5B,SAAU,CAACg8H,GAAUp3B,EAAmBr9B,EAAAA,IAAK01D,GAAW,CACtD1mE,UAAW6M,GAAK2pC,EAAQxwC,OACxBmoD,WAAYA,EACZ1kH,SAAUu8D,IACR0/D,KAER,GACyB,eAAzBv/H,QAAQC,IAAIC,WAA4Bw/H,GAAK/qB,UAAmC,CAQ9E2qB,OAAQ3vB,GAAUv4F,QAKlB9T,SChaa,SAAyBV,EAAOyB,EAAU3B,EAAempG,EAAUwB,GAChF,GAA6B,eAAzBrtG,QAAQC,IAAIC,SACd,OAAO,KAET,MAAMihI,EAAmB9zB,GAAgBhpG,EACzC,YAA+B,IAApBzB,EAAMyB,GACR,IAAI7B,MAAM,cAAc2+H,2CAE1B,IACT,ED2ZE9wB,QAASV,GAAUv+F,OAInByoD,UAAW81C,GAAUxzF,OASrBijH,UAAWzvB,GAAU7C,KAOrBzmD,MAAOspD,GAAgDxB,UAAU,CAACwB,GAAU5B,MAAM,CAAC,UAAW,UAAW,YAAa,QAAS,OAAQ,UAAW,YAAa4B,GAAUxzF,SAKzKg5F,UAAWxF,GAAUlC,YAIrB8xB,WAAY5vB,GAAUv4F,QAKtB0yD,SAAU6lC,GAAU7C,KAIpB5E,KAAMyH,GAAUv4F,QAIhByoD,MAAO8vC,GAAUtqG,KAIjBosD,QAASk+C,GAAU1yE,KAKnBoiG,SAAU1vB,GAAU1yE,KAIpB61B,UAAW68C,GAAU1yE,KAIrBs/F,QAAS5sB,GAAU1yE,KAKnBoH,KAAMsrE,GAAgDxB,UAAU,CAACwB,GAAU5B,MAAM,CAAC,SAAU,UAAW4B,GAAUxzF,SAMjH2kH,sBAAuBnxB,GAAU7C,KAIjCuV,GAAI1S,GAAUxB,UAAU,CAACwB,GAAUxC,QAAQwC,GAAUxB,UAAU,CAACwB,GAAU1yE,KAAM0yE,GAAUv+F,OAAQu+F,GAAU7C,QAAS6C,GAAU1yE,KAAM0yE,GAAUv+F,SAI/I0yE,SAAU6rB,GAAU5C,OAKpBjG,QAAS6I,GAAgDxB,UAAU,CAACwB,GAAU5B,MAAM,CAAC,SAAU,aAAc4B,GAAUxzF,WE9ezH,IAAAilH,GAAe1O,GAA4B7nD,EAAAA,IAAK,OAAQ,CACtDpiE,EAAG,kHACD,UCTG,SAAS44H,GAAsB/wB,GACpC,OAAOgZ,GAAqB,YAAahZ,EAC3C,CACsBwgB,GAAuB,YAAa,CAAC,OAAQ,eAAgB,WAAY,UAAW,SAAU,MAAO,aCD3H,MAAM3nG,GAAY,CAAC,YAAa,cAAe,aAAc,yBAA0B,oBAAqB,0BAC1GC,GAAa,CAAC,YAAa,QAAS,aACpC28F,GAAa,CAAC,aAmBD,SAASub,GAOxB/gI,EAAMs3H,GACJ,MAAMh+D,UACFA,EACA4zC,YAAa8zB,EAAkBvZ,WAC/BA,EAAUiQ,uBACVA,EAAsBuJ,kBACtBA,EAAiBC,uBACjBA,GACE5J,EACJ6J,EAAqB1pH,GAA8B6/G,EAAY1uG,KAE7DgsF,UAAWwsB,EAAaxxB,MACxBA,EAAQ,CACN5vG,CAACA,QAAO2G,GACTwzE,UACDA,EAAY,CACVn6E,CAACA,QAAO2G,IAER+wH,EACIjgH,GAA8BigH,EAAwB7uG,IAChE,MAAMqkF,EAAc0C,EAAM5vG,IAASghI,EAI7BK,ECpDR,SAA+BC,EAAgB7Z,EAAY8Z,GACzD,MAA8B,mBAAnBD,EACFA,EAAe7Z,EAAY8Z,GAE7BD,CACT,CD+CkCE,CAAsBrnD,EAAUn6E,GAAOynH,GACjEga,EAAkBpK,GAAezgD,GAAS,CAC5Ctd,aACC6nE,EAAoB,CACrBzJ,4BAAkD/wH,EAClD8wH,kBAAmB4J,MAGnBh/H,OACEuyG,UAAW8sB,GACZ7J,YACDA,GACE4J,EACJ3tD,EAAcr8D,GAA8BgqH,EAAgBp/H,MAAOmjH,IAC/D3oH,EAAMy1H,GAAWuF,EAAwC,MAA3BwJ,OAAkC,EAASA,EAAwBxkI,IAAKy6H,EAAWz6H,KACjH8kI,EAAiBV,EAAoBA,EAAkBntD,GAAe,CAAA,EACtE8tD,EAAkBhrD,GAAS,GAAI6wC,EAAYka,GAC3CE,EAAmEH,EACnEr/H,EE1DR,SAA0B6qG,EAAa2W,EAAY4D,GACjD,YAAoB9gH,IAAhBumG,GCbsB,iBDauBA,EACxC2W,EAEFjtC,GAAS,CAAA,EAAIitC,EAAY,CAC9B4D,WAAY7wC,GAAS,CAAA,EAAIitC,EAAW4D,WAAYA,IAEpD,CFmDgBqa,CAAiB50B,EAAat2B,GAAS,CAAA,EAAa,SAAT52E,GAAiG4vG,EAAM5vG,IAASkhI,EAAwBptD,EAAa+tD,GAAiB,CAC7NtzH,GAAIszH,GACH,CACDhlI,QACE+kI,GAIJ,OAHAhkI,OAAOuF,KAAKw+H,GAAgBr6H,QAAQxD,WAC3BzB,EAAMyB,KAER,CAACopG,EAAa7qG,EACvB,CI/EA,MAAMumB,GAAY,CAAC,MAAO,WAAY,YAAa,YAAa,QAAS,YAAa,WAAY,QAAS,MAAO,SAAU,WAwBtHm5G,GAAaxqB,GAAO,MAAO,CAC/Bv3G,KAAM,YACN+vG,KAAM,OACNqV,kBAAmB,CAAC/iH,EAAOiuE,KACzB,MAAMm3C,WACJA,GACEplH,EACJ,MAAO,CAACiuE,EAAO/1D,KAAM+1D,EAAOm3C,EAAWlhB,SAAUkhB,EAAWua,cAAgB1xD,EAAO0xD,gBAPpEzqB,CAShB,EACDn/C,YACD,CACCjoD,SAAU,WACVi6B,QAAS,OACTk2E,WAAY,SACZD,eAAgB,SAChBjvC,WAAY,EACZrxC,MAAO,GACP/W,OAAQ,GACRm4F,WAAY/oD,EAAMqpD,WAAWN,WAC7BC,SAAUhpD,EAAMqpD,WAAWmL,QAAQ,IACnCx6C,WAAY,EACZvS,aAAc,MACd8B,SAAU,SACV7c,WAAY,OACZqhD,SAAU,CAAC,CACT9jG,MAAO,CACLkkG,QAAS,WAEXrpG,MAAO,CACL2iE,cAAezH,EAAM6jD,MAAQ7jD,GAAO+1C,MAAMtuC,eAE3C,CACDx9D,MAAO,CACLkkG,QAAS,UAEXrpG,MAAO,CACL2iE,aAAc,IAEf,CACDx9D,MAAO,CACL2/H,cAAc,GAEhB9kI,MAAO05E,GAAS,CACd9wB,OAAQsS,EAAM6jD,MAAQ7jD,GAAO6qD,QAAQtS,WAAWphE,SAC/C6oB,EAAM6jD,KAAO,CACdlL,gBAAiB34C,EAAM6jD,KAAKgH,QAAQgf,OAAOC,WACzCtrD,GAAS,CACXm6B,gBAAiB34C,EAAM6qD,QAAQmG,KAAK,MACnChxD,EAAM2qD,YAAY,OAAQ,CAC3BhS,gBAAiB34C,EAAM6qD,QAAQmG,KAAK,cAIpC+Y,GAAY5qB,GAAO,MAAO,CAC9Bv3G,KAAM,YACN+vG,KAAM,MACNqV,kBAAmB,CAAC/iH,EAAOiuE,IAAWA,EAAO8xD,KAH7B7qB,CAIf,CACDx3E,MAAO,OACP/W,OAAQ,OACRw4F,UAAW,SAEX6gB,UAAW,QAEXv8E,MAAO,cAEPw8E,WAAY,MAERC,GAAiBhrB,GAAOspB,GAAQ,CACpC7gI,KAAM,YACN+vG,KAAM,WACNqV,kBAAmB,CAAC/iH,EAAOiuE,IAAWA,EAAO4pC,UAHxB3C,CAIpB,CACDx3E,MAAO,MACP/W,OAAQ,QAwCV,MAAMi5G,GAAsBj9H,EAAMm+C,WAAW,SAAgBwuE,EAAS90H,GACpE,MAAMwF,EAAQixG,GAAgB,CAC5BjxG,MAAOsvH,EACP3xH,KAAM,eAEFqrC,IACFA,EACAtoC,SAAUy/H,EAAYlpE,UACtBA,EAASs7C,UACTA,EAAY,MAAKhF,MACjBA,EAAQ,CAAA,EAAEz1B,UACVA,EAAY,CAAA,EAAEsoD,SACdA,EAAQC,MACRA,EAAK/8B,IACLA,EAAGg9B,OACHA,EAAMp8B,QACNA,EAAU,YACRlkG,EACJ85B,EAAQ1kB,GAA8BpV,EAAOumB,IAC/C,IAAI7lB,EAAW,KAGf,MAAM6/H,EA5DR,UAAmBC,YACjBA,EAAWC,eACXA,EAAcn9B,IACdA,EAAGg9B,OACHA,IAEA,MAAOC,EAAQG,GAAa/9H,EAAMg9C,UAAS,GA8B3C,OA7BAh9C,EAAMy8C,UAAU,KACd,IAAKkkD,IAAQg9B,EACX,OAEFI,GAAU,GACV,IAAI3sD,GAAS,EACb,MAAM4sD,EAAQ,IAAIC,MAmBlB,OAlBAD,EAAME,OAAS,KACR9sD,GAGL2sD,EAAU,WAEZC,EAAMG,QAAU,KACT/sD,GAGL2sD,EAAU,UAEZC,EAAMH,YAAcA,EACpBG,EAAMF,eAAiBA,EACvBE,EAAMr9B,IAAMA,EACRg9B,IACFK,EAAMI,OAAST,GAEV,KACLvsD,GAAS,IAEV,CAACysD,EAAaC,EAAgBn9B,EAAKg9B,IAC/BC,CACT,CAuBiBS,CAAUzsD,GAAS,CAAA,EAAI6rD,EAAU,CAC9C98B,MACAg9B,YAEIW,EAAS39B,GAAOg9B,EAChBY,EAAmBD,GAAqB,UAAXV,EAC7Bnb,EAAa7wC,GAAS,CAAA,EAAIv0E,EAAO,CACrC2/H,cAAeuB,EACf3uB,YACArO,YAEIuJ,EAjKkB2X,KACxB,MAAM3X,QACJA,EAAOvJ,QACPA,EAAOy7B,aACPA,GACEva,EAMJ,OAAO9X,GALO,CACZp1F,KAAM,CAAC,OAAQgsF,EAASy7B,GAAgB,gBACxCI,IAAK,CAAC,OACNloB,SAAU,CAAC,aAEgB4mB,GAAuBhxB,IAsJpCmiB,CAAkBxK,IAC3B+b,EAASC,GAAgB1C,GAAQ,MAAO,CAC7CznE,UAAWw2C,EAAQsyB,IACnBl1B,YAAai1B,GACbzK,uBAAwB,CACtB9nB,QACAz1B,UAAW,CACTioD,IAAKxrD,GAAS,CAAA,EAAI6rD,EAAUtoD,EAAUioD,OAG1C5K,gBAAiB,CACfnsF,MACAs6D,MACAg9B,SACAD,SAEFjb,eAgBF,OAbE1kH,EADEwgI,EACsBj5D,EAAAA,IAAKk5D,EAAS5sD,GAAS,CAAA,EAAI6sD,IAGxCjB,GAAiC,IAAjBA,EAChBA,EACFc,GAAUj4F,EACRA,EAAI,GAESi/B,EAAAA,IAAKi4D,GAAgB,CAC3C9a,WAAYA,EACZnuD,UAAWw2C,EAAQoK,WAGH5vC,EAAAA,IAAKy3D,GAAYnrD,GAAS,CAC5CroE,GAAIqmG,EACJ6S,WAAYA,EACZnuD,UAAW6M,GAAK2pC,EAAQv1F,KAAM++C,GAC9Bz8D,IAAKA,GACJs/B,EAAO,CACRp5B,SAAUA,IAEd,GACyB,eAAzBtD,QAAQC,IAAIC,WAA4BsiI,GAAO7tB,UAAmC,CAShF/oE,IAAK+jE,GAAUxzF,OAKf7Y,SAAUqsG,GAAUtqG,KAIpBgrG,QAASV,GAAUv+F,OAInByoD,UAAW81C,GAAUxzF,OAKrBg5F,UAAWxF,GAAUlC,YAMrBu1B,SAAUrzB,GAAUv+F,OAIpB6xH,MAAOtzB,GAAUxzF,OAKjBu+D,UAAWi1B,GAAUjB,MAAM,CACzBi0B,IAAKhzB,GAAUxB,UAAU,CAACwB,GAAU1yE,KAAM0yE,GAAUv+F,WAMtD++F,MAAOR,GAAUjB,MAAM,CACrBi0B,IAAKhzB,GAAUlC,cAKjBvH,IAAKyJ,GAAUxzF,OAKf+mH,OAAQvzB,GAAUxzF,OAIlBkmG,GAAI1S,GAAUxB,UAAU,CAACwB,GAAUxC,QAAQwC,GAAUxB,UAAU,CAACwB,GAAU1yE,KAAM0yE,GAAUv+F,OAAQu+F,GAAU7C,QAAS6C,GAAU1yE,KAAM0yE,GAAUv+F,SAK/I01F,QAAS6I,GAAgDxB,UAAU,CAACwB,GAAU5B,MAAM,CAAC,WAAY,UAAW,WAAY4B,GAAUxzF,WCnR7H,MAAM8nH,GAAuB,EAClCC,gBACAC,sBAGEt/B,OAAA,MAAA,CAAKhrC,UAAU,2BAA0Bv2D,SAAA,CACvCunE,MAACu9B,GAAK,CAACvuC,UAAU,GAAEv2D,SAAA,sBACnBunE,EAAAA,IAAA,MAAA,CAAKhR,UAAU,uBAAsBv2D,SAClC4gI,EAAc78H,IAAI,CAAC0+F,EAAah0F,IAE7B84D,EAAAA,IAACu5D,GAAe,CAEdr+B,YAAaA,EACbs5B,SAAU,KACR8E,EAAkBrxH,GAASA,EAAKnP,OAAQ0gI,GAAOA,IAAOt+B,MAHnD,QAAQA,EAAYK,qBAAqBL,EAAYxlG,cAkB3D6jI,GAAkB,EAAGr+B,cAAas5B,cAE3Cx0D,MAAC60D,IACC7/D,MAAOkmC,EAAYxlG,KACnB8+H,SAAUA,EACVC,OACEz0D,EAAAA,IAAC23D,GAAM,CACLt8B,IAAKH,EAAYI,aACjBv6D,IAAKm6D,EAAYK,kBACjBic,GAAI,CAAE/Q,gBAAiB,mBCvBpBgzB,GAAiC,EAC5CC,mBACA52E,QACA62E,6BACA76D,wBAEA,MAAM86D,oBAAEA,GAAwBC,uBAEzBC,EAAgBC,GAAqBriF,EAAAA,SAAiB,KACtDsiF,EAAqBC,GAA0BviF,EAAAA,UAAkB,IAEjEwiF,EAAkBC,GAAuBziF,EAAAA,SAAiB,KAE1D0iF,EAAsBC,GAA2B3iF,EAAAA,SACtD,MAGI4iF,EAAwB9iF,EAAAA,OAA4B,MACpD+iF,EAAwB/iF,EAAAA,OAA4B,OAEnDgjF,EAAcC,GAAmB/iF,EAAAA,SAA4B,KAE7DujD,EAAgBy/B,GAAqBhjF,EAAAA,SAA4B,IACxEP,EAAAA,UAAU,KACRujF,EAAkBd,EAAoB96D,KACrC,CAACA,EAAmB86D,IAEvBztD,GAAoBouD,EAAuBT,GAAkB,IAC7D3tD,GAAoBmuD,EAAuBJ,GAAoB,IAG/D/iF,EAAAA,UAAU,WACqB,QAA7B9e,EAAAiiG,EAAsBl4H,eAAO,IAAAi2B,GAAAA,EAAE3qB,SAC9B,IAGHypC,EAAAA,UAAU,KAER,IAAKijF,EACH,OAIF,GAAIA,EAAqBO,OACvB,OAIFZ,EAAkB,IAGlB,MAAMa,EAASR,EAAqBS,YAuBpC,MAtBar/D,WAEX,IADAy+D,GAAuB,KACV,CACX,MAAM31F,KAAEA,EAAIrtC,MAAEA,SAAgB2jI,EAAOz8C,OACrC,GAAI75C,EACF,MAEFy1F,EAAmB9xH,IACjB,MAAM6yH,EAAgB7yH,EAAOhR,EAM7B,OAHIsjI,EAAsBn4H,UACxBm4H,EAAsBn4H,QAAQs0B,UAAY6jG,EAAsBn4H,QAAQgyB,cAEnE0mG,GAEX,CAEAb,GAAuB,IAEzB97C,GAEO,KAE0B3iB,WAC7B,UACQo/D,EAAOG,MACf,CAAE,MAAA1iG,GACAuiG,EAAOI,aACT,GAGFC,KAED,CAACb,IAGJ,MAAMc,EAA4BxhF,EAAAA,YAAY8hB,UAE5C,IAAK0+D,EAAiBhuE,OACpB,OAKF,IAAIivE,EAAoBr4E,EAAMs4E,YACP,KAAnBtB,IACFqB,EAAkB98D,aAAey7D,GAInC,MAAMuB,EAAwC1B,EAC5CwB,EACAjB,EACAM,GACA,IAAI9+D,iBAAkBC,QAElB2/D,GC7H8BC,ED8HlCF,EC7HG,IAAIG,eAAkB,CAC3B,WAAMttH,CAAMutH,GACV,IACE,MACMb,SADeW,GACCV,YAEtB,OAAa,CACX,MAAMv2F,KAAEA,EAAIrtC,MAAEA,SAAgB2jI,EAAOz8C,OAErC,GAAI75C,EAEF,YADAm3F,EAAWC,QAIbD,EAAWE,QAAQ1kI,EACrB,CACF,CAAE,MAAOd,GACPslI,EAAWtlI,MAAMA,EACnB,CACF,KApBE,IAAkColI,EDiIpClB,EAAwBiB,IACvB,CACDpB,EACAJ,EACAh3E,EAAMs4E,YACNzB,EACAa,IAGIoB,EAAY5B,EAEZ6B,EAAa/B,GAAkBh3E,EAAMs4E,YAAY/8D,aACjDy9D,EACW,KAAfD,EACI,uCACA,6CACAzhF,EACW,KAAfyhF,EACI,uEACA,uDAEA/7D,eAAEA,GAAmBG,KAErB87D,EACJ/hC,EAAAA,KAAAgiC,WAAA,CAAAvjI,SAAA,CACEunE,EAAAA,IAACu9B,GAAK,CAACvuC,UAAU,GAAEv2D,SAAEqjI,IACrB9hC,EAAAA,KAAA,MAAA,CAAKhrC,UAAU,oCAAmCv2D,SAAA,CAChDunE,EAAAA,IAAA,WAAA,CAAA,cACc,oBACZf,SAAU+6D,EACVznI,IAAK+nI,EACLrjI,MAAOijI,EACPrmH,SAAWxf,GAAM8lI,EAAoB9lI,EAAEuS,OAAO3P,OAC9CgxD,UAAY5zD,IACI,UAAVA,EAAEiF,KAAmBjF,EAAEwkF,UACzBxkF,EAAEkxD,iBACF40E,EAAoBD,EAAmB,OACpB,UAAV7lI,EAAEiF,MACXjF,EAAEkxD,iBACF21E,MAGJ9gF,YAAaA,EACbxnD,MAAO,CAAEyzD,UAAW,QACpB2I,UAAU,qJACVitE,KAAM,IAERj8D,EAAAA,IAAA,SAAA,CACEpZ,QAASs0E,EACTlsE,UAAU,gGAA+F,cAC7F,2BAEZgR,EAAAA,IAAA,IAAA,CAAGhR,UAAU,iBAAgBv2D,SAAA,0BAM/ByjI,EACJliC,EAAAA,KAAAgiC,WAAA,CAAAvjI,SAAA,CACEuhG,EAAAA,YAAKhrC,UAAU,wCAAuCv2D,SAAA,CACpDunE,EAAAA,IAACu9B,GAAK,CAACvuC,UAAU,OAAMv2D,SAAA,eACvBunE,EAAAA,IAAA,MAAA,CAAKhR,UAAU,UAASv2D,SACrBmjI,GACC57D,EAAAA,IAAA,MAAA,CAAKhR,UAAU,4CACbgR,EAAAA,IAAA,MAAA,CACEhR,UAAU,8KACVlJ,KAAK,SAAQrtD,SAEbunE,EAAAA,YAAMhR,UAAU,wGAAuGv2D,SAAA,wBAQjIunE,EAAAA,IAAA,WAAA,CAAA,cACc,oBACZztE,IAAKgoI,EACLtjI,MAAO6iI,EACP76D,SAAU+6D,EACVnmH,SAAWxf,GAAM0lI,EAAkB1lI,EAAEuS,OAAO3P,OAC5C+3D,UAAU,iFACVp8D,MAAO,CAAEykE,SAAU,OAAQk9C,UAAW,aAKtC4nB,EACJn8D,EAAAA,IAAA,MAAA,CAAKhR,UAAU,2CACbgrC,EAAAA,KAACsD,kBACa,gBACZtuC,UAAU,2BACVpI,QAAS,KACP8yE,EAAiBI,IAClBrhI,SAAA,CAAA,UAEMunE,EAAAA,SAAGhR,UAAU,iBAAgBv2D,SAAA,eAMpC2jI,EAAwBlC,EAAiBh8G,MAAM,KAAK3B,MAEpD8/G,GAAmBD,aAAqB,EAArBA,EAAuBhuF,WAAW,MACvDguF,EAAsBpnI,MAAM,QAC5BqH,EAEJ,OACE29F,EAAAA,YAAKhrC,UAAU,kDAAiDv2D,SAAA,CAC7DsjI,EACAvB,EAAa3mI,OAAS,GACrBmsE,EAAAA,IAACo5D,IAAqBC,cAAemB,EAAclB,iBAAkBmB,SAEjDp+H,IAArBggI,GACCr8D,EAAAA,IAAC66B,GAAe,CACdG,WAAYqhC,EACZphC,eAAgBA,EAChBE,eAAiBD,UACfi/B,EAAoBD,EAAiBjqG,QAAQ,IAAIZ,OAAO,IAAIgtG,MAAsB,KAClF5B,EAAiBxyH,GAAS,IAAIA,EAAMizF,IAGP,QAA7B7iE,EAAAiiG,EAAsBl4H,eAAO,IAAAi2B,GAAAA,EAAE3qB,WAIpC0sH,EAAuB8B,EAAsB,KAC7C9B,EAAuB+B,EAAkB,SEhQnCG,GAA8BvkI,GAEvCioE,EAAAA,IAAA,MAAA,CACEhR,UAAU,4GACVp8D,MAAO,CAAE6iC,MAAO,SAASh9B,SAEzBunE,EAAAA,IAACy5D,GAA8B,CAC7B32E,MAAO,CACLs4E,YAAarjI,EAAMqjI,aAErBzB,2BAA4B5hI,EAAMwkI,UAAU5C,2BAC5CD,iBAAkB3hI,EAAM2hI,iBACxB56D,kBAAmB/mE,EAAM+mE,sBCJpB09D,GAAmBzkI,IAC9B,MAAMxF,EAAMilD,EAAAA,OAAuB,MAC7BzwC,EAASs1C,KACTr1C,E7OitJCoiD,GAAiBriD,GAAUA,EAAOC,UAAW2jD,K6OhtJ9CkV,YAAEA,EAAWC,eAAEA,GAAmBG,MAGjCw8D,EAAUC,GAAehlF,EAAAA,UAAS,GACzCP,EAAAA,UAAU,KACRulF,GAAY,IACX,IAEH,MAAMC,EAAUF,GAAY58D,GAAe74D,EA4E3C,OA1EAkwC,EAAAA,gBAAgB,KACd,MAAMvgB,EAAKpkC,EAAI6P,SACT4E,UAAEA,GAAcD,EAEtB,IAAK4vB,IAAOgmG,EACV,OAGF,IAAK31H,EAEH,YADA2vB,EAAG4rD,gBAAgB,SAIrB,MAAM33C,EAAe/V,OAAOgW,eAC5B,IAAKD,GAA4C,IAA5BA,EAAaE,WAChC,OAGF,MACMY,EADWd,EAAayF,WAAW,GACnBra,wBAMtB,GAAiB,IAAb0V,EAAKzV,KAA2B,IAAdyV,EAAKr0B,MAA6B,IAAfq0B,EAAKjW,OAA+B,IAAhBiW,EAAKhtB,OAChE,OAOF,IAAIuX,EAAMyV,EAAKxV,OAASrB,OAAOiB,QAJE,EAO7B4V,EAAKxV,OAASS,EAAGH,aAAe3B,OAAOc,YAPV,IAQ/BM,EAAMyV,EAAKzV,IAAMpB,OAAOiB,QAAUa,EAAGH,aARN,GAYjC,IAAInf,EACFq0B,EAAKr0B,KAAOwd,OAAOe,QAAUe,EAAGJ,YAAc,EAAImV,EAAKjW,MAAQ,EAZ9B,EAe/Bpe,EAf+B,EAgBjCA,EAhBiC,EAmB1BA,EAAOsf,EAAGJ,YAAc1B,OAAOa,WAnBL,IAoBjCre,EAAOwd,OAAOa,WAAaiB,EAAGJ,YApBG,GAuBnCI,EAAG/jC,MAAM2nD,QAAU,IACnB5jB,EAAG/jC,MAAMiT,SAAW,WAEpB8wB,EAAG/jC,MAAMqjC,IAAM,GAAGA,MAClBU,EAAG/jC,MAAMykB,KAAO,GAAGA,OAClB,CAACslH,IAEJxlF,EAAAA,UAAU,KACR,MAAMylF,EAAsBv/F,IACtB9qC,EAAI6P,UAAY7P,EAAI6P,QAAQ40B,SAASqG,EAAMz2B,SAC7Ck5D,GAAe,IAMnB,OAFArtE,SAAS6sC,iBAAiB,YAAas9F,GAEhC,KACLnqI,SAAS+sC,oBAAoB,YAAao9F,KAE3C,CAACrqI,EAAKutE,IAEJ68D,EAKH38D,EAAAA,IAACiM,GAAM,CAAAxzE,SACLunE,EAAAA,IAACgM,GAAI,CACHz5E,IAAKA,EACLy8D,UACE,mCACCj3D,EAAM8kI,oBACL,wGAAuG,cAE/F,mBAAkBpkI,SAE9BunE,EAAAA,IAACs8D,GAA0B,CACzBlB,YAAaA,GAAYr0H,GACzBw1H,UAAWxkI,EAAMwkI,UACjB7C,iBAAmBoD,IAEjB5hH,GAAWnd,OAAOgJ,EAAQ,CAAEuL,GAAItL,IAChCkU,GAAW9H,WAAWrM,EAAQ+1H,EAAc,CAC1CxqH,GAAItL,IAEN84D,GAAe,IAEjBhB,kBAAmB/mE,EAAM+mE,wBAzBxB,MAgCX,SAASs8D,GAAYr0H,EAAgBC,GACnC,MAAM+1H,EAAmBh/D,GAAuBh3D,GAChD,OAAIg2H,GAIG,CACL3gE,iBAAkBkC,GAA8Bv3D,GAChDs1D,gBAAiB,GACjBgC,aAAc,GAElB,CCvIA,MAAMpjB,GAAkBljD,GACfioE,MAAA,MAAA1sE,OAAAC,OAAA,CAAA,EAASwE,EAAMsmC,qBAAatmC,EAAMU,YAErCukI,GACJjlI,GAKEiiG,EAAAA,KAAA,OAAA1mG,OAAAC,OAAA,CAAA,EACMwE,EAAMsmC,YACVzrC,MAAKU,OAAAC,OAAA,CAAA,EACAwE,EAAMklI,kBAAgB,cAEf,aACZtiF,iBAAiB,EAAKliD,SAAA,CAErBV,EAAMU,SACiB,eAAvBV,EAAMwU,QAAQzZ,MAAyBiF,EAAMwU,QAAQyrD,YC/B5D,SAASklE,GACPn2H,EACA8E,GAGA,MAAMsxH,EAA2B,IAAI1/H,IACnCoO,EACGrP,IAAI,CAAChC,EAAM0M,IACNoI,GAAQJ,UAAU1U,IAASuM,EAAO0M,SAASjZ,GACtC0M,GAEF,GAERpO,OAAQoO,IAAoB,IAAVA,IAKjBk2H,EAAoBvxH,EAAM/S,OAAO,CAAC0B,EAAM0M,KAE5C,GADiBi2H,EAAyBjgI,IAAIgK,GAE5C,OAAO,EAKT,QADEi2H,EAAyBjgI,IAAIgK,EAAQ,IAAMi2H,EAAyBjgI,IAAIgK,EAAQ,KAElD,KAAtB1M,EAAa+M,OAMzB,OAAO61H,EACJ5gI,IAAKhC,IACJ,IAAI8U,GAAQJ,UAAU1U,GAQpB,MAAO,CAACA,GAPR,OAAQA,EAAK1H,MACX,IAAK,YACH,OAAOoqI,GAA6Bn2H,EAAQvM,EAAK/B,UACnD,IAAK,aACH,MAAO,MAMdk5C,OAAO,CAAC2qD,EAAK9sF,IAAQ8sF,EAAIrnG,OAAOua,GAAM,GAC3C,CAEO,MAAM6tH,GAAgBt2H,GACTm2H,GAA6Bn2H,EAAQA,EAAOtO,UAEvC+D,IAAK8gI,GAAkBA,EAAc/1H,MAAMvO,KAAK,MChDnE,SAAUukI,GACdxlI,GAEA,MAAMylI,EAAmCp0E,GAAkBtG,IAAK,CAC9D97C,UAAW87C,EAAM97C,UACjBO,KAAM81H,GAAav6E,MAGf26E,EAsDR,SAAwBxmI,GACtB,MAAM1E,EAAMilD,EAAAA,YAAUn7C,GAMtB,OAJA86C,EAAAA,UAAU,KACR5kD,EAAI6P,QAAUnL,IAGT1E,EAAI6P,OACb,CA9DwBs7H,CAAYF,GAYlC,OAVArmF,EAAAA,UAAU,KACHsmF,GAIDE,GAAgCF,EAAeD,IACjDzlI,EAAM6lI,mCAAkC,IAEzC,CAAC7lI,EAAM6lI,kCAAmCJ,IAEtCx9D,EAAAA,kBACT,CAOA,MAAM29D,GAAkC,CACtC11H,EACA9C,KAGA,MAAM04H,GAAsBlzE,GAAiB1iD,EAAKjB,UAAW7B,EAAK6B,WAG5D82H,EAAa71H,EAAKV,OAASpC,EAAKoC,KAEtC,OAAOs2H,GAAsBC,GAGzBnzE,GAAmB,CAAC3rD,EAAkBd,KACrCc,IAAMd,MACNc,IAAMd,IACJ0E,GAAMwB,OAAOpF,EAAGd,GCYlB,MAAM6/H,GAAsBrjI,EAAMm+C,WACvC,CAAC9gD,EAAiCxF,IAE9BytE,EAAAA,IAACD,GAAsB,CAAAtnE,SACrBunE,EAAAA,IAACg+D,GAAsC1qI,OAAAC,OAAA,CAAA,EAAKwE,EAAK,CAAExF,IAAKA,QAe1DyrI,GAAyCtjI,EAAMm+C,WACnD,CAAC9gD,EAAiCxF,KAChC,MAAM0rI,iCACDr/D,IACA7mE,EAAMmmI,2BAGLC,EAAuBp7E,EAAAA,QAAQ,WAAM,eAAA1qB,EAAAtgC,EAAMd,qBAAS,IAAI,KACvDmnI,EAAyBC,GAA8B3mF,EAAAA,SAASymF,IAChEG,EAAgCV,GAAqClmF,EAAAA,UAAS,IAC9E6mF,EAAmBC,GAAwB9mF,EAAAA,UAAS,GAOrDuS,EAA6BlH,EAAAA,QAAQ,IAClC,CACL,CACEjwD,KAAM,YACN2F,SAAU,CAAC,CAAE8O,KAAM42H,MAGtB,CAACA,IAEEp3H,EAASw2D,MAEPsC,YAAa4+D,EAA2B3+D,eAAgB4+D,GAC9Dz+D,KAEI7sD,EAAasmC,cAChBilF,IACCvvH,GAAOgE,WAAWrM,EAAQ43H,EAAep3H,KAAM,CAC7C+K,GAAIqsH,EAAel8H,SAGvB,CAACsE,IAGG63H,EAEJX,EAAsBh/D,UAEtBw/D,GAECH,GACCL,EAAsB/+D,wDAEtBq/D,GAAqBN,EAAsB9+D,oCAEzC0/D,8BACJA,EACAC,gBAAiBC,EACjBC,iBAAkBC,EAClBC,oBAAqBC,GC1HrB,SACJtgE,EACAa,EACAC,EACAy/D,EACAC,EACArgE,EACAC,GAEA,MAAOqgE,EAA2BC,GAChC7nF,EAAAA,SAAyC,OAEpCmnF,EAA+BW,GACpC9nF,EAAAA,SAAqC,MAEjC+nF,EAGe/lF,EAAAA,YACnB8hB,MAAOkkE,EAAkDC,KAEvD,GAAI1gE,EACF,OAGF,GACED,GAC6C,KAA7C0gE,EAAwBtjE,kBACoB,KAA5CsjE,EAAwBrjE,gBAExB,OAIF,MAAMujE,QAAmBR,EAAuBM,EAAyBC,GAGzE,IAAKC,GAAcD,EAAYE,QAC7B,MAAM,IAAIC,aAAa,UAAW,cAGpCN,EAAiC,CAC/Bj4H,KAAMq4H,EACNn9H,MAAOi9H,EAAwBzjE,eAGnC,CAACmjE,EAAwBI,EAAkCxgE,EAAkBC,IAGzE8gE,EAAoBh9E,EAAAA,QACxB,IAAM,IAAIwY,GAA8DsD,GACxE,CAACA,IAIH1nB,EAAAA,UAAU,IACD,KACL4oF,EAAkBjsG,SAClB0rG,EAAiC,OAElC,CAACO,EAAmB9gE,IAEvB,MAAMprD,EAAW6lC,cACdsmF,IACC,MAAMC,YpO1CVC,EACAlhI,EACAd,GAEA,OAAIc,eAAiCd,EAC5Bc,IAAMd,EAGRgiI,EAAmBlhI,EAAGd,EAC/B,CoOiCqCiiI,CAC7BnkE,GACAsjE,EACAU,GAEFT,EAA6BS,GAGxBC,IAKLT,EAAiC,MAG7BQ,EACFD,EAAkB/rG,SAASyrG,EAA6BO,GAExDD,EAAkBjsG,WAGtB,CACEwrG,EACAC,EACAQ,EACAN,EACAD,IAIEY,EAAwB1mF,cAC3Brc,IACKwhG,IAEe,eAAfxhG,EAAMvqC,KACF6sE,EAAkCtiC,GAClCqiC,EAAqCriC,MAGzCA,EAAMkoB,iBACN85E,EAA6BR,GAC7BW,EAAiC,QAIvC,CACEX,EACAW,EACAH,EACA3/D,IAIJ,MAAO,CACLm/D,gCACAC,gBAAiBjrH,EACjBmrH,iBAAkBoB,EAClBlB,oBAAqBkB,EAEzB,CDDQC,CACFpC,EAAsBp/D,aACtBo/D,EAAsBv+D,qCACtBu+D,EAAsBt+D,kCACtBs+D,EAAsB1B,UAAU+D,wBAChCltH,EACA6qH,EAAsBj/D,iBACtB4/D,GAGI2B,EAAoC7mF,cACvCrc,UAEG4gG,EAAsB7+D,qCAAqC/hC,EAAqB,QAAdhF,EAAAtgC,EAAMsnE,gBAAQ,IAAAhnC,EAAAA,EAAI,OAEpFgF,EAAMkoB,iBACNm5E,GAA8BD,KAGlC,CACEA,EACAC,EACAT,EAAsB7+D,uCAK1BjoB,EAAAA,UAAU,KACRunB,GAA+B33D,GAC3B83H,YErKR93H,EACA+zH,EACAr4H,GAEA,MAAM+9H,EAAiBz5H,EAAOC,UAE9BkU,GAAWtP,YACT7E,EACA,CACE,CACEjU,KAAM,aACNiiC,QAAQ,EACRijC,QAAS8iE,EACTriI,SAAU,CAAC,CAAE8O,KAAM,OAGvB,CACE+K,GAAI7P,IAKJ+9H,IACFz5H,EAAOC,UAAYw5H,EAEvB,CF6IQC,CACE15H,EACA83H,EAA8Bt3H,KAC9Bs3H,EAA8Bp8H,QAGjC,CAACo8H,IAEJ,MAAM6B,EAAgD39E,EAAAA,QAAQ,IAC5DzvD,OAAAC,OAAA,CACEwjH,UAAW,SACXv7D,MAAO,QACJzjD,EAAMklI,kBAEV,CAACllI,EAAMklI,mBAEJ0D,EAAwB59E,EAAAA,QAAQ,KACpC,OHrLJk6E,EGqLqCyD,EHnL7B3oI,IACN,OAAQA,EAAMwU,QAAQzZ,MACpB,IAAK,YACH,OAAOktE,EAAAA,IAAC/kB,GAAc3nD,OAAAC,OAAA,CAAA,EAAKwE,IAC7B,IAAK,aACH,OAAOioE,EAAAA,IAACg9D,GAAiB1pI,OAAAC,OAAA,GAAKwE,GAAOklI,iBAAkBA,OARzD,IACJA,GGsLK,CAACyD,IAEEE,EAA4B79E,EAAAA,QAAQ,KAExC,MAAM89E,EAAwD,CAC5D5qG,SAAK55B,GAQP,OGpMA,SACJykI,GAEA,OAAQ/oI,IACN,MAAMsgC,EAA+BtgC,EAAMsmC,YAArCzrC,MAAEA,GAAKylC,EAAK0oG,EAAc3sI,EAAAikC,EAA1B,CAAA,UAEN,OACE2nC,EAAAA,IAAA,MAAA1sE,OAAAC,OAAA,CAAA,EACMwtI,EAAc,CAClBnuI,MAAKU,OAAAC,OAAAD,OAAAC,OAAA,GACAX,GACAkuI,YAGJ/oI,EAAMU,YAIf,CHkLauoI,gCAJFH,GACA9oI,EAAM+oI,oBAIV,CAAC/oI,EAAM+oI,mBAGV3pF,EAAAA,UAAU,aACJp/C,EAAMd,QAAUmnI,IAIpBC,EAAsC,UAAXtmI,EAAMd,aAAK,IAAAohC,EAAAA,EAAI,IAC1CmmC,GAAkBz3D,EAAmB,QAAX6xB,EAAA7gC,EAAMd,aAAK,IAAA2hC,EAAAA,EAAI,MACxC,CAAC7gC,EAAMd,QAGV,MAAM6pI,iBACJA,EAAgB7pI,MAChBA,EAAK4lI,mBACLA,EAAkBnvC,cAClBA,EACAwwC,0BAA2B+C,EAA8BjyE,UACzDA,EAASn7C,SACTA,EAAQo0C,UACRA,EAASi5E,gBACTA,GAEEnpI,EADCopI,EAAc/sI,EACf2D,EAXE,CAAA,mBAAA,QAAA,qBAAA,gBAAA,4BAAA,YAAA,WAAA,YAAA,qBIrNJ,SACJ2oI,EACAQ,GAEA,MAAME,EAAc,kCACpBjqF,EAAAA,UAAU,KACR,GAAI+pF,EACF,OAKF,MAAMG,EAAU5uI,SAASI,cAAc,SACvCwuI,EAAQj3F,GAAK,iBAGb,IAAIk3F,EAAgBhuI,OAAOmpC,QAAQikG,GAChClkI,IAAI,EAAElD,EAAKrC,KAEH,GADcqC,EAAI22B,QAAQ,+BAAgC,SAAS8U,kBAC/C9tC,MAE5B+B,KAAK,KAGRsoI,GAAiB,0CACjBA,GAAiB,yBACjBA,GAAiB,eACjBA,GAAiB,cACjBA,GAAiB,wBACjBA,GAAiB,oBACjBA,GAAiB,cACjBA,GAAiB,aACjBA,GAAiB,aACjBA,GAAiB,kBACjBA,GAAiB,sBAGjBD,EAAQtwF,UAAY,WAChBqwF,uBACEE,mBAIN7uI,SAASC,KAAKO,YAAYouI,GAI1B,MAAME,EAAW9uI,SAASq9C,cAAcsxF,GAClCl8C,EAAe,KACnB,MAAMm8C,EAAU5uI,SAASkmG,eAAe,kBACxC,GAAI0oC,GAAWE,EAAU,CACvB,MAAMC,EAAyC,EAArBD,EAAS7qG,UAC7B+qG,EAAyC,EAAtBF,EAAS9qG,WAClC4qG,EAAQtwF,UAAY,eAChBqwF,2BACEE,0BACQE,4BACDC,6BAGf,GAMF,OAHAF,SAAAA,EAAUjiG,iBAAiB,SAAU4lD,GAG9B,WACoC,QAAzC7sD,EAAA5lC,SAASkmG,eAAe,yBAAiB,IAAAtgE,GAAAA,EAAEggD,SAC3CkpD,SAAAA,EAAU/hG,oBAAoB,SAAU0lD,KAEzC,CAACg8C,EAAiBR,GACvB,CJ2JIgB,CAAkBhB,EAA0BQ,GK5N1C,SACJn6H,EACAxU,GAEAmI,EAAM61H,oBAAoBh+H,EAAK,KA8C7B,MAAMm2D,EAAU,CACdtvD,IAAG,CAACwN,EAAa+6H,IACR/6H,EAAOxN,IAAIwN,EAAQ+6H,GAE5BvkI,IAAG,CAACwJ,EAAa+6H,EAAkD1qI,IAC1D2P,EAAOxJ,IAAIwJ,EAAQ+6H,EAAS1qI,IAuBjC2qI,EAAoBj4F,GAAYc,UAAU1jC,EAAQA,GAClD86H,EAAgB,IApBtB,MACE,WAAArqI,CAAoBuP,GAAA5S,KAAA4S,OAAAA,CAAuB,CAE3C,KAAA2G,GACEi8B,GAAYj8B,MAAMvZ,KAAK4S,OACzB,CAEA,IAAAyjC,GACEb,GAAYa,KAAKr2C,KAAK4S,OACxB,CAEA,SAAI9P,GACF,OAAOqnE,GAA8BnqE,KAAK4S,OAC5C,CACA,SAAI9P,CAAMA,GACRunE,GAAkBrqE,KAAK4S,OAAQ9P,EACjC,GAIsC8P,GAElC+6H,EAAW,IA5EjB,MACE,WAAAtqI,CACUqqI,EACAD,GADAztI,KAAA0tI,cAAAA,EACA1tI,KAAAytI,kBAAAA,CACP,CAIH,GAAAxoI,CAAIwN,EAAa+6H,GACf,GAAIxtI,KAAK4tI,qBAAqBJ,GAAU,CACtC,MAAM1qI,EAAQ9C,KAAK0tI,cAAcF,GACjC,MAAqB,mBAAV1qI,EACFA,EAAMiE,KAAK/G,KAAK0tI,eAElB5qI,CACT,CAAO,GAAI9C,KAAK6tI,mBAAmBL,GAAU,CAC3C,MAAM1qI,EAAQ9C,KAAKytI,kBAAkBD,GACrC,MAAqB,mBAAV1qI,EACFA,EAAMiE,KAAK/G,KAAKytI,mBAElB3qI,CACT,CACF,CAEA,GAAAmG,CAAIwJ,EAAa+6H,EAAiB1qI,GAShC,OARI9C,KAAK4tI,qBAAqBJ,GAC3BxtI,KAAK0tI,cAAsBF,GAAW1qI,EAC9B9C,KAAK6tI,mBAAmBL,GAChCxtI,KAAKytI,kBAA0BD,GAAW1qI,EAG3C2P,EAAO+6H,GAAW1qI,GAEb,CACT,CAEQ,oBAAA8qI,CAAqBzoI,GAC3B,OAAOA,KAAOnF,KAAK0tI,aACrB,CAEQ,kBAAAG,CAAmB1oI,GACzB,OAAOA,KAAOnF,KAAKytI,iBACrB,GAkC4BC,EAAeD,GAC7C,OAAO,IAAIhiI,MAAMkiI,EAAUp5E,IAC1B,CAAC3hD,GACN,CLyIIk7H,CAA8Bl7H,EAAQxU,GAEtC,MAAM2vI,EAKG,oBAHehB,EAAkB,cAAgB,mBAEhC5lE,GADS,oCACyBtM,QAAAA,EAAa,MAIzE,OACEgrC,EAAAA,KAAChwC,GAAK,CACJjjD,OAAQA,EACRkjD,aAAcA,EACdp2C,SAAW5c,YACT,MAAM+oI,E9NzOV,SAAuCj5H,GAC3C,MAAMC,UAAEA,GAAcD,EACtB,IAAKC,IAAcpE,GAAMiM,YAAY7H,GACnC,OAAO,KAGT,MAAMi1D,EAAcj1D,EAAUyG,OAGxBywD,EAAqB,CACzBzwD,OAAQ2B,GAAOlB,MAAMnH,EAAQ,IAC7B2G,MAAOuuD,GAEHkC,EAAoB,CACxB1wD,OAAQwuD,EACRvuD,MAAO0B,GAAOxB,IAAI7G,EAAQ,KAO5B,MAAO,CACLk1D,YAAaA,EACbG,iBALagC,GAAwBr3D,EAAQm3D,GAM7C7B,gBALY+B,GAAwBr3D,EAAQo3D,GAOhD,C8N8MiCgkE,CAA6Bp7H,GAE9Cq7H,EAAiBpC,EACnBA,EAAe5jE,iBAAmB4jE,EAAe3jE,gBACjDiC,GAA8Bv3D,GA6D5C,IACEs7H,EA5DQhE,EAA4Bp2H,IACtBA,IAASm6H,GACXxE,GAAkC,GAE7BwE,IAGTrD,EAA+BiB,GAEZ,QAAnB3nG,EAAAtgC,EAAM21F,qBAAa,IAAAr1D,GAAAA,EAAApkC,KAAA8D,EAAGqqI,GACR,QAAdxpG,EAAA7gC,EAAM8b,gBAAQ,IAAA+kB,GAAAA,EAAA3kC,KAAA8D,EAoDf,CACL6O,OAAQ,CACN3P,MAJJorI,EAlDwDD,EAuDpDtvI,KAAM,oBAER4lF,cAAe,CACbzhF,MAAOorI,EACPvvI,KAAM,uBA1DH2F,SAAA,CAEDunE,EAAAA,IAACu9D,GAAwC,CACvCK,kCAAmCA,IAErC59D,EAAAA,IAACw8D,GAAe,CACdD,UAAW0B,EAAsB1B,UACjCz9D,kBAAmBm/D,EAAsBn/D,kBACzC+9D,mBAAoBA,IAEtB78D,EAAAA,IAACve,kBACCzG,cAAe2lF,EACf1nF,kBAAmB2nF,EACnB34E,UAAY5qB,UACVmhG,GAAqB,GACrB+B,EAAkCljG,GAClC4hG,EAAgC5hG,GACjB,QAAfhF,EAAAtgC,EAAMkwD,iBAAS,IAAA5vB,GAAAA,EAAApkC,KAAA8D,EAAGslC,IAEpB00F,aAAe10F,IACb8hG,EAAmC9hG,IACpC,cACW,4BACZ2xB,UAAWkzE,EACXx7E,OAAS47E,UAEK,QAAZjqG,EAAAtgC,EAAM2uD,cAAM,IAAAruB,GAAAA,EAAApkC,KAAA8D,EAAGuqI,GACf5jE,GAA+B33D,GAC/By3H,GAAqB,KAEnB2C,SMnSR,SAAUoB,GACdxgI,EACAygI,EAAsB,EACtBC,EAAmB,IACnBC,EAAkB,KAElB,OAAO,IAAIzhI,QAAQ,CAACgf,EAAS0iH,KAC3B5gI,IACGb,KAAK+e,GACL2iH,MAAOzsI,IACc,IAAhBqsI,EAKJjvG,WAAW,KACTgvG,GAAMxgI,EAAIygI,EAAc,EAAGC,EAAWC,EAASA,GAC5CxhI,KAAK+e,GACL2iH,MAAMD,IACRF,GARDE,EAAOxsI,MAWjB,CCXO,MA6DM0sI,GAAoD,CAC/DC,iBA9DkE,CAClEC,EACAC,IAEO,gGAGWD,qqBAiBlBC,cAuCAC,gBAlC0D,CAC1D,IAAIC,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,6GAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,mEAEX,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKE,UACXrrE,QACE,6FAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,yLAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,mXAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKE,UACXrrE,QACE,wOCcOsrE,GAAkD,CAC7DR,iBA1EiE,CACjEC,EACAC,IAEO,0JAGWD,sHAIlBC,8nBAgEAC,gBA5CyD,CACzD,IAAIC,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,6GAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,wGAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,iEAEX,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKE,UACXrrE,QACE,2FAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,yLAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,mXAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,2FAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKE,UACXrrE,QACE,uOAOJurE,qBAAiBlnI,GCMNmnI,GAA4C,CACvDV,iBAnF8D,CAC9DC,EACAC,IAEO,8IAGWD,yFAIlBC,2dAyEAC,gBAtDsD,CACtD,IAAIC,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,yGAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,+FAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,+GAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,kEAEX,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKE,UACXrrE,QACE,2FAGJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,qGAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,iFAEX,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,wGAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QACE,8FAEJ,IAAIkrE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKE,UACXrrE,QACE,mJAOJurE,qBAAiBlnI,GC5ENonI,GAA4BnwI,OAAAC,OAAAD,OAAAC,OAAA,GAIpCqrE,IAAgC,CACnCE,kBAAmBC,EAAAA,gCACnB2kE,eAAgB,CACdC,qBAAsBd,GACtBe,mBAAoBN,GACpBO,iBAAkBL,6DCjBtB,IAGIM,EAAiB,4BAOjB99B,EAAmB,iBAGnB+9B,EAAU,qBAMVC,EAAU,oBAKVC,EAAY,kBA2BZC,EAAe,8BAGfC,EAAW,mBAGXC,EAAiB,CAAA,EACrBA,EAxBiB,yBAwBYA,EAvBZ,yBAwBjBA,EAvBc,sBAuBYA,EAtBX,uBAuBfA,EAtBe,uBAsBYA,EArBZ,uBAsBfA,EArBsB,8BAqBYA,EApBlB,wBAqBhBA,EApBgB,yBAoBY,EAC5BA,EAAeL,GAAWK,EAjDX,kBAkDfA,EAhCqB,wBAgCYA,EAhDnB,oBAiDdA,EAhCkB,qBAgCYA,EAhDhB,iBAiDdA,EAhDe,kBAgDYA,EAAeJ,GAC1CI,EA9Ca,gBA8CYA,EA7CT,mBA8ChBA,EAAeH,GAAaG,EA1CZ,mBA2ChBA,EA1Ca,gBA0CYA,EAzCT,mBA0ChBA,EAxCiB,qBAwCY,EAG7B,IAoIMC,EApIF90G,EAA8B,iBAAVC,GAAsBA,GAAUA,EAAOl8B,SAAWA,QAAUk8B,EAGhFE,EAA0B,iBAARr3B,MAAoBA,MAAQA,KAAK/E,SAAWA,QAAU+E,KAGxE4X,EAAOsf,GAAcG,GAAY/yB,SAAS,cAATA,GAGjC2nI,EAA4C3oI,IAAYA,EAAQu4B,UAAYv4B,EAG5E4oI,EAAaD,GAA4C3+B,IAAWA,EAAOzxE,UAAYyxE,EAGvF6+B,EAAgBD,GAAcA,EAAW5oI,UAAY2oI,EAGrDG,EAAcD,GAAiBj1G,EAAWp6B,QAG1CuvI,EAAY,WACd,IAEE,IAAIn8E,EAAQg8E,GAAcA,EAAWI,SAAWJ,EAAWI,QAAQ,QAAQp8E,MAE3E,OAAIA,GAKGk8E,GAAeA,EAAYG,SAAWH,EAAYG,QAAQ,OACrE,CAAI,MAAOvwI,GAAG,CACd,CAZY,GAeRwwI,EAAmBH,GAAYA,EAASI,aAiFxCC,EAAahwI,MAAMhB,UACnBixI,EAAYroI,SAAS5I,UACrBq8B,EAAc98B,OAAOS,UAGrBkxI,EAAah1H,EAAK,sBAGlBi1H,EAAeF,EAAU/oI,SAGzBjI,EAAiBo8B,EAAYp8B,eAG7BmxI,GACEd,EAAM,SAASh1E,KAAK41E,GAAcA,EAAWpsI,MAAQosI,EAAWpsI,KAAKusI,UAAY,KACvE,iBAAmBf,EAAO,GAQtCh0G,EAAuBD,EAAYn0B,SAGnCopI,EAAmBH,EAAajxI,KAAKX,QAGrCgyI,EAAaj2G,OAAO,IACtB61G,EAAajxI,KAAKD,GAAgBi8B,QA7KjB,sBA6KuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5Es1G,EAASf,EAAgBv0H,EAAKs1H,YAASlpI,EACvC/E,EAAS2Y,EAAK3Y,OACdkuI,EAAav1H,EAAKu1H,WACJD,GAASA,EAAOE,gBA9CjBrzG,EAAMjwB,EA+CnBujI,GA/CatzG,EA+CU9+B,OAAOoJ,eA/CXyF,EA+C2B7O,OA9CzC,SAASgxE,GACd,OAAOlyC,EAAKjwB,EAAUmiE,GAC1B,GA6CIqhE,EAAeryI,OAAOqK,OACtBnJ,EAAuB47B,EAAY57B,qBACnC2S,EAAS49H,EAAW59H,OACpBmpB,EAAiBh5B,EAASA,EAAOC,iBAAc8E,EAE/C1C,EAAkB,WACpB,IACE,IAAIy4B,EAAOwzG,GAAUtyI,OAAQ,kBAE7B,OADA8+B,EAAK,CAAA,EAAI,GAAI,IACNA,CACX,CAAI,MAAO/9B,GAAG,CACd,CANkB,GASdwxI,EAAiBN,EAASA,EAAOO,cAAWzpI,EAC5C21B,EAAYjuB,KAAKkuB,IACjB8zG,EAAY30G,KAAKF,IAGjB3zB,EAAMqoI,GAAU31H,EAAM,OACtB+1H,EAAeJ,GAAUtyI,OAAQ,UAUjC2yI,EAAc,WAChB,SAAS1/H,IAAS,CAClB,OAAO,SAAS2/H,GACd,IAAKnqI,GAASmqI,GACZ,MAAO,CAAA,EAET,GAAIP,EACF,OAAOA,EAAaO,GAEtB3/H,EAAOxS,UAAYmyI,EACnB,IAAI38H,EAAS,IAAIhD,EAEjB,OADAA,EAAOxS,eAAYsI,EACZkN,CACX,CACA,CAdc,GAuBd,SAAS48H,EAAK1pG,GACZ,IAAIv1B,GAAQ,EACRrT,EAAoB,MAAX4oC,EAAkB,EAAIA,EAAQ5oC,OAG3C,IADAM,KAAK2J,UACIoJ,EAAQrT,GAAQ,CACvB,IAAIqc,EAAQusB,EAAQv1B,GACpB/S,KAAKiJ,IAAI8S,EAAM,GAAIA,EAAM,GAC7B,CACA,CA6FA,SAASk2H,EAAU3pG,GACjB,IAAIv1B,GAAQ,EACRrT,EAAoB,MAAX4oC,EAAkB,EAAIA,EAAQ5oC,OAG3C,IADAM,KAAK2J,UACIoJ,EAAQrT,GAAQ,CACvB,IAAIqc,EAAQusB,EAAQv1B,GACpB/S,KAAKiJ,IAAI8S,EAAM,GAAIA,EAAM,GAC7B,CACA,CA0GA,SAASm2H,EAAS5pG,GAChB,IAAIv1B,GAAQ,EACRrT,EAAoB,MAAX4oC,EAAkB,EAAIA,EAAQ5oC,OAG3C,IADAM,KAAK2J,UACIoJ,EAAQrT,GAAQ,CACvB,IAAIqc,EAAQusB,EAAQv1B,GACpB/S,KAAKiJ,IAAI8S,EAAM,GAAIA,EAAM,GAC7B,CACA,CA4FA,SAASo2H,EAAM7pG,GACb,IAAIyQ,EAAO/4C,KAAKoyI,SAAW,IAAIH,EAAU3pG,GACzCtoC,KAAKqlC,KAAO0T,EAAK1T,IACnB,CAkGA,SAASgtG,EAAcvvI,EAAOwvI,GAC5B,IAAIC,EAAQ5rI,GAAQ7D,GAChB0vI,GAASD,GAASE,GAAY3vI,GAC9B4vI,GAAUH,IAAUC,GAASb,GAAS7uI,GACtC6vI,GAAUJ,IAAUC,IAAUE,GAAU/B,GAAa7tI,GACrD8vI,EAAcL,GAASC,GAASE,GAAUC,EAC1Cv9H,EAASw9H,EAzjBf,SAAmBpzI,EAAGqzI,GAIpB,IAHA,IAAI9/H,GAAQ,EACRqC,EAASxU,MAAMpB,KAEVuT,EAAQvT,GACf4V,EAAOrC,GAAS8/H,EAAS9/H,GAE3B,OAAOqC,CACT,CAijB6B09H,CAAUhwI,EAAMpD,OAAQm7B,QAAU,GACzDn7B,EAAS0V,EAAO1V,OAEpB,IAAK,IAAIyF,KAAOrC,EAER8vI,IAEQ,UAAPztI,GAECutI,IAAkB,UAAPvtI,GAA0B,UAAPA,IAE9BwtI,IAAkB,UAAPxtI,GAA0B,cAAPA,GAA8B,cAAPA,IAEtD4tI,GAAQ5tI,EAAKzF,KAElB0V,EAAOtJ,KAAK3G,GAGhB,OAAOiQ,CACT,CAWA,SAAS49H,EAAiB5gI,EAAQjN,EAAKrC,SACtBoF,IAAVpF,IAAwBmwI,GAAG7gI,EAAOjN,GAAMrC,SAC9BoF,IAAVpF,KAAyBqC,KAAOiN,KACnC8gI,GAAgB9gI,EAAQjN,EAAKrC,EAEjC,CAYA,SAASqwI,GAAY/gI,EAAQjN,EAAKrC,GAChC,IAAIswI,EAAWhhI,EAAOjN,GAChBtF,EAAeC,KAAKsS,EAAQjN,IAAQ8tI,GAAGG,EAAUtwI,UACxCoF,IAAVpF,GAAyBqC,KAAOiN,IACnC8gI,GAAgB9gI,EAAQjN,EAAKrC,EAEjC,CAUA,SAASuwI,GAAa/jG,EAAOnqC,GAE3B,IADA,IAAIzF,EAAS4vC,EAAM5vC,OACZA,KACL,GAAIuzI,GAAG3jG,EAAM5vC,GAAQ,GAAIyF,GACvB,OAAOzF,EAGX,OAAO,CACT,CAWA,SAASwzI,GAAgB9gI,EAAQjN,EAAKrC,GACzB,aAAPqC,GAAsBK,EACxBA,EAAe4M,EAAQjN,EAAK,CAC1BM,cAAgB,EAChBK,YAAc,EACdhD,MAASA,EACTkD,UAAY,IAGdoM,EAAOjN,GAAOrC,CAElB,CA7aAkvI,EAAKpyI,UAAU+J,MAvEf,WACE3J,KAAKoyI,SAAWP,EAAeA,EAAa,MAAQ,CAAA,EACpD7xI,KAAKqlC,KAAO,CACd,EAqEA2sG,EAAKpyI,UAAkB,OAzDvB,SAAoBuF,GAClB,IAAIiQ,EAASpV,KAAK+I,IAAI5D,WAAenF,KAAKoyI,SAASjtI,GAEnD,OADAnF,KAAKqlC,MAAQjwB,EAAS,EAAI,EACnBA,CACT,EAsDA48H,EAAKpyI,UAAUqF,IA3Cf,SAAiBE,GACf,IAAI4zC,EAAO/4C,KAAKoyI,SAChB,GAAIP,EAAc,CAChB,IAAIz8H,EAAS2jC,EAAK5zC,GAClB,OAAOiQ,IAAWu6H,OAAiBznI,EAAYkN,CACnD,CACE,OAAOvV,EAAeC,KAAKi5C,EAAM5zC,GAAO4zC,EAAK5zC,QAAO+C,CACtD,EAqCA8pI,EAAKpyI,UAAUmJ,IA1Bf,SAAiB5D,GACf,IAAI4zC,EAAO/4C,KAAKoyI,SAChB,OAAOP,OAA8B3pI,IAAd6wC,EAAK5zC,GAAsBtF,EAAeC,KAAKi5C,EAAM5zC,EAC9E,EAwBA6sI,EAAKpyI,UAAUqJ,IAZf,SAAiB9D,EAAKrC,GACpB,IAAIi2C,EAAO/4C,KAAKoyI,SAGhB,OAFApyI,KAAKqlC,MAAQrlC,KAAK+I,IAAI5D,GAAO,EAAI,EACjC4zC,EAAK5zC,GAAQ0sI,QAA0B3pI,IAAVpF,EAAuB6sI,EAAiB7sI,EAC9D9C,IACT,EAsHAiyI,EAAUryI,UAAU+J,MApFpB,WACE3J,KAAKoyI,SAAW,GAChBpyI,KAAKqlC,KAAO,CACd,EAkFA4sG,EAAUryI,UAAkB,OAvE5B,SAAyBuF,GACvB,IAAI4zC,EAAO/4C,KAAKoyI,SACZr/H,EAAQsgI,GAAat6F,EAAM5zC,GAE/B,QAAI4N,EAAQ,IAIRA,GADYgmC,EAAKr5C,OAAS,EAE5Bq5C,EAAK3wB,MAELpV,EAAOlT,KAAKi5C,EAAMhmC,EAAO,KAEzB/S,KAAKqlC,KACA,GACT,EAyDA4sG,EAAUryI,UAAUqF,IA9CpB,SAAsBE,GACpB,IAAI4zC,EAAO/4C,KAAKoyI,SACZr/H,EAAQsgI,GAAat6F,EAAM5zC,GAE/B,OAAO4N,EAAQ,OAAI7K,EAAY6wC,EAAKhmC,GAAO,EAC7C,EA0CAk/H,EAAUryI,UAAUmJ,IA/BpB,SAAsB5D,GACpB,OAAOkuI,GAAarzI,KAAKoyI,SAAUjtI,IAAO,CAC5C,EA8BA8sI,EAAUryI,UAAUqJ,IAlBpB,SAAsB9D,EAAKrC,GACzB,IAAIi2C,EAAO/4C,KAAKoyI,SACZr/H,EAAQsgI,GAAat6F,EAAM5zC,GAQ/B,OANI4N,EAAQ,KACR/S,KAAKqlC,KACP0T,EAAKjtC,KAAK,CAAC3G,EAAKrC,KAEhBi2C,EAAKhmC,GAAO,GAAKjQ,EAEZ9C,IACT,EAwGAkyI,EAAStyI,UAAU+J,MAtEnB,WACE3J,KAAKqlC,KAAO,EACZrlC,KAAKoyI,SAAW,CACdxhE,KAAQ,IAAIohE,EACZ3pI,IAAO,IAAKe,GAAO6oI,GACnB90H,OAAU,IAAI60H,EAElB,EAgEAE,EAAStyI,UAAkB,OArD3B,SAAwBuF,GACtB,IAAIiQ,EAASk+H,GAAWtzI,KAAMmF,GAAa,OAAEA,GAE7C,OADAnF,KAAKqlC,MAAQjwB,EAAS,EAAI,EACnBA,CACT,EAkDA88H,EAAStyI,UAAUqF,IAvCnB,SAAqBE,GACnB,OAAOmuI,GAAWtzI,KAAMmF,GAAKF,IAAIE,EACnC,EAsCA+sI,EAAStyI,UAAUmJ,IA3BnB,SAAqB5D,GACnB,OAAOmuI,GAAWtzI,KAAMmF,GAAK4D,IAAI5D,EACnC,EA0BA+sI,EAAStyI,UAAUqJ,IAdnB,SAAqB9D,EAAKrC,GACxB,IAAIi2C,EAAOu6F,GAAWtzI,KAAMmF,GACxBkgC,EAAO0T,EAAK1T,KAIhB,OAFA0T,EAAK9vC,IAAI9D,EAAKrC,GACd9C,KAAKqlC,MAAQ0T,EAAK1T,MAAQA,EAAO,EAAI,EAC9BrlC,IACT,EAuGAmyI,EAAMvyI,UAAU+J,MA3EhB,WACE3J,KAAKoyI,SAAW,IAAIH,EACpBjyI,KAAKqlC,KAAO,CACd,EAyEA8sG,EAAMvyI,UAAkB,OA9DxB,SAAqBuF,GACnB,IAAI4zC,EAAO/4C,KAAKoyI,SACZh9H,EAAS2jC,EAAa,OAAE5zC,GAG5B,OADAnF,KAAKqlC,KAAO0T,EAAK1T,KACVjwB,CACT,EAyDA+8H,EAAMvyI,UAAUqF,IA9ChB,SAAkBE,GAChB,OAAOnF,KAAKoyI,SAASntI,IAAIE,EAC3B,EA6CAgtI,EAAMvyI,UAAUmJ,IAlChB,SAAkB5D,GAChB,OAAOnF,KAAKoyI,SAASrpI,IAAI5D,EAC3B,EAiCAgtI,EAAMvyI,UAAUqJ,IArBhB,SAAkB9D,EAAKrC,GACrB,IAAIi2C,EAAO/4C,KAAKoyI,SAChB,GAAIr5F,aAAgBk5F,EAAW,CAC7B,IAAIsB,EAAQx6F,EAAKq5F,SACjB,IAAKhpI,GAAQmqI,EAAM7zI,OAAS8zI,IAG1B,OAFAD,EAAMznI,KAAK,CAAC3G,EAAKrC,IACjB9C,KAAKqlC,OAAS0T,EAAK1T,KACZrlC,KAET+4C,EAAO/4C,KAAKoyI,SAAW,IAAIF,EAASqB,EACxC,CAGE,OAFAx6F,EAAK9vC,IAAI9D,EAAKrC,GACd9C,KAAKqlC,KAAO0T,EAAK1T,KACVrlC,IACT,EAiIA,IAAIyzI,GAuWK,SAASrhI,EAAQygI,EAAUa,GAMhC,IALA,IAAI3gI,GAAQ,EACR4gI,EAAWx0I,OAAOiT,GAClBxO,EAAQ8vI,EAASthI,GACjB1S,EAASkE,EAAMlE,OAEZA,KAAU,CACf,IAAIyF,EAAMvB,IAA6BmP,GACvC,IAA+C,IAA3C8/H,EAASc,EAASxuI,GAAMA,EAAKwuI,GAC/B,KAER,CACI,OAAOvhI,CACX,EA3WA,SAASuqB,GAAW75B,GAClB,OAAa,MAATA,OACeoF,IAAVpF,EA7xBQ,qBANL,gBAqyBJq5B,GAAkBA,KAAkBh9B,OAAO2D,GA6YrD,SAAmBA,GACjB,IAAIu5B,EAAQx8B,EAAeC,KAAKgD,EAAOq5B,GACnCr6B,EAAMgB,EAAMq5B,GAEhB,IACEr5B,EAAMq5B,QAAkBj0B,EACxB,IAAIo0B,GAAW,CACnB,CAAI,MAAOp8B,GAAG,CAEZ,IAAIkV,EAAS8mB,EAAqBp8B,KAAKgD,GAQvC,OAPIw5B,IACED,EACFv5B,EAAMq5B,GAAkBr6B,SAEjBgB,EAAMq5B,IAGV/mB,CACT,CA9ZM4mB,CAAUl5B,GAwhBhB,SAAwBA,GACtB,OAAOo5B,EAAqBp8B,KAAKgD,EACnC,CAzhBMy5B,CAAez5B,EACrB,CASA,SAAS8wI,GAAgB9wI,GACvB,OAAO85B,GAAa95B,IAAU65B,GAAW75B,IAAU8sI,CACrD,CAUA,SAASiE,GAAa/wI,GACpB,SAAK8E,GAAS9E,IAodhB,SAAkBm7B,GAChB,QAAS+yG,GAAeA,KAAc/yG,CACxC,CAtd0B61G,CAAShxI,MAGnBixI,GAAWjxI,GAASquI,EAAapB,GAChCrrH,KAgmBjB,SAAkBuZ,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO8yG,EAAajxI,KAAKm+B,EAC/B,CAAM,MAAO/9B,GAAG,CACZ,IACE,OAAQ+9B,EAAO,EACrB,CAAM,MAAO/9B,GAAG,CAChB,CACE,MAAO,EACT,CA1mBsB8zI,CAASlxI,GAC/B,CAqBA,SAASmxI,GAAW7hI,GAClB,IAAKxK,GAASwK,GACZ,OAmdJ,SAAsBA,GACpB,IAAIgD,EAAS,GACb,GAAc,MAAVhD,EACF,IAAK,IAAIjN,KAAOhG,OAAOiT,GACrBgD,EAAOtJ,KAAK3G,GAGhB,OAAOiQ,CACT,CA3dW8+H,CAAa9hI,GAEtB,IAAI+hI,EAAUC,GAAYhiI,GACtBgD,EAAS,GAEb,IAAK,IAAIjQ,KAAOiN,GACD,eAAPjN,IAAyBgvI,GAAYt0I,EAAeC,KAAKsS,EAAQjN,KACrEiQ,EAAOtJ,KAAK3G,GAGhB,OAAOiQ,CACT,CAaA,SAASi/H,GAAUjiI,EAAQnO,EAAQqwI,EAAUC,EAAY9+E,GACnDrjD,IAAWnO,GAGfwvI,GAAQxvI,EAAQ,SAASuwI,EAAUrvI,GAEjC,GADAswD,IAAUA,EAAQ,IAAI08E,GAClBvqI,GAAS4sI,IA+BjB,SAAuBpiI,EAAQnO,EAAQkB,EAAKmvI,EAAUG,EAAWF,EAAY9+E,GAC3E,IAAI29E,EAAWsB,GAAQtiI,EAAQjN,GAC3BqvI,EAAWE,GAAQzwI,EAAQkB,GAC3BwvI,EAAUl/E,EAAMxwD,IAAIuvI,GAExB,GAAIG,EACF3B,EAAiB5gI,EAAQjN,EAAKwvI,OADhC,CAIA,IAwpByB7xI,EAxpBrBsmF,EAAWmrD,EACXA,EAAWnB,EAAUoB,EAAWrvI,EAAM,GAAKiN,EAAQnO,EAAQwxD,QAC3DvtD,EAEAwI,OAAwBxI,IAAbkhF,EAEf,GAAI14E,EAAU,CACZ,IAAI6hI,EAAQ5rI,GAAQ6tI,GAChB9B,GAAUH,GAASZ,GAAS6C,GAC5BI,GAAWrC,IAAUG,GAAU/B,GAAa6D,GAEhDprD,EAAWorD,EACPjC,GAASG,GAAUkC,EACjBjuI,GAAQysI,GACVhqD,EAAWgqD,EA2oBVx2G,GADkB95B,EAxoBMswI,IAyoBDyB,GAAY/xI,GAxoBpCsmF,EAsHR,SAAmBnlF,EAAQqrC,GACzB,IAAIv8B,GAAQ,EACRrT,EAASuE,EAAOvE,OAGpB,IADA4vC,IAAUA,EAAQ1uC,MAAMlB,MACfqT,EAAQrT,GACf4vC,EAAMv8B,GAAS9O,EAAO8O,GAExB,OAAOu8B,CACT,CA/HmBwlG,CAAU1B,GAEdV,GACPhiI,GAAW,EACX04E,EAAuBorD,EAuEb3zI,SArEH+zI,GACPlkI,GAAW,EACX04E,EAiGR,SAAyB2rD,GACvB,IAfwBC,EACpB5/H,EAcA00E,GAfoBkrD,EAeeD,EAAWjrD,OAd9C10E,EAAS,IAAI4/H,EAAY3xI,YAAY2xI,EAAYC,YACrD,IAAI5D,EAAWj8H,GAAQnM,IAAI,IAAIooI,EAAW2D,IACnC5/H,GAaP,OAAO,IAAI2/H,EAAW1xI,YAAYymF,EAAQirD,EAAWG,WAAYH,EAAWr1I,OAC9E,CApGmBy1I,CAAgBX,IAG3BprD,EAAW,GAmyBnB,SAAuBtmF,GACrB,IAAK85B,GAAa95B,IAAU65B,GAAW75B,IAAUgtI,EAC/C,OAAO,EAET,IAAIiC,EAAQR,EAAazuI,GACzB,GAAc,OAAVivI,EACF,OAAO,EAET,IAAIqD,EAAOv1I,EAAeC,KAAKiyI,EAAO,gBAAkBA,EAAM1uI,YAC9D,MAAsB,mBAAR+xI,GAAsBA,aAAgBA,GAClDrE,EAAajxI,KAAKs1I,IAASlE,CAC/B,CA3yBanpI,CAAcysI,IAAa/B,GAAY+B,IAC9CprD,EAAWgqD,EACPX,GAAYW,GACdhqD,EAq1BR,SAAuBtmF,GACrB,OA5tBF,SAAoBmB,EAAQL,EAAOwO,GACjC,IAAIijI,GAASjjI,EACbA,IAAWA,EAAS,IAKpB,IAHA,IAAIW,GAAQ,EACRrT,EAASkE,EAAMlE,SAEVqT,EAAQrT,GAAQ,CACvB,IAAIyF,EAAMvB,EAAMmP,GAEZq2E,OAEAlhF,OAEaA,IAAbkhF,IACFA,EAAWnlF,EAAOkB,IAEhBkwI,EACFnC,GAAgB9gI,EAAQjN,EAAKikF,GAE7B+pD,GAAY/gI,EAAQjN,EAAKikF,EAE/B,CACE,OAAOh3E,CACT,CAosBSkjI,CAAWxyI,EAAOyyI,GAAOzyI,GAClC,CAv1BmB0yI,CAAcpC,GAEjBxrI,GAASwrI,KAAaW,GAAWX,KACzChqD,EAwQR,SAAyBh3E,GACvB,MAAqC,mBAAtBA,EAAO/O,aAA8B+wI,GAAYhiI,GAE5D,CAAA,EADA0/H,EAAWP,EAAan/H,GAE9B,CA5QmBqjI,CAAgBjB,KAI7B9jI,GAAW,CAEjB,CACMA,IAEF+kD,EAAMxsD,IAAIurI,EAAUprD,GACpBqrD,EAAUrrD,EAAUorD,EAAUF,EAAUC,EAAY9+E,GACpDA,EAAc,OAAE++E,IAElBxB,EAAiB5gI,EAAQjN,EAAKikF,EAnDhC,CAoDA,CA1FMssD,CAActjI,EAAQnO,EAAQkB,EAAKmvI,EAAUD,GAAWE,EAAY9+E,OAEjE,CACH,IAAI2zB,EAAWmrD,EACXA,EAAWG,GAAQtiI,EAAQjN,GAAMqvI,EAAWrvI,EAAM,GAAKiN,EAAQnO,EAAQwxD,QACvEvtD,OAEaA,IAAbkhF,IACFA,EAAWorD,GAEbxB,EAAiB5gI,EAAQjN,EAAKikF,EACpC,CACA,EAAKmsD,GACL,CAuFA,SAASI,GAAS13G,EAAMlkB,GACtB,OAAO67H,GA6WT,SAAkB33G,EAAMlkB,EAAO/L,GAE7B,OADA+L,EAAQ8jB,OAAoB31B,IAAV6R,EAAuBkkB,EAAKv+B,OAAS,EAAKqa,EAAO,GAC5D,WAML,IALA,IAAIyR,EAAO/rB,UACPsT,GAAQ,EACRrT,EAASm+B,EAAUrS,EAAK9rB,OAASqa,EAAO,GACxCu1B,EAAQ1uC,MAAMlB,KAETqT,EAAQrT,GACf4vC,EAAMv8B,GAASyY,EAAKzR,EAAQhH,GAE9BA,GAAQ,EAER,IADA,IAAI8iI,EAAYj1I,MAAMmZ,EAAQ,KACrBhH,EAAQgH,GACf87H,EAAU9iI,GAASyY,EAAKzY,GAG1B,OADA8iI,EAAU97H,GAAS/L,EAAUshC,GAzvCjC,SAAerR,EAAMc,EAASvT,GAC5B,OAAQA,EAAK9rB,QACX,KAAK,EAAG,OAAOu+B,EAAKn+B,KAAKi/B,GACzB,KAAK,EAAG,OAAOd,EAAKn+B,KAAKi/B,EAASvT,EAAK,IACvC,KAAK,EAAG,OAAOyS,EAAKn+B,KAAKi/B,EAASvT,EAAK,GAAIA,EAAK,IAChD,KAAK,EAAG,OAAOyS,EAAKn+B,KAAKi/B,EAASvT,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE3D,OAAOyS,EAAKl+B,MAAMg/B,EAASvT,EAC7B,CAkvCWzrB,CAAMk+B,EAAMj+B,KAAM61I,EAC7B,CACA,CAhYqBC,CAAS73G,EAAMlkB,EAAOg8H,IAAW93G,EAAO,GAC7D,CAUA,IAAI+3G,GAAmBxwI,EAA4B,SAASy4B,EAAM9gB,GAChE,OAAO3X,EAAey4B,EAAM,WAAY,CACtCx4B,cAAgB,EAChBK,YAAc,EACdhD,OA+3BcA,EA/3BIqa,EAg4Bb,WACL,OAAOra,CACX,GAj4BIkD,UAAY,IA83BhB,IAAkBlD,CA53BlB,EAPwCizI,GA8KxC,SAASzC,GAAWjrI,EAAKlD,GACvB,IA4GiBrC,EACbnE,EA7GAo6C,EAAO1wC,EAAI+pI,SACf,OA6GgB,WADZzzI,SADamE,EA3GAqC,KA6GmB,UAARxG,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAVmE,EACU,OAAVA,GA9GDi2C,EAAmB,iBAAP5zC,EAAkB,SAAW,QACzC4zC,EAAK1wC,GACX,CAUA,SAASopI,GAAUr/H,EAAQjN,GACzB,IAAIrC,EAnhCN,SAAkBsP,EAAQjN,GACxB,OAAiB,MAAViN,OAAiBlK,EAAYkK,EAAOjN,EAC7C,CAihCc25G,CAAS1sG,EAAQjN,GAC7B,OAAO0uI,GAAa/wI,GAASA,OAAQoF,CACvC,CAkDA,SAAS6qI,GAAQjwI,EAAOpD,GACtB,IAAIf,SAAcmE,EAGlB,SAFApD,EAAmB,MAAVA,EAAiBmyG,EAAmBnyG,KAGlC,UAARf,GACU,UAARA,GAAoBqxI,EAAStrH,KAAK5hB,KAChCA,GAAQ,GAAMA,EAAQ,GAAK,GAAKA,EAAQpD,CACjD,CA0DA,SAAS00I,GAAYtxI,GACnB,IAAIsyI,EAAOtyI,GAASA,EAAMO,YAG1B,OAAOP,KAFqB,mBAARsyI,GAAsBA,EAAKx1I,WAAcq8B,EAG/D,CAsEA,SAASy4G,GAAQtiI,EAAQjN,GACvB,IAAY,gBAARA,GAAgD,mBAAhBiN,EAAOjN,KAIhC,aAAPA,EAIJ,OAAOiN,EAAOjN,EAChB,CAUA,IAAIywI,GAWJ,SAAkB33G,GAChB,IAAI8wC,EAAQ,EACRknE,EAAa,EAEjB,OAAO,WACL,IAAIC,EAAQtE,IACRntH,EA75CO,IA65CiByxH,EAAQD,GAGpC,GADAA,EAAaC,EACTzxH,EAAY,GACd,KAAMsqD,GAl6CI,IAm6CR,OAAOtvE,UAAU,QAGnBsvE,EAAQ,EAEV,OAAO9wC,EAAKl+B,WAAMmI,EAAWzI,UACjC,CACA,CA7BkB02I,CAASH,IAkF3B,SAAS/C,GAAGnwI,EAAO46B,GACjB,OAAO56B,IAAU46B,GAAU56B,GAAUA,GAAS46B,GAAUA,CAC1D,CAoBA,IAAI+0G,GAAcmB,GAAgB,WAAa,OAAOn0I,SAAU,CAA9B,IAAsCm0I,GAAkB,SAAS9wI,GACjG,OAAO85B,GAAa95B,IAAUjD,EAAeC,KAAKgD,EAAO,YACtDzC,EAAqBP,KAAKgD,EAAO,SACtC,EAyBI6D,GAAU/F,MAAM+F,QA2BpB,SAASkuI,GAAY/xI,GACnB,OAAgB,MAATA,GAAiB48D,GAAS58D,EAAMpD,UAAYq0I,GAAWjxI,EAChE,CAgDA,IAAI6uI,GAAWD,GAsUf,WACE,OAAO,CACT,EArTA,SAASqC,GAAWjxI,GAClB,IAAK8E,GAAS9E,GACZ,OAAO,EAIT,IAAIhB,EAAM66B,GAAW75B,GACrB,OAAOhB,GAAO+tI,GA1mDH,8BA0mDc/tI,GA/mDZ,0BA+mD6BA,GArmD7B,kBAqmDgDA,CAC/D,CA4BA,SAAS49D,GAAS58D,GAChB,MAAuB,iBAATA,GACZA,GAAQ,GAAMA,EAAQ,GAAK,GAAKA,GAAS+uG,CAC7C,CA2BA,SAASjqG,GAAS9E,GAChB,IAAInE,SAAcmE,EAClB,OAAgB,MAATA,IAA0B,UAARnE,GAA4B,YAARA,EAC/C,CA0BA,SAASi+B,GAAa95B,GACpB,OAAgB,MAATA,GAAiC,iBAATA,CACjC,CA4DA,IAAI6tI,GAAeD,EAvnDnB,SAAmBzyG,GACjB,OAAO,SAASn7B,GACd,OAAOm7B,EAAKn7B,EAChB,CACA,CAmnDsCszI,CAAU1F,GAj7BhD,SAA0B5tI,GACxB,OAAO85B,GAAa95B,IAClB48D,GAAS58D,EAAMpD,WAAauwI,EAAetzG,GAAW75B,GAC1D,EAm+BA,SAASyyI,GAAOnjI,GACd,OAAOyiI,GAAYziI,GAAUigI,EAAcjgI,GAAgB6hI,GAAW7hI,EACxE,CAiCA,IAxvBwBikI,GAwvBpBp+G,IAxvBoBo+G,GAwvBG,SAASjkI,EAAQnO,EAAQqwI,GAClDD,GAAUjiI,EAAQnO,EAAQqwI,EAC5B,EAzvBSqB,GAAS,SAASvjI,EAAQkkI,GAC/B,IAAIvjI,GAAQ,EACRrT,EAAS42I,EAAQ52I,OACjB60I,EAAa70I,EAAS,EAAI42I,EAAQ52I,EAAS,QAAKwI,EAChDquI,EAAQ72I,EAAS,EAAI42I,EAAQ,QAAKpuI,EAWtC,IATAqsI,EAAc8B,GAAS32I,OAAS,GAA0B,mBAAd60I,GACvC70I,IAAU60I,QACXrsI,EAEAquI,GAuIR,SAAwBzzI,EAAOiQ,EAAOX,GACpC,IAAKxK,GAASwK,GACZ,OAAO,EAET,IAAIzT,SAAcoU,EAClB,SAAY,UAARpU,EACKk2I,GAAYziI,IAAW2gI,GAAQhgI,EAAOX,EAAO1S,QACrC,UAARf,GAAoBoU,KAASX,IAE7B6gI,GAAG7gI,EAAOW,GAAQjQ,EAG7B,CAnJiB0zI,CAAeF,EAAQ,GAAIA,EAAQ,GAAIC,KAClDhC,EAAa70I,EAAS,OAAIwI,EAAYqsI,EACtC70I,EAAS,GAEX0S,EAASjT,OAAOiT,KACPW,EAAQrT,GAAQ,CACvB,IAAIuE,EAASqyI,EAAQvjI,GACjB9O,GACFoyI,GAASjkI,EAAQnO,EAAQ8O,EAAOwhI,EAExC,CACI,OAAOniI,CACX,IA8wBA,SAAS2jI,GAASjzI,GAChB,OAAOA,CACT,CAmBA0uG,EAAAhqG,QAAiBywB,yCC9wDV,MAAMw+G,GAAkBlwI,EAAMm+C,WACnC,CAAC9gD,EAA6BxF,KAE5B,MAAQ0rI,sBAAuB4M,GAA0D9yI,EAAnB+yI,EAAc12I,EAAK2D,EAAnF,CAAA,0BAEAkmI,EAA+C7xG,GACnDq3G,GACAoH,GAGIvK,WCrJRyC,EACAjkE,EACAy9D,GAGA,MAAMwO,iBAAEA,EAAgBC,iBAAEA,GAAqBnR,uBACvCoR,gBAAiBnlC,EAAGolC,aAAEA,EAAYC,YAAEA,EAAW/gI,WAAEA,GAAe4gI,EAC3D13I,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACRy3I,EAAiBI,SAChBF,EAAe,CAAE,CAACG,uCAAsCH,GAAiB,CAAA,GAE/E,MAAMI,UAAEA,EAASjsG,KAAEA,EAAIksG,YAAEA,EAAc,GAAMhP,EAE7C,OAAO7iF,EAAAA,YACL8hB,MAAO4/D,EAAmCuE,UACtB4C,GAAM/mE,oBAEM,CAC1B,IAAI0nE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKqI,OACXxzE,QAASukE,EAAUuG,iBACjBC,EACAgI,EAAiB,GAAIjsE,SAGtBy9D,EAAU0G,gBACkB,IAA/B7H,EAAY/+D,gBACR,IAAI6mE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAASojE,EAAY/+D,kBAEvB,KACJ,IAAI6mE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,oBAAoBojE,EAAY/+D,sCAE3C,IAAI6mE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,qBAAqBojE,EAAYh/D,yCAE5CtjE,OAAOgzD,SAuBT,MAAM2/E,EAAgB,CAAA,EAEtB,IAAIliI,EAAS,GACb,IAAK,MAAMg0B,KAAWmuG,EAAAA,mCACpBC,EAAsC,UAAzB,QAAbtzG,EAAAozG,EAASv+F,YAAI,IAAA7U,OAAA,EAAAA,EAAEuzG,+BAAuB,IAAAhzG,OAAA,EAAAA,EAAEizG,wBAAY,IACnD,CACD,GAAIlM,EAAYE,QACd,MAEEtiG,EAAQuuG,kBACVviI,GAAUg0B,EAAQy6B,QAEtB,CAEA,OAAOzuD,IAKX,CAACgzH,EAAWwO,EAAkBjsE,EAAmBikE,GAErD,CDiEoCgJ,CAC9B9N,EAAsB8E,gBACtB9E,EAAsBn/D,kBACtBm/D,EAAsByF,eAAeC,sBAGjChK,EEvJJ,SACJoJ,EACAjkE,EACA8kE,EACAC,GAEA,MAAMmI,EAAqB,CAAEJ,wBAAyB,IAAIjsH,SACpDorH,iBAAEA,EAAgBC,iBAAEA,GAAqBnR,sBAO/Cr+D,eAAeywE,EACbC,GAEA,MAAMC,EAAiBH,EAAcI,SAASF,GAE9C,OAAO,IAAI1Q,eAAe,CACxB,WAAMttH,CAAMutH,GACV,MAAMb,EAASuR,EAAetR,YAC9B,IAAIwR,EAAc,GAElB,OAAa,CACX,MAAM/nG,KAAEA,EAAIrtC,MAAEA,SAAgB2jI,EAAOz8C,OACrC,GAAI75C,EACF,MAGF,MAAMunG,EAAWH,EAAAA,2BAA2Bz0I,EAAM20I,wBAAwBC,UAE1E,IAAIS,EAAa,GAEjB,IAAK,MAAM/uG,KAAWsuG,EAChBtuG,EAAQuuG,kBACVQ,GAAc/uG,EAAQy6B,SAG1B,GAAIs0E,EAAY,CACd,MAAMC,EAAgBD,EAAWt3I,MAAMq3I,EAAYx4I,QACnD4nI,EAAWE,QAAQ4Q,GACnBF,GAAeE,CACjB,CACF,CACA9Q,EAAWC,OACb,GAEJ,CAxCapoI,OAAAC,OAAA,CAAA,EACPy3I,EAAiBE,aACjB,CAAE,CAACG,EAAAA,qCAAsCL,EAAiBE,cAC1D,CAAA,GAuCN,MAAMsB,EAAoB9yF,EAAAA,YACxB8hB,MACE4/D,EACAqR,EACAC,EACA/M,UAEkB4C,GAAM/mE,UACtB,MAAMqwE,EAAsB,CAC1B,IAAI3I,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKqI,OACXxzE,QAAS4rE,EAAmBd,iBAC1BC,EACAgI,EAAiB2B,EAAW5tE,SAG7B8kE,EAAmBX,gBACtB,IAAIC,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,oBAAoBojE,EAAY/+D,sCAE3C,IAAI6mE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,qBAAqBojE,EAAYh/D,wCAE5C,IAAI8mE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,oBAAoBy0E,yBAIjC,OAAOR,EACLD,EAAcJ,wBAAwB,CACpC1+F,KAAM,CACJy/F,SAAU,CACRt1G,QAAS,GACTyuE,IAAKjxE,OAAOmsE,SAAS0yB,MAEvBmY,SAAUe,EAAAA,0BAA0BC,2BAAyBhB,IAC7DiB,SAAU,CACRC,YAAaC,EAAAA,mBAAmBC,qBAGpC7iI,WAAY4gI,EAAiB5gI,WAC7BuxD,OAAQgkE,OAOhB,CAACiE,EAAoBmH,EAAkBjsE,EAAmBikE,IAGtDmK,EAAkBxzF,EAAAA,YACtB8hB,MACE4/D,EACA+R,EACAT,EACA/M,UAEkB4C,GAAM/mE,UACtB,MAAMqwE,EAAsB,CAC1B,IAAI3I,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKqI,OACXxzE,QAAS6rE,EAAiBf,iBACxBC,EACAgI,EAAiB2B,EAAW5tE,SAG7B+kE,EAAiBZ,gBACpB,IAAIC,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,qBAAqBojE,EAAYh/D,wCAE5C,IAAI8mE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,eAAeojE,EAAY/8D,8BAEtC,IAAI6kE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,oBAAoBojE,EAAY/+D,sCAE3C,IAAI6mE,cAAY,CACdp9E,KAAMq9E,EAAAA,KAAKC,KACXprE,QAAS,kBAAkBm1E,uBAI/B,OAAOlB,EACLD,EAAcJ,wBAAwB,CACpC1+F,KAAM,CACJy/F,SAAU,CACRt1G,QAAS,GACTyuE,IAAKjxE,OAAOmsE,SAAS0yB,MAEvBmY,SAAUe,EAAAA,0BAA0BC,2BAAyBhB,IAC7DiB,SAAU,CACRC,YAAaC,EAAAA,mBAAmBC,qBAGpC7iI,WAAY4gI,EAAiB5gI,WAC7BuxD,OAAQgkE,OAOhB,CAACkE,EAAkBkH,EAAkBjsE,EAAmBikE,IAGpDpJ,EAA6BjgF,EAAAA,YACjC8hB,MACE4/D,EACAqR,EACAC,EACA/M,IAEiC,KAA7BvE,EAAY/8D,mBACDmuE,EAAkBpR,EAAaqR,EAAiBC,EAAW/M,SAE3DuN,EAAgB9R,EAAaqR,EAAiBC,EAAW/M,GAG1E,CAAC6M,EAAmBU,IAGtB,OAAOvT,CACT,CF5BuCyT,CACjCnP,EAAsB8E,gBACtB9E,EAAsBn/D,kBACtBm/D,EAAsByF,eAAeE,mBACrC3F,EAAsByF,eAAeG,kBAGvC,OACE7jE,EAAAA,IAAAg8D,WAAA,CAAAvjI,SACEunE,EAAAA,IAAC+9D,GAAmBzqI,OAAAC,OAAA,CAClBhB,IAAKA,GACDu4I,GACJ5M,0BAAyB5qI,OAAAC,OAAAD,OAAAC,OAAA,GACpB0qI,GAAqB,CACxB1B,UAAW,CACT5C,2BAA4BA,EAC5B2G,wBAAyBA","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,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,63,66,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,157,158,160,161,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,302]}
|