@nation-a/ui 0.16.28 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ark-ui-D--_sKY0.js +7066 -0
- package/dist/ark-ui-D--_sKY0.js.map +1 -0
- package/dist/ark-ui-e4-hVrsF.cjs +2 -0
- package/dist/ark-ui-e4-hVrsF.cjs.map +1 -0
- package/dist/{index-BroabscA.cjs → index-B5IKaL0m.cjs} +2 -2
- package/dist/index-B5IKaL0m.cjs.map +1 -0
- package/dist/{index-B4n-XEbJ.js → index-FC3cETza.js} +2 -2
- package/dist/index-FC3cETza.js.map +1 -0
- package/dist/index.cjs +7 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +5033 -4981
- package/dist/index.js.map +1 -1
- package/dist/react-hot-toast-BCKriZQY.js +404 -0
- package/dist/react-hot-toast-BCKriZQY.js.map +1 -0
- package/dist/react-hot-toast-CvGdrsnM.cjs +178 -0
- package/dist/react-hot-toast-CvGdrsnM.cjs.map +1 -0
- package/dist/{react-lottie-DygynGMG.js → react-lottie-BoWlnUa4.js} +257 -257
- package/dist/react-lottie-BoWlnUa4.js.map +1 -0
- package/dist/react-lottie-D3xAW5ky.cjs +29 -0
- package/dist/react-lottie-D3xAW5ky.cjs.map +1 -0
- package/dist/stats.html +1 -1
- package/dist/styled-system/css/conditions.mjs +1 -1
- package/dist/styled-system/css/css.mjs +1 -1
- package/dist/styled-system/css/sva.mjs +9 -4
- package/dist/styled-system/helpers.mjs +12 -20
- package/dist/styled-system/jsx/create-style-context.d.ts +54 -0
- package/dist/styled-system/jsx/create-style-context.mjs +98 -0
- package/dist/styled-system/jsx/factory.mjs +14 -5
- package/dist/styled-system/jsx/index.d.ts +1 -0
- package/dist/styled-system/jsx/index.mjs +1 -0
- package/dist/styled-system/patterns/aspect-ratio.d.ts +0 -1
- package/dist/styled-system/patterns/bleed.d.ts +0 -1
- package/dist/styled-system/patterns/box.d.ts +0 -1
- package/dist/styled-system/patterns/center.d.ts +0 -1
- package/dist/styled-system/patterns/circle.d.ts +0 -1
- package/dist/styled-system/patterns/container.d.ts +0 -1
- package/dist/styled-system/patterns/cq.d.ts +0 -1
- package/dist/styled-system/patterns/divider.d.ts +0 -1
- package/dist/styled-system/patterns/flex.d.ts +0 -1
- package/dist/styled-system/patterns/float.d.ts +0 -1
- package/dist/styled-system/patterns/grid-item.d.ts +0 -1
- package/dist/styled-system/patterns/grid.d.ts +0 -1
- package/dist/styled-system/patterns/grid.mjs +1 -1
- package/dist/styled-system/patterns/hstack.d.ts +0 -1
- package/dist/styled-system/patterns/hstack.mjs +1 -1
- package/dist/styled-system/patterns/link-overlay.d.ts +0 -1
- package/dist/styled-system/patterns/spacer.d.ts +0 -1
- package/dist/styled-system/patterns/square.d.ts +0 -1
- package/dist/styled-system/patterns/stack.d.ts +0 -1
- package/dist/styled-system/patterns/stack.mjs +1 -1
- package/dist/styled-system/patterns/visually-hidden.d.ts +0 -1
- package/dist/styled-system/patterns/vstack.d.ts +0 -1
- package/dist/styled-system/patterns/vstack.mjs +1 -1
- package/dist/styled-system/patterns/wrap.d.ts +0 -1
- package/dist/styled-system/patterns/wrap.mjs +1 -1
- package/dist/styled-system/styles.css +1003 -993
- package/dist/styled-system/tokens/tokens.d.ts +1 -1
- package/dist/styled-system/types/composition.d.ts +83 -23
- package/dist/styled-system/types/conditions.d.ts +13 -9
- package/dist/styled-system/types/jsx.d.ts +25 -10
- package/dist/styled-system/types/prop-type.d.ts +12 -1
- package/dist/styled-system/types/style-props.d.ts +17 -5
- package/dist/styled-system/types/system-types.d.ts +76 -0
- package/dist/types/components/BottomSheet/BottomSheet.stories.d.ts +322 -4
- package/dist/types/components/BottomSheet/index.d.ts +23 -21
- package/dist/types/components/BottomSheet/react-modal-sheet/SheetBackdrop.d.ts +6 -1
- package/dist/types/components/BottomSheet/react-modal-sheet/SheetContainer.d.ts +7 -5
- package/dist/types/components/BottomSheet/react-modal-sheet/SheetContent.d.ts +7 -6
- package/dist/types/components/BottomSheet/react-modal-sheet/SheetHeader.d.ts +7 -6
- package/dist/types/components/BottomSheet/react-modal-sheet/SheetScroller.d.ts +7 -3
- package/dist/types/components/BottomSheet/react-modal-sheet/constants.d.ts +3 -8
- package/dist/types/components/BottomSheet/react-modal-sheet/hooks.d.ts +1 -1
- package/dist/types/components/BottomSheet/react-modal-sheet/index.d.ts +1 -1
- package/dist/types/components/BottomSheet/react-modal-sheet/sheet.d.ts +7 -16
- package/dist/types/components/BottomSheet/react-modal-sheet/types.d.ts +5 -5
- package/dist/types/components/Button/Button.stories.d.ts +10 -3
- package/dist/types/components/Button/index.d.ts +8 -298
- package/dist/types/components/Checkbox/checkbox.stories.d.ts +15 -3
- package/dist/types/components/Checkbox/checkbox.styled.d.ts +29 -12
- package/dist/types/components/Checkbox/index.d.ts +4 -1
- package/dist/types/components/Dialog/Dialog.stories.d.ts +9 -3
- package/dist/types/components/Dialog/index.d.ts +15 -25
- package/dist/types/components/Fab/Fab.stories.d.ts +25 -3
- package/dist/types/components/Fab/index.d.ts +300 -5
- package/dist/types/components/IconButton/IconButton.stories.d.ts +43 -3
- package/dist/types/components/IconButton/index.d.ts +5 -6
- package/dist/types/components/Input/Input.stories.d.ts +1 -1
- package/dist/types/components/Input/index.d.ts +4 -1
- package/dist/types/components/Layout/index.d.ts +19 -42
- package/dist/types/components/List/List.stories.d.ts +64 -4
- package/dist/types/components/List/index.d.ts +82 -13
- package/dist/types/components/Navigation/Navigation.stories.d.ts +9 -4
- package/dist/types/components/Navigation/index.d.ts +6 -9
- package/dist/types/components/RadioGroup/Radio.stories.d.ts +8 -3
- package/dist/types/components/RadioGroup/index.d.ts +10 -9
- package/dist/types/components/RadioGroup/radio.recipe.d.ts +1 -1
- package/dist/types/components/Select/Select.stories.d.ts +1 -9
- package/dist/types/components/Select/index.d.ts +75 -28
- package/dist/types/components/Select/select.recipe.d.ts +1 -1
- package/dist/types/components/Spinner/Spinner.stories.d.ts +1 -1
- package/dist/types/components/Spinner/index.d.ts +4 -1
- package/dist/types/components/Switch/Switch.stories.d.ts +1 -1
- package/dist/types/components/Switch/index.d.ts +5 -2
- package/dist/types/components/Switch/switch.styled.d.ts +89 -15
- package/dist/types/components/Tabs/Tabs.stories.d.ts +8 -4
- package/dist/types/components/Tabs/index.d.ts +208 -29
- package/dist/types/components/Tag/Tag.stories.d.ts +9 -4
- package/dist/types/components/Tag/index.d.ts +5 -2
- package/dist/types/components/Text/Text.stories.d.ts +25 -3
- package/dist/types/components/Text/index.d.ts +4 -276
- package/dist/types/components/TextArea/TextArea.stories.d.ts +9 -4
- package/dist/types/components/TextArea/index.d.ts +4 -1
- package/dist/types/components/Toast/Toast.stories.d.ts +9 -4
- package/dist/types/components/Toast/index.d.ts +47 -24
- package/dist/types/index.d.ts +0 -1
- package/dist/types/utils/with-polymorphic-component.d.ts +5 -4
- package/package.json +35 -40
- package/dist/ark-ui-BakX7_HR.cjs +0 -2
- package/dist/ark-ui-BakX7_HR.cjs.map +0 -1
- package/dist/ark-ui-BitYUtmQ.js +0 -6713
- package/dist/ark-ui-BitYUtmQ.js.map +0 -1
- package/dist/index-B4n-XEbJ.js.map +0 -1
- package/dist/index-BroabscA.cjs.map +0 -1
- package/dist/react-hot-toast-BQTk3w2h.cjs +0 -178
- package/dist/react-hot-toast-BQTk3w2h.cjs.map +0 -1
- package/dist/react-hot-toast-CPO7pUT3.js +0 -389
- package/dist/react-hot-toast-CPO7pUT3.js.map +0 -1
- package/dist/react-lottie-DTf3gNPc.cjs +0 -29
- package/dist/react-lottie-DTf3gNPc.cjs.map +0 -1
- package/dist/react-lottie-DygynGMG.js.map +0 -1
- package/dist/types/utils/create-style-context.d.ts +0 -20
- package/dist/types/utils/index.d.ts +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ark-ui-BakX7_HR.cjs","sources":["../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/create-context.js","../../../node_modules/.pnpm/@zag-js+utils@1.8.2/node_modules/@zag-js/utils/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+dom-query@1.8.2/node_modules/@zag-js/dom-query/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+core@1.8.2/node_modules/@zag-js/core/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+types@1.8.2/node_modules/@zag-js/types/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+react@1.8.2_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@zag-js/react/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/compose-refs.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/factory.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/create-split-props.js","../../../node_modules/.pnpm/@zag-js+anatomy@1.8.2/node_modules/@zag-js/anatomy/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/providers/environment/use-environment-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/providers/locale/use-locale-context.js","../../../node_modules/.pnpm/@floating-ui+utils@0.2.9/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../node_modules/.pnpm/@floating-ui+core@1.6.9/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/.pnpm/@floating-ui+utils@0.2.9/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../node_modules/.pnpm/@floating-ui+dom@1.6.13/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/.pnpm/@zag-js+popper@1.8.2/node_modules/@zag-js/popper/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+interact-outside@1.8.2/node_modules/@zag-js/interact-outside/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+dismissable@1.8.2/node_modules/@zag-js/dismissable/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/render-strategy.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-control.js","../../../node_modules/.pnpm/@zag-js+focus-visible@1.8.2/node_modules/@zag-js/focus-visible/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+checkbox@1.8.2/node_modules/@zag-js/checkbox/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox.anatomy.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/use-controllable-state.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/use-event.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-group.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-group-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-group.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/field/use-field-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-hidden-input.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-indicator.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-label.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-root-provider.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/presence/use-presence-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/presence/split-presence-props.js","../../../node_modules/.pnpm/@zag-js+presence@1.8.2/node_modules/@zag-js/presence/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/presence/use-presence.js","../../../node_modules/.pnpm/@zag-js+collection@1.8.2/node_modules/@zag-js/collection/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/collection.js","../../../node_modules/.pnpm/@zag-js+aria-hidden@1.8.2/node_modules/@zag-js/aria-hidden/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/use-dialog-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-backdrop.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-close-trigger.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-content.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-description.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-positioner.js","../../../node_modules/.pnpm/@zag-js+focus-trap@1.8.2/node_modules/@zag-js/focus-trap/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+remove-scroll@1.8.2/node_modules/@zag-js/remove-scroll/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+dialog@1.8.2/node_modules/@zag-js/dialog/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/use-dialog.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-title.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-trigger.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/portal/portal.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group-item-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group-item-props-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-control.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-hidden-input.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-text.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-label.js","../../../node_modules/.pnpm/@zag-js+radio-group@1.8.2/node_modules/@zag-js/radio-group/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-root-provider.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/use-select-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-content.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-control.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/use-select-item-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/use-select-item-props-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-item.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-label.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-positioner.js","../../../node_modules/.pnpm/@zag-js+select@1.8.2/node_modules/@zag-js/select/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/use-select.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-trigger.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-value-text.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/use-switch-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/switch-control.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/switch-hidden-input.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/switch-label.js","../../../node_modules/.pnpm/@zag-js+switch@1.8.2/node_modules/@zag-js/switch/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/use-switch.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/switch-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/switch-root-provider.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/switch-thumb.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/use-debounce.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/use-tabs-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/tab-content.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/tab-indicator.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/tab-list.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/tab-trigger.js","../../../node_modules/.pnpm/@zag-js+tabs@1.8.2/node_modules/@zag-js/tabs/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/use-tabs.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/tabs-root.js"],"sourcesContent":["'use client';\nimport { createContext as createContext$1, useContext } from 'react';\n\nfunction getErrorMessage(hook, provider) {\n return `${hook} returned \\`undefined\\`. Seems you forgot to wrap component within ${provider}`;\n}\nfunction createContext(options = {}) {\n const {\n name,\n strict = true,\n hookName = \"useContext\",\n providerName = \"Provider\",\n errorMessage,\n defaultValue\n } = options;\n const Context = createContext$1(defaultValue);\n Context.displayName = name;\n function useContext$1() {\n const context = useContext(Context);\n if (!context && strict) {\n const error = new Error(errorMessage ?? getErrorMessage(hookName, providerName));\n error.name = \"ContextError\";\n Error.captureStackTrace?.(error, useContext$1);\n throw error;\n }\n return context;\n }\n return [Context.Provider, useContext$1, Context];\n}\n\nexport { createContext };\n","// src/array.ts\nfunction toArray(v) {\n if (!v) return [];\n return Array.isArray(v) ? v : [v];\n}\nvar fromLength = (length) => Array.from(Array(length).keys());\nvar first = (v) => v[0];\nvar last = (v) => v[v.length - 1];\nvar isEmpty = (v) => v.length === 0;\nvar has = (v, t) => v.indexOf(t) !== -1;\nvar add = (v, ...items) => v.concat(items);\nvar remove = (v, ...items) => v.filter((t) => !items.includes(t));\nvar removeAt = (v, i) => v.filter((_, idx) => idx !== i);\nvar insertAt = (v, i, ...items) => [...v.slice(0, i), ...items, ...v.slice(i)];\nvar uniq = (v) => Array.from(new Set(v));\nvar addOrRemove = (v, item) => {\n if (has(v, item)) return remove(v, item);\n return add(v, item);\n};\nfunction clear(v) {\n while (v.length > 0) v.pop();\n return v;\n}\nfunction nextIndex(v, idx, opts = {}) {\n const { step = 1, loop = true } = opts;\n const next2 = idx + step;\n const len = v.length;\n const last2 = len - 1;\n if (idx === -1) return step > 0 ? 0 : last2;\n if (next2 < 0) return loop ? last2 : 0;\n if (next2 >= len) return loop ? 0 : idx > len ? len : idx;\n return next2;\n}\nfunction next(v, idx, opts = {}) {\n return v[nextIndex(v, idx, opts)];\n}\nfunction prevIndex(v, idx, opts = {}) {\n const { step = 1, loop = true } = opts;\n return nextIndex(v, idx, { step: -step, loop });\n}\nfunction prev(v, index, opts = {}) {\n return v[prevIndex(v, index, opts)];\n}\nvar chunk = (v, size) => {\n const res = [];\n return v.reduce((rows, value, index) => {\n if (index % size === 0) rows.push([value]);\n else last(rows)?.push(value);\n return rows;\n }, res);\n};\nfunction flatArray(arr) {\n return arr.reduce((flat, item) => {\n if (Array.isArray(item)) {\n return flat.concat(flatArray(item));\n }\n return flat.concat(item);\n }, []);\n}\n\n// src/equal.ts\nvar isArrayLike = (value) => value?.constructor.name === \"Array\";\nvar isArrayEqual = (a, b) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!isEqual(a[i], b[i])) return false;\n }\n return true;\n};\nvar isEqual = (a, b) => {\n if (Object.is(a, b)) return true;\n if (a == null && b != null || a != null && b == null) return false;\n if (typeof a?.isEqual === \"function\" && typeof b?.isEqual === \"function\") {\n return a.isEqual(b);\n }\n if (typeof a === \"function\" && typeof b === \"function\") {\n return a.toString() === b.toString();\n }\n if (isArrayLike(a) && isArrayLike(b)) {\n return isArrayEqual(Array.from(a), Array.from(b));\n }\n if (!(typeof a === \"object\") || !(typeof b === \"object\")) return false;\n const keys = Object.keys(b ?? /* @__PURE__ */ Object.create(null));\n const length = keys.length;\n for (let i = 0; i < length; i++) {\n const hasKey = Reflect.has(a, keys[i]);\n if (!hasKey) return false;\n }\n for (let i = 0; i < length; i++) {\n const key = keys[i];\n if (!isEqual(a[key], b[key])) return false;\n }\n return true;\n};\n\n// src/guard.ts\nvar isDev = () => process.env.NODE_ENV !== \"production\";\nvar isArray = (v) => Array.isArray(v);\nvar isBoolean = (v) => v === true || v === false;\nvar isObjectLike = (v) => v != null && typeof v === \"object\";\nvar isObject = (v) => isObjectLike(v) && !isArray(v);\nvar isNumber = (v) => typeof v === \"number\" && !Number.isNaN(v);\nvar isString = (v) => typeof v === \"string\";\nvar isFunction = (v) => typeof v === \"function\";\nvar isNull = (v) => v == null;\nvar hasProp = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nvar baseGetTag = (v) => Object.prototype.toString.call(v);\nvar fnToString = Function.prototype.toString;\nvar objectCtorString = fnToString.call(Object);\nvar isPlainObject = (v) => {\n if (!isObjectLike(v) || baseGetTag(v) != \"[object Object]\") return false;\n const proto = Object.getPrototypeOf(v);\n if (proto === null) return true;\n const Ctor = hasProp(proto, \"constructor\") && proto.constructor;\n return typeof Ctor == \"function\" && Ctor instanceof Ctor && fnToString.call(Ctor) == objectCtorString;\n};\n\n// src/functions.ts\nvar runIfFn = (v, ...a) => {\n const res = typeof v === \"function\" ? v(...a) : v;\n return res ?? void 0;\n};\nvar cast = (v) => v;\nvar identity = (v) => v();\nvar noop = () => {\n};\nvar callAll = (...fns) => (...a) => {\n fns.forEach(function(fn) {\n fn?.(...a);\n });\n};\nvar uuid = /* @__PURE__ */ (() => {\n let id = 0;\n return () => {\n id++;\n return id.toString(36);\n };\n})();\nfunction match(key, record, ...args) {\n if (key in record) {\n const fn = record[key];\n return isFunction(fn) ? fn(...args) : fn;\n }\n const error = new Error(`No matching key: ${JSON.stringify(key)} in ${JSON.stringify(Object.keys(record))}`);\n Error.captureStackTrace?.(error, match);\n throw error;\n}\nvar tryCatch = (fn, fallback) => {\n try {\n return fn();\n } catch (error) {\n if (error instanceof Error) {\n Error.captureStackTrace?.(error, tryCatch);\n }\n return fallback?.();\n }\n};\nfunction throttle(fn, wait = 0) {\n let lastCall = 0;\n let timeout = null;\n return (...args) => {\n const now = Date.now();\n const timeSinceLastCall = now - lastCall;\n if (timeSinceLastCall >= wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n fn(...args);\n lastCall = now;\n } else if (!timeout) {\n timeout = setTimeout(() => {\n fn(...args);\n lastCall = Date.now();\n timeout = null;\n }, wait - timeSinceLastCall);\n }\n };\n}\n\n// src/number.ts\nvar { floor, abs, round, min, max, pow, sign } = Math;\nvar isNaN = (v) => Number.isNaN(v);\nvar nan = (v) => isNaN(v) ? 0 : v;\nvar mod = (v, m) => (v % m + m) % m;\nvar wrap = (v, vmax) => (v % vmax + vmax) % vmax;\nvar getMinValueAtIndex = (i, v, vmin) => i === 0 ? vmin : v[i - 1];\nvar getMaxValueAtIndex = (i, v, vmax) => i === v.length - 1 ? vmax : v[i + 1];\nvar isValueAtMax = (v, vmax) => nan(v) >= vmax;\nvar isValueAtMin = (v, vmin) => nan(v) <= vmin;\nvar isValueWithinRange = (v, vmin, vmax) => nan(v) >= vmin && nan(v) <= vmax;\nvar roundValue = (v, vmin, step) => round((nan(v) - vmin) / step) * step + vmin;\nvar clampValue = (v, vmin, vmax) => min(max(nan(v), vmin), vmax);\nvar clampPercent = (v) => clampValue(v, 0, 1);\nvar getValuePercent = (v, vmin, vmax) => (nan(v) - vmin) / (vmax - vmin);\nvar getPercentValue = (p, vmin, vmax, step) => clampValue(roundValue(p * (vmax - vmin) + vmin, vmin, step), vmin, vmax);\nvar roundToStepPrecision = (v, step) => {\n let rv = v;\n let ss = step.toString();\n let pi = ss.indexOf(\".\");\n let p = pi >= 0 ? ss.length - pi : 0;\n if (p > 0) {\n let pw = pow(10, p);\n rv = round(rv * pw) / pw;\n }\n return rv;\n};\nvar roundToDpr = (v, dpr) => typeof dpr === \"number\" ? floor(v * dpr + 0.5) / dpr : round(v);\nvar snapValueToStep = (v, vmin, vmax, step) => {\n vmin = Number(vmin);\n vmax = Number(vmax);\n let remainder = (v - (isNaN(vmin) ? 0 : vmin)) % step;\n let sv = roundToStepPrecision(\n abs(remainder) * 2 >= step ? v + sign(remainder) * (step - abs(remainder)) : v - remainder,\n step\n );\n if (!isNaN(vmin)) {\n if (sv < vmin) {\n sv = vmin;\n } else if (!isNaN(vmax) && sv > vmax) {\n sv = vmin + floor(roundToStepPrecision((vmax - vmin) / step, step)) * step;\n }\n } else if (!isNaN(vmax) && sv > vmax) {\n sv = vmin + floor(roundToStepPrecision((vmax - vmin) / step, step)) * step;\n }\n return roundToStepPrecision(sv, step);\n};\nvar setValueAtIndex = (vs, i, v) => {\n if (vs[i] === v) return vs;\n return [...vs.slice(0, i), v, ...vs.slice(i + 1)];\n};\nfunction getValueSetterAtIndex(index, ctx) {\n const minValueAtIndex = getMinValueAtIndex(index, ctx.values, ctx.min);\n const maxValueAtIndex = getMaxValueAtIndex(index, ctx.values, ctx.max);\n let nextValues = ctx.values.slice();\n return function setValue(value) {\n let nextValue = snapValueToStep(value, minValueAtIndex, maxValueAtIndex, ctx.step);\n nextValues = setValueAtIndex(nextValues, index, value);\n nextValues[index] = nextValue;\n return nextValues;\n };\n}\nfunction getNextStepValue(index, ctx) {\n const nextValue = ctx.values[index] + ctx.step;\n return getValueSetterAtIndex(index, ctx)(nextValue);\n}\nfunction getPreviousStepValue(index, ctx) {\n const nextValue = ctx.values[index] - ctx.step;\n return getValueSetterAtIndex(index, ctx)(nextValue);\n}\nvar getClosestValueIndex = (vs, t) => {\n let i = vs.findIndex((v) => t - v < 0);\n if (i === 0) return i;\n if (i === -1) return vs.length - 1;\n let vLeft = vs[i - 1];\n let vRight = vs[i];\n if (abs(vLeft - t) < abs(vRight - t)) return i - 1;\n return i;\n};\nvar getClosestValue = (vs, t) => vs[getClosestValueIndex(vs, t)];\nvar getValueRanges = (vs, vmin, vmax, gap) => vs.map((v, i) => ({\n min: i === 0 ? vmin : vs[i - 1] + gap,\n max: i === vs.length - 1 ? vmax : vs[i + 1] - gap,\n value: v\n}));\nvar getValueTransformer = (va, vb) => {\n const [a, b] = va;\n const [c, d] = vb;\n return (v) => a === b || c === d ? c : c + (d - c) / (b - a) * (v - a);\n};\nvar toFixedNumber = (v, d = 0, b = 10) => {\n const pow2 = Math.pow(b, d);\n return round(v * pow2) / pow2;\n};\nvar countDecimals = (value) => {\n if (!Number.isFinite(value)) return 0;\n let e = 1, p = 0;\n while (Math.round(value * e) / e !== value) {\n e *= 10;\n p += 1;\n }\n return p;\n};\nvar decimalOp = (a, op, b) => {\n let result = op === \"+\" ? a + b : a - b;\n if (a % 1 !== 0 || b % 1 !== 0) {\n const multiplier = 10 ** Math.max(countDecimals(a), countDecimals(b));\n a = Math.round(a * multiplier);\n b = Math.round(b * multiplier);\n result = op === \"+\" ? a + b : a - b;\n result /= multiplier;\n }\n return result;\n};\nvar incrementValue = (v, s) => decimalOp(nan(v), \"+\", s);\nvar decrementValue = (v, s) => decimalOp(nan(v), \"-\", s);\nvar toPx = (v) => v != null ? `${v}px` : void 0;\n\n// src/object.ts\nfunction compact(obj) {\n if (!isPlainObject2(obj) || obj === void 0) return obj;\n const keys = Reflect.ownKeys(obj).filter((key) => typeof key === \"string\");\n const filtered = {};\n for (const key of keys) {\n const value = obj[key];\n if (value !== void 0) {\n filtered[key] = compact(value);\n }\n }\n return filtered;\n}\nvar json = (v) => JSON.parse(JSON.stringify(v));\nvar isPlainObject2 = (v) => {\n return v && typeof v === \"object\" && v.constructor === Object;\n};\nfunction pick(obj, keys) {\n const filtered = {};\n for (const key of keys) {\n const value = obj[key];\n if (value !== void 0) {\n filtered[key] = value;\n }\n }\n return filtered;\n}\nfunction splitProps(props, keys) {\n const rest = {};\n const result = {};\n const keySet = new Set(keys);\n for (const key in props) {\n if (keySet.has(key)) {\n result[key] = props[key];\n } else {\n rest[key] = props[key];\n }\n }\n return [result, rest];\n}\nvar createSplitProps = (keys) => {\n return function split(props) {\n return splitProps(props, keys);\n };\n};\nfunction omit(obj, keys) {\n return createSplitProps(keys)(obj)[1];\n}\n\n// src/timers.ts\nfunction setRafInterval(callback, interval) {\n let start = performance.now();\n let handle;\n function loop(now) {\n handle = requestAnimationFrame(loop);\n const delta = now - start;\n if (delta >= interval) {\n start = now - delta % interval;\n callback({ startMs: start, deltaMs: delta });\n }\n }\n handle = requestAnimationFrame(loop);\n return () => cancelAnimationFrame(handle);\n}\nfunction setRafTimeout(callback, delay) {\n const start = performance.now();\n let handle;\n function loop(now) {\n handle = requestAnimationFrame(loop);\n const delta = now - start;\n if (delta >= delay) {\n callback();\n }\n }\n handle = requestAnimationFrame(loop);\n return () => cancelAnimationFrame(handle);\n}\n\n// src/warning.ts\nfunction warn(...a) {\n const m = a.length === 1 ? a[0] : a[1];\n const c = a.length === 2 ? a[0] : true;\n if (c && process.env.NODE_ENV !== \"production\") {\n console.warn(m);\n }\n}\nfunction invariant(...a) {\n const m = a.length === 1 ? a[0] : a[1];\n const c = a.length === 2 ? a[0] : true;\n if (c && process.env.NODE_ENV !== \"production\") {\n throw new Error(m);\n }\n}\nfunction ensure(c, m) {\n if (c == null) throw new Error(m());\n}\nfunction ensureProps(props, keys, scope) {\n let missingKeys = [];\n for (const key of keys) {\n if (props[key] == null) missingKeys.push(key);\n }\n if (missingKeys.length > 0)\n throw new Error(`[zag-js${scope ? ` > ${scope}` : \"\"}] missing required props: ${missingKeys.join(\", \")}`);\n}\n\nexport { add, addOrRemove, callAll, cast, chunk, clampPercent, clampValue, clear, compact, createSplitProps, decrementValue, ensure, ensureProps, first, flatArray, fromLength, getClosestValue, getClosestValueIndex, getMaxValueAtIndex, getMinValueAtIndex, getNextStepValue, getPercentValue, getPreviousStepValue, getValuePercent, getValueRanges, getValueSetterAtIndex, getValueTransformer, has, hasProp, identity, incrementValue, insertAt, invariant, isArray, isBoolean, isDev, isEmpty, isEqual, isFunction, isNaN, isNull, isNumber, isObject, isObjectLike, isPlainObject, isString, isValueAtMax, isValueAtMin, isValueWithinRange, json, last, match, mod, nan, next, nextIndex, noop, omit, pick, prev, prevIndex, remove, removeAt, roundToDpr, roundToStepPrecision, roundValue, runIfFn, setRafInterval, setRafTimeout, setValueAtIndex, snapValueToStep, splitProps, throttle, toArray, toFixedNumber, toPx, tryCatch, uniq, uuid, warn, wrap };\n","// src/caret.ts\nfunction isCaretAtStart(input) {\n if (!input) return false;\n try {\n return input.selectionStart === 0 && input.selectionEnd === 0;\n } catch {\n return input.value === \"\";\n }\n}\nfunction setCaretToEnd(input) {\n if (!input) return;\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? 0;\n if (Math.abs(end - start) !== 0) return;\n if (start !== 0) return;\n input.setSelectionRange(input.value.length, input.value.length);\n}\n\n// src/shared.ts\nvar clamp = (value) => Math.max(0, Math.min(1, value));\nvar wrap = (v, idx) => {\n return v.map((_, index) => v[(Math.max(idx, 0) + index) % v.length]);\n};\nvar pipe = (...fns) => (arg) => fns.reduce((acc, fn) => fn(acc), arg);\nvar noop = () => void 0;\nvar isObject = (v) => typeof v === \"object\" && v !== null;\nvar MAX_Z_INDEX = 2147483647;\nvar dataAttr = (guard) => guard ? \"\" : void 0;\nvar ariaAttr = (guard) => guard ? \"true\" : void 0;\n\n// src/node.ts\nvar ELEMENT_NODE = 1;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\nvar isHTMLElement = (el) => isObject(el) && el.nodeType === ELEMENT_NODE && typeof el.nodeName === \"string\";\nvar isDocument = (el) => isObject(el) && el.nodeType === DOCUMENT_NODE;\nvar isWindow = (el) => isObject(el) && el === el.window;\nvar isVisualViewport = (el) => isObject(el) && el.constructor.name === \"VisualViewport\";\nvar getNodeName = (node) => {\n if (isHTMLElement(node)) return node.localName || \"\";\n return \"#document\";\n};\nfunction isRootElement(node) {\n return [\"html\", \"body\", \"#document\"].includes(getNodeName(node));\n}\nvar isNode = (el) => isObject(el) && el.nodeType !== void 0;\nvar isShadowRoot = (el) => isNode(el) && el.nodeType === DOCUMENT_FRAGMENT_NODE && \"host\" in el;\nvar isInputElement = (el) => isHTMLElement(el) && el.localName === \"input\";\nvar isAnchorElement = (el) => !!el?.matches(\"a[href]\");\nvar isElementVisible = (el) => {\n if (!isHTMLElement(el)) return false;\n return el.offsetWidth > 0 || el.offsetHeight > 0 || el.getClientRects().length > 0;\n};\nvar TEXTAREA_SELECT_REGEX = /(textarea|select)/;\nfunction isEditableElement(el) {\n if (el == null || !isHTMLElement(el)) return false;\n try {\n return isInputElement(el) && el.selectionStart != null || TEXTAREA_SELECT_REGEX.test(el.localName) || el.isContentEditable || el.getAttribute(\"contenteditable\") === \"true\" || el.getAttribute(\"contenteditable\") === \"\";\n } catch {\n return false;\n }\n}\nfunction contains(parent, child) {\n if (!parent || !child) return false;\n if (!isHTMLElement(parent) || !isHTMLElement(child)) return false;\n const rootNode = child.getRootNode?.();\n if (parent === child) return true;\n if (parent.contains(child)) return true;\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) return true;\n next = next.parentNode || next.host;\n }\n }\n return false;\n}\nfunction getDocument(el) {\n if (isDocument(el)) return el;\n if (isWindow(el)) return el.document;\n return el?.ownerDocument ?? document;\n}\nfunction getDocumentElement(el) {\n return getDocument(el).documentElement;\n}\nfunction getWindow(el) {\n if (isShadowRoot(el)) return getWindow(el.host);\n if (isDocument(el)) return el.defaultView ?? window;\n if (isHTMLElement(el)) return el.ownerDocument?.defaultView ?? window;\n return window;\n}\nfunction getActiveElement(rootNode) {\n let activeElement = rootNode.activeElement;\n while (activeElement?.shadowRoot) {\n const el = activeElement.shadowRoot.activeElement;\n if (el === activeElement) break;\n else activeElement = el;\n }\n return activeElement;\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === \"html\") return node;\n const result = node.assignedSlot || node.parentNode || isShadowRoot(node) && node.host || getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\n\n// src/computed-style.ts\nvar styleCache = /* @__PURE__ */ new WeakMap();\nfunction getComputedStyle(el) {\n if (!styleCache.has(el)) {\n styleCache.set(el, getWindow(el).getComputedStyle(el));\n }\n return styleCache.get(el);\n}\n\n// src/data-url.ts\nfunction getDataUrl(svg, opts) {\n const { type, quality = 0.92, background } = opts;\n if (!svg) throw new Error(\"[zag-js > getDataUrl]: Could not find the svg element\");\n const win = getWindow(svg);\n const doc = win.document;\n const svgBounds = svg.getBoundingClientRect();\n const svgClone = svg.cloneNode(true);\n if (!svgClone.hasAttribute(\"viewBox\")) {\n svgClone.setAttribute(\"viewBox\", `0 0 ${svgBounds.width} ${svgBounds.height}`);\n }\n const serializer = new win.XMLSerializer();\n const source = '<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n' + serializer.serializeToString(svgClone);\n const svgString = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(source);\n if (type === \"image/svg+xml\") {\n return Promise.resolve(svgString).then((str) => {\n svgClone.remove();\n return str;\n });\n }\n const dpr = win.devicePixelRatio || 1;\n const canvas = doc.createElement(\"canvas\");\n const image = new win.Image();\n image.src = svgString;\n canvas.width = svgBounds.width * dpr;\n canvas.height = svgBounds.height * dpr;\n const context = canvas.getContext(\"2d\");\n if (type === \"image/jpeg\" || background) {\n context.fillStyle = background || \"white\";\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n return new Promise((resolve) => {\n image.onload = () => {\n context?.drawImage(image, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(type, quality));\n svgClone.remove();\n };\n });\n}\n\n// src/platform.ts\nvar isDom = () => typeof document !== \"undefined\";\nfunction getPlatform() {\n const agent = navigator.userAgentData;\n return agent?.platform ?? navigator.platform;\n}\nfunction getUserAgent() {\n const ua2 = navigator.userAgentData;\n if (ua2 && Array.isArray(ua2.brands)) {\n return ua2.brands.map(({ brand, version }) => `${brand}/${version}`).join(\" \");\n }\n return navigator.userAgent;\n}\nvar pt = (v) => isDom() && v.test(getPlatform());\nvar ua = (v) => isDom() && v.test(getUserAgent());\nvar vn = (v) => isDom() && v.test(navigator.vendor);\nvar isTouchDevice = () => isDom() && !!navigator.maxTouchPoints;\nvar isIPhone = () => pt(/^iPhone/i);\nvar isIPad = () => pt(/^iPad/i) || isMac() && navigator.maxTouchPoints > 1;\nvar isIos = () => isIPhone() || isIPad();\nvar isApple = () => isMac() || isIos();\nvar isMac = () => pt(/^Mac/i);\nvar isSafari = () => isApple() && vn(/apple/i);\nvar isFirefox = () => ua(/Firefox/i);\nvar isChrome = () => ua(/Chrome/i);\nvar isWebKit = () => ua(/AppleWebKit/i) && !isChrome();\nvar isAndroid = () => ua(/Android/i);\n\n// src/event.ts\nfunction getBeforeInputValue(event) {\n const { selectionStart, selectionEnd, value } = event.currentTarget;\n return value.slice(0, selectionStart) + event.data + value.slice(selectionEnd);\n}\nfunction getComposedPath(event) {\n return event.composedPath?.() ?? event.nativeEvent?.composedPath?.();\n}\nfunction getEventTarget(event) {\n const composedPath = getComposedPath(event);\n return composedPath?.[0] ?? event.target;\n}\nvar isSelfTarget = (event) => {\n return contains(event.currentTarget, getEventTarget(event));\n};\nfunction isOpeningInNewTab(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const isAppleDevice = isApple();\n if (isAppleDevice && !event.metaKey) return false;\n if (!isAppleDevice && !event.ctrlKey) return false;\n const localName = element.localName;\n if (localName === \"a\") return true;\n if (localName === \"button\" && element.type === \"submit\") return true;\n if (localName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\nfunction isDownloadingEvent(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const localName = element.localName;\n if (!event.altKey) return false;\n if (localName === \"a\") return true;\n if (localName === \"button\" && element.type === \"submit\") return true;\n if (localName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\nfunction isComposingEvent(event) {\n return getNativeEvent(event).isComposing || event.keyCode === 229;\n}\nfunction isKeyboardClick(e) {\n return e.detail === 0 || e.clientX === 0 && e.clientY === 0;\n}\nfunction isCtrlOrMetaKey(e) {\n if (isMac()) return e.metaKey;\n return e.ctrlKey;\n}\nfunction isPrintableKey(e) {\n return e.key.length === 1 && !e.ctrlKey && !e.metaKey;\n}\nfunction isVirtualPointerEvent(e) {\n return e.width === 0 && e.height === 0 || e.width === 1 && e.height === 1 && e.pressure === 0 && e.detail === 0 && e.pointerType === \"mouse\";\n}\nfunction isVirtualClick(e) {\n if (e.mozInputSource === 0 && e.isTrusted) return true;\n if (isAndroid() && e.pointerType) {\n return e.type === \"click\" && e.buttons === 1;\n }\n return e.detail === 0 && !e.pointerType;\n}\nvar isLeftClick = (e) => e.button === 0;\nvar isContextMenuEvent = (e) => {\n return e.button === 2 || isMac() && e.ctrlKey && e.button === 0;\n};\nvar isModifierKey = (e) => e.ctrlKey || e.altKey || e.metaKey;\nvar isTouchEvent = (event) => \"touches\" in event && event.touches.length > 0;\nvar keyMap = {\n Up: \"ArrowUp\",\n Down: \"ArrowDown\",\n Esc: \"Escape\",\n \" \": \"Space\",\n \",\": \"Comma\",\n Left: \"ArrowLeft\",\n Right: \"ArrowRight\"\n};\nvar rtlKeyMap = {\n ArrowLeft: \"ArrowRight\",\n ArrowRight: \"ArrowLeft\"\n};\nfunction getEventKey(event, options = {}) {\n const { dir = \"ltr\", orientation = \"horizontal\" } = options;\n let key = event.key;\n key = keyMap[key] ?? key;\n const isRtl = dir === \"rtl\" && orientation === \"horizontal\";\n if (isRtl && key in rtlKeyMap) key = rtlKeyMap[key];\n return key;\n}\nfunction getNativeEvent(event) {\n return event.nativeEvent ?? event;\n}\nvar pageKeys = /* @__PURE__ */ new Set([\"PageUp\", \"PageDown\"]);\nvar arrowKeys = /* @__PURE__ */ new Set([\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"]);\nfunction getEventStep(event) {\n if (event.ctrlKey || event.metaKey) {\n return 0.1;\n } else {\n const isPageKey = pageKeys.has(event.key);\n const isSkipKey = isPageKey || event.shiftKey && arrowKeys.has(event.key);\n return isSkipKey ? 10 : 1;\n }\n}\nfunction getEventPoint(event, type = \"client\") {\n const point = isTouchEvent(event) ? event.touches[0] || event.changedTouches[0] : event;\n return { x: point[`${type}X`], y: point[`${type}Y`] };\n}\nvar addDomEvent = (target, eventName, handler, options) => {\n const node = typeof target === \"function\" ? target() : target;\n node?.addEventListener(eventName, handler, options);\n return () => {\n node?.removeEventListener(eventName, handler, options);\n };\n};\n\n// src/form.ts\nfunction getDescriptor(el, options) {\n const { type = \"HTMLInputElement\", property = \"value\" } = options;\n const proto = getWindow(el)[type].prototype;\n return Object.getOwnPropertyDescriptor(proto, property) ?? {};\n}\nfunction getElementType(el) {\n if (el.localName === \"input\") return \"HTMLInputElement\";\n if (el.localName === \"textarea\") return \"HTMLTextAreaElement\";\n if (el.localName === \"select\") return \"HTMLSelectElement\";\n}\nfunction setElementValue(el, value, property = \"value\") {\n if (!el) return;\n const type = getElementType(el);\n if (type) {\n const descriptor = getDescriptor(el, { type, property });\n descriptor.set?.call(el, value);\n }\n el.setAttribute(property, value);\n}\nfunction setElementChecked(el, checked) {\n if (!el) return;\n const descriptor = getDescriptor(el, { type: \"HTMLInputElement\", property: \"checked\" });\n descriptor.set?.call(el, checked);\n if (checked) el.setAttribute(\"checked\", \"\");\n else el.removeAttribute(\"checked\");\n}\nfunction dispatchInputValueEvent(el, options) {\n const { value, bubbles = true } = options;\n if (!el) return;\n const win = getWindow(el);\n if (!(el instanceof win.HTMLInputElement)) return;\n setElementValue(el, `${value}`);\n el.dispatchEvent(new win.Event(\"input\", { bubbles }));\n}\nfunction dispatchInputCheckedEvent(el, options) {\n const { checked, bubbles = true } = options;\n if (!el) return;\n const win = getWindow(el);\n if (!(el instanceof win.HTMLInputElement)) return;\n setElementChecked(el, checked);\n el.dispatchEvent(new win.Event(\"click\", { bubbles }));\n}\nfunction getClosestForm(el) {\n return isFormElement(el) ? el.form : el.closest(\"form\");\n}\nfunction isFormElement(el) {\n return el.matches(\"textarea, input, select, button\");\n}\nfunction trackFormReset(el, callback) {\n if (!el) return;\n const form = getClosestForm(el);\n const onReset = (e) => {\n if (e.defaultPrevented) return;\n callback();\n };\n form?.addEventListener(\"reset\", onReset, { passive: true });\n return () => form?.removeEventListener(\"reset\", onReset);\n}\nfunction trackFieldsetDisabled(el, callback) {\n const fieldset = el?.closest(\"fieldset\");\n if (!fieldset) return;\n callback(fieldset.disabled);\n const win = getWindow(fieldset);\n const obs = new win.MutationObserver(() => callback(fieldset.disabled));\n obs.observe(fieldset, {\n attributes: true,\n attributeFilter: [\"disabled\"]\n });\n return () => obs.disconnect();\n}\nfunction trackFormControl(el, options) {\n if (!el) return;\n const { onFieldsetDisabledChange, onFormReset } = options;\n const cleanups = [trackFormReset(el, onFormReset), trackFieldsetDisabled(el, onFieldsetDisabledChange)];\n return () => cleanups.forEach((cleanup) => cleanup?.());\n}\n\n// src/tabbable.ts\nvar isFrame = (el) => isHTMLElement(el) && el.tagName === \"IFRAME\";\nvar hasTabIndex = (el) => !Number.isNaN(parseInt(el.getAttribute(\"tabindex\") || \"0\", 10));\nvar hasNegativeTabIndex = (el) => parseInt(el.getAttribute(\"tabindex\") || \"0\", 10) < 0;\nvar focusableSelector = \"input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false']), details > summary:first-of-type\";\nvar getFocusables = (container, includeContainer = false) => {\n if (!container) return [];\n const elements = Array.from(container.querySelectorAll(focusableSelector));\n const include = includeContainer == true || includeContainer == \"if-empty\" && elements.length === 0;\n if (include && isHTMLElement(container) && isFocusable(container)) {\n elements.unshift(container);\n }\n const focusableElements = elements.filter(isFocusable);\n focusableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n focusableElements.splice(i, 1, ...getFocusables(frameBody));\n }\n });\n return focusableElements;\n};\nfunction isFocusable(element) {\n if (!element || element.closest(\"[inert]\")) return false;\n return element.matches(focusableSelector) && isElementVisible(element);\n}\nfunction getFirstFocusable(container, includeContainer) {\n const [first] = getFocusables(container, includeContainer);\n return first || null;\n}\nfunction getTabbables(container, includeContainer) {\n if (!container) return [];\n const elements = Array.from(container.querySelectorAll(focusableSelector));\n const tabbableElements = elements.filter(isTabbable);\n if (includeContainer && isTabbable(container)) {\n tabbableElements.unshift(container);\n }\n tabbableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n const allFrameTabbable = getTabbables(frameBody);\n tabbableElements.splice(i, 1, ...allFrameTabbable);\n }\n });\n if (!tabbableElements.length && includeContainer) {\n return elements;\n }\n return tabbableElements;\n}\nfunction isTabbable(el) {\n if (el != null && el.tabIndex > 0) return true;\n return isFocusable(el) && !hasNegativeTabIndex(el);\n}\nfunction getFirstTabbable(container, includeContainer) {\n const [first] = getTabbables(container, includeContainer);\n return first || null;\n}\nfunction getLastTabbable(container, includeContainer) {\n const elements = getTabbables(container, includeContainer);\n return elements[elements.length - 1] || null;\n}\nfunction getTabbableEdges(container, includeContainer) {\n const elements = getTabbables(container, includeContainer);\n const first = elements[0] || null;\n const last = elements[elements.length - 1] || null;\n return [first, last];\n}\nfunction getNextTabbable(container, current) {\n const tabbables = getTabbables(container);\n const doc = container?.ownerDocument || document;\n const currentElement = current ?? doc.activeElement;\n if (!currentElement) return null;\n const index = tabbables.indexOf(currentElement);\n return tabbables[index + 1] || null;\n}\nfunction getTabIndex(node) {\n if (node.tabIndex < 0) {\n if ((/^(audio|video|details)$/.test(node.localName) || isEditableElement(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n}\n\n// src/initial-focus.ts\nfunction getInitialFocus(options) {\n const { root, getInitialEl, filter, enabled = true } = options;\n if (!enabled) return;\n let node = null;\n node || (node = typeof getInitialEl === \"function\" ? getInitialEl() : getInitialEl);\n node || (node = root?.querySelector(\"[data-autofocus],[autofocus]\"));\n if (!node) {\n const tabbables = getTabbables(root);\n node = filter ? tabbables.filter(filter)[0] : tabbables[0];\n }\n return node || root || void 0;\n}\nfunction isValidTabEvent(event) {\n const container = event.currentTarget;\n if (!container) return false;\n const [firstTabbable, lastTabbable] = getTabbableEdges(container);\n const doc = container.ownerDocument || document;\n if (doc.activeElement === firstTabbable && event.shiftKey) return false;\n if (doc.activeElement === lastTabbable && !event.shiftKey) return false;\n if (!firstTabbable && !lastTabbable) return false;\n return true;\n}\n\n// src/raf.ts\nfunction nextTick(fn) {\n const set = /* @__PURE__ */ new Set();\n function raf2(fn2) {\n const id = globalThis.requestAnimationFrame(fn2);\n set.add(() => globalThis.cancelAnimationFrame(id));\n }\n raf2(() => raf2(fn));\n return function cleanup() {\n set.forEach((fn2) => fn2());\n };\n}\nfunction raf(fn) {\n let cleanup;\n const id = globalThis.requestAnimationFrame(() => {\n cleanup = fn();\n });\n return () => {\n globalThis.cancelAnimationFrame(id);\n cleanup?.();\n };\n}\nfunction queueBeforeEvent(el, type, cb) {\n const cancelTimer = raf(() => {\n el.removeEventListener(type, exec, true);\n cb();\n });\n const exec = () => {\n cancelTimer();\n cb();\n };\n el.addEventListener(type, exec, { once: true, capture: true });\n return cancelTimer;\n}\n\n// src/mutation-observer.ts\nfunction observeAttributesImpl(node, options) {\n if (!node) return;\n const { attributes, callback: fn } = options;\n const win = node.ownerDocument.defaultView || window;\n const obs = new win.MutationObserver((changes) => {\n for (const change of changes) {\n if (change.type === \"attributes\" && change.attributeName && attributes.includes(change.attributeName)) {\n fn(change);\n }\n }\n });\n obs.observe(node, { attributes: true, attributeFilter: attributes });\n return () => obs.disconnect();\n}\nfunction observeAttributes(nodeOrFn, options) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof nodeOrFn === \"function\" ? nodeOrFn() : nodeOrFn;\n cleanups.push(observeAttributesImpl(node, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\nfunction observeChildrenImpl(node, options) {\n const { callback: fn } = options;\n if (!node) return;\n const win = node.ownerDocument.defaultView || window;\n const obs = new win.MutationObserver(fn);\n obs.observe(node, { childList: true, subtree: true });\n return () => obs.disconnect();\n}\nfunction observeChildren(nodeOrFn, options) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof nodeOrFn === \"function\" ? nodeOrFn() : nodeOrFn;\n cleanups.push(observeChildrenImpl(node, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/navigate.ts\nfunction clickIfLink(el) {\n const click = () => el.click();\n if (isFirefox()) {\n queueBeforeEvent(el, \"keyup\", click);\n } else {\n queueMicrotask(click);\n }\n}\n\n// src/overflow.ts\nfunction getNearestOverflowAncestor(el) {\n const parentNode = getParentNode(el);\n if (isRootElement(parentNode)) return getDocument(parentNode).body;\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) return parentNode;\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(el, list = []) {\n const scrollableAncestor = getNearestOverflowAncestor(el);\n const isBody = scrollableAncestor === el.ownerDocument.body;\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, []));\n}\nvar getElementRect = (el) => {\n if (isHTMLElement(el)) return el.getBoundingClientRect();\n if (isVisualViewport(el)) return { top: 0, left: 0, bottom: el.height, right: el.width };\n return { top: 0, left: 0, bottom: el.innerHeight, right: el.innerWidth };\n};\nfunction isInView(el, ancestor) {\n if (!isHTMLElement(el)) return true;\n const ancestorRect = getElementRect(ancestor);\n const elRect = el.getBoundingClientRect();\n return elRect.top >= ancestorRect.top && elRect.left >= ancestorRect.left && elRect.bottom <= ancestorRect.bottom && elRect.right <= ancestorRect.right;\n}\nvar OVERFLOW_RE = /auto|scroll|overlay|hidden|clip/;\nfunction isOverflowElement(el) {\n const win = getWindow(el);\n const { overflow, overflowX, overflowY, display } = win.getComputedStyle(el);\n return OVERFLOW_RE.test(overflow + overflowY + overflowX) && ![\"inline\", \"contents\"].includes(display);\n}\nfunction isScrollable(el) {\n return el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth;\n}\nfunction scrollIntoView(el, options) {\n const { rootEl, ...scrollOptions } = options || {};\n if (!el || !rootEl) return;\n if (!isOverflowElement(rootEl) || !isScrollable(rootEl)) return;\n el.scrollIntoView(scrollOptions);\n}\nfunction getScrollPosition(element) {\n if (isHTMLElement(element)) {\n return { scrollLeft: element.scrollLeft, scrollTop: element.scrollTop };\n }\n return { scrollLeft: element.scrollX, scrollTop: element.scrollY };\n}\n\n// src/point.ts\nfunction getRelativePoint(point, element) {\n const { left, top, width, height } = element.getBoundingClientRect();\n const offset = { x: point.x - left, y: point.y - top };\n const percent = { x: clamp(offset.x / width), y: clamp(offset.y / height) };\n function getPercentValue(options = {}) {\n const { dir = \"ltr\", orientation = \"horizontal\", inverted } = options;\n const invertX = typeof inverted === \"object\" ? inverted.x : inverted;\n const invertY = typeof inverted === \"object\" ? inverted.y : inverted;\n if (orientation === \"horizontal\") {\n return dir === \"rtl\" || invertX ? 1 - percent.x : percent.x;\n }\n return invertY ? 1 - percent.y : percent.y;\n }\n return { offset, percent, getPercentValue };\n}\n\n// src/pointer-lock.ts\nfunction requestPointerLock(doc, fn) {\n const body = doc.body;\n const supported = \"pointerLockElement\" in doc || \"mozPointerLockElement\" in doc;\n const isLocked = () => !!doc.pointerLockElement;\n function onPointerChange() {\n fn?.(isLocked());\n }\n function onPointerError(event) {\n if (isLocked()) fn?.(false);\n console.error(\"PointerLock error occurred:\", event);\n doc.exitPointerLock();\n }\n if (!supported) return;\n try {\n body.requestPointerLock();\n } catch {\n }\n const cleanup = [\n addDomEvent(doc, \"pointerlockchange\", onPointerChange, false),\n addDomEvent(doc, \"pointerlockerror\", onPointerError, false)\n ];\n return () => {\n cleanup.forEach((cleanup2) => cleanup2());\n doc.exitPointerLock();\n };\n}\n\n// src/text-selection.ts\nvar state = \"default\";\nvar userSelect = \"\";\nvar elementMap = /* @__PURE__ */ new WeakMap();\nfunction disableTextSelectionImpl(options = {}) {\n const { target, doc } = options;\n const docNode = doc ?? document;\n const rootEl = docNode.documentElement;\n if (isIos()) {\n if (state === \"default\") {\n userSelect = rootEl.style.webkitUserSelect;\n rootEl.style.webkitUserSelect = \"none\";\n }\n state = \"disabled\";\n } else if (target) {\n elementMap.set(target, target.style.userSelect);\n target.style.userSelect = \"none\";\n }\n return () => restoreTextSelection({ target, doc: docNode });\n}\nfunction restoreTextSelection(options = {}) {\n const { target, doc } = options;\n const docNode = doc ?? document;\n const rootEl = docNode.documentElement;\n if (isIos()) {\n if (state !== \"disabled\") return;\n state = \"restoring\";\n setTimeout(() => {\n nextTick(() => {\n if (state === \"restoring\") {\n if (rootEl.style.webkitUserSelect === \"none\") {\n rootEl.style.webkitUserSelect = userSelect || \"\";\n }\n userSelect = \"\";\n state = \"default\";\n }\n });\n }, 300);\n } else {\n if (target && elementMap.has(target)) {\n const prevUserSelect = elementMap.get(target);\n if (target.style.userSelect === \"none\") {\n target.style.userSelect = prevUserSelect ?? \"\";\n }\n if (target.getAttribute(\"style\") === \"\") {\n target.removeAttribute(\"style\");\n }\n elementMap.delete(target);\n }\n }\n}\nfunction disableTextSelection(options = {}) {\n const { defer, target, ...restOptions } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof target === \"function\" ? target() : target;\n cleanups.push(disableTextSelectionImpl({ ...restOptions, target: node }));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/pointer-move.ts\nfunction trackPointerMove(doc, handlers) {\n const { onPointerMove, onPointerUp } = handlers;\n const handleMove = (event) => {\n const point = getEventPoint(event);\n const distance = Math.sqrt(point.x ** 2 + point.y ** 2);\n const moveBuffer = event.pointerType === \"touch\" ? 10 : 5;\n if (distance < moveBuffer) return;\n if (event.pointerType === \"mouse\" && event.button === 0) {\n onPointerUp();\n return;\n }\n onPointerMove({ point, event });\n };\n const cleanups = [\n addDomEvent(doc, \"pointermove\", handleMove, false),\n addDomEvent(doc, \"pointerup\", onPointerUp, false),\n addDomEvent(doc, \"pointercancel\", onPointerUp, false),\n addDomEvent(doc, \"contextmenu\", onPointerUp, false),\n disableTextSelection({ doc })\n ];\n return () => {\n cleanups.forEach((cleanup) => cleanup());\n };\n}\n\n// src/press.ts\nfunction trackPress(options) {\n const {\n pointerNode,\n keyboardNode = pointerNode,\n onPress,\n onPressStart,\n onPressEnd,\n isValidKey = (e) => e.key === \"Enter\"\n } = options;\n if (!pointerNode) return noop;\n const win = getWindow(pointerNode);\n const doc = getDocument(pointerNode);\n let removeStartListeners = noop;\n let removeEndListeners = noop;\n let removeAccessibleListeners = noop;\n const getInfo = (event) => ({\n point: getEventPoint(event),\n event\n });\n function startPress(event) {\n onPressStart?.(getInfo(event));\n }\n function cancelPress(event) {\n onPressEnd?.(getInfo(event));\n }\n const startPointerPress = (startEvent) => {\n removeEndListeners();\n const endPointerPress = (endEvent) => {\n const target = getEventTarget(endEvent);\n if (contains(pointerNode, target)) {\n onPress?.(getInfo(endEvent));\n } else {\n onPressEnd?.(getInfo(endEvent));\n }\n };\n const removePointerUpListener = addDomEvent(win, \"pointerup\", endPointerPress, { passive: !onPress, once: true });\n const removePointerCancelListener = addDomEvent(win, \"pointercancel\", cancelPress, {\n passive: !onPressEnd,\n once: true\n });\n removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n if (doc.activeElement === keyboardNode && startEvent.pointerType === \"mouse\") {\n startEvent.preventDefault();\n }\n startPress(startEvent);\n };\n const removePointerListener = addDomEvent(pointerNode, \"pointerdown\", startPointerPress, { passive: !onPressStart });\n const removeFocusListener = addDomEvent(keyboardNode, \"focus\", startAccessiblePress);\n removeStartListeners = pipe(removePointerListener, removeFocusListener);\n function startAccessiblePress() {\n const handleKeydown = (keydownEvent) => {\n if (!isValidKey(keydownEvent)) return;\n const handleKeyup = (keyupEvent) => {\n if (!isValidKey(keyupEvent)) return;\n const evt2 = new win.PointerEvent(\"pointerup\");\n const info = getInfo(evt2);\n onPress?.(info);\n onPressEnd?.(info);\n };\n removeEndListeners();\n removeEndListeners = addDomEvent(keyboardNode, \"keyup\", handleKeyup);\n const evt = new win.PointerEvent(\"pointerdown\");\n startPress(evt);\n };\n const handleBlur = () => {\n const evt = new win.PointerEvent(\"pointercancel\");\n cancelPress(evt);\n };\n const removeKeydownListener = addDomEvent(keyboardNode, \"keydown\", handleKeydown);\n const removeBlurListener = addDomEvent(keyboardNode, \"blur\", handleBlur);\n removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n }\n return () => {\n removeStartListeners();\n removeEndListeners();\n removeAccessibleListeners();\n };\n}\n\n// src/proxy-tab-focus.ts\nfunction proxyTabFocusImpl(container, options = {}) {\n const { triggerElement, onFocus, onFocusEnter } = options;\n const doc = container?.ownerDocument || document;\n const body = doc.body;\n function onKeyDown(event) {\n if (event.key !== \"Tab\") return;\n let elementToFocus = null;\n const [firstTabbable, lastTabbable] = getTabbableEdges(container, true);\n const nextTabbableAfterTrigger = getNextTabbable(body, triggerElement);\n const noTabbableElements = !firstTabbable && !lastTabbable;\n if (event.shiftKey && nextTabbableAfterTrigger === doc.activeElement) {\n onFocusEnter?.();\n elementToFocus = lastTabbable;\n } else if (event.shiftKey && (doc.activeElement === firstTabbable || noTabbableElements)) {\n elementToFocus = triggerElement;\n } else if (!event.shiftKey && doc.activeElement === triggerElement) {\n onFocusEnter?.();\n elementToFocus = firstTabbable;\n } else if (!event.shiftKey && (doc.activeElement === lastTabbable || noTabbableElements)) {\n elementToFocus = nextTabbableAfterTrigger;\n }\n if (!elementToFocus) return;\n event.preventDefault();\n if (typeof onFocus === \"function\") {\n onFocus(elementToFocus);\n } else {\n elementToFocus.focus();\n }\n }\n return addDomEvent(doc, \"keydown\", onKeyDown, true);\n}\nfunction proxyTabFocus(container, options) {\n const { defer, triggerElement, ...restOptions } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof container === \"function\" ? container() : container;\n const trigger = typeof triggerElement === \"function\" ? triggerElement() : triggerElement;\n cleanups.push(proxyTabFocusImpl(node, { triggerElement: trigger, ...restOptions }));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/query.ts\nfunction queryAll(root, selector) {\n return Array.from(root?.querySelectorAll(selector) ?? []);\n}\nfunction query(root, selector) {\n return root?.querySelector(selector) ?? null;\n}\nvar defaultItemToId = (v) => v.id;\nfunction itemById(v, id, itemToId = defaultItemToId) {\n return v.find((item) => itemToId(item) === id);\n}\nfunction indexOfId(v, id, itemToId = defaultItemToId) {\n const item = itemById(v, id, itemToId);\n return item ? v.indexOf(item) : -1;\n}\nfunction nextById(v, id, loop = true) {\n let idx = indexOfId(v, id);\n idx = loop ? (idx + 1) % v.length : Math.min(idx + 1, v.length - 1);\n return v[idx];\n}\nfunction prevById(v, id, loop = true) {\n let idx = indexOfId(v, id);\n if (idx === -1) return loop ? v[v.length - 1] : null;\n idx = loop ? (idx - 1 + v.length) % v.length : Math.max(0, idx - 1);\n return v[idx];\n}\n\n// src/resize-observer.ts\nfunction trackElementRect(elements, options) {\n const { onEntry, measure, box = \"border-box\" } = options;\n const elems = (Array.isArray(elements) ? elements : [elements]).filter(isHTMLElement);\n const win = getWindow(elems[0]);\n const trigger = (entries) => {\n const rects = elems.map((el) => measure(el));\n onEntry({ rects, entries });\n };\n trigger([]);\n const obs = new win.ResizeObserver(trigger);\n elems.forEach((el) => obs.observe(el, { box }));\n return () => obs.disconnect();\n}\n\n// src/scope.ts\nfunction createScope(methods) {\n const dom = {\n getRootNode: (ctx) => ctx.getRootNode?.() ?? document,\n getDoc: (ctx) => getDocument(dom.getRootNode(ctx)),\n getWin: (ctx) => dom.getDoc(ctx).defaultView ?? window,\n getActiveElement: (ctx) => getActiveElement(dom.getRootNode(ctx)),\n isActiveElement: (ctx, elem) => elem === dom.getActiveElement(ctx),\n getById: (ctx, id) => dom.getRootNode(ctx).getElementById(id),\n setValue: (elem, value) => {\n if (elem == null || value == null) return;\n setElementValue(elem, value.toString());\n }\n };\n return { ...dom, ...methods };\n}\n\n// src/searchable.ts\nvar sanitize = (str) => str.split(\"\").map((char) => {\n const code = char.charCodeAt(0);\n if (code > 0 && code < 128) return char;\n if (code >= 128 && code <= 255) return `/x${code.toString(16)}`.replace(\"/\", \"\\\\\");\n return \"\";\n}).join(\"\").trim();\nvar getValueText = (el) => {\n return sanitize(el.dataset?.valuetext ?? el.textContent ?? \"\");\n};\nvar match = (valueText, query2) => {\n return valueText.trim().toLowerCase().startsWith(query2.toLowerCase());\n};\nfunction getByText(v, text, currentId, itemToId = defaultItemToId) {\n const index = currentId ? indexOfId(v, currentId, itemToId) : -1;\n let items = currentId ? wrap(v, index) : v;\n const isSingleKey = text.length === 1;\n if (isSingleKey) {\n items = items.filter((item) => itemToId(item) !== currentId);\n }\n return items.find((item) => match(getValueText(item), text));\n}\n\n// src/set.ts\nfunction setAttribute(el, attr, v) {\n const prev = el.getAttribute(attr);\n const exists = prev != null;\n el.setAttribute(attr, v);\n return () => {\n if (!exists) {\n el.removeAttribute(attr);\n } else {\n el.setAttribute(attr, prev);\n }\n };\n}\nfunction setProperty(el, prop, v) {\n const exists = prop in el;\n const prev = el[prop];\n el[prop] = v;\n return () => {\n if (!exists) {\n delete el[prop];\n } else {\n el[prop] = prev;\n }\n };\n}\nfunction setStyle(el, style) {\n if (!el) return noop;\n const prev = Object.keys(style).reduce((acc, key) => {\n acc[key] = el.style.getPropertyValue(key);\n return acc;\n }, {});\n Object.assign(el.style, style);\n return () => {\n Object.assign(el.style, prev);\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n };\n}\nfunction setStyleProperty(el, prop, value) {\n if (!el) return noop;\n const prev = el.style.getPropertyValue(prop);\n el.style.setProperty(prop, value);\n return () => {\n el.style.setProperty(prop, prev);\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n };\n}\n\n// src/typeahead.ts\nfunction getByTypeaheadImpl(baseItems, options) {\n const { state: state2, activeId, key, timeout = 350, itemToId } = options;\n const search = state2.keysSoFar + key;\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const query2 = isRepeated ? search[0] : search;\n let items = baseItems.slice();\n const next = getByText(items, query2, activeId, itemToId);\n function cleanup() {\n clearTimeout(state2.timer);\n state2.timer = -1;\n }\n function update(value) {\n state2.keysSoFar = value;\n cleanup();\n if (value !== \"\") {\n state2.timer = +setTimeout(() => {\n update(\"\");\n cleanup();\n }, timeout);\n }\n }\n update(search);\n return next;\n}\nvar getByTypeahead = /* @__PURE__ */ Object.assign(getByTypeaheadImpl, {\n defaultOptions: { keysSoFar: \"\", timer: -1 },\n isValidEvent: isValidTypeaheadEvent\n});\nfunction isValidTypeaheadEvent(event) {\n return event.key.length === 1 && !event.ctrlKey && !event.metaKey;\n}\n\n// src/visual-viewport.ts\nfunction trackVisualViewport(doc, fn) {\n const win = doc?.defaultView || window;\n const onResize = () => {\n fn?.(getViewportSize(win));\n };\n onResize();\n return addDomEvent(win.visualViewport ?? win, \"resize\", onResize);\n}\nfunction getViewportSize(win) {\n return {\n width: win.visualViewport?.width || win.innerWidth,\n height: win.visualViewport?.height || win.innerHeight\n };\n}\n\n// src/visually-hidden.ts\nvar visuallyHiddenStyle = {\n border: \"0\",\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: \"0\",\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n};\nfunction setVisuallyHidden(el) {\n Object.assign(el.style, visuallyHiddenStyle);\n}\n\n// src/wait-for.ts\nvar fps = 1e3 / 60;\nfunction waitForElement(query2, cb) {\n const el = query2();\n if (isHTMLElement(el) && el.isConnected) {\n cb(el);\n return () => void 0;\n } else {\n const timerId = setInterval(() => {\n const el2 = query2();\n if (isHTMLElement(el2) && el2.isConnected) {\n cb(el2);\n clearInterval(timerId);\n }\n }, fps);\n return () => clearInterval(timerId);\n }\n}\nfunction waitForElements(queries, cb) {\n const cleanups = [];\n queries?.forEach((query2) => {\n const clean = waitForElement(query2, cb);\n cleanups.push(clean);\n });\n return () => {\n cleanups.forEach((fn) => fn());\n };\n}\n\nexport { MAX_Z_INDEX, addDomEvent, ariaAttr, clickIfLink, contains, createScope, dataAttr, defaultItemToId, disableTextSelection, dispatchInputCheckedEvent, dispatchInputValueEvent, getActiveElement, getBeforeInputValue, getByText, getByTypeahead, getComputedStyle, getDataUrl, getDocument, getDocumentElement, getEventKey, getEventPoint, getEventStep, getEventTarget, getFirstFocusable, getFirstTabbable, getFocusables, getInitialFocus, getLastTabbable, getNativeEvent, getNearestOverflowAncestor, getNextTabbable, getNodeName, getOverflowAncestors, getParentNode, getPlatform, getRelativePoint, getScrollPosition, getTabIndex, getTabbableEdges, getTabbables, getUserAgent, getWindow, indexOfId, isAnchorElement, isAndroid, isApple, isCaretAtStart, isChrome, isComposingEvent, isContextMenuEvent, isCtrlOrMetaKey, isDocument, isDom, isDownloadingEvent, isEditableElement, isElementVisible, isFirefox, isFocusable, isHTMLElement, isIPad, isIPhone, isInView, isInputElement, isIos, isKeyboardClick, isLeftClick, isMac, isModifierKey, isNode, isOpeningInNewTab, isOverflowElement, isPrintableKey, isRootElement, isSafari, isSelfTarget, isShadowRoot, isTabbable, isTouchDevice, isTouchEvent, isValidTabEvent, isVirtualClick, isVirtualPointerEvent, isVisualViewport, isWebKit, isWindow, itemById, nextById, nextTick, observeAttributes, observeChildren, prevById, proxyTabFocus, query, queryAll, queueBeforeEvent, raf, requestPointerLock, restoreTextSelection, scrollIntoView, setAttribute, setCaretToEnd, setElementChecked, setElementValue, setProperty, setStyle, setStyleProperty, setVisuallyHidden, trackElementRect, trackFormControl, trackPointerMove, trackPress, trackVisualViewport, visuallyHiddenStyle, waitForElement, waitForElements };\n","import { callAll, isEqual, isString } from '@zag-js/utils';\nimport { getActiveElement, getDocument } from '@zag-js/dom-query';\n\n// src/merge-props.ts\nvar clsx = (...args) => args.map((str) => str?.trim?.()).filter(Boolean).join(\" \");\nvar CSS_REGEX = /((?:--)?(?:\\w+-?)+)\\s*:\\s*([^;]*)/g;\nvar serialize = (style) => {\n const res = {};\n let match;\n while (match = CSS_REGEX.exec(style)) {\n res[match[1]] = match[2];\n }\n return res;\n};\nvar css = (a, b) => {\n if (isString(a)) {\n if (isString(b)) return `${a};${b}`;\n a = serialize(a);\n } else if (isString(b)) {\n b = serialize(b);\n }\n return Object.assign({}, a ?? {}, b ?? {});\n};\nfunction mergeProps(...args) {\n let result = {};\n for (let props of args) {\n for (let key in result) {\n if (key.startsWith(\"on\") && typeof result[key] === \"function\" && typeof props[key] === \"function\") {\n result[key] = callAll(props[key], result[key]);\n continue;\n }\n if (key === \"className\" || key === \"class\") {\n result[key] = clsx(result[key], props[key]);\n continue;\n }\n if (key === \"style\") {\n result[key] = css(result[key], props[key]);\n continue;\n }\n result[key] = props[key] !== void 0 ? props[key] : result[key];\n }\n for (let key in props) {\n if (result[key] === void 0) {\n result[key] = props[key];\n }\n }\n }\n return result;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return (depArgs) => {\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => !isEqual(deps[index], dep));\n if (!depsChanged) return result;\n deps = newDeps;\n result = fn(...newDeps);\n opts?.onChange?.(result);\n return result;\n };\n}\n\n// src/create-machine.ts\nfunction createGuards() {\n return {\n and: (...guards) => {\n return function andGuard(params) {\n return guards.every((str) => params.guard(str));\n };\n },\n or: (...guards) => {\n return function orGuard(params) {\n return guards.some((str) => params.guard(str));\n };\n },\n not: (guard) => {\n return function notGuard(params) {\n return !params.guard(guard);\n };\n }\n };\n}\nfunction createMachine(config) {\n return config;\n}\nfunction setup() {\n return {\n guards: createGuards(),\n createMachine: (config) => {\n return createMachine(config);\n },\n choose: (transitions) => {\n return function chooseFn({ choose }) {\n return choose(transitions)?.actions;\n };\n }\n };\n}\n\n// src/types.ts\nvar MachineStatus = /* @__PURE__ */ ((MachineStatus2) => {\n MachineStatus2[\"NotStarted\"] = \"Not Started\";\n MachineStatus2[\"Started\"] = \"Started\";\n MachineStatus2[\"Stopped\"] = \"Stopped\";\n return MachineStatus2;\n})(MachineStatus || {});\nvar INIT_STATE = \"__init__\";\nfunction createScope(props) {\n const getRootNode = () => props.getRootNode?.() ?? document;\n const getDoc = () => getDocument(getRootNode());\n const getWin = () => getDoc().defaultView ?? window;\n const getActiveElementFn = () => getActiveElement(getRootNode());\n const isActiveElement = (elem) => elem === getActiveElementFn();\n const getById = (id) => getRootNode().getElementById(id);\n return {\n ...props,\n getRootNode,\n getDoc,\n getWin,\n getActiveElement: getActiveElementFn,\n isActiveElement,\n getById\n };\n}\n\nexport { INIT_STATE, MachineStatus, createGuards, createMachine, createScope, memo, mergeProps, setup };\n","// src/prop-types.ts\nfunction createNormalizer(fn) {\n return new Proxy({}, {\n get(_target, key) {\n if (key === \"style\")\n return (props) => {\n return fn({ style: props }).style;\n };\n return fn;\n }\n });\n}\n\n// src/create-props.ts\nvar createProps = () => (props) => Array.from(new Set(props));\n\nexport { createNormalizer, createProps };\n","\"use client\";\n\nimport { createScope, MachineStatus, INIT_STATE } from '@zag-js/core';\nexport { mergeProps } from '@zag-js/core';\nimport { compact, ensure, isFunction, warn, toArray, isString, identity } from '@zag-js/utils';\nimport * as React from 'react';\nimport { useMemo, useRef, useLayoutEffect, useEffect, useState } from 'react';\nimport { flushSync, createPortal } from 'react-dom';\nimport { createNormalizer } from '@zag-js/types';\nimport { jsx } from 'react/jsx-runtime';\n\n// src/index.ts\nvar useSafeLayoutEffect = typeof globalThis.document !== \"undefined\" ? useLayoutEffect : useEffect;\n\n// src/bindable.ts\nfunction useBindable(props) {\n const initial = props().value ?? props().defaultValue;\n const eq = props().isEqual ?? Object.is;\n const [initialValue] = useState(initial);\n const [value, setValue] = useState(initialValue);\n const controlled = props().value !== void 0;\n const valueRef = useRef(value);\n valueRef.current = controlled ? props().value : value;\n const prevValue = useRef(valueRef.current);\n useSafeLayoutEffect(() => {\n prevValue.current = valueRef.current;\n }, [value, props().value]);\n const setFn = (value2) => {\n const prev = prevValue.current;\n const next = isFunction(value2) ? value2(prev) : value2;\n if (props().debug) {\n console.log(`[bindable > ${props().debug}] setValue`, { next, prev });\n }\n if (!controlled) setValue(next);\n if (!eq(next, prev)) {\n props().onChange?.(next, prev);\n }\n };\n function get() {\n return controlled ? props().value : value;\n }\n return {\n initial: initialValue,\n ref: valueRef,\n get,\n set(value2) {\n const exec = props().sync ? flushSync : identity;\n exec(() => setFn(value2));\n },\n invoke(nextValue, prevValue2) {\n props().onChange?.(nextValue, prevValue2);\n },\n hash(value2) {\n return props().hash?.(value2) ?? String(value2);\n }\n };\n}\nuseBindable.cleanup = (fn) => {\n useEffect(() => fn, []);\n};\nuseBindable.ref = (defaultValue) => {\n const value = useRef(defaultValue);\n return {\n get: () => value.current,\n set: (next) => {\n value.current = next;\n }\n };\n};\nfunction useRefs(refs) {\n const ref = useRef(refs);\n return {\n get(key) {\n return ref.current[key];\n },\n set(key, value) {\n ref.current[key] = value;\n }\n };\n}\nvar useTrack = (deps, effect) => {\n const render = useRef(false);\n const called = useRef(false);\n useEffect(() => {\n const mounted = render.current;\n const run = mounted && called.current;\n if (run) return effect();\n called.current = true;\n }, [...(deps ?? []).map((d) => typeof d === \"function\" ? d() : d)]);\n useEffect(() => {\n render.current = true;\n return () => {\n render.current = false;\n };\n }, []);\n};\n\n// src/machine.ts\nfunction useMachine(machine, userProps = {}) {\n const scope = useMemo(() => {\n const { id, ids, getRootNode } = userProps;\n return createScope({ id, ids, getRootNode });\n }, [userProps]);\n const debug = (...args) => {\n if (machine.debug) console.log(...args);\n };\n const props = machine.props?.({ props: compact(userProps), scope }) ?? userProps;\n const prop = useProp(props);\n const context = machine.context?.({\n prop,\n bindable: useBindable,\n scope,\n flush,\n getContext() {\n return ctx;\n },\n getComputed() {\n return computed;\n },\n getRefs() {\n return refs;\n }\n });\n const contextRef = useLiveRef(context);\n const ctx = {\n get(key) {\n return contextRef.current?.[key].ref.current;\n },\n set(key, value) {\n contextRef.current?.[key].set(value);\n },\n initial(key) {\n return contextRef.current?.[key].initial;\n },\n hash(key) {\n const current = contextRef.current?.[key].get();\n return contextRef.current?.[key].hash(current);\n }\n };\n const effects = useRef(/* @__PURE__ */ new Map());\n const transitionRef = useRef(null);\n const previousEventRef = useRef(null);\n const eventRef = useRef({ type: \"\" });\n const getEvent = () => ({\n ...eventRef.current,\n current() {\n return eventRef.current;\n },\n previous() {\n return previousEventRef.current;\n }\n });\n const getState = () => ({\n ...state,\n matches(...values) {\n return values.includes(state.ref.current);\n },\n hasTag(tag) {\n return !!machine.states[state.ref.current]?.tags?.includes(tag);\n }\n });\n const refs = useRefs(machine.refs?.({ prop, context: ctx }) ?? {});\n const getParams = () => ({\n state: getState(),\n context: ctx,\n event: getEvent(),\n prop,\n send,\n action,\n guard,\n track: useTrack,\n refs,\n computed,\n flush,\n scope,\n choose\n });\n const action = (keys) => {\n const strs = isFunction(keys) ? keys(getParams()) : keys;\n if (!strs) return;\n const fns = strs.map((s) => {\n const fn = machine.implementations?.actions?.[s];\n if (!fn) warn(`[zag-js] No implementation found for action \"${JSON.stringify(s)}\"`);\n return fn;\n });\n for (const fn of fns) {\n fn?.(getParams());\n }\n };\n const guard = (str) => {\n if (isFunction(str)) return str(getParams());\n return machine.implementations?.guards?.[str](getParams());\n };\n const effect = (keys) => {\n const strs = isFunction(keys) ? keys(getParams()) : keys;\n if (!strs) return;\n const fns = strs.map((s) => {\n const fn = machine.implementations?.effects?.[s];\n if (!fn) warn(`[zag-js] No implementation found for effect \"${JSON.stringify(s)}\"`);\n return fn;\n });\n const cleanups = [];\n for (const fn of fns) {\n const cleanup = fn?.(getParams());\n if (cleanup) cleanups.push(cleanup);\n }\n return () => cleanups.forEach((fn) => fn?.());\n };\n const choose = (transitions) => {\n return toArray(transitions).find((t) => {\n let result = !t.guard;\n if (isString(t.guard)) result = !!guard(t.guard);\n else if (isFunction(t.guard)) result = t.guard(getParams());\n return result;\n });\n };\n const computed = (key) => {\n ensure(machine.computed, () => `[zag-js] No computed object found on machine`);\n const fn = machine.computed[key];\n return fn({\n context: ctx,\n event: getEvent(),\n prop,\n refs,\n scope,\n computed\n });\n };\n const state = useBindable(() => ({\n defaultValue: machine.initialState({ prop }),\n onChange(nextState, prevState) {\n if (prevState) {\n const exitEffects = effects.current.get(prevState);\n exitEffects?.();\n effects.current.delete(prevState);\n }\n if (prevState) {\n action(machine.states[prevState]?.exit);\n }\n action(transitionRef.current?.actions);\n const cleanup = effect(machine.states[nextState]?.effects);\n if (cleanup) effects.current.set(nextState, cleanup);\n if (prevState === INIT_STATE) {\n action(machine.entry);\n const cleanup2 = effect(machine.effects);\n if (cleanup2) effects.current.set(INIT_STATE, cleanup2);\n }\n action(machine.states[nextState]?.entry);\n }\n }));\n const hydratedStateRef = useRef(void 0);\n const statusRef = useRef(MachineStatus.NotStarted);\n useSafeLayoutEffect(() => {\n queueMicrotask(() => {\n const started = statusRef.current === MachineStatus.Started;\n statusRef.current = MachineStatus.Started;\n debug(started ? \"rehydrating...\" : \"initializing...\");\n const initialState = hydratedStateRef.current ?? state.initial;\n state.invoke(initialState, started ? state.get() : INIT_STATE);\n });\n const fns = effects.current;\n const currentState = state.ref.current;\n return () => {\n debug(\"unmounting...\");\n hydratedStateRef.current = currentState;\n statusRef.current = MachineStatus.Stopped;\n fns.forEach((fn) => fn?.());\n effects.current = /* @__PURE__ */ new Map();\n transitionRef.current = null;\n queueMicrotask(() => {\n action(machine.exit);\n });\n };\n }, []);\n const getCurrentState = () => {\n if (\"ref\" in state) return state.ref.current;\n return state.get();\n };\n const send = (event) => {\n queueMicrotask(() => {\n if (statusRef.current !== MachineStatus.Started) return;\n previousEventRef.current = eventRef.current;\n eventRef.current = event;\n debug(\"send\", event);\n let currentState = getCurrentState();\n const transitions = (\n // @ts-ignore\n machine.states[currentState].on?.[event.type] ?? // @ts-ignore\n machine.on?.[event.type]\n );\n const transition = choose(transitions);\n if (!transition) return;\n transitionRef.current = transition;\n const target = transition.target ?? currentState;\n debug(\"transition\", transition);\n const changed = target !== currentState;\n if (changed) {\n flushSync(() => state.set(target));\n } else if (transition.reenter && !changed) {\n state.invoke(currentState, currentState);\n } else {\n action(transition.actions ?? []);\n }\n });\n };\n machine.watch?.(getParams());\n return {\n state: getState(),\n send,\n context: ctx,\n prop,\n scope,\n refs,\n computed,\n event: getEvent(),\n getStatus: () => statusRef.current\n };\n}\nfunction useLiveRef(value) {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n}\nfunction useProp(value) {\n const ref = useLiveRef(value);\n return function get(key) {\n return ref.current[key];\n };\n}\nfunction flush(fn) {\n queueMicrotask(() => {\n flushSync(() => fn());\n });\n}\nvar normalizeProps = createNormalizer((v) => v);\nvar Portal = (props) => {\n const { children, container, disabled, getRootNode } = props;\n const isServer = typeof window === \"undefined\";\n if (isServer || disabled) return /* @__PURE__ */ jsx(React.Fragment, { children });\n const doc = getRootNode?.().ownerDocument ?? document;\n const mountNode = container?.current ?? doc.body;\n return /* @__PURE__ */ jsx(React.Fragment, { children: React.Children.map(children, (child) => createPortal(child, mountNode)) });\n};\n\nexport { Portal, normalizeProps, useMachine };\n","function composeRefs(...refs) {\n return (node) => {\n const cleanUps = [];\n for (const ref of refs) {\n if (typeof ref === \"function\") {\n const cb = ref(node);\n if (typeof cb === \"function\") {\n cleanUps.push(cb);\n }\n } else if (ref) {\n ref.current = node;\n }\n }\n if (cleanUps.length) {\n return () => {\n for (const cleanUp of cleanUps) {\n cleanUp();\n }\n };\n }\n };\n}\n\nexport { composeRefs };\n","import { mergeProps } from '@zag-js/core';\nimport { memo, forwardRef, createElement, Children, isValidElement, cloneElement } from 'react';\nimport { composeRefs } from '../utils/compose-refs.js';\n\nfunction getRef(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}\nconst withAsChild = (Component) => {\n const Comp = memo(\n forwardRef((props, ref) => {\n const { asChild, children, ...restProps } = props;\n if (!asChild) {\n return createElement(Component, { ...restProps, ref }, children);\n }\n const onlyChild = Children.only(children);\n if (!isValidElement(onlyChild)) {\n return null;\n }\n const childRef = getRef(onlyChild);\n return cloneElement(onlyChild, {\n ...mergeProps(restProps, onlyChild.props),\n ref: ref ? composeRefs(ref, childRef) : childRef\n });\n })\n );\n Comp.displayName = Component.displayName || Component.name;\n return Comp;\n};\nconst jsxFactory = () => {\n const cache = /* @__PURE__ */ new Map();\n return new Proxy(withAsChild, {\n apply(_target, _thisArg, argArray) {\n return withAsChild(argArray[0]);\n },\n get(_, element) {\n const asElement = element;\n if (!cache.has(asElement)) {\n cache.set(asElement, withAsChild(asElement));\n }\n return cache.get(asElement);\n }\n });\n};\nconst ark = jsxFactory();\n\nexport { ark, jsxFactory };\n","'use client';\nconst createSplitProps = () => (props, keys) => keys.reduce(\n (previousValue, currentValue) => {\n const [target, source] = previousValue;\n const key = currentValue;\n if (source[key] !== void 0) {\n target[key] = source[key];\n }\n delete source[key];\n return [target, source];\n },\n [{}, { ...props }]\n);\n\nexport { createSplitProps };\n","// src/create-anatomy.ts\nvar createAnatomy = (name, parts = []) => ({\n parts: (...values) => {\n if (isEmpty(parts)) {\n return createAnatomy(name, values);\n }\n throw new Error(\"createAnatomy().parts(...) should only be called once. Did you mean to use .extendWith(...) ?\");\n },\n extendWith: (...values) => createAnatomy(name, [...parts, ...values]),\n rename: (newName) => createAnatomy(newName, parts),\n keys: () => parts,\n build: () => [...new Set(parts)].reduce(\n (prev, part) => Object.assign(prev, {\n [part]: {\n selector: [\n `&[data-scope=\"${toKebabCase(name)}\"][data-part=\"${toKebabCase(part)}\"]`,\n `& [data-scope=\"${toKebabCase(name)}\"][data-part=\"${toKebabCase(part)}\"]`\n ].join(\", \"),\n attrs: { \"data-scope\": toKebabCase(name), \"data-part\": toKebabCase(part) }\n }\n }),\n {}\n )\n});\nvar toKebabCase = (value) => value.replace(/([A-Z])([A-Z])/g, \"$1-$2\").replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[\\s_]+/g, \"-\").toLowerCase();\nvar isEmpty = (v) => v.length === 0;\n\nexport { createAnatomy };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [EnvironmentContextProvider, useEnvironmentContext] = createContext({\n name: \"EnvironmentContext\",\n hookName: \"useEnvironmentContext\",\n providerName: \"<EnvironmentProvider />\",\n strict: false,\n defaultValue: {\n getRootNode: () => document,\n getDocument: () => document,\n getWindow: () => window\n }\n});\n\nexport { EnvironmentContextProvider, useEnvironmentContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [LocaleContextProvider, useLocaleContext] = createContext({\n name: \"LocaleContext\",\n hookName: \"useLocaleContext\",\n providerName: \"<LocaleProvider />\",\n strict: false,\n defaultValue: { dir: \"ltr\", locale: \"en-US\" }\n});\n\nexport { LocaleContextProvider, useLocaleContext };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL <body> scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { autoUpdate, offset, flip, shift, limitShift, arrow, size, hide, computePosition } from '@floating-ui/dom';\nimport { raf, isHTMLElement, getWindow, getComputedStyle } from '@zag-js/dom-query';\nimport { noop, isNull, compact, runIfFn } from '@zag-js/utils';\n\n// src/get-placement.ts\nfunction createDOMRect(x = 0, y = 0, width = 0, height = 0) {\n if (typeof DOMRect === \"function\") {\n return new DOMRect(x, y, width, height);\n }\n const rect = {\n x,\n y,\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n return { ...rect, toJSON: () => rect };\n}\nfunction getDOMRect(anchorRect) {\n if (!anchorRect) return createDOMRect();\n const { x, y, width, height } = anchorRect;\n return createDOMRect(x, y, width, height);\n}\nfunction getAnchorElement(anchorElement, getAnchorRect) {\n return {\n contextElement: isHTMLElement(anchorElement) ? anchorElement : void 0,\n getBoundingClientRect: () => {\n const anchor = anchorElement;\n const anchorRect = getAnchorRect?.(anchor);\n if (anchorRect || !anchor) {\n return getDOMRect(anchorRect);\n }\n return anchor.getBoundingClientRect();\n }\n };\n}\n\n// src/middleware.ts\nvar toVar = (value) => ({ variable: value, reference: `var(${value})` });\nvar cssVars = {\n arrowSize: toVar(\"--arrow-size\"),\n arrowSizeHalf: toVar(\"--arrow-size-half\"),\n arrowBg: toVar(\"--arrow-background\"),\n transformOrigin: toVar(\"--transform-origin\"),\n arrowOffset: toVar(\"--arrow-offset\")\n};\nvar getTransformOrigin = (arrow2) => ({\n top: \"bottom center\",\n \"top-start\": arrow2 ? `${arrow2.x}px bottom` : \"left bottom\",\n \"top-end\": arrow2 ? `${arrow2.x}px bottom` : \"right bottom\",\n bottom: \"top center\",\n \"bottom-start\": arrow2 ? `${arrow2.x}px top` : \"top left\",\n \"bottom-end\": arrow2 ? `${arrow2.x}px top` : \"top right\",\n left: \"right center\",\n \"left-start\": arrow2 ? `right ${arrow2.y}px` : \"right top\",\n \"left-end\": arrow2 ? `right ${arrow2.y}px` : \"right bottom\",\n right: \"left center\",\n \"right-start\": arrow2 ? `left ${arrow2.y}px` : \"left top\",\n \"right-end\": arrow2 ? `left ${arrow2.y}px` : \"left bottom\"\n});\nvar transformOriginMiddleware = {\n name: \"transformOrigin\",\n fn({ placement, elements, middlewareData }) {\n const { arrow: arrow2 } = middlewareData;\n const transformOrigin = getTransformOrigin(arrow2)[placement];\n const { floating } = elements;\n floating.style.setProperty(cssVars.transformOrigin.variable, transformOrigin);\n return {\n data: { transformOrigin }\n };\n }\n};\nvar rectMiddleware = {\n name: \"rects\",\n fn({ rects }) {\n return {\n data: rects\n };\n }\n};\nvar shiftArrowMiddleware = (arrowEl) => {\n if (!arrowEl) return;\n return {\n name: \"shiftArrow\",\n fn({ placement, middlewareData }) {\n if (!middlewareData.arrow) return {};\n const { x, y } = middlewareData.arrow;\n const dir = placement.split(\"-\")[0];\n Object.assign(arrowEl.style, {\n left: x != null ? `${x}px` : \"\",\n top: y != null ? `${y}px` : \"\",\n [dir]: `calc(100% + ${cssVars.arrowOffset.reference})`\n });\n return {};\n }\n };\n};\n\n// src/placement.ts\nfunction isValidPlacement(v) {\n return /^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(v);\n}\nfunction getPlacementDetails(placement) {\n const [side, align] = placement.split(\"-\");\n return { side, align, hasAlign: align != null };\n}\nfunction getPlacementSide(placement) {\n return placement.split(\"-\")[0];\n}\n\n// src/get-placement.ts\nvar defaultOptions = {\n strategy: \"absolute\",\n placement: \"bottom\",\n listeners: true,\n gutter: 8,\n flip: true,\n slide: true,\n overlap: false,\n sameWidth: false,\n fitViewport: false,\n overflowPadding: 8,\n arrowPadding: 4\n};\nfunction roundByDpr(win, value) {\n const dpr = win.devicePixelRatio || 1;\n return Math.round(value * dpr) / dpr;\n}\nfunction getBoundaryMiddleware(opts) {\n return runIfFn(opts.boundary);\n}\nfunction getArrowMiddleware(arrowElement, opts) {\n if (!arrowElement) return;\n return arrow({\n element: arrowElement,\n padding: opts.arrowPadding\n });\n}\nfunction getOffsetMiddleware(arrowElement, opts) {\n if (isNull(opts.offset ?? opts.gutter)) return;\n return offset(({ placement }) => {\n const arrowOffset = (arrowElement?.clientHeight || 0) / 2;\n const gutter = opts.offset?.mainAxis ?? opts.gutter;\n const mainAxis = typeof gutter === \"number\" ? gutter + arrowOffset : gutter ?? arrowOffset;\n const { hasAlign } = getPlacementDetails(placement);\n const shift2 = !hasAlign ? opts.shift : void 0;\n const crossAxis = opts.offset?.crossAxis ?? shift2;\n return compact({\n crossAxis,\n mainAxis,\n alignmentAxis: opts.shift\n });\n });\n}\nfunction getFlipMiddleware(opts) {\n if (!opts.flip) return;\n return flip({\n boundary: getBoundaryMiddleware(opts),\n padding: opts.overflowPadding,\n fallbackPlacements: opts.flip === true ? void 0 : opts.flip\n });\n}\nfunction getShiftMiddleware(opts) {\n if (!opts.slide && !opts.overlap) return;\n return shift({\n boundary: getBoundaryMiddleware(opts),\n mainAxis: opts.slide,\n crossAxis: opts.overlap,\n padding: opts.overflowPadding,\n limiter: limitShift()\n });\n}\nfunction getSizeMiddleware(opts) {\n return size({\n padding: opts.overflowPadding,\n apply({ elements, rects, availableHeight, availableWidth }) {\n const floating = elements.floating;\n const referenceWidth = Math.round(rects.reference.width);\n availableWidth = Math.floor(availableWidth);\n availableHeight = Math.floor(availableHeight);\n floating.style.setProperty(\"--reference-width\", `${referenceWidth}px`);\n floating.style.setProperty(\"--available-width\", `${availableWidth}px`);\n floating.style.setProperty(\"--available-height\", `${availableHeight}px`);\n }\n });\n}\nfunction hideWhenDetachedMiddleware(opts) {\n if (!opts.hideWhenDetached) return;\n return hide({ strategy: \"referenceHidden\", boundary: opts.boundary?.() ?? \"clippingAncestors\" });\n}\nfunction getAutoUpdateOptions(opts) {\n if (!opts) return {};\n if (opts === true) {\n return { ancestorResize: true, ancestorScroll: true, elementResize: true, layoutShift: true };\n }\n return opts;\n}\nfunction getPlacementImpl(referenceOrVirtual, floating, opts = {}) {\n const reference = getAnchorElement(referenceOrVirtual, opts.getAnchorRect);\n if (!floating || !reference) return;\n const options = Object.assign({}, defaultOptions, opts);\n const arrowEl = floating.querySelector(\"[data-part=arrow]\");\n const middleware = [\n getOffsetMiddleware(arrowEl, options),\n getFlipMiddleware(options),\n getShiftMiddleware(options),\n getArrowMiddleware(arrowEl, options),\n shiftArrowMiddleware(arrowEl),\n transformOriginMiddleware,\n getSizeMiddleware(options),\n hideWhenDetachedMiddleware(options),\n rectMiddleware\n ];\n const { placement, strategy, onComplete, onPositioned } = options;\n const updatePosition = async () => {\n if (!reference || !floating) return;\n const pos = await computePosition(reference, floating, {\n placement,\n middleware,\n strategy\n });\n onComplete?.(pos);\n onPositioned?.({ placed: true });\n const win = getWindow(floating);\n const x = roundByDpr(win, pos.x);\n const y = roundByDpr(win, pos.y);\n floating.style.setProperty(\"--x\", `${x}px`);\n floating.style.setProperty(\"--y\", `${y}px`);\n if (options.hideWhenDetached) {\n const isHidden = pos.middlewareData.hide?.referenceHidden;\n if (isHidden) {\n floating.style.setProperty(\"visibility\", \"hidden\");\n floating.style.setProperty(\"pointer-events\", \"none\");\n } else {\n floating.style.removeProperty(\"visibility\");\n floating.style.removeProperty(\"pointer-events\");\n }\n }\n const contentEl = floating.firstElementChild;\n if (contentEl) {\n const styles = getComputedStyle(contentEl);\n floating.style.setProperty(\"--z-index\", styles.zIndex);\n }\n };\n const update = async () => {\n if (opts.updatePosition) {\n await opts.updatePosition({ updatePosition });\n onPositioned?.({ placed: true });\n } else {\n await updatePosition();\n }\n };\n const autoUpdateOptions = getAutoUpdateOptions(options.listeners);\n const cancelAutoUpdate = options.listeners ? autoUpdate(reference, floating, update, autoUpdateOptions) : noop;\n update();\n return () => {\n cancelAutoUpdate?.();\n onPositioned?.({ placed: false });\n };\n}\nfunction getPlacement(referenceOrFn, floatingOrFn, opts = {}) {\n const { defer, ...options } = opts;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const reference = typeof referenceOrFn === \"function\" ? referenceOrFn() : referenceOrFn;\n const floating = typeof floatingOrFn === \"function\" ? floatingOrFn() : floatingOrFn;\n cleanups.push(getPlacementImpl(reference, floating, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/get-styles.ts\nvar ARROW_FLOATING_STYLE = {\n bottom: \"rotate(45deg)\",\n left: \"rotate(135deg)\",\n top: \"rotate(225deg)\",\n right: \"rotate(315deg)\"\n};\nfunction getPlacementStyles(options = {}) {\n const { placement, sameWidth, fitViewport, strategy = \"absolute\" } = options;\n return {\n arrow: {\n position: \"absolute\",\n width: cssVars.arrowSize.reference,\n height: cssVars.arrowSize.reference,\n [cssVars.arrowSizeHalf.variable]: `calc(${cssVars.arrowSize.reference} / 2)`,\n [cssVars.arrowOffset.variable]: `calc(${cssVars.arrowSizeHalf.reference} * -1)`\n },\n arrowTip: {\n // @ts-expect-error - Fix this\n transform: placement ? ARROW_FLOATING_STYLE[placement.split(\"-\")[0]] : void 0,\n background: cssVars.arrowBg.reference,\n top: \"0\",\n left: \"0\",\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: \"inherit\"\n },\n floating: {\n position: strategy,\n isolation: \"isolate\",\n minWidth: sameWidth ? void 0 : \"max-content\",\n width: sameWidth ? \"var(--reference-width)\" : void 0,\n maxWidth: fitViewport ? \"var(--available-width)\" : void 0,\n maxHeight: fitViewport ? \"var(--available-height)\" : void 0,\n pointerEvents: !placement ? \"none\" : void 0,\n top: \"0px\",\n left: \"0px\",\n // move off-screen if placement is not defined\n transform: placement ? \"translate3d(var(--x), var(--y), 0)\" : \"translate3d(0, -100vh, 0)\",\n zIndex: \"var(--z-index)\"\n }\n };\n}\n\nexport { getPlacement, getPlacementSide, getPlacementStyles, isValidPlacement };\n","import { raf, getDocument, getWindow, isShadowRoot, addDomEvent, isTouchDevice, getEventTarget, isFocusable, isContextMenuEvent, isHTMLElement, contains, getNearestOverflowAncestor } from '@zag-js/dom-query';\nimport { callAll } from '@zag-js/utils';\n\n// src/index.ts\n\n// src/frame-utils.ts\nfunction getWindowFrames(win) {\n const frames = {\n each(cb) {\n for (let i = 0; i < win.frames?.length; i += 1) {\n const frame = win.frames[i];\n if (frame) cb(frame);\n }\n },\n addEventListener(event, listener, options) {\n frames.each((frame) => {\n try {\n frame.document.addEventListener(event, listener, options);\n } catch {\n }\n });\n return () => {\n try {\n frames.removeEventListener(event, listener, options);\n } catch {\n }\n };\n },\n removeEventListener(event, listener, options) {\n frames.each((frame) => {\n try {\n frame.document.removeEventListener(event, listener, options);\n } catch {\n }\n });\n }\n };\n return frames;\n}\nfunction getParentWindow(win) {\n const parent = win.frameElement != null ? win.parent : null;\n return {\n addEventListener: (event, listener, options) => {\n try {\n parent?.addEventListener(event, listener, options);\n } catch {\n }\n return () => {\n try {\n parent?.removeEventListener(event, listener, options);\n } catch {\n }\n };\n },\n removeEventListener: (event, listener, options) => {\n try {\n parent?.removeEventListener(event, listener, options);\n } catch {\n }\n }\n };\n}\n\n// src/index.ts\nvar POINTER_OUTSIDE_EVENT = \"pointerdown.outside\";\nvar FOCUS_OUTSIDE_EVENT = \"focus.outside\";\nfunction isComposedPathFocusable(composedPath) {\n for (const node of composedPath) {\n if (isHTMLElement(node) && isFocusable(node)) return true;\n }\n return false;\n}\nvar isPointerEvent = (event) => \"clientY\" in event;\nfunction isEventPointWithin(node, event) {\n if (!isPointerEvent(event) || !node) return false;\n const rect = node.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) return false;\n return rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width;\n}\nfunction isPointInRect(rect, point) {\n return rect.y <= point.y && point.y <= rect.y + rect.height && rect.x <= point.x && point.x <= rect.x + rect.width;\n}\nfunction isEventWithinScrollbar(event, ancestor) {\n if (!ancestor || !isPointerEvent(event)) return false;\n const isScrollableY = ancestor.scrollHeight > ancestor.clientHeight;\n const onScrollbarY = isScrollableY && event.clientX > ancestor.offsetLeft + ancestor.clientWidth;\n const isScrollableX = ancestor.scrollWidth > ancestor.clientWidth;\n const onScrollbarX = isScrollableX && event.clientY > ancestor.offsetTop + ancestor.clientHeight;\n const rect = {\n x: ancestor.offsetLeft,\n y: ancestor.offsetTop,\n width: ancestor.clientWidth + (isScrollableY ? 16 : 0),\n height: ancestor.clientHeight + (isScrollableX ? 16 : 0)\n };\n const point = {\n x: event.clientX,\n y: event.clientY\n };\n if (!isPointInRect(rect, point)) return false;\n return onScrollbarY || onScrollbarX;\n}\nfunction trackInteractOutsideImpl(node, options) {\n const { exclude, onFocusOutside, onPointerDownOutside, onInteractOutside, defer } = options;\n if (!node) return;\n const doc = getDocument(node);\n const win = getWindow(node);\n const frames = getWindowFrames(win);\n const parentWin = getParentWindow(win);\n function isEventOutside(event, target) {\n if (!isHTMLElement(target)) return false;\n if (!target.isConnected) return false;\n if (contains(node, target)) return false;\n if (isEventPointWithin(node, event)) return false;\n const triggerEl = doc.querySelector(`[aria-controls=\"${node.id}\"]`);\n if (triggerEl) {\n const triggerAncestor = getNearestOverflowAncestor(triggerEl);\n if (isEventWithinScrollbar(event, triggerAncestor)) return false;\n }\n const nodeAncestor = getNearestOverflowAncestor(node);\n if (isEventWithinScrollbar(event, nodeAncestor)) return false;\n return !exclude?.(target);\n }\n const pointerdownCleanups = /* @__PURE__ */ new Set();\n const isInShadowRoot = isShadowRoot(node?.getRootNode());\n function onPointerDown(event) {\n function handler(clickEvent) {\n const func = defer && !isTouchDevice() ? raf : (v) => v();\n const evt = clickEvent ?? event;\n const composedPath = evt?.composedPath?.() ?? [evt?.target];\n func(() => {\n const target = isInShadowRoot ? composedPath[0] : getEventTarget(event);\n if (!node || !isEventOutside(event, target)) return;\n if (onPointerDownOutside || onInteractOutside) {\n const handler2 = callAll(onPointerDownOutside, onInteractOutside);\n node.addEventListener(POINTER_OUTSIDE_EVENT, handler2, { once: true });\n }\n fireCustomEvent(node, POINTER_OUTSIDE_EVENT, {\n bubbles: false,\n cancelable: true,\n detail: {\n originalEvent: evt,\n contextmenu: isContextMenuEvent(evt),\n focusable: isComposedPathFocusable(composedPath),\n target\n }\n });\n });\n }\n if (event.pointerType === \"touch\") {\n pointerdownCleanups.forEach((fn) => fn());\n pointerdownCleanups.add(addDomEvent(doc, \"click\", handler, { once: true }));\n pointerdownCleanups.add(parentWin.addEventListener(\"click\", handler, { once: true }));\n pointerdownCleanups.add(frames.addEventListener(\"click\", handler, { once: true }));\n } else {\n handler();\n }\n }\n const cleanups = /* @__PURE__ */ new Set();\n const timer = setTimeout(() => {\n cleanups.add(addDomEvent(doc, \"pointerdown\", onPointerDown, true));\n cleanups.add(parentWin.addEventListener(\"pointerdown\", onPointerDown, true));\n cleanups.add(frames.addEventListener(\"pointerdown\", onPointerDown, true));\n }, 0);\n function onFocusin(event) {\n const func = defer ? raf : (v) => v();\n func(() => {\n const target = getEventTarget(event);\n if (!node || !isEventOutside(event, target)) return;\n if (onFocusOutside || onInteractOutside) {\n const handler = callAll(onFocusOutside, onInteractOutside);\n node.addEventListener(FOCUS_OUTSIDE_EVENT, handler, { once: true });\n }\n fireCustomEvent(node, FOCUS_OUTSIDE_EVENT, {\n bubbles: false,\n cancelable: true,\n detail: {\n originalEvent: event,\n contextmenu: false,\n focusable: isFocusable(target),\n target\n }\n });\n });\n }\n if (!isTouchDevice()) {\n cleanups.add(addDomEvent(doc, \"focusin\", onFocusin, true));\n cleanups.add(parentWin.addEventListener(\"focusin\", onFocusin, true));\n cleanups.add(frames.addEventListener(\"focusin\", onFocusin, true));\n }\n return () => {\n clearTimeout(timer);\n pointerdownCleanups.forEach((fn) => fn());\n cleanups.forEach((fn) => fn());\n };\n}\nfunction trackInteractOutside(nodeOrFn, options) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof nodeOrFn === \"function\" ? nodeOrFn() : nodeOrFn;\n cleanups.push(trackInteractOutsideImpl(node, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\nfunction fireCustomEvent(el, type, init) {\n const win = el.ownerDocument.defaultView || window;\n const event = new win.CustomEvent(type, init);\n return el.dispatchEvent(event);\n}\n\nexport { trackInteractOutside };\n","import { raf, contains, getDocument, waitForElements, setStyle, addDomEvent, getEventTarget, isHTMLElement } from '@zag-js/dom-query';\nimport { trackInteractOutside } from '@zag-js/interact-outside';\nimport { isFunction, warn } from '@zag-js/utils';\n\n// src/dismissable-layer.ts\nfunction trackEscapeKeydown(node, fn) {\n const handleKeyDown = (event) => {\n if (event.key !== \"Escape\") return;\n if (event.isComposing) return;\n fn?.(event);\n };\n return addDomEvent(getDocument(node), \"keydown\", handleKeyDown, { capture: true });\n}\nvar layerStack = {\n layers: [],\n branches: [],\n count() {\n return this.layers.length;\n },\n pointerBlockingLayers() {\n return this.layers.filter((layer) => layer.pointerBlocking);\n },\n topMostPointerBlockingLayer() {\n return [...this.pointerBlockingLayers()].slice(-1)[0];\n },\n hasPointerBlockingLayer() {\n return this.pointerBlockingLayers().length > 0;\n },\n isBelowPointerBlockingLayer(node) {\n const index = this.indexOf(node);\n const highestBlockingIndex = this.topMostPointerBlockingLayer() ? this.indexOf(this.topMostPointerBlockingLayer()?.node) : -1;\n return index < highestBlockingIndex;\n },\n isTopMost(node) {\n const layer = this.layers[this.count() - 1];\n return layer?.node === node;\n },\n getNestedLayers(node) {\n return Array.from(this.layers).slice(this.indexOf(node) + 1);\n },\n isInNestedLayer(node, target) {\n return this.getNestedLayers(node).some((layer) => contains(layer.node, target));\n },\n isInBranch(target) {\n return Array.from(this.branches).some((branch) => contains(branch, target));\n },\n add(layer) {\n const num = this.layers.push(layer);\n layer.node.style.setProperty(\"--layer-index\", `${num}`);\n },\n addBranch(node) {\n this.branches.push(node);\n },\n remove(node) {\n const index = this.indexOf(node);\n if (index < 0) return;\n if (index < this.count() - 1) {\n const _layers = this.getNestedLayers(node);\n _layers.forEach((layer) => layer.dismiss());\n }\n this.layers.splice(index, 1);\n node.style.removeProperty(\"--layer-index\");\n },\n removeBranch(node) {\n const index = this.branches.indexOf(node);\n if (index >= 0) this.branches.splice(index, 1);\n },\n indexOf(node) {\n return this.layers.findIndex((layer) => layer.node === node);\n },\n dismiss(node) {\n this.layers[this.indexOf(node)]?.dismiss();\n },\n clear() {\n this.remove(this.layers[0].node);\n }\n};\nvar originalBodyPointerEvents;\nfunction assignPointerEventToLayers() {\n layerStack.layers.forEach(({ node }) => {\n node.style.pointerEvents = layerStack.isBelowPointerBlockingLayer(node) ? \"none\" : \"auto\";\n });\n}\nfunction clearPointerEvent(node) {\n node.style.pointerEvents = \"\";\n}\nfunction disablePointerEventsOutside(node, persistentElements) {\n const doc = getDocument(node);\n const cleanups = [];\n if (layerStack.hasPointerBlockingLayer() && !doc.body.hasAttribute(\"data-inert\")) {\n originalBodyPointerEvents = document.body.style.pointerEvents;\n queueMicrotask(() => {\n doc.body.style.pointerEvents = \"none\";\n doc.body.setAttribute(\"data-inert\", \"\");\n });\n }\n if (persistentElements) {\n const persistedCleanup = waitForElements(persistentElements, (el) => {\n cleanups.push(setStyle(el, { pointerEvents: \"auto\" }));\n });\n cleanups.push(persistedCleanup);\n }\n return () => {\n if (layerStack.hasPointerBlockingLayer()) return;\n queueMicrotask(() => {\n doc.body.style.pointerEvents = originalBodyPointerEvents;\n doc.body.removeAttribute(\"data-inert\");\n if (doc.body.style.length === 0) doc.body.removeAttribute(\"style\");\n });\n cleanups.forEach((fn) => fn());\n };\n}\n\n// src/dismissable-layer.ts\nfunction trackDismissableElementImpl(node, options) {\n const { warnOnMissingNode = true } = options;\n if (warnOnMissingNode && !node) {\n warn(\"[@zag-js/dismissable] node is `null` or `undefined`\");\n return;\n }\n if (!node) {\n return;\n }\n const { onDismiss, pointerBlocking, exclude: excludeContainers, debug } = options;\n const layer = { dismiss: onDismiss, node, pointerBlocking };\n layerStack.add(layer);\n assignPointerEventToLayers();\n function onPointerDownOutside(event) {\n const target = getEventTarget(event.detail.originalEvent);\n if (layerStack.isBelowPointerBlockingLayer(node) || layerStack.isInBranch(target)) return;\n options.onPointerDownOutside?.(event);\n options.onInteractOutside?.(event);\n if (event.defaultPrevented) return;\n if (debug) {\n console.log(\"onPointerDownOutside:\", event.detail.originalEvent);\n }\n onDismiss?.();\n }\n function onFocusOutside(event) {\n const target = getEventTarget(event.detail.originalEvent);\n if (layerStack.isInBranch(target)) return;\n options.onFocusOutside?.(event);\n options.onInteractOutside?.(event);\n if (event.defaultPrevented) return;\n if (debug) {\n console.log(\"onFocusOutside:\", event.detail.originalEvent);\n }\n onDismiss?.();\n }\n function onEscapeKeyDown(event) {\n if (!layerStack.isTopMost(node)) return;\n options.onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }\n function exclude(target) {\n if (!node) return false;\n const containers = typeof excludeContainers === \"function\" ? excludeContainers() : excludeContainers;\n const _containers = Array.isArray(containers) ? containers : [containers];\n const persistentElements = options.persistentElements?.map((fn) => fn()).filter(isHTMLElement);\n if (persistentElements) _containers.push(...persistentElements);\n return _containers.some((node2) => contains(node2, target)) || layerStack.isInNestedLayer(node, target);\n }\n const cleanups = [\n pointerBlocking ? disablePointerEventsOutside(node, options.persistentElements) : void 0,\n trackEscapeKeydown(node, onEscapeKeyDown),\n trackInteractOutside(node, { exclude, onFocusOutside, onPointerDownOutside, defer: options.defer })\n ];\n return () => {\n layerStack.remove(node);\n assignPointerEventToLayers();\n clearPointerEvent(node);\n cleanups.forEach((fn) => fn?.());\n };\n}\nfunction trackDismissableElement(nodeOrFn, options) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = isFunction(nodeOrFn) ? nodeOrFn() : nodeOrFn;\n cleanups.push(trackDismissableElementImpl(node, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\nfunction trackDismissableBranch(nodeOrFn, options = {}) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = isFunction(nodeOrFn) ? nodeOrFn() : nodeOrFn;\n if (!node) {\n warn(\"[@zag-js/dismissable] branch node is `null` or `undefined`\");\n return;\n }\n layerStack.addBranch(node);\n cleanups.push(() => {\n layerStack.removeBranch(node);\n });\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\nexport { trackDismissableBranch, trackDismissableElement };\n","'use client';\nimport { createContext } from './create-context.js';\nimport { createSplitProps } from './create-split-props.js';\n\nconst [RenderStrategyPropsProvider, useRenderStrategyPropsContext] = createContext({\n name: \"RenderStrategyContext\",\n hookName: \"useRenderStrategyContext\",\n providerName: \"<RenderStrategyPropsProvider />\"\n});\nconst splitRenderStrategyProps = (props) => createSplitProps()(props, [\"lazyMount\", \"unmountOnExit\"]);\n\nexport { RenderStrategyPropsProvider, splitRenderStrategyProps, useRenderStrategyPropsContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [CheckboxProvider, useCheckboxContext] = createContext({\n name: \"CheckboxContext\",\n hookName: \"useCheckboxContext\",\n providerName: \"<CheckboxProvider />\"\n});\n\nexport { CheckboxProvider, useCheckboxContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useCheckboxContext } from './use-checkbox-context.js';\n\nconst CheckboxControl = forwardRef((props, ref) => {\n const checkbox = useCheckboxContext();\n const mergedProps = mergeProps(checkbox.getControlProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nCheckboxControl.displayName = \"CheckboxControl\";\n\nexport { CheckboxControl };\n","import { getWindow, getDocument, getEventTarget, isVirtualClick, isMac } from '@zag-js/dom-query';\n\n// src/index.ts\nfunction isValidKey(e) {\n return !(e.metaKey || !isMac() && e.altKey || e.ctrlKey || e.key === \"Control\" || e.key === \"Shift\" || e.key === \"Meta\");\n}\nvar nonTextInputTypes = /* @__PURE__ */ new Set([\"checkbox\", \"radio\", \"range\", \"color\", \"file\", \"image\", \"button\", \"submit\", \"reset\"]);\nfunction isKeyboardFocusEvent(isTextInput, modality, e) {\n const target = e ? getEventTarget(e) : null;\n const win = getWindow(target);\n isTextInput = isTextInput || target instanceof win.HTMLInputElement && !nonTextInputTypes.has(target?.type) || target instanceof win.HTMLTextAreaElement || target instanceof win.HTMLElement && target.isContentEditable;\n return !(isTextInput && modality === \"keyboard\" && e instanceof win.KeyboardEvent && !Reflect.has(FOCUS_VISIBLE_INPUT_KEYS, e.key));\n}\nvar currentModality = null;\nvar changeHandlers = /* @__PURE__ */ new Set();\nvar listenerMap = /* @__PURE__ */ new Map();\nvar hasEventBeforeFocus = false;\nvar hasBlurredWindowRecently = false;\nvar FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\nfunction triggerChangeHandlers(modality, e) {\n for (let handler of changeHandlers) {\n handler(modality, e);\n }\n}\nfunction handleKeyboardEvent(e) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = \"keyboard\";\n triggerChangeHandlers(\"keyboard\", e);\n }\n}\nfunction handlePointerEvent(e) {\n currentModality = \"pointer\";\n if (e.type === \"mousedown\" || e.type === \"pointerdown\") {\n hasEventBeforeFocus = true;\n triggerChangeHandlers(\"pointer\", e);\n }\n}\nfunction handleClickEvent(e) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = \"virtual\";\n }\n}\nfunction handleFocusEvent(e) {\n const target = getEventTarget(e);\n if (target === getWindow(target) || target === getDocument(target)) {\n return;\n }\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = \"virtual\";\n triggerChangeHandlers(\"virtual\", e);\n }\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\nfunction handleWindowBlur() {\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\nfunction setupGlobalFocusEvents(root) {\n if (typeof window === \"undefined\" || listenerMap.get(getWindow(root))) {\n return;\n }\n const win = getWindow(root);\n const doc = getDocument(root);\n let focus = win.HTMLElement.prototype.focus;\n win.HTMLElement.prototype.focus = function() {\n currentModality = \"virtual\";\n triggerChangeHandlers(\"virtual\", null);\n hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n doc.addEventListener(\"keydown\", handleKeyboardEvent, true);\n doc.addEventListener(\"keyup\", handleKeyboardEvent, true);\n doc.addEventListener(\"click\", handleClickEvent, true);\n win.addEventListener(\"focus\", handleFocusEvent, true);\n win.addEventListener(\"blur\", handleWindowBlur, false);\n if (typeof win.PointerEvent !== \"undefined\") {\n doc.addEventListener(\"pointerdown\", handlePointerEvent, true);\n doc.addEventListener(\"pointermove\", handlePointerEvent, true);\n doc.addEventListener(\"pointerup\", handlePointerEvent, true);\n } else {\n doc.addEventListener(\"mousedown\", handlePointerEvent, true);\n doc.addEventListener(\"mousemove\", handlePointerEvent, true);\n doc.addEventListener(\"mouseup\", handlePointerEvent, true);\n }\n win.addEventListener(\n \"beforeunload\",\n () => {\n tearDownWindowFocusTracking(root);\n },\n { once: true }\n );\n listenerMap.set(win, { focus });\n}\nvar tearDownWindowFocusTracking = (root, loadListener) => {\n const win = getWindow(root);\n const doc = getDocument(root);\n if (!listenerMap.has(win)) {\n return;\n }\n win.HTMLElement.prototype.focus = listenerMap.get(win).focus;\n doc.removeEventListener(\"keydown\", handleKeyboardEvent, true);\n doc.removeEventListener(\"keyup\", handleKeyboardEvent, true);\n doc.removeEventListener(\"click\", handleClickEvent, true);\n win.removeEventListener(\"focus\", handleFocusEvent, true);\n win.removeEventListener(\"blur\", handleWindowBlur, false);\n if (typeof win.PointerEvent !== \"undefined\") {\n doc.removeEventListener(\"pointerdown\", handlePointerEvent, true);\n doc.removeEventListener(\"pointermove\", handlePointerEvent, true);\n doc.removeEventListener(\"pointerup\", handlePointerEvent, true);\n } else {\n doc.removeEventListener(\"mousedown\", handlePointerEvent, true);\n doc.removeEventListener(\"mousemove\", handlePointerEvent, true);\n doc.removeEventListener(\"mouseup\", handlePointerEvent, true);\n }\n listenerMap.delete(win);\n};\nfunction getInteractionModality() {\n return currentModality;\n}\nfunction setInteractionModality(modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\nfunction trackInteractionModality(props) {\n const { onChange, root } = props;\n setupGlobalFocusEvents(root);\n onChange({ modality: currentModality });\n const handler = () => onChange({ modality: currentModality });\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n}\nfunction isFocusVisible() {\n return currentModality === \"keyboard\";\n}\nfunction trackFocusVisible(props = {}) {\n const { isTextInput, autoFocus, onChange, root } = props;\n setupGlobalFocusEvents(root);\n onChange?.({ isFocusVisible: autoFocus || isFocusVisible(), modality: currentModality });\n const handler = (modality, e) => {\n if (!isKeyboardFocusEvent(!!isTextInput, modality, e)) return;\n onChange?.({ isFocusVisible: isFocusVisible(), modality });\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n}\n\nexport { getInteractionModality, isFocusVisible, listenerMap, setInteractionModality, trackFocusVisible, trackInteractionModality };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { dispatchInputCheckedEvent, setElementChecked, trackFormControl, trackPress, dataAttr, visuallyHiddenStyle, getEventTarget } from '@zag-js/dom-query';\nimport { trackFocusVisible, isFocusVisible } from '@zag-js/focus-visible';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/checkbox.anatomy.ts\nvar anatomy = createAnatomy(\"checkbox\").parts(\"root\", \"label\", \"control\", \"indicator\");\nvar parts = anatomy.build();\n\n// src/checkbox.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `checkbox:${ctx.id}`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `checkbox:${ctx.id}:label`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `checkbox:${ctx.id}:control`;\nvar getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `checkbox:${ctx.id}:input`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));\n\n// src/checkbox.connect.ts\nfunction connect(service, normalize) {\n const { send, context, prop, computed, scope } = service;\n const disabled = prop(\"disabled\");\n const readOnly = prop(\"readOnly\");\n const invalid = prop(\"invalid\");\n const focused = !disabled && context.get(\"focused\");\n const focusVisible = !disabled && context.get(\"focusVisible\");\n const checked = computed(\"checked\");\n const indeterminate = computed(\"indeterminate\");\n const dataAttrs = {\n \"data-active\": dataAttr(context.get(\"active\")),\n \"data-focus\": dataAttr(focused),\n \"data-focus-visible\": dataAttr(focusVisible),\n \"data-readonly\": dataAttr(readOnly),\n \"data-hover\": dataAttr(context.get(\"hovered\")),\n \"data-disabled\": dataAttr(disabled),\n \"data-state\": indeterminate ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\",\n \"data-invalid\": dataAttr(invalid)\n };\n return {\n checked,\n disabled,\n indeterminate,\n focused,\n checkedState: checked,\n setChecked(checked2) {\n send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: false });\n },\n toggleChecked() {\n send({ type: \"CHECKED.TOGGLE\", checked, isTrusted: false });\n },\n getRootProps() {\n return normalize.label({\n ...parts.root.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n htmlFor: getHiddenInputId(scope),\n onPointerMove() {\n if (disabled) return;\n send({ type: \"CONTEXT.SET\", context: { hovered: true } });\n },\n onPointerLeave() {\n if (disabled) return;\n send({ type: \"CONTEXT.SET\", context: { hovered: false } });\n },\n onClick(event) {\n const target = getEventTarget(event);\n if (target === getHiddenInputEl(scope)) {\n event.stopPropagation();\n }\n }\n });\n },\n getLabelProps() {\n return normalize.element({\n ...parts.label.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getLabelId(scope)\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getControlId(scope),\n \"aria-hidden\": true\n });\n },\n getIndicatorProps() {\n return normalize.element({\n ...parts.indicator.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n hidden: !indeterminate && !checked\n });\n },\n getHiddenInputProps() {\n return normalize.input({\n id: getHiddenInputId(scope),\n type: \"checkbox\",\n required: prop(\"required\"),\n defaultChecked: checked,\n disabled,\n \"aria-labelledby\": getLabelId(scope),\n \"aria-invalid\": invalid,\n name: prop(\"name\"),\n form: prop(\"form\"),\n value: prop(\"value\"),\n style: visuallyHiddenStyle,\n onFocus() {\n const focusVisible2 = isFocusVisible();\n send({ type: \"CONTEXT.SET\", context: { focused: true, focusVisible: focusVisible2 } });\n },\n onBlur() {\n send({ type: \"CONTEXT.SET\", context: { focused: false, focusVisible: false } });\n },\n onClick(event) {\n if (readOnly) {\n event.preventDefault();\n return;\n }\n const checked2 = event.currentTarget.checked;\n send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: true });\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n value: \"on\",\n ...props2,\n defaultChecked: !!props2.defaultChecked\n };\n },\n initialState() {\n return \"ready\";\n },\n context({ prop, bindable }) {\n return {\n checked: bindable(() => ({\n defaultValue: prop(\"defaultChecked\"),\n value: prop(\"checked\"),\n onChange(checked) {\n prop(\"onCheckedChange\")?.({ checked });\n }\n })),\n fieldsetDisabled: bindable(() => ({ defaultValue: false })),\n focusVisible: bindable(() => ({ defaultValue: false })),\n active: bindable(() => ({ defaultValue: false })),\n focused: bindable(() => ({ defaultValue: false })),\n hovered: bindable(() => ({ defaultValue: false }))\n };\n },\n watch({ track, context, prop, action }) {\n track([() => prop(\"disabled\")], () => {\n action([\"removeFocusIfNeeded\"]);\n });\n track([() => context.get(\"checked\")], () => {\n action([\"syncInputElement\"]);\n });\n },\n effects: [\"trackFormControlState\", \"trackPressEvent\", \"trackFocusVisible\"],\n on: {\n \"CHECKED.TOGGLE\": [\n {\n guard: not(\"isTrusted\"),\n actions: [\"toggleChecked\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"toggleChecked\"]\n }\n ],\n \"CHECKED.SET\": [\n {\n guard: not(\"isTrusted\"),\n actions: [\"setChecked\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"setChecked\"]\n }\n ],\n \"CONTEXT.SET\": {\n actions: [\"setContext\"]\n }\n },\n computed: {\n indeterminate: ({ context }) => isIndeterminate(context.get(\"checked\")),\n checked: ({ context }) => isChecked(context.get(\"checked\")),\n disabled: ({ context, prop }) => !!prop(\"disabled\") || context.get(\"fieldsetDisabled\")\n },\n states: {\n ready: {}\n },\n implementations: {\n guards: {\n isTrusted: ({ event }) => !!event.isTrusted\n },\n effects: {\n trackPressEvent({ context, computed, scope }) {\n if (computed(\"disabled\")) return;\n return trackPress({\n pointerNode: getRootEl(scope),\n keyboardNode: getHiddenInputEl(scope),\n isValidKey: (event) => event.key === \" \",\n onPress: () => context.set(\"active\", false),\n onPressStart: () => context.set(\"active\", true),\n onPressEnd: () => context.set(\"active\", false)\n });\n },\n trackFocusVisible({ computed, scope }) {\n if (computed(\"disabled\")) return;\n return trackFocusVisible({ root: scope.getRootNode?.() });\n },\n trackFormControlState({ context, scope }) {\n return trackFormControl(getHiddenInputEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n context.set(\"checked\", context.initial(\"checked\"));\n }\n });\n }\n },\n actions: {\n setContext({ context, event }) {\n for (const key in event.context) {\n context.set(key, event.context[key]);\n }\n },\n syncInputElement({ context, computed, scope }) {\n const inputEl = getHiddenInputEl(scope);\n if (!inputEl) return;\n setElementChecked(inputEl, computed(\"checked\"));\n inputEl.indeterminate = isIndeterminate(context.get(\"checked\"));\n },\n removeFocusIfNeeded({ context, prop }) {\n if (prop(\"disabled\") && context.get(\"focused\")) {\n context.set(\"focused\", false);\n context.set(\"focusVisible\", false);\n }\n },\n setChecked({ context, event }) {\n context.set(\"checked\", event.checked);\n },\n toggleChecked({ context, computed }) {\n const checked = isIndeterminate(computed(\"checked\")) ? true : !computed(\"checked\");\n context.set(\"checked\", checked);\n },\n dispatchChangeEvent({ computed, scope }) {\n queueMicrotask(() => {\n const inputEl = getHiddenInputEl(scope);\n dispatchInputCheckedEvent(inputEl, { checked: computed(\"checked\") });\n });\n }\n }\n }\n});\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction isChecked(checked) {\n return isIndeterminate(checked) ? false : !!checked;\n}\nvar props = createProps()([\n \"defaultChecked\",\n \"checked\",\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"name\",\n \"onCheckedChange\",\n \"readOnly\",\n \"required\",\n \"value\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport { anatomy } from '@zag-js/checkbox';\n\nconst checkboxAnatomy = anatomy.extendWith(\"group\");\n\nexport { checkboxAnatomy };\n","'use client';\nimport { useState, useCallback } from 'react';\n\nfunction useControllableState(props) {\n const { value, onChange, defaultValue } = props;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const controlled = value !== void 0;\n const currentValue = controlled ? value : uncontrolledValue;\n const setValue = useCallback(\n (value2) => {\n if (controlled) {\n return onChange?.(value2);\n }\n setUncontrolledValue(value2);\n return onChange?.(value2);\n },\n [controlled, onChange]\n );\n return [currentValue, setValue];\n}\n\nexport { useControllableState };\n","'use client';\nimport { useCallback, useRef } from 'react';\n\nfunction useEvent(callback, opts = {}) {\n const { sync = false } = opts;\n const callbackRef = useLatestRef(callback);\n return useCallback(\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n (...args) => {\n if (sync) return queueMicrotask(() => callbackRef.current?.(...args));\n return callbackRef.current?.(...args);\n },\n [sync, callbackRef]\n );\n}\nfunction useLatestRef(value) {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n}\n\nexport { useEvent };\n","'use client';\nimport { useControllableState } from '../../utils/use-controllable-state.js';\nimport { useEvent } from '../../utils/use-event.js';\n\nfunction useCheckboxGroup(props = {}) {\n const { defaultValue, value: controlledValue, onValueChange, disabled, readOnly, name, invalid } = props;\n const interactive = !(disabled || readOnly);\n const onChangeProp = useEvent(onValueChange, { sync: true });\n const [value, setValue] = useControllableState({\n value: controlledValue,\n defaultValue: defaultValue || [],\n onChange: onChangeProp\n });\n const isChecked = (val) => {\n return value.some((v) => String(v) === String(val));\n };\n const toggleValue = (val) => {\n isChecked(val) ? removeValue(val) : addValue(val);\n };\n const addValue = (val) => {\n if (!interactive) return;\n if (isChecked(val)) return;\n setValue(value.concat(val));\n };\n const removeValue = (val) => {\n if (!interactive) return;\n setValue(value.filter((v) => String(v) !== String(val)));\n };\n const getItemProps = (props2) => {\n return {\n checked: props2.value != null ? isChecked(props2.value) : void 0,\n onCheckedChange() {\n if (props2.value != null) {\n toggleValue(props2.value);\n }\n },\n name,\n disabled,\n readOnly,\n invalid\n };\n };\n return {\n isChecked,\n value,\n name,\n disabled: !!disabled,\n readOnly: !!readOnly,\n invalid: !!invalid,\n setValue,\n addValue,\n toggleValue,\n getItemProps\n };\n}\n\nexport { useCheckboxGroup };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [CheckboxGroupContextProvider, useCheckboxGroupContext] = createContext({\n name: \"CheckboxGroupContext\",\n hookName: \"useCheckboxGroupContext\",\n providerName: \"<CheckboxGroupProvider />\",\n strict: false\n});\n\nexport { CheckboxGroupContextProvider, useCheckboxGroupContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { checkboxAnatomy } from './checkbox.anatomy.js';\nimport { useCheckboxGroup } from './use-checkbox-group.js';\nimport { CheckboxGroupContextProvider } from './use-checkbox-group-context.js';\n\nconst CheckboxGroup = forwardRef((props, ref) => {\n const [checkboxGroupProps, localProps] = createSplitProps()(props, [\n \"defaultValue\",\n \"value\",\n \"onValueChange\",\n \"disabled\",\n \"invalid\",\n \"readOnly\",\n \"name\"\n ]);\n const checkboxGroup = useCheckboxGroup(checkboxGroupProps);\n return /* @__PURE__ */ jsx(CheckboxGroupContextProvider, { value: checkboxGroup, children: /* @__PURE__ */ jsx(ark.div, { ref, role: \"group\", ...localProps, ...checkboxAnatomy.build().group.attrs }) });\n});\nCheckboxGroup.displayName = \"CheckboxGroup\";\n\nexport { CheckboxGroup };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [FieldProvider, useFieldContext] = createContext({\n name: \"FieldContext\",\n hookName: \"useFieldContext\",\n providerName: \"<FieldProvider />\",\n strict: false\n});\n\nexport { FieldProvider, useFieldContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from '../field/use-field-context.js';\nimport { useCheckboxContext } from './use-checkbox-context.js';\n\nconst CheckboxHiddenInput = forwardRef((props, ref) => {\n const checkbox = useCheckboxContext();\n const mergedProps = mergeProps(checkbox.getHiddenInputProps(), props);\n const field = useFieldContext();\n return /* @__PURE__ */ jsx(ark.input, { \"aria-describedby\": field?.ariaDescribedby, ...mergedProps, ref });\n});\nCheckboxHiddenInput.displayName = \"CheckboxHiddenInput\";\n\nexport { CheckboxHiddenInput };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useCheckboxContext } from './use-checkbox-context.js';\n\nconst CheckboxIndicator = forwardRef((props, ref) => {\n const { indeterminate, ...rest } = props;\n const checkbox = useCheckboxContext();\n const mergedProps = mergeProps(checkbox.getIndicatorProps(), rest);\n const isVisible = indeterminate ? checkbox.indeterminate : checkbox.checked;\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, hidden: !isVisible, ref });\n});\nCheckboxIndicator.displayName = \"CheckboxIndicator\";\n\nexport { CheckboxIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useCheckboxContext } from './use-checkbox-context.js';\n\nconst CheckboxLabel = forwardRef((props, ref) => {\n const checkbox = useCheckboxContext();\n const mergedProps = mergeProps(checkbox.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nCheckboxLabel.displayName = \"CheckboxLabel\";\n\nexport { CheckboxLabel };\n","'use client';\nimport * as checkbox from '@zag-js/checkbox';\nimport { mergeProps, useMachine, normalizeProps } from '@zag-js/react';\nimport { useMemo, useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\nimport { useFieldContext } from '../field/use-field-context.js';\nimport { useCheckboxGroupContext } from './use-checkbox-group-context.js';\n\nconst useCheckbox = (ownProps = {}) => {\n const checkboxGroup = useCheckboxGroupContext();\n const field = useFieldContext();\n const props = useMemo(() => {\n return mergeProps(ownProps, checkboxGroup?.getItemProps({ value: ownProps.value }) ?? {});\n }, [ownProps, checkboxGroup]);\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n ids: {\n label: field?.ids.label,\n hiddenInput: field?.ids.control\n },\n dir,\n disabled: field?.disabled,\n readOnly: field?.readOnly,\n invalid: field?.invalid,\n required: field?.required,\n getRootNode,\n ...props\n };\n const service = useMachine(checkbox.machine, machineProps);\n return checkbox.connect(service, normalizeProps);\n};\n\nexport { useCheckbox };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useCheckbox } from './use-checkbox.js';\nimport { CheckboxProvider } from './use-checkbox-context.js';\n\nconst CheckboxRoot = forwardRef((props, ref) => {\n const [useCheckboxProps, localProps] = createSplitProps()(props, [\n \"checked\",\n \"defaultChecked\",\n \"disabled\",\n \"form\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"name\",\n \"onCheckedChange\",\n \"readOnly\",\n \"required\",\n \"value\"\n ]);\n const checkbox = useCheckbox(useCheckboxProps);\n const mergedProps = mergeProps(checkbox.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(CheckboxProvider, { value: checkbox, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) });\n});\nCheckboxRoot.displayName = \"CheckboxRoot\";\n\nexport { CheckboxRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { CheckboxProvider } from './use-checkbox-context.js';\n\nconst CheckboxRootProvider = forwardRef((props, ref) => {\n const [{ value: checkbox }, localProps] = createSplitProps()(props, [\"value\"]);\n const mergedProps = mergeProps(checkbox.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(CheckboxProvider, { value: checkbox, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) });\n});\nCheckboxRootProvider.displayName = \"CheckboxRootProvider\";\n\nexport { CheckboxRootProvider };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [PresenceProvider, usePresenceContext] = createContext({\n name: \"PresenceContext\",\n hookName: \"usePresenceContext\",\n providerName: \"<PresenceProvider />\"\n});\n\nexport { PresenceProvider, usePresenceContext };\n","'use client';\nimport { createSplitProps } from '../../utils/create-split-props.js';\n\nconst splitPresenceProps = (props) => createSplitProps()(props, [\n \"immediate\",\n \"lazyMount\",\n \"onExitComplete\",\n \"present\",\n \"skipAnimationOnMount\",\n \"unmountOnExit\"\n]);\n\nexport { splitPresenceProps };\n","import { setStyle, nextTick, raf, getComputedStyle, getEventTarget } from '@zag-js/dom-query';\nimport { createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/presence.connect.ts\nfunction connect(service, _normalize) {\n const { state, send, context } = service;\n const present = state.matches(\"mounted\", \"unmountSuspended\");\n return {\n skip: !context.get(\"initial\"),\n present,\n setNode(node) {\n if (!node) return;\n send({ type: \"NODE.SET\", node });\n },\n unmount() {\n send({ type: \"UNMOUNT\" });\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2 }) {\n return { ...props2, present: !!props2.present };\n },\n initialState({ prop }) {\n return prop(\"present\") ? \"mounted\" : \"unmounted\";\n },\n refs() {\n return {\n node: null,\n styles: null\n };\n },\n context({ bindable }) {\n return {\n unmountAnimationName: bindable(() => ({ defaultValue: null })),\n prevAnimationName: bindable(() => ({ defaultValue: null })),\n present: bindable(() => ({ defaultValue: false })),\n initial: bindable(() => ({\n sync: true,\n defaultValue: false\n }))\n };\n },\n exit: [\"clearInitial\", \"cleanupNode\"],\n watch({ track, action, prop }) {\n track([() => prop(\"present\")], () => {\n action([\"setInitial\", \"syncPresence\"]);\n });\n },\n on: {\n \"NODE.SET\": {\n actions: [\"setNode\", \"setStyles\"]\n }\n },\n states: {\n mounted: {\n on: {\n UNMOUNT: {\n target: \"unmounted\",\n actions: [\"clearPrevAnimationName\", \"invokeOnExitComplete\"]\n },\n \"UNMOUNT.SUSPEND\": {\n target: \"unmountSuspended\"\n }\n }\n },\n unmountSuspended: {\n effects: [\"trackAnimationEvents\"],\n on: {\n MOUNT: {\n target: \"mounted\",\n actions: [\"setPrevAnimationName\"]\n },\n UNMOUNT: {\n target: \"unmounted\",\n actions: [\"clearPrevAnimationName\", \"invokeOnExitComplete\"]\n }\n }\n },\n unmounted: {\n on: {\n MOUNT: {\n target: \"mounted\",\n actions: [\"setPrevAnimationName\"]\n }\n }\n }\n },\n implementations: {\n actions: {\n setInitial: ({ context }) => {\n if (context.get(\"initial\")) return;\n queueMicrotask(() => {\n context.set(\"initial\", true);\n });\n },\n clearInitial: ({ context }) => {\n context.set(\"initial\", false);\n },\n cleanupNode: ({ refs }) => {\n refs.set(\"node\", null);\n refs.set(\"styles\", null);\n },\n invokeOnExitComplete: ({ prop }) => {\n prop(\"onExitComplete\")?.();\n },\n setNode: ({ refs, event }) => {\n refs.set(\"node\", event.node);\n },\n setStyles: ({ refs, event }) => {\n refs.set(\"styles\", getComputedStyle(event.node));\n },\n syncPresence: ({ context, refs, send, prop }) => {\n const presentProp = prop(\"present\");\n if (presentProp) {\n return send({ type: \"MOUNT\", src: \"presence.changed\" });\n }\n const node = refs.get(\"node\");\n if (!presentProp && node?.ownerDocument.visibilityState === \"hidden\") {\n return send({ type: \"UNMOUNT\", src: \"visibilitychange\" });\n }\n raf(() => {\n const animationName = getAnimationName(refs.get(\"styles\"));\n context.set(\"unmountAnimationName\", animationName);\n if (animationName === \"none\" || animationName === context.get(\"prevAnimationName\") || refs.get(\"styles\")?.display === \"none\" || refs.get(\"styles\")?.animationDuration === \"0s\") {\n send({ type: \"UNMOUNT\", src: \"presence.changed\" });\n } else {\n send({ type: \"UNMOUNT.SUSPEND\" });\n }\n });\n },\n setPrevAnimationName: ({ context, refs }) => {\n raf(() => {\n context.set(\"prevAnimationName\", getAnimationName(refs.get(\"styles\")));\n });\n },\n clearPrevAnimationName: ({ context }) => {\n context.set(\"prevAnimationName\", null);\n }\n },\n effects: {\n trackAnimationEvents: ({ context, refs, send }) => {\n const node = refs.get(\"node\");\n if (!node) return;\n const onStart = (event) => {\n const target = event.composedPath?.()?.[0] ?? event.target;\n if (target === node) {\n context.set(\"prevAnimationName\", getAnimationName(refs.get(\"styles\")));\n }\n };\n const onEnd = (event) => {\n const animationName = getAnimationName(refs.get(\"styles\"));\n const target = getEventTarget(event);\n if (target === node && animationName === context.get(\"unmountAnimationName\")) {\n send({ type: \"UNMOUNT\", src: \"animationend\" });\n }\n };\n node.addEventListener(\"animationstart\", onStart);\n node.addEventListener(\"animationcancel\", onEnd);\n node.addEventListener(\"animationend\", onEnd);\n const cleanupStyles = setStyle(node, { animationFillMode: \"forwards\" });\n return () => {\n node.removeEventListener(\"animationstart\", onStart);\n node.removeEventListener(\"animationcancel\", onEnd);\n node.removeEventListener(\"animationend\", onEnd);\n nextTick(() => cleanupStyles());\n };\n }\n }\n }\n});\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nvar props = createProps()([\"onExitComplete\", \"present\", \"immediate\"]);\n\nexport { connect, machine, props };\n","'use client';\nimport * as presence from '@zag-js/presence';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useRef } from 'react';\nimport { useEvent } from '../../utils/use-event.js';\n\nconst usePresence = (props = {}) => {\n const { lazyMount, unmountOnExit, present, skipAnimationOnMount = false, ...rest } = props;\n const wasEverPresent = useRef(false);\n const machineProps = {\n ...rest,\n present,\n onExitComplete: useEvent(props.onExitComplete)\n };\n const service = useMachine(presence.machine, machineProps);\n const api = presence.connect(service, normalizeProps);\n if (api.present) {\n wasEverPresent.current = true;\n }\n const unmounted = !api.present && !wasEverPresent.current && lazyMount || unmountOnExit && !api.present && wasEverPresent.current;\n const getPresenceProps = () => ({\n \"data-state\": api.skip && skipAnimationOnMount ? void 0 : present ? \"open\" : \"closed\",\n hidden: !api.present\n });\n return {\n ref: api.setNode,\n getPresenceProps,\n present: api.present,\n unmounted\n };\n};\n\nexport { usePresence };\n","import { compact, isEqual, chunk, prevIndex, nextIndex, isObject, hasProp } from '@zag-js/utils';\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar fallback = {\n itemToValue(item) {\n if (typeof item === \"string\") return item;\n if (isObject(item) && hasProp(item, \"value\")) return item.value;\n return \"\";\n },\n itemToString(item) {\n if (typeof item === \"string\") return item;\n if (isObject(item) && hasProp(item, \"label\")) return item.label;\n return fallback.itemToValue(item);\n },\n isItemDisabled(item) {\n if (isObject(item) && hasProp(item, \"disabled\")) return !!item.disabled;\n return false;\n }\n};\nvar ListCollection = class _ListCollection {\n constructor(options) {\n this.options = options;\n /**\n * The items in the collection\n */\n __publicField(this, \"items\");\n __publicField(this, \"copy\", (items) => {\n return new _ListCollection({ ...this.options, items: items ?? [...this.items] });\n });\n __publicField(this, \"isEqual\", (other) => {\n return isEqual(this.items, other.items);\n });\n /**\n * Function to update the collection items\n */\n __publicField(this, \"setItems\", (items) => {\n return this.copy(items);\n });\n /**\n * Returns all the values in the collection\n */\n __publicField(this, \"getValues\", (items = this.items) => {\n return Array.from(items).map((item) => this.getItemValue(item)).filter(Boolean);\n });\n /**\n * Get the item based on its value\n */\n __publicField(this, \"find\", (value) => {\n if (value == null) return null;\n const index = this.items.findIndex((item) => this.getItemValue(item) === value);\n return index != null ? this.items[index] : null;\n });\n /**\n * Get the items based on its values\n */\n __publicField(this, \"findMany\", (values) => {\n return Array.from(values).map((value) => this.find(value)).filter((item) => item != null);\n });\n /**\n * Get the item based on its index\n */\n __publicField(this, \"at\", (index) => {\n return this.items[index] ?? null;\n });\n __publicField(this, \"sortFn\", (valueA, valueB) => {\n const indexA = this.indexOf(valueA);\n const indexB = this.indexOf(valueB);\n return (indexA ?? 0) - (indexB ?? 0);\n });\n /**\n * Sort the values based on their index\n */\n __publicField(this, \"sort\", (values) => {\n return [...values].sort(this.sortFn.bind(this));\n });\n /**\n * Convert an item to a value\n */\n __publicField(this, \"getItemValue\", (item) => {\n if (item == null) return null;\n return this.options.itemToValue?.(item) ?? fallback.itemToValue(item);\n });\n /**\n * Whether an item is disabled\n */\n __publicField(this, \"getItemDisabled\", (item) => {\n if (item == null) return false;\n return this.options.isItemDisabled?.(item) ?? fallback.isItemDisabled(item);\n });\n /**\n * Convert an item to a string\n */\n __publicField(this, \"stringifyItem\", (item) => {\n if (item == null) return null;\n return this.options.itemToString?.(item) ?? fallback.itemToString(item);\n });\n /**\n * Convert a value to a string\n */\n __publicField(this, \"stringify\", (value) => {\n if (value == null) return null;\n return this.stringifyItem(this.find(value));\n });\n /**\n * Convert an array of items to a string\n */\n __publicField(this, \"stringifyItems\", (items, separator = \", \") => {\n return Array.from(items).map((item) => this.stringifyItem(item)).filter(Boolean).join(separator);\n });\n /**\n * Convert an array of items to a string\n */\n __publicField(this, \"stringifyMany\", (value, separator) => {\n return this.stringifyItems(this.findMany(value), separator);\n });\n /**\n * Whether the collection has a value\n */\n __publicField(this, \"has\", (value) => {\n return this.indexOf(value) !== -1;\n });\n /**\n * Whether the collection has an item\n */\n __publicField(this, \"hasItem\", (item) => {\n if (item == null) return false;\n return this.has(this.getItemValue(item));\n });\n /**\n * Returns the next value in the collection\n */\n __publicField(this, \"getNextValue\", (value, step = 1, clamp = false) => {\n let index = this.indexOf(value);\n if (index === -1) return null;\n index = clamp ? Math.min(index + step, this.size - 1) : index + step;\n while (index <= this.size && this.getItemDisabled(this.at(index))) index++;\n return this.getItemValue(this.at(index));\n });\n /**\n * Returns the previous value in the collection\n */\n __publicField(this, \"getPreviousValue\", (value, step = 1, clamp = false) => {\n let index = this.indexOf(value);\n if (index === -1) return null;\n index = clamp ? Math.max(index - step, 0) : index - step;\n while (index >= 0 && this.getItemDisabled(this.at(index))) index--;\n return this.getItemValue(this.at(index));\n });\n /**\n * Get the index of an item based on its key\n */\n __publicField(this, \"indexOf\", (value) => {\n if (value == null) return -1;\n return this.items.findIndex((item) => this.getItemValue(item) === value);\n });\n __publicField(this, \"getByText\", (text, current) => {\n let items = current != null ? wrap(this.items, this.indexOf(current)) : this.items;\n const isSingleKey = text.length === 1;\n if (isSingleKey) items = items.filter((item) => this.getItemValue(item) !== current);\n return items.find((item) => match(this.stringifyItem(item), text));\n });\n /**\n * Search for a value based on a query\n */\n __publicField(this, \"search\", (queryString, options) => {\n const { state, currentValue, timeout = 350 } = options;\n const search = state.keysSoFar + queryString;\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const query = isRepeated ? search[0] : search;\n const item = this.getByText(query, currentValue);\n const value = this.getItemValue(item);\n function cleanup() {\n clearTimeout(state.timer);\n state.timer = -1;\n }\n function update(value2) {\n state.keysSoFar = value2;\n cleanup();\n if (value2 !== \"\") {\n state.timer = +setTimeout(() => {\n update(\"\");\n cleanup();\n }, timeout);\n }\n }\n update(search);\n return value;\n });\n __publicField(this, \"update\", (value, item) => {\n let index = this.items.findIndex((item2) => this.getItemValue(item2) === value);\n if (index === -1) return this;\n return this.copy([...this.items.slice(0, index), item, ...this.items.slice(index + 1)]);\n });\n __publicField(this, \"insert\", (index, ...items) => {\n return this.copy(insert(this.items, index, ...items));\n });\n __publicField(this, \"insertBefore\", (value, ...items) => {\n let toIndex = this.indexOf(value);\n if (toIndex === -1) {\n if (this.items.length === 0) toIndex = 0;\n else return this;\n }\n return this.copy(insert(this.items, toIndex, ...items));\n });\n __publicField(this, \"insertAfter\", (value, ...items) => {\n let toIndex = this.indexOf(value);\n if (toIndex === -1) {\n if (this.items.length === 0) toIndex = 0;\n else return this;\n }\n return this.copy(insert(this.items, toIndex + 1, ...items));\n });\n __publicField(this, \"prepend\", (...items) => {\n return this.copy(insert(this.items, 0, ...items));\n });\n __publicField(this, \"append\", (...items) => {\n return this.copy(insert(this.items, this.items.length, ...items));\n });\n __publicField(this, \"remove\", (...itemsOrValues) => {\n const values = itemsOrValues.map(\n (itemOrValue) => typeof itemOrValue === \"string\" ? itemOrValue : this.getItemValue(itemOrValue)\n );\n return this.copy(\n this.items.filter((item) => {\n const value = this.getItemValue(item);\n if (value == null) return false;\n return !values.includes(value);\n })\n );\n });\n __publicField(this, \"move\", (value, toIndex) => {\n const fromIndex = this.indexOf(value);\n if (fromIndex === -1) return this;\n return this.copy(move(this.items, [fromIndex], toIndex));\n });\n __publicField(this, \"reorder\", (fromIndex, toIndex) => {\n return this.copy(move(this.items, [fromIndex], toIndex));\n });\n __publicField(this, \"compareValue\", (a, b) => {\n const indexA = this.indexOf(a);\n const indexB = this.indexOf(b);\n if (indexA < indexB) return -1;\n if (indexA > indexB) return 1;\n return 0;\n });\n __publicField(this, \"range\", (from, to) => {\n let keys = [];\n let key = from;\n while (key != null) {\n let item = this.find(key);\n if (item) keys.push(key);\n if (key === to) return keys;\n key = this.getNextValue(key);\n }\n return [];\n });\n __publicField(this, \"getValueRange\", (from, to) => {\n if (from && to) {\n if (this.compareValue(from, to) <= 0) {\n return this.range(from, to);\n }\n return this.range(to, from);\n }\n return [];\n });\n __publicField(this, \"toString\", () => {\n let result = \"\";\n for (const item of this.items) {\n const value = this.getItemValue(item);\n const label = this.stringifyItem(item);\n const disabled = this.getItemDisabled(item);\n const itemString = [value, label, disabled].filter(Boolean).join(\":\");\n result += itemString + \",\";\n }\n return result;\n });\n __publicField(this, \"toJSON\", () => {\n return {\n size: this.size,\n first: this.firstValue,\n last: this.lastValue\n };\n });\n this.items = [...options.items];\n }\n /**\n * Returns the number of items in the collection\n */\n get size() {\n return this.items.length;\n }\n /**\n * Returns the first value in the collection\n */\n get firstValue() {\n let index = 0;\n while (this.getItemDisabled(this.at(index))) index++;\n return this.getItemValue(this.at(index));\n }\n /**\n * Returns the last value in the collection\n */\n get lastValue() {\n let index = this.size - 1;\n while (this.getItemDisabled(this.at(index))) index--;\n return this.getItemValue(this.at(index));\n }\n *[Symbol.iterator]() {\n yield* this.items;\n }\n};\nvar match = (label, query) => {\n return !!label?.toLowerCase().startsWith(query.toLowerCase());\n};\nvar wrap = (v, idx) => {\n return v.map((_, index) => v[(Math.max(idx, 0) + index) % v.length]);\n};\nfunction isListCollection(v) {\n return v instanceof ListCollection;\n}\nfunction insert(items, index, ...values) {\n return [...items.slice(0, index), ...values, ...items.slice(index)];\n}\nfunction move(items, indices, toIndex) {\n indices = [...indices].sort((a, b) => a - b);\n const itemsToMove = indices.map((i) => items[i]);\n for (let i = indices.length - 1; i >= 0; i--) {\n items = [...items.slice(0, indices[i]), ...items.slice(indices[i] + 1)];\n }\n toIndex = Math.max(0, toIndex - indices.filter((i) => i < toIndex).length);\n return [...items.slice(0, toIndex), ...itemsToMove, ...items.slice(toIndex)];\n}\n\n// src/grid-collection.ts\nvar GridCollection = class extends ListCollection {\n constructor(options) {\n const { columnCount } = options;\n super(options);\n __publicField(this, \"columnCount\");\n /**\n * Returns the row data in the grid\n */\n __publicField(this, \"getRows\", () => {\n return chunk([...this.items], this.columnCount);\n });\n /**\n * Returns the number of rows in the grid\n */\n __publicField(this, \"getRowCount\", () => {\n return this.getRows().length;\n });\n /**\n * Returns the index of the specified row and column in the grid\n */\n __publicField(this, \"getCellIndex\", (row, column) => {\n return row * this.columnCount + column;\n });\n /**\n * Returns the item at the specified row and column in the grid\n */\n __publicField(this, \"getCell\", (row, column) => {\n return this.at(this.getCellIndex(row, column));\n });\n /**\n * Returns the row and column index for a given value\n */\n __publicField(this, \"getValueCell\", (value) => {\n const index = this.indexOf(value);\n if (index === -1) return null;\n const row = Math.floor(index / this.columnCount);\n const column = index % this.columnCount;\n return { row, column };\n });\n /**\n * Returns the value of the last enabled column in a row\n */\n __publicField(this, \"getLastEnabledColumnIndex\", (row) => {\n for (let col = this.columnCount - 1; col >= 0; col--) {\n const cell = this.getCell(row, col);\n if (cell && !this.getItemDisabled(cell)) {\n return col;\n }\n }\n return null;\n });\n /**\n * Returns the index of the first enabled column in a row\n */\n __publicField(this, \"getFirstEnabledColumnIndex\", (row) => {\n for (let col = 0; col < this.columnCount; col++) {\n const cell = this.getCell(row, col);\n if (cell && !this.getItemDisabled(cell)) {\n return col;\n }\n }\n return null;\n });\n /**\n * Returns the value of the previous row in the grid, based on the current value\n */\n __publicField(this, \"getPreviousRowValue\", (value, loop = false) => {\n const currentCell = this.getValueCell(value);\n if (currentCell === null) return null;\n const rows = this.getRows();\n const rowCount = this.getRowCount();\n let prevRowIndex = currentCell.row;\n let prevColumnIndex = currentCell.column;\n for (let i = 1; i <= rowCount; i++) {\n prevRowIndex = prevIndex(rows, prevRowIndex, { loop });\n const prevRow = rows[prevRowIndex];\n if (!prevRow) continue;\n const prevCell = prevRow[prevColumnIndex];\n if (!prevCell) {\n const lastColumnIndex = this.getLastEnabledColumnIndex(prevRowIndex);\n if (lastColumnIndex != null) {\n prevColumnIndex = lastColumnIndex;\n }\n }\n const cell = this.getCell(prevRowIndex, prevColumnIndex);\n if (!this.getItemDisabled(cell)) {\n return this.getItemValue(cell);\n }\n }\n return this.firstValue;\n });\n /**\n * Returns the value of the next row in the grid, based on the current value\n */\n __publicField(this, \"getNextRowValue\", (value, loop = false) => {\n const currentCell = this.getValueCell(value);\n if (currentCell === null) return null;\n const rows = this.getRows();\n const rowCount = this.getRowCount();\n let nextRowIndex = currentCell.row;\n let nextColumnIndex = currentCell.column;\n for (let i = 1; i <= rowCount; i++) {\n nextRowIndex = nextIndex(rows, nextRowIndex, { loop });\n const nextRow = rows[nextRowIndex];\n if (!nextRow) continue;\n const nextCell = nextRow[nextColumnIndex];\n if (!nextCell) {\n const lastColumnIndex = this.getLastEnabledColumnIndex(nextRowIndex);\n if (lastColumnIndex != null) {\n nextColumnIndex = lastColumnIndex;\n }\n }\n const cell = this.getCell(nextRowIndex, nextColumnIndex);\n if (!this.getItemDisabled(cell)) {\n return this.getItemValue(cell);\n }\n }\n return this.lastValue;\n });\n this.columnCount = columnCount;\n }\n};\nfunction isGridCollection(v) {\n return v instanceof GridCollection;\n}\n\n// src/tree-visit.ts\nfunction access(node, indexPath, options) {\n for (let i = 0; i < indexPath.length; i++) node = options.getChildren(node, indexPath.slice(i + 1))[indexPath[i]];\n return node;\n}\nfunction ancestorIndexPaths(indexPaths) {\n const sortedPaths = sortIndexPaths(indexPaths);\n const result = [];\n const seen = /* @__PURE__ */ new Set();\n for (const indexPath of sortedPaths) {\n const key = indexPath.join();\n if (!seen.has(key)) {\n seen.add(key);\n result.push(indexPath);\n }\n }\n return result;\n}\nfunction compareIndexPaths(a, b) {\n for (let i = 0; i < Math.min(a.length, b.length); i++) {\n if (a[i] < b[i]) return -1;\n if (a[i] > b[i]) return 1;\n }\n return a.length - b.length;\n}\nfunction sortIndexPaths(indexPaths) {\n return indexPaths.sort(compareIndexPaths);\n}\nfunction find(node, options) {\n let found;\n visit(node, {\n ...options,\n onEnter: (child, indexPath) => {\n if (options.predicate(child, indexPath)) {\n found = child;\n return \"stop\";\n }\n }\n });\n return found;\n}\nfunction findIndexPath(node, options) {\n let found;\n visit(node, {\n onEnter: (child, indexPath) => {\n if (options.predicate(child, indexPath)) {\n found = [...indexPath];\n return \"stop\";\n }\n },\n getChildren: options.getChildren\n });\n return found;\n}\nfunction reduce(node, options) {\n let result = options.initialResult;\n visit(node, {\n ...options,\n onEnter: (child, indexPath) => {\n result = options.nextResult(result, child, indexPath);\n }\n });\n return result;\n}\nfunction flatMap(node, options) {\n return reduce(node, {\n ...options,\n initialResult: [],\n nextResult: (result, child, indexPath) => {\n result.push(...options.transform(child, indexPath));\n return result;\n }\n });\n}\nfunction insertOperation(index, nodes) {\n return { type: \"insert\", index, nodes };\n}\nfunction removeOperation(indexes) {\n return { type: \"remove\", indexes };\n}\nfunction replaceOperation() {\n return { type: \"replace\" };\n}\nfunction splitIndexPath(indexPath) {\n return [indexPath.slice(0, -1), indexPath[indexPath.length - 1]];\n}\nfunction getInsertionOperations(indexPath, nodes, operations = /* @__PURE__ */ new Map()) {\n const [parentIndexPath, index] = splitIndexPath(indexPath);\n for (let i = parentIndexPath.length - 1; i >= 0; i--) {\n const parentKey = parentIndexPath.slice(0, i).join();\n switch (operations.get(parentKey)?.type) {\n case \"remove\":\n continue;\n }\n operations.set(parentKey, replaceOperation());\n }\n const operation = operations.get(parentIndexPath.join());\n switch (operation?.type) {\n case \"remove\":\n operations.set(parentIndexPath.join(), {\n type: \"removeThenInsert\",\n removeIndexes: operation.indexes,\n insertIndex: index,\n insertNodes: nodes\n });\n break;\n default:\n operations.set(parentIndexPath.join(), insertOperation(index, nodes));\n }\n return operations;\n}\nfunction getRemovalOperations(indexPaths) {\n const operations = /* @__PURE__ */ new Map();\n const indexesToRemove = /* @__PURE__ */ new Map();\n for (const indexPath of indexPaths) {\n const parentKey = indexPath.slice(0, -1).join();\n const value = indexesToRemove.get(parentKey) ?? [];\n value.push(indexPath[indexPath.length - 1]);\n indexesToRemove.set(\n parentKey,\n value.sort((a, b) => a - b)\n );\n }\n for (const indexPath of indexPaths) {\n for (let i = indexPath.length - 2; i >= 0; i--) {\n const parentKey = indexPath.slice(0, i).join();\n if (!operations.has(parentKey)) {\n operations.set(parentKey, replaceOperation());\n }\n }\n }\n for (const [parentKey, indexes] of indexesToRemove) {\n operations.set(parentKey, removeOperation(indexes));\n }\n return operations;\n}\nfunction getReplaceOperations(indexPath, node) {\n const operations = /* @__PURE__ */ new Map();\n const [parentIndexPath, index] = splitIndexPath(indexPath);\n for (let i = parentIndexPath.length - 1; i >= 0; i--) {\n const parentKey = parentIndexPath.slice(0, i).join();\n operations.set(parentKey, replaceOperation());\n }\n operations.set(parentIndexPath.join(), {\n type: \"removeThenInsert\",\n removeIndexes: [index],\n insertIndex: index,\n insertNodes: [node]\n });\n return operations;\n}\nfunction mutate(node, operations, options) {\n return map(node, {\n ...options,\n getChildren: (node2, indexPath) => {\n const key = indexPath.join();\n const operation = operations.get(key);\n switch (operation?.type) {\n case \"replace\":\n case \"remove\":\n case \"removeThenInsert\":\n case \"insert\":\n return options.getChildren(node2, indexPath);\n default:\n return [];\n }\n },\n transform: (node2, children, indexPath) => {\n const key = indexPath.join();\n const operation = operations.get(key);\n switch (operation?.type) {\n case \"remove\":\n return options.create(\n node2,\n children.filter((_, index) => !operation.indexes.includes(index)),\n indexPath\n );\n case \"removeThenInsert\":\n const updatedChildren = children.filter((_, index) => !operation.removeIndexes.includes(index));\n const adjustedIndex = operation.removeIndexes.reduce(\n (index, removedIndex) => removedIndex < index ? index - 1 : index,\n operation.insertIndex\n );\n return options.create(node2, splice(updatedChildren, adjustedIndex, 0, ...operation.insertNodes), indexPath);\n case \"insert\":\n return options.create(node2, splice(children, operation.index, 0, ...operation.nodes), indexPath);\n case \"replace\":\n return options.create(node2, children, indexPath);\n default:\n return node2;\n }\n }\n });\n}\nfunction splice(array, start, deleteCount, ...items) {\n return [...array.slice(0, start), ...items, ...array.slice(start + deleteCount)];\n}\nfunction map(node, options) {\n const childrenMap = {};\n visit(node, {\n ...options,\n onLeave: (child, indexPath) => {\n const keyIndexPath = [0, ...indexPath];\n const key = keyIndexPath.join();\n const transformed = options.transform(child, childrenMap[key] ?? [], indexPath);\n const parentKey = keyIndexPath.slice(0, -1).join();\n const parentChildren = childrenMap[parentKey] ?? [];\n parentChildren.push(transformed);\n childrenMap[parentKey] = parentChildren;\n }\n });\n return childrenMap[\"\"][0];\n}\nfunction insert2(node, options) {\n const { nodes, at } = options;\n if (at.length === 0) throw new Error(`Can't insert nodes at the root`);\n const state = getInsertionOperations(at, nodes);\n return mutate(node, state, options);\n}\nfunction replace(node, options) {\n if (options.at.length === 0) return options.node;\n const operations = getReplaceOperations(options.at, options.node);\n return mutate(node, operations, options);\n}\nfunction remove(node, options) {\n if (options.indexPaths.length === 0) return node;\n for (const indexPath of options.indexPaths) {\n if (indexPath.length === 0) throw new Error(`Can't remove the root node`);\n }\n const operations = getRemovalOperations(options.indexPaths);\n return mutate(node, operations, options);\n}\nfunction move2(node, options) {\n if (options.indexPaths.length === 0) return node;\n for (const indexPath of options.indexPaths) {\n if (indexPath.length === 0) throw new Error(`Can't move the root node`);\n }\n if (options.to.length === 0) throw new Error(`Can't move nodes to the root`);\n const _ancestorIndexPaths = ancestorIndexPaths(options.indexPaths);\n const nodesToInsert = _ancestorIndexPaths.map((indexPath) => access(node, indexPath, options));\n const operations = getInsertionOperations(options.to, nodesToInsert, getRemovalOperations(_ancestorIndexPaths));\n return mutate(node, operations, options);\n}\nfunction visit(node, options) {\n const { onEnter, onLeave, getChildren } = options;\n let indexPath = [];\n let stack = [{ node }];\n const getIndexPath = options.reuseIndexPath ? () => indexPath : () => indexPath.slice();\n while (stack.length > 0) {\n let wrapper = stack[stack.length - 1];\n if (wrapper.state === void 0) {\n const enterResult = onEnter?.(wrapper.node, getIndexPath());\n if (enterResult === \"stop\") return;\n wrapper.state = enterResult === \"skip\" ? -1 : 0;\n }\n const children = wrapper.children || getChildren(wrapper.node, getIndexPath());\n wrapper.children || (wrapper.children = children);\n if (wrapper.state !== -1) {\n if (wrapper.state < children.length) {\n let currentIndex = wrapper.state;\n indexPath.push(currentIndex);\n stack.push({ node: children[currentIndex] });\n wrapper.state = currentIndex + 1;\n continue;\n }\n const leaveResult = onLeave?.(wrapper.node, getIndexPath());\n if (leaveResult === \"stop\") return;\n }\n indexPath.pop();\n stack.pop();\n }\n}\n\n// src/tree-collection.ts\nvar TreeCollection = class {\n constructor(options) {\n this.options = options;\n __publicField(this, \"rootNode\");\n __publicField(this, \"isEqual\", (other) => {\n return isEqual(this.rootNode, other.rootNode);\n });\n __publicField(this, \"getNodeChildren\", (node) => {\n return this.options.nodeToChildren?.(node) ?? fallback2.nodeToChildren(node) ?? [];\n });\n __publicField(this, \"getNodeValue\", (node) => {\n return this.options.nodeToValue?.(node) ?? fallback2.nodeToValue(node);\n });\n __publicField(this, \"getNodeDisabled\", (node) => {\n return this.options.isNodeDisabled?.(node) ?? fallback2.isNodeDisabled(node);\n });\n __publicField(this, \"stringify\", (value) => {\n const node = this.findNode(value);\n if (!node) return null;\n return this.stringifyNode(node);\n });\n __publicField(this, \"stringifyNode\", (node) => {\n return this.options.nodeToString?.(node) ?? fallback2.nodeToString(node);\n });\n __publicField(this, \"getFirstNode\", (rootNode = this.rootNode) => {\n let firstChild;\n visit(rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (!firstChild && indexPath.length > 0 && !this.getNodeDisabled(node)) {\n firstChild = node;\n return \"stop\";\n }\n }\n });\n return firstChild;\n });\n __publicField(this, \"getLastNode\", (rootNode = this.rootNode, opts = {}) => {\n let lastChild;\n visit(rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) return \"skip\";\n if (indexPath.length > 1) return \"skip\";\n if (!this.getNodeDisabled(node)) {\n lastChild = node;\n }\n }\n });\n return lastChild;\n });\n __publicField(this, \"at\", (indexPath) => {\n return access(this.rootNode, indexPath, {\n getChildren: this.getNodeChildren\n });\n });\n __publicField(this, \"findNode\", (value, rootNode = this.rootNode) => {\n return find(rootNode, {\n getChildren: this.getNodeChildren,\n predicate: (node) => this.getNodeValue(node) === value\n });\n });\n __publicField(this, \"sort\", (values) => {\n return values.reduce(\n (acc, value) => {\n const indexPath = this.getIndexPath(value);\n if (indexPath != null) acc.push({ value, indexPath });\n return acc;\n },\n []\n ).sort((a, b) => compareIndexPaths(a.indexPath, b.indexPath)).map(({ value }) => value);\n });\n __publicField(this, \"getIndexPath\", (value) => {\n return findIndexPath(this.rootNode, {\n getChildren: this.getNodeChildren,\n predicate: (node) => this.getNodeValue(node) === value\n });\n });\n __publicField(this, \"getValue\", (indexPath) => {\n const node = this.at(indexPath);\n return node ? this.getNodeValue(node) : void 0;\n });\n __publicField(this, \"getValuePath\", (indexPath) => {\n if (!indexPath) return [];\n const valuePath = [];\n let currentPath = [...indexPath];\n while (currentPath.length > 0) {\n const node = this.at(currentPath);\n if (node) valuePath.unshift(this.getNodeValue(node));\n currentPath.pop();\n }\n return valuePath;\n });\n __publicField(this, \"getDepth\", (value) => {\n const indexPath = findIndexPath(this.rootNode, {\n getChildren: this.getNodeChildren,\n predicate: (node) => this.getNodeValue(node) === value\n });\n return indexPath?.length ?? 0;\n });\n __publicField(this, \"isRootNode\", (node) => {\n return this.getNodeValue(node) === this.getNodeValue(this.rootNode);\n });\n __publicField(this, \"contains\", (parentIndexPath, valueIndexPath) => {\n if (!parentIndexPath || !valueIndexPath) return false;\n return valueIndexPath.slice(0, parentIndexPath.length).every((_, i) => parentIndexPath[i] === valueIndexPath[i]);\n });\n __publicField(this, \"getNextNode\", (value, opts = {}) => {\n let found = false;\n let nextNode;\n visit(this.rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (this.isRootNode(node)) return;\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) {\n if (nodeValue === value) {\n found = true;\n }\n return \"skip\";\n }\n if (found && !this.getNodeDisabled(node)) {\n nextNode = node;\n return \"stop\";\n }\n if (nodeValue === value) {\n found = true;\n }\n }\n });\n return nextNode;\n });\n __publicField(this, \"getPreviousNode\", (value, opts = {}) => {\n let previousNode;\n let found = false;\n visit(this.rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (this.isRootNode(node)) return;\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) {\n return \"skip\";\n }\n if (nodeValue === value) {\n found = true;\n return \"stop\";\n }\n if (!this.getNodeDisabled(node)) {\n previousNode = node;\n }\n }\n });\n return found ? previousNode : void 0;\n });\n __publicField(this, \"getParentNodes\", (values) => {\n const result = [];\n let indexPath = this.getIndexPath(values);\n while (indexPath && indexPath.length > 0) {\n indexPath.pop();\n const parentNode = this.at(indexPath);\n if (parentNode && !this.isRootNode(parentNode)) {\n result.unshift(parentNode);\n }\n }\n return result;\n });\n __publicField(this, \"getParentIndexPath\", (indexPath) => {\n return indexPath.slice(0, -1);\n });\n __publicField(this, \"getParentNode\", (valueOrIndexPath) => {\n const indexPath = typeof valueOrIndexPath === \"string\" ? this.getIndexPath(valueOrIndexPath) : valueOrIndexPath;\n return indexPath ? this.at(this.getParentIndexPath(indexPath)) : void 0;\n });\n __publicField(this, \"visit\", (opts) => {\n const { skip, ...rest } = opts;\n visit(this.rootNode, {\n ...rest,\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (this.isRootNode(node)) return;\n if (skip?.({ value: this.getNodeValue(node), node, indexPath })) return \"skip\";\n return rest.onEnter?.(node, indexPath);\n }\n });\n });\n __publicField(this, \"getPreviousSibling\", (indexPath) => {\n const parentNode = this.getParentNode(indexPath);\n if (!parentNode) return;\n const siblings = this.getNodeChildren(parentNode);\n let idx = siblings.findIndex((sibling) => this.getValue(indexPath) === this.getNodeValue(sibling));\n while (--idx >= 0) {\n const sibling = siblings[idx];\n if (!this.getNodeDisabled(sibling)) return sibling;\n }\n return;\n });\n __publicField(this, \"getNextSibling\", (indexPath) => {\n const parentNode = this.getParentNode(indexPath);\n if (!parentNode) return;\n const siblings = this.getNodeChildren(parentNode);\n let idx = siblings.findIndex((sibling) => this.getValue(indexPath) === this.getNodeValue(sibling));\n while (++idx < siblings.length) {\n const sibling = siblings[idx];\n if (!this.getNodeDisabled(sibling)) return sibling;\n }\n return;\n });\n __publicField(this, \"getSiblingNodes\", (indexPath) => {\n const parentNode = this.getParentNode(indexPath);\n return parentNode ? this.getNodeChildren(parentNode) : [];\n });\n __publicField(this, \"getValues\", (rootNode = this.rootNode) => {\n const values = flatMap(rootNode, {\n getChildren: this.getNodeChildren,\n transform: (node) => [this.getNodeValue(node)]\n });\n return values.slice(1);\n });\n __publicField(this, \"isSameDepth\", (indexPath, depth) => {\n if (depth == null) return true;\n return indexPath.length === depth;\n });\n __publicField(this, \"isBranchNode\", (node) => {\n return this.getNodeChildren(node).length > 0;\n });\n __publicField(this, \"getBranchValues\", (rootNode = this.rootNode, opts = {}) => {\n let values = [];\n visit(rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) return \"skip\";\n if (this.getNodeChildren(node).length > 0 && this.isSameDepth(indexPath, opts.depth)) {\n values.push(this.getNodeValue(node));\n }\n }\n });\n return values.slice(1);\n });\n __publicField(this, \"flatten\", (rootNode = this.rootNode) => {\n const nodes = flatMap(rootNode, {\n getChildren: this.getNodeChildren,\n transform: (node, indexPath) => {\n const children = this.getNodeChildren(node).map((child) => this.getNodeValue(child));\n return [\n compact({\n label: this.stringifyNode(node),\n value: this.getNodeValue(node),\n indexPath,\n children: children.length > 0 ? children : void 0\n })\n ];\n }\n });\n return nodes.slice(1);\n });\n __publicField(this, \"_create\", (node, children) => {\n return compact({ ...node, children });\n });\n __publicField(this, \"_insert\", (rootNode, indexPath, nodes) => {\n return insert2(rootNode, { at: indexPath, nodes, getChildren: this.getNodeChildren, create: this._create });\n });\n __publicField(this, \"_replace\", (rootNode, indexPath, node) => {\n return replace(rootNode, { at: indexPath, node, getChildren: this.getNodeChildren, create: this._create });\n });\n __publicField(this, \"_move\", (rootNode, indexPaths, to) => {\n return move2(rootNode, { indexPaths, to, getChildren: this.getNodeChildren, create: this._create });\n });\n __publicField(this, \"_remove\", (rootNode, indexPaths) => {\n return remove(rootNode, { indexPaths, getChildren: this.getNodeChildren, create: this._create });\n });\n __publicField(this, \"replace\", (indexPath, node) => {\n return this._replace(this.rootNode, indexPath, node);\n });\n __publicField(this, \"remove\", (indexPaths) => {\n return this._remove(this.rootNode, indexPaths);\n });\n __publicField(this, \"insertBefore\", (indexPath, nodes) => {\n const parentNode = this.getParentNode(indexPath);\n return parentNode ? this._insert(this.rootNode, indexPath, nodes) : void 0;\n });\n __publicField(this, \"insertAfter\", (indexPath, nodes) => {\n const parentNode = this.getParentNode(indexPath);\n if (!parentNode) return;\n const nextIndex2 = [...indexPath.slice(0, -1), indexPath[indexPath.length - 1] + 1];\n return this._insert(this.rootNode, nextIndex2, nodes);\n });\n __publicField(this, \"move\", (fromIndexPaths, toIndexPath) => {\n return this._move(this.rootNode, fromIndexPaths, toIndexPath);\n });\n __publicField(this, \"toJSON\", () => {\n return this.getValues(this.rootNode);\n });\n this.rootNode = options.rootNode;\n }\n};\nfunction flattenedToTree(nodes) {\n let rootNode = {\n value: \"ROOT\"\n };\n nodes.map((node) => {\n const { indexPath, label, value } = node;\n if (!indexPath.length) {\n Object.assign(rootNode, { label, value, children: [] });\n return;\n }\n rootNode = insert2(rootNode, {\n at: indexPath,\n nodes: [compact({ label, value })],\n getChildren: (node2) => node2.children ?? [],\n create: (node2, children) => {\n return compact({ ...node2, children });\n }\n });\n });\n return new TreeCollection({ rootNode });\n}\nfunction filePathToTree(paths) {\n const rootNode = {\n label: \"\",\n value: \"ROOT\",\n children: []\n };\n paths.forEach((path) => {\n const parts = path.split(\"/\");\n let currentNode = rootNode;\n parts.forEach((part) => {\n let childNode = currentNode.children?.find((child) => child.label === part);\n if (!childNode) {\n childNode = {\n value: parts.slice(0, parts.indexOf(part) + 1).join(\"/\"),\n label: part\n };\n currentNode.children || (currentNode.children = []);\n currentNode.children.push(childNode);\n }\n currentNode = childNode;\n });\n });\n return new TreeCollection({ rootNode });\n}\nvar fallback2 = {\n nodeToValue(node) {\n if (typeof node === \"string\") return node;\n if (isObject(node) && hasProp(node, \"value\")) return node.value;\n return \"\";\n },\n nodeToString(node) {\n if (typeof node === \"string\") return node;\n if (isObject(node) && hasProp(node, \"label\")) return node.label;\n return fallback2.nodeToValue(node);\n },\n isNodeDisabled(node) {\n if (isObject(node) && hasProp(node, \"disabled\")) return !!node.disabled;\n return false;\n },\n nodeToChildren(node) {\n return node.children;\n }\n};\nvar Selection = class _Selection extends Set {\n constructor(values = []) {\n super(values);\n __publicField(this, \"selectionMode\", \"single\");\n __publicField(this, \"deselectable\", true);\n __publicField(this, \"copy\", () => {\n const clone = new _Selection([...this]);\n return this.sync(clone);\n });\n __publicField(this, \"sync\", (other) => {\n other.selectionMode = this.selectionMode;\n other.deselectable = this.deselectable;\n return other;\n });\n __publicField(this, \"isEmpty\", () => {\n return this.size === 0;\n });\n __publicField(this, \"isSelected\", (value) => {\n if (this.selectionMode === \"none\" || value == null) {\n return false;\n }\n return this.has(value);\n });\n __publicField(this, \"canSelect\", (collection, value) => {\n return this.selectionMode !== \"none\" || !collection.getItemDisabled(collection.find(value));\n });\n __publicField(this, \"firstSelectedValue\", (collection) => {\n let firstValue = null;\n for (let value of this) {\n if (!firstValue || collection.compareValue(value, firstValue) < 0) {\n firstValue = value;\n }\n }\n return firstValue;\n });\n __publicField(this, \"lastSelectedValue\", (collection) => {\n let lastValue = null;\n for (let value of this) {\n if (!lastValue || collection.compareValue(value, lastValue) > 0) {\n lastValue = value;\n }\n }\n return lastValue;\n });\n __publicField(this, \"extendSelection\", (collection, anchorValue, targetValue) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n if (this.selectionMode === \"single\") {\n return this.replaceSelection(collection, targetValue);\n }\n const selection = this.copy();\n const lastSelected = Array.from(this).pop();\n for (let key of collection.getValueRange(anchorValue, lastSelected ?? targetValue)) {\n selection.delete(key);\n }\n for (let key of collection.getValueRange(targetValue, anchorValue)) {\n if (this.canSelect(collection, key)) {\n selection.add(key);\n }\n }\n return selection;\n });\n __publicField(this, \"toggleSelection\", (collection, value) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n if (this.selectionMode === \"single\" && !this.isSelected(value)) {\n return this.replaceSelection(collection, value);\n }\n const selection = this.copy();\n if (selection.has(value)) {\n selection.delete(value);\n } else if (selection.canSelect(collection, value)) {\n selection.add(value);\n }\n return selection;\n });\n __publicField(this, \"replaceSelection\", (collection, value) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n if (value == null) {\n return this;\n }\n if (!this.canSelect(collection, value)) {\n return this;\n }\n const selection = new _Selection([value]);\n return this.sync(selection);\n });\n __publicField(this, \"setSelection\", (values) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n let selection = new _Selection();\n for (let value of values) {\n if (value != null) {\n selection.add(value);\n if (this.selectionMode === \"single\") {\n break;\n }\n }\n }\n return this.sync(selection);\n });\n __publicField(this, \"clearSelection\", () => {\n const selection = this.copy();\n if (selection.deselectable && selection.size > 0) {\n selection.clear();\n }\n return selection;\n });\n __publicField(this, \"select\", (collection, value, forceToggle) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n if (this.selectionMode === \"single\") {\n if (this.isSelected(value) && this.deselectable) {\n return this.toggleSelection(collection, value);\n } else {\n return this.replaceSelection(collection, value);\n }\n } else if (this.selectionMode === \"multiple\" || forceToggle) {\n return this.toggleSelection(collection, value);\n } else {\n return this.replaceSelection(collection, value);\n }\n });\n __publicField(this, \"deselect\", (value) => {\n const selection = this.copy();\n selection.delete(value);\n return selection;\n });\n __publicField(this, \"isEqual\", (other) => {\n return isEqual(Array.from(this), Array.from(other));\n });\n }\n};\n\nexport { GridCollection, ListCollection, Selection, TreeCollection, filePathToTree, flattenedToTree, isGridCollection, isListCollection };\n","import { ListCollection, filePathToTree, TreeCollection } from '@zag-js/collection';\n\nconst createListCollection = (options) => new ListCollection(options);\nconst createTreeCollection = (options) => new TreeCollection(options);\nconst createFileTreeCollection = (paths) => filePathToTree(paths);\n\nexport { createFileTreeCollection, createListCollection, createTreeCollection };\n","// src/walk-tree-outside.ts\nvar counterMap = /* @__PURE__ */ new WeakMap();\nvar uncontrolledNodes = /* @__PURE__ */ new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = (node) => node && (node.host || unwrapHost(node.parentNode));\nvar correctTargets = (parent, targets) => targets.map((target) => {\n if (parent.contains(target)) return target;\n const correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error(\"[zag-js > ariaHidden] target\", target, \"in not contained inside\", parent, \". Doing nothing\");\n return null;\n}).filter((x) => Boolean(x));\nvar isIgnoredNode = (node) => {\n if (node.localName === \"next-route-announcer\") return true;\n if (node.localName === \"script\") return true;\n if (node.hasAttribute(\"aria-live\")) return true;\n return node.matches(\"[data-live-announcer]\");\n};\nvar walkTreeOutside = (originalTarget, props) => {\n const { parentNode, markerName, controlAttribute} = props;\n const targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n markerMap[markerName] || (markerMap[markerName] = /* @__PURE__ */ new WeakMap());\n const markerCounter = markerMap[markerName];\n const hiddenNodes = [];\n const elementsToKeep = /* @__PURE__ */ new Set();\n const elementsToStop = new Set(targets);\n const keep = (el) => {\n if (!el || elementsToKeep.has(el)) return;\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n const deep = (parent) => {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, (node) => {\n if (elementsToKeep.has(node)) {\n deep(node);\n } else {\n try {\n if (isIgnoredNode(node)) return;\n const attr = node.getAttribute(controlAttribute);\n const alreadyHidden = attr === \"true\" ;\n const counterValue = (counterMap.get(node) || 0) + 1;\n const 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, \"\");\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, \"true\" );\n }\n } catch (e) {\n console.error(\"[zag-js > ariaHidden] cannot operate on \", node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return () => {\n hiddenNodes.forEach((node) => {\n const counterValue = counterMap.get(node) - 1;\n const 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 counterMap = /* @__PURE__ */ new WeakMap();\n counterMap = /* @__PURE__ */ new WeakMap();\n uncontrolledNodes = /* @__PURE__ */ new WeakMap();\n markerMap = {};\n }\n };\n};\n\n// src/aria-hidden.ts\nvar getParentNode = (originalTarget) => {\n const target = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return target.ownerDocument.body;\n};\nvar hideOthers = (originalTarget, parentNode = getParentNode(originalTarget), markerName = \"data-aria-hidden\") => {\n if (!parentNode) return;\n return walkTreeOutside(originalTarget, {\n parentNode,\n markerName,\n controlAttribute: \"aria-hidden\"});\n};\n\n// src/index.ts\nvar raf = (fn) => {\n const frameId = requestAnimationFrame(() => fn());\n return () => cancelAnimationFrame(frameId);\n};\nfunction ariaHidden(targetsOrFn, options = {}) {\n const { defer = true } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const targets = typeof targetsOrFn === \"function\" ? targetsOrFn() : targetsOrFn;\n const elements = targets.filter(Boolean);\n if (elements.length === 0) return;\n cleanups.push(hideOthers(elements));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\nexport { ariaHidden };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [DialogProvider, useDialogContext] = createContext({\n name: \"DialogContext\",\n hookName: \"useDialogContext\",\n providerName: \"<DialogProvider />\"\n});\n\nexport { DialogProvider, useDialogContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { useRenderStrategyPropsContext } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogBackdrop = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const renderStrategyProps = useRenderStrategyPropsContext();\n const presence = usePresence({ ...renderStrategyProps, present: dialog.open });\n const mergedProps = mergeProps(dialog.getBackdropProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nDialogBackdrop.displayName = \"DialogBackdrop\";\n\nexport { DialogBackdrop };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogCloseTrigger = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getCloseTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nDialogCloseTrigger.displayName = \"DialogCloseTrigger\";\n\nexport { DialogCloseTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogContent = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(dialog.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nDialogContent.displayName = \"DialogContent\";\n\nexport { DialogContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogDescription = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getDescriptionProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nDialogDescription.displayName = \"DialogDescription\";\n\nexport { DialogDescription };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogPositioner = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nDialogPositioner.displayName = \"DialogPositioner\";\n\nexport { DialogPositioner };\n","import { getDocument, getTabbables, getFocusables, isTabbable, getTabIndex, addDomEvent, raf, getEventTarget, isDocument, isFocusable, getActiveElement } from '@zag-js/dom-query';\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar activeFocusTraps = {\n activateTrap(trapStack, trap) {\n if (trapStack.length > 0) {\n const activeTrap = trapStack[trapStack.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n const trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n deactivateTrap(trapStack, trap) {\n const trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n if (trapStack.length > 0) {\n trapStack[trapStack.length - 1].unpause();\n }\n }\n};\nvar sharedTrapStack = [];\nvar FocusTrap = class {\n constructor(elements, options) {\n __publicField(this, \"trapStack\");\n __publicField(this, \"config\");\n __publicField(this, \"doc\");\n __publicField(this, \"state\", {\n containers: [],\n containerGroups: [],\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n delayInitialFocusTimer: void 0,\n recentNavEvent: void 0\n });\n __publicField(this, \"listenerCleanups\", []);\n __publicField(this, \"handleFocus\", (event) => {\n const target = getEventTarget(event);\n const targetContained = this.findContainerIndex(target, event) >= 0;\n if (targetContained || isDocument(target)) {\n if (targetContained) {\n this.state.mostRecentlyFocusedNode = target;\n }\n } else {\n event.stopImmediatePropagation();\n let nextNode;\n let navAcrossContainers = true;\n if (this.state.mostRecentlyFocusedNode) {\n if (getTabIndex(this.state.mostRecentlyFocusedNode) > 0) {\n const mruContainerIdx = this.findContainerIndex(this.state.mostRecentlyFocusedNode);\n const { tabbableNodes } = this.state.containerGroups[mruContainerIdx];\n if (tabbableNodes.length > 0) {\n const mruTabIdx = tabbableNodes.findIndex((node) => node === this.state.mostRecentlyFocusedNode);\n if (mruTabIdx >= 0) {\n if (this.config.isKeyForward(this.state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n }\n }\n }\n } else {\n if (!this.state.containerGroups.some((g) => g.tabbableNodes.some((n) => getTabIndex(n) > 0))) {\n navAcrossContainers = false;\n }\n }\n } else {\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = this.findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: this.state.mostRecentlyFocusedNode,\n isBackward: this.config.isKeyBackward(this.state.recentNavEvent)\n });\n }\n if (nextNode) {\n this.tryFocus(nextNode);\n } else {\n this.tryFocus(this.state.mostRecentlyFocusedNode || this.getInitialFocusNode());\n }\n }\n this.state.recentNavEvent = void 0;\n });\n __publicField(this, \"handlePointerDown\", (event) => {\n const target = getEventTarget(event);\n if (this.findContainerIndex(target, event) >= 0) {\n return;\n }\n if (valueOrHandler(this.config.clickOutsideDeactivates, event)) {\n this.deactivate({ returnFocus: this.config.returnFocusOnDeactivate });\n return;\n }\n if (valueOrHandler(this.config.allowOutsideClick, event)) {\n return;\n }\n event.preventDefault();\n });\n __publicField(this, \"handleClick\", (event) => {\n const target = getEventTarget(event);\n if (this.findContainerIndex(target, event) >= 0) {\n return;\n }\n if (valueOrHandler(this.config.clickOutsideDeactivates, event)) {\n return;\n }\n if (valueOrHandler(this.config.allowOutsideClick, event)) {\n return;\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n __publicField(this, \"handleTabKey\", (event) => {\n if (this.config.isKeyForward(event) || this.config.isKeyBackward(event)) {\n this.state.recentNavEvent = event;\n const isBackward = this.config.isKeyBackward(event);\n const destinationNode = this.findNextNavNode({ event, isBackward });\n if (!destinationNode) return;\n if (isTabEvent(event)) {\n event.preventDefault();\n }\n this.tryFocus(destinationNode);\n }\n });\n __publicField(this, \"handleEscapeKey\", (event) => {\n if (isEscapeEvent(event) && valueOrHandler(this.config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n this.deactivate();\n }\n });\n __publicField(this, \"_mutationObserver\");\n __publicField(this, \"setupMutationObserver\", () => {\n const win = this.doc.defaultView || window;\n this._mutationObserver = new win.MutationObserver((mutations) => {\n const isFocusedNodeRemoved = mutations.some((mutation) => {\n const removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some((node) => node === this.state.mostRecentlyFocusedNode);\n });\n if (isFocusedNodeRemoved) {\n this.tryFocus(this.getInitialFocusNode());\n }\n });\n });\n __publicField(this, \"updateObservedNodes\", () => {\n this._mutationObserver?.disconnect();\n if (this.state.active && !this.state.paused) {\n this.state.containers.map((container) => {\n this._mutationObserver?.observe(container, { subtree: true, childList: true });\n });\n }\n });\n __publicField(this, \"getInitialFocusNode\", () => {\n let node = this.getNodeForOption(\"initialFocus\", { hasFallback: true });\n if (node === false) {\n return false;\n }\n if (node === void 0 || node && !isFocusable(node)) {\n if (this.findContainerIndex(this.doc.activeElement) >= 0) {\n node = this.doc.activeElement;\n } else {\n const firstTabbableGroup = this.state.tabbableGroups[0];\n const firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n node = firstTabbableNode || this.getNodeForOption(\"fallbackFocus\");\n }\n } else if (node === null) {\n node = this.getNodeForOption(\"fallbackFocus\");\n }\n if (!node) {\n throw new Error(\"Your focus-trap needs to have at least one focusable element\");\n }\n if (!node.isConnected) {\n node = this.getNodeForOption(\"fallbackFocus\");\n }\n return node;\n });\n __publicField(this, \"tryFocus\", (node) => {\n if (node === false) return;\n if (node === getActiveElement(this.doc)) return;\n if (!node || !node.focus) {\n this.tryFocus(this.getInitialFocusNode());\n return;\n }\n node.focus({ preventScroll: !!this.config.preventScroll });\n this.state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n });\n __publicField(this, \"deactivate\", (deactivateOptions) => {\n if (!this.state.active) return this;\n const options = {\n onDeactivate: this.config.onDeactivate,\n onPostDeactivate: this.config.onPostDeactivate,\n checkCanReturnFocus: this.config.checkCanReturnFocus,\n ...deactivateOptions\n };\n clearTimeout(this.state.delayInitialFocusTimer);\n this.state.delayInitialFocusTimer = void 0;\n this.removeListeners();\n this.state.active = false;\n this.state.paused = false;\n this.updateObservedNodes();\n activeFocusTraps.deactivateTrap(this.trapStack, this);\n const onDeactivate = this.getOption(options, \"onDeactivate\");\n const onPostDeactivate = this.getOption(options, \"onPostDeactivate\");\n const checkCanReturnFocus = this.getOption(options, \"checkCanReturnFocus\");\n const returnFocus = this.getOption(options, \"returnFocus\", \"returnFocusOnDeactivate\");\n onDeactivate?.();\n const finishDeactivation = () => {\n delay(() => {\n if (returnFocus) {\n const returnFocusNode = this.getReturnFocusNode(this.state.nodeFocusedBeforeActivation);\n this.tryFocus(returnFocusNode);\n }\n onPostDeactivate?.();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n const returnFocusNode = this.getReturnFocusNode(this.state.nodeFocusedBeforeActivation);\n checkCanReturnFocus(returnFocusNode).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n });\n __publicField(this, \"pause\", (pauseOptions) => {\n if (this.state.paused || !this.state.active) {\n return this;\n }\n const onPause = this.getOption(pauseOptions, \"onPause\");\n const onPostPause = this.getOption(pauseOptions, \"onPostPause\");\n this.state.paused = true;\n onPause?.();\n this.removeListeners();\n this.updateObservedNodes();\n onPostPause?.();\n return this;\n });\n __publicField(this, \"unpause\", (unpauseOptions) => {\n if (!this.state.paused || !this.state.active) {\n return this;\n }\n const onUnpause = this.getOption(unpauseOptions, \"onUnpause\");\n const onPostUnpause = this.getOption(unpauseOptions, \"onPostUnpause\");\n this.state.paused = false;\n onUnpause?.();\n this.updateTabbableNodes();\n this.addListeners();\n this.updateObservedNodes();\n onPostUnpause?.();\n return this;\n });\n __publicField(this, \"updateContainerElements\", (containerElements) => {\n this.state.containers = Array.isArray(containerElements) ? containerElements.filter(Boolean) : [containerElements].filter(Boolean);\n if (this.state.active) {\n this.updateTabbableNodes();\n }\n this.updateObservedNodes();\n return this;\n });\n __publicField(this, \"getReturnFocusNode\", (previousActiveElement) => {\n const node = this.getNodeForOption(\"setReturnFocus\", {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n });\n __publicField(this, \"getOption\", (configOverrideOptions, optionName, configOptionName) => {\n return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : (\n // @ts-expect-error\n this.config[configOptionName || optionName]\n );\n });\n __publicField(this, \"getNodeForOption\", (optionName, { hasFallback = false, params = [] } = {}) => {\n let optionValue = this.config[optionName];\n if (typeof optionValue === \"function\") optionValue = optionValue(...params);\n if (optionValue === true) optionValue = void 0;\n if (!optionValue) {\n if (optionValue === void 0 || optionValue === false) {\n return optionValue;\n }\n throw new Error(`\\`${optionName}\\` was specified but was not a node, or did not return a node`);\n }\n let node = optionValue;\n if (typeof optionValue === \"string\") {\n try {\n node = this.doc.querySelector(optionValue);\n } catch (err) {\n throw new Error(`\\`${optionName}\\` appears to be an invalid selector; error=\"${err.message}\"`);\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(`\\`${optionName}\\` as selector refers to no known node`);\n }\n }\n }\n return node;\n });\n __publicField(this, \"findNextNavNode\", (opts) => {\n const { event, isBackward = false } = opts;\n const target = opts.target || getEventTarget(event);\n this.updateTabbableNodes();\n let destinationNode = null;\n if (this.state.tabbableGroups.length > 0) {\n const containerIndex = this.findContainerIndex(target, event);\n const containerGroup = containerIndex >= 0 ? this.state.containerGroups[containerIndex] : void 0;\n if (containerIndex < 0) {\n if (isBackward) {\n destinationNode = this.state.tabbableGroups[this.state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n destinationNode = this.state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n let startOfGroupIndex = this.state.tabbableGroups.findIndex(\n ({ firstTabbableNode }) => target === firstTabbableNode\n );\n if (startOfGroupIndex < 0 && (containerGroup?.container === target || isFocusable(target) && !isTabbable(target) && !containerGroup?.nextTabbableNode(target, false))) {\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n const destinationGroupIndex = startOfGroupIndex === 0 ? this.state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n const destinationGroup = this.state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup?.nextTabbableNode(target, false);\n }\n } else {\n let lastOfGroupIndex = this.state.tabbableGroups.findIndex(\n ({ lastTabbableNode }) => target === lastTabbableNode\n );\n if (lastOfGroupIndex < 0 && (containerGroup?.container === target || isFocusable(target) && !isTabbable(target) && !containerGroup?.nextTabbableNode(target))) {\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n const destinationGroupIndex = lastOfGroupIndex === this.state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n const destinationGroup = this.state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.firstTabbableNode : destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup?.nextTabbableNode(target);\n }\n }\n } else {\n destinationNode = this.getNodeForOption(\"fallbackFocus\");\n }\n return destinationNode;\n });\n this.trapStack = options.trapStack || sharedTrapStack;\n const config = {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isKeyForward(e) {\n return isTabEvent(e) && !e.shiftKey;\n },\n isKeyBackward(e) {\n return isTabEvent(e) && e.shiftKey;\n },\n ...options\n };\n this.doc = config.document || getDocument(Array.isArray(elements) ? elements[0] : elements);\n this.config = config;\n this.updateContainerElements(elements);\n this.setupMutationObserver();\n }\n get active() {\n return this.state.active;\n }\n get paused() {\n return this.state.paused;\n }\n findContainerIndex(element, event) {\n const composedPath = typeof event?.composedPath === \"function\" ? event.composedPath() : void 0;\n return this.state.containerGroups.findIndex(\n ({ container, tabbableNodes }) => container.contains(element) || composedPath?.includes(container) || tabbableNodes.find((node) => node === element)\n );\n }\n updateTabbableNodes() {\n this.state.containerGroups = this.state.containers.map((container) => {\n const tabbableNodes = getTabbables(container);\n const focusableNodes = getFocusables(container);\n const firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0;\n const lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0;\n const firstDomTabbableNode = focusableNodes.find((node) => isTabbable(node));\n const lastDomTabbableNode = focusableNodes.slice().reverse().find((node) => isTabbable(node));\n const posTabIndexesFound = !!tabbableNodes.find((node) => getTabIndex(node) > 0);\n function nextTabbableNode(node, forward = true) {\n const nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find((el) => isTabbable(el));\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find((el) => isTabbable(el));\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n return {\n container,\n tabbableNodes,\n focusableNodes,\n posTabIndexesFound,\n firstTabbableNode,\n lastTabbableNode,\n firstDomTabbableNode,\n lastDomTabbableNode,\n nextTabbableNode\n };\n });\n this.state.tabbableGroups = this.state.containerGroups.filter((group) => group.tabbableNodes.length > 0);\n if (this.state.tabbableGroups.length <= 0 && !this.getNodeForOption(\"fallbackFocus\")) {\n throw new Error(\n \"Your focus-trap must have at least one container with at least one tabbable node in it at all times\"\n );\n }\n if (this.state.containerGroups.find((g) => g.posTabIndexesFound) && this.state.containerGroups.length > 1) {\n throw new Error(\n \"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\"\n );\n }\n }\n addListeners() {\n if (!this.state.active) return;\n activeFocusTraps.activateTrap(this.trapStack, this);\n this.state.delayInitialFocusTimer = this.config.delayInitialFocus ? delay(() => {\n this.tryFocus(this.getInitialFocusNode());\n }) : this.tryFocus(this.getInitialFocusNode());\n this.listenerCleanups.push(\n addDomEvent(this.doc, \"focusin\", this.handleFocus, true),\n addDomEvent(this.doc, \"mousedown\", this.handlePointerDown, { capture: true, passive: false }),\n addDomEvent(this.doc, \"touchstart\", this.handlePointerDown, { capture: true, passive: false }),\n addDomEvent(this.doc, \"click\", this.handleClick, { capture: true, passive: false }),\n addDomEvent(this.doc, \"keydown\", this.handleTabKey, { capture: true, passive: false }),\n addDomEvent(this.doc, \"keydown\", this.handleEscapeKey)\n );\n return this;\n }\n removeListeners() {\n if (!this.state.active) return;\n this.listenerCleanups.forEach((cleanup) => cleanup());\n this.listenerCleanups = [];\n return this;\n }\n activate(activateOptions) {\n if (this.state.active) {\n return this;\n }\n const onActivate = this.getOption(activateOptions, \"onActivate\");\n const onPostActivate = this.getOption(activateOptions, \"onPostActivate\");\n const checkCanFocusTrap = this.getOption(activateOptions, \"checkCanFocusTrap\");\n if (!checkCanFocusTrap) {\n this.updateTabbableNodes();\n }\n this.state.active = true;\n this.state.paused = false;\n this.state.nodeFocusedBeforeActivation = this.doc.activeElement || null;\n onActivate?.();\n const finishActivation = () => {\n if (checkCanFocusTrap) {\n this.updateTabbableNodes();\n }\n this.addListeners();\n this.updateObservedNodes();\n onPostActivate?.();\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(this.state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n return this;\n }\n};\nvar isTabEvent = (event) => event.key === \"Tab\";\nvar valueOrHandler = (value, ...params) => typeof value === \"function\" ? value(...params) : value;\nvar isEscapeEvent = (event) => !event.isComposing && event.key === \"Escape\";\nvar delay = (fn) => setTimeout(fn, 0);\nvar isSelectableInput = (node) => node.localName === \"input\" && \"select\" in node && typeof node.select === \"function\";\n\n// src/index.ts\nfunction trapFocus(el, options = {}) {\n let trap;\n const cleanup = raf(() => {\n const contentEl = typeof el === \"function\" ? el() : el;\n if (!contentEl) return;\n trap = new FocusTrap(contentEl, {\n escapeDeactivates: false,\n allowOutsideClick: true,\n preventScroll: true,\n returnFocusOnDeactivate: true,\n delayInitialFocus: false,\n fallbackFocus: contentEl,\n ...options,\n document: getDocument(contentEl)\n });\n try {\n trap.activate();\n } catch {\n }\n });\n return function destroy() {\n trap?.deactivate();\n cleanup();\n };\n}\n\nexport { FocusTrap, trapFocus };\n","import { setStyleProperty, setStyle, isIos } from '@zag-js/dom-query';\n\n// src/index.ts\nvar LOCK_CLASSNAME = \"data-scroll-lock\";\nfunction getPaddingProperty(documentElement) {\n const documentLeft = documentElement.getBoundingClientRect().left;\n const scrollbarX = Math.round(documentLeft) + documentElement.scrollLeft;\n return scrollbarX ? \"paddingLeft\" : \"paddingRight\";\n}\nfunction preventBodyScroll(_document) {\n const doc = _document ?? document;\n const win = doc.defaultView ?? window;\n const { documentElement, body } = doc;\n const locked = body.hasAttribute(LOCK_CLASSNAME);\n if (locked) return;\n body.setAttribute(LOCK_CLASSNAME, \"\");\n const scrollbarWidth = win.innerWidth - documentElement.clientWidth;\n const setScrollbarWidthProperty = () => setStyleProperty(documentElement, \"--scrollbar-width\", `${scrollbarWidth}px`);\n const paddingProperty = getPaddingProperty(documentElement);\n const setBodyStyle = () => setStyle(body, {\n overflow: \"hidden\",\n [paddingProperty]: `${scrollbarWidth}px`\n });\n const setBodyStyleIOS = () => {\n const { scrollX, scrollY, visualViewport } = win;\n const offsetLeft = visualViewport?.offsetLeft ?? 0;\n const offsetTop = visualViewport?.offsetTop ?? 0;\n const restoreStyle = setStyle(body, {\n position: \"fixed\",\n overflow: \"hidden\",\n top: `${-(scrollY - Math.floor(offsetTop))}px`,\n left: `${-(scrollX - Math.floor(offsetLeft))}px`,\n right: \"0\",\n [paddingProperty]: `${scrollbarWidth}px`\n });\n return () => {\n restoreStyle?.();\n win.scrollTo({ left: scrollX, top: scrollY, behavior: \"instant\" });\n };\n };\n const cleanups = [setScrollbarWidthProperty(), isIos() ? setBodyStyleIOS() : setBodyStyle()];\n return () => {\n cleanups.forEach((fn) => fn?.());\n body.removeAttribute(LOCK_CLASSNAME);\n };\n}\n\nexport { preventBodyScroll };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { ariaHidden } from '@zag-js/aria-hidden';\nimport { createMachine } from '@zag-js/core';\nimport { trackDismissableElement } from '@zag-js/dismissable';\nimport { raf, getComputedStyle } from '@zag-js/dom-query';\nimport { trapFocus } from '@zag-js/focus-trap';\nimport { preventBodyScroll } from '@zag-js/remove-scroll';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/dialog.anatomy.ts\nvar anatomy = createAnatomy(\"dialog\").parts(\n \"trigger\",\n \"backdrop\",\n \"positioner\",\n \"content\",\n \"title\",\n \"description\",\n \"closeTrigger\"\n);\nvar parts = anatomy.build();\n\n// src/dialog.dom.ts\nvar getPositionerId = (ctx) => ctx.ids?.positioner ?? `dialog:${ctx.id}:positioner`;\nvar getBackdropId = (ctx) => ctx.ids?.backdrop ?? `dialog:${ctx.id}:backdrop`;\nvar getContentId = (ctx) => ctx.ids?.content ?? `dialog:${ctx.id}:content`;\nvar getTriggerId = (ctx) => ctx.ids?.trigger ?? `dialog:${ctx.id}:trigger`;\nvar getTitleId = (ctx) => ctx.ids?.title ?? `dialog:${ctx.id}:title`;\nvar getDescriptionId = (ctx) => ctx.ids?.description ?? `dialog:${ctx.id}:description`;\nvar getCloseTriggerId = (ctx) => ctx.ids?.closeTrigger ?? `dialog:${ctx.id}:close`;\nvar getContentEl = (ctx) => ctx.getById(getContentId(ctx));\nvar getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));\nvar getBackdropEl = (ctx) => ctx.getById(getBackdropId(ctx));\nvar getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));\nvar getTitleEl = (ctx) => ctx.getById(getTitleId(ctx));\nvar getDescriptionEl = (ctx) => ctx.getById(getDescriptionId(ctx));\nvar getCloseTriggerEl = (ctx) => ctx.getById(getCloseTriggerId(ctx));\n\n// src/dialog.connect.ts\nfunction connect(service, normalize) {\n const { state, send, context, prop, scope } = service;\n const ariaLabel = prop(\"aria-label\");\n const open = state.matches(\"open\");\n return {\n open,\n setOpen(nextOpen) {\n const open2 = state.matches(\"open\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"OPEN\" : \"CLOSE\" });\n },\n getTriggerProps() {\n return normalize.button({\n ...parts.trigger.attrs,\n dir: prop(\"dir\"),\n id: getTriggerId(scope),\n \"aria-haspopup\": \"dialog\",\n type: \"button\",\n \"aria-expanded\": open,\n \"data-state\": open ? \"open\" : \"closed\",\n \"aria-controls\": getContentId(scope),\n onClick(event) {\n if (event.defaultPrevented) return;\n send({ type: \"TOGGLE\" });\n }\n });\n },\n getBackdropProps() {\n return normalize.element({\n ...parts.backdrop.attrs,\n dir: prop(\"dir\"),\n hidden: !open,\n id: getBackdropId(scope),\n \"data-state\": open ? \"open\" : \"closed\"\n });\n },\n getPositionerProps() {\n return normalize.element({\n ...parts.positioner.attrs,\n dir: prop(\"dir\"),\n id: getPositionerId(scope),\n style: {\n pointerEvents: open ? void 0 : \"none\"\n }\n });\n },\n getContentProps() {\n const rendered = context.get(\"rendered\");\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n role: prop(\"role\"),\n hidden: !open,\n id: getContentId(scope),\n tabIndex: -1,\n \"data-state\": open ? \"open\" : \"closed\",\n \"aria-modal\": true,\n \"aria-label\": ariaLabel || void 0,\n \"aria-labelledby\": ariaLabel || !rendered.title ? void 0 : getTitleId(scope),\n \"aria-describedby\": rendered.description ? getDescriptionId(scope) : void 0\n });\n },\n getTitleProps() {\n return normalize.element({\n ...parts.title.attrs,\n dir: prop(\"dir\"),\n id: getTitleId(scope)\n });\n },\n getDescriptionProps() {\n return normalize.element({\n ...parts.description.attrs,\n dir: prop(\"dir\"),\n id: getDescriptionId(scope)\n });\n },\n getCloseTriggerProps() {\n return normalize.button({\n ...parts.closeTrigger.attrs,\n dir: prop(\"dir\"),\n id: getCloseTriggerId(scope),\n type: \"button\",\n onClick(event) {\n if (event.defaultPrevented) return;\n event.stopPropagation();\n send({ type: \"CLOSE\" });\n }\n });\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2, scope }) {\n const alertDialog = props2.role === \"alertdialog\";\n const initialFocusEl = alertDialog ? () => getCloseTriggerEl(scope) : void 0;\n return {\n role: \"dialog\",\n modal: true,\n trapFocus: true,\n preventScroll: true,\n closeOnInteractOutside: !alertDialog,\n closeOnEscape: true,\n restoreFocus: true,\n initialFocusEl,\n ...props2\n };\n },\n initialState({ prop }) {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"closed\";\n },\n context({ bindable }) {\n return {\n rendered: bindable(() => ({\n defaultValue: { title: true, description: true }\n }))\n };\n },\n watch({ track, action, prop }) {\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"]);\n });\n },\n states: {\n open: {\n entry: [\"checkRenderedElements\", \"syncZIndex\"],\n effects: [\"trackDismissableElement\", \"trapFocus\", \"preventScroll\", \"hideContentBelow\"],\n on: {\n \"CONTROLLED.CLOSE\": {\n target: \"closed\"\n },\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n TOGGLE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ]\n }\n },\n closed: {\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"open\"\n },\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ],\n TOGGLE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ]\n }\n }\n },\n implementations: {\n guards: {\n isOpenControlled: ({ prop }) => prop(\"open\") != void 0\n },\n effects: {\n trackDismissableElement({ scope, send, prop }) {\n const getContentEl2 = () => getContentEl(scope);\n return trackDismissableElement(getContentEl2, {\n defer: true,\n pointerBlocking: prop(\"modal\"),\n exclude: [getTriggerEl(scope)],\n onInteractOutside(event) {\n prop(\"onInteractOutside\")?.(event);\n if (!prop(\"closeOnInteractOutside\")) {\n event.preventDefault();\n }\n },\n persistentElements: prop(\"persistentElements\"),\n onFocusOutside: prop(\"onFocusOutside\"),\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n onEscapeKeyDown(event) {\n prop(\"onEscapeKeyDown\")?.(event);\n if (!prop(\"closeOnEscape\")) {\n event.preventDefault();\n }\n },\n onDismiss() {\n send({ type: \"CLOSE\", src: \"interact-outside\" });\n }\n });\n },\n preventScroll({ scope, prop }) {\n if (!prop(\"preventScroll\")) return;\n return preventBodyScroll(scope.getDoc());\n },\n trapFocus({ scope, prop }) {\n if (!prop(\"trapFocus\") || !prop(\"modal\")) return;\n const contentEl = () => getContentEl(scope);\n return trapFocus(contentEl, {\n preventScroll: true,\n returnFocusOnDeactivate: !!prop(\"restoreFocus\"),\n initialFocus: prop(\"initialFocusEl\"),\n setReturnFocus: (el) => prop(\"finalFocusEl\")?.() ?? el\n });\n },\n hideContentBelow({ scope, prop }) {\n if (!prop(\"modal\")) return;\n const getElements = () => [getContentEl(scope)];\n return ariaHidden(getElements, { defer: true });\n }\n },\n actions: {\n checkRenderedElements({ context, scope }) {\n raf(() => {\n context.set(\"rendered\", {\n title: !!getTitleEl(scope),\n description: !!getDescriptionEl(scope)\n });\n });\n },\n syncZIndex({ scope }) {\n raf(() => {\n const contentEl = getContentEl(scope);\n if (!contentEl) return;\n const styles = getComputedStyle(contentEl);\n const elems = [getPositionerEl(scope), getBackdropEl(scope)];\n elems.forEach((node) => {\n node?.style.setProperty(\"--z-index\", styles.zIndex);\n });\n });\n },\n invokeOnClose({ prop }) {\n prop(\"onOpenChange\")?.({ open: false });\n },\n invokeOnOpen({ prop }) {\n prop(\"onOpenChange\")?.({ open: true });\n },\n toggleVisibility({ prop, send, event }) {\n send({\n type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\",\n previousEvent: event\n });\n }\n }\n }\n});\nvar props = createProps()([\n \"aria-label\",\n \"closeOnEscape\",\n \"closeOnInteractOutside\",\n \"dir\",\n \"finalFocusEl\",\n \"getRootNode\",\n \"getRootNode\",\n \"id\",\n \"id\",\n \"ids\",\n \"initialFocusEl\",\n \"modal\",\n \"onEscapeKeyDown\",\n \"onFocusOutside\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"defaultOpen\",\n \"open\",\n \"persistentElements\",\n \"preventScroll\",\n \"restoreFocus\",\n \"role\",\n \"trapFocus\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport * as dialog from '@zag-js/dialog';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useDialog = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n getRootNode,\n dir,\n ...props\n };\n const service = useMachine(dialog.machine, machineProps);\n return dialog.connect(service, normalizeProps);\n};\n\nexport { useDialog };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useDialog } from './use-dialog.js';\nimport { DialogProvider } from './use-dialog-context.js';\n\nconst DialogRoot = (props) => {\n const [presenceProps, { children, ...localProps }] = splitPresenceProps(props);\n const [renderStrategyProps] = splitRenderStrategyProps(presenceProps);\n const dialog = useDialog(localProps);\n const presence = usePresence(mergeProps({ present: dialog.open }, presenceProps));\n return /* @__PURE__ */ jsx(DialogProvider, { value: dialog, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) }) });\n};\n\nexport { DialogRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogTitle = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getTitleProps(), props);\n return /* @__PURE__ */ jsx(ark.h2, { ...mergedProps, ref });\n});\nDialogTitle.displayName = \"DialogTitle\";\n\nexport { DialogTitle };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogTrigger = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(\n {\n ...dialog.getTriggerProps(),\n \"aria-controls\": presence.unmounted ? void 0 : dialog.getTriggerProps()[\"aria-controls\"]\n },\n props\n );\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nDialogTrigger.displayName = \"DialogTrigger\";\n\nexport { DialogTrigger };\n","'use client';\nimport { jsx, Fragment } from 'react/jsx-runtime';\nimport { isShadowRoot, getDocument } from '@zag-js/dom-query';\nimport { useState, useSyncExternalStore, useEffect, Children } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\n\nconst Portal = (props) => {\n const { children, disabled } = props;\n const [container, setContainer] = useState(props.container?.current);\n const isServer = useSyncExternalStore(\n subscribe,\n () => false,\n () => true\n );\n const { getRootNode } = useEnvironmentContext();\n useEffect(() => {\n setContainer(() => props.container?.current);\n }, [props.container]);\n if (isServer || disabled) return /* @__PURE__ */ jsx(Fragment, { children });\n const mountNode = container ?? getPortalNode(getRootNode);\n return /* @__PURE__ */ jsx(Fragment, { children: Children.map(children, (child) => createPortal(child, mountNode)) });\n};\nconst getPortalNode = (cb) => {\n const node = cb?.();\n const rootNode = node.getRootNode();\n if (isShadowRoot(rootNode)) return rootNode;\n return getDocument(node).body;\n};\nconst subscribe = () => () => {\n};\n\nexport { Portal };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [RadioGroupProvider, useRadioGroupContext] = createContext({\n name: \"RadioGroupContext\",\n hookName: \"useRadioGroupContext\",\n providerName: \"<RadioGroupProvider />\"\n});\n\nexport { RadioGroupProvider, useRadioGroupContext };\n","'use client';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\n\nconst RadioGroupContext = (props) => props.children(useRadioGroupContext());\n\nexport { RadioGroupContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [RadioGroupItemProvider, useRadioGroupItemContext] = createContext({\n name: \"RadioGroupItemContext\",\n hookName: \"useRadioGroupItemContext\",\n providerName: \"<RadioGroupItemProvider />\"\n});\n\nexport { RadioGroupItemProvider, useRadioGroupItemContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [RadioGroupItemPropsProvider, useRadioGroupItemPropsContext] = createContext({\n name: \"RadioGroupItemPropsContext\",\n hookName: \"useRadioGroupItemPropsContext\",\n providerName: \"<RadioGroupItemPropsProvider />\"\n});\n\nexport { RadioGroupItemPropsProvider, useRadioGroupItemPropsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\nimport { RadioGroupItemProvider } from './use-radio-group-item-context.js';\nimport { RadioGroupItemPropsProvider } from './use-radio-group-item-props-context.js';\n\nconst RadioGroupItem = forwardRef((props, ref) => {\n const [itemProps, localProps] = createSplitProps()(props, [\"value\", \"disabled\", \"invalid\"]);\n const radioGroup = useRadioGroupContext();\n const mergedProps = mergeProps(radioGroup.getItemProps(itemProps), localProps);\n const itemState = radioGroup.getItemState(itemProps);\n return /* @__PURE__ */ jsx(RadioGroupItemProvider, { value: itemState, children: /* @__PURE__ */ jsx(RadioGroupItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) }) });\n});\nRadioGroupItem.displayName = \"RadioGroupItem\";\n\nexport { RadioGroupItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\nimport { useRadioGroupItemPropsContext } from './use-radio-group-item-props-context.js';\n\nconst RadioGroupItemControl = forwardRef((props, ref) => {\n const radioGroup = useRadioGroupContext();\n const itemProps = useRadioGroupItemPropsContext();\n const mergedProps = mergeProps(radioGroup.getItemControlProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nRadioGroupItemControl.displayName = \"RadioGroupItemControl\";\n\nexport { RadioGroupItemControl };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\nimport { useRadioGroupItemPropsContext } from './use-radio-group-item-props-context.js';\n\nconst RadioGroupItemHiddenInput = forwardRef((props, ref) => {\n const radioGroup = useRadioGroupContext();\n const itemProps = useRadioGroupItemPropsContext();\n const mergedProps = mergeProps(radioGroup.getItemHiddenInputProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.input, { ...mergedProps, ref });\n});\nRadioGroupItemHiddenInput.displayName = \"RadioGroupItemHiddenInput\";\n\nexport { RadioGroupItemHiddenInput };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\nimport { useRadioGroupItemPropsContext } from './use-radio-group-item-props-context.js';\n\nconst RadioGroupItemText = forwardRef((props, ref) => {\n const radioGroup = useRadioGroupContext();\n const itemProps = useRadioGroupItemPropsContext();\n const mergedProps = mergeProps(radioGroup.getItemTextProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nRadioGroupItemText.displayName = \"RadioGroupItemText\";\n\nexport { RadioGroupItemText };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\n\nconst RadioGroupLabel = forwardRef((props, ref) => {\n const radioGroup = useRadioGroupContext();\n const mergedProps = mergeProps(radioGroup.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref });\n});\nRadioGroupLabel.displayName = \"RadioGroupLabel\";\n\nexport { RadioGroupLabel };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { dispatchInputCheckedEvent, trackElementRect, trackFormControl, queryAll, dataAttr, visuallyHiddenStyle, isSafari } from '@zag-js/dom-query';\nimport { trackFocusVisible, isFocusVisible } from '@zag-js/focus-visible';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { isString, createSplitProps } from '@zag-js/utils';\nimport { createProps } from '@zag-js/types';\n\n// src/radio-group.anatomy.ts\nvar anatomy = createAnatomy(\"radio-group\").parts(\n \"root\",\n \"label\",\n \"item\",\n \"itemText\",\n \"itemControl\",\n \"indicator\"\n);\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `radio-group:${ctx.id}`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `radio-group:${ctx.id}:label`;\nvar getItemId = (ctx, value) => ctx.ids?.item?.(value) ?? `radio-group:${ctx.id}:radio:${value}`;\nvar getItemHiddenInputId = (ctx, value) => ctx.ids?.itemHiddenInput?.(value) ?? `radio-group:${ctx.id}:radio:input:${value}`;\nvar getItemControlId = (ctx, value) => ctx.ids?.itemControl?.(value) ?? `radio-group:${ctx.id}:radio:control:${value}`;\nvar getItemLabelId = (ctx, value) => ctx.ids?.itemLabel?.(value) ?? `radio-group:${ctx.id}:radio:label:${value}`;\nvar getIndicatorId = (ctx) => ctx.ids?.indicator ?? `radio-group:${ctx.id}:indicator`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getItemHiddenInputEl = (ctx, value) => ctx.getById(getItemHiddenInputId(ctx, value));\nvar getIndicatorEl = (ctx) => ctx.getById(getIndicatorId(ctx));\nvar getFirstEnabledInputEl = (ctx) => getRootEl(ctx)?.querySelector(\"input:not(:disabled)\");\nvar getFirstEnabledAndCheckedInputEl = (ctx) => getRootEl(ctx)?.querySelector(\"input:not(:disabled):checked\");\nvar getInputEls = (ctx) => {\n const ownerId = CSS.escape(getRootId(ctx));\n const selector = `input[type=radio][data-ownedby='${ownerId}']:not([disabled])`;\n return queryAll(getRootEl(ctx), selector);\n};\nvar getRadioEl = (ctx, value) => {\n if (!value) return;\n return ctx.getById(getItemId(ctx, value));\n};\nvar getOffsetRect = (el) => ({\n left: el?.offsetLeft ?? 0,\n top: el?.offsetTop ?? 0,\n width: el?.offsetWidth ?? 0,\n height: el?.offsetHeight ?? 0\n});\nvar resolveRect = (rect) => ({\n width: `${rect.width}px`,\n height: `${rect.height}px`,\n left: `${rect.left}px`,\n top: `${rect.top}px`\n});\n\n// src/radio-group.connect.ts\nfunction connect(service, normalize) {\n const { context, send, computed, prop, scope } = service;\n const groupDisabled = computed(\"isDisabled\");\n const readOnly = prop(\"readOnly\");\n function getItemState(props2) {\n const focused = context.get(\"focusedValue\") === props2.value;\n const focusVisible = focused && isFocusVisible();\n return {\n value: props2.value,\n invalid: !!props2.invalid,\n disabled: !!props2.disabled || groupDisabled,\n checked: context.get(\"value\") === props2.value,\n focused,\n focusVisible,\n hovered: context.get(\"hoveredValue\") === props2.value,\n active: context.get(\"activeValue\") === props2.value\n };\n }\n function getItemDataAttrs(props2) {\n const itemState = getItemState(props2);\n return {\n \"data-focus\": dataAttr(itemState.focused),\n \"data-focus-visible\": dataAttr(itemState.focusVisible),\n \"data-disabled\": dataAttr(itemState.disabled),\n \"data-readonly\": dataAttr(readOnly),\n \"data-state\": itemState.checked ? \"checked\" : \"unchecked\",\n \"data-hover\": dataAttr(itemState.hovered),\n \"data-invalid\": dataAttr(itemState.invalid),\n \"data-orientation\": prop(\"orientation\"),\n \"data-ssr\": dataAttr(context.get(\"ssr\"))\n };\n }\n const focus = () => {\n const nodeToFocus = getFirstEnabledAndCheckedInputEl(scope) ?? getFirstEnabledInputEl(scope);\n nodeToFocus?.focus();\n };\n return {\n focus,\n value: context.get(\"value\"),\n setValue(value) {\n send({ type: \"SET_VALUE\", value, isTrusted: false });\n },\n clearValue() {\n send({ type: \"SET_VALUE\", value: null, isTrusted: false });\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n role: \"radiogroup\",\n id: getRootId(scope),\n \"aria-labelledby\": getLabelId(scope),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(groupDisabled),\n \"aria-orientation\": prop(\"orientation\"),\n dir: prop(\"dir\"),\n style: {\n position: \"relative\"\n }\n });\n },\n getLabelProps() {\n return normalize.element({\n ...parts.label.attrs,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(groupDisabled),\n id: getLabelId(scope),\n onClick: focus\n });\n },\n getItemState,\n getItemProps(props2) {\n const itemState = getItemState(props2);\n return normalize.label({\n ...parts.item.attrs,\n dir: prop(\"dir\"),\n id: getItemId(scope, props2.value),\n htmlFor: getItemHiddenInputId(scope, props2.value),\n ...getItemDataAttrs(props2),\n onPointerMove() {\n if (itemState.disabled) return;\n if (itemState.hovered) return;\n send({ type: \"SET_HOVERED\", value: props2.value, hovered: true });\n },\n onPointerLeave() {\n if (itemState.disabled) return;\n send({ type: \"SET_HOVERED\", value: null });\n },\n onPointerDown(event) {\n if (itemState.disabled) return;\n if (itemState.focused && event.pointerType === \"mouse\") {\n event.preventDefault();\n }\n send({ type: \"SET_ACTIVE\", value: props2.value, active: true });\n },\n onPointerUp() {\n if (itemState.disabled) return;\n send({ type: \"SET_ACTIVE\", value: null });\n },\n onClick() {\n if (!itemState.disabled && isSafari()) {\n getItemHiddenInputEl(scope, props2.value)?.focus();\n }\n }\n });\n },\n getItemTextProps(props2) {\n return normalize.element({\n ...parts.itemText.attrs,\n dir: prop(\"dir\"),\n id: getItemLabelId(scope, props2.value),\n ...getItemDataAttrs(props2)\n });\n },\n getItemControlProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n ...parts.itemControl.attrs,\n dir: prop(\"dir\"),\n id: getItemControlId(scope, props2.value),\n \"data-active\": dataAttr(itemState.active),\n \"aria-hidden\": true,\n ...getItemDataAttrs(props2)\n });\n },\n getItemHiddenInputProps(props2) {\n const itemState = getItemState(props2);\n return normalize.input({\n \"data-ownedby\": getRootId(scope),\n id: getItemHiddenInputId(scope, props2.value),\n type: \"radio\",\n name: prop(\"name\") || prop(\"id\"),\n form: prop(\"form\"),\n value: props2.value,\n onClick(event) {\n if (readOnly) {\n event.preventDefault();\n return;\n }\n if (event.currentTarget.checked) {\n send({ type: \"SET_VALUE\", value: props2.value, isTrusted: true });\n }\n },\n onBlur() {\n send({ type: \"SET_FOCUSED\", value: null, focused: false });\n },\n onFocus() {\n send({ type: \"SET_FOCUSED\", value: props2.value, focused: true });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (event.key === \" \") {\n send({ type: \"SET_ACTIVE\", value: props2.value, active: true });\n }\n },\n onKeyUp(event) {\n if (event.defaultPrevented) return;\n if (event.key === \" \") {\n send({ type: \"SET_ACTIVE\", value: null });\n }\n },\n disabled: itemState.disabled,\n defaultChecked: itemState.checked,\n style: visuallyHiddenStyle\n });\n },\n getIndicatorProps() {\n const rect = context.get(\"indicatorRect\");\n return normalize.element({\n id: getIndicatorId(scope),\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n hidden: context.get(\"value\") == null,\n \"data-disabled\": dataAttr(groupDisabled),\n \"data-orientation\": prop(\"orientation\"),\n style: {\n \"--transition-property\": \"left, top, width, height\",\n \"--left\": rect?.left,\n \"--top\": rect?.top,\n \"--width\": rect?.width,\n \"--height\": rect?.height,\n position: \"absolute\",\n willChange: \"var(--transition-property)\",\n transitionProperty: \"var(--transition-property)\",\n transitionDuration: context.get(\"canIndicatorTransition\") ? \"var(--transition-duration, 150ms)\" : \"0ms\",\n transitionTimingFunction: \"var(--transition-timing-function)\",\n [prop(\"orientation\") === \"horizontal\" ? \"left\" : \"top\"]: prop(\"orientation\") === \"horizontal\" ? \"var(--left)\" : \"var(--top)\"\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n orientation: \"vertical\",\n ...props2\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n })),\n activeValue: bindable(() => ({\n defaultValue: null\n })),\n focusedValue: bindable(() => ({\n defaultValue: null\n })),\n hoveredValue: bindable(() => ({\n defaultValue: null\n })),\n indicatorRect: bindable(() => ({\n defaultValue: {}\n })),\n canIndicatorTransition: bindable(() => ({\n defaultValue: false\n })),\n fieldsetDisabled: bindable(() => ({\n defaultValue: false\n })),\n ssr: bindable(() => ({\n defaultValue: true\n }))\n };\n },\n refs() {\n return {\n indicatorCleanup: null\n };\n },\n computed: {\n isDisabled: ({ prop, context }) => !!prop(\"disabled\") || context.get(\"fieldsetDisabled\")\n },\n entry: [\"syncIndicatorRect\", \"syncSsr\"],\n exit: [\"cleanupObserver\"],\n effects: [\"trackFormControlState\", \"trackFocusVisible\"],\n watch({ track, action, context }) {\n track([() => context.get(\"value\")], () => {\n action([\"setIndicatorTransition\", \"syncIndicatorRect\", \"syncInputElements\"]);\n });\n },\n on: {\n SET_VALUE: [\n {\n guard: not(\"isTrusted\"),\n actions: [\"setValue\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"setValue\"]\n }\n ],\n SET_HOVERED: {\n actions: [\"setHovered\"]\n },\n SET_ACTIVE: {\n actions: [\"setActive\"]\n },\n SET_FOCUSED: {\n actions: [\"setFocused\"]\n }\n },\n states: {\n idle: {}\n },\n implementations: {\n guards: {\n isTrusted: ({ event }) => !!event.isTrusted\n },\n effects: {\n trackFormControlState({ context, scope }) {\n return trackFormControl(getRootEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n context.set(\"value\", context.initial(\"value\"));\n }\n });\n },\n trackFocusVisible({ scope }) {\n return trackFocusVisible({ root: scope.getRootNode?.() });\n }\n },\n actions: {\n setValue({ context, event }) {\n context.set(\"value\", event.value);\n },\n setHovered({ context, event }) {\n context.set(\"hoveredValue\", event.value);\n },\n setActive({ context, event }) {\n context.set(\"activeValue\", event.value);\n },\n setFocused({ context, event }) {\n context.set(\"focusedValue\", event.value);\n },\n syncInputElements({ context, scope }) {\n const inputs = getInputEls(scope);\n inputs.forEach((input) => {\n input.checked = input.value === context.get(\"value\");\n });\n },\n setIndicatorTransition({ context }) {\n context.set(\"canIndicatorTransition\", isString(context.get(\"value\")));\n },\n cleanupObserver({ refs }) {\n refs.get(\"indicatorCleanup\")?.();\n },\n syncSsr({ context }) {\n context.set(\"ssr\", false);\n },\n syncIndicatorRect({ context, scope, refs }) {\n refs.get(\"indicatorCleanup\")?.();\n if (!getIndicatorEl(scope)) return;\n const value = context.get(\"value\");\n const radioEl = getRadioEl(scope, value);\n if (value == null || !radioEl) {\n context.set(\"canIndicatorTransition\", false);\n context.set(\"indicatorRect\", {});\n return;\n }\n const indicatorCleanup = trackElementRect([radioEl], {\n measure(el) {\n return getOffsetRect(el);\n },\n onEntry({ rects }) {\n context.set(\"indicatorRect\", resolveRect(rects[0]));\n }\n });\n refs.set(\"indicatorCleanup\", indicatorCleanup);\n },\n dispatchChangeEvent({ context, scope }) {\n const inputEls = getInputEls(scope);\n inputEls.forEach((inputEl) => {\n const checked = inputEl.value === context.get(\"value\");\n if (checked === inputEl.checked) return;\n dispatchInputCheckedEvent(inputEl, { checked });\n });\n }\n }\n }\n});\nvar props = createProps()([\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"name\",\n \"onValueChange\",\n \"orientation\",\n \"readOnly\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar itemProps = createProps()([\"value\", \"disabled\", \"invalid\"]);\nvar splitItemProps = createSplitProps(itemProps);\n\nexport { anatomy, connect, itemProps, machine, props, splitItemProps, splitProps };\n","'use client';\nimport * as radio from '@zag-js/radio-group';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useRadioGroup = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(radio.machine, machineProps);\n return radio.connect(service, normalizeProps);\n};\n\nexport { useRadioGroup };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useRadioGroup } from './use-radio-group.js';\nimport { RadioGroupProvider } from './use-radio-group-context.js';\n\nconst RadioGroupRoot = forwardRef((props, ref) => {\n const [useRadioGroupProps, localProps] = createSplitProps()(props, [\n \"defaultValue\",\n \"disabled\",\n \"form\",\n \"id\",\n \"ids\",\n \"name\",\n \"onValueChange\",\n \"orientation\",\n \"readOnly\",\n \"value\"\n ]);\n const radioGroup = useRadioGroup(useRadioGroupProps);\n const mergedProps = mergeProps(radioGroup.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { value: radioGroup, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nRadioGroupRoot.displayName = \"RadioGroupRoot\";\n\nexport { RadioGroupRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { RadioGroupProvider } from './use-radio-group-context.js';\n\nconst RadioGroupRootProvider = forwardRef((props, ref) => {\n const [{ value: radioGroup }, localProps] = createSplitProps()(props, [\"value\"]);\n const mergedProps = mergeProps(radioGroup.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { value: radioGroup, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nRadioGroupRootProvider.displayName = \"RadioGroupRootProvider\";\n\nexport { RadioGroupRootProvider };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SelectProvider, useSelectContext] = createContext({\n name: \"SelectContext\",\n hookName: \"useSelectContext\",\n providerName: \"<SelectProvider />\"\n});\n\nexport { SelectProvider, useSelectContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectContent = forwardRef((props, ref) => {\n const select = useSelectContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(select.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nSelectContent.displayName = \"SelectContent\";\n\nexport { SelectContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectControl = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getControlProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nSelectControl.displayName = \"SelectControl\";\n\nexport { SelectControl };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SelectItemProvider, useSelectItemContext] = createContext({\n name: \"SelectItemContext\",\n hookName: \"useSelectItemContext\",\n providerName: \"<SelectItemProvider />\"\n});\n\nexport { SelectItemProvider, useSelectItemContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SelectItemPropsProvider, useSelectItemPropsContext] = createContext({\n name: \"SelectItemPropsContext\",\n hookName: \"useSelectItemPropsContext\",\n providerName: \"<SelectItemPropsProvider />\"\n});\n\nexport { SelectItemPropsProvider, useSelectItemPropsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\nimport { SelectItemProvider } from './use-select-item-context.js';\nimport { SelectItemPropsProvider } from './use-select-item-props-context.js';\n\nconst SelectItem = forwardRef((props, ref) => {\n const [itemProps, localProps] = createSplitProps()(props, [\"item\", \"persistFocus\"]);\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getItemProps(itemProps), localProps);\n const itemState = select.getItemState(itemProps);\n return /* @__PURE__ */ jsx(SelectItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsx(SelectItemProvider, { value: itemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nSelectItem.displayName = \"SelectItem\";\n\nexport { SelectItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectLabel = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref });\n});\nSelectLabel.displayName = \"SelectLabel\";\n\nexport { SelectLabel };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectPositioner = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nSelectPositioner.displayName = \"SelectPositioner\";\n\nexport { SelectPositioner };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { ListCollection } from '@zag-js/collection';\nimport { raf, getInitialFocus, observeAttributes, trackFormControl, getByTypeahead, scrollIntoView, isSelfTarget, isValidTabEvent, getEventKey, getEventTarget, isEditableElement, visuallyHiddenStyle, dataAttr, ariaAttr } from '@zag-js/dom-query';\nimport { getPlacement, getPlacementStyles } from '@zag-js/popper';\nimport { addOrRemove, isEqual, createSplitProps, ensure } from '@zag-js/utils';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { trackDismissableElement } from '@zag-js/dismissable';\nimport { createProps } from '@zag-js/types';\n\n// src/select.anatomy.ts\nvar anatomy = createAnatomy(\"select\").parts(\n \"label\",\n \"positioner\",\n \"trigger\",\n \"indicator\",\n \"clearTrigger\",\n \"item\",\n \"itemText\",\n \"itemIndicator\",\n \"itemGroup\",\n \"itemGroupLabel\",\n \"list\",\n \"content\",\n \"root\",\n \"control\",\n \"valueText\"\n);\nvar parts = anatomy.build();\nvar collection = (options) => {\n return new ListCollection(options);\n};\ncollection.empty = () => {\n return new ListCollection({ items: [] });\n};\n\n// src/select.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `select:${ctx.id}`;\nvar getContentId = (ctx) => ctx.ids?.content ?? `select:${ctx.id}:content`;\nvar getTriggerId = (ctx) => ctx.ids?.trigger ?? `select:${ctx.id}:trigger`;\nvar getClearTriggerId = (ctx) => ctx.ids?.clearTrigger ?? `select:${ctx.id}:clear-trigger`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `select:${ctx.id}:label`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `select:${ctx.id}:control`;\nvar getItemId = (ctx, id) => ctx.ids?.item?.(id) ?? `select:${ctx.id}:option:${id}`;\nvar getHiddenSelectId = (ctx) => ctx.ids?.hiddenSelect ?? `select:${ctx.id}:select`;\nvar getPositionerId = (ctx) => ctx.ids?.positioner ?? `select:${ctx.id}:positioner`;\nvar getItemGroupId = (ctx, id) => ctx.ids?.itemGroup?.(id) ?? `select:${ctx.id}:optgroup:${id}`;\nvar getItemGroupLabelId = (ctx, id) => ctx.ids?.itemGroupLabel?.(id) ?? `select:${ctx.id}:optgroup-label:${id}`;\nvar getHiddenSelectEl = (ctx) => ctx.getById(getHiddenSelectId(ctx));\nvar getContentEl = (ctx) => ctx.getById(getContentId(ctx));\nvar getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));\nvar getClearTriggerEl = (ctx) => ctx.getById(getClearTriggerId(ctx));\nvar getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));\nvar getItemEl = (ctx, id) => ctx.getById(getItemId(ctx, id));\n\n// src/select.connect.ts\nfunction connect(service, normalize) {\n const { context, prop, scope, state, computed, send } = service;\n const disabled = prop(\"disabled\") || context.get(\"fieldsetDisabled\");\n const invalid = prop(\"invalid\");\n const readOnly = prop(\"readOnly\");\n const composite = prop(\"composite\");\n const collection2 = prop(\"collection\");\n const open = state.hasTag(\"open\");\n const focused = state.matches(\"focused\");\n const highlightedValue = context.get(\"highlightedValue\");\n const highlightedItem = context.get(\"highlightedItem\");\n const selectedItems = context.get(\"selectedItems\");\n const currentPlacement = context.get(\"currentPlacement\");\n const isTypingAhead = computed(\"isTypingAhead\");\n const interactive = computed(\"isInteractive\");\n const ariaActiveDescendant = highlightedValue ? getItemId(scope, highlightedValue) : void 0;\n function getItemState(props2) {\n const _disabled = collection2.getItemDisabled(props2.item);\n const value = collection2.getItemValue(props2.item);\n ensure(value, () => `[zag-js] No value found for item ${JSON.stringify(props2.item)}`);\n return {\n value,\n disabled: Boolean(disabled || _disabled),\n highlighted: highlightedValue === value,\n selected: context.get(\"value\").includes(value)\n };\n }\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: currentPlacement\n });\n return {\n open,\n focused,\n empty: context.get(\"value\").length === 0,\n highlightedItem,\n highlightedValue,\n selectedItems,\n hasSelectedItems: computed(\"hasSelectedItems\"),\n value: context.get(\"value\"),\n valueAsString: context.get(\"valueAsString\"),\n collection: collection2,\n multiple: !!prop(\"multiple\"),\n disabled: !!disabled,\n reposition(options = {}) {\n send({ type: \"POSITIONING.SET\", options });\n },\n focus() {\n getTriggerEl(scope)?.focus({ preventScroll: true });\n },\n setOpen(nextOpen) {\n const open2 = state.hasTag(\"open\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"OPEN\" : \"CLOSE\" });\n },\n selectValue(value) {\n send({ type: \"ITEM.SELECT\", value });\n },\n setValue(value) {\n send({ type: \"VALUE.SET\", value });\n },\n selectAll() {\n send({ type: \"VALUE.SET\", value: collection2.getValues() });\n },\n highlightValue(value) {\n send({ type: \"HIGHLIGHTED_VALUE.SET\", value });\n },\n clearValue(value) {\n if (value) {\n send({ type: \"ITEM.CLEAR\", value });\n } else {\n send({ type: \"VALUE.CLEAR\" });\n }\n },\n getItemState,\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly)\n });\n },\n getLabelProps() {\n return normalize.label({\n dir: prop(\"dir\"),\n id: getLabelId(scope),\n ...parts.label.attrs,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly),\n htmlFor: getHiddenSelectId(scope),\n onClick(event) {\n if (event.defaultPrevented) return;\n if (disabled) return;\n getTriggerEl(scope)?.focus({ preventScroll: true });\n }\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n dir: prop(\"dir\"),\n id: getControlId(scope),\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-focus\": dataAttr(focused),\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid)\n });\n },\n getValueTextProps() {\n return normalize.element({\n ...parts.valueText.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-focus\": dataAttr(focused)\n });\n },\n getTriggerProps() {\n return normalize.button({\n id: getTriggerId(scope),\n disabled,\n dir: prop(\"dir\"),\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": getContentId(scope),\n \"aria-expanded\": open,\n \"aria-haspopup\": \"listbox\",\n \"data-state\": open ? \"open\" : \"closed\",\n \"aria-invalid\": invalid,\n \"aria-labelledby\": getLabelId(scope),\n ...parts.trigger.attrs,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly),\n \"data-placement\": currentPlacement,\n \"data-placeholder-shown\": dataAttr(!computed(\"hasSelectedItems\")),\n onClick(event) {\n if (!interactive) return;\n if (event.defaultPrevented) return;\n send({ type: \"TRIGGER.CLICK\" });\n },\n onFocus() {\n send({ type: \"TRIGGER.FOCUS\" });\n },\n onBlur() {\n send({ type: \"TRIGGER.BLUR\" });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n const keyMap = {\n ArrowUp() {\n send({ type: \"TRIGGER.ARROW_UP\" });\n },\n ArrowDown(event2) {\n send({ type: event2.altKey ? \"OPEN\" : \"TRIGGER.ARROW_DOWN\" });\n },\n ArrowLeft() {\n send({ type: \"TRIGGER.ARROW_LEFT\" });\n },\n ArrowRight() {\n send({ type: \"TRIGGER.ARROW_RIGHT\" });\n },\n Home() {\n send({ type: \"TRIGGER.HOME\" });\n },\n End() {\n send({ type: \"TRIGGER.END\" });\n },\n Enter() {\n send({ type: \"TRIGGER.ENTER\" });\n },\n Space(event2) {\n if (isTypingAhead) {\n send({ type: \"TRIGGER.TYPEAHEAD\", key: event2.key });\n } else {\n send({ type: \"TRIGGER.ENTER\" });\n }\n }\n };\n const exec = keyMap[getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: \"vertical\"\n })];\n if (exec) {\n exec(event);\n event.preventDefault();\n return;\n }\n if (getByTypeahead.isValidEvent(event)) {\n send({ type: \"TRIGGER.TYPEAHEAD\", key: event.key });\n event.preventDefault();\n }\n }\n });\n },\n getIndicatorProps() {\n return normalize.element({\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n \"aria-hidden\": true,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly)\n });\n },\n getItemProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n id: getItemId(scope, itemState.value),\n role: \"option\",\n ...parts.item.attrs,\n dir: prop(\"dir\"),\n \"data-value\": itemState.value,\n \"aria-selected\": itemState.selected,\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n \"data-highlighted\": dataAttr(itemState.highlighted),\n \"data-disabled\": dataAttr(itemState.disabled),\n \"aria-disabled\": ariaAttr(itemState.disabled),\n onPointerMove(event) {\n if (itemState.disabled || event.pointerType !== \"mouse\") return;\n if (itemState.value === highlightedValue) return;\n send({ type: \"ITEM.POINTER_MOVE\", value: itemState.value });\n },\n onClick(event) {\n if (event.defaultPrevented) return;\n if (itemState.disabled) return;\n send({ type: \"ITEM.CLICK\", src: \"pointerup\", value: itemState.value });\n },\n onPointerLeave(event) {\n if (itemState.disabled) return;\n if (props2.persistFocus) return;\n if (event.pointerType !== \"mouse\") return;\n const pointerMoved = service.event.previous()?.type.includes(\"POINTER\");\n if (!pointerMoved) return;\n send({ type: \"ITEM.POINTER_LEAVE\" });\n }\n });\n },\n getItemTextProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n ...parts.itemText.attrs,\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n \"data-disabled\": dataAttr(itemState.disabled),\n \"data-highlighted\": dataAttr(itemState.highlighted)\n });\n },\n getItemIndicatorProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n \"aria-hidden\": true,\n ...parts.itemIndicator.attrs,\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n hidden: !itemState.selected\n });\n },\n getItemGroupLabelProps(props2) {\n const { htmlFor } = props2;\n return normalize.element({\n ...parts.itemGroupLabel.attrs,\n id: getItemGroupLabelId(scope, htmlFor),\n dir: prop(\"dir\"),\n role: \"presentation\"\n });\n },\n getItemGroupProps(props2) {\n const { id } = props2;\n return normalize.element({\n ...parts.itemGroup.attrs,\n \"data-disabled\": dataAttr(disabled),\n id: getItemGroupId(scope, id),\n \"aria-labelledby\": getItemGroupLabelId(scope, id),\n role: \"group\",\n dir: prop(\"dir\")\n });\n },\n getClearTriggerProps() {\n return normalize.button({\n ...parts.clearTrigger.attrs,\n id: getClearTriggerId(scope),\n type: \"button\",\n \"aria-label\": \"Clear value\",\n \"data-invalid\": dataAttr(invalid),\n disabled,\n hidden: !computed(\"hasSelectedItems\"),\n dir: prop(\"dir\"),\n onClick(event) {\n if (event.defaultPrevented) return;\n send({ type: \"CLEAR.CLICK\" });\n }\n });\n },\n getHiddenSelectProps() {\n const value = context.get(\"value\");\n const defaultValue = prop(\"multiple\") ? value : value?.[0];\n return normalize.select({\n name: prop(\"name\"),\n form: prop(\"form\"),\n disabled,\n multiple: prop(\"multiple\"),\n required: prop(\"required\"),\n \"aria-hidden\": true,\n id: getHiddenSelectId(scope),\n defaultValue,\n style: visuallyHiddenStyle,\n tabIndex: -1,\n // Some browser extensions will focus the hidden select.\n // Let's forward the focus to the trigger.\n onFocus() {\n getTriggerEl(scope)?.focus({ preventScroll: true });\n },\n \"aria-labelledby\": getLabelId(scope)\n });\n },\n getPositionerProps() {\n return normalize.element({\n ...parts.positioner.attrs,\n dir: prop(\"dir\"),\n id: getPositionerId(scope),\n style: popperStyles.floating\n });\n },\n getContentProps() {\n return normalize.element({\n hidden: !open,\n dir: prop(\"dir\"),\n id: getContentId(scope),\n role: composite ? \"listbox\" : \"dialog\",\n ...parts.content.attrs,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-placement\": currentPlacement,\n \"data-activedescendant\": ariaActiveDescendant,\n \"aria-activedescendant\": composite ? ariaActiveDescendant : void 0,\n \"aria-multiselectable\": prop(\"multiple\") && composite ? true : void 0,\n \"aria-labelledby\": getLabelId(scope),\n tabIndex: 0,\n onKeyDown(event) {\n if (!interactive) return;\n if (!isSelfTarget(event)) return;\n if (event.key === \"Tab\") {\n const valid = isValidTabEvent(event);\n if (!valid) {\n event.preventDefault();\n return;\n }\n }\n const keyMap = {\n ArrowUp() {\n send({ type: \"CONTENT.ARROW_UP\" });\n },\n ArrowDown() {\n send({ type: \"CONTENT.ARROW_DOWN\" });\n },\n Home() {\n send({ type: \"CONTENT.HOME\" });\n },\n End() {\n send({ type: \"CONTENT.END\" });\n },\n Enter() {\n send({ type: \"ITEM.CLICK\", src: \"keydown.enter\" });\n },\n Space(event2) {\n if (isTypingAhead) {\n send({ type: \"CONTENT.TYPEAHEAD\", key: event2.key });\n } else {\n keyMap.Enter?.(event2);\n }\n }\n };\n const exec = keyMap[getEventKey(event)];\n if (exec) {\n exec(event);\n event.preventDefault();\n return;\n }\n const target = getEventTarget(event);\n if (isEditableElement(target)) {\n return;\n }\n if (getByTypeahead.isValidEvent(event)) {\n send({ type: \"CONTENT.TYPEAHEAD\", key: event.key });\n event.preventDefault();\n }\n }\n });\n },\n getListProps() {\n return normalize.element({\n ...parts.list.attrs,\n tabIndex: 0,\n role: !composite ? \"listbox\" : void 0,\n \"aria-labelledby\": getTriggerId(scope),\n \"aria-activedescendant\": !composite ? ariaActiveDescendant : void 0,\n \"aria-multiselectable\": !composite && prop(\"multiple\") ? true : void 0\n });\n }\n };\n}\nvar { and, not, or } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n loopFocus: false,\n closeOnSelect: !props2.multiple,\n composite: true,\n defaultValue: [],\n ...props2,\n collection: props2.collection ?? collection.empty(),\n positioning: {\n placement: \"bottom-start\",\n gutter: 8,\n ...props2.positioning\n }\n };\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n isEqual,\n onChange(value) {\n const items = prop(\"collection\").findMany(value);\n return prop(\"onValueChange\")?.({ value, items });\n }\n })),\n highlightedValue: bindable(() => ({\n defaultValue: prop(\"defaultHighlightedValue\") || null,\n value: prop(\"highlightedValue\"),\n onChange(value) {\n prop(\"onHighlightChange\")?.({\n highlightedValue: value,\n highlightedItem: prop(\"collection\").find(value),\n highlightedIndex: prop(\"collection\").indexOf(value)\n });\n }\n })),\n currentPlacement: bindable(() => ({\n defaultValue: void 0\n })),\n fieldsetDisabled: bindable(() => ({\n defaultValue: false\n })),\n highlightedItem: bindable(() => ({\n defaultValue: null\n })),\n selectedItems: bindable(() => {\n const value = prop(\"value\") ?? prop(\"defaultValue\") ?? [];\n const items = prop(\"collection\").findMany(value);\n return { defaultValue: items };\n }),\n valueAsString: bindable(() => {\n const value = prop(\"value\") ?? prop(\"defaultValue\") ?? [];\n return { defaultValue: prop(\"collection\").stringifyMany(value) };\n })\n };\n },\n refs() {\n return {\n typeahead: { ...getByTypeahead.defaultOptions }\n };\n },\n computed: {\n hasSelectedItems: ({ context }) => context.get(\"value\").length > 0,\n isTypingAhead: ({ refs }) => refs.get(\"typeahead\").keysSoFar !== \"\",\n isDisabled: ({ prop, context }) => !!prop(\"disabled\") || !!context.get(\"fieldsetDisabled\"),\n isInteractive: ({ prop }) => !(prop(\"disabled\") || prop(\"readOnly\"))\n },\n initialState({ prop }) {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"idle\";\n },\n entry: [\"syncSelectElement\"],\n watch({ context, prop, track, action }) {\n track([() => context.get(\"value\").toString()], () => {\n action([\"syncSelectedItems\", \"syncSelectElement\", \"dispatchChangeEvent\"]);\n });\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"]);\n });\n track([() => context.get(\"highlightedValue\")], () => {\n action([\"syncHighlightedItem\"]);\n });\n track([() => prop(\"collection\").toString()], () => {\n action([\"syncCollection\"]);\n });\n },\n on: {\n \"HIGHLIGHTED_VALUE.SET\": {\n actions: [\"setHighlightedItem\"]\n },\n \"ITEM.SELECT\": {\n actions: [\"selectItem\"]\n },\n \"ITEM.CLEAR\": {\n actions: [\"clearItem\"]\n },\n \"VALUE.SET\": {\n actions: [\"setSelectedItems\"]\n },\n \"VALUE.CLEAR\": {\n actions: [\"clearSelectedItems\"]\n },\n \"CLEAR.CLICK\": {\n actions: [\"clearSelectedItems\", \"focusTriggerEl\"]\n }\n },\n effects: [\"trackFormControlState\"],\n states: {\n idle: {\n tags: [\"closed\"],\n on: {\n \"CONTROLLED.OPEN\": [\n {\n guard: \"isTriggerClickEvent\",\n target: \"open\",\n actions: [\"setInitialFocus\", \"highlightFirstSelectedItem\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\"]\n }\n ],\n \"TRIGGER.CLICK\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\", \"setInitialFocus\", \"highlightFirstSelectedItem\"]\n }\n ],\n \"TRIGGER.FOCUS\": {\n target: \"focused\"\n },\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\"]\n }\n ]\n }\n },\n focused: {\n tags: [\"closed\"],\n on: {\n \"CONTROLLED.OPEN\": [\n {\n guard: \"isTriggerClickEvent\",\n target: \"open\",\n actions: [\"setInitialFocus\", \"highlightFirstSelectedItem\"]\n },\n {\n guard: \"isTriggerArrowUpEvent\",\n target: \"open\",\n actions: [\"setInitialFocus\", \"highlightComputedLastItem\"]\n },\n {\n guard: or(\"isTriggerArrowDownEvent\", \"isTriggerEnterEvent\"),\n target: \"open\",\n actions: [\"setInitialFocus\", \"highlightComputedFirstItem\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\"]\n }\n ],\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\"]\n }\n ],\n \"TRIGGER.BLUR\": {\n target: \"idle\"\n },\n \"TRIGGER.CLICK\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\", \"highlightFirstSelectedItem\"]\n }\n ],\n \"TRIGGER.ENTER\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\", \"highlightComputedFirstItem\"]\n }\n ],\n \"TRIGGER.ARROW_UP\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\", \"highlightComputedLastItem\"]\n }\n ],\n \"TRIGGER.ARROW_DOWN\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\", \"highlightComputedFirstItem\"]\n }\n ],\n \"TRIGGER.ARROW_LEFT\": [\n {\n guard: and(not(\"multiple\"), \"hasSelectedItems\"),\n actions: [\"selectPreviousItem\"]\n },\n {\n guard: not(\"multiple\"),\n actions: [\"selectLastItem\"]\n }\n ],\n \"TRIGGER.ARROW_RIGHT\": [\n {\n guard: and(not(\"multiple\"), \"hasSelectedItems\"),\n actions: [\"selectNextItem\"]\n },\n {\n guard: not(\"multiple\"),\n actions: [\"selectFirstItem\"]\n }\n ],\n \"TRIGGER.HOME\": {\n guard: not(\"multiple\"),\n actions: [\"selectFirstItem\"]\n },\n \"TRIGGER.END\": {\n guard: not(\"multiple\"),\n actions: [\"selectLastItem\"]\n },\n \"TRIGGER.TYPEAHEAD\": {\n guard: not(\"multiple\"),\n actions: [\"selectMatchingItem\"]\n }\n }\n },\n open: {\n tags: [\"open\"],\n exit: [\"scrollContentToTop\"],\n effects: [\"trackDismissableElement\", \"computePlacement\", \"scrollToHighlightedItem\"],\n on: {\n \"CONTROLLED.CLOSE\": {\n target: \"focused\",\n actions: [\"focusTriggerEl\", \"clearHighlightedItem\"]\n },\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"focused\",\n actions: [\"invokeOnClose\", \"focusTriggerEl\", \"clearHighlightedItem\"]\n }\n ],\n \"TRIGGER.CLICK\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"focused\",\n actions: [\"invokeOnClose\", \"clearHighlightedItem\"]\n }\n ],\n \"ITEM.CLICK\": [\n {\n guard: and(\"closeOnSelect\", \"isOpenControlled\"),\n actions: [\"selectHighlightedItem\", \"invokeOnClose\"]\n },\n {\n guard: \"closeOnSelect\",\n target: \"focused\",\n actions: [\"selectHighlightedItem\", \"invokeOnClose\", \"focusTriggerEl\", \"clearHighlightedItem\"]\n },\n {\n actions: [\"selectHighlightedItem\"]\n }\n ],\n \"CONTENT.HOME\": {\n actions: [\"highlightFirstItem\"]\n },\n \"CONTENT.END\": {\n actions: [\"highlightLastItem\"]\n },\n \"CONTENT.ARROW_DOWN\": [\n {\n guard: and(\"hasHighlightedItem\", \"loop\", \"isLastItemHighlighted\"),\n actions: [\"highlightFirstItem\"]\n },\n {\n guard: \"hasHighlightedItem\",\n actions: [\"highlightNextItem\"]\n },\n {\n actions: [\"highlightFirstItem\"]\n }\n ],\n \"CONTENT.ARROW_UP\": [\n {\n guard: and(\"hasHighlightedItem\", \"loop\", \"isFirstItemHighlighted\"),\n actions: [\"highlightLastItem\"]\n },\n {\n guard: \"hasHighlightedItem\",\n actions: [\"highlightPreviousItem\"]\n },\n {\n actions: [\"highlightLastItem\"]\n }\n ],\n \"CONTENT.TYPEAHEAD\": {\n actions: [\"highlightMatchingItem\"]\n },\n \"ITEM.POINTER_MOVE\": {\n actions: [\"highlightItem\"]\n },\n \"ITEM.POINTER_LEAVE\": {\n actions: [\"clearHighlightedItem\"]\n },\n \"POSITIONING.SET\": {\n actions: [\"reposition\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n loop: ({ prop }) => !!prop(\"loopFocus\"),\n multiple: ({ prop }) => !!prop(\"multiple\"),\n hasSelectedItems: ({ computed }) => !!computed(\"hasSelectedItems\"),\n hasHighlightedItem: ({ context }) => context.get(\"highlightedValue\") != null,\n isFirstItemHighlighted: ({ context, prop }) => context.get(\"highlightedValue\") === prop(\"collection\").firstValue,\n isLastItemHighlighted: ({ context, prop }) => context.get(\"highlightedValue\") === prop(\"collection\").lastValue,\n closeOnSelect: ({ prop, event }) => !!(event.closeOnSelect ?? prop(\"closeOnSelect\")),\n // guard assertions (for controlled mode)\n isOpenControlled: ({ prop }) => prop(\"open\") !== void 0,\n isTriggerClickEvent: ({ event }) => event.previousEvent?.type === \"TRIGGER.CLICK\",\n isTriggerEnterEvent: ({ event }) => event.previousEvent?.type === \"TRIGGER.ENTER\",\n isTriggerArrowUpEvent: ({ event }) => event.previousEvent?.type === \"TRIGGER.ARROW_UP\",\n isTriggerArrowDownEvent: ({ event }) => event.previousEvent?.type === \"TRIGGER.ARROW_DOWN\"\n },\n effects: {\n trackFormControlState({ context, scope }) {\n return trackFormControl(getHiddenSelectEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n const value = context.initial(\"value\");\n context.set(\"value\", value);\n }\n });\n },\n trackDismissableElement({ scope, send, prop }) {\n const contentEl = () => getContentEl(scope);\n let restoreFocus = true;\n return trackDismissableElement(contentEl, {\n defer: true,\n exclude: [getTriggerEl(scope), getClearTriggerEl(scope)],\n onFocusOutside: prop(\"onFocusOutside\"),\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n onInteractOutside(event) {\n prop(\"onInteractOutside\")?.(event);\n restoreFocus = !(event.detail.focusable || event.detail.contextmenu);\n },\n onDismiss() {\n send({ type: \"CLOSE\", src: \"interact-outside\", restoreFocus });\n }\n });\n },\n computePlacement({ context, prop, scope }) {\n const positioning = prop(\"positioning\");\n context.set(\"currentPlacement\", positioning.placement);\n const triggerEl = () => getTriggerEl(scope);\n const positionerEl = () => getPositionerEl(scope);\n return getPlacement(triggerEl, positionerEl, {\n defer: true,\n ...positioning,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n scrollToHighlightedItem({ context, prop, scope, event }) {\n const exec = (immediate) => {\n const highlightedValue = context.get(\"highlightedValue\");\n if (highlightedValue == null) return;\n if (event.current().type.includes(\"POINTER\")) return;\n const optionEl = getItemEl(scope, highlightedValue);\n const contentEl2 = getContentEl(scope);\n const scrollToIndexFn = prop(\"scrollToIndexFn\");\n if (scrollToIndexFn) {\n const highlightedIndex = prop(\"collection\").indexOf(highlightedValue);\n scrollToIndexFn?.({ index: highlightedIndex, immediate });\n return;\n }\n scrollIntoView(optionEl, { rootEl: contentEl2, block: \"nearest\" });\n };\n raf(() => exec(true));\n const contentEl = () => getContentEl(scope);\n return observeAttributes(contentEl, {\n defer: true,\n attributes: [\"data-activedescendant\"],\n callback() {\n exec(false);\n }\n });\n }\n },\n actions: {\n reposition({ context, prop, scope, event }) {\n const positionerEl = () => getPositionerEl(scope);\n getPlacement(getTriggerEl(scope), positionerEl, {\n ...prop(\"positioning\"),\n ...event.options,\n defer: true,\n listeners: false,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n toggleVisibility({ send, prop, event }) {\n send({ type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\", previousEvent: event });\n },\n highlightPreviousItem({ context, prop }) {\n const highlightedValue = context.get(\"highlightedValue\");\n if (highlightedValue == null) return;\n const value = prop(\"collection\").getPreviousValue(highlightedValue, 1, prop(\"loopFocus\"));\n context.set(\"highlightedValue\", value);\n },\n highlightNextItem({ context, prop }) {\n const highlightedValue = context.get(\"highlightedValue\");\n if (highlightedValue == null) return;\n const value = prop(\"collection\").getNextValue(highlightedValue, 1, prop(\"loopFocus\"));\n context.set(\"highlightedValue\", value);\n },\n highlightFirstItem({ context, prop }) {\n const value = prop(\"collection\").firstValue;\n context.set(\"highlightedValue\", value);\n },\n highlightLastItem({ context, prop }) {\n const value = prop(\"collection\").lastValue;\n context.set(\"highlightedValue\", value);\n },\n setInitialFocus({ scope }) {\n raf(() => {\n const element = getInitialFocus({\n root: getContentEl(scope)\n });\n element?.focus({ preventScroll: true });\n });\n },\n focusTriggerEl({ event, scope }) {\n const restoreFocus = event.restoreFocus ?? event.previousEvent?.restoreFocus;\n if (restoreFocus != null && !restoreFocus) return;\n raf(() => {\n const element = getTriggerEl(scope);\n element?.focus({ preventScroll: true });\n });\n },\n selectHighlightedItem({ context, prop, event }) {\n let value = event.value ?? context.get(\"highlightedValue\");\n if (value == null) return;\n const nullable = prop(\"deselectable\") && !prop(\"multiple\") && context.get(\"value\").includes(value);\n value = nullable ? null : value;\n context.set(\"value\", (prev) => {\n if (value == null) return [];\n if (prop(\"multiple\")) return addOrRemove(prev, value);\n return [value];\n });\n },\n highlightComputedFirstItem({ context, prop, computed }) {\n const collection2 = prop(\"collection\");\n const value = computed(\"hasSelectedItems\") ? collection2.sort(context.get(\"value\"))[0] : collection2.firstValue;\n context.set(\"highlightedValue\", value);\n },\n highlightComputedLastItem({ context, prop, computed }) {\n const collection2 = prop(\"collection\");\n const value = computed(\"hasSelectedItems\") ? collection2.sort(context.get(\"value\"))[0] : collection2.lastValue;\n context.set(\"highlightedValue\", value);\n },\n highlightFirstSelectedItem({ context, prop, computed }) {\n if (!computed(\"hasSelectedItems\")) return;\n const value = prop(\"collection\").sort(context.get(\"value\"))[0];\n context.set(\"highlightedValue\", value);\n },\n highlightItem({ context, event }) {\n context.set(\"highlightedValue\", event.value);\n },\n highlightMatchingItem({ context, prop, event, refs }) {\n const value = prop(\"collection\").search(event.key, {\n state: refs.get(\"typeahead\"),\n currentValue: context.get(\"highlightedValue\")\n });\n if (value == null) return;\n context.set(\"highlightedValue\", value);\n },\n setHighlightedItem({ context, event }) {\n context.set(\"highlightedValue\", event.value);\n },\n clearHighlightedItem({ context }) {\n context.set(\"highlightedValue\", null);\n },\n selectItem({ context, prop, event }) {\n const nullable = prop(\"deselectable\") && !prop(\"multiple\") && context.get(\"value\").includes(event.value);\n const value = nullable ? null : event.value;\n context.set(\"value\", (prev) => {\n if (value == null) return [];\n if (prop(\"multiple\")) return addOrRemove(prev, value);\n return [value];\n });\n },\n clearItem({ context, event }) {\n context.set(\"value\", (prev) => prev.filter((v) => v !== event.value));\n },\n setSelectedItems({ context, event }) {\n context.set(\"value\", event.value);\n },\n clearSelectedItems({ context }) {\n context.set(\"value\", []);\n },\n selectPreviousItem({ context, prop }) {\n const [firstItem] = context.get(\"value\");\n const value = prop(\"collection\").getPreviousValue(firstItem);\n if (value) context.set(\"value\", [value]);\n },\n selectNextItem({ context, prop }) {\n const [firstItem] = context.get(\"value\");\n const value = prop(\"collection\").getNextValue(firstItem);\n if (value) context.set(\"value\", [value]);\n },\n selectFirstItem({ context, prop }) {\n const value = prop(\"collection\").firstValue;\n if (value) context.set(\"value\", [value]);\n },\n selectLastItem({ context, prop }) {\n const value = prop(\"collection\").lastValue;\n if (value) context.set(\"value\", [value]);\n },\n selectMatchingItem({ context, prop, event, refs }) {\n const value = prop(\"collection\").search(event.key, {\n state: refs.get(\"typeahead\"),\n currentValue: context.get(\"value\")[0]\n });\n if (value == null) return;\n context.set(\"value\", [value]);\n },\n scrollContentToTop({ prop, scope }) {\n if (prop(\"scrollToIndexFn\")) {\n prop(\"scrollToIndexFn\")?.({ index: 0, immediate: true });\n } else {\n getContentEl(scope)?.scrollTo(0, 0);\n }\n },\n invokeOnOpen({ prop }) {\n prop(\"onOpenChange\")?.({ open: true });\n },\n invokeOnClose({ prop }) {\n prop(\"onOpenChange\")?.({ open: false });\n },\n syncSelectElement({ context, prop, scope }) {\n const selectEl = getHiddenSelectEl(scope);\n if (!selectEl) return;\n if (context.get(\"value\").length === 0 && !prop(\"multiple\")) {\n selectEl.selectedIndex = -1;\n return;\n }\n for (const option of selectEl.options) {\n option.selected = context.get(\"value\").includes(option.value);\n }\n },\n syncCollection({ context, prop }) {\n const collection2 = prop(\"collection\");\n const highlightedItem = collection2.find(context.get(\"highlightedValue\"));\n if (highlightedItem) context.set(\"highlightedItem\", highlightedItem);\n const selectedItems = collection2.findMany(context.get(\"value\"));\n context.set(\"selectedItems\", selectedItems);\n const valueAsString = collection2.stringifyItems(selectedItems);\n context.set(\"valueAsString\", valueAsString);\n },\n syncSelectedItems({ context, prop }) {\n const collection2 = prop(\"collection\");\n const prevSelectedItems = context.get(\"selectedItems\");\n const value = context.get(\"value\");\n const selectedItems = value.map((value2) => {\n const item = prevSelectedItems.find((item2) => collection2.getItemValue(item2) === value2);\n return item || collection2.find(value2);\n });\n context.set(\"selectedItems\", selectedItems);\n context.set(\"valueAsString\", collection2.stringifyItems(selectedItems));\n },\n syncHighlightedItem({ context, prop }) {\n const collection2 = prop(\"collection\");\n const highlightedValue = context.get(\"highlightedValue\");\n const highlightedItem = highlightedValue ? collection2.find(highlightedValue) : null;\n context.set(\"highlightedItem\", highlightedItem);\n },\n dispatchChangeEvent({ scope }) {\n queueMicrotask(() => {\n const node = getHiddenSelectEl(scope);\n if (!node) return;\n const win = scope.getWin();\n const changeEvent = new win.Event(\"change\", { bubbles: true, composed: true });\n node.dispatchEvent(changeEvent);\n });\n }\n }\n }\n});\nvar props = createProps()([\n \"closeOnSelect\",\n \"collection\",\n \"dir\",\n \"disabled\",\n \"deselectable\",\n \"form\",\n \"getRootNode\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"loopFocus\",\n \"multiple\",\n \"name\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onValueChange\",\n \"defaultOpen\",\n \"open\",\n \"composite\",\n \"positioning\",\n \"required\",\n \"readOnly\",\n \"scrollToIndexFn\",\n \"value\",\n \"defaultValue\",\n \"defaultHighlightedValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar itemProps = createProps()([\"item\", \"persistFocus\"]);\nvar splitItemProps = createSplitProps(itemProps);\nvar itemGroupProps = createProps()([\"id\"]);\nvar splitItemGroupProps = createSplitProps(itemGroupProps);\nvar itemGroupLabelProps = createProps()([\"htmlFor\"]);\nvar splitItemGroupLabelProps = createSplitProps(itemGroupLabelProps);\n\nexport { anatomy, collection, connect, itemGroupLabelProps, itemGroupProps, itemProps, machine, props, splitItemGroupLabelProps, splitItemGroupProps, splitItemProps, splitProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as select from '@zag-js/select';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\nimport { useFieldContext } from '../field/use-field-context.js';\n\nconst useSelect = (props) => {\n const id = useId();\n const { dir } = useLocaleContext();\n const { getRootNode } = useEnvironmentContext();\n const field = useFieldContext();\n const machineProps = {\n id,\n ids: {\n label: field?.ids.label,\n hiddenSelect: field?.ids.control\n },\n disabled: field?.disabled,\n readOnly: field?.readOnly,\n invalid: field?.invalid,\n required: field?.required,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(select.machine, machineProps);\n return select.connect(service, normalizeProps);\n};\n\nexport { useSelect };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useSelect } from './use-select.js';\nimport { SelectProvider } from './use-select-context.js';\n\nconst SelectImpl = (props, ref) => {\n const [presenceProps, selectProps] = splitPresenceProps(props);\n const [useSelectProps, localProps] = createSplitProps()(selectProps, [\n \"closeOnSelect\",\n \"collection\",\n \"composite\",\n \"defaultHighlightedValue\",\n \"defaultOpen\",\n \"defaultValue\",\n \"deselectable\",\n \"disabled\",\n \"form\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"loopFocus\",\n \"multiple\",\n \"name\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onValueChange\",\n \"open\",\n \"positioning\",\n \"readOnly\",\n \"required\",\n \"scrollToIndexFn\",\n \"value\"\n ]);\n const select = useSelect(useSelectProps);\n const presence = usePresence(mergeProps({ present: select.open }, presenceProps));\n const mergedProps = mergeProps(select.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(SelectProvider, { value: select, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n};\nconst SelectRoot = forwardRef(SelectImpl);\n\nexport { SelectRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectTrigger = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nSelectTrigger.displayName = \"SelectTrigger\";\n\nexport { SelectTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectValueText = forwardRef((props, ref) => {\n const { children, placeholder, ...localprops } = props;\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getValueTextProps(), localprops);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref, children: children || select.valueAsString || placeholder });\n});\nSelectValueText.displayName = \"SelectValueText\";\n\nexport { SelectValueText };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SwitchProvider, useSwitchContext] = createContext({\n name: \"SwitchContext\",\n hookName: \"useSwitchContext\",\n providerName: \"<SwitchProvider />\"\n});\n\nexport { SwitchProvider, useSwitchContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSwitchContext } from './use-switch-context.js';\n\nconst SwitchControl = forwardRef((props, ref) => {\n const switchContext = useSwitchContext();\n const mergedProps = mergeProps(switchContext.getControlProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nSwitchControl.displayName = \"SwitchControl\";\n\nexport { SwitchControl };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from '../field/use-field-context.js';\nimport { useSwitchContext } from './use-switch-context.js';\n\nconst SwitchHiddenInput = forwardRef((props, ref) => {\n const switchContext = useSwitchContext();\n const mergedProps = mergeProps(switchContext.getHiddenInputProps(), props);\n const field = useFieldContext();\n return /* @__PURE__ */ jsx(ark.input, { \"aria-describedby\": field?.ariaDescribedby, ...mergedProps, ref });\n});\nSwitchHiddenInput.displayName = \"SwitchHiddenInput\";\n\nexport { SwitchHiddenInput };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSwitchContext } from './use-switch-context.js';\n\nconst SwitchLabel = forwardRef((props, ref) => {\n const switchContext = useSwitchContext();\n const mergedProps = mergeProps(switchContext.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nSwitchLabel.displayName = \"SwitchLabel\";\n\nexport { SwitchLabel };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { dispatchInputCheckedEvent, setElementChecked, trackFormControl, trackPress, dataAttr, visuallyHiddenStyle, getEventTarget, isSafari } from '@zag-js/dom-query';\nimport { trackFocusVisible, isFocusVisible } from '@zag-js/focus-visible';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/switch.anatomy.ts\nvar anatomy = createAnatomy(\"switch\").parts(\"root\", \"label\", \"control\", \"thumb\");\nvar parts = anatomy.build();\n\n// src/switch.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `switch:${ctx.id}`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `switch:${ctx.id}:label`;\nvar getThumbId = (ctx) => ctx.ids?.thumb ?? `switch:${ctx.id}:thumb`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `switch:${ctx.id}:control`;\nvar getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `switch:${ctx.id}:input`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));\n\n// src/switch.connect.ts\nfunction connect(service, normalize) {\n const { context, send, prop, scope } = service;\n const disabled = prop(\"disabled\");\n const readOnly = prop(\"readOnly\");\n const checked = !!context.get(\"checked\");\n const focused = !disabled && context.get(\"focused\");\n const focusVisible = !disabled && context.get(\"focusVisible\");\n const dataAttrs = {\n \"data-active\": dataAttr(context.get(\"active\")),\n \"data-focus\": dataAttr(focused),\n \"data-focus-visible\": dataAttr(focusVisible),\n \"data-readonly\": dataAttr(readOnly),\n \"data-hover\": dataAttr(context.get(\"hovered\")),\n \"data-disabled\": dataAttr(disabled),\n \"data-state\": checked ? \"checked\" : \"unchecked\",\n \"data-invalid\": dataAttr(prop(\"invalid\"))\n };\n return {\n checked,\n disabled,\n focused,\n setChecked(checked2) {\n send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: false });\n },\n toggleChecked() {\n send({ type: \"CHECKED.TOGGLE\", checked, isTrusted: false });\n },\n getRootProps() {\n return normalize.label({\n ...parts.root.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n htmlFor: getHiddenInputId(scope),\n onPointerMove() {\n if (disabled) return;\n send({ type: \"CONTEXT.SET\", context: { hovered: true } });\n },\n onPointerLeave() {\n if (disabled) return;\n send({ type: \"CONTEXT.SET\", context: { hovered: false } });\n },\n onClick(event) {\n if (disabled) return;\n const target = getEventTarget(event);\n if (target === getHiddenInputEl(scope)) {\n event.stopPropagation();\n }\n if (isSafari()) {\n getHiddenInputEl(scope)?.focus();\n }\n }\n });\n },\n getLabelProps() {\n return normalize.element({\n ...parts.label.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getLabelId(scope)\n });\n },\n getThumbProps() {\n return normalize.element({\n ...parts.thumb.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getThumbId(scope),\n \"aria-hidden\": true\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getControlId(scope),\n \"aria-hidden\": true\n });\n },\n getHiddenInputProps() {\n return normalize.input({\n id: getHiddenInputId(scope),\n type: \"checkbox\",\n required: prop(\"required\"),\n defaultChecked: checked,\n disabled,\n \"aria-labelledby\": getLabelId(scope),\n \"aria-invalid\": prop(\"invalid\"),\n name: prop(\"name\"),\n form: prop(\"form\"),\n value: prop(\"value\"),\n style: visuallyHiddenStyle,\n onFocus() {\n const focusVisible2 = isFocusVisible();\n send({ type: \"CONTEXT.SET\", context: { focused: true, focusVisible: focusVisible2 } });\n },\n onBlur() {\n send({ type: \"CONTEXT.SET\", context: { focused: false, focusVisible: false } });\n },\n onClick(event) {\n if (readOnly) {\n event.preventDefault();\n return;\n }\n const checked2 = event.currentTarget.checked;\n send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: true });\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n defaultChecked: false,\n label: \"switch\",\n value: \"on\",\n ...props2\n };\n },\n initialState() {\n return \"ready\";\n },\n context({ prop, bindable }) {\n return {\n checked: bindable(() => ({\n defaultValue: prop(\"defaultChecked\"),\n value: prop(\"checked\"),\n onChange(value) {\n prop(\"onCheckedChange\")?.({ checked: value });\n }\n })),\n fieldsetDisabled: bindable(() => ({\n defaultValue: false\n })),\n focusVisible: bindable(() => ({\n defaultValue: false\n })),\n active: bindable(() => ({\n defaultValue: false\n })),\n focused: bindable(() => ({\n defaultValue: false\n })),\n hovered: bindable(() => ({\n defaultValue: false\n }))\n };\n },\n computed: {\n isDisabled: ({ context, prop }) => prop(\"disabled\") || context.get(\"fieldsetDisabled\")\n },\n watch({ track, prop, context, action }) {\n track([() => prop(\"disabled\")], () => {\n action([\"removeFocusIfNeeded\"]);\n });\n track([() => context.get(\"checked\")], () => {\n action([\"syncInputElement\"]);\n });\n },\n effects: [\"trackFormControlState\", \"trackPressEvent\", \"trackFocusVisible\"],\n on: {\n \"CHECKED.TOGGLE\": [\n {\n guard: not(\"isTrusted\"),\n actions: [\"toggleChecked\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"toggleChecked\"]\n }\n ],\n \"CHECKED.SET\": [\n {\n guard: not(\"isTrusted\"),\n actions: [\"setChecked\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"setChecked\"]\n }\n ],\n \"CONTEXT.SET\": {\n actions: [\"setContext\"]\n }\n },\n states: {\n ready: {}\n },\n implementations: {\n guards: {\n isTrusted: ({ event }) => !!event.isTrusted\n },\n effects: {\n trackPressEvent({ computed, scope, context }) {\n if (computed(\"isDisabled\")) return;\n return trackPress({\n pointerNode: getRootEl(scope),\n keyboardNode: getHiddenInputEl(scope),\n isValidKey: (event) => event.key === \" \",\n onPress: () => context.set(\"active\", false),\n onPressStart: () => context.set(\"active\", true),\n onPressEnd: () => context.set(\"active\", false)\n });\n },\n trackFocusVisible({ computed, scope }) {\n if (computed(\"isDisabled\")) return;\n return trackFocusVisible({ root: scope.getRootNode() });\n },\n trackFormControlState({ context, send, scope }) {\n return trackFormControl(getHiddenInputEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n const checked = context.initial(\"checked\");\n send({ type: \"CHECKED.SET\", checked: !!checked, src: \"form-reset\" });\n }\n });\n }\n },\n actions: {\n setContext({ context, event }) {\n for (const key in event.context) {\n context.set(key, event.context[key]);\n }\n },\n syncInputElement({ context, scope }) {\n const inputEl = getHiddenInputEl(scope);\n if (!inputEl) return;\n setElementChecked(inputEl, !!context.get(\"checked\"));\n },\n removeFocusIfNeeded({ context, prop }) {\n if (prop(\"disabled\")) {\n context.set(\"focused\", false);\n }\n },\n setChecked({ context, event }) {\n context.set(\"checked\", event.checked);\n },\n toggleChecked({ context }) {\n context.set(\"checked\", !context.get(\"checked\"));\n },\n dispatchChangeEvent({ context, scope }) {\n const inputEl = getHiddenInputEl(scope);\n dispatchInputCheckedEvent(inputEl, { checked: context.get(\"checked\") });\n }\n }\n }\n});\nvar props = createProps()([\n \"checked\",\n \"defaultChecked\",\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"label\",\n \"name\",\n \"onCheckedChange\",\n \"readOnly\",\n \"required\",\n \"value\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as zagSwitch from '@zag-js/switch';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\nimport { useFieldContext } from '../field/use-field-context.js';\n\nconst useSwitch = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const field = useFieldContext();\n const machineProps = {\n id,\n ids: {\n label: field?.ids.label,\n hiddenInput: field?.ids.control\n },\n dir,\n disabled: field?.disabled,\n readOnly: field?.readOnly,\n invalid: field?.invalid,\n required: field?.required,\n getRootNode,\n ...props\n };\n const service = useMachine(zagSwitch.machine, machineProps);\n return zagSwitch.connect(service, normalizeProps);\n};\n\nexport { useSwitch };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useSwitch } from './use-switch.js';\nimport { SwitchProvider } from './use-switch-context.js';\n\nconst SwitchRoot = forwardRef((props, ref) => {\n const [switchProps, localProps] = createSplitProps()(props, [\n \"checked\",\n \"defaultChecked\",\n \"disabled\",\n \"form\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"label\",\n \"name\",\n \"onCheckedChange\",\n \"readOnly\",\n \"required\",\n \"value\"\n ]);\n const switchContext = useSwitch(switchProps);\n const mergedProps = mergeProps(switchContext.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(SwitchProvider, { value: switchContext, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) });\n});\nSwitchRoot.displayName = \"SwitchRoot\";\n\nexport { SwitchRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { SwitchProvider } from './use-switch-context.js';\n\nconst SwitchRootProvider = forwardRef((props, ref) => {\n const [{ value: api }, localProps] = createSplitProps()(props, [\"value\"]);\n const mergedProps = mergeProps(api.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(SwitchProvider, { value: api, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) });\n});\nSwitchRootProvider.displayName = \"SwitchRootProvider\";\n\nexport { SwitchRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSwitchContext } from './use-switch-context.js';\n\nconst SwitchThumb = forwardRef((props, ref) => {\n const switchContext = useSwitchContext();\n const mergedProps = mergeProps(switchContext.getThumbProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nSwitchThumb.displayName = \"SwitchThumb\";\n\nexport { SwitchThumb };\n","'use client';\nimport { useState, useEffect } from 'react';\n\nfunction useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n return debouncedValue;\n}\n\nexport { useDebounce };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [TabsProvider, useTabsContext] = createContext({\n name: \"TabsContext\",\n hookName: \"useTabsContext\",\n providerName: \"<TabsProvider />\"\n});\n\nexport { TabsProvider, useTabsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { useRenderStrategyPropsContext } from '../../utils/render-strategy.js';\nimport { useDebounce } from '../../utils/use-debounce.js';\nimport { ark } from '../factory.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabContent = forwardRef((props, ref) => {\n const [contentProps, localProps] = createSplitProps()(props, [\"value\"]);\n const tabs = useTabsContext();\n const renderStrategyProps = useRenderStrategyPropsContext();\n const presence = usePresence({\n ...renderStrategyProps,\n present: useDebounce(tabs.value === props.value, 0),\n immediate: true\n });\n const mergedProps = mergeProps(tabs.getContentProps(contentProps), presence.getPresenceProps(), localProps);\n return /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: presence.unmounted ? null : /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) }) });\n});\nTabContent.displayName = \"TabContent\";\n\nexport { TabContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabIndicator = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabIndicator.displayName = \"TabIndicator\";\n\nexport { TabIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabList = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getListProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabList.displayName = \"TabList\";\n\nexport { TabList };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabTrigger = forwardRef((props, ref) => {\n const [tabProps, localProps] = createSplitProps()(props, [\"disabled\", \"value\"]);\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getTriggerProps(tabProps), localProps);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nTabTrigger.displayName = \"TabTrigger\";\n\nexport { TabTrigger };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { isAnchorElement, trackElementRect, nextTick, raf, getFocusables, prevById, nextById, clickIfLink, itemById, queryAll, dataAttr, isSafari, isSelfTarget, isComposingEvent, getEventKey } from '@zag-js/dom-query';\nimport { last, first, createSplitProps } from '@zag-js/utils';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/tabs.anatomy.ts\nvar anatomy = createAnatomy(\"tabs\").parts(\"root\", \"list\", \"trigger\", \"content\", \"indicator\");\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `tabs:${ctx.id}`;\nvar getListId = (ctx) => ctx.ids?.list ?? `tabs:${ctx.id}:list`;\nvar getContentId = (ctx, id) => ctx.ids?.content ?? `tabs:${ctx.id}:content-${id}`;\nvar getTriggerId = (ctx, id) => ctx.ids?.trigger ?? `tabs:${ctx.id}:trigger-${id}`;\nvar getIndicatorId = (ctx) => ctx.ids?.indicator ?? `tabs:${ctx.id}:indicator`;\nvar getListEl = (ctx) => ctx.getById(getListId(ctx));\nvar getContentEl = (ctx, id) => ctx.getById(getContentId(ctx, id));\nvar getTriggerEl = (ctx, id) => ctx.getById(getTriggerId(ctx, id));\nvar getIndicatorEl = (ctx) => ctx.getById(getIndicatorId(ctx));\nvar getElements = (ctx) => {\n const ownerId = CSS.escape(getListId(ctx));\n const selector = `[role=tab][data-ownedby='${ownerId}']:not([disabled])`;\n return queryAll(getListEl(ctx), selector);\n};\nvar getFirstTriggerEl = (ctx) => first(getElements(ctx));\nvar getLastTriggerEl = (ctx) => last(getElements(ctx));\nvar getNextTriggerEl = (ctx, opts) => nextById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getPrevTriggerEl = (ctx, opts) => prevById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getOffsetRect = (el) => {\n return {\n left: el?.offsetLeft ?? 0,\n top: el?.offsetTop ?? 0,\n width: el?.offsetWidth ?? 0,\n height: el?.offsetHeight ?? 0\n };\n};\nvar getRectById = (ctx, id) => {\n const tab = itemById(getElements(ctx), getTriggerId(ctx, id));\n return resolveRect(getOffsetRect(tab));\n};\nvar resolveRect = (rect) => ({\n width: `${rect.width}px`,\n height: `${rect.height}px`,\n left: `${rect.left}px`,\n top: `${rect.top}px`\n});\n\n// src/tabs.connect.ts\nfunction connect(service, normalize) {\n const { state, send, context, prop, scope } = service;\n const translations = prop(\"translations\");\n const focused = state.matches(\"focused\");\n const isVertical = prop(\"orientation\") === \"vertical\";\n const isHorizontal = prop(\"orientation\") === \"horizontal\";\n const composite = prop(\"composite\");\n function getTriggerState(props2) {\n return {\n selected: context.get(\"value\") === props2.value,\n focused: context.get(\"focusedValue\") === props2.value,\n disabled: !!props2.disabled\n };\n }\n return {\n value: context.get(\"value\"),\n focusedValue: context.get(\"focusedValue\"),\n setValue(value) {\n send({ type: \"SET_VALUE\", value });\n },\n clearValue() {\n send({ type: \"CLEAR_VALUE\" });\n },\n setIndicatorRect(value) {\n const id = getTriggerId(scope, value);\n send({ type: \"SET_INDICATOR_RECT\", id });\n },\n syncTabIndex() {\n send({ type: \"SYNC_TAB_INDEX\" });\n },\n selectNext(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectNext\" });\n send({ type: \"ARROW_NEXT\", src: \"selectNext\" });\n },\n selectPrev(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectPrev\" });\n send({ type: \"ARROW_PREV\", src: \"selectPrev\" });\n },\n focus() {\n const value = context.get(\"value\");\n if (!value) return;\n getTriggerEl(scope, value)?.focus();\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n id: getRootId(scope),\n \"data-orientation\": prop(\"orientation\"),\n \"data-focus\": dataAttr(focused),\n dir: prop(\"dir\")\n });\n },\n getListProps() {\n return normalize.element({\n ...parts.list.attrs,\n id: getListId(scope),\n role: \"tablist\",\n dir: prop(\"dir\"),\n \"data-focus\": dataAttr(focused),\n \"aria-orientation\": prop(\"orientation\"),\n \"data-orientation\": prop(\"orientation\"),\n \"aria-label\": translations?.listLabel,\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (isComposingEvent(event)) return;\n const keyMap = {\n ArrowDown() {\n if (isHorizontal) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowDown\" });\n },\n ArrowUp() {\n if (isHorizontal) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowUp\" });\n },\n ArrowLeft() {\n if (isVertical) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowLeft\" });\n },\n ArrowRight() {\n if (isVertical) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowRight\" });\n },\n Home() {\n send({ type: \"HOME\" });\n },\n End() {\n send({ type: \"END\" });\n },\n Enter() {\n send({ type: \"ENTER\" });\n }\n };\n let key = getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: prop(\"orientation\")\n });\n const exec = keyMap[key];\n if (exec) {\n event.preventDefault();\n exec(event);\n }\n }\n });\n },\n getTriggerState,\n getTriggerProps(props2) {\n const { value, disabled } = props2;\n const triggerState = getTriggerState(props2);\n return normalize.button({\n ...parts.trigger.attrs,\n role: \"tab\",\n type: \"button\",\n disabled,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(disabled),\n \"aria-disabled\": disabled,\n \"data-value\": value,\n \"aria-selected\": triggerState.selected,\n \"data-selected\": dataAttr(triggerState.selected),\n \"data-focus\": dataAttr(triggerState.focused),\n \"aria-controls\": triggerState.selected ? getContentId(scope, value) : void 0,\n \"data-ownedby\": getListId(scope),\n \"data-ssr\": dataAttr(context.get(\"ssr\")),\n id: getTriggerId(scope, value),\n tabIndex: triggerState.selected && composite ? 0 : -1,\n onFocus() {\n send({ type: \"TAB_FOCUS\", value });\n },\n onBlur(event) {\n const target = event.relatedTarget;\n if (target?.getAttribute(\"role\") !== \"tab\") {\n send({ type: \"TAB_BLUR\" });\n }\n },\n onClick(event) {\n if (event.defaultPrevented) return;\n if (disabled) return;\n if (isSafari()) {\n event.currentTarget.focus();\n }\n send({ type: \"TAB_CLICK\", value });\n }\n });\n },\n getContentProps(props2) {\n const { value } = props2;\n const selected = context.get(\"value\") === value;\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n id: getContentId(scope, value),\n tabIndex: composite ? 0 : -1,\n \"aria-labelledby\": getTriggerId(scope, value),\n role: \"tabpanel\",\n \"data-ownedby\": getListId(scope),\n \"data-selected\": dataAttr(selected),\n \"data-orientation\": prop(\"orientation\"),\n hidden: !selected\n });\n },\n getIndicatorProps() {\n const indicatorRect = context.get(\"indicatorRect\");\n const indicatorTransition = context.get(\"indicatorTransition\");\n return normalize.element({\n id: getIndicatorId(scope),\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n style: {\n \"--transition-property\": \"left, right, top, bottom, width, height\",\n \"--left\": indicatorRect.left,\n \"--top\": indicatorRect.top,\n \"--width\": indicatorRect.width,\n \"--height\": indicatorRect.height,\n position: \"absolute\",\n willChange: \"var(--transition-property)\",\n transitionProperty: \"var(--transition-property)\",\n transitionDuration: indicatorTransition ? \"var(--transition-duration, 150ms)\" : \"0ms\",\n transitionTimingFunction: \"var(--transition-timing-function)\",\n [isHorizontal ? \"left\" : \"top\"]: isHorizontal ? \"var(--left)\" : \"var(--top)\"\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n dir: \"ltr\",\n orientation: \"horizontal\",\n activationMode: \"automatic\",\n loopFocus: true,\n composite: true,\n navigate(details) {\n clickIfLink(details.node);\n },\n defaultValue: null,\n ...props2\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n })),\n focusedValue: bindable(() => ({\n defaultValue: prop(\"value\") || prop(\"defaultValue\"),\n sync: true,\n onChange(value) {\n prop(\"onFocusChange\")?.({ focusedValue: value });\n }\n })),\n ssr: bindable(() => ({ defaultValue: true })),\n indicatorTransition: bindable(() => ({ defaultValue: false })),\n indicatorRect: bindable(() => ({\n defaultValue: { left: \"0px\", top: \"0px\", width: \"0px\", height: \"0px\" }\n }))\n };\n },\n watch({ context, prop, track, action }) {\n track([() => context.get(\"value\")], () => {\n action([\"allowIndicatorTransition\", \"syncIndicatorRect\", \"syncTabIndex\", \"navigateIfNeeded\"]);\n });\n track([() => prop(\"dir\"), () => prop(\"orientation\")], () => {\n action([\"syncIndicatorRect\"]);\n });\n },\n on: {\n SET_VALUE: {\n actions: [\"setValue\"]\n },\n CLEAR_VALUE: {\n actions: [\"clearValue\"]\n },\n SET_INDICATOR_RECT: {\n actions: [\"setIndicatorRect\"]\n },\n SYNC_TAB_INDEX: {\n actions: [\"syncTabIndex\"]\n }\n },\n entry: [\"syncIndicatorRect\", \"syncTabIndex\", \"syncSsr\"],\n exit: [\"cleanupObserver\"],\n states: {\n idle: {\n on: {\n TAB_FOCUS: {\n target: \"focused\",\n actions: [\"setFocusedValue\"]\n },\n TAB_CLICK: {\n target: \"focused\",\n actions: [\"setFocusedValue\", \"setValue\"]\n }\n }\n },\n focused: {\n on: {\n TAB_CLICK: {\n target: \"focused\",\n actions: [\"setFocusedValue\", \"setValue\"]\n },\n ARROW_PREV: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusPrevTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusPrevTab\"]\n }\n ],\n ARROW_NEXT: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusNextTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusNextTab\"]\n }\n ],\n HOME: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusFirstTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusFirstTab\"]\n }\n ],\n END: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusLastTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusLastTab\"]\n }\n ],\n ENTER: {\n guard: not(\"selectOnFocus\"),\n actions: [\"selectFocusedTab\"]\n },\n TAB_FOCUS: {\n actions: [\"setFocusedValue\"]\n },\n TAB_BLUR: {\n target: \"idle\",\n actions: [\"clearFocusedValue\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n selectOnFocus: ({ prop }) => prop(\"activationMode\") === \"automatic\"\n },\n actions: {\n selectFocusedTab({ context, prop }) {\n raf(() => {\n const focusedValue = context.get(\"focusedValue\");\n if (!focusedValue) return;\n const nullable = prop(\"deselectable\") && context.get(\"value\") === focusedValue;\n const value = nullable ? null : focusedValue;\n context.set(\"value\", value);\n });\n },\n setFocusedValue({ context, event, flush }) {\n if (event.value == null) return;\n flush(() => {\n context.set(\"focusedValue\", event.value);\n });\n },\n clearFocusedValue({ context }) {\n context.set(\"focusedValue\", null);\n },\n setValue({ context, event, prop }) {\n const nullable = prop(\"deselectable\") && context.get(\"value\") === context.get(\"focusedValue\");\n context.set(\"value\", nullable ? null : event.value);\n },\n clearValue({ context }) {\n context.set(\"value\", null);\n },\n focusFirstTab({ scope }) {\n raf(() => {\n getFirstTriggerEl(scope)?.focus();\n });\n },\n focusLastTab({ scope }) {\n raf(() => {\n getLastTriggerEl(scope)?.focus();\n });\n },\n focusNextTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getNextTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n focusPrevTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getPrevTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n syncTabIndex({ context, scope }) {\n raf(() => {\n const value = context.get(\"value\");\n if (!value) return;\n const contentEl = getContentEl(scope, value);\n if (!contentEl) return;\n const focusables = getFocusables(contentEl);\n if (focusables.length > 0) {\n contentEl.removeAttribute(\"tabindex\");\n } else {\n contentEl.setAttribute(\"tabindex\", \"0\");\n }\n });\n },\n cleanupObserver({ refs }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n },\n allowIndicatorTransition({ context }) {\n context.set(\"indicatorTransition\", true);\n },\n setIndicatorRect({ context, event, scope }) {\n const value = event.id ?? context.get(\"value\");\n const indicatorEl = getIndicatorEl(scope);\n if (!indicatorEl) return;\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n if (!triggerEl) return;\n context.set(\"indicatorRect\", getRectById(scope, value));\n nextTick(() => {\n context.set(\"indicatorTransition\", false);\n });\n },\n syncSsr({ context }) {\n context.set(\"ssr\", false);\n },\n syncIndicatorRect({ context, refs, scope }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n const value = context.get(\"value\");\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n const indicatorEl = getIndicatorEl(scope);\n if (!triggerEl || !indicatorEl) return;\n const indicatorCleanup = trackElementRect([triggerEl], {\n measure(el) {\n return getOffsetRect(el);\n },\n onEntry({ rects }) {\n const [rect] = rects;\n context.set(\"indicatorRect\", resolveRect(rect));\n }\n });\n refs.set(\"indicatorCleanup\", indicatorCleanup);\n },\n navigateIfNeeded({ context, prop, scope }) {\n const value = context.get(\"value\");\n if (!value) return;\n const triggerEl = getTriggerEl(scope, value);\n if (!isAnchorElement(triggerEl)) return;\n prop(\"navigate\")?.({ value, node: triggerEl });\n }\n }\n }\n});\nvar props = createProps()([\n \"activationMode\",\n \"composite\",\n \"deselectable\",\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar triggerProps = createProps()([\"disabled\", \"value\"]);\nvar splitTriggerProps = createSplitProps(triggerProps);\nvar contentProps = createProps()([\"value\"]);\nvar splitContentProps = createSplitProps(contentProps);\n\nexport { anatomy, connect, contentProps, machine, props, splitContentProps, splitProps, splitTriggerProps, triggerProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as tabs from '@zag-js/tabs';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useTabs = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(tabs.machine, machineProps);\n return tabs.connect(service, normalizeProps);\n};\n\nexport { useTabs };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { useTabs } from './use-tabs.js';\nimport { TabsProvider } from './use-tabs-context.js';\n\nconst TabsRoot = forwardRef((props, ref) => {\n const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);\n const [useTabsProps, localprops] = createSplitProps()(tabsProps, [\n \"activationMode\",\n \"composite\",\n \"defaultValue\",\n \"deselectable\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\"\n ]);\n const tabs = useTabs(useTabsProps);\n const mergedProps = mergeProps(tabs.getRootProps(), localprops);\n return /* @__PURE__ */ jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nTabsRoot.displayName = \"TabsRoot\";\n\nexport { TabsRoot };\n"],"names":["getErrorMessage","hook","provider","createContext","options","name","strict","hookName","providerName","errorMessage","defaultValue","Context","createContext$1","useContext$1","context","useContext","error","_a","toArray","v","first","last","has","add","items","remove","t","addOrRemove","item","isArrayLike","value","isArrayEqual","a","b","i","isEqual","keys","length","key","isArray","isObjectLike","isObject","isString","isFunction","isNull","hasProp","obj","prop","fnToString","runIfFn","res","identity","noop","callAll","fns","fn","compact","isPlainObject2","filtered","warn","m","ensure","c","wrap","idx","_","index","pipe","arg","acc","dataAttr","guard","ariaAttr","ELEMENT_NODE","DOCUMENT_NODE","DOCUMENT_FRAGMENT_NODE","isHTMLElement","el","isDocument","isWindow","getNodeName","node","isRootElement","isNode","isShadowRoot","isInputElement","isAnchorElement","isElementVisible","TEXTAREA_SELECT_REGEX","isEditableElement","e","contains","parent","child","rootNode","next","getDocument","getDocumentElement","getWindow","_c","_b","getActiveElement","activeElement","getParentNode","result","styleCache","getComputedStyle","isDom","getPlatform","agent","getUserAgent","ua2","brand","version","pt","ua","vn","isTouchDevice","isIPhone","isIPad","isMac","isIos","isApple","isSafari","isFirefox","isAndroid","getComposedPath","event","_d","getEventTarget","composedPath","isSelfTarget","isComposingEvent","getNativeEvent","isVirtualClick","isContextMenuEvent","isTouchEvent","keyMap","rtlKeyMap","getEventKey","dir","orientation","getEventPoint","type","point","addDomEvent","target","eventName","handler","getDescriptor","property","proto","setElementChecked","checked","dispatchInputCheckedEvent","bubbles","win","getClosestForm","isFormElement","trackFormReset","callback","form","onReset","trackFieldsetDisabled","fieldset","obs","trackFormControl","onFieldsetDisabledChange","onFormReset","cleanups","cleanup","isFrame","hasTabIndex","hasNegativeTabIndex","focusableSelector","getFocusables","container","includeContainer","elements","isFocusable","focusableElements","element","frameBody","getTabbables","tabbableElements","isTabbable","allFrameTabbable","getTabbableEdges","getTabIndex","getInitialFocus","root","getInitialEl","filter","enabled","tabbables","isValidTabEvent","firstTabbable","lastTabbable","doc","nextTick","set","raf2","fn2","id","raf","queueBeforeEvent","cb","cancelTimer","exec","observeAttributesImpl","attributes","changes","change","observeAttributes","nodeOrFn","func","clickIfLink","click","getNearestOverflowAncestor","parentNode","isOverflowElement","OVERFLOW_RE","overflow","overflowX","overflowY","display","isScrollable","scrollIntoView","rootEl","scrollOptions","trackPress","pointerNode","keyboardNode","onPress","onPressStart","onPressEnd","isValidKey","removeStartListeners","removeEndListeners","removeAccessibleListeners","getInfo","startPress","cancelPress","removePointerListener","startEvent","removePointerUpListener","endEvent","removePointerCancelListener","removeFocusListener","startAccessiblePress","handleKeydown","keydownEvent","handleKeyup","keyupEvent","evt2","info","evt","handleBlur","removeKeydownListener","removeBlurListener","queryAll","selector","defaultItemToId","itemById","itemToId","indexOfId","nextById","loop","prevById","trackElementRect","onEntry","measure","box","elems","trigger","entries","rects","sanitize","str","char","code","getValueText","match","valueText","query2","getByText","text","currentId","setStyle","style","prev","setStyleProperty","getByTypeaheadImpl","baseItems","state2","activeId","timeout","search","update","getByTypeahead","isValidTypeaheadEvent","visuallyHiddenStyle","fps","waitForElement","timerId","el2","waitForElements","queries","clean","clsx","args","CSS_REGEX","serialize","css","mergeProps","props","createGuards","guards","params","MachineStatus","MachineStatus2","INIT_STATE","createScope","getRootNode","getDoc","getWin","getActiveElementFn","elem","createNormalizer","_target","createProps","useSafeLayoutEffect","useLayoutEffect","useEffect","useBindable","initial","eq","initialValue","useState","setValue","controlled","valueRef","useRef","prevValue","setFn","value2","get","flushSync","nextValue","prevValue2","useRefs","refs","ref","useTrack","deps","effect","render","called","d","useMachine","machine","userProps","scope","useMemo","ids","debug","useProp","flush","ctx","computed","contextRef","useLiveRef","current","effects","transitionRef","previousEventRef","eventRef","getEvent","getState","state","values","tag","_e","getParams","send","action","choose","strs","s","transitions","nextState","prevState","exitEffects","cleanup2","hydratedStateRef","statusRef","started","initialState","currentState","getCurrentState","transition","changed","_f","normalizeProps","composeRefs","cleanUps","cleanUp","getRef","getter","mayWarn","withAsChild","Component","Comp","memo","forwardRef","asChild","children","restProps","createElement","onlyChild","Children","isValidElement","childRef","cloneElement","jsxFactory","cache","_thisArg","argArray","asElement","ark","createSplitProps","previousValue","currentValue","source","createAnatomy","parts","isEmpty","newName","part","toKebabCase","EnvironmentContextProvider","useEnvironmentContext","LocaleContextProvider","useLocaleContext","sides","min","max","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getSideList","side","isStart","lr","rl","tb","bt","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","x","y","width","height","computeCoordsFromPlacement","_ref","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","config","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","nextX","nextY","data","reset","detectOverflow","_await$platform$isEle","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","getSideOffsets","isAnySideFullyClipped","hide","offsets","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","len","limitMin","limitMax","_middlewareData$offse2","isOriginSide","size","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","hasWindow","_node$ownerDocument","isElement","isTableElement","isTopLayer","isContainingBlock","elementOrCss","webkit","isWebKit","getContainingBlock","currentNode","isLastTraversableNode","getNodeScroll","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","frameElement","getFrameElement","getCssDimensions","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","$","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","ignoreScrollbarX","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","body","getViewportRect","visualViewport","visualViewportBased","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","timeoutId","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","size$1","hide$1","arrow$1","limitShift$1","mergedOptions","platformWithCache","computePosition$1","createDOMRect","getDOMRect","anchorRect","getAnchorElement","anchorElement","getAnchorRect","anchor","toVar","cssVars","getTransformOrigin","arrow2","transformOriginMiddleware","transformOrigin","rectMiddleware","shiftArrowMiddleware","arrowEl","getPlacementDetails","align","defaultOptions","roundByDpr","dpr","getBoundaryMiddleware","opts","getArrowMiddleware","arrowElement","getOffsetMiddleware","arrowOffset","gutter","hasAlign","shift2","getFlipMiddleware","getShiftMiddleware","getSizeMiddleware","referenceWidth","hideWhenDetachedMiddleware","getAutoUpdateOptions","getPlacementImpl","referenceOrVirtual","onComplete","onPositioned","updatePosition","pos","contentEl","styles","autoUpdateOptions","cancelAutoUpdate","getPlacement","referenceOrFn","floatingOrFn","defer","ARROW_FLOATING_STYLE","getPlacementStyles","sameWidth","fitViewport","getWindowFrames","frames","frame","listener","getParentWindow","POINTER_OUTSIDE_EVENT","FOCUS_OUTSIDE_EVENT","isComposedPathFocusable","isPointerEvent","isEventPointWithin","isPointInRect","isEventWithinScrollbar","isScrollableY","onScrollbarY","isScrollableX","onScrollbarX","trackInteractOutsideImpl","exclude","onFocusOutside","onPointerDownOutside","onInteractOutside","parentWin","isEventOutside","triggerEl","triggerAncestor","nodeAncestor","pointerdownCleanups","isInShadowRoot","onPointerDown","clickEvent","handler2","fireCustomEvent","timer","onFocusin","trackInteractOutside","init","trackEscapeKeydown","handleKeyDown","layerStack","layer","highestBlockingIndex","branch","num","originalBodyPointerEvents","assignPointerEventToLayers","clearPointerEvent","disablePointerEventsOutside","persistentElements","persistedCleanup","trackDismissableElementImpl","warnOnMissingNode","onDismiss","pointerBlocking","excludeContainers","onEscapeKeyDown","containers","_containers","node2","trackDismissableElement","RenderStrategyPropsProvider","useRenderStrategyPropsContext","splitRenderStrategyProps","CheckboxProvider","useCheckboxContext","CheckboxControl","checkbox","mergedProps","jsx","nonTextInputTypes","isKeyboardFocusEvent","isTextInput","modality","FOCUS_VISIBLE_INPUT_KEYS","currentModality","changeHandlers","listenerMap","hasEventBeforeFocus","hasBlurredWindowRecently","triggerChangeHandlers","handleKeyboardEvent","handlePointerEvent","handleClickEvent","handleFocusEvent","handleWindowBlur","setupGlobalFocusEvents","focus","tearDownWindowFocusTracking","loadListener","isFocusVisible","trackFocusVisible","autoFocus","onChange","anatomy","getRootId","getLabelId","getControlId","getHiddenInputId","getRootEl","getHiddenInputEl","connect","service","normalize","disabled","readOnly","invalid","focused","focusVisible","indeterminate","dataAttrs","checked2","focusVisible2","not","props2","bindable","track","isIndeterminate","isChecked","inputEl","checkboxAnatomy","useControllableState","uncontrolledValue","setUncontrolledValue","useCallback","useEvent","sync","callbackRef","useLatestRef","useCheckboxGroup","controlledValue","onValueChange","interactive","onChangeProp","val","toggleValue","removeValue","addValue","CheckboxGroupContextProvider","useCheckboxGroupContext","CheckboxGroup","checkboxGroupProps","localProps","checkboxGroup","FieldProvider","useFieldContext","CheckboxHiddenInput","field","CheckboxIndicator","rest","isVisible","CheckboxLabel","useCheckbox","ownProps","useId","machineProps","checkbox.machine","checkbox.connect","CheckboxRoot","useCheckboxProps","CheckboxRootProvider","PresenceProvider","usePresenceContext","splitPresenceProps","_normalize","present","presentProp","animationName","getAnimationName","onStart","onEnd","cleanupStyles","usePresence","lazyMount","unmountOnExit","skipAnimationOnMount","wasEverPresent","presence.machine","api","presence.connect","unmounted","getPresenceProps","__defProp","__defNormalProp","__publicField","fallback","ListCollection","_ListCollection","other","valueA","valueB","indexA","indexB","separator","step","queryString","query","item2","insert","toIndex","itemsOrValues","itemOrValue","fromIndex","move","from","to","label","itemString","indices","itemsToMove","createListCollection","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","correctTargets","targets","correctedTarget","isIgnoredNode","walkTreeOutside","originalTarget","markerName","controlAttribute","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","deep","alreadyHidden","counterValue","markerValue","hideOthers","ariaHidden","targetsOrFn","DialogProvider","useDialogContext","DialogBackdrop","dialog","renderStrategyProps","presence","DialogCloseTrigger","DialogContent","DialogDescription","DialogPositioner","activeFocusTraps","trapStack","trap","activeTrap","trapIndex","sharedTrapStack","FocusTrap","targetContained","nextNode","navAcrossContainers","mruContainerIdx","tabbableNodes","mruTabIdx","g","n","valueOrHandler","isBackward","destinationNode","isTabEvent","isEscapeEvent","mutations","mutation","firstTabbableGroup","isSelectableInput","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","returnFocus","finishDeactivation","delay","returnFocusNode","pauseOptions","onPause","onPostPause","unpauseOptions","onUnpause","onPostUnpause","containerElements","previousActiveElement","configOverrideOptions","optionName","configOptionName","hasFallback","optionValue","err","containerIndex","containerGroup","startOfGroupIndex","firstTabbableNode","destinationGroupIndex","destinationGroup","lastOfGroupIndex","lastTabbableNode","focusableNodes","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","nextTabbableNode","forward","nodeIdx","group","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","trapFocus","LOCK_CLASSNAME","getPaddingProperty","documentLeft","preventBodyScroll","_document","scrollbarWidth","setScrollbarWidthProperty","paddingProperty","setBodyStyle","setBodyStyleIOS","scrollX","scrollY","offsetLeft","offsetTop","restoreStyle","getPositionerId","getBackdropId","getContentId","getTriggerId","getTitleId","getDescriptionId","getCloseTriggerId","getContentEl","getPositionerEl","getBackdropEl","getTriggerEl","getTitleEl","getDescriptionEl","getCloseTriggerEl","ariaLabel","open","nextOpen","rendered","alertDialog","useDialog","dialog.machine","dialog.connect","DialogRoot","presenceProps","DialogTitle","DialogTrigger","Portal","setContainer","isServer","useSyncExternalStore","subscribe","Fragment","mountNode","getPortalNode","createPortal","RadioGroupProvider","useRadioGroupContext","RadioGroupContext","RadioGroupItemProvider","useRadioGroupItemContext","RadioGroupItemPropsProvider","useRadioGroupItemPropsContext","RadioGroupItem","itemProps","radioGroup","itemState","RadioGroupItemControl","RadioGroupItemHiddenInput","RadioGroupItemText","RadioGroupLabel","getItemId","getItemHiddenInputId","getItemControlId","getItemLabelId","getIndicatorId","getItemHiddenInputEl","getIndicatorEl","getFirstEnabledInputEl","getFirstEnabledAndCheckedInputEl","getInputEls","getRadioEl","getOffsetRect","resolveRect","groupDisabled","getItemState","getItemDataAttrs","nodeToFocus","input","radioEl","indicatorCleanup","useRadioGroup","radio.machine","radio.connect","RadioGroupRoot","useRadioGroupProps","RadioGroupRootProvider","SelectProvider","useSelectContext","SelectContent","select","SelectControl","SelectItemProvider","useSelectItemContext","SelectItemPropsProvider","useSelectItemPropsContext","SelectItem","SelectLabel","SelectPositioner","collection","getClearTriggerId","getHiddenSelectId","getItemGroupId","getItemGroupLabelId","getHiddenSelectEl","getClearTriggerEl","getItemEl","composite","collection2","highlightedValue","highlightedItem","selectedItems","currentPlacement","isTypingAhead","ariaActiveDescendant","_disabled","popperStyles","event2","htmlFor","and","or","restoreFocus","positioning","immediate","optionEl","contentEl2","scrollToIndexFn","highlightedIndex","positionerEl","firstItem","selectEl","option","valueAsString","prevSelectedItems","changeEvent","useSelect","select.machine","select.connect","SelectImpl","selectProps","useSelectProps","SelectRoot","SelectTrigger","SelectValueText","placeholder","localprops","SwitchProvider","useSwitchContext","SwitchControl","switchContext","SwitchHiddenInput","SwitchLabel","getThumbId","useSwitch","zagSwitch.machine","zagSwitch.connect","SwitchRoot","switchProps","SwitchRootProvider","SwitchThumb","useDebounce","debouncedValue","setDebouncedValue","TabsProvider","useTabsContext","TabContent","contentProps","tabs","TabIndicator","TabList","TabTrigger","tabProps","getListId","getListEl","getElements","getFirstTriggerEl","getLastTriggerEl","getNextTriggerEl","getPrevTriggerEl","getRectById","tab","translations","isHorizontal","getTriggerState","fromValue","triggerState","selected","indicatorRect","indicatorTransition","details","focusedValue","nullable","indicatorEl","useTabs","tabs.machine","tabs.connect","TabsRoot","tabsProps","useTabsProps"],"mappings":"6FAGA,SAASA,GAAgBC,EAAMC,EAAU,CACvC,MAAO,GAAGD,CAAI,sEAAsEC,CAAQ,EAC9F,CACA,SAASC,EAAcC,EAAU,GAAI,CACnC,KAAM,CACJ,KAAAC,EACA,OAAAC,EAAS,GACT,SAAAC,EAAW,aACX,aAAAC,EAAe,WACf,aAAAC,EACA,aAAAC,CACJ,EAAMN,EACEO,EAAUC,EAAe,cAACF,CAAY,EAC5CC,EAAQ,YAAcN,EACtB,SAASQ,GAAe,OACtB,MAAMC,EAAUC,EAAU,WAACJ,CAAO,EAClC,GAAI,CAACG,GAAWR,EAAQ,CACtB,MAAMU,EAAQ,IAAI,MAAMP,GAAA,KAAAA,EAAgBT,GAAgBO,EAAUC,CAAY,CAAC,EAC/E,MAAAQ,EAAM,KAAO,gBACbC,EAAA,MAAM,oBAAN,MAAAA,EAAA,WAA0BD,EAAOH,GAC3BG,CACZ,CACI,OAAOF,CACX,CACE,MAAO,CAACH,EAAQ,SAAUE,EAAcF,CAAO,CACjD,CC3BA,SAASO,GAAQC,EAAG,CAClB,OAAKA,EACE,MAAM,QAAQA,CAAC,EAAIA,EAAI,CAACA,CAAC,EADjB,CAAE,CAEnB,CAEA,IAAIC,GAASD,GAAMA,EAAE,CAAC,EAClBE,GAAQF,GAAMA,EAAEA,EAAE,OAAS,CAAC,EAE5BG,GAAM,CAACH,EAAG,IAAMA,EAAE,QAAQ,CAAC,IAAM,GACjCI,GAAM,CAACJ,KAAMK,IAAUL,EAAE,OAAOK,CAAK,EACrCC,GAAS,CAACN,KAAMK,IAAUL,EAAE,OAAQO,GAAM,CAACF,EAAM,SAASE,CAAC,CAAC,EAI5DC,GAAc,CAACR,EAAGS,IAChBN,GAAIH,EAAGS,CAAI,EAAUH,GAAON,EAAGS,CAAI,EAChCL,GAAIJ,EAAGS,CAAI,EA4ChBC,GAAeC,IAAUA,GAAA,YAAAA,EAAO,YAAY,QAAS,QACrDC,GAAe,CAACC,EAAGC,IAAM,CAC3B,GAAID,EAAE,SAAWC,EAAE,OAAQ,MAAO,GAClC,QAASC,EAAI,EAAGA,EAAIF,EAAE,OAAQE,IAC5B,GAAI,CAACC,GAAQH,EAAEE,CAAC,EAAGD,EAAEC,CAAC,CAAC,EAAG,MAAO,GAEnC,MAAO,EACT,EACIC,GAAU,CAACH,EAAGC,IAAM,CACtB,GAAI,OAAO,GAAGD,EAAGC,CAAC,EAAG,MAAO,GAC5B,GAAID,GAAK,MAAQC,GAAK,MAAQD,GAAK,MAAQC,GAAK,KAAM,MAAO,GAC7D,GAAI,OAAOD,GAAA,YAAAA,EAAG,UAAY,YAAc,OAAOC,GAAA,YAAAA,EAAG,UAAY,WAC5D,OAAOD,EAAE,QAAQC,CAAC,EAEpB,GAAI,OAAOD,GAAM,YAAc,OAAOC,GAAM,WAC1C,OAAOD,EAAE,aAAeC,EAAE,SAAU,EAEtC,GAAIJ,GAAYG,CAAC,GAAKH,GAAYI,CAAC,EACjC,OAAOF,GAAa,MAAM,KAAKC,CAAC,EAAG,MAAM,KAAKC,CAAC,CAAC,EAElD,GAAM,OAAOD,GAAM,UAAe,OAAOC,GAAM,SAAW,MAAO,GACjE,MAAMG,EAAO,OAAO,KAAKH,GAAA,KAAAA,EAAqB,OAAO,OAAO,IAAI,CAAC,EAC3DI,EAASD,EAAK,OACpB,QAASF,EAAI,EAAGA,EAAIG,EAAQH,IAE1B,GAAI,CADW,QAAQ,IAAIF,EAAGI,EAAKF,CAAC,CAAC,EACxB,MAAO,GAEtB,QAASA,EAAI,EAAGA,EAAIG,EAAQH,IAAK,CAC/B,MAAMI,EAAMF,EAAKF,CAAC,EAClB,GAAI,CAACC,GAAQH,EAAEM,CAAG,EAAGL,EAAEK,CAAG,CAAC,EAAG,MAAO,EACzC,CACE,MAAO,EACT,EAIIC,GAAWpB,GAAM,MAAM,QAAQA,CAAC,EAEhCqB,GAAgBrB,GAAMA,GAAK,MAAQ,OAAOA,GAAM,SAChDsB,GAAYtB,GAAMqB,GAAarB,CAAC,GAAK,CAACoB,GAAQpB,CAAC,EAE/CuB,GAAYvB,GAAM,OAAOA,GAAM,SAC/BwB,GAAcxB,GAAM,OAAOA,GAAM,WACjCyB,GAAUzB,GAAMA,GAAK,KACrB0B,GAAU,CAACC,EAAKC,IAAS,OAAO,UAAU,eAAe,KAAKD,EAAKC,CAAI,EAEvEC,GAAa,SAAS,UAAU,SACbA,GAAW,KAAK,MAAM,EAU7C,IAAIC,GAAU,CAAC9B,KAAMa,IAAM,CACzB,MAAMkB,EAAM,OAAO/B,GAAM,WAAaA,EAAE,GAAGa,CAAC,EAAIb,EAChD,OAAO+B,GAAA,KAAAA,EAAO,MAChB,EAEIC,GAAYhC,GAAMA,EAAG,EACrBiC,GAAO,IAAM,CACjB,EACIC,GAAU,IAAIC,IAAQ,IAAItB,IAAM,CAClCsB,EAAI,QAAQ,SAASC,EAAI,CACvBA,GAAA,MAAAA,EAAK,GAAGvB,EACZ,CAAG,CACH,EAyKA,SAASwB,GAAQV,EAAK,CACpB,GAAI,CAACW,GAAeX,CAAG,GAAKA,IAAQ,OAAQ,OAAOA,EACnD,MAAMV,EAAO,QAAQ,QAAQU,CAAG,EAAE,OAAQR,GAAQ,OAAOA,GAAQ,QAAQ,EACnEoB,EAAW,CAAE,EACnB,UAAWpB,KAAOF,EAAM,CACtB,MAAMN,EAAQgB,EAAIR,CAAG,EACjBR,IAAU,SACZ4B,EAASpB,CAAG,EAAIkB,GAAQ1B,CAAK,EAEnC,CACE,OAAO4B,CACT,CAEA,IAAID,GAAkBtC,GACbA,GAAK,OAAOA,GAAM,UAAYA,EAAE,cAAgB,OAgEzD,SAASwC,MAAQ3B,EAAG,CAClB,MAAM4B,EAAI5B,EAAE,SAAW,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,GAC3BA,EAAE,SAAW,EAAIA,EAAE,CAAC,EAAI,KACzB,QAAQ,IAAI,WAAa,cAChC,QAAQ,KAAK4B,CAAC,CAElB,CAQA,SAASC,GAAOC,EAAGF,EAAG,CACpB,GAAIE,GAAK,KAAM,MAAM,IAAI,MAAMF,EAAC,CAAE,CACpC,CCrXA,IAAIG,GAAO,CAAC5C,EAAG6C,IACN7C,EAAE,IAAI,CAAC8C,EAAGC,IAAU/C,GAAG,KAAK,IAAI6C,EAAK,CAAC,EAAIE,GAAS/C,EAAE,MAAM,CAAC,EAEjEgD,GAAO,IAAIb,IAASc,GAAQd,EAAI,OAAO,CAACe,EAAKd,IAAOA,EAAGc,CAAG,EAAGD,CAAG,EAChEhB,GAAO,IAAA,GACPX,GAAYtB,GAAM,OAAOA,GAAM,UAAYA,IAAM,KAEjDmD,EAAYC,GAAUA,EAAQ,GAAK,OACnCC,GAAYD,GAAUA,EAAQ,OAAS,OAGvCE,GAAe,EACfC,GAAgB,EAChBC,GAAyB,GACzBC,EAAiBC,GAAOpC,GAASoC,CAAE,GAAKA,EAAG,WAAaJ,IAAgB,OAAOI,EAAG,UAAa,SAC/FC,GAAcD,GAAOpC,GAASoC,CAAE,GAAKA,EAAG,WAAaH,GACrDK,GAAYF,GAAOpC,GAASoC,CAAE,GAAKA,IAAOA,EAAG,OAE7CG,GAAeC,GACbL,EAAcK,CAAI,EAAUA,EAAK,WAAa,GAC3C,YAET,SAASC,GAAcD,EAAM,CAC3B,MAAO,CAAC,OAAQ,OAAQ,WAAW,EAAE,SAASD,GAAYC,CAAI,CAAC,CACjE,CACA,IAAIE,GAAUN,GAAOpC,GAASoC,CAAE,GAAKA,EAAG,WAAa,OACjDO,GAAgBP,GAAOM,GAAON,CAAE,GAAKA,EAAG,WAAaF,IAA0B,SAAUE,EACzFQ,GAAkBR,GAAOD,EAAcC,CAAE,GAAKA,EAAG,YAAc,QAC/DS,GAAmBT,GAAO,CAAC,EAACA,GAAA,MAAAA,EAAI,QAAQ,YACxCU,GAAoBV,GACjBD,EAAcC,CAAE,EACdA,EAAG,YAAc,GAAKA,EAAG,aAAe,GAAKA,EAAG,iBAAiB,OAAS,EADlD,GAG7BW,GAAwB,oBAC5B,SAASC,GAAkBZ,EAAI,CAC7B,GAAIA,GAAM,MAAQ,CAACD,EAAcC,CAAE,EAAG,MAAO,GAC7C,GAAI,CACF,OAAOQ,GAAeR,CAAE,GAAKA,EAAG,gBAAkB,MAAQW,GAAsB,KAAKX,EAAG,SAAS,GAAKA,EAAG,mBAAqBA,EAAG,aAAa,iBAAiB,IAAM,QAAUA,EAAG,aAAa,iBAAiB,IAAM,EAC1N,OAAUa,EAAA,CACN,MAAO,EACX,CACA,CACA,SAASC,GAASC,EAAQC,EAAO,OAE/B,GADI,CAACD,GAAU,CAACC,GACZ,CAACjB,EAAcgB,CAAM,GAAK,CAAChB,EAAciB,CAAK,EAAG,MAAO,GAC5D,MAAMC,GAAW7E,EAAA4E,EAAM,cAAN,YAAA5E,EAAA,KAAA4E,GAEjB,GADID,IAAWC,GACXD,EAAO,SAASC,CAAK,EAAG,MAAO,GACnC,GAAIC,GAAYV,GAAaU,CAAQ,EAAG,CACtC,IAAIC,EAAOF,EACX,KAAOE,GAAM,CACX,GAAIH,IAAWG,EAAM,MAAO,GAC5BA,EAAOA,EAAK,YAAcA,EAAK,IACrC,CACA,CACE,MAAO,EACT,CACA,SAASC,GAAYnB,EAAI,OACvB,OAAIC,GAAWD,CAAE,EAAUA,EACvBE,GAASF,CAAE,EAAUA,EAAG,UACrB5D,EAAA4D,GAAA,YAAAA,EAAI,gBAAJ,KAAA5D,EAAqB,QAC9B,CACA,SAASgF,GAAmBpB,EAAI,CAC9B,OAAOmB,GAAYnB,CAAE,EAAE,eACzB,CACA,SAASqB,EAAUrB,EAAI,WACrB,OAAIO,GAAaP,CAAE,EAAUqB,EAAUrB,EAAG,IAAI,EAC1CC,GAAWD,CAAE,GAAU5D,EAAA4D,EAAG,cAAH,KAAA5D,EAAkB,OACzC2D,EAAcC,CAAE,IAAUsB,GAAAC,EAAAvB,EAAG,gBAAH,YAAAuB,EAAkB,cAAlB,KAAAD,EACvB,MACT,CACA,SAASE,GAAiBP,EAAU,CAClC,IAAIQ,EAAgBR,EAAS,cAC7B,KAAOQ,GAAA,MAAAA,EAAe,YAAY,CAChC,MAAMzB,EAAKyB,EAAc,WAAW,cACpC,GAAIzB,IAAOyB,EAAe,MACrBA,EAAgBzB,CACzB,CACE,OAAOyB,CACT,CACA,SAASC,GAActB,EAAM,CAC3B,GAAID,GAAYC,CAAI,IAAM,OAAQ,OAAOA,EACzC,MAAMuB,EAASvB,EAAK,cAAgBA,EAAK,YAAcG,GAAaH,CAAI,GAAKA,EAAK,MAAQgB,GAAmBhB,CAAI,EACjH,OAAOG,GAAaoB,CAAM,EAAIA,EAAO,KAAOA,CAC9C,CAGA,IAAIC,GAA6B,IAAI,QACrC,SAASC,GAAiB7B,EAAI,CAC5B,OAAK4B,GAAW,IAAI5B,CAAE,GACpB4B,GAAW,IAAI5B,EAAIqB,EAAUrB,CAAE,EAAE,iBAAiBA,CAAE,CAAC,EAEhD4B,GAAW,IAAI5B,CAAE,CAC1B,CA2CA,IAAI8B,GAAQ,IAAM,OAAO,UAAa,YACtC,SAASC,IAAc,OACrB,MAAMC,EAAQ,UAAU,cACxB,OAAO5F,EAAA4F,GAAA,YAAAA,EAAO,WAAP,KAAA5F,EAAmB,UAAU,QACtC,CACA,SAAS6F,IAAe,CACtB,MAAMC,EAAM,UAAU,cACtB,OAAIA,GAAO,MAAM,QAAQA,EAAI,MAAM,EAC1BA,EAAI,OAAO,IAAI,CAAC,CAAE,MAAAC,EAAO,QAAAC,CAAS,IAAK,GAAGD,CAAK,IAAIC,CAAO,EAAE,EAAE,KAAK,GAAG,EAExE,UAAU,SACnB,CACA,IAAIC,GAAM/F,GAAMwF,GAAK,GAAMxF,EAAE,KAAKyF,IAAa,EAC3CO,GAAMhG,GAAMwF,GAAK,GAAMxF,EAAE,KAAK2F,IAAc,EAC5CM,GAAMjG,GAAMwF,GAAK,GAAMxF,EAAE,KAAK,UAAU,MAAM,EAC9CkG,GAAgB,IAAMV,GAAK,GAAM,CAAC,CAAC,UAAU,eAC7CW,GAAW,IAAMJ,GAAG,UAAU,EAC9BK,GAAS,IAAML,GAAG,QAAQ,GAAKM,MAAW,UAAU,eAAiB,EACrEC,GAAQ,IAAMH,GAAU,GAAIC,GAAQ,EACpCG,GAAU,IAAMF,GAAO,GAAIC,GAAO,EAClCD,GAAQ,IAAMN,GAAG,OAAO,EACxBS,GAAW,IAAMD,MAAaN,GAAG,QAAQ,EACzCQ,GAAY,IAAMT,GAAG,UAAU,EAG/BU,GAAY,IAAMV,GAAG,UAAU,EAOnC,SAASW,GAAgBC,EAAO,aAC9B,OAAOC,GAAA/G,EAAA8G,EAAM,eAAN,YAAA9G,EAAA,KAAA8G,KAAA,KAAAC,GAA0B7B,GAAAC,EAAA2B,EAAM,cAAN,YAAA3B,EAAmB,eAAnB,YAAAD,EAAA,KAAAC,EACnC,CACA,SAAS6B,EAAeF,EAAO,OAC7B,MAAMG,EAAeJ,GAAgBC,CAAK,EAC1C,OAAO9G,EAAAiH,GAAA,YAAAA,EAAe,KAAf,KAAAjH,EAAqB8G,EAAM,MACpC,CACA,IAAII,GAAgBJ,GACXpC,GAASoC,EAAM,cAAeE,EAAeF,CAAK,CAAC,EAwB5D,SAASK,GAAiBL,EAAO,CAC/B,OAAOM,GAAeN,CAAK,EAAE,aAAeA,EAAM,UAAY,GAChE,CAcA,SAASO,GAAe,EAAG,CACzB,OAAI,EAAE,iBAAmB,GAAK,EAAE,UAAkB,GAC9CT,GAAS,GAAM,EAAE,YACZ,EAAE,OAAS,SAAW,EAAE,UAAY,EAEtC,EAAE,SAAW,GAAK,CAAC,EAAE,WAC9B,CAEA,IAAIU,GAAsB,GACjB,EAAE,SAAW,GAAKf,GAAK,GAAM,EAAE,SAAW,EAAE,SAAW,EAG5DgB,GAAgBT,GAAU,YAAaA,GAASA,EAAM,QAAQ,OAAS,EACvEU,GAAS,CACX,GAAI,UACJ,KAAM,YACN,IAAK,SACL,IAAK,QACL,IAAK,QACL,KAAM,YACN,MAAO,YACT,EACIC,GAAY,CACd,UAAW,aACX,WAAY,WACd,EACA,SAASC,GAAYZ,EAAO3H,EAAU,GAAI,OACxC,KAAM,CAAE,IAAAwI,EAAM,MAAO,YAAAC,EAAc,YAAc,EAAGzI,EACpD,IAAIkC,EAAMyF,EAAM,IAChB,OAAAzF,GAAMrB,EAAAwH,GAAOnG,CAAG,IAAV,KAAArB,EAAeqB,EACPsG,IAAQ,OAASC,IAAgB,cAClCvG,KAAOoG,KAAWpG,EAAMoG,GAAUpG,CAAG,GAC3CA,CACT,CACA,SAAS+F,GAAeN,EAAO,OAC7B,OAAO9G,EAAA8G,EAAM,cAAN,KAAA9G,EAAqB8G,CAC9B,CAYA,SAASe,GAAcf,EAAOgB,EAAO,SAAU,CAC7C,MAAMC,EAAQR,GAAaT,CAAK,EAAIA,EAAM,QAAQ,CAAC,GAAKA,EAAM,eAAe,CAAC,EAAIA,EAClF,MAAO,CAAE,EAAGiB,EAAM,GAAGD,CAAI,GAAG,EAAG,EAAGC,EAAM,GAAGD,CAAI,GAAG,CAAG,CACvD,CACA,IAAIE,EAAc,CAACC,EAAQC,EAAWC,EAAShJ,IAAY,CACzD,MAAM6E,EAAO,OAAOiE,GAAW,WAAaA,EAAQ,EAAGA,EACvD,OAAAjE,GAAA,MAAAA,EAAM,iBAAiBkE,EAAWC,EAAShJ,GACpC,IAAM,CACX6E,GAAA,MAAAA,EAAM,oBAAoBkE,EAAWC,EAAShJ,EAC/C,CACH,EAGA,SAASiJ,GAAcxE,EAAIzE,EAAS,OAClC,KAAM,CAAE,KAAA2I,EAAO,mBAAoB,SAAAO,EAAW,OAAS,EAAGlJ,EACpDmJ,EAAQrD,EAAUrB,CAAE,EAAEkE,CAAI,EAAE,UAClC,OAAO9H,EAAA,OAAO,yBAAyBsI,EAAOD,CAAQ,IAA/C,KAAArI,EAAoD,CAAE,CAC/D,CAeA,SAASuI,GAAkB3E,EAAI4E,EAAS,OACtC,GAAI,CAAC5E,EAAI,QAET5D,EADmBoI,GAAcxE,EAAI,CAAE,KAAM,mBAAoB,SAAU,UAAW,EAC3E,MAAX,MAAA5D,EAAgB,KAAK4D,EAAI4E,GACrBA,EAAS5E,EAAG,aAAa,UAAW,EAAE,EACrCA,EAAG,gBAAgB,SAAS,CACnC,CASA,SAAS6E,GAA0B7E,EAAIzE,EAAS,CAC9C,KAAM,CAAE,QAAAqJ,EAAS,QAAAE,EAAU,EAAM,EAAGvJ,EACpC,GAAI,CAACyE,EAAI,OACT,MAAM+E,EAAM1D,EAAUrB,CAAE,EAClBA,aAAc+E,EAAI,mBACxBJ,GAAkB3E,EAAI4E,CAAO,EAC7B5E,EAAG,cAAc,IAAI+E,EAAI,MAAM,QAAS,CAAE,QAAAD,CAAO,CAAE,CAAC,EACtD,CACA,SAASE,GAAehF,EAAI,CAC1B,OAAOiF,GAAcjF,CAAE,EAAIA,EAAG,KAAOA,EAAG,QAAQ,MAAM,CACxD,CACA,SAASiF,GAAcjF,EAAI,CACzB,OAAOA,EAAG,QAAQ,iCAAiC,CACrD,CACA,SAASkF,GAAelF,EAAImF,EAAU,CACpC,GAAI,CAACnF,EAAI,OACT,MAAMoF,EAAOJ,GAAehF,CAAE,EACxBqF,EAAWxE,GAAM,CACjBA,EAAE,kBACNsE,EAAU,CACX,EACD,OAAAC,GAAA,MAAAA,EAAM,iBAAiB,QAASC,EAAS,CAAE,QAAS,KAC7C,IAAMD,GAAA,YAAAA,EAAM,oBAAoB,QAASC,EAClD,CACA,SAASC,GAAsBtF,EAAImF,EAAU,CAC3C,MAAMI,EAAWvF,GAAA,YAAAA,EAAI,QAAQ,YAC7B,GAAI,CAACuF,EAAU,OACfJ,EAASI,EAAS,QAAQ,EAC1B,MAAMR,EAAM1D,EAAUkE,CAAQ,EACxBC,EAAM,IAAIT,EAAI,iBAAiB,IAAMI,EAASI,EAAS,QAAQ,CAAC,EACtE,OAAAC,EAAI,QAAQD,EAAU,CACpB,WAAY,GACZ,gBAAiB,CAAC,UAAU,CAChC,CAAG,EACM,IAAMC,EAAI,WAAY,CAC/B,CACA,SAASC,GAAiBzF,EAAIzE,EAAS,CACrC,GAAI,CAACyE,EAAI,OACT,KAAM,CAAE,yBAAA0F,EAA0B,YAAAC,CAAW,EAAKpK,EAC5CqK,EAAW,CAACV,GAAelF,EAAI2F,CAAW,EAAGL,GAAsBtF,EAAI0F,CAAwB,CAAC,EACtG,MAAO,IAAME,EAAS,QAASC,GAAYA,GAAA,YAAAA,GAAW,CACxD,CAGA,IAAIC,GAAW9F,GAAOD,EAAcC,CAAE,GAAKA,EAAG,UAAY,SACtD+F,GAAe/F,GAAO,CAAC,OAAO,MAAM,SAASA,EAAG,aAAa,UAAU,GAAK,IAAK,EAAE,CAAC,EACpFgG,GAAuBhG,GAAO,SAASA,EAAG,aAAa,UAAU,GAAK,IAAK,EAAE,EAAI,EACjFiG,GAAoB,oSACpBC,GAAgB,CAACC,EAAWC,EAAmB,KAAU,CAC3D,GAAI,CAACD,EAAW,MAAO,CAAE,EACzB,MAAME,EAAW,MAAM,KAAKF,EAAU,iBAAiBF,EAAiB,CAAC,GACzDG,GAAoB,IAAQA,GAAoB,YAAcC,EAAS,SAAW,IACnFtG,EAAcoG,CAAS,GAAKG,GAAYH,CAAS,GAC9DE,EAAS,QAAQF,CAAS,EAE5B,MAAMI,EAAoBF,EAAS,OAAOC,EAAW,EACrD,OAAAC,EAAkB,QAAQ,CAACC,EAASnJ,IAAM,CACxC,GAAIyI,GAAQU,CAAO,GAAKA,EAAQ,gBAAiB,CAC/C,MAAMC,EAAYD,EAAQ,gBAAgB,KAC1CD,EAAkB,OAAOlJ,EAAG,EAAG,GAAG6I,GAAcO,CAAS,CAAC,CAChE,CACA,CAAG,EACMF,CACT,EACA,SAASD,GAAYE,EAAS,CAC5B,MAAI,CAACA,GAAWA,EAAQ,QAAQ,SAAS,EAAU,GAC5CA,EAAQ,QAAQP,EAAiB,GAAKvF,GAAiB8F,CAAO,CACvE,CAKA,SAASE,GAAaP,EAAWC,EAAkB,CACjD,GAAI,CAACD,EAAW,MAAO,CAAE,EAEzB,MAAMQ,EADW,MAAM,KAAKR,EAAU,iBAAiBF,EAAiB,CAAC,EACvC,OAAOW,EAAU,EAInD,OAAAD,EAAiB,QAAQ,CAACH,EAAS,IAAM,CACvC,GAAIV,GAAQU,CAAO,GAAKA,EAAQ,gBAAiB,CAC/C,MAAMC,EAAYD,EAAQ,gBAAgB,KACpCK,EAAmBH,GAAaD,CAAS,EAC/CE,EAAiB,OAAO,EAAG,EAAG,GAAGE,CAAgB,CACvD,CACA,CAAG,EACIF,EAAiB,OAGfA,CACT,CACA,SAASC,GAAW5G,EAAI,CACtB,OAAIA,GAAM,MAAQA,EAAG,SAAW,EAAU,GACnCsG,GAAYtG,CAAE,GAAK,CAACgG,GAAoBhG,CAAE,CACnD,CASA,SAAS8G,GAAiBX,EAAWC,EAAkB,CACrD,MAAMC,EAAWK,GAAaP,EAAWC,CAAgB,EACnD7J,EAAQ8J,EAAS,CAAC,GAAK,KACvB7J,EAAO6J,EAASA,EAAS,OAAS,CAAC,GAAK,KAC9C,MAAO,CAAC9J,EAAOC,CAAI,CACrB,CASA,SAASuK,GAAY3G,EAAM,CACzB,OAAIA,EAAK,SAAW,IACb,0BAA0B,KAAKA,EAAK,SAAS,GAAKQ,GAAkBR,CAAI,IAAM,CAAC2F,GAAY3F,CAAI,EAC3F,EAGJA,EAAK,QACd,CAGA,SAAS4G,GAAgBzL,EAAS,CAChC,KAAM,CAAE,KAAA0L,EAAM,aAAAC,EAAc,OAAAC,EAAQ,QAAAC,EAAU,EAAI,EAAK7L,EACvD,GAAI,CAAC6L,EAAS,OACd,IAAIhH,EAAO,KAGX,GAFAA,IAASA,EAAO,OAAO8G,GAAiB,WAAaA,EAAc,EAAGA,GACtE9G,IAASA,EAAO6G,GAAA,YAAAA,EAAM,cAAc,iCAChC,CAAC7G,EAAM,CACT,MAAMiH,EAAYX,GAAaO,CAAI,EACnC7G,EAAO+G,EAASE,EAAU,OAAOF,CAAM,EAAE,CAAC,EAAIE,EAAU,CAAC,CAC7D,CACE,OAAOjH,GAAQ6G,GAAQ,MACzB,CACA,SAASK,GAAgBpE,EAAO,CAC9B,MAAMiD,EAAYjD,EAAM,cACxB,GAAI,CAACiD,EAAW,MAAO,GACvB,KAAM,CAACoB,EAAeC,CAAY,EAAIV,GAAiBX,CAAS,EAC1DsB,EAAMtB,EAAU,eAAiB,SAGvC,MAFI,EAAAsB,EAAI,gBAAkBF,GAAiBrE,EAAM,UAC7CuE,EAAI,gBAAkBD,GAAgB,CAACtE,EAAM,UAC7C,CAACqE,GAAiB,CAACC,EAEzB,CAGA,SAASE,GAAShJ,EAAI,CACpB,MAAMiJ,EAAsB,IAAI,IAChC,SAASC,EAAKC,EAAK,CACjB,MAAMC,EAAK,WAAW,sBAAsBD,CAAG,EAC/CF,EAAI,IAAI,IAAM,WAAW,qBAAqBG,CAAE,CAAC,CACrD,CACE,OAAAF,EAAK,IAAMA,EAAKlJ,CAAE,CAAC,EACZ,UAAmB,CACxBiJ,EAAI,QAASE,GAAQA,EAAG,CAAE,CAC3B,CACH,CACA,SAASE,EAAIrJ,EAAI,CACf,IAAImH,EACJ,MAAMiC,EAAK,WAAW,sBAAsB,IAAM,CAChDjC,EAAUnH,EAAI,CAClB,CAAG,EACD,MAAO,IAAM,CACX,WAAW,qBAAqBoJ,CAAE,EAClCjC,GAAA,MAAAA,GACD,CACH,CACA,SAASmC,GAAiBhI,EAAIkE,EAAM+D,EAAI,CACtC,MAAMC,EAAcH,EAAI,IAAM,CAC5B/H,EAAG,oBAAoBkE,EAAMiE,EAAM,EAAI,EACvCF,EAAI,CACR,CAAG,EACKE,EAAO,IAAM,CACjBD,EAAa,EACbD,EAAI,CACL,EACD,OAAAjI,EAAG,iBAAiBkE,EAAMiE,EAAM,CAAE,KAAM,GAAM,QAAS,GAAM,EACtDD,CACT,CAGA,SAASE,GAAsBhI,EAAM7E,EAAS,CAC5C,GAAI,CAAC6E,EAAM,OACX,KAAM,CAAE,WAAAiI,EAAY,SAAU3J,CAAI,EAAGnD,EAC/BwJ,EAAM3E,EAAK,cAAc,aAAe,OACxCoF,EAAM,IAAIT,EAAI,iBAAkBuD,GAAY,CAChD,UAAWC,KAAUD,EACfC,EAAO,OAAS,cAAgBA,EAAO,eAAiBF,EAAW,SAASE,EAAO,aAAa,GAClG7J,EAAG6J,CAAM,CAGjB,CAAG,EACD,OAAA/C,EAAI,QAAQpF,EAAM,CAAE,WAAY,GAAM,gBAAiBiI,EAAY,EAC5D,IAAM7C,EAAI,WAAY,CAC/B,CACA,SAASgD,GAAkBC,EAAUlN,EAAS,CAE5C,MAAMmN,EAAeX,EACfnC,EAAW,CAAE,EACnB,OAAAA,EAAS,KACP8C,EAAK,IAAM,CACT,MAAMtI,EAAO,OAAOqI,GAAa,WAAaA,EAAU,EAAGA,EAC3D7C,EAAS,KAAKwC,GAAsBhI,EAAM7E,CAAO,CAAC,CACnD,CAAA,CACF,EACM,IAAM,CACXqK,EAAS,QAASlH,GAAOA,GAAA,YAAAA,GAAM,CAChC,CACH,CAyBA,SAASiK,GAAY3I,EAAI,CACvB,MAAM4I,EAAQ,IAAM5I,EAAG,MAAO,EAC1B+C,GAAS,EACXiF,GAAiBhI,EAAI,QAAS4I,CAAK,EAEnC,eAAeA,CAAK,CAExB,CAGA,SAASC,GAA2B7I,EAAI,CACtC,MAAM8I,EAAapH,GAAc1B,CAAE,EACnC,OAAIK,GAAcyI,CAAU,EAAU3H,GAAY2H,CAAU,EAAE,KAC1D/I,EAAc+I,CAAU,GAAKC,GAAkBD,CAAU,EAAUA,EAChED,GAA2BC,CAAU,CAC9C,CAqBA,IAAIE,GAAc,kCAClB,SAASD,GAAkB/I,EAAI,CAC7B,MAAM+E,EAAM1D,EAAUrB,CAAE,EAClB,CAAE,SAAAiJ,EAAU,UAAAC,EAAW,UAAAC,EAAW,QAAAC,CAAO,EAAKrE,EAAI,iBAAiB/E,CAAE,EAC3E,OAAOgJ,GAAY,KAAKC,EAAWE,EAAYD,CAAS,GAAK,CAAC,CAAC,SAAU,UAAU,EAAE,SAASE,CAAO,CACvG,CACA,SAASC,GAAarJ,EAAI,CACxB,OAAOA,EAAG,aAAeA,EAAG,cAAgBA,EAAG,YAAcA,EAAG,WAClE,CACA,SAASsJ,GAAetJ,EAAIzE,EAAS,CACnC,KAAM,CAAE,OAAAgO,EAAQ,GAAGC,CAAe,EAAGjO,GAAW,CAAE,EAC9C,CAACyE,GAAM,CAACuJ,GACR,CAACR,GAAkBQ,CAAM,GAAK,CAACF,GAAaE,CAAM,GACtDvJ,EAAG,eAAewJ,CAAa,CACjC,CAkJA,SAASC,GAAWlO,EAAS,CAC3B,KAAM,CACJ,YAAAmO,EACA,aAAAC,EAAeD,EACf,QAAAE,EACA,aAAAC,EACA,WAAAC,EACA,WAAAC,EAAclJ,GAAMA,EAAE,MAAQ,OAClC,EAAMtF,EACJ,GAAI,CAACmO,EAAa,OAAOnL,GACzB,MAAMwG,EAAM1D,EAAUqI,CAAW,EAC3BjC,EAAMtG,GAAYuI,CAAW,EACnC,IAAIM,EAAuBzL,GACvB0L,EAAqB1L,GACrB2L,EAA4B3L,GAChC,MAAM4L,EAAWjH,IAAW,CAC1B,MAAOe,GAAcf,CAAK,EAC1B,MAAAA,CACJ,GACE,SAASkH,EAAWlH,EAAO,CACzB2G,GAAA,MAAAA,EAAeM,EAAQjH,CAAK,EAChC,CACE,SAASmH,EAAYnH,EAAO,CAC1B4G,GAAA,MAAAA,EAAaK,EAAQjH,CAAK,EAC9B,CAsBE,MAAMoH,EAAwBlG,EAAYsF,EAAa,cArB5Ba,GAAe,CACxCN,EAAoB,EASpB,MAAMO,EAA0BpG,EAAYW,EAAK,YARxB0F,GAAa,CACpC,MAAMpG,EAASjB,EAAeqH,CAAQ,EAClC3J,GAAS4I,EAAarF,CAAM,EAC9BuF,GAAA,MAAAA,EAAUO,EAAQM,CAAQ,GAE1BX,GAAA,MAAAA,EAAaK,EAAQM,CAAQ,EAEhC,EAC8E,CAAE,QAAS,CAACb,EAAS,KAAM,EAAI,CAAE,EAC1Gc,EAA8BtG,EAAYW,EAAK,gBAAiBsF,EAAa,CACjF,QAAS,CAACP,EACV,KAAM,EACZ,CAAK,EACDG,EAAqB3K,GAAKkL,EAAyBE,CAA2B,EAC1EjD,EAAI,gBAAkBkC,GAAgBY,EAAW,cAAgB,SACnEA,EAAW,eAAgB,EAE7BH,EAAWG,CAAU,CACtB,EACwF,CAAE,QAAS,CAACV,EAAc,EAC7Gc,EAAsBvG,EAAYuF,EAAc,QAASiB,CAAoB,EACnFZ,EAAuB1K,GAAKgL,EAAuBK,CAAmB,EACtE,SAASC,GAAuB,CAC9B,MAAMC,EAAiBC,GAAiB,CACtC,GAAI,CAACf,EAAWe,CAAY,EAAG,OAC/B,MAAMC,EAAeC,GAAe,CAClC,GAAI,CAACjB,EAAWiB,CAAU,EAAG,OAC7B,MAAMC,EAAO,IAAIlG,EAAI,aAAa,WAAW,EACvCmG,EAAOf,EAAQc,CAAI,EACzBrB,GAAA,MAAAA,EAAUsB,GACVpB,GAAA,MAAAA,EAAaoB,EACd,EACDjB,EAAoB,EACpBA,EAAqB7F,EAAYuF,EAAc,QAASoB,CAAW,EACnE,MAAMI,EAAM,IAAIpG,EAAI,aAAa,aAAa,EAC9CqF,EAAWe,CAAG,CACf,EACKC,EAAa,IAAM,CACvB,MAAMD,EAAM,IAAIpG,EAAI,aAAa,eAAe,EAChDsF,EAAYc,CAAG,CAChB,EACKE,EAAwBjH,EAAYuF,EAAc,UAAWkB,CAAa,EAC1ES,EAAqBlH,EAAYuF,EAAc,OAAQyB,CAAU,EACvElB,EAA4B5K,GAAK+L,EAAuBC,CAAkB,CAC9E,CACE,MAAO,IAAM,CACXtB,EAAsB,EACtBC,EAAoB,EACpBC,EAA2B,CAC5B,CACH,CAmDA,SAASqB,GAAStE,EAAMuE,EAAU,OAChC,OAAO,MAAM,MAAKpP,EAAA6K,GAAA,YAAAA,EAAM,iBAAiBuE,KAAvB,KAAApP,EAAoC,EAAE,CAC1D,CAIA,IAAIqP,GAAmBnP,GAAMA,EAAE,GAC/B,SAASoP,GAASpP,EAAGwL,EAAI6D,EAAWF,GAAiB,CACnD,OAAOnP,EAAE,KAAMS,GAAS4O,EAAS5O,CAAI,IAAM+K,CAAE,CAC/C,CACA,SAAS8D,GAAUtP,EAAGwL,EAAI6D,EAAWF,GAAiB,CACpD,MAAM1O,EAAO2O,GAASpP,EAAGwL,EAAI6D,CAAQ,EACrC,OAAO5O,EAAOT,EAAE,QAAQS,CAAI,EAAI,EAClC,CACA,SAAS8O,GAASvP,EAAGwL,EAAIgE,EAAO,GAAM,CACpC,IAAI3M,EAAMyM,GAAUtP,EAAGwL,CAAE,EACzB,OAAA3I,EAAM2M,GAAQ3M,EAAM,GAAK7C,EAAE,OAAS,KAAK,IAAI6C,EAAM,EAAG7C,EAAE,OAAS,CAAC,EAC3DA,EAAE6C,CAAG,CACd,CACA,SAAS4M,GAASzP,EAAGwL,EAAIgE,EAAO,GAAM,CACpC,IAAI3M,EAAMyM,GAAUtP,EAAGwL,CAAE,EACzB,OAAI3I,IAAQ,GAAW2M,EAAOxP,EAAEA,EAAE,OAAS,CAAC,EAAI,MAChD6C,EAAM2M,GAAQ3M,EAAM,EAAI7C,EAAE,QAAUA,EAAE,OAAS,KAAK,IAAI,EAAG6C,EAAM,CAAC,EAC3D7C,EAAE6C,CAAG,EACd,CAGA,SAAS6M,GAAiB3F,EAAU9K,EAAS,CAC3C,KAAM,CAAE,QAAA0Q,EAAS,QAAAC,EAAS,IAAAC,EAAM,YAAc,EAAG5Q,EAC3C6Q,GAAS,MAAM,QAAQ/F,CAAQ,EAAIA,EAAW,CAACA,CAAQ,GAAG,OAAOtG,CAAa,EAC9EgF,EAAM1D,EAAU+K,EAAM,CAAC,CAAC,EACxBC,EAAWC,GAAY,CAC3B,MAAMC,EAAQH,EAAM,IAAKpM,GAAOkM,EAAQlM,CAAE,CAAC,EAC3CiM,EAAQ,CAAE,MAAAM,EAAO,QAAAD,EAAS,CAC3B,EACDD,EAAQ,CAAA,CAAE,EACV,MAAM7G,EAAM,IAAIT,EAAI,eAAesH,CAAO,EAC1C,OAAAD,EAAM,QAASpM,GAAOwF,EAAI,QAAQxF,EAAI,CAAE,IAAAmM,CAAG,CAAE,CAAC,EACvC,IAAM3G,EAAI,WAAY,CAC/B,CAoBA,IAAIgH,GAAYC,GAAQA,EAAI,MAAM,EAAE,EAAE,IAAKC,GAAS,CAClD,MAAMC,EAAOD,EAAK,WAAW,CAAC,EAC9B,OAAIC,EAAO,GAAKA,EAAO,IAAYD,EAC/BC,GAAQ,KAAOA,GAAQ,IAAY,KAAKA,EAAK,SAAS,EAAE,CAAC,GAAG,QAAQ,IAAK,IAAI,EAC1E,EACT,CAAC,EAAE,KAAK,EAAE,EAAE,KAAM,EACdC,GAAgB5M,GAAO,WACzB,OAAOwM,IAASlL,GAAAC,GAAAnF,EAAA4D,EAAG,UAAH,YAAA5D,EAAY,YAAZ,KAAAmF,EAAyBvB,EAAG,cAA5B,KAAAsB,EAA2C,EAAE,CAC/D,EACIuL,GAAQ,CAACC,EAAWC,IACfD,EAAU,OAAO,YAAa,EAAC,WAAWC,EAAO,aAAa,EAEvE,SAASC,GAAU1Q,EAAG2Q,EAAMC,EAAWvB,EAAWF,GAAiB,CACjE,MAAMpM,EAAQ6N,EAAYtB,GAAUtP,EAAG4Q,EAAWvB,CAAQ,EAAI,GAC9D,IAAIhP,EAAQuQ,EAAYhO,GAAK5C,EAAG+C,CAAK,EAAI/C,EAEzC,OADoB2Q,EAAK,SAAW,IAElCtQ,EAAQA,EAAM,OAAQI,GAAS4O,EAAS5O,CAAI,IAAMmQ,CAAS,GAEtDvQ,EAAM,KAAMI,GAAS8P,GAAMD,GAAa7P,CAAI,EAAGkQ,CAAI,CAAC,CAC7D,CA2BA,SAASE,GAASnN,EAAIoN,EAAO,CAC3B,GAAI,CAACpN,EAAI,OAAOzB,GAChB,MAAM8O,EAAO,OAAO,KAAKD,CAAK,EAAE,OAAO,CAAC5N,EAAK/B,KAC3C+B,EAAI/B,CAAG,EAAIuC,EAAG,MAAM,iBAAiBvC,CAAG,EACjC+B,GACN,EAAE,EACL,cAAO,OAAOQ,EAAG,MAAOoN,CAAK,EACtB,IAAM,CACX,OAAO,OAAOpN,EAAG,MAAOqN,CAAI,EACxBrN,EAAG,MAAM,SAAW,GACtBA,EAAG,gBAAgB,OAAO,CAE7B,CACH,CACA,SAASsN,GAAiBtN,EAAI9B,EAAMjB,EAAO,CACzC,GAAI,CAAC+C,EAAI,OAAOzB,GAChB,MAAM8O,EAAOrN,EAAG,MAAM,iBAAiB9B,CAAI,EAC3C,OAAA8B,EAAG,MAAM,YAAY9B,EAAMjB,CAAK,EACzB,IAAM,CACX+C,EAAG,MAAM,YAAY9B,EAAMmP,CAAI,EAC3BrN,EAAG,MAAM,SAAW,GACtBA,EAAG,gBAAgB,OAAO,CAE7B,CACH,CAGA,SAASuN,GAAmBC,EAAWjS,EAAS,CAC9C,KAAM,CAAE,MAAOkS,EAAQ,SAAAC,EAAU,IAAAjQ,EAAK,QAAAkQ,EAAU,IAAK,SAAAhC,CAAQ,EAAKpQ,EAC5DqS,EAASH,EAAO,UAAYhQ,EAE5BsP,EADaa,EAAO,OAAS,GAAK,MAAM,KAAKA,CAAM,EAAE,MAAOlB,GAASA,IAASkB,EAAO,CAAC,CAAC,EACjEA,EAAO,CAAC,EAAIA,EACxC,IAAIjR,EAAQ6Q,EAAU,MAAO,EAC7B,MAAMtM,EAAO8L,GAAUrQ,EAAOoQ,EAAQW,EAAU/B,CAAQ,EACxD,SAAS9F,GAAU,CACjB,aAAa4H,EAAO,KAAK,EACzBA,EAAO,MAAQ,EACnB,CACE,SAASI,EAAO5Q,EAAO,CACrBwQ,EAAO,UAAYxQ,EACnB4I,EAAS,EACL5I,IAAU,KACZwQ,EAAO,MAAQ,CAAC,WAAW,IAAM,CAC/BI,EAAO,EAAE,EACThI,EAAS,CACV,EAAE8H,CAAO,EAEhB,CACE,OAAAE,EAAOD,CAAM,EACN1M,CACT,CACA,IAAI4M,GAAiC,OAAO,OAAOP,GAAoB,CACrE,eAAgB,CAAE,UAAW,GAAI,MAAO,EAAI,EAC5C,aAAcQ,EAChB,CAAC,EACD,SAASA,GAAsB7K,EAAO,CACpC,OAAOA,EAAM,IAAI,SAAW,GAAK,CAACA,EAAM,SAAW,CAACA,EAAM,OAC5D,CAmBA,IAAI8K,GAAsB,CACxB,OAAQ,IACR,KAAM,gBACN,OAAQ,MACR,OAAQ,OACR,SAAU,SACV,QAAS,IACT,SAAU,WACV,MAAO,MACP,WAAY,SACZ,SAAU,QACZ,EAMIC,GAAM,IAAM,GAChB,SAASC,GAAenB,EAAQ9E,EAAI,CAClC,MAAMjI,EAAK+M,EAAQ,EACnB,GAAIhN,EAAcC,CAAE,GAAKA,EAAG,YAC1B,OAAAiI,EAAGjI,CAAE,EACE,OACF,CACL,MAAMmO,EAAU,YAAY,IAAM,CAChC,MAAMC,EAAMrB,EAAQ,EAChBhN,EAAcqO,CAAG,GAAKA,EAAI,cAC5BnG,EAAGmG,CAAG,EACN,cAAcD,CAAO,EAExB,EAAEF,EAAG,EACN,MAAO,IAAM,cAAcE,CAAO,CACtC,CACA,CACA,SAASE,GAAgBC,EAASrG,EAAI,CACpC,MAAMrC,EAAW,CAAE,EACnB,OAAA0I,GAAA,MAAAA,EAAS,QAASvB,GAAW,CAC3B,MAAMwB,EAAQL,GAAenB,EAAQ9E,CAAE,EACvCrC,EAAS,KAAK2I,CAAK,CACvB,GACS,IAAM,CACX3I,EAAS,QAASlH,GAAOA,EAAE,CAAE,CAC9B,CACH,CC1lCA,IAAI8P,GAAO,IAAIC,IAASA,EAAK,IAAKhC,GAAG,OAAK,OAAArQ,EAAAqQ,GAAA,YAAAA,EAAK,OAAL,YAAArQ,EAAA,KAAAqQ,GAAa,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC7EiC,GAAY,qCACZC,GAAavB,GAAU,CACzB,MAAM/O,EAAM,CAAE,EACd,IAAIwO,EACJ,KAAOA,EAAQ6B,GAAU,KAAKtB,CAAK,GACjC/O,EAAIwO,EAAM,CAAC,CAAC,EAAIA,EAAM,CAAC,EAEzB,OAAOxO,CACT,EACIuQ,GAAM,CAACzR,EAAGC,IAAM,CAClB,GAAIS,GAASV,CAAC,EAAG,CACf,GAAIU,GAAST,CAAC,EAAG,MAAO,GAAGD,CAAC,IAAIC,CAAC,GACjCD,EAAIwR,GAAUxR,CAAC,CACnB,MAAaU,GAAST,CAAC,IACnBA,EAAIuR,GAAUvR,CAAC,GAEjB,OAAO,OAAO,OAAO,CAAE,EAAED,GAAA,KAAAA,EAAK,CAAE,EAAEC,GAAA,KAAAA,EAAK,EAAE,CAC3C,EACA,SAASyR,KAAcJ,EAAM,CAC3B,IAAI9M,EAAS,CAAE,EACf,QAASmN,KAASL,EAAM,CACtB,QAAShR,KAAOkE,EAAQ,CACtB,GAAIlE,EAAI,WAAW,IAAI,GAAK,OAAOkE,EAAOlE,CAAG,GAAM,YAAc,OAAOqR,EAAMrR,CAAG,GAAM,WAAY,CACjGkE,EAAOlE,CAAG,EAAIe,GAAQsQ,EAAMrR,CAAG,EAAGkE,EAAOlE,CAAG,CAAC,EAC7C,QACR,CACM,GAAIA,IAAQ,aAAeA,IAAQ,QAAS,CAC1CkE,EAAOlE,CAAG,EAAI+Q,GAAK7M,EAAOlE,CAAG,EAAGqR,EAAMrR,CAAG,CAAC,EAC1C,QACR,CACM,GAAIA,IAAQ,QAAS,CACnBkE,EAAOlE,CAAG,EAAImR,GAAIjN,EAAOlE,CAAG,EAAGqR,EAAMrR,CAAG,CAAC,EACzC,QACR,CACMkE,EAAOlE,CAAG,EAAIqR,EAAMrR,CAAG,IAAM,OAASqR,EAAMrR,CAAG,EAAIkE,EAAOlE,CAAG,CACnE,CACI,QAASA,KAAOqR,EACVnN,EAAOlE,CAAG,IAAM,SAClBkE,EAAOlE,CAAG,EAAIqR,EAAMrR,CAAG,EAG/B,CACE,OAAOkE,CACT,CAgBA,SAASoN,IAAe,CACtB,MAAO,CACL,IAAK,IAAIC,IACA,SAAkBC,EAAQ,CAC/B,OAAOD,EAAO,MAAOvC,GAAQwC,EAAO,MAAMxC,CAAG,CAAC,CAC/C,EAEH,GAAI,IAAIuC,IACC,SAAiBC,EAAQ,CAC9B,OAAOD,EAAO,KAAMvC,GAAQwC,EAAO,MAAMxC,CAAG,CAAC,CAC9C,EAEH,IAAM/M,GACG,SAAkBuP,EAAQ,CAC/B,MAAO,CAACA,EAAO,MAAMvP,CAAK,CAC3B,CAEJ,CACH,CAmBA,IAAIwP,IAAkCC,IACpCA,EAAe,WAAgB,cAC/BA,EAAe,QAAa,UAC5BA,EAAe,QAAa,UACrBA,IACND,IAAiB,CAAA,CAAE,EAClBE,GAAa,WACjB,SAASC,GAAYP,EAAO,CAC1B,MAAMQ,EAAc,IAAA,SAAM,OAAA/N,GAAAnF,EAAA0S,EAAM,cAAN,YAAA1S,EAAA,KAAA0S,KAAA,KAAAvN,EAAyB,UAC7CgO,EAAS,IAAMpO,GAAYmO,GAAa,EACxCE,EAAS,IAAA,OAAM,OAAApT,EAAAmT,EAAQ,EAAC,cAAT,KAAAnT,EAAwB,QACvCqT,EAAqB,IAAMjO,GAAiB8N,GAAa,EAG/D,MAAO,CACL,GAAGR,EACH,YAAAQ,EACA,OAAAC,EACA,OAAAC,EACA,iBAAkBC,EAClB,gBARuBC,GAASA,IAASD,EAAoB,EAS7D,QARe3H,GAAOwH,EAAW,EAAG,eAAexH,CAAE,CAStD,CACH,CC3HA,SAAS6H,GAAiBjR,EAAI,CAC5B,OAAO,IAAI,MAAM,GAAI,CACnB,IAAIkR,EAASnS,EAAK,CAChB,OAAIA,IAAQ,QACFqR,GACCpQ,EAAG,CAAE,MAAOoQ,CAAK,CAAE,EAAE,MAEzBpQ,CACb,CACA,CAAG,CACH,CAGA,IAAImR,GAAc,IAAOf,GAAU,MAAM,KAAK,IAAI,IAAIA,CAAK,CAAC,ECFxDgB,GAAsB,OAAO,WAAW,UAAa,YAAcC,EAAe,gBAAGC,EAAS,UAGlG,SAASC,GAAYnB,EAAO,SAC1B,MAAMoB,GAAU9T,EAAA0S,EAAK,EAAG,QAAR,KAAA1S,EAAiB0S,EAAO,EAAC,aACnCqB,GAAK5O,EAAAuN,EAAK,EAAG,UAAR,KAAAvN,EAAmB,OAAO,GAC/B,CAAC6O,CAAY,EAAIC,EAAQ,SAACH,CAAO,EACjC,CAACjT,EAAOqT,CAAQ,EAAID,EAAAA,SAASD,CAAY,EACzCG,EAAazB,IAAQ,QAAU,OAC/B0B,EAAWC,EAAM,OAACxT,CAAK,EAC7BuT,EAAS,QAAUD,EAAazB,EAAO,EAAC,MAAQ7R,EAChD,MAAMyT,EAAYD,EAAAA,OAAOD,EAAS,OAAO,EACzCV,GAAoB,IAAM,CACxBY,EAAU,QAAUF,EAAS,OAC9B,EAAE,CAACvT,EAAO6R,EAAO,EAAC,KAAK,CAAC,EACzB,MAAM6B,EAASC,GAAW,SACxB,MAAMvD,EAAOqD,EAAU,QACjBxP,EAAOpD,GAAW8S,CAAM,EAAIA,EAAOvD,CAAI,EAAIuD,EAC7C9B,EAAO,EAAC,OACV,QAAQ,IAAI,eAAeA,EAAO,EAAC,KAAK,aAAc,CAAE,KAAA5N,EAAM,KAAAmM,EAAM,EAEjEkD,GAAYD,EAASpP,CAAI,EACzBiP,EAAGjP,EAAMmM,CAAI,IAChB9L,GAAAnF,EAAA0S,KAAQ,WAAR,MAAAvN,EAAA,KAAAnF,EAAmB8E,EAAMmM,EAE5B,EACD,SAASwD,GAAM,CACb,OAAON,EAAazB,IAAQ,MAAQ7R,CACxC,CACE,MAAO,CACL,QAASmT,EACT,IAAKI,EACL,IAAAK,EACA,IAAID,EAAQ,EACG9B,EAAK,EAAG,KAAOgC,GAAS,UAAGxS,IACnC,IAAMqS,EAAMC,CAAM,CAAC,CACzB,EACD,OAAOG,EAAWC,EAAY,UAC5BzP,GAAAnF,EAAA0S,KAAQ,WAAR,MAAAvN,EAAA,KAAAnF,EAAmB2U,EAAWC,EAC/B,EACD,KAAKJ,EAAQ,WACX,OAAOtP,GAAAC,GAAAnF,EAAA0S,EAAO,GAAC,OAAR,YAAAvN,EAAA,KAAAnF,EAAewU,KAAf,KAAAtP,EAA0B,OAAOsP,CAAM,CACpD,CACG,CACH,CACAX,GAAY,QAAWvR,GAAO,CAC5BsR,YAAU,IAAMtR,EAAI,EAAE,CACxB,EACAuR,GAAY,IAAOpU,GAAiB,CAClC,MAAMoB,EAAQwT,EAAM,OAAC5U,CAAY,EACjC,MAAO,CACL,IAAK,IAAMoB,EAAM,QACjB,IAAMiE,GAAS,CACbjE,EAAM,QAAUiE,CACtB,CACG,CACH,EACA,SAAS+P,GAAQC,EAAM,CACrB,MAAMC,EAAMV,EAAM,OAACS,CAAI,EACvB,MAAO,CACL,IAAIzT,EAAK,CACP,OAAO0T,EAAI,QAAQ1T,CAAG,CACvB,EACD,IAAIA,EAAKR,EAAO,CACdkU,EAAI,QAAQ1T,CAAG,EAAIR,CACzB,CACG,CACH,CACA,IAAImU,GAAW,CAACC,EAAMC,IAAW,CAC/B,MAAMC,EAASd,EAAM,OAAC,EAAK,EACrBe,EAASf,EAAM,OAAC,EAAK,EAC3BT,EAAAA,UAAU,IAAM,CAGd,GAFgBuB,EAAO,SACAC,EAAO,QACrB,OAAOF,EAAQ,EACxBE,EAAO,QAAU,EAClB,EAAE,CAAC,IAAIH,GAAA,KAAAA,EAAQ,CAAE,GAAE,IAAKI,GAAM,OAAOA,GAAM,WAAaA,IAAMA,CAAC,CAAC,CAAC,EAClEzB,EAAAA,UAAU,KACRuB,EAAO,QAAU,GACV,IAAM,CACXA,EAAO,QAAU,EAClB,GACA,EAAE,CACP,EAGA,SAASG,GAAWC,EAASC,EAAY,GAAI,mBAC3C,MAAMC,EAAQC,EAAAA,QAAQ,IAAM,CAC1B,KAAM,CAAE,GAAAhK,EAAI,IAAAiK,EAAK,YAAAzC,CAAa,EAAGsC,EACjC,OAAOvC,GAAY,CAAE,GAAAvH,EAAI,IAAAiK,EAAK,YAAAzC,CAAW,CAAE,CAC/C,EAAK,CAACsC,CAAS,CAAC,EACRI,EAAQ,IAAIvD,IAAS,CACrBkD,EAAQ,OAAO,QAAQ,IAAI,GAAGlD,CAAI,CACvC,EACKK,GAAQvN,GAAAnF,EAAAuV,EAAQ,QAAR,YAAAvV,EAAA,KAAAuV,EAAgB,CAAE,MAAOhT,GAAQiT,CAAS,EAAG,MAAAC,CAAO,KAApD,KAAAtQ,EAAyDqQ,EACjE1T,EAAO+T,GAAQnD,CAAK,EACpB7S,GAAUqF,EAAAqQ,EAAQ,UAAR,YAAArQ,EAAA,KAAAqQ,EAAkB,CAChC,KAAAzT,EACA,SAAU+R,GACV,MAAA4B,EACA,MAAAK,GACA,YAAa,CACX,OAAOC,CACR,EACD,aAAc,CACZ,OAAOC,CACR,EACD,SAAU,CACR,OAAOlB,CACb,CACA,GACQmB,EAAaC,GAAWrW,CAAO,EAC/BkW,EAAM,CACV,IAAI1U,EAAK,OACP,OAAOrB,EAAAiW,EAAW,UAAX,YAAAjW,EAAqBqB,GAAK,IAAI,OACtC,EACD,IAAIA,EAAKR,EAAO,QACdb,EAAAiW,EAAW,UAAX,MAAAjW,EAAqBqB,GAAK,IAAIR,EAC/B,EACD,QAAQQ,EAAK,OACX,OAAOrB,EAAAiW,EAAW,UAAX,YAAAjW,EAAqBqB,GAAK,OAClC,EACD,KAAKA,EAAK,SACR,MAAM8U,GAAUnW,EAAAiW,EAAW,UAAX,YAAAjW,EAAqBqB,GAAK,MAC1C,OAAO8D,EAAA8Q,EAAW,UAAX,YAAA9Q,EAAqB9D,GAAK,KAAK8U,EAC5C,CACG,EACKC,EAAU/B,EAAAA,OAAuB,IAAI,GAAK,EAC1CgC,EAAgBhC,EAAM,OAAC,IAAI,EAC3BiC,EAAmBjC,EAAM,OAAC,IAAI,EAC9BkC,EAAWlC,EAAM,OAAC,CAAE,KAAM,EAAE,CAAE,EAC9BmC,EAAW,KAAO,CACtB,GAAGD,EAAS,QACZ,SAAU,CACR,OAAOA,EAAS,OACjB,EACD,UAAW,CACT,OAAOD,EAAiB,OAC9B,CACA,GACQG,EAAW,KAAO,CACtB,GAAGC,EACH,WAAWC,EAAQ,CACjB,OAAOA,EAAO,SAASD,EAAM,IAAI,OAAO,CACzC,EACD,OAAOE,EAAK,SACV,MAAO,CAAC,GAACzR,GAAAnF,EAAAuV,EAAQ,OAAOmB,EAAM,IAAI,OAAO,IAAhC,YAAA1W,EAAmC,OAAnC,MAAAmF,EAAyC,SAASyR,GACjE,CACA,GACQ9B,EAAOD,IAAQgC,IAAA9P,EAAAwO,EAAQ,OAAR,YAAAxO,EAAA,KAAAwO,EAAe,CAAE,KAAAzT,EAAM,QAASiU,MAAhC,KAAAc,GAA0C,EAAE,EAC3DC,EAAY,KAAO,CACvB,MAAOL,EAAU,EACjB,QAASV,EACT,MAAOS,EAAU,EACjB,KAAA1U,EACA,KAAAiV,EACA,OAAAC,EACA,MAAA1T,EACA,MAAO0R,GACP,KAAAF,EACA,SAAAkB,EACA,MAAAF,GACA,MAAAL,EACA,OAAAwB,CACJ,GACQD,EAAU7V,GAAS,CACvB,MAAM+V,EAAOxV,GAAWP,CAAI,EAAIA,EAAK2V,EAAW,CAAA,EAAI3V,EACpD,GAAI,CAAC+V,EAAM,OACX,MAAM7U,EAAM6U,EAAK,IAAKC,GAAM,UAC1B,MAAM7U,GAAK6C,IAAAnF,EAAAuV,EAAQ,kBAAR,YAAAvV,EAAyB,UAAzB,YAAAmF,GAAmCgS,GAC9C,OAAK7U,GAAII,GAAK,gDAAgD,KAAK,UAAUyU,CAAC,CAAC,GAAG,EAC3E7U,CACb,CAAK,EACD,UAAWA,KAAMD,EACfC,GAAA,MAAAA,EAAKwU,EAAS,EAEjB,EACKxT,EAAS+M,GAAQ,SACrB,OAAI3O,GAAW2O,CAAG,EAAUA,EAAIyG,EAAS,CAAE,GACpC3R,GAAAnF,EAAAuV,EAAQ,kBAAR,YAAAvV,EAAyB,SAAzB,YAAAmF,EAAkCkL,GAAKyG,EAAS,EACxD,EACK5B,EAAU/T,GAAS,CACvB,MAAM+V,EAAOxV,GAAWP,CAAI,EAAIA,EAAK2V,EAAW,CAAA,EAAI3V,EACpD,GAAI,CAAC+V,EAAM,OACX,MAAM7U,EAAM6U,EAAK,IAAKC,GAAM,WAC1B,MAAM7U,GAAK6C,IAAAnF,GAAAuV,EAAQ,kBAAR,YAAAvV,GAAyB,UAAzB,YAAAmF,GAAmCgS,GAC9C,OAAK7U,GAAII,GAAK,gDAAgD,KAAK,UAAUyU,CAAC,CAAC,GAAG,EAC3E7U,CACb,CAAK,EACKkH,EAAW,CAAE,EACnB,UAAWlH,KAAMD,EAAK,CACpB,MAAMoH,EAAUnH,GAAA,YAAAA,EAAKwU,KACjBrN,GAASD,EAAS,KAAKC,CAAO,CACxC,CACI,MAAO,IAAMD,EAAS,QAASlH,GAAOA,GAAA,YAAAA,GAAM,CAC7C,EACK2U,EAAUG,GACPnX,GAAQmX,CAAW,EAAE,KAAM3W,GAAM,CACtC,IAAI8E,EAAS,CAAC9E,EAAE,MAChB,OAAIgB,GAAShB,EAAE,KAAK,EAAG8E,EAAS,CAAC,CAACjC,EAAM7C,EAAE,KAAK,EACtCiB,GAAWjB,EAAE,KAAK,IAAG8E,EAAS9E,EAAE,MAAMqW,GAAW,GACnDvR,CACb,CAAK,EAEGyQ,EAAY3U,GAAQ,CACxBuB,GAAO2S,EAAQ,SAAU,IAAM,8CAA8C,EAC7E,MAAMjT,EAAKiT,EAAQ,SAASlU,CAAG,EAC/B,OAAOiB,EAAG,CACR,QAASyT,EACT,MAAOS,EAAU,EACjB,KAAA1U,EACA,KAAAgT,EACA,MAAAW,EACA,SAAAO,CACN,CAAK,CACF,EACKU,EAAQ7C,GAAY,KAAO,CAC/B,aAAc0B,EAAQ,aAAa,CAAE,KAAAzT,CAAI,CAAE,EAC3C,SAASuV,EAAWC,EAAW,cAC7B,GAAIA,EAAW,CACb,MAAMC,GAAcnB,EAAQ,QAAQ,IAAIkB,CAAS,EACjDC,IAAA,MAAAA,KACAnB,EAAQ,QAAQ,OAAOkB,CAAS,CACxC,CACUA,GACFN,GAAOhX,EAAAuV,EAAQ,OAAO+B,CAAS,IAAxB,YAAAtX,EAA2B,IAAI,EAExCgX,GAAO7R,EAAAkR,EAAc,UAAd,YAAAlR,EAAuB,OAAO,EACrC,MAAMsE,EAAUyL,GAAOhQ,EAAAqQ,EAAQ,OAAO8B,CAAS,IAAxB,YAAAnS,EAA2B,OAAO,EAEzD,GADIuE,GAAS2M,EAAQ,QAAQ,IAAIiB,EAAW5N,CAAO,EAC/C6N,IAActE,GAAY,CAC5BgE,EAAOzB,EAAQ,KAAK,EACpB,MAAMiC,GAAWtC,EAAOK,EAAQ,OAAO,EACnCiC,IAAUpB,EAAQ,QAAQ,IAAIpD,GAAYwE,EAAQ,CAC9D,CACMR,GAAOjQ,GAAAwO,EAAQ,OAAO8B,CAAS,IAAxB,YAAAtQ,GAA2B,KAAK,CAC7C,CACA,EAAI,EACI0Q,EAAmBpD,EAAM,OAAC,MAAM,EAChCqD,EAAYrD,EAAAA,OAAOvB,GAAc,UAAU,EACjDY,GAAoB,IAAM,CACxB,eAAe,IAAM,OACnB,MAAMiE,EAAUD,EAAU,UAAY5E,GAAc,QACpD4E,EAAU,QAAU5E,GAAc,QAClC8C,EAAM+B,EAAU,iBAAmB,iBAAiB,EACpD,MAAMC,GAAe5X,EAAAyX,EAAiB,UAAjB,KAAAzX,EAA4B0W,EAAM,QACvDA,EAAM,OAAOkB,EAAcD,EAAUjB,EAAM,IAAK,EAAG1D,EAAU,CACnE,CAAK,EACD,MAAM3Q,EAAM+T,EAAQ,QACdyB,EAAenB,EAAM,IAAI,QAC/B,MAAO,IAAM,CACXd,EAAM,eAAe,EACrB6B,EAAiB,QAAUI,EAC3BH,EAAU,QAAU5E,GAAc,QAClCzQ,EAAI,QAASC,GAAOA,GAAA,YAAAA,GAAM,EAC1B8T,EAAQ,QAA0B,IAAI,IACtCC,EAAc,QAAU,KACxB,eAAe,IAAM,CACnBW,EAAOzB,EAAQ,IAAI,CAC3B,CAAO,CACF,CACF,EAAE,EAAE,EACL,MAAMuC,EAAkB,IAClB,QAASpB,EAAcA,EAAM,IAAI,QAC9BA,EAAM,IAAK,EAEdK,EAAQjQ,GAAU,CACtB,eAAe,IAAM,oBACnB,GAAI4Q,EAAU,UAAY5E,GAAc,QAAS,OACjDwD,EAAiB,QAAUC,EAAS,QACpCA,EAAS,QAAUzP,EACnB8O,EAAM,OAAQ9O,CAAK,EACnB,IAAI+Q,EAAeC,EAAiB,EACpC,MAAMV,GAEJlS,IAAAlF,GAAAuV,EAAQ,OAAOsC,CAAY,EAAE,KAA7B,YAAA7X,GAAkC8G,EAAM,QAAxC,KAAA5B,IACAC,GAAAoQ,EAAQ,KAAR,YAAApQ,GAAa2B,EAAM,MAEfiR,EAAad,EAAOG,CAAW,EACrC,GAAI,CAACW,EAAY,OACjB1B,EAAc,QAAU0B,EACxB,MAAM9P,GAASlB,GAAAgR,EAAW,SAAX,KAAAhR,GAAqB8Q,EACpCjC,EAAM,aAAcmC,CAAU,EAC9B,MAAMC,EAAU/P,IAAW4P,EACvBG,EACFtD,GAAAA,UAAU,IAAMgC,EAAM,IAAIzO,CAAM,CAAC,EACxB8P,EAAW,SAAW,CAACC,EAChCtB,EAAM,OAAOmB,EAAcA,CAAY,EAEvCb,GAAOH,GAAAkB,EAAW,UAAX,KAAAlB,GAAsB,EAAE,CAEvC,CAAK,CACF,EACD,OAAAoB,GAAA1C,EAAQ,QAAR,MAAA0C,GAAA,KAAA1C,EAAgBuB,KACT,CACL,MAAOL,EAAU,EACjB,KAAAM,EACA,QAAShB,EACT,KAAAjU,EACA,MAAA2T,EACA,KAAAX,EACA,SAAAkB,EACA,MAAOQ,EAAU,EACjB,UAAW,IAAMkB,EAAU,OAC5B,CACH,CACA,SAASxB,GAAWrV,EAAO,CACzB,MAAMkU,EAAMV,EAAM,OAACxT,CAAK,EACxB,OAAAkU,EAAI,QAAUlU,EACPkU,CACT,CACA,SAASc,GAAQhV,EAAO,CACtB,MAAMkU,EAAMmB,GAAWrV,CAAK,EAC5B,OAAO,SAAaQ,EAAK,CACvB,OAAO0T,EAAI,QAAQ1T,CAAG,CACvB,CACH,CACA,SAASyU,GAAMxT,EAAI,CACjB,eAAe,IAAM,CACnBoS,GAAS,UAAC,IAAMpS,GAAI,CACxB,CAAG,CACH,CACA,IAAI4V,GAAiB3E,GAAkBrT,GAAMA,CAAC,EC9U9C,SAASiY,MAAerD,EAAM,CAC5B,OAAQ9Q,GAAS,CACf,MAAMoU,EAAW,CAAE,EACnB,UAAWrD,KAAOD,EAChB,GAAI,OAAOC,GAAQ,WAAY,CAC7B,MAAMlJ,EAAKkJ,EAAI/Q,CAAI,EACf,OAAO6H,GAAO,YAChBuM,EAAS,KAAKvM,CAAE,CAEnB,MAAUkJ,IACTA,EAAI,QAAU/Q,GAGlB,GAAIoU,EAAS,OACX,MAAO,IAAM,CACX,UAAWC,KAAWD,EACpBC,EAAS,CAEZ,CAEJ,CACH,CCjBA,SAASC,GAAOlO,EAAS,SACvB,IAAImO,GAASvY,EAAA,OAAO,yBAAyBoK,EAAQ,MAAO,KAAK,IAApD,YAAApK,EAAuD,IAChEwY,EAAUD,GAAU,mBAAoBA,GAAUA,EAAO,eAC7D,OAAIC,EACKpO,EAAQ,KAEjBmO,GAASpT,EAAA,OAAO,yBAAyBiF,EAAS,KAAK,IAA9C,YAAAjF,EAAiD,IAC1DqT,EAAUD,GAAU,mBAAoBA,GAAUA,EAAO,eACrDC,EACKpO,EAAQ,MAAM,IAEhBA,EAAQ,MAAM,KAAOA,EAAQ,IACtC,CACA,MAAMqO,GAAeC,GAAc,CACjC,MAAMC,EAAOC,EAAI,KACfC,aAAW,CAACnG,EAAOqC,IAAQ,CACzB,KAAM,CAAE,QAAA+D,EAAS,SAAAC,EAAU,GAAGC,CAAW,EAAGtG,EAC5C,GAAI,CAACoG,EACH,OAAOG,EAAAA,cAAcP,EAAW,CAAE,GAAGM,EAAW,IAAAjE,CAAK,EAAEgE,CAAQ,EAEjE,MAAMG,EAAYC,EAAAA,SAAS,KAAKJ,CAAQ,EACxC,GAAI,CAACK,EAAAA,eAAeF,CAAS,EAC3B,OAAO,KAET,MAAMG,EAAWf,GAAOY,CAAS,EACjC,OAAOI,EAAAA,aAAaJ,EAAW,CAC7B,GAAGzG,EAAWuG,EAAWE,EAAU,KAAK,EACxC,IAAKnE,EAAMoD,GAAYpD,EAAKsE,CAAQ,EAAIA,CAChD,CAAO,CACF,CAAA,CACF,EACD,OAAAV,EAAK,YAAcD,EAAU,aAAeA,EAAU,KAC/CC,CACT,EACMY,GAAa,IAAM,CACvB,MAAMC,EAAwB,IAAI,IAClC,OAAO,IAAI,MAAMf,GAAa,CAC5B,MAAMjF,EAASiG,EAAUC,EAAU,CACjC,OAAOjB,GAAYiB,EAAS,CAAC,CAAC,CAC/B,EACD,IAAI1W,EAAGoH,EAAS,CACd,MAAMuP,EAAYvP,EAClB,OAAKoP,EAAM,IAAIG,CAAS,GACtBH,EAAM,IAAIG,EAAWlB,GAAYkB,CAAS,CAAC,EAEtCH,EAAM,IAAIG,CAAS,CAChC,CACA,CAAG,CACH,EACMC,EAAML,GAAU,ECpDhBM,EAAmB,IAAM,CAACnH,EAAOvR,IAASA,EAAK,OACnD,CAAC2Y,EAAeC,IAAiB,CAC/B,KAAM,CAAC9R,EAAQ+R,CAAM,EAAIF,EACnBzY,EAAM0Y,EACZ,OAAIC,EAAO3Y,CAAG,IAAM,SAClB4G,EAAO5G,CAAG,EAAI2Y,EAAO3Y,CAAG,GAE1B,OAAO2Y,EAAO3Y,CAAG,EACV,CAAC4G,EAAQ+R,CAAM,CACvB,EACD,CAAC,CAAE,EAAE,CAAE,GAAGtH,CAAO,CAAA,CACnB,ECXA,IAAIuH,GAAgB,CAAC7a,EAAM8a,EAAQ,MAAQ,CACzC,MAAO,IAAIvD,IAAW,CACpB,GAAIwD,GAAQD,CAAK,EACf,OAAOD,GAAc7a,EAAMuX,CAAM,EAEnC,MAAM,IAAI,MAAM,+FAA+F,CAChH,EACD,WAAY,IAAIA,IAAWsD,GAAc7a,EAAM,CAAC,GAAG8a,EAAO,GAAGvD,CAAM,CAAC,EACpE,OAASyD,GAAYH,GAAcG,EAASF,CAAK,EACjD,KAAM,IAAMA,EACZ,MAAO,IAAM,CAAC,GAAG,IAAI,IAAIA,CAAK,CAAC,EAAE,OAC/B,CAACjJ,EAAMoJ,IAAS,OAAO,OAAOpJ,EAAM,CAClC,CAACoJ,CAAI,EAAG,CACN,SAAU,CACR,iBAAiBC,GAAYlb,CAAI,CAAC,iBAAiBkb,GAAYD,CAAI,CAAC,KACpE,kBAAkBC,GAAYlb,CAAI,CAAC,iBAAiBkb,GAAYD,CAAI,CAAC,IAC/E,EAAU,KAAK,IAAI,EACX,MAAO,CAAE,aAAcC,GAAYlb,CAAI,EAAG,YAAakb,GAAYD,CAAI,CAAC,CAChF,CACA,CAAK,EACD,CAAA,CACJ,CACA,GACIC,GAAezZ,GAAUA,EAAM,QAAQ,kBAAmB,OAAO,EAAE,QAAQ,kBAAmB,OAAO,EAAE,QAAQ,UAAW,GAAG,EAAE,YAAa,EAC5IsZ,GAAWja,GAAMA,EAAE,SAAW,ECtBlC,KAAM,CAACqa,GAA4BC,EAAqB,EAAItb,EAAc,CACxE,KAAM,qBACN,SAAU,wBACV,aAAc,0BACd,OAAQ,GACR,aAAc,CACZ,YAAa,IAAM,SACnB,YAAa,IAAM,SACnB,UAAW,IAAM,MACrB,CACA,CAAC,ECVK,CAACub,GAAuBC,EAAgB,EAAIxb,EAAc,CAC9D,KAAM,gBACN,SAAU,mBACV,aAAc,qBACd,OAAQ,GACR,aAAc,CAAE,IAAK,MAAO,OAAQ,OAAO,CAC7C,CAAC,ECJKyb,GAAQ,CAAC,MAAO,QAAS,SAAU,MAAM,EAGzCC,GAAM,KAAK,IACXC,EAAM,KAAK,IACXC,GAAQ,KAAK,MACbC,GAAQ,KAAK,MACbC,GAAe9a,IAAM,CACzB,EAAGA,EACH,EAAGA,CACL,GACM+a,GAAkB,CACtB,KAAM,QACN,MAAO,OACP,OAAQ,MACR,IAAK,QACP,EACMC,GAAuB,CAC3B,MAAO,MACP,IAAK,OACP,EACA,SAASC,GAAMC,EAAOva,EAAOwa,EAAK,CAChC,OAAOR,EAAIO,EAAOR,GAAI/Z,EAAOwa,CAAG,CAAC,CACnC,CACA,SAASC,GAASza,EAAO0a,EAAO,CAC9B,OAAO,OAAO1a,GAAU,WAAaA,EAAM0a,CAAK,EAAI1a,CACtD,CACA,SAAS2a,GAAQC,EAAW,CAC1B,OAAOA,EAAU,MAAM,GAAG,EAAE,CAAC,CAC/B,CACA,SAASC,GAAaD,EAAW,CAC/B,OAAOA,EAAU,MAAM,GAAG,EAAE,CAAC,CAC/B,CACA,SAASE,GAAgBC,EAAM,CAC7B,OAAOA,IAAS,IAAM,IAAM,GAC9B,CACA,SAASC,GAAcD,EAAM,CAC3B,OAAOA,IAAS,IAAM,SAAW,OACnC,CACA,SAASE,GAAYL,EAAW,CAC9B,MAAO,CAAC,MAAO,QAAQ,EAAE,SAASD,GAAQC,CAAS,CAAC,EAAI,IAAM,GAChE,CACA,SAASM,GAAiBN,EAAW,CACnC,OAAOE,GAAgBG,GAAYL,CAAS,CAAC,CAC/C,CACA,SAASO,GAAkBP,EAAWtL,EAAO8L,EAAK,CAC5CA,IAAQ,SACVA,EAAM,IAER,MAAMC,EAAYR,GAAaD,CAAS,EAClCU,EAAgBJ,GAAiBN,CAAS,EAC1Cra,EAASya,GAAcM,CAAa,EAC1C,IAAIC,EAAoBD,IAAkB,IAAMD,KAAeD,EAAM,MAAQ,SAAW,QAAU,OAASC,IAAc,QAAU,SAAW,MAC9I,OAAI/L,EAAM,UAAU/O,CAAM,EAAI+O,EAAM,SAAS/O,CAAM,IACjDgb,EAAoBC,GAAqBD,CAAiB,GAErD,CAACA,EAAmBC,GAAqBD,CAAiB,CAAC,CACpE,CACA,SAASE,GAAsBb,EAAW,CACxC,MAAMc,EAAoBF,GAAqBZ,CAAS,EACxD,MAAO,CAACe,GAA8Bf,CAAS,EAAGc,EAAmBC,GAA8BD,CAAiB,CAAC,CACvH,CACA,SAASC,GAA8Bf,EAAW,CAChD,OAAOA,EAAU,QAAQ,aAAcS,GAAahB,GAAqBgB,CAAS,CAAC,CACrF,CACA,SAASO,GAAYC,EAAMC,EAASV,EAAK,CACvC,MAAMW,EAAK,CAAC,OAAQ,OAAO,EACrBC,EAAK,CAAC,QAAS,MAAM,EACrBC,EAAK,CAAC,MAAO,QAAQ,EACrBC,EAAK,CAAC,SAAU,KAAK,EAC3B,OAAQL,EAAI,CACV,IAAK,MACL,IAAK,SACH,OAAIT,EAAYU,EAAUE,EAAKD,EACxBD,EAAUC,EAAKC,EACxB,IAAK,OACL,IAAK,QACH,OAAOF,EAAUG,EAAKC,EACxB,QACE,MAAO,CAAE,CACf,CACA,CACA,SAASC,GAA0BvB,EAAWwB,EAAeC,EAAWjB,EAAK,CAC3E,MAAMC,EAAYR,GAAaD,CAAS,EACxC,IAAI0B,EAAOV,GAAYjB,GAAQC,CAAS,EAAGyB,IAAc,QAASjB,CAAG,EACrE,OAAIC,IACFiB,EAAOA,EAAK,IAAIT,GAAQA,EAAO,IAAMR,CAAS,EAC1Ce,IACFE,EAAOA,EAAK,OAAOA,EAAK,IAAIX,EAA6B,CAAC,IAGvDW,CACT,CACA,SAASd,GAAqBZ,EAAW,CACvC,OAAOA,EAAU,QAAQ,yBAA0BiB,GAAQzB,GAAgByB,CAAI,CAAC,CAClF,CACA,SAASU,GAAoBC,EAAS,CACpC,MAAO,CACL,IAAK,EACL,MAAO,EACP,OAAQ,EACR,KAAM,EACN,GAAGA,CACJ,CACH,CACA,SAASC,GAAiBD,EAAS,CACjC,OAAO,OAAOA,GAAY,SAAWD,GAAoBC,CAAO,EAAI,CAClE,IAAKA,EACL,MAAOA,EACP,OAAQA,EACR,KAAMA,CACP,CACH,CACA,SAASE,GAAiBC,EAAM,CAC9B,KAAM,CACJ,EAAAC,EACA,EAAAC,EACA,MAAAC,EACA,OAAAC,CACJ,EAAMJ,EACJ,MAAO,CACL,MAAAG,EACA,OAAAC,EACA,IAAKF,EACL,KAAMD,EACN,MAAOA,EAAIE,EACX,OAAQD,EAAIE,EACZ,EAAAH,EACA,EAAAC,CACD,CACH,CCpIA,SAASG,GAA2BC,EAAMrC,EAAWQ,EAAK,CACxD,GAAI,CACF,UAAA8B,EACA,SAAAC,CACJ,EAAMF,EACJ,MAAMG,EAAWnC,GAAYL,CAAS,EAChCU,EAAgBJ,GAAiBN,CAAS,EAC1CyC,EAAcrC,GAAcM,CAAa,EACzCO,EAAOlB,GAAQC,CAAS,EACxB0C,EAAaF,IAAa,IAC1BG,EAAUL,EAAU,EAAIA,EAAU,MAAQ,EAAIC,EAAS,MAAQ,EAC/DK,EAAUN,EAAU,EAAIA,EAAU,OAAS,EAAIC,EAAS,OAAS,EACjEM,EAAcP,EAAUG,CAAW,EAAI,EAAIF,EAASE,CAAW,EAAI,EACzE,IAAIK,EACJ,OAAQ7B,EAAI,CACV,IAAK,MACH6B,EAAS,CACP,EAAGH,EACH,EAAGL,EAAU,EAAIC,EAAS,MAC3B,EACD,MACF,IAAK,SACHO,EAAS,CACP,EAAGH,EACH,EAAGL,EAAU,EAAIA,EAAU,MAC5B,EACD,MACF,IAAK,QACHQ,EAAS,CACP,EAAGR,EAAU,EAAIA,EAAU,MAC3B,EAAGM,CACJ,EACD,MACF,IAAK,OACHE,EAAS,CACP,EAAGR,EAAU,EAAIC,EAAS,MAC1B,EAAGK,CACJ,EACD,MACF,QACEE,EAAS,CACP,EAAGR,EAAU,EACb,EAAGA,EAAU,CACd,CACP,CACE,OAAQrC,GAAaD,CAAS,EAAC,CAC7B,IAAK,QACH8C,EAAOpC,CAAa,GAAKmC,GAAerC,GAAOkC,EAAa,GAAK,GACjE,MACF,IAAK,MACHI,EAAOpC,CAAa,GAAKmC,GAAerC,GAAOkC,EAAa,GAAK,GACjE,KACN,CACE,OAAOI,CACT,CASA,MAAMC,GAAkB,MAAOT,EAAWC,EAAUS,IAAW,CAC7D,KAAM,CACJ,UAAAhD,EAAY,SACZ,SAAAiD,EAAW,WACX,WAAAC,EAAa,CAAE,EACf,SAAAC,CACJ,EAAMH,EACEI,EAAkBF,EAAW,OAAO,OAAO,EAC3C1C,EAAM,MAAO2C,EAAS,OAAS,KAAO,OAASA,EAAS,MAAMZ,CAAQ,GAC5E,IAAI7N,EAAQ,MAAMyO,EAAS,gBAAgB,CACzC,UAAAb,EACA,SAAAC,EACA,SAAAU,CACJ,CAAG,EACG,CACF,EAAAjB,EACA,EAAAC,CACD,EAAGG,GAA2B1N,EAAOsL,EAAWQ,CAAG,EAChD6C,EAAoBrD,EACpBsD,EAAiB,CAAE,EACnBC,EAAa,EACjB,QAAS/d,EAAI,EAAGA,EAAI4d,EAAgB,OAAQ5d,IAAK,CAC/C,KAAM,CACJ,KAAA7B,EACA,GAAAkD,CACN,EAAQuc,EAAgB5d,CAAC,EACf,CACJ,EAAGge,EACH,EAAGC,EACH,KAAAC,EACA,MAAAC,CACD,EAAG,MAAM9c,EAAG,CACX,EAAAmb,EACA,EAAAC,EACA,iBAAkBjC,EAClB,UAAWqD,EACX,SAAAJ,EACA,eAAAK,EACA,MAAA5O,EACA,SAAAyO,EACA,SAAU,CACR,UAAAb,EACA,SAAAC,CACR,CACA,CAAK,EACDP,EAAIwB,GAAS,KAAOA,EAAQxB,EAC5BC,EAAIwB,GAAS,KAAOA,EAAQxB,EAC5BqB,EAAiB,CACf,GAAGA,EACH,CAAC3f,CAAI,EAAG,CACN,GAAG2f,EAAe3f,CAAI,EACtB,GAAG+f,CACX,CACK,EACGC,GAASJ,GAAc,KACzBA,IACI,OAAOI,GAAU,WACfA,EAAM,YACRN,EAAoBM,EAAM,WAExBA,EAAM,QACRjP,EAAQiP,EAAM,QAAU,GAAO,MAAMR,EAAS,gBAAgB,CAC5D,UAAAb,EACA,SAAAC,EACA,SAAAU,CACZ,CAAW,EAAIU,EAAM,OAEZ,CACC,EAAA3B,EACA,EAAAC,CACD,EAAGG,GAA2B1N,EAAO2O,EAAmB7C,CAAG,GAE9Dhb,EAAI,GAEV,CACE,MAAO,CACL,EAAAwc,EACA,EAAAC,EACA,UAAWoB,EACX,SAAAJ,EACA,eAAAK,CACD,CACH,EAUA,eAAeM,GAAe3I,EAAOvX,EAAS,CAC5C,IAAImgB,EACAngB,IAAY,SACdA,EAAU,CAAE,GAEd,KAAM,CACJ,EAAAse,EACA,EAAAC,EACA,SAAAkB,EACA,MAAAzO,EACA,SAAAlG,EACA,SAAAyU,CACJ,EAAMhI,EACE,CACJ,SAAA6I,EAAW,oBACX,aAAAC,EAAe,WACf,eAAAC,EAAiB,WACjB,YAAAC,EAAc,GACd,QAAArC,EAAU,CACd,EAAM/B,GAASnc,EAASuX,CAAK,EACrBiJ,EAAgBrC,GAAiBD,CAAO,EAExCjT,EAAUH,EAASyV,EADND,IAAmB,WAAa,YAAc,WACbA,CAAc,EAC5DG,EAAqBrC,GAAiB,MAAMqB,EAAS,gBAAgB,CACzE,SAAWU,EAAwB,MAAOV,EAAS,WAAa,KAAO,OAASA,EAAS,UAAUxU,CAAO,KAAO,MAAOkV,EAAgClV,EAAUA,EAAQ,gBAAmB,MAAOwU,EAAS,oBAAsB,KAAO,OAASA,EAAS,mBAAmB3U,EAAS,QAAQ,GAChS,SAAAsV,EACA,aAAAC,EACA,SAAAd,CACJ,CAAG,CAAC,EACIlB,EAAOiC,IAAmB,WAAa,CAC3C,EAAAhC,EACA,EAAAC,EACA,MAAOvN,EAAM,SAAS,MACtB,OAAQA,EAAM,SAAS,MACxB,EAAGA,EAAM,UACJ0P,EAAe,MAAOjB,EAAS,iBAAmB,KAAO,OAASA,EAAS,gBAAgB3U,EAAS,QAAQ,GAC5G6V,EAAe,MAAOlB,EAAS,WAAa,KAAO,OAASA,EAAS,UAAUiB,CAAY,GAAO,MAAOjB,EAAS,UAAY,KAAO,OAASA,EAAS,SAASiB,CAAY,IAAO,CACvL,EAAG,EACH,EAAG,CACP,EAAM,CACF,EAAG,EACH,EAAG,CACJ,EACKE,EAAoBxC,GAAiBqB,EAAS,sDAAwD,MAAMA,EAAS,sDAAsD,CAC/K,SAAA3U,EACA,KAAAuT,EACA,aAAAqC,EACA,SAAAnB,CACD,CAAA,EAAIlB,CAAI,EACT,MAAO,CACL,KAAMoC,EAAmB,IAAMG,EAAkB,IAAMJ,EAAc,KAAOG,EAAY,EACxF,QAASC,EAAkB,OAASH,EAAmB,OAASD,EAAc,QAAUG,EAAY,EACpG,MAAOF,EAAmB,KAAOG,EAAkB,KAAOJ,EAAc,MAAQG,EAAY,EAC5F,OAAQC,EAAkB,MAAQH,EAAmB,MAAQD,EAAc,OAASG,EAAY,CACjG,CACH,CAOA,MAAME,GAAQ7gB,IAAY,CACxB,KAAM,QACN,QAAAA,EACA,MAAM,GAAGuX,EAAO,CACd,KAAM,CACJ,EAAA+G,EACA,EAAAC,EACA,UAAAjC,EACA,MAAAtL,EACA,SAAAyO,EACA,SAAA3U,EACA,eAAA8U,CACN,EAAQrI,EAEE,CACJ,QAAAtM,EACA,QAAAiT,EAAU,CACX,EAAG/B,GAASnc,EAASuX,CAAK,GAAK,CAAE,EAClC,GAAItM,GAAW,KACb,MAAO,CAAE,EAEX,MAAMuV,EAAgBrC,GAAiBD,CAAO,EACxCkB,EAAS,CACb,EAAAd,EACA,EAAAC,CACD,EACK9B,EAAOG,GAAiBN,CAAS,EACjCra,EAASya,GAAcD,CAAI,EAC3BqE,EAAkB,MAAMrB,EAAS,cAAcxU,CAAO,EACtD8V,EAAUtE,IAAS,IACnBuE,EAAUD,EAAU,MAAQ,OAC5BE,EAAUF,EAAU,SAAW,QAC/BG,EAAaH,EAAU,eAAiB,cACxCI,EAAUnQ,EAAM,UAAU/O,CAAM,EAAI+O,EAAM,UAAUyL,CAAI,EAAI2C,EAAO3C,CAAI,EAAIzL,EAAM,SAAS/O,CAAM,EAChGmf,EAAYhC,EAAO3C,CAAI,EAAIzL,EAAM,UAAUyL,CAAI,EAC/C4E,EAAoB,MAAO5B,EAAS,iBAAmB,KAAO,OAASA,EAAS,gBAAgBxU,CAAO,GAC7G,IAAIqW,EAAaD,EAAoBA,EAAkBH,CAAU,EAAI,GAGjE,CAACI,GAAc,CAAE,MAAO7B,EAAS,WAAa,KAAO,OAASA,EAAS,UAAU4B,CAAiB,MACpGC,EAAaxW,EAAS,SAASoW,CAAU,GAAKlQ,EAAM,SAAS/O,CAAM,GAErE,MAAMsf,EAAoBJ,EAAU,EAAIC,EAAY,EAI9CI,EAAyBF,EAAa,EAAIR,EAAgB7e,CAAM,EAAI,EAAI,EACxEwf,EAAahG,GAAI+E,EAAcQ,CAAO,EAAGQ,CAAsB,EAC/DE,EAAajG,GAAI+E,EAAcS,CAAO,EAAGO,CAAsB,EAI/DG,EAAQF,EACR/F,EAAM4F,EAAaR,EAAgB7e,CAAM,EAAIyf,EAC7CE,EAASN,EAAa,EAAIR,EAAgB7e,CAAM,EAAI,EAAIsf,EACxDM,GAAS7F,GAAM2F,EAAOC,EAAQlG,CAAG,EAMjCoG,GAAkB,CAAClC,EAAe,OAASrD,GAAaD,CAAS,GAAK,MAAQsF,IAAWC,IAAU7Q,EAAM,UAAU/O,CAAM,EAAI,GAAK2f,EAASD,EAAQF,EAAaC,GAAcZ,EAAgB7e,CAAM,EAAI,EAAI,EAC5M8f,EAAkBD,GAAkBF,EAASD,EAAQC,EAASD,EAAQC,EAASlG,EAAM,EAC3F,MAAO,CACL,CAACe,CAAI,EAAG2C,EAAO3C,CAAI,EAAIsF,EACvB,KAAM,CACJ,CAACtF,CAAI,EAAGoF,GACR,aAAcD,EAASC,GAASE,EAChC,GAAID,IAAmB,CACrB,gBAAAC,CACD,CACF,EACD,MAAOD,EACR,CACL,CACA,GA+GME,GAAO,SAAUhiB,EAAS,CAC9B,OAAIA,IAAY,SACdA,EAAU,CAAE,GAEP,CACL,KAAM,OACN,QAAAA,EACA,MAAM,GAAGuX,EAAO,CACd,IAAI0K,EAAuBC,EAC3B,KAAM,CACJ,UAAA5F,EACA,eAAAsD,EACA,MAAA5O,EACA,iBAAAmR,EACA,SAAA1C,EACA,SAAA3U,CACR,EAAUyM,EACE,CACJ,SAAU6K,EAAgB,GAC1B,UAAWC,EAAiB,GAC5B,mBAAoBC,EACpB,iBAAAC,EAAmB,UACnB,0BAAAC,EAA4B,OAC5B,cAAA1E,EAAgB,GAChB,GAAG2E,CACX,EAAUtG,GAASnc,EAASuX,CAAK,EAM3B,IAAK0K,EAAwBrC,EAAe,QAAU,MAAQqC,EAAsB,gBAClF,MAAO,CAAE,EAEX,MAAM1E,EAAOlB,GAAQC,CAAS,EACxBoG,EAAkB/F,GAAYwF,CAAgB,EAC9CQ,EAAkBtG,GAAQ8F,CAAgB,IAAMA,EAChDrF,EAAM,MAAO2C,EAAS,OAAS,KAAO,OAASA,EAAS,MAAM3U,EAAS,QAAQ,GAC/E8X,EAAqBN,IAAgCK,GAAmB,CAAC7E,EAAgB,CAACZ,GAAqBiF,CAAgB,CAAC,EAAIhF,GAAsBgF,CAAgB,GAC1KU,EAA+BL,IAA8B,OAC/D,CAACF,GAA+BO,GAClCD,EAAmB,KAAK,GAAG/E,GAA0BsE,EAAkBrE,EAAe0E,EAA2B1F,CAAG,CAAC,EAEvH,MAAMgG,EAAa,CAACX,EAAkB,GAAGS,CAAkB,EACrDlV,EAAW,MAAMwS,GAAe3I,EAAOkL,CAAqB,EAC5DM,EAAY,CAAE,EACpB,IAAIC,IAAkBd,EAAuBtC,EAAe,OAAS,KAAO,OAASsC,EAAqB,YAAc,CAAE,EAI1H,GAHIE,GACFW,EAAU,KAAKrV,EAAS6P,CAAI,CAAC,EAE3B8E,EAAgB,CAClB,MAAM7G,EAAQqB,GAAkBP,EAAWtL,EAAO8L,CAAG,EACrDiG,EAAU,KAAKrV,EAAS8N,EAAM,CAAC,CAAC,EAAG9N,EAAS8N,EAAM,CAAC,CAAC,CAAC,CAC7D,CAOM,GANAwH,EAAgB,CAAC,GAAGA,EAAe,CACjC,UAAA1G,EACA,UAAAyG,CACR,CAAO,EAGG,CAACA,EAAU,MAAMxF,GAAQA,GAAQ,CAAC,EAAG,CACvC,IAAI0F,EAAuBC,EAC3B,MAAMC,KAAeF,EAAwBrD,EAAe,OAAS,KAAO,OAASqD,EAAsB,QAAU,GAAK,EACpHG,GAAgBN,EAAWK,CAAS,EAC1C,GAAIC,GAEF,MAAO,CACL,KAAM,CACJ,MAAOD,EACP,UAAWH,CACZ,EACD,MAAO,CACL,UAAWI,EACzB,CACW,EAKH,IAAIC,IAAkBH,EAAwBF,EAAc,OAAO9M,GAAKA,EAAE,UAAU,CAAC,GAAK,CAAC,EAAE,KAAK,CAACtU,EAAGC,IAAMD,EAAE,UAAU,CAAC,EAAIC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,IAAM,KAAO,OAASqhB,EAAsB,UAG1L,GAAI,CAACG,GACH,OAAQd,EAAgB,CACtB,IAAK,UACH,CACE,IAAIe,EACJ,MAAMhH,GAAagH,EAAyBN,EAAc,OAAO9M,GAAK,CACpE,GAAI2M,EAA8B,CAChC,MAAMU,EAAkB5G,GAAYzG,EAAE,SAAS,EAC/C,OAAOqN,IAAoBb,GAG3Ba,IAAoB,GACxC,CACkB,MAAO,EACzB,CAAiB,EAAE,IAAIrN,GAAK,CAACA,EAAE,UAAWA,EAAE,UAAU,OAAOxI,GAAYA,EAAW,CAAC,EAAE,OAAO,CAACzJ,EAAKyJ,IAAazJ,EAAMyJ,EAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC9L,EAAGC,IAAMD,EAAE,CAAC,EAAIC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAM,KAAO,OAASyhB,EAAuB,CAAC,EAC7LhH,IACF+G,GAAiB/G,GAEnB,KAChB,CACY,IAAK,mBACH+G,GAAiBlB,EACjB,KACd,CAEQ,GAAI7F,IAAc+G,GAChB,MAAO,CACL,MAAO,CACL,UAAWA,EACzB,CACW,CAEX,CACM,MAAO,CAAE,CACf,CACG,CACH,EAEA,SAASG,GAAe9V,EAAU2Q,EAAM,CACtC,MAAO,CACL,IAAK3Q,EAAS,IAAM2Q,EAAK,OACzB,MAAO3Q,EAAS,MAAQ2Q,EAAK,MAC7B,OAAQ3Q,EAAS,OAAS2Q,EAAK,OAC/B,KAAM3Q,EAAS,KAAO2Q,EAAK,KAC5B,CACH,CACA,SAASoF,GAAsB/V,EAAU,CACvC,OAAO8N,GAAM,KAAK+B,GAAQ7P,EAAS6P,CAAI,GAAK,CAAC,CAC/C,CAMA,MAAMmG,GAAO,SAAU1jB,EAAS,CAC9B,OAAIA,IAAY,SACdA,EAAU,CAAE,GAEP,CACL,KAAM,OACN,QAAAA,EACA,MAAM,GAAGuX,EAAO,CACd,KAAM,CACJ,MAAAvG,CACR,EAAUuG,EACE,CACJ,SAAAgI,EAAW,kBACX,GAAGkD,CACX,EAAUtG,GAASnc,EAASuX,CAAK,EAC3B,OAAQgI,EAAQ,CACd,IAAK,kBACH,CACE,MAAM7R,EAAW,MAAMwS,GAAe3I,EAAO,CAC3C,GAAGkL,EACH,eAAgB,WAC9B,CAAa,EACKkB,EAAUH,GAAe9V,EAAUsD,EAAM,SAAS,EACxD,MAAO,CACL,KAAM,CACJ,uBAAwB2S,EACxB,gBAAiBF,GAAsBE,CAAO,CAC9D,CACa,CACb,CACQ,IAAK,UACH,CACE,MAAMjW,EAAW,MAAMwS,GAAe3I,EAAO,CAC3C,GAAGkL,EACH,YAAa,EAC3B,CAAa,EACKkB,EAAUH,GAAe9V,EAAUsD,EAAM,QAAQ,EACvD,MAAO,CACL,KAAM,CACJ,eAAgB2S,EAChB,QAASF,GAAsBE,CAAO,CACtD,CACa,CACb,CACQ,QAEI,MAAO,CAAE,CAErB,CACA,CACG,CACH,EAwIA,eAAeC,GAAqBrM,EAAOvX,EAAS,CAClD,KAAM,CACJ,UAAAsc,EACA,SAAAmD,EACA,SAAA3U,CACJ,EAAMyM,EACEuF,EAAM,MAAO2C,EAAS,OAAS,KAAO,OAASA,EAAS,MAAM3U,EAAS,QAAQ,GAC/EyS,EAAOlB,GAAQC,CAAS,EACxBS,EAAYR,GAAaD,CAAS,EAClC0C,EAAarC,GAAYL,CAAS,IAAM,IACxCuH,EAAgB,CAAC,OAAQ,KAAK,EAAE,SAAStG,CAAI,EAAI,GAAK,EACtDuG,EAAiBhH,GAAOkC,EAAa,GAAK,EAC1C+E,EAAW5H,GAASnc,EAASuX,CAAK,EAGxC,GAAI,CACF,SAAAyM,EACA,UAAAC,EACA,cAAAjH,CACJ,EAAM,OAAO+G,GAAa,SAAW,CACjC,SAAUA,EACV,UAAW,EACX,cAAe,IACnB,EAAM,CACF,SAAUA,EAAS,UAAY,EAC/B,UAAWA,EAAS,WAAa,EACjC,cAAeA,EAAS,aACzB,EACD,OAAIhH,GAAa,OAAOC,GAAkB,WACxCiH,EAAYlH,IAAc,MAAQC,EAAgB,GAAKA,GAElDgC,EAAa,CAClB,EAAGiF,EAAYH,EACf,EAAGE,EAAWH,CAClB,EAAM,CACF,EAAGG,EAAWH,EACd,EAAGI,EAAYH,CAChB,CACH,CASA,MAAMjC,GAAS,SAAU7hB,EAAS,CAChC,OAAIA,IAAY,SACdA,EAAU,GAEL,CACL,KAAM,SACN,QAAAA,EACA,MAAM,GAAGuX,EAAO,CACd,IAAI2M,EAAuBjC,EAC3B,KAAM,CACJ,EAAA3D,EACA,EAAAC,EACA,UAAAjC,EACA,eAAAsD,CACR,EAAUrI,EACE4M,EAAa,MAAMP,GAAqBrM,EAAOvX,CAAO,EAI5D,OAAIsc,MAAgB4H,EAAwBtE,EAAe,SAAW,KAAO,OAASsE,EAAsB,aAAejC,EAAwBrC,EAAe,QAAU,MAAQqC,EAAsB,gBACjM,CAAE,EAEJ,CACL,EAAG3D,EAAI6F,EAAW,EAClB,EAAG5F,EAAI4F,EAAW,EAClB,KAAM,CACJ,GAAGA,EACH,UAAA7H,CACV,CACO,CACP,CACG,CACH,EAOM8H,GAAQ,SAAUpkB,EAAS,CAC/B,OAAIA,IAAY,SACdA,EAAU,CAAE,GAEP,CACL,KAAM,QACN,QAAAA,EACA,MAAM,GAAGuX,EAAO,CACd,KAAM,CACJ,EAAA+G,EACA,EAAAC,EACA,UAAAjC,CACR,EAAU/E,EACE,CACJ,SAAU6K,EAAgB,GAC1B,UAAWC,EAAiB,GAC5B,QAAAgC,EAAU,CACR,GAAI1F,GAAQ,CACV,GAAI,CACF,EAAAL,EACA,EAAAC,CACd,EAAgBI,EACJ,MAAO,CACL,EAAAL,EACA,EAAAC,CACD,CACb,CACS,EACD,GAAGkE,CACX,EAAUtG,GAASnc,EAASuX,CAAK,EACrB6H,EAAS,CACb,EAAAd,EACA,EAAAC,CACD,EACK7Q,EAAW,MAAMwS,GAAe3I,EAAOkL,CAAqB,EAC5DwB,EAAYtH,GAAYN,GAAQC,CAAS,CAAC,EAC1C0H,EAAWxH,GAAgByH,CAAS,EAC1C,IAAIK,EAAgBlF,EAAO4E,CAAQ,EAC/BO,EAAiBnF,EAAO6E,CAAS,EACrC,GAAI7B,EAAe,CACjB,MAAMoC,EAAUR,IAAa,IAAM,MAAQ,OACrCS,EAAUT,IAAa,IAAM,SAAW,QACxCvI,EAAM6I,EAAgB5W,EAAS8W,CAAO,EACtC9I,EAAM4I,EAAgB5W,EAAS+W,CAAO,EAC5CH,EAAgBtI,GAAMP,EAAK6I,EAAe5I,CAAG,CACrD,CACM,GAAI2G,EAAgB,CAClB,MAAMmC,EAAUP,IAAc,IAAM,MAAQ,OACtCQ,EAAUR,IAAc,IAAM,SAAW,QACzCxI,EAAM8I,EAAiB7W,EAAS8W,CAAO,EACvC9I,EAAM6I,EAAiB7W,EAAS+W,CAAO,EAC7CF,EAAiBvI,GAAMP,EAAK8I,EAAgB7I,CAAG,CACvD,CACM,MAAMgJ,EAAgBL,EAAQ,GAAG,CAC/B,GAAG9M,EACH,CAACyM,CAAQ,EAAGM,EACZ,CAACL,CAAS,EAAGM,CACrB,CAAO,EACD,MAAO,CACL,GAAGG,EACH,KAAM,CACJ,EAAGA,EAAc,EAAIpG,EACrB,EAAGoG,EAAc,EAAInG,EACrB,QAAS,CACP,CAACyF,CAAQ,EAAG5B,EACZ,CAAC6B,CAAS,EAAG5B,CACzB,CACA,CACO,CACP,CACG,CACH,EAIMsC,GAAa,SAAU3kB,EAAS,CACpC,OAAIA,IAAY,SACdA,EAAU,CAAE,GAEP,CACL,QAAAA,EACA,GAAGuX,EAAO,CACR,KAAM,CACJ,EAAA+G,EACA,EAAAC,EACA,UAAAjC,EACA,MAAAtL,EACA,eAAA4O,CACR,EAAUrI,EACE,CACJ,OAAAsK,EAAS,EACT,SAAUO,EAAgB,GAC1B,UAAWC,EAAiB,EACpC,EAAUlG,GAASnc,EAASuX,CAAK,EACrB6H,EAAS,CACb,EAAAd,EACA,EAAAC,CACD,EACK0F,EAAYtH,GAAYL,CAAS,EACjC0H,EAAWxH,GAAgByH,CAAS,EAC1C,IAAIK,EAAgBlF,EAAO4E,CAAQ,EAC/BO,EAAiBnF,EAAO6E,CAAS,EACrC,MAAMW,EAAYzI,GAAS0F,EAAQtK,CAAK,EAClCsN,EAAiB,OAAOD,GAAc,SAAW,CACrD,SAAUA,EACV,UAAW,CACnB,EAAU,CACF,SAAU,EACV,UAAW,EACX,GAAGA,CACJ,EACD,GAAIxC,EAAe,CACjB,MAAM0C,EAAMd,IAAa,IAAM,SAAW,QACpCe,EAAW/T,EAAM,UAAUgT,CAAQ,EAAIhT,EAAM,SAAS8T,CAAG,EAAID,EAAe,SAC5EG,EAAWhU,EAAM,UAAUgT,CAAQ,EAAIhT,EAAM,UAAU8T,CAAG,EAAID,EAAe,SAC/EP,EAAgBS,EAClBT,EAAgBS,EACPT,EAAgBU,IACzBV,EAAgBU,EAE1B,CACM,GAAI3C,EAAgB,CAClB,IAAI6B,EAAuBe,EAC3B,MAAMH,EAAMd,IAAa,IAAM,QAAU,SACnCkB,EAAe,CAAC,MAAO,MAAM,EAAE,SAAS7I,GAAQC,CAAS,CAAC,EAC1DyI,EAAW/T,EAAM,UAAUiT,CAAS,EAAIjT,EAAM,SAAS8T,CAAG,GAAKI,KAAiBhB,EAAwBtE,EAAe,SAAW,KAAO,OAASsE,EAAsBD,CAAS,IAAM,IAAUiB,EAAe,EAAIL,EAAe,WACnOG,EAAWhU,EAAM,UAAUiT,CAAS,EAAIjT,EAAM,UAAU8T,CAAG,GAAKI,EAAe,IAAMD,EAAyBrF,EAAe,SAAW,KAAO,OAASqF,EAAuBhB,CAAS,IAAM,IAAMiB,EAAeL,EAAe,UAAY,GAChPN,EAAiBQ,EACnBR,EAAiBQ,EACRR,EAAiBS,IAC1BT,EAAiBS,EAE3B,CACM,MAAO,CACL,CAAChB,CAAQ,EAAGM,EACZ,CAACL,CAAS,EAAGM,CACd,CACP,CACG,CACH,EAQMY,GAAO,SAAUnlB,EAAS,CAC9B,OAAIA,IAAY,SACdA,EAAU,CAAE,GAEP,CACL,KAAM,OACN,QAAAA,EACA,MAAM,GAAGuX,EAAO,CACd,IAAI6N,EAAuBC,EAC3B,KAAM,CACJ,UAAA/I,EACA,MAAAtL,EACA,SAAAyO,EACA,SAAA3U,CACR,EAAUyM,EACE,CACJ,MAAA+N,EAAQ,IAAM,CAAE,EAChB,GAAG7C,CACX,EAAUtG,GAASnc,EAASuX,CAAK,EACrB7J,EAAW,MAAMwS,GAAe3I,EAAOkL,CAAqB,EAC5DlF,EAAOlB,GAAQC,CAAS,EACxBS,EAAYR,GAAaD,CAAS,EAClCyE,EAAUpE,GAAYL,CAAS,IAAM,IACrC,CACJ,MAAAkC,EACA,OAAAC,CACD,EAAGzN,EAAM,SACV,IAAIuU,EACAC,EACAjI,IAAS,OAASA,IAAS,UAC7BgI,EAAahI,EACbiI,EAAYzI,KAAgB,MAAO0C,EAAS,OAAS,KAAO,OAASA,EAAS,MAAM3U,EAAS,QAAQ,GAAM,QAAU,OAAS,OAAS,UAEvI0a,EAAYjI,EACZgI,EAAaxI,IAAc,MAAQ,MAAQ,UAE7C,MAAM0I,EAAwBhH,EAAS/Q,EAAS,IAAMA,EAAS,OACzDgY,EAAuBlH,EAAQ9Q,EAAS,KAAOA,EAAS,MACxDiY,EAA0BlK,GAAIgD,EAAS/Q,EAAS6X,CAAU,EAAGE,CAAqB,EAClFG,EAAyBnK,GAAI+C,EAAQ9Q,EAAS8X,CAAS,EAAGE,CAAoB,EAC9EG,EAAU,CAACtO,EAAM,eAAe,MACtC,IAAIuO,EAAkBH,EAClBI,EAAiBH,EAOrB,IANKR,EAAwB7N,EAAM,eAAe,QAAU,MAAQ6N,EAAsB,QAAQ,IAChGW,EAAiBL,IAEdL,EAAyB9N,EAAM,eAAe,QAAU,MAAQ8N,EAAuB,QAAQ,IAClGS,EAAkBL,GAEhBI,GAAW,CAAC9I,EAAW,CACzB,MAAMiJ,EAAOtK,EAAIhO,EAAS,KAAM,CAAC,EAC3BuY,EAAOvK,EAAIhO,EAAS,MAAO,CAAC,EAC5BwY,EAAOxK,EAAIhO,EAAS,IAAK,CAAC,EAC1ByY,EAAOzK,EAAIhO,EAAS,OAAQ,CAAC,EAC/BqT,EACFgF,EAAiBvH,EAAQ,GAAKwH,IAAS,GAAKC,IAAS,EAAID,EAAOC,EAAOvK,EAAIhO,EAAS,KAAMA,EAAS,KAAK,GAExGoY,EAAkBrH,EAAS,GAAKyH,IAAS,GAAKC,IAAS,EAAID,EAAOC,EAAOzK,EAAIhO,EAAS,IAAKA,EAAS,MAAM,EAEpH,CACM,MAAM4X,EAAM,CACV,GAAG/N,EACH,eAAAwO,EACA,gBAAAD,CACR,CAAO,EACD,MAAMM,EAAiB,MAAM3G,EAAS,cAAc3U,EAAS,QAAQ,EACrE,OAAI0T,IAAU4H,EAAe,OAAS3H,IAAW2H,EAAe,OACvD,CACL,MAAO,CACL,MAAO,EACnB,CACS,EAEI,CAAE,CACf,CACG,CACH,EC9gCA,SAASC,IAAY,CACnB,OAAO,OAAO,QAAW,WAC3B,CACA,SAASzhB,GAAYC,EAAM,CACzB,OAAIE,GAAOF,CAAI,GACLA,EAAK,UAAY,IAAI,YAAa,EAKrC,WACT,CACA,SAASiB,EAAUjB,EAAM,CACvB,IAAIyhB,EACJ,OAAQzhB,GAAQ,OAASyhB,EAAsBzhB,EAAK,gBAAkB,KAAO,OAASyhB,EAAoB,cAAgB,MAC5H,CACA,SAASzgB,GAAmBhB,EAAM,CAChC,IAAI8Z,EACJ,OAAQA,GAAQ5Z,GAAOF,CAAI,EAAIA,EAAK,cAAgBA,EAAK,WAAa,OAAO,WAAa,KAAO,OAAS8Z,EAAK,eACjH,CACA,SAAS5Z,GAAOrD,EAAO,CACrB,OAAK2kB,GAAS,EAGP3kB,aAAiB,MAAQA,aAAiBoE,EAAUpE,CAAK,EAAE,KAFzD,EAGX,CACA,SAAS6kB,GAAU7kB,EAAO,CACxB,OAAK2kB,GAAS,EAGP3kB,aAAiB,SAAWA,aAAiBoE,EAAUpE,CAAK,EAAE,QAF5D,EAGX,CACA,SAAS8C,GAAc9C,EAAO,CAC5B,OAAK2kB,GAAS,EAGP3kB,aAAiB,aAAeA,aAAiBoE,EAAUpE,CAAK,EAAE,YAFhE,EAGX,CACA,SAASsD,GAAatD,EAAO,CAC3B,MAAI,CAAC2kB,GAAS,GAAM,OAAO,YAAe,YACjC,GAEF3kB,aAAiB,YAAcA,aAAiBoE,EAAUpE,CAAK,EAAE,UAC1E,CACA,SAAS8L,GAAkBvC,EAAS,CAClC,KAAM,CACJ,SAAAyC,EACA,UAAAC,EACA,UAAAC,EACA,QAAAC,CACJ,EAAMvH,GAAiB2E,CAAO,EAC5B,MAAO,kCAAkC,KAAKyC,EAAWE,EAAYD,CAAS,GAAK,CAAC,CAAC,SAAU,UAAU,EAAE,SAASE,CAAO,CAC7H,CACA,SAAS2Y,GAAevb,EAAS,CAC/B,MAAO,CAAC,QAAS,KAAM,IAAI,EAAE,SAASrG,GAAYqG,CAAO,CAAC,CAC5D,CACA,SAASwb,GAAWxb,EAAS,CAC3B,MAAO,CAAC,gBAAiB,QAAQ,EAAE,KAAKgF,GAAY,CAClD,GAAI,CACF,OAAOhF,EAAQ,QAAQgF,CAAQ,CAChC,OAAQ3K,EAAG,CACV,MAAO,EACb,CACA,CAAG,CACH,CACA,SAASohB,GAAkBC,EAAc,CACvC,MAAMC,EAASC,GAAU,EACnBxT,EAAMkT,GAAUI,CAAY,EAAIrgB,GAAiBqgB,CAAY,EAAIA,EAIvE,MAAO,CAAC,YAAa,YAAa,QAAS,SAAU,aAAa,EAAE,KAAKjlB,GAAS2R,EAAI3R,CAAK,EAAI2R,EAAI3R,CAAK,IAAM,OAAS,EAAK,IAAM2R,EAAI,cAAgBA,EAAI,gBAAkB,SAAW,KAAU,CAACuT,IAAWvT,EAAI,eAAiBA,EAAI,iBAAmB,OAAS,KAAU,CAACuT,IAAWvT,EAAI,OAASA,EAAI,SAAW,OAAS,KAAU,CAAC,YAAa,YAAa,QAAS,SAAU,cAAe,QAAQ,EAAE,KAAK3R,IAAU2R,EAAI,YAAc,IAAI,SAAS3R,CAAK,CAAC,GAAK,CAAC,QAAS,SAAU,SAAU,SAAS,EAAE,KAAKA,IAAU2R,EAAI,SAAW,IAAI,SAAS3R,CAAK,CAAC,CACniB,CACA,SAASolB,GAAmB7b,EAAS,CACnC,IAAI8b,EAAc5gB,GAAc8E,CAAO,EACvC,KAAOzG,GAAcuiB,CAAW,GAAK,CAACC,GAAsBD,CAAW,GAAG,CACxE,GAAIL,GAAkBK,CAAW,EAC/B,OAAOA,EACF,GAAIN,GAAWM,CAAW,EAC/B,OAAO,KAETA,EAAc5gB,GAAc4gB,CAAW,CAC3C,CACE,OAAO,IACT,CACA,SAASF,IAAW,CAClB,OAAI,OAAO,KAAQ,aAAe,CAAC,IAAI,SAAiB,GACjD,IAAI,SAAS,0BAA2B,MAAM,CACvD,CACA,SAASG,GAAsBniB,EAAM,CACnC,MAAO,CAAC,OAAQ,OAAQ,WAAW,EAAE,SAASD,GAAYC,CAAI,CAAC,CACjE,CACA,SAASyB,GAAiB2E,EAAS,CACjC,OAAOnF,EAAUmF,CAAO,EAAE,iBAAiBA,CAAO,CACpD,CACA,SAASgc,GAAchc,EAAS,CAC9B,OAAIsb,GAAUtb,CAAO,EACZ,CACL,WAAYA,EAAQ,WACpB,UAAWA,EAAQ,SACpB,EAEI,CACL,WAAYA,EAAQ,QACpB,UAAWA,EAAQ,OACpB,CACH,CACA,SAAS9E,GAActB,EAAM,CAC3B,GAAID,GAAYC,CAAI,IAAM,OACxB,OAAOA,EAET,MAAMuB,EAENvB,EAAK,cAELA,EAAK,YAELG,GAAaH,CAAI,GAAKA,EAAK,MAE3BgB,GAAmBhB,CAAI,EACvB,OAAOG,GAAaoB,CAAM,EAAIA,EAAO,KAAOA,CAC9C,CACA,SAASkH,GAA2BzI,EAAM,CACxC,MAAM0I,EAAapH,GAActB,CAAI,EACrC,OAAImiB,GAAsBzZ,CAAU,EAC3B1I,EAAK,cAAgBA,EAAK,cAAc,KAAOA,EAAK,KAEzDL,GAAc+I,CAAU,GAAKC,GAAkBD,CAAU,EACpDA,EAEFD,GAA2BC,CAAU,CAC9C,CACA,SAAS2Z,GAAqBriB,EAAMmZ,EAAMmJ,EAAiB,CACzD,IAAIC,EACApJ,IAAS,SACXA,EAAO,CAAE,GAEPmJ,IAAoB,SACtBA,EAAkB,IAEpB,MAAME,EAAqB/Z,GAA2BzI,CAAI,EACpDyiB,EAASD,MAAyBD,EAAuBviB,EAAK,gBAAkB,KAAO,OAASuiB,EAAqB,MACrH5d,EAAM1D,EAAUuhB,CAAkB,EACxC,GAAIC,EAAQ,CACV,MAAMC,EAAeC,GAAgBhe,CAAG,EACxC,OAAOwU,EAAK,OAAOxU,EAAKA,EAAI,gBAAkB,CAAE,EAAEgE,GAAkB6Z,CAAkB,EAAIA,EAAqB,CAAE,EAAEE,GAAgBJ,EAAkBD,GAAqBK,CAAY,EAAI,EAAE,CAChM,CACE,OAAOvJ,EAAK,OAAOqJ,EAAoBH,GAAqBG,EAAoB,CAAA,EAAIF,CAAe,CAAC,CACtG,CACA,SAASK,GAAgBhe,EAAK,CAC5B,OAAOA,EAAI,QAAU,OAAO,eAAeA,EAAI,MAAM,EAAIA,EAAI,aAAe,IAC9E,CClJA,SAASie,GAAiBxc,EAAS,CACjC,MAAMoI,EAAM/M,GAAiB2E,CAAO,EAGpC,IAAIuT,EAAQ,WAAWnL,EAAI,KAAK,GAAK,EACjCoL,EAAS,WAAWpL,EAAI,MAAM,GAAK,EACvC,MAAMqU,EAAYljB,GAAcyG,CAAO,EACjC0c,EAAcD,EAAYzc,EAAQ,YAAcuT,EAChDoJ,EAAeF,EAAYzc,EAAQ,aAAewT,EAClDoJ,EAAiBlM,GAAM6C,CAAK,IAAMmJ,GAAehM,GAAM8C,CAAM,IAAMmJ,EACzE,OAAIC,IACFrJ,EAAQmJ,EACRlJ,EAASmJ,GAEJ,CACL,MAAApJ,EACA,OAAAC,EACA,EAAGoJ,CACJ,CACH,CAEA,SAASC,GAAc7c,EAAS,CAC9B,OAAQsb,GAAUtb,CAAO,EAA6BA,EAAzBA,EAAQ,cACvC,CAEA,SAAS8c,GAAS9c,EAAS,CACzB,MAAM+c,EAAaF,GAAc7c,CAAO,EACxC,GAAI,CAACzG,GAAcwjB,CAAU,EAC3B,OAAOnM,GAAa,CAAC,EAEvB,MAAMwC,EAAO2J,EAAW,sBAAuB,EACzC,CACJ,MAAAxJ,EACA,OAAAC,EACA,EAAAwJ,CACJ,EAAMR,GAAiBO,CAAU,EAC/B,IAAI1J,GAAK2J,EAAItM,GAAM0C,EAAK,KAAK,EAAIA,EAAK,OAASG,EAC3CD,GAAK0J,EAAItM,GAAM0C,EAAK,MAAM,EAAIA,EAAK,QAAUI,EAIjD,OAAI,CAACH,GAAK,CAAC,OAAO,SAASA,CAAC,KAC1BA,EAAI,IAEF,CAACC,GAAK,CAAC,OAAO,SAASA,CAAC,KAC1BA,EAAI,GAEC,CACL,EAAAD,EACA,EAAAC,CACD,CACH,CAEA,MAAM2J,GAAyBrM,GAAa,CAAC,EAC7C,SAASsM,GAAiBld,EAAS,CACjC,MAAMzB,EAAM1D,EAAUmF,CAAO,EAC7B,MAAI,CAAC4b,GAAQ,GAAM,CAACrd,EAAI,eACf0e,GAEF,CACL,EAAG1e,EAAI,eAAe,WACtB,EAAGA,EAAI,eAAe,SACvB,CACH,CACA,SAAS4e,GAAuBnd,EAASod,EAASC,EAAsB,CAItE,OAHID,IAAY,SACdA,EAAU,IAER,CAACC,GAAwBD,GAAWC,IAAyBxiB,EAAUmF,CAAO,EACzE,GAEFod,CACT,CAEA,SAASE,GAAsBtd,EAASud,EAAcC,EAAiB/H,EAAc,CAC/E8H,IAAiB,SACnBA,EAAe,IAEbC,IAAoB,SACtBA,EAAkB,IAEpB,MAAMC,EAAazd,EAAQ,sBAAuB,EAC5C+c,EAAaF,GAAc7c,CAAO,EACxC,IAAI0d,EAAQ9M,GAAa,CAAC,EACtB2M,IACE9H,EACE6F,GAAU7F,CAAY,IACxBiI,EAAQZ,GAASrH,CAAY,GAG/BiI,EAAQZ,GAAS9c,CAAO,GAG5B,MAAM2d,EAAgBR,GAAuBJ,EAAYS,EAAiB/H,CAAY,EAAIyH,GAAiBH,CAAU,EAAInM,GAAa,CAAC,EACvI,IAAIyC,GAAKoK,EAAW,KAAOE,EAAc,GAAKD,EAAM,EAChDpK,GAAKmK,EAAW,IAAME,EAAc,GAAKD,EAAM,EAC/CnK,EAAQkK,EAAW,MAAQC,EAAM,EACjClK,EAASiK,EAAW,OAASC,EAAM,EACvC,GAAIX,EAAY,CACd,MAAMxe,EAAM1D,EAAUkiB,CAAU,EAC1Ba,EAAYnI,GAAgB6F,GAAU7F,CAAY,EAAI5a,EAAU4a,CAAY,EAAIA,EACtF,IAAIoI,EAAatf,EACbuf,EAAgBvB,GAAgBsB,CAAU,EAC9C,KAAOC,GAAiBrI,GAAgBmI,IAAcC,GAAY,CAChE,MAAME,EAAcjB,GAASgB,CAAa,EACpCE,EAAaF,EAAc,sBAAuB,EAClD1V,EAAM/M,GAAiByiB,CAAa,EACpCG,EAAOD,EAAW,MAAQF,EAAc,WAAa,WAAW1V,EAAI,WAAW,GAAK2V,EAAY,EAChGG,EAAMF,EAAW,KAAOF,EAAc,UAAY,WAAW1V,EAAI,UAAU,GAAK2V,EAAY,EAClG1K,GAAK0K,EAAY,EACjBzK,GAAKyK,EAAY,EACjBxK,GAASwK,EAAY,EACrBvK,GAAUuK,EAAY,EACtB1K,GAAK4K,EACL3K,GAAK4K,EACLL,EAAahjB,EAAUijB,CAAa,EACpCA,EAAgBvB,GAAgBsB,CAAU,CAChD,CACA,CACE,OAAO1K,GAAiB,CACtB,MAAAI,EACA,OAAAC,EACA,EAAAH,EACA,EAAAC,CACJ,CAAG,CACH,CAIA,SAAS6K,GAAoBne,EAASoT,EAAM,CAC1C,MAAMgL,EAAapC,GAAchc,CAAO,EAAE,WAC1C,OAAKoT,EAGEA,EAAK,KAAOgL,EAFVd,GAAsB1iB,GAAmBoF,CAAO,CAAC,EAAE,KAAOoe,CAGrE,CAEA,SAASC,GAAcC,EAAiBC,EAAQC,EAAkB,CAC5DA,IAAqB,SACvBA,EAAmB,IAErB,MAAMC,EAAWH,EAAgB,sBAAuB,EAClDjL,EAAIoL,EAAS,KAAOF,EAAO,YAAcC,EAAmB,EAElEL,GAAoBG,EAAiBG,CAAQ,GACvCnL,EAAImL,EAAS,IAAMF,EAAO,UAChC,MAAO,CACL,EAAAlL,EACA,EAAAC,CACD,CACH,CAEA,SAASoL,GAAsDhL,EAAM,CACnE,GAAI,CACF,SAAA7T,EACA,KAAAuT,EACA,aAAAqC,EACA,SAAAnB,CACJ,EAAMZ,EACJ,MAAM0J,EAAU9I,IAAa,QACvBgK,EAAkB1jB,GAAmB6a,CAAY,EACjDkJ,EAAW9e,EAAW2b,GAAW3b,EAAS,QAAQ,EAAI,GAC5D,GAAI4V,IAAiB6I,GAAmBK,GAAYvB,EAClD,OAAOhK,EAET,IAAImL,EAAS,CACX,WAAY,EACZ,UAAW,CACZ,EACGb,EAAQ9M,GAAa,CAAC,EAC1B,MAAM8H,EAAU9H,GAAa,CAAC,EACxBgO,EAA0BrlB,GAAckc,CAAY,EAC1D,IAAImJ,GAA2B,CAACA,GAA2B,CAACxB,MACtDzjB,GAAY8b,CAAY,IAAM,QAAUlT,GAAkB+b,CAAe,KAC3EC,EAASvC,GAAcvG,CAAY,GAEjClc,GAAckc,CAAY,GAAG,CAC/B,MAAMoJ,EAAavB,GAAsB7H,CAAY,EACrDiI,EAAQZ,GAASrH,CAAY,EAC7BiD,EAAQ,EAAImG,EAAW,EAAIpJ,EAAa,WACxCiD,EAAQ,EAAImG,EAAW,EAAIpJ,EAAa,SAC9C,CAEE,MAAMqJ,EAAaR,GAAmB,CAACM,GAA2B,CAACxB,EAAUiB,GAAcC,EAAiBC,EAAQ,EAAI,EAAI3N,GAAa,CAAC,EAC1I,MAAO,CACL,MAAOwC,EAAK,MAAQsK,EAAM,EAC1B,OAAQtK,EAAK,OAASsK,EAAM,EAC5B,EAAGtK,EAAK,EAAIsK,EAAM,EAAIa,EAAO,WAAab,EAAM,EAAIhF,EAAQ,EAAIoG,EAAW,EAC3E,EAAG1L,EAAK,EAAIsK,EAAM,EAAIa,EAAO,UAAYb,EAAM,EAAIhF,EAAQ,EAAIoG,EAAW,CAC3E,CACH,CAEA,SAASC,GAAe/e,EAAS,CAC/B,OAAO,MAAM,KAAKA,EAAQ,eAAc,CAAE,CAC5C,CAIA,SAASgf,GAAgBhf,EAAS,CAChC,MAAMif,EAAOrkB,GAAmBoF,CAAO,EACjCue,EAASvC,GAAchc,CAAO,EAC9Bkf,EAAOlf,EAAQ,cAAc,KAC7BuT,EAAQ9C,EAAIwO,EAAK,YAAaA,EAAK,YAAaC,EAAK,YAAaA,EAAK,WAAW,EAClF1L,EAAS/C,EAAIwO,EAAK,aAAcA,EAAK,aAAcC,EAAK,aAAcA,EAAK,YAAY,EAC7F,IAAI7L,EAAI,CAACkL,EAAO,WAAaJ,GAAoBne,CAAO,EACxD,MAAMsT,EAAI,CAACiL,EAAO,UAClB,OAAIljB,GAAiB6jB,CAAI,EAAE,YAAc,QACvC7L,GAAK5C,EAAIwO,EAAK,YAAaC,EAAK,WAAW,EAAI3L,GAE1C,CACL,MAAAA,EACA,OAAAC,EACA,EAAAH,EACA,EAAAC,CACD,CACH,CAEA,SAAS6L,GAAgBnf,EAASsU,EAAU,CAC1C,MAAM/V,EAAM1D,EAAUmF,CAAO,EACvBif,EAAOrkB,GAAmBoF,CAAO,EACjCof,EAAiB7gB,EAAI,eAC3B,IAAIgV,EAAQ0L,EAAK,YACbzL,EAASyL,EAAK,aACd5L,EAAI,EACJC,EAAI,EACR,GAAI8L,EAAgB,CAClB7L,EAAQ6L,EAAe,MACvB5L,EAAS4L,EAAe,OACxB,MAAMC,EAAsBzD,GAAU,GAClC,CAACyD,GAAuBA,GAAuB/K,IAAa,WAC9DjB,EAAI+L,EAAe,WACnB9L,EAAI8L,EAAe,UAEzB,CACE,MAAO,CACL,MAAA7L,EACA,OAAAC,EACA,EAAAH,EACA,EAAAC,CACD,CACH,CAGA,SAASgM,GAA2Btf,EAASsU,EAAU,CACrD,MAAMmJ,EAAaH,GAAsBtd,EAAS,GAAMsU,IAAa,OAAO,EACtE4J,EAAMT,EAAW,IAAMzd,EAAQ,UAC/Bie,EAAOR,EAAW,KAAOzd,EAAQ,WACjC0d,EAAQnkB,GAAcyG,CAAO,EAAI8c,GAAS9c,CAAO,EAAI4Q,GAAa,CAAC,EACnE2C,EAAQvT,EAAQ,YAAc0d,EAAM,EACpClK,EAASxT,EAAQ,aAAe0d,EAAM,EACtCrK,EAAI4K,EAAOP,EAAM,EACjBpK,EAAI4K,EAAMR,EAAM,EACtB,MAAO,CACL,MAAAnK,EACA,OAAAC,EACA,EAAAH,EACA,EAAAC,CACD,CACH,CACA,SAASiM,GAAkCvf,EAASwf,EAAkBlL,EAAU,CAC9E,IAAIlB,EACJ,GAAIoM,IAAqB,WACvBpM,EAAO+L,GAAgBnf,EAASsU,CAAQ,UAC/BkL,IAAqB,WAC9BpM,EAAO4L,GAAgBpkB,GAAmBoF,CAAO,CAAC,UACzCsb,GAAUkE,CAAgB,EACnCpM,EAAOkM,GAA2BE,EAAkBlL,CAAQ,MACvD,CACL,MAAMqJ,EAAgBT,GAAiBld,CAAO,EAC9CoT,EAAO,CACL,EAAGoM,EAAiB,EAAI7B,EAAc,EACtC,EAAG6B,EAAiB,EAAI7B,EAAc,EACtC,MAAO6B,EAAiB,MACxB,OAAQA,EAAiB,MAC1B,CACL,CACE,OAAOrM,GAAiBC,CAAI,CAC9B,CACA,SAASqM,GAAyBzf,EAAS0f,EAAU,CACnD,MAAMpd,EAAapH,GAAc8E,CAAO,EACxC,OAAIsC,IAAeod,GAAY,CAACpE,GAAUhZ,CAAU,GAAKyZ,GAAsBzZ,CAAU,EAChF,GAEFjH,GAAiBiH,CAAU,EAAE,WAAa,SAAWmd,GAAyBnd,EAAYod,CAAQ,CAC3G,CAKA,SAASC,GAA4B3f,EAASoP,EAAO,CACnD,MAAMwQ,EAAexQ,EAAM,IAAIpP,CAAO,EACtC,GAAI4f,EACF,OAAOA,EAET,IAAIzkB,EAAS8gB,GAAqBjc,EAAS,CAAE,EAAE,EAAK,EAAE,OAAOxG,GAAM8hB,GAAU9hB,CAAE,GAAKG,GAAYH,CAAE,IAAM,MAAM,EAC1GqmB,EAAsC,KAC1C,MAAMC,EAAiBzkB,GAAiB2E,CAAO,EAAE,WAAa,QAC9D,IAAI8b,EAAcgE,EAAiB5kB,GAAc8E,CAAO,EAAIA,EAG5D,KAAOsb,GAAUQ,CAAW,GAAK,CAACC,GAAsBD,CAAW,GAAG,CACpE,MAAMiE,EAAgB1kB,GAAiBygB,CAAW,EAC5CkE,EAA0BvE,GAAkBK,CAAW,EACzD,CAACkE,GAA2BD,EAAc,WAAa,UACzDF,EAAsC,OAEVC,EAAiB,CAACE,GAA2B,CAACH,EAAsC,CAACG,GAA2BD,EAAc,WAAa,UAAY,CAAC,CAACF,GAAuC,CAAC,WAAY,OAAO,EAAE,SAASA,EAAoC,QAAQ,GAAKtd,GAAkBuZ,CAAW,GAAK,CAACkE,GAA2BP,GAAyBzf,EAAS8b,CAAW,GAGvZ3gB,EAASA,EAAO,OAAO8kB,GAAYA,IAAanE,CAAW,EAG3D+D,EAAsCE,EAExCjE,EAAc5gB,GAAc4gB,CAAW,CAC3C,CACE,OAAA1M,EAAM,IAAIpP,EAAS7E,CAAM,EAClBA,CACT,CAIA,SAAS+kB,GAAgBxM,EAAM,CAC7B,GAAI,CACF,QAAA1T,EACA,SAAAmV,EACA,aAAAC,EACA,SAAAd,CACJ,EAAMZ,EAEJ,MAAMyM,EAAoB,CAAC,GADMhL,IAAa,oBAAsBqG,GAAWxb,CAAO,EAAI,CAAE,EAAG2f,GAA4B3f,EAAS,KAAK,EAAE,EAAI,CAAA,EAAG,OAAOmV,CAAQ,EACzGC,CAAY,EAC9DgL,EAAwBD,EAAkB,CAAC,EAC3CE,EAAeF,EAAkB,OAAO,CAACG,EAASd,IAAqB,CAC3E,MAAMpM,EAAOmM,GAAkCvf,EAASwf,EAAkBlL,CAAQ,EAClF,OAAAgM,EAAQ,IAAM7P,EAAI2C,EAAK,IAAKkN,EAAQ,GAAG,EACvCA,EAAQ,MAAQ9P,GAAI4C,EAAK,MAAOkN,EAAQ,KAAK,EAC7CA,EAAQ,OAAS9P,GAAI4C,EAAK,OAAQkN,EAAQ,MAAM,EAChDA,EAAQ,KAAO7P,EAAI2C,EAAK,KAAMkN,EAAQ,IAAI,EACnCA,CACR,EAAEf,GAAkCvf,EAASogB,EAAuB9L,CAAQ,CAAC,EAC9E,MAAO,CACL,MAAO+L,EAAa,MAAQA,EAAa,KACzC,OAAQA,EAAa,OAASA,EAAa,IAC3C,EAAGA,EAAa,KAChB,EAAGA,EAAa,GACjB,CACH,CAEA,SAASE,GAAcvgB,EAAS,CAC9B,KAAM,CACJ,MAAAuT,EACA,OAAAC,CACJ,EAAMgJ,GAAiBxc,CAAO,EAC5B,MAAO,CACL,MAAAuT,EACA,OAAAC,CACD,CACH,CAEA,SAASgN,GAA8BxgB,EAASyV,EAAcnB,EAAU,CACtE,MAAMsK,EAA0BrlB,GAAckc,CAAY,EACpD6I,EAAkB1jB,GAAmB6a,CAAY,EACjD2H,EAAU9I,IAAa,QACvBlB,EAAOkK,GAAsBtd,EAAS,GAAMod,EAAS3H,CAAY,EACvE,IAAI8I,EAAS,CACX,WAAY,EACZ,UAAW,CACZ,EACD,MAAM7F,EAAU9H,GAAa,CAAC,EAC9B,GAAIgO,GAA2B,CAACA,GAA2B,CAACxB,EAI1D,IAHIzjB,GAAY8b,CAAY,IAAM,QAAUlT,GAAkB+b,CAAe,KAC3EC,EAASvC,GAAcvG,CAAY,GAEjCmJ,EAAyB,CAC3B,MAAMC,EAAavB,GAAsB7H,EAAc,GAAM2H,EAAS3H,CAAY,EAClFiD,EAAQ,EAAImG,EAAW,EAAIpJ,EAAa,WACxCiD,EAAQ,EAAImG,EAAW,EAAIpJ,EAAa,SACzC,MAAU6I,IAGT5F,EAAQ,EAAIyF,GAAoBG,CAAe,GAGnD,MAAMQ,EAAaR,GAAmB,CAACM,GAA2B,CAACxB,EAAUiB,GAAcC,EAAiBC,CAAM,EAAI3N,GAAa,CAAC,EAC9HyC,EAAID,EAAK,KAAOmL,EAAO,WAAa7F,EAAQ,EAAIoG,EAAW,EAC3DxL,EAAIF,EAAK,IAAMmL,EAAO,UAAY7F,EAAQ,EAAIoG,EAAW,EAC/D,MAAO,CACL,EAAAzL,EACA,EAAAC,EACA,MAAOF,EAAK,MACZ,OAAQA,EAAK,MACd,CACH,CAEA,SAASqN,GAAmBzgB,EAAS,CACnC,OAAO3E,GAAiB2E,CAAO,EAAE,WAAa,QAChD,CAEA,SAAS0gB,GAAoB1gB,EAAS2gB,EAAU,CAC9C,GAAI,CAACpnB,GAAcyG,CAAO,GAAK3E,GAAiB2E,CAAO,EAAE,WAAa,QACpE,OAAO,KAET,GAAI2gB,EACF,OAAOA,EAAS3gB,CAAO,EAEzB,IAAI4gB,EAAkB5gB,EAAQ,aAM9B,OAAIpF,GAAmBoF,CAAO,IAAM4gB,IAClCA,EAAkBA,EAAgB,cAAc,MAE3CA,CACT,CAIA,SAASC,GAAgB7gB,EAAS2gB,EAAU,CAC1C,MAAMpiB,EAAM1D,EAAUmF,CAAO,EAC7B,GAAIwb,GAAWxb,CAAO,EACpB,OAAOzB,EAET,GAAI,CAAChF,GAAcyG,CAAO,EAAG,CAC3B,IAAI8gB,EAAkB5lB,GAAc8E,CAAO,EAC3C,KAAO8gB,GAAmB,CAAC/E,GAAsB+E,CAAe,GAAG,CACjE,GAAIxF,GAAUwF,CAAe,GAAK,CAACL,GAAmBK,CAAe,EACnE,OAAOA,EAETA,EAAkB5lB,GAAc4lB,CAAe,CACrD,CACI,OAAOviB,CACX,CACE,IAAIkX,EAAeiL,GAAoB1gB,EAAS2gB,CAAQ,EACxD,KAAOlL,GAAgB8F,GAAe9F,CAAY,GAAKgL,GAAmBhL,CAAY,GACpFA,EAAeiL,GAAoBjL,EAAckL,CAAQ,EAE3D,OAAIlL,GAAgBsG,GAAsBtG,CAAY,GAAKgL,GAAmBhL,CAAY,GAAK,CAACgG,GAAkBhG,CAAY,EACrHlX,EAEFkX,GAAgBoG,GAAmB7b,CAAO,GAAKzB,CACxD,CAEA,MAAMwiB,GAAkB,eAAgBhM,EAAM,CAC5C,MAAMiM,EAAoB,KAAK,iBAAmBH,GAC5CI,EAAkB,KAAK,cACvBC,EAAqB,MAAMD,EAAgBlM,EAAK,QAAQ,EAC9D,MAAO,CACL,UAAWyL,GAA8BzL,EAAK,UAAW,MAAMiM,EAAkBjM,EAAK,QAAQ,EAAGA,EAAK,QAAQ,EAC9G,SAAU,CACR,EAAG,EACH,EAAG,EACH,MAAOmM,EAAmB,MAC1B,OAAQA,EAAmB,MACjC,CACG,CACH,EAEA,SAASC,GAAMnhB,EAAS,CACtB,OAAO3E,GAAiB2E,CAAO,EAAE,YAAc,KACjD,CAEA,MAAMwU,GAAW,CACf,sDAAAkK,GACA,mBAAA9jB,GACA,gBAAAslB,GACA,gBAAAW,GACA,gBAAAE,GACA,eAAAhC,GACA,cAAAwB,GACA,SAAAzD,GACA,UAAAxB,GACA,MAAA6F,EACF,EAEA,SAASC,GAAczqB,EAAGC,EAAG,CAC3B,OAAOD,EAAE,IAAMC,EAAE,GAAKD,EAAE,IAAMC,EAAE,GAAKD,EAAE,QAAUC,EAAE,OAASD,EAAE,SAAWC,EAAE,MAC7E,CAGA,SAASyqB,GAAYrhB,EAASshB,EAAQ,CACpC,IAAIC,EAAK,KACLC,EACJ,MAAM/gB,EAAO7F,GAAmBoF,CAAO,EACvC,SAASX,GAAU,CACjB,IAAIoiB,EACJ,aAAaD,CAAS,GACrBC,EAAMF,IAAO,MAAQE,EAAI,WAAY,EACtCF,EAAK,IACT,CACE,SAASG,EAAQC,EAAMC,EAAW,CAC5BD,IAAS,SACXA,EAAO,IAELC,IAAc,SAChBA,EAAY,GAEdviB,EAAS,EACT,MAAMwiB,EAA2B7hB,EAAQ,sBAAuB,EAC1D,CACJ,KAAAie,EACA,IAAAC,EACA,MAAA3K,EACA,OAAAC,CACN,EAAQqO,EAIJ,GAHKF,GACHL,EAAQ,EAEN,CAAC/N,GAAS,CAACC,EACb,OAEF,MAAMsO,EAAWnR,GAAMuN,CAAG,EACpB6D,EAAapR,GAAMlQ,EAAK,aAAewd,EAAO1K,EAAM,EACpDyO,EAAcrR,GAAMlQ,EAAK,cAAgByd,EAAM1K,EAAO,EACtDyO,EAAYtR,GAAMsN,CAAI,EAEtBlpB,EAAU,CACd,WAFiB,CAAC+sB,EAAW,MAAQ,CAACC,EAAa,MAAQ,CAACC,EAAc,MAAQ,CAACC,EAAY,KAG/F,UAAWxR,EAAI,EAAGD,GAAI,EAAGoR,CAAS,CAAC,GAAK,CACzC,EACD,IAAIM,EAAgB,GACpB,SAASC,EAAcrc,EAAS,CAC9B,MAAMsc,EAAQtc,EAAQ,CAAC,EAAE,kBACzB,GAAIsc,IAAUR,EAAW,CACvB,GAAI,CAACM,EACH,OAAOR,EAAS,EAEbU,EAOHV,EAAQ,GAAOU,CAAK,EAJpBZ,EAAY,WAAW,IAAM,CAC3BE,EAAQ,GAAO,IAAI,CACpB,EAAE,GAAI,CAIjB,CACUU,IAAU,GAAK,CAAChB,GAAcS,EAA0B7hB,EAAQ,sBAAqB,CAAE,GAQzF0hB,EAAS,EAEXQ,EAAgB,EACtB,CAII,GAAI,CACFX,EAAK,IAAI,qBAAqBY,EAAe,CAC3C,GAAGptB,EAEH,KAAM0L,EAAK,aACnB,CAAO,CACF,OAAQpG,EAAG,CACVknB,EAAK,IAAI,qBAAqBY,EAAeptB,CAAO,CAC1D,CACIwsB,EAAG,QAAQvhB,CAAO,CACtB,CACE,OAAA0hB,EAAQ,EAAI,EACLriB,CACT,CAUA,SAASgjB,GAAW1O,EAAWC,EAAUvM,EAAQtS,EAAS,CACpDA,IAAY,SACdA,EAAU,CAAE,GAEd,KAAM,CACJ,eAAAutB,EAAiB,GACjB,eAAAC,EAAiB,GACjB,cAAAC,EAAgB,OAAO,gBAAmB,WAC1C,YAAAC,EAAc,OAAO,sBAAyB,WAC9C,eAAAC,EAAiB,EACrB,EAAM3tB,EACE4tB,EAAc9F,GAAclJ,CAAS,EACrCiP,EAAYN,GAAkBC,EAAiB,CAAC,GAAII,EAAc1G,GAAqB0G,CAAW,EAAI,CAAE,EAAG,GAAG1G,GAAqBrI,CAAQ,CAAC,EAAI,CAAE,EACxJgP,EAAU,QAAQ3C,GAAY,CAC5BqC,GAAkBrC,EAAS,iBAAiB,SAAU5Y,EAAQ,CAC5D,QAAS,EACf,CAAK,EACDkb,GAAkBtC,EAAS,iBAAiB,SAAU5Y,CAAM,CAChE,CAAG,EACD,MAAMwb,EAAYF,GAAeF,EAAcpB,GAAYsB,EAAatb,CAAM,EAAI,KAClF,IAAIyb,EAAiB,GACjBC,EAAiB,KACjBP,IACFO,EAAiB,IAAI,eAAerP,GAAQ,CAC1C,GAAI,CAACsP,CAAU,EAAItP,EACfsP,GAAcA,EAAW,SAAWL,GAAeI,IAGrDA,EAAe,UAAUnP,CAAQ,EACjC,qBAAqBkP,CAAc,EACnCA,EAAiB,sBAAsB,IAAM,CAC3C,IAAIG,GACHA,EAAkBF,IAAmB,MAAQE,EAAgB,QAAQrP,CAAQ,CACxF,CAAS,GAEHvM,EAAQ,CACd,CAAK,EACGsb,GAAe,CAACD,GAClBK,EAAe,QAAQJ,CAAW,EAEpCI,EAAe,QAAQnP,CAAQ,GAEjC,IAAIsP,EACAC,EAAcT,EAAiBpF,GAAsB3J,CAAS,EAAI,KAClE+O,GACFU,EAAW,EAEb,SAASA,GAAY,CACnB,MAAMC,EAAc/F,GAAsB3J,CAAS,EAC/CwP,GAAe,CAAC/B,GAAc+B,EAAaE,CAAW,GACxDhc,EAAQ,EAEV8b,EAAcE,EACdH,EAAU,sBAAsBE,CAAS,CAC7C,CACE,OAAA/b,EAAQ,EACD,IAAM,CACX,IAAIic,EACJV,EAAU,QAAQ3C,GAAY,CAC5BqC,GAAkBrC,EAAS,oBAAoB,SAAU5Y,CAAM,EAC/Dkb,GAAkBtC,EAAS,oBAAoB,SAAU5Y,CAAM,CACrE,CAAK,EACDwb,GAAa,MAAQA,EAAW,GAC/BS,EAAmBP,IAAmB,MAAQO,EAAiB,WAAY,EAC5EP,EAAiB,KACbL,GACF,qBAAqBQ,CAAO,CAE/B,CACH,CAmBA,MAAMtM,GAAS2M,GAeTpK,GAAQqK,GAQRzM,GAAO0M,GAQPvJ,GAAOwJ,GAOPjL,GAAOkL,GAOP/N,GAAQgO,GAYRlK,GAAamK,GAMbzP,GAAkB,CAACT,EAAWC,EAAU7e,IAAY,CAIxD,MAAMqa,EAAQ,IAAI,IACZ0U,EAAgB,CACpB,SAAAtP,GACA,GAAGzf,CACJ,EACKgvB,EAAoB,CACxB,GAAGD,EAAc,SACjB,GAAI1U,CACL,EACD,OAAO4U,GAAkBrQ,EAAWC,EAAU,CAC5C,GAAGkQ,EACH,SAAUC,CACd,CAAG,CACH,ECxuBA,SAASE,GAAc5Q,EAAI,EAAGC,EAAI,EAAGC,EAAQ,EAAGC,EAAS,EAAG,CAC1D,GAAI,OAAO,SAAY,WACrB,OAAO,IAAI,QAAQH,EAAGC,EAAGC,EAAOC,CAAM,EAExC,MAAMJ,EAAO,CACX,EAAAC,EACA,EAAAC,EACA,MAAAC,EACA,OAAAC,EACA,IAAKF,EACL,MAAOD,EAAIE,EACX,OAAQD,EAAIE,EACZ,KAAMH,CACP,EACD,MAAO,CAAE,GAAGD,EAAM,OAAQ,IAAMA,CAAM,CACxC,CACA,SAAS8Q,GAAWC,EAAY,CAC9B,GAAI,CAACA,EAAY,OAAOF,GAAe,EACvC,KAAM,CAAE,EAAA5Q,EAAG,EAAAC,EAAG,MAAAC,EAAO,OAAAC,CAAQ,EAAG2Q,EAChC,OAAOF,GAAc5Q,EAAGC,EAAGC,EAAOC,CAAM,CAC1C,CACA,SAAS4Q,GAAiBC,EAAeC,EAAe,CACtD,MAAO,CACL,eAAgB/qB,EAAc8qB,CAAa,EAAIA,EAAgB,OAC/D,sBAAuB,IAAM,CAC3B,MAAME,EAASF,EACTF,EAAaG,GAAA,YAAAA,EAAgBC,GACnC,OAAIJ,GAAc,CAACI,EACVL,GAAWC,CAAU,EAEvBI,EAAO,sBAAuB,CAC3C,CACG,CACH,CAGA,IAAIC,GAAS/tB,IAAW,CAAE,SAAUA,EAAO,UAAW,OAAOA,CAAK,MAC9DguB,GAAU,CACZ,UAAWD,GAAM,cAAc,EAC/B,cAAeA,GAAM,mBAAmB,EACxC,QAASA,GAAM,oBAAoB,EACnC,gBAAiBA,GAAM,oBAAoB,EAC3C,YAAaA,GAAM,gBAAgB,CACrC,EACIE,GAAsBC,IAAY,CACpC,IAAK,gBACL,YAAaA,EAAS,GAAGA,EAAO,CAAC,YAAc,cAC/C,UAAWA,EAAS,GAAGA,EAAO,CAAC,YAAc,eAC7C,OAAQ,aACR,eAAgBA,EAAS,GAAGA,EAAO,CAAC,SAAW,WAC/C,aAAcA,EAAS,GAAGA,EAAO,CAAC,SAAW,YAC7C,KAAM,eACN,aAAcA,EAAS,SAASA,EAAO,CAAC,KAAO,YAC/C,WAAYA,EAAS,SAASA,EAAO,CAAC,KAAO,eAC7C,MAAO,cACP,cAAeA,EAAS,QAAQA,EAAO,CAAC,KAAO,WAC/C,YAAaA,EAAS,QAAQA,EAAO,CAAC,KAAO,aAC/C,GACIC,GAA4B,CAC9B,KAAM,kBACN,GAAG,CAAE,UAAAvT,EAAW,SAAAxR,EAAU,eAAA8U,CAAc,EAAI,CAC1C,KAAM,CAAE,MAAOgQ,CAAM,EAAKhQ,EACpBkQ,EAAkBH,GAAmBC,CAAM,EAAEtT,CAAS,EACtD,CAAE,SAAAuC,CAAQ,EAAK/T,EACrB,OAAA+T,EAAS,MAAM,YAAY6Q,GAAQ,gBAAgB,SAAUI,CAAe,EACrE,CACL,KAAM,CAAE,gBAAAA,CAAe,CACxB,CACL,CACA,EACIC,GAAiB,CACnB,KAAM,QACN,GAAG,CAAE,MAAA/e,GAAS,CACZ,MAAO,CACL,KAAMA,CACP,CACL,CACA,EACIgf,GAAwBC,GAAY,CACtC,GAAKA,EACL,MAAO,CACL,KAAM,aACN,GAAG,CAAE,UAAA3T,EAAW,eAAAsD,GAAkB,CAChC,GAAI,CAACA,EAAe,MAAO,MAAO,CAAE,EACpC,KAAM,CAAE,EAAAtB,EAAG,EAAAC,CAAG,EAAGqB,EAAe,MAC1BpX,EAAM8T,EAAU,MAAM,GAAG,EAAE,CAAC,EAClC,cAAO,OAAO2T,EAAQ,MAAO,CAC3B,KAAM3R,GAAK,KAAO,GAAGA,CAAC,KAAO,GAC7B,IAAKC,GAAK,KAAO,GAAGA,CAAC,KAAO,GAC5B,CAAC/V,CAAG,EAAG,eAAeknB,GAAQ,YAAY,SAAS,GAC3D,CAAO,EACM,CAAE,CACf,CACG,CACH,EAMA,SAASQ,GAAoB5T,EAAW,CACtC,KAAM,CAACiB,EAAM4S,CAAK,EAAI7T,EAAU,MAAM,GAAG,EACzC,MAAO,CAAE,KAAAiB,EAAM,MAAA4S,EAAO,SAAUA,GAAS,IAAM,CACjD,CAMA,IAAIC,GAAiB,CACnB,SAAU,WACV,UAAW,SACX,UAAW,GACX,OAAQ,EACR,KAAM,GACN,MAAO,GACP,QAAS,GACT,UAAW,GACX,YAAa,GACb,gBAAiB,EACjB,aAAc,CAChB,EACA,SAASC,GAAW7mB,EAAK9H,EAAO,CAC9B,MAAM4uB,EAAM9mB,EAAI,kBAAoB,EACpC,OAAO,KAAK,MAAM9H,EAAQ4uB,CAAG,EAAIA,CACnC,CACA,SAASC,GAAsBC,EAAM,CACnC,OAAO3tB,GAAQ2tB,EAAK,QAAQ,CAC9B,CACA,SAASC,GAAmBC,EAAcF,EAAM,CAC9C,GAAKE,EACL,OAAO7P,GAAM,CACX,QAAS6P,EACT,QAASF,EAAK,YAClB,CAAG,CACH,CACA,SAASG,GAAoBD,EAAcF,EAAM,OAC/C,GAAI,CAAAhuB,IAAO3B,EAAA2vB,EAAK,SAAL,KAAA3vB,EAAe2vB,EAAK,MAAM,EACrC,OAAO3O,GAAO,CAAC,CAAE,UAAAvF,KAAgB,aAC/B,MAAMsU,IAAeF,GAAA,YAAAA,EAAc,eAAgB,GAAK,EAClDG,GAAS7qB,GAAAnF,EAAA2vB,EAAK,SAAL,YAAA3vB,EAAa,WAAb,KAAAmF,EAAyBwqB,EAAK,OACvCxM,EAAW,OAAO6M,GAAW,SAAWA,EAASD,EAAcC,GAAA,KAAAA,EAAUD,EACzE,CAAE,SAAAE,CAAQ,EAAKZ,GAAoB5T,CAAS,EAC5CyU,EAAUD,EAAwB,OAAbN,EAAK,MAC1BvM,GAAYrc,GAAA7B,EAAAyqB,EAAK,SAAL,YAAAzqB,EAAa,YAAb,KAAA6B,EAA0BmpB,EAC5C,OAAO3tB,GAAQ,CACb,UAAA6gB,EACA,SAAAD,EACA,cAAewM,EAAK,KAC1B,CAAK,CACL,CAAG,CACH,CACA,SAASQ,GAAkBR,EAAM,CAC/B,GAAKA,EAAK,KACV,OAAOxO,GAAK,CACV,SAAUuO,GAAsBC,CAAI,EACpC,QAASA,EAAK,gBACd,mBAAoBA,EAAK,OAAS,GAAO,OAASA,EAAK,IAC3D,CAAG,CACH,CACA,SAASS,GAAmBT,EAAM,CAChC,GAAI,GAACA,EAAK,OAAS,CAACA,EAAK,SACzB,OAAOpM,GAAM,CACX,SAAUmM,GAAsBC,CAAI,EACpC,SAAUA,EAAK,MACf,UAAWA,EAAK,QAChB,QAASA,EAAK,gBACd,QAAS7L,GAAU,CACvB,CAAG,CACH,CACA,SAASuM,GAAkBV,EAAM,CAC/B,OAAOrL,GAAK,CACV,QAASqL,EAAK,gBACd,MAAM,CAAE,SAAA1lB,EAAU,MAAAkG,EAAO,gBAAA8U,EAAiB,eAAAC,CAAc,EAAI,CAC1D,MAAMlH,EAAW/T,EAAS,SACpBqmB,EAAiB,KAAK,MAAMngB,EAAM,UAAU,KAAK,EACvD+U,EAAiB,KAAK,MAAMA,CAAc,EAC1CD,EAAkB,KAAK,MAAMA,CAAe,EAC5CjH,EAAS,MAAM,YAAY,oBAAqB,GAAGsS,CAAc,IAAI,EACrEtS,EAAS,MAAM,YAAY,oBAAqB,GAAGkH,CAAc,IAAI,EACrElH,EAAS,MAAM,YAAY,qBAAsB,GAAGiH,CAAe,IAAI,CAC7E,CACA,CAAG,CACH,CACA,SAASsL,GAA2BZ,EAAM,SACxC,GAAKA,EAAK,iBACV,OAAO9M,GAAK,CAAE,SAAU,kBAAmB,UAAU1d,GAAAnF,EAAA2vB,EAAK,WAAL,YAAA3vB,EAAA,KAAA2vB,KAAA,KAAAxqB,EAAqB,oBAAqB,CACjG,CACA,SAASqrB,GAAqBb,EAAM,CAClC,OAAKA,EACDA,IAAS,GACJ,CAAE,eAAgB,GAAM,eAAgB,GAAM,cAAe,GAAM,YAAa,EAAM,EAExFA,EAJW,CAAE,CAKtB,CACA,SAASc,GAAiBC,EAAoB1S,EAAU2R,EAAO,CAAA,EAAI,CACjE,MAAM5R,EAAYyQ,GAAiBkC,EAAoBf,EAAK,aAAa,EACzE,GAAI,CAAC3R,GAAY,CAACD,EAAW,OAC7B,MAAM5e,EAAU,OAAO,OAAO,CAAA,EAAIowB,GAAgBI,CAAI,EAChDP,EAAUpR,EAAS,cAAc,mBAAmB,EACpDW,EAAa,CACjBmR,GAAoBV,EAASjwB,CAAO,EACpCgxB,GAAkBhxB,CAAO,EACzBixB,GAAmBjxB,CAAO,EAC1BywB,GAAmBR,EAASjwB,CAAO,EACnCgwB,GAAqBC,CAAO,EAC5BJ,GACAqB,GAAkBlxB,CAAO,EACzBoxB,GAA2BpxB,CAAO,EAClC+vB,EACD,EACK,CAAE,UAAAzT,EAAW,SAAAiD,EAAU,WAAAiS,EAAY,aAAAC,CAAc,EAAGzxB,EACpD0xB,EAAiB,SAAY,OACjC,GAAI,CAAC9S,GAAa,CAACC,EAAU,OAC7B,MAAM8S,EAAM,MAAMtS,GAAgBT,EAAWC,EAAU,CACrD,UAAAvC,EACA,WAAAkD,EACA,SAAAD,CACN,CAAK,EACDiS,GAAA,MAAAA,EAAaG,GACbF,GAAA,MAAAA,EAAe,CAAE,OAAQ,KACzB,MAAMjoB,EAAM1D,EAAU+Y,CAAQ,EACxBP,EAAI+R,GAAW7mB,EAAKmoB,EAAI,CAAC,EACzBpT,EAAI8R,GAAW7mB,EAAKmoB,EAAI,CAAC,EAC/B9S,EAAS,MAAM,YAAY,MAAO,GAAGP,CAAC,IAAI,EAC1CO,EAAS,MAAM,YAAY,MAAO,GAAGN,CAAC,IAAI,EACtCve,EAAQ,qBACOa,EAAA8wB,EAAI,eAAe,OAAnB,YAAA9wB,EAAyB,kBAExCge,EAAS,MAAM,YAAY,aAAc,QAAQ,EACjDA,EAAS,MAAM,YAAY,iBAAkB,MAAM,IAEnDA,EAAS,MAAM,eAAe,YAAY,EAC1CA,EAAS,MAAM,eAAe,gBAAgB,IAGlD,MAAM+S,EAAY/S,EAAS,kBAC3B,GAAI+S,EAAW,CACb,MAAMC,EAASvrB,GAAiBsrB,CAAS,EACzC/S,EAAS,MAAM,YAAY,YAAagT,EAAO,MAAM,CAC3D,CACG,EACKvf,EAAS,SAAY,CACrBke,EAAK,gBACP,MAAMA,EAAK,eAAe,CAAE,eAAAkB,EAAgB,EAC5CD,GAAA,MAAAA,EAAe,CAAE,OAAQ,MAEzB,MAAMC,EAAgB,CAEzB,EACKI,EAAoBT,GAAqBrxB,EAAQ,SAAS,EAC1D+xB,EAAmB/xB,EAAQ,UAAYstB,GAAW1O,EAAWC,EAAUvM,EAAQwf,CAAiB,EAAI9uB,GAC1G,OAAAsP,EAAQ,EACD,IAAM,CACXyf,GAAA,MAAAA,IACAN,GAAA,MAAAA,EAAe,CAAE,OAAQ,IAC1B,CACH,CACA,SAASO,GAAaC,EAAeC,EAAc1B,EAAO,CAAA,EAAI,CAC5D,KAAM,CAAE,MAAA2B,EAAO,GAAGnyB,CAAO,EAAKwwB,EACxBrjB,EAAOglB,EAAQ3lB,EAAOzL,GAAMA,EAAG,EAC/BsJ,EAAW,CAAE,EACnB,OAAAA,EAAS,KACP8C,EAAK,IAAM,CACT,MAAMyR,EAAY,OAAOqT,GAAkB,WAAaA,EAAe,EAAGA,EACpEpT,EAAW,OAAOqT,GAAiB,WAAaA,EAAc,EAAGA,EACvE7nB,EAAS,KAAKinB,GAAiB1S,EAAWC,EAAU7e,CAAO,CAAC,CAC7D,CAAA,CACF,EACM,IAAM,CACXqK,EAAS,QAASlH,GAAOA,GAAA,YAAAA,GAAM,CAChC,CACH,CAGA,IAAIivB,GAAuB,CACzB,OAAQ,gBACR,KAAM,iBACN,IAAK,iBACL,MAAO,gBACT,EACA,SAASC,GAAmBryB,EAAU,GAAI,CACxC,KAAM,CAAE,UAAAsc,EAAW,UAAAgW,EAAW,YAAAC,EAAa,SAAAhT,EAAW,UAAU,EAAKvf,EACrE,MAAO,CACL,MAAO,CACL,SAAU,WACV,MAAO0vB,GAAQ,UAAU,UACzB,OAAQA,GAAQ,UAAU,UAC1B,CAACA,GAAQ,cAAc,QAAQ,EAAG,QAAQA,GAAQ,UAAU,SAAS,QACrE,CAACA,GAAQ,YAAY,QAAQ,EAAG,QAAQA,GAAQ,cAAc,SAAS,QACxE,EACD,SAAU,CAER,UAAWpT,EAAY8V,GAAqB9V,EAAU,MAAM,GAAG,EAAE,CAAC,CAAC,EAAI,OACvE,WAAYoT,GAAQ,QAAQ,UAC5B,IAAK,IACL,KAAM,IACN,MAAO,OACP,OAAQ,OACR,SAAU,WACV,OAAQ,SACT,EACD,SAAU,CACR,SAAUnQ,EACV,UAAW,UACX,SAAU+S,EAAY,OAAS,cAC/B,MAAOA,EAAY,yBAA2B,OAC9C,SAAUC,EAAc,yBAA2B,OACnD,UAAWA,EAAc,0BAA4B,OACrD,cAAgBjW,EAAqB,OAAT,OAC5B,IAAK,MACL,KAAM,MAEN,UAAWA,EAAY,qCAAuC,4BAC9D,OAAQ,gBACd,CACG,CACH,CC5TA,SAASkW,GAAgBhpB,EAAK,CAC5B,MAAMipB,EAAS,CACb,KAAK/lB,EAAI,OACP,QAAS5K,EAAI,EAAGA,IAAIjB,EAAA2I,EAAI,SAAJ,YAAA3I,EAAY,QAAQiB,GAAK,EAAG,CAC9C,MAAM4wB,EAAQlpB,EAAI,OAAO1H,CAAC,EACtB4wB,GAAOhmB,EAAGgmB,CAAK,CAC3B,CACK,EACD,iBAAiB/qB,EAAOgrB,EAAU3yB,EAAS,CACzC,OAAAyyB,EAAO,KAAMC,GAAU,CACrB,GAAI,CACFA,EAAM,SAAS,iBAAiB/qB,EAAOgrB,EAAU3yB,CAAO,CAClE,OAAgBsF,EAAA,CAChB,CACA,CAAO,EACM,IAAM,CACX,GAAI,CACFmtB,EAAO,oBAAoB9qB,EAAOgrB,EAAU3yB,CAAO,CAC7D,OAAgBsF,EAAA,CAChB,CACO,CACF,EACD,oBAAoBqC,EAAOgrB,EAAU3yB,EAAS,CAC5CyyB,EAAO,KAAMC,GAAU,CACrB,GAAI,CACFA,EAAM,SAAS,oBAAoB/qB,EAAOgrB,EAAU3yB,CAAO,CACrE,OAAgBsF,EAAA,CAChB,CACA,CAAO,CACP,CACG,EACD,OAAOmtB,CACT,CACA,SAASG,GAAgBppB,EAAK,CAC5B,MAAMhE,EAASgE,EAAI,cAAgB,KAAOA,EAAI,OAAS,KACvD,MAAO,CACL,iBAAkB,CAAC7B,EAAOgrB,EAAU3yB,IAAY,CAC9C,GAAI,CACFwF,GAAA,MAAAA,EAAQ,iBAAiBmC,EAAOgrB,EAAU3yB,EAClD,OAAcsF,EAAA,CACd,CACM,MAAO,IAAM,CACX,GAAI,CACFE,GAAA,MAAAA,EAAQ,oBAAoBmC,EAAOgrB,EAAU3yB,EACvD,OAAgBsF,EAAA,CAChB,CACO,CACF,EACD,oBAAqB,CAACqC,EAAOgrB,EAAU3yB,IAAY,CACjD,GAAI,CACFwF,GAAA,MAAAA,EAAQ,oBAAoBmC,EAAOgrB,EAAU3yB,EACrD,OAAcsF,EAAA,CACd,CACA,CACG,CACH,CAGA,IAAIutB,GAAwB,sBACxBC,GAAsB,gBAC1B,SAASC,GAAwBjrB,EAAc,CAC7C,UAAWjD,KAAQiD,EACjB,GAAItD,EAAcK,CAAI,GAAKkG,GAAYlG,CAAI,EAAG,MAAO,GAEvD,MAAO,EACT,CACA,IAAImuB,GAAkBrrB,GAAU,YAAaA,EAC7C,SAASsrB,GAAmBpuB,EAAM8C,EAAO,CACvC,GAAI,CAACqrB,GAAerrB,CAAK,GAAK,CAAC9C,EAAM,MAAO,GAC5C,MAAMwZ,EAAOxZ,EAAK,sBAAuB,EACzC,OAAIwZ,EAAK,QAAU,GAAKA,EAAK,SAAW,EAAU,GAC3CA,EAAK,KAAO1W,EAAM,SAAWA,EAAM,SAAW0W,EAAK,IAAMA,EAAK,QAAUA,EAAK,MAAQ1W,EAAM,SAAWA,EAAM,SAAW0W,EAAK,KAAOA,EAAK,KACjJ,CACA,SAAS6U,GAAc7U,EAAMzV,EAAO,CAClC,OAAOyV,EAAK,GAAKzV,EAAM,GAAKA,EAAM,GAAKyV,EAAK,EAAIA,EAAK,QAAUA,EAAK,GAAKzV,EAAM,GAAKA,EAAM,GAAKyV,EAAK,EAAIA,EAAK,KAC/G,CACA,SAAS8U,GAAuBxrB,EAAOujB,EAAU,CAC/C,GAAI,CAACA,GAAY,CAAC8H,GAAerrB,CAAK,EAAG,MAAO,GAChD,MAAMyrB,EAAgBlI,EAAS,aAAeA,EAAS,aACjDmI,EAAeD,GAAiBzrB,EAAM,QAAUujB,EAAS,WAAaA,EAAS,YAC/EoI,EAAgBpI,EAAS,YAAcA,EAAS,YAChDqI,EAAeD,GAAiB3rB,EAAM,QAAUujB,EAAS,UAAYA,EAAS,aAC9E7M,EAAO,CACX,EAAG6M,EAAS,WACZ,EAAGA,EAAS,UACZ,MAAOA,EAAS,aAAekI,EAAgB,GAAK,GACpD,OAAQlI,EAAS,cAAgBoI,EAAgB,GAAK,EACvD,EACK1qB,EAAQ,CACZ,EAAGjB,EAAM,QACT,EAAGA,EAAM,OACV,EACD,OAAKurB,GAAc7U,EAAMzV,CAAK,EACvByqB,GAAgBE,EADiB,EAE1C,CACA,SAASC,GAAyB3uB,EAAM7E,EAAS,CAC/C,KAAM,CAAE,QAAAyzB,EAAS,eAAAC,EAAgB,qBAAAC,EAAsB,kBAAAC,EAAmB,MAAAzB,CAAK,EAAKnyB,EACpF,GAAI,CAAC6E,EAAM,OACX,MAAMqH,EAAMtG,GAAYf,CAAI,EACtB2E,EAAM1D,EAAUjB,CAAI,EACpB4tB,EAASD,GAAgBhpB,CAAG,EAC5BqqB,EAAYjB,GAAgBppB,CAAG,EACrC,SAASsqB,EAAensB,EAAOmB,EAAQ,CAIrC,GAHI,CAACtE,EAAcsE,CAAM,GACrB,CAACA,EAAO,aACRvD,GAASV,EAAMiE,CAAM,GACrBmqB,GAAmBpuB,EAAM8C,CAAK,EAAG,MAAO,GAC5C,MAAMosB,EAAY7nB,EAAI,cAAc,mBAAmBrH,EAAK,EAAE,IAAI,EAClE,GAAIkvB,EAAW,CACb,MAAMC,EAAkB1mB,GAA2BymB,CAAS,EAC5D,GAAIZ,GAAuBxrB,EAAOqsB,CAAe,EAAG,MAAO,EACjE,CACI,MAAMC,EAAe3mB,GAA2BzI,CAAI,EACpD,OAAIsuB,GAAuBxrB,EAAOssB,CAAY,EAAU,GACjD,EAACR,GAAA,MAAAA,EAAU3qB,GACtB,CACE,MAAMorB,EAAsC,IAAI,IAC1CC,EAAiBnvB,GAAaH,GAAA,YAAAA,EAAM,aAAa,EACvD,SAASuvB,EAAczsB,EAAO,CAC5B,SAASqB,EAAQqrB,EAAY,SAC3B,MAAMlnB,EAAOglB,GAAS,CAAClrB,GAAe,EAAGuF,EAAOzL,GAAMA,EAAG,EACnD6O,EAAMykB,GAAA,KAAAA,EAAc1sB,EACpBG,GAAe9B,GAAAnF,EAAA+O,GAAA,YAAAA,EAAK,eAAL,YAAA/O,EAAA,KAAA+O,KAAA,KAAA5J,EAAyB,CAAC4J,GAAA,YAAAA,EAAK,MAAM,EAC1DzC,EAAK,IAAM,CACT,MAAMrE,EAASqrB,EAAiBrsB,EAAa,CAAC,EAAID,EAAeF,CAAK,EACtE,GAAI,GAAC9C,GAAQ,CAACivB,EAAensB,EAAOmB,CAAM,GAC1C,IAAI6qB,GAAwBC,EAAmB,CAC7C,MAAMU,EAAWrxB,GAAQ0wB,EAAsBC,CAAiB,EAChE/uB,EAAK,iBAAiBguB,GAAuByB,EAAU,CAAE,KAAM,GAAM,CAC/E,CACQC,GAAgB1vB,EAAMguB,GAAuB,CAC3C,QAAS,GACT,WAAY,GACZ,OAAQ,CACN,cAAejjB,EACf,YAAazH,GAAmByH,CAAG,EACnC,UAAWmjB,GAAwBjrB,CAAY,EAC/C,OAAAgB,CACZ,CACA,CAAS,EACT,CAAO,CACP,CACQnB,EAAM,cAAgB,SACxBusB,EAAoB,QAAS/wB,GAAOA,EAAE,CAAE,EACxC+wB,EAAoB,IAAIrrB,EAAYqD,EAAK,QAASlD,EAAS,CAAE,KAAM,EAAI,CAAE,CAAC,EAC1EkrB,EAAoB,IAAIL,EAAU,iBAAiB,QAAS7qB,EAAS,CAAE,KAAM,EAAI,CAAE,CAAC,EACpFkrB,EAAoB,IAAIzB,EAAO,iBAAiB,QAASzpB,EAAS,CAAE,KAAM,EAAI,CAAE,CAAC,GAEjFA,EAAS,CAEf,CACE,MAAMqB,EAA2B,IAAI,IAC/BmqB,EAAQ,WAAW,IAAM,CAC7BnqB,EAAS,IAAIxB,EAAYqD,EAAK,cAAekoB,EAAe,EAAI,CAAC,EACjE/pB,EAAS,IAAIwpB,EAAU,iBAAiB,cAAeO,EAAe,EAAI,CAAC,EAC3E/pB,EAAS,IAAIooB,EAAO,iBAAiB,cAAe2B,EAAe,EAAI,CAAC,CACzE,EAAE,CAAC,EACJ,SAASK,EAAU9sB,EAAO,EACXwqB,EAAQ3lB,EAAOzL,GAAMA,EAAG,GAChC,IAAM,CACT,MAAM+H,EAASjB,EAAeF,CAAK,EACnC,GAAI,GAAC9C,GAAQ,CAACivB,EAAensB,EAAOmB,CAAM,GAC1C,IAAI4qB,GAAkBE,EAAmB,CACvC,MAAM5qB,EAAU/F,GAAQywB,EAAgBE,CAAiB,EACzD/uB,EAAK,iBAAiBiuB,GAAqB9pB,EAAS,CAAE,KAAM,GAAM,CAC1E,CACMurB,GAAgB1vB,EAAMiuB,GAAqB,CACzC,QAAS,GACT,WAAY,GACZ,OAAQ,CACN,cAAenrB,EACf,YAAa,GACb,UAAWoD,GAAYjC,CAAM,EAC7B,OAAAA,CACV,CACA,CAAO,EACP,CAAK,CACL,CACE,OAAK7B,GAAa,IAChBoD,EAAS,IAAIxB,EAAYqD,EAAK,UAAWuoB,EAAW,EAAI,CAAC,EACzDpqB,EAAS,IAAIwpB,EAAU,iBAAiB,UAAWY,EAAW,EAAI,CAAC,EACnEpqB,EAAS,IAAIooB,EAAO,iBAAiB,UAAWgC,EAAW,EAAI,CAAC,GAE3D,IAAM,CACX,aAAaD,CAAK,EAClBN,EAAoB,QAAS/wB,GAAOA,EAAE,CAAE,EACxCkH,EAAS,QAASlH,GAAOA,EAAE,CAAE,CAC9B,CACH,CACA,SAASuxB,GAAqBxnB,EAAUlN,EAAS,CAC/C,KAAM,CAAE,MAAAmyB,CAAK,EAAKnyB,EACZmN,EAAOglB,EAAQ3lB,EAAOzL,GAAMA,EAAG,EAC/BsJ,EAAW,CAAE,EACnB,OAAAA,EAAS,KACP8C,EAAK,IAAM,CACT,MAAMtI,EAAO,OAAOqI,GAAa,WAAaA,EAAU,EAAGA,EAC3D7C,EAAS,KAAKmpB,GAAyB3uB,EAAM7E,CAAO,CAAC,CACtD,CAAA,CACF,EACM,IAAM,CACXqK,EAAS,QAASlH,GAAOA,GAAA,YAAAA,GAAM,CAChC,CACH,CACA,SAASoxB,GAAgB9vB,EAAIkE,EAAMgsB,EAAM,CACvC,MAAMnrB,EAAM/E,EAAG,cAAc,aAAe,OACtCkD,EAAQ,IAAI6B,EAAI,YAAYb,EAAMgsB,CAAI,EAC5C,OAAOlwB,EAAG,cAAckD,CAAK,CAC/B,CChNA,SAASitB,GAAmB/vB,EAAM1B,EAAI,CACpC,MAAM0xB,EAAiBltB,GAAU,CAC3BA,EAAM,MAAQ,WACdA,EAAM,aACVxE,GAAA,MAAAA,EAAKwE,GACN,EACD,OAAOkB,EAAYjD,GAAYf,CAAI,EAAG,UAAWgwB,EAAe,CAAE,QAAS,GAAM,CACnF,CACA,IAAIC,GAAa,CACf,OAAQ,CAAE,EACV,SAAU,CAAE,EACZ,OAAQ,CACN,OAAO,KAAK,OAAO,MACpB,EACD,uBAAwB,CACtB,OAAO,KAAK,OAAO,OAAQC,GAAUA,EAAM,eAAe,CAC3D,EACD,6BAA8B,CAC5B,MAAO,CAAC,GAAG,KAAK,sBAAqB,CAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CACrD,EACD,yBAA0B,CACxB,OAAO,KAAK,wBAAwB,OAAS,CAC9C,EACD,4BAA4BlwB,EAAM,OAChC,MAAMf,EAAQ,KAAK,QAAQe,CAAI,EACzBmwB,EAAuB,KAAK,4BAA2B,EAAK,KAAK,SAAQn0B,EAAA,KAAK,4BAA2B,IAAhC,YAAAA,EAAoC,IAAI,EAAI,GAC3H,OAAOiD,EAAQkxB,CAChB,EACD,UAAUnwB,EAAM,CACd,MAAMkwB,EAAQ,KAAK,OAAO,KAAK,MAAO,EAAG,CAAC,EAC1C,OAAOA,GAAA,YAAAA,EAAO,QAASlwB,CACxB,EACD,gBAAgBA,EAAM,CACpB,OAAO,MAAM,KAAK,KAAK,MAAM,EAAE,MAAM,KAAK,QAAQA,CAAI,EAAI,CAAC,CAC5D,EACD,gBAAgBA,EAAMiE,EAAQ,CAC5B,OAAO,KAAK,gBAAgBjE,CAAI,EAAE,KAAMkwB,GAAUxvB,GAASwvB,EAAM,KAAMjsB,CAAM,CAAC,CAC/E,EACD,WAAWA,EAAQ,CACjB,OAAO,MAAM,KAAK,KAAK,QAAQ,EAAE,KAAMmsB,GAAW1vB,GAAS0vB,EAAQnsB,CAAM,CAAC,CAC3E,EACD,IAAIisB,EAAO,CACT,MAAMG,EAAM,KAAK,OAAO,KAAKH,CAAK,EAClCA,EAAM,KAAK,MAAM,YAAY,gBAAiB,GAAGG,CAAG,EAAE,CACvD,EACD,UAAUrwB,EAAM,CACd,KAAK,SAAS,KAAKA,CAAI,CACxB,EACD,OAAOA,EAAM,CACX,MAAMf,EAAQ,KAAK,QAAQe,CAAI,EAC3Bf,EAAQ,IACRA,EAAQ,KAAK,MAAK,EAAK,GACT,KAAK,gBAAgBe,CAAI,EACjC,QAASkwB,GAAUA,EAAM,QAAO,CAAE,EAE5C,KAAK,OAAO,OAAOjxB,EAAO,CAAC,EAC3Be,EAAK,MAAM,eAAe,eAAe,EAC1C,EACD,aAAaA,EAAM,CACjB,MAAMf,EAAQ,KAAK,SAAS,QAAQe,CAAI,EACpCf,GAAS,GAAG,KAAK,SAAS,OAAOA,EAAO,CAAC,CAC9C,EACD,QAAQe,EAAM,CACZ,OAAO,KAAK,OAAO,UAAWkwB,GAAUA,EAAM,OAASlwB,CAAI,CAC5D,EACD,QAAQA,EAAM,QACZhE,EAAA,KAAK,OAAO,KAAK,QAAQgE,CAAI,CAAC,IAA9B,MAAAhE,EAAiC,SAClC,EACD,OAAQ,CACN,KAAK,OAAO,KAAK,OAAO,CAAC,EAAE,IAAI,CACnC,CACA,EACIs0B,GACJ,SAASC,IAA6B,CACpCN,GAAW,OAAO,QAAQ,CAAC,CAAE,KAAAjwB,CAAI,IAAO,CACtCA,EAAK,MAAM,cAAgBiwB,GAAW,4BAA4BjwB,CAAI,EAAI,OAAS,MACvF,CAAG,CACH,CACA,SAASwwB,GAAkBxwB,EAAM,CAC/BA,EAAK,MAAM,cAAgB,EAC7B,CACA,SAASywB,GAA4BzwB,EAAM0wB,EAAoB,CAC7D,MAAMrpB,EAAMtG,GAAYf,CAAI,EACtBwF,EAAW,CAAE,EAQnB,GAPIyqB,GAAW,2BAA6B,CAAC5oB,EAAI,KAAK,aAAa,YAAY,IAC7EipB,GAA4B,SAAS,KAAK,MAAM,cAChD,eAAe,IAAM,CACnBjpB,EAAI,KAAK,MAAM,cAAgB,OAC/BA,EAAI,KAAK,aAAa,aAAc,EAAE,CAC5C,CAAK,GAECqpB,EAAoB,CACtB,MAAMC,EAAmB1iB,GAAgByiB,EAAqB9wB,GAAO,CACnE4F,EAAS,KAAKuH,GAASnN,EAAI,CAAE,cAAe,MAAM,CAAE,CAAC,CAC3D,CAAK,EACD4F,EAAS,KAAKmrB,CAAgB,CAClC,CACE,MAAO,IAAM,CACPV,GAAW,4BACf,eAAe,IAAM,CACnB5oB,EAAI,KAAK,MAAM,cAAgBipB,GAC/BjpB,EAAI,KAAK,gBAAgB,YAAY,EACjCA,EAAI,KAAK,MAAM,SAAW,GAAGA,EAAI,KAAK,gBAAgB,OAAO,CACvE,CAAK,EACD7B,EAAS,QAASlH,GAAOA,EAAE,CAAE,EAC9B,CACH,CAGA,SAASsyB,GAA4B5wB,EAAM7E,EAAS,CAClD,KAAM,CAAE,kBAAA01B,EAAoB,EAAI,EAAK11B,EACrC,GAAI01B,GAAqB,CAAC7wB,EAAM,CAC9BtB,GAAK,qDAAqD,EAC1D,MACJ,CACE,GAAI,CAACsB,EACH,OAEF,KAAM,CAAE,UAAA8wB,EAAW,gBAAAC,EAAiB,QAASC,EAAmB,MAAApf,CAAK,EAAKzW,EACpE+0B,EAAQ,CAAE,QAASY,EAAW,KAAA9wB,EAAM,gBAAA+wB,CAAiB,EAC3Dd,GAAW,IAAIC,CAAK,EACpBK,GAA4B,EAC5B,SAASzB,EAAqBhsB,EAAO,SACnC,MAAMmB,EAASjB,EAAeF,EAAM,OAAO,aAAa,EACpDmtB,GAAW,4BAA4BjwB,CAAI,GAAKiwB,GAAW,WAAWhsB,CAAM,KAChFjI,EAAAb,EAAQ,uBAAR,MAAAa,EAAA,KAAAb,EAA+B2H,IAC/B3B,EAAAhG,EAAQ,oBAAR,MAAAgG,EAAA,KAAAhG,EAA4B2H,GACxB,CAAAA,EAAM,mBACN8O,GACF,QAAQ,IAAI,wBAAyB9O,EAAM,OAAO,aAAa,EAEjEguB,GAAA,MAAAA,KACJ,CACE,SAASjC,EAAe/rB,EAAO,SAC7B,MAAMmB,EAASjB,EAAeF,EAAM,OAAO,aAAa,EACpDmtB,GAAW,WAAWhsB,CAAM,KAChCjI,EAAAb,EAAQ,iBAAR,MAAAa,EAAA,KAAAb,EAAyB2H,IACzB3B,EAAAhG,EAAQ,oBAAR,MAAAgG,EAAA,KAAAhG,EAA4B2H,GACxB,CAAAA,EAAM,mBACN8O,GACF,QAAQ,IAAI,kBAAmB9O,EAAM,OAAO,aAAa,EAE3DguB,GAAA,MAAAA,KACJ,CACE,SAASG,EAAgBnuB,EAAO,OACzBmtB,GAAW,UAAUjwB,CAAI,KAC9BhE,EAAAb,EAAQ,kBAAR,MAAAa,EAAA,KAAAb,EAA0B2H,GACtB,CAACA,EAAM,kBAAoBguB,IAC7BhuB,EAAM,eAAgB,EACtBguB,EAAW,GAEjB,CACE,SAASlC,EAAQ3qB,EAAQ,OACvB,GAAI,CAACjE,EAAM,MAAO,GAClB,MAAMkxB,EAAa,OAAOF,GAAsB,WAAaA,EAAmB,EAAGA,EAC7EG,EAAc,MAAM,QAAQD,CAAU,EAAIA,EAAa,CAACA,CAAU,EAClER,GAAqB10B,EAAAb,EAAQ,qBAAR,YAAAa,EAA4B,IAAKsC,GAAOA,EAAI,GAAE,OAAOqB,GAChF,OAAI+wB,GAAoBS,EAAY,KAAK,GAAGT,CAAkB,EACvDS,EAAY,KAAMC,GAAU1wB,GAAS0wB,EAAOntB,CAAM,CAAC,GAAKgsB,GAAW,gBAAgBjwB,EAAMiE,CAAM,CAC1G,CACE,MAAMuB,EAAW,CACfurB,EAAkBN,GAA4BzwB,EAAM7E,EAAQ,kBAAkB,EAAI,OAClF40B,GAAmB/vB,EAAMixB,CAAe,EACxCpB,GAAqB7vB,EAAM,CAAE,QAAA4uB,EAAS,eAAAC,EAAgB,qBAAAC,EAAsB,MAAO3zB,EAAQ,KAAO,CAAA,CACnG,EACD,MAAO,IAAM,CACX80B,GAAW,OAAOjwB,CAAI,EACtBuwB,GAA4B,EAC5BC,GAAkBxwB,CAAI,EACtBwF,EAAS,QAASlH,GAAOA,GAAA,YAAAA,GAAM,CAChC,CACH,CACA,SAAS+yB,GAAwBhpB,EAAUlN,EAAS,CAClD,KAAM,CAAE,MAAAmyB,CAAK,EAAKnyB,EACZmN,EAAOglB,EAAQ3lB,EAAOzL,GAAMA,EAAG,EAC/BsJ,EAAW,CAAE,EACnB,OAAAA,EAAS,KACP8C,EAAK,IAAM,CACT,MAAMtI,EAAOtC,GAAW2K,CAAQ,EAAIA,EAAU,EAAGA,EACjD7C,EAAS,KAAKorB,GAA4B5wB,EAAM7E,CAAO,CAAC,CACzD,CAAA,CACF,EACM,IAAM,CACXqK,EAAS,QAASlH,GAAOA,GAAA,YAAAA,GAAM,CAChC,CACH,CC1LA,KAAM,CAACgzB,GAA6BC,EAA6B,EAAIr2B,EAAc,CACjF,KAAM,wBACN,SAAU,2BACV,aAAc,iCAChB,CAAC,EACKs2B,GAA4B9iB,GAAUmH,EAAgB,EAAGnH,EAAO,CAAC,YAAa,eAAe,CAAC,ECN9F,CAAC+iB,GAAkBC,EAAkB,EAAIx2B,EAAc,CAC3D,KAAM,kBACN,SAAU,qBACV,aAAc,sBAChB,CAAC,ECAKy2B,GAAkB9c,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACjD,MAAM6gB,EAAWF,GAAoB,EAC/BG,EAAcpjB,EAAWmjB,EAAS,gBAAe,EAAIljB,CAAK,EAChE,OAAuBojB,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC7D,CAAC,EACD4gB,GAAgB,YAAc,kBCT9B,SAAShoB,GAAW,EAAG,CACrB,MAAO,EAAE,EAAE,SAAW,CAACpH,GAAK,GAAM,EAAE,QAAU,EAAE,SAAW,EAAE,MAAQ,WAAa,EAAE,MAAQ,SAAW,EAAE,MAAQ,OACnH,CACA,IAAIwvB,GAAoC,IAAI,IAAI,CAAC,WAAY,QAAS,QAAS,QAAS,OAAQ,QAAS,SAAU,SAAU,OAAO,CAAC,EACrI,SAASC,GAAqBC,EAAaC,EAAUzxB,EAAG,CACtD,MAAMwD,EAASxD,EAAIuC,EAAevC,CAAC,EAAI,KACjCkE,EAAM1D,EAAUgD,CAAM,EAC5B,OAAAguB,EAAcA,GAAehuB,aAAkBU,EAAI,kBAAoB,CAACotB,GAAkB,IAAI9tB,GAAA,YAAAA,EAAQ,IAAI,GAAKA,aAAkBU,EAAI,qBAAuBV,aAAkBU,EAAI,aAAeV,EAAO,kBACjM,EAAEguB,GAAeC,IAAa,YAAczxB,aAAakE,EAAI,eAAiB,CAAC,QAAQ,IAAIwtB,GAA0B1xB,EAAE,GAAG,EACnI,CACA,IAAI2xB,GAAkB,KAClBC,GAAiC,IAAI,IACrCC,GAA8B,IAAI,IAClCC,GAAsB,GACtBC,GAA2B,GAC3BL,GAA2B,CAC7B,IAAK,GACL,OAAQ,EACV,EACA,SAASM,GAAsBP,EAAUzxB,EAAG,CAC1C,QAAS0D,KAAWkuB,GAClBluB,EAAQ+tB,EAAUzxB,CAAC,CAEvB,CACA,SAASiyB,GAAoB,EAAG,CAC9BH,GAAsB,GAClB5oB,GAAW,CAAC,IACdyoB,GAAkB,WAClBK,GAAsB,WAAY,CAAC,EAEvC,CACA,SAASE,GAAmB,EAAG,CAC7BP,GAAkB,WACd,EAAE,OAAS,aAAe,EAAE,OAAS,iBACvCG,GAAsB,GACtBE,GAAsB,UAAW,CAAC,EAEtC,CACA,SAASG,GAAiB,EAAG,CACvBvvB,GAAe,CAAC,IAClBkvB,GAAsB,GACtBH,GAAkB,UAEtB,CACA,SAASS,GAAiB,EAAG,CAC3B,MAAM5uB,EAASjB,EAAe,CAAC,EAC3BiB,IAAWhD,EAAUgD,CAAM,GAAKA,IAAWlD,GAAYkD,CAAM,IAG7D,CAACsuB,IAAuB,CAACC,KAC3BJ,GAAkB,UAClBK,GAAsB,UAAW,CAAC,GAEpCF,GAAsB,GACtBC,GAA2B,GAC7B,CACA,SAASM,IAAmB,CAC1BP,GAAsB,GACtBC,GAA2B,EAC7B,CACA,SAASO,GAAuBlsB,EAAM,CACpC,GAAI,OAAO,QAAW,aAAeyrB,GAAY,IAAIrxB,EAAU4F,CAAI,CAAC,EAClE,OAEF,MAAMlC,EAAM1D,EAAU4F,CAAI,EACpBQ,EAAMtG,GAAY8F,CAAI,EAC5B,IAAImsB,EAAQruB,EAAI,YAAY,UAAU,MACtCA,EAAI,YAAY,UAAU,MAAQ,UAAW,CAC3CytB,GAAkB,UAClBK,GAAsB,UAAW,IAAI,EACrCF,GAAsB,GACtBS,EAAM,MAAM,KAAM,SAAS,CAC5B,EACD3rB,EAAI,iBAAiB,UAAWqrB,GAAqB,EAAI,EACzDrrB,EAAI,iBAAiB,QAASqrB,GAAqB,EAAI,EACvDrrB,EAAI,iBAAiB,QAASurB,GAAkB,EAAI,EACpDjuB,EAAI,iBAAiB,QAASkuB,GAAkB,EAAI,EACpDluB,EAAI,iBAAiB,OAAQmuB,GAAkB,EAAK,EAChD,OAAOnuB,EAAI,cAAiB,aAC9B0C,EAAI,iBAAiB,cAAesrB,GAAoB,EAAI,EAC5DtrB,EAAI,iBAAiB,cAAesrB,GAAoB,EAAI,EAC5DtrB,EAAI,iBAAiB,YAAasrB,GAAoB,EAAI,IAE1DtrB,EAAI,iBAAiB,YAAasrB,GAAoB,EAAI,EAC1DtrB,EAAI,iBAAiB,YAAasrB,GAAoB,EAAI,EAC1DtrB,EAAI,iBAAiB,UAAWsrB,GAAoB,EAAI,GAE1DhuB,EAAI,iBACF,eACA,IAAM,CACJsuB,GAA4BpsB,CAAI,CACjC,EACD,CAAE,KAAM,EAAI,CACb,EACDyrB,GAAY,IAAI3tB,EAAK,CAAE,MAAAquB,CAAK,CAAE,CAChC,CACA,IAAIC,GAA8B,CAACpsB,EAAMqsB,IAAiB,CACxD,MAAMvuB,EAAM1D,EAAU4F,CAAI,EACpBQ,EAAMtG,GAAY8F,CAAI,EACvByrB,GAAY,IAAI3tB,CAAG,IAGxBA,EAAI,YAAY,UAAU,MAAQ2tB,GAAY,IAAI3tB,CAAG,EAAE,MACvD0C,EAAI,oBAAoB,UAAWqrB,GAAqB,EAAI,EAC5DrrB,EAAI,oBAAoB,QAASqrB,GAAqB,EAAI,EAC1DrrB,EAAI,oBAAoB,QAASurB,GAAkB,EAAI,EACvDjuB,EAAI,oBAAoB,QAASkuB,GAAkB,EAAI,EACvDluB,EAAI,oBAAoB,OAAQmuB,GAAkB,EAAK,EACnD,OAAOnuB,EAAI,cAAiB,aAC9B0C,EAAI,oBAAoB,cAAesrB,GAAoB,EAAI,EAC/DtrB,EAAI,oBAAoB,cAAesrB,GAAoB,EAAI,EAC/DtrB,EAAI,oBAAoB,YAAasrB,GAAoB,EAAI,IAE7DtrB,EAAI,oBAAoB,YAAasrB,GAAoB,EAAI,EAC7DtrB,EAAI,oBAAoB,YAAasrB,GAAoB,EAAI,EAC7DtrB,EAAI,oBAAoB,UAAWsrB,GAAoB,EAAI,GAE7DL,GAAY,OAAO3tB,CAAG,EACxB,EAkBA,SAASwuB,IAAiB,CACxB,OAAOf,KAAoB,UAC7B,CACA,SAASgB,GAAkB1kB,EAAQ,GAAI,CACrC,KAAM,CAAE,YAAAujB,EAAa,UAAAoB,EAAW,SAAAC,EAAU,KAAAzsB,CAAM,EAAG6H,EACnDqkB,GAAuBlsB,CAAI,EAC3BysB,GAAA,MAAAA,EAAW,CAAE,eAAgBD,GAAaF,GAAc,EAAI,SAAUf,KACtE,MAAMjuB,EAAU,CAAC+tB,EAAUzxB,IAAM,CAC1BuxB,GAAqB,CAAC,CAACC,EAAaC,EAAUzxB,CAAC,IACpD6yB,GAAA,MAAAA,EAAW,CAAE,eAAgBH,GAAgB,EAAE,SAAAjB,CAAQ,GACxD,EACD,OAAAG,GAAe,IAAIluB,CAAO,EACnB,IAAM,CACXkuB,GAAe,OAAOluB,CAAO,CAC9B,CACH,CClJA,IAAIovB,GAAUtd,GAAc,UAAU,EAAE,MAAM,OAAQ,QAAS,UAAW,WAAW,EACjFC,GAAQqd,GAAQ,MAAO,EAGvBC,GAAazhB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,OAAT,KAAAmF,EAAiB,YAAY4Q,EAAI,EAAE,IACxD0hB,GAAc1hB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,QAAT,KAAAmF,EAAkB,YAAY4Q,EAAI,EAAE,UAC1D2hB,GAAgB3hB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,UAAT,KAAAmF,EAAoB,YAAY4Q,EAAI,EAAE,YAC9D4hB,GAAoB5hB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,cAAT,KAAAmF,EAAwB,YAAY4Q,EAAI,EAAE,UACtE6hB,GAAa7hB,GAAQA,EAAI,QAAQyhB,GAAUzhB,CAAG,CAAC,EAC/C8hB,GAAoB9hB,GAAQA,EAAI,QAAQ4hB,GAAiB5hB,CAAG,CAAC,EAGjE,SAAS+hB,GAAQC,EAASC,EAAW,CACnC,KAAM,CAAE,KAAAjhB,EAAM,QAAAlX,EAAS,KAAAiC,EAAM,SAAAkU,EAAU,MAAAP,CAAK,EAAKsiB,EAC3CE,EAAWn2B,EAAK,UAAU,EAC1Bo2B,EAAWp2B,EAAK,UAAU,EAC1Bq2B,EAAUr2B,EAAK,SAAS,EACxBs2B,EAAU,CAACH,GAAYp4B,EAAQ,IAAI,SAAS,EAC5Cw4B,EAAe,CAACJ,GAAYp4B,EAAQ,IAAI,cAAc,EACtD2I,EAAUwN,EAAS,SAAS,EAC5BsiB,EAAgBtiB,EAAS,eAAe,EACxCuiB,EAAY,CAChB,cAAel1B,EAASxD,EAAQ,IAAI,QAAQ,CAAC,EAC7C,aAAcwD,EAAS+0B,CAAO,EAC9B,qBAAsB/0B,EAASg1B,CAAY,EAC3C,gBAAiBh1B,EAAS60B,CAAQ,EAClC,aAAc70B,EAASxD,EAAQ,IAAI,SAAS,CAAC,EAC7C,gBAAiBwD,EAAS40B,CAAQ,EAClC,aAAcK,EAAgB,gBAAkB9vB,EAAU,UAAY,YACtE,eAAgBnF,EAAS80B,CAAO,CACjC,EACD,MAAO,CACL,QAAA3vB,EACA,SAAAyvB,EACA,cAAAK,EACA,QAAAF,EACA,aAAc5vB,EACd,WAAWgwB,EAAU,CACnBzhB,EAAK,CAAE,KAAM,cAAe,QAASyhB,EAAU,UAAW,GAAO,CAClE,EACD,eAAgB,CACdzhB,EAAK,CAAE,KAAM,iBAAkB,QAAAvO,EAAS,UAAW,GAAO,CAC3D,EACD,cAAe,CACb,OAAOwvB,EAAU,MAAM,CACrB,GAAG9d,GAAM,KAAK,MACd,GAAGqe,EACH,IAAKz2B,EAAK,KAAK,EACf,GAAI01B,GAAU/hB,CAAK,EACnB,QAASkiB,GAAiBliB,CAAK,EAC/B,eAAgB,CACVwiB,GACJlhB,EAAK,CAAE,KAAM,cAAe,QAAS,CAAE,QAAS,EAAI,EAAI,CACzD,EACD,gBAAiB,CACXkhB,GACJlhB,EAAK,CAAE,KAAM,cAAe,QAAS,CAAE,QAAS,EAAK,EAAI,CAC1D,EACD,QAAQjQ,EAAO,CACEE,EAAeF,CAAK,IACpB+wB,GAAiBpiB,CAAK,GACnC3O,EAAM,gBAAiB,CAEnC,CACA,CAAO,CACF,EACD,eAAgB,CACd,OAAOkxB,EAAU,QAAQ,CACvB,GAAG9d,GAAM,MAAM,MACf,GAAGqe,EACH,IAAKz2B,EAAK,KAAK,EACf,GAAI21B,GAAWhiB,CAAK,CAC5B,CAAO,CACF,EACD,iBAAkB,CAChB,OAAOuiB,EAAU,QAAQ,CACvB,GAAG9d,GAAM,QAAQ,MACjB,GAAGqe,EACH,IAAKz2B,EAAK,KAAK,EACf,GAAI41B,GAAajiB,CAAK,EACtB,cAAe,EACvB,CAAO,CACF,EACD,mBAAoB,CAClB,OAAOuiB,EAAU,QAAQ,CACvB,GAAG9d,GAAM,UAAU,MACnB,GAAGqe,EACH,IAAKz2B,EAAK,KAAK,EACf,OAAQ,CAACw2B,GAAiB,CAAC9vB,CACnC,CAAO,CACF,EACD,qBAAsB,CACpB,OAAOwvB,EAAU,MAAM,CACrB,GAAIL,GAAiBliB,CAAK,EAC1B,KAAM,WACN,SAAU3T,EAAK,UAAU,EACzB,eAAgB0G,EAChB,SAAAyvB,EACA,kBAAmBR,GAAWhiB,CAAK,EACnC,eAAgB0iB,EAChB,KAAMr2B,EAAK,MAAM,EACjB,KAAMA,EAAK,MAAM,EACjB,MAAOA,EAAK,OAAO,EACnB,MAAO8P,GACP,SAAU,CACR,MAAM6mB,EAAgBtB,GAAgB,EACtCpgB,EAAK,CAAE,KAAM,cAAe,QAAS,CAAE,QAAS,GAAM,aAAc0hB,CAAa,EAAI,CACtF,EACD,QAAS,CACP1hB,EAAK,CAAE,KAAM,cAAe,QAAS,CAAE,QAAS,GAAO,aAAc,EAAK,EAAI,CAC/E,EACD,QAAQjQ,EAAO,CACb,GAAIoxB,EAAU,CACZpxB,EAAM,eAAgB,EACtB,MACZ,CACU,MAAM0xB,EAAW1xB,EAAM,cAAc,QACrCiQ,EAAK,CAAE,KAAM,cAAe,QAASyhB,EAAU,UAAW,GAAM,CAC1E,CACA,CAAO,CACP,CACG,CACH,CACA,GAAI,CAAEE,IAAAA,EAAK,EAAG/lB,GAAc,EACxB4C,GAAwB,CAC1B,MAAM,CAAE,MAAOojB,GAAU,CACvB,MAAO,CACL,MAAO,KACP,GAAGA,EACH,eAAgB,CAAC,CAACA,EAAO,cAC1B,CACF,EACD,cAAe,CACb,MAAO,OACR,EACD,QAAQ,CAAE,KAAA72B,EAAM,SAAA82B,GAAY,CAC1B,MAAO,CACL,QAASA,EAAS,KAAO,CACvB,aAAc92B,EAAK,gBAAgB,EACnC,MAAOA,EAAK,SAAS,EACrB,SAAS0G,EAAS,QAChBxI,EAAA8B,EAAK,iBAAiB,IAAtB,MAAA9B,EAA0B,CAAE,QAAAwI,GACtC,CACA,EAAQ,EACF,iBAAkBowB,EAAS,KAAO,CAAE,aAAc,EAAO,EAAC,EAC1D,aAAcA,EAAS,KAAO,CAAE,aAAc,EAAO,EAAC,EACtD,OAAQA,EAAS,KAAO,CAAE,aAAc,EAAO,EAAC,EAChD,QAASA,EAAS,KAAO,CAAE,aAAc,EAAO,EAAC,EACjD,QAASA,EAAS,KAAO,CAAE,aAAc,EAAK,EAAG,CAClD,CACF,EACD,MAAM,CAAE,MAAAC,EAAO,QAAAh5B,EAAS,KAAAiC,EAAM,OAAAkV,CAAM,EAAI,CACtC6hB,EAAM,CAAC,IAAM/2B,EAAK,UAAU,CAAC,EAAG,IAAM,CACpCkV,EAAO,CAAC,qBAAqB,CAAC,CACpC,CAAK,EACD6hB,EAAM,CAAC,IAAMh5B,EAAQ,IAAI,SAAS,CAAC,EAAG,IAAM,CAC1CmX,EAAO,CAAC,kBAAkB,CAAC,CACjC,CAAK,CACF,EACD,QAAS,CAAC,wBAAyB,kBAAmB,mBAAmB,EACzE,GAAI,CACF,iBAAkB,CAChB,CACE,MAAO0hB,GAAI,WAAW,EACtB,QAAS,CAAC,gBAAiB,qBAAqB,CACjD,EACD,CACE,QAAS,CAAC,eAAe,CACjC,CACK,EACD,cAAe,CACb,CACE,MAAOA,GAAI,WAAW,EACtB,QAAS,CAAC,aAAc,qBAAqB,CAC9C,EACD,CACE,QAAS,CAAC,YAAY,CAC9B,CACK,EACD,cAAe,CACb,QAAS,CAAC,YAAY,CAC5B,CACG,EACD,SAAU,CACR,cAAe,CAAC,CAAE,QAAA74B,CAAS,IAAKi5B,GAAgBj5B,EAAQ,IAAI,SAAS,CAAC,EACtE,QAAS,CAAC,CAAE,QAAAA,CAAS,IAAKk5B,GAAUl5B,EAAQ,IAAI,SAAS,CAAC,EAC1D,SAAU,CAAC,CAAE,QAAAA,EAAS,KAAAiC,KAAW,CAAC,CAACA,EAAK,UAAU,GAAKjC,EAAQ,IAAI,kBAAkB,CACtF,EACD,OAAQ,CACN,MAAO,CAAA,CACR,EACD,gBAAiB,CACf,OAAQ,CACN,UAAW,CAAC,CAAE,MAAAiH,KAAY,CAAC,CAACA,EAAM,SACnC,EACD,QAAS,CACP,gBAAgB,CAAE,QAAAjH,EAAS,SAAAmW,EAAU,MAAAP,CAAK,EAAI,CAC5C,GAAI,CAAAO,EAAS,UAAU,EACvB,OAAO3I,GAAW,CAChB,YAAauqB,GAAUniB,CAAK,EAC5B,aAAcoiB,GAAiBpiB,CAAK,EACpC,WAAa3O,GAAUA,EAAM,MAAQ,IACrC,QAAS,IAAMjH,EAAQ,IAAI,SAAU,EAAK,EAC1C,aAAc,IAAMA,EAAQ,IAAI,SAAU,EAAI,EAC9C,WAAY,IAAMA,EAAQ,IAAI,SAAU,EAAK,CACvD,CAAS,CACF,EACD,kBAAkB,CAAE,SAAAmW,EAAU,MAAAP,GAAS,OACrC,GAAI,CAAAO,EAAS,UAAU,EACvB,OAAOohB,GAAkB,CAAE,MAAMp3B,EAAAyV,EAAM,cAAN,YAAAzV,EAAA,KAAAyV,EAAqB,CAAE,CACzD,EACD,sBAAsB,CAAE,QAAA5V,EAAS,MAAA4V,GAAS,CACxC,OAAOpM,GAAiBwuB,GAAiBpiB,CAAK,EAAG,CAC/C,yBAAyBwiB,EAAU,CACjCp4B,EAAQ,IAAI,mBAAoBo4B,CAAQ,CACzC,EACD,aAAc,CACZp4B,EAAQ,IAAI,UAAWA,EAAQ,QAAQ,SAAS,CAAC,CAC7D,CACA,CAAS,CACT,CACK,EACD,QAAS,CACP,WAAW,CAAE,QAAAA,EAAS,MAAAiH,GAAS,CAC7B,UAAWzF,KAAOyF,EAAM,QACtBjH,EAAQ,IAAIwB,EAAKyF,EAAM,QAAQzF,CAAG,CAAC,CAEtC,EACD,iBAAiB,CAAE,QAAAxB,EAAS,SAAAmW,EAAU,MAAAP,CAAK,EAAI,CAC7C,MAAMujB,EAAUnB,GAAiBpiB,CAAK,EACjCujB,IACLzwB,GAAkBywB,EAAShjB,EAAS,SAAS,CAAC,EAC9CgjB,EAAQ,cAAgBF,GAAgBj5B,EAAQ,IAAI,SAAS,CAAC,EAC/D,EACD,oBAAoB,CAAE,QAAAA,EAAS,KAAAiC,GAAQ,CACjCA,EAAK,UAAU,GAAKjC,EAAQ,IAAI,SAAS,IAC3CA,EAAQ,IAAI,UAAW,EAAK,EAC5BA,EAAQ,IAAI,eAAgB,EAAK,EAEpC,EACD,WAAW,CAAE,QAAAA,EAAS,MAAAiH,GAAS,CAC7BjH,EAAQ,IAAI,UAAWiH,EAAM,OAAO,CACrC,EACD,cAAc,CAAE,QAAAjH,EAAS,SAAAmW,GAAY,CACnC,MAAMxN,EAAUswB,GAAgB9iB,EAAS,SAAS,CAAC,EAAI,GAAO,CAACA,EAAS,SAAS,EACjFnW,EAAQ,IAAI,UAAW2I,CAAO,CAC/B,EACD,oBAAoB,CAAE,SAAAwN,EAAU,MAAAP,GAAS,CACvC,eAAe,IAAM,CACnB,MAAMujB,EAAUnB,GAAiBpiB,CAAK,EACtChN,GAA0BuwB,EAAS,CAAE,QAAShjB,EAAS,SAAS,CAAC,CAAE,CAC7E,CAAS,CACT,CACA,CACA,CACA,EACA,SAAS8iB,GAAgBtwB,EAAS,CAChC,OAAOA,IAAY,eACrB,CACA,SAASuwB,GAAUvwB,EAAS,CAC1B,OAAOswB,GAAgBtwB,CAAO,EAAI,GAAQ,CAAC,CAACA,CAC9C,CACYiL,KAAc,CACxB,iBACA,UACA,MACA,WACA,OACA,cACA,KACA,MACA,UACA,OACA,kBACA,WACA,WACA,OACF,CAAC,EC1RI,MAACwlB,GAAkB1B,GAAQ,WAAW,OAAO,ECAlD,SAAS2B,GAAqBxmB,EAAO,CACnC,KAAM,CAAE,MAAA7R,EAAO,SAAAy2B,EAAU,aAAA73B,CAAc,EAAGiT,EACpC,CAACymB,EAAmBC,CAAoB,EAAInlB,EAAAA,SAASxU,CAAY,EACjE0U,EAAatT,IAAU,OACvBkZ,EAAe5F,EAAatT,EAAQs4B,EACpCjlB,EAAWmlB,EAAW,YACzB7kB,IACKL,GAGJilB,EAAqB5kB,CAAM,EACpB8iB,GAAA,YAAAA,EAAW9iB,IAEpB,CAACL,EAAYmjB,CAAQ,CACtB,EACD,MAAO,CAACvd,EAAc7F,CAAQ,CAChC,CChBA,SAASolB,GAASvwB,EAAU4mB,EAAO,GAAI,CACrC,KAAM,CAAE,KAAA4J,EAAO,EAAK,EAAK5J,EACnB6J,EAAcC,GAAa1wB,CAAQ,EACzC,OAAOswB,EAAW,YAEhB,IAAIhnB,IAAS,OACX,OAAIknB,EAAa,eAAe,IAAA,OAAM,OAAAv5B,EAAAw5B,EAAY,UAAZ,YAAAx5B,EAAA,KAAAw5B,EAAsB,GAAGnnB,GAAK,GAC7DrS,EAAAw5B,EAAY,UAAZ,YAAAx5B,EAAA,KAAAw5B,EAAsB,GAAGnnB,EACjC,EACD,CAACknB,EAAMC,CAAW,CACnB,CACH,CACA,SAASC,GAAa54B,EAAO,CAC3B,MAAMkU,EAAMV,EAAM,OAACxT,CAAK,EACxB,OAAAkU,EAAI,QAAUlU,EACPkU,CACT,CCfA,SAAS2kB,GAAiBhnB,EAAQ,GAAI,CACpC,KAAM,CAAE,aAAAjT,EAAc,MAAOk6B,EAAiB,cAAAC,EAAe,SAAA3B,EAAU,SAAAC,EAAU,KAAA94B,EAAM,QAAA+4B,CAAO,EAAKzlB,EAC7FmnB,EAAc,EAAE5B,GAAYC,GAC5B4B,EAAeR,GAASM,EAAe,CAAE,KAAM,EAAI,CAAE,EACrD,CAAC/4B,EAAOqT,CAAQ,EAAIglB,GAAqB,CAC7C,MAAOS,EACP,aAAcl6B,GAAgB,CAAE,EAChC,SAAUq6B,CACd,CAAG,EACKf,EAAagB,GACVl5B,EAAM,KAAMX,GAAM,OAAOA,CAAC,IAAM,OAAO65B,CAAG,CAAC,EAE9CC,EAAeD,GAAQ,CAC3BhB,EAAUgB,CAAG,EAAIE,EAAYF,CAAG,EAAIG,EAASH,CAAG,CACjD,EACKG,EAAYH,GAAQ,CACnBF,IACDd,EAAUgB,CAAG,GACjB7lB,EAASrT,EAAM,OAAOk5B,CAAG,CAAC,EAC3B,EACKE,EAAeF,GAAQ,CACtBF,GACL3lB,EAASrT,EAAM,OAAQX,GAAM,OAAOA,CAAC,IAAM,OAAO65B,CAAG,CAAC,CAAC,CACxD,EAeD,MAAO,CACL,UAAAhB,EACA,MAAAl4B,EACA,KAAAzB,EACA,SAAU,CAAC,CAAC64B,EACZ,SAAU,CAAC,CAACC,EACZ,QAAS,CAAC,CAACC,EACX,SAAAjkB,EACA,SAAAgmB,EACA,YAAAF,EACA,aAxBoBrB,IACb,CACL,QAASA,EAAO,OAAS,KAAOI,EAAUJ,EAAO,KAAK,EAAI,OAC1D,iBAAkB,CACZA,EAAO,OAAS,MAClBqB,EAAYrB,EAAO,KAAK,CAE3B,EACD,KAAAv5B,EACA,SAAA64B,EACA,SAAAC,EACA,QAAAC,CACD,EAaF,CACH,CCnDA,KAAM,CAACgC,GAA8BC,EAAuB,EAAIl7B,EAAc,CAC5E,KAAM,uBACN,SAAU,0BACV,aAAc,4BACd,OAAQ,EACV,CAAC,ECCKm7B,GAAgBxhB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC/C,KAAM,CAACulB,EAAoBC,CAAU,EAAI1gB,EAAgB,EAAGnH,EAAO,CACjE,eACA,QACA,gBACA,WACA,UACA,WACA,MACJ,CAAG,EACK8nB,EAAgBd,GAAiBY,CAAkB,EACzD,OAAuBxE,EAAG,IAACqE,GAA8B,CAAE,MAAOK,EAAe,SAA0B1E,EAAG,IAAClc,EAAI,IAAK,CAAE,IAAA7E,EAAK,KAAM,QAAS,GAAGwlB,EAAY,GAAGtB,GAAgB,MAAK,EAAG,MAAM,KAAO,CAAA,EAAG,CAC1M,CAAC,EACDoB,GAAc,YAAc,gBCnB5B,KAAM,CAACI,GAAeC,EAAe,EAAIx7B,EAAc,CACrD,KAAM,eACN,SAAU,kBACV,aAAc,oBACd,OAAQ,EACV,CAAC,ECAKy7B,GAAsB9hB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACrD,MAAM6gB,EAAWF,GAAoB,EAC/BG,EAAcpjB,EAAWmjB,EAAS,oBAAmB,EAAIljB,CAAK,EAC9DkoB,EAAQF,GAAiB,EAC/B,OAAuB5E,EAAG,IAAClc,EAAI,MAAO,CAAE,mBAAoBghB,GAAA,YAAAA,EAAO,gBAAiB,GAAG/E,EAAa,IAAA9gB,EAAK,CAC3G,CAAC,EACD4lB,GAAoB,YAAc,sBCP7B,MAACE,GAAoBhiB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACnD,KAAM,CAAE,cAAAujB,EAAe,GAAGwC,CAAI,EAAKpoB,EAC7BkjB,EAAWF,GAAoB,EAC/BG,EAAcpjB,EAAWmjB,EAAS,kBAAiB,EAAIkF,CAAI,EAC3DC,EAAYzC,EAAgB1C,EAAS,cAAgBA,EAAS,QACpE,OAAuBE,EAAG,IAAClc,EAAI,IAAK,CAAE,GAAGic,EAAa,OAAQ,CAACkF,EAAW,IAAAhmB,EAAK,CACjF,CAAC,EACD8lB,GAAkB,YAAc,oBCP3B,MAACG,GAAgBniB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC/C,MAAM6gB,EAAWF,GAAoB,EAC/BG,EAAcpjB,EAAWmjB,EAAS,cAAa,EAAIljB,CAAK,EAC9D,OAAuBojB,EAAAA,IAAIlc,EAAI,KAAM,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC9D,CAAC,EACDimB,GAAc,YAAc,gBCH5B,MAAMC,GAAc,CAACC,EAAW,KAAO,CACrC,MAAMV,EAAgBJ,GAAyB,EACzCQ,EAAQF,GAAiB,EACzBhoB,EAAQgD,EAAAA,QAAQ,IAAM,OAC1B,OAAOjD,EAAWyoB,GAAUl7B,EAAAw6B,GAAA,YAAAA,EAAe,aAAa,CAAE,MAAOU,EAAS,UAA9C,KAAAl7B,EAA0D,EAAE,CAC5F,EAAK,CAACk7B,EAAUV,CAAa,CAAC,EACtB9uB,EAAKyvB,EAAAA,MAAO,EACZ,CAAE,YAAAjoB,CAAa,EAAGsH,GAAuB,EACzC,CAAE,IAAA7S,CAAK,EAAG+S,GAAkB,EAC5B0gB,EAAe,CACnB,GAAA1vB,EACA,IAAK,CACH,MAAOkvB,GAAA,YAAAA,EAAO,IAAI,MAClB,YAAaA,GAAA,YAAAA,EAAO,IAAI,OACzB,EACD,IAAAjzB,EACA,SAAUizB,GAAA,YAAAA,EAAO,SACjB,SAAUA,GAAA,YAAAA,EAAO,SACjB,QAASA,GAAA,YAAAA,EAAO,QAChB,SAAUA,GAAA,YAAAA,EAAO,SACjB,YAAA1nB,EACA,GAAGR,CACJ,EACKqlB,EAAUziB,GAAW+lB,GAAkBD,CAAY,EACzD,OAAOE,GAAiBvD,EAAS7f,EAAc,CACjD,ECzBMqjB,GAAe1iB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC9C,KAAM,CAACymB,EAAkBjB,CAAU,EAAI1gB,EAAgB,EAAGnH,EAAO,CAC/D,UACA,iBACA,WACA,OACA,KACA,MACA,UACA,OACA,kBACA,WACA,WACA,OACJ,CAAG,EACKkjB,EAAWqF,GAAYO,CAAgB,EACvC3F,EAAcpjB,EAAWmjB,EAAS,aAAY,EAAI2E,CAAU,EAClE,OAAuBzE,EAAG,IAACL,GAAkB,CAAE,MAAOG,EAAU,SAA0BE,EAAAA,IAAIlc,EAAI,MAAO,CAAE,GAAGic,EAAa,IAAA9gB,CAAG,CAAE,CAAC,CAAE,CACrI,CAAC,EACDwmB,GAAa,YAAc,eCpBtB,MAACE,GAAuB5iB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACtD,KAAM,CAAC,CAAE,MAAO6gB,GAAY2E,CAAU,EAAI1gB,IAAmBnH,EAAO,CAAC,OAAO,CAAC,EACvEmjB,EAAcpjB,EAAWmjB,EAAS,aAAY,EAAI2E,CAAU,EAClE,OAAuBzE,EAAG,IAACL,GAAkB,CAAE,MAAOG,EAAU,SAA0BE,EAAAA,IAAIlc,EAAI,MAAO,CAAE,GAAGic,EAAa,IAAA9gB,CAAG,CAAE,CAAC,CAAE,CACrI,CAAC,EACD0mB,GAAqB,YAAc,uBCVnC,KAAM,CAACC,GAAkBC,EAAkB,EAAIz8B,EAAc,CAC3D,KAAM,kBACN,SAAU,qBACV,aAAc,sBAChB,CAAC,ECJK08B,GAAsBlpB,GAAUmH,EAAgB,EAAGnH,EAAO,CAC9D,YACA,YACA,iBACA,UACA,uBACA,eACF,CAAC,ECLD,SAASolB,GAAQC,EAAS8D,EAAY,CACpC,KAAM,CAAE,MAAAnlB,EAAO,KAAAK,EAAM,QAAAlX,CAAS,EAAGk4B,EAC3B+D,EAAUplB,EAAM,QAAQ,UAAW,kBAAkB,EAC3D,MAAO,CACL,KAAM,CAAC7W,EAAQ,IAAI,SAAS,EAC5B,QAAAi8B,EACA,QAAQ93B,EAAM,CACPA,GACL+S,EAAK,CAAE,KAAM,WAAY,KAAA/S,CAAI,CAAE,CAChC,EACD,SAAU,CACR+S,EAAK,CAAE,KAAM,UAAW,CAC9B,CACG,CACH,CACA,IAAIxB,GAAwB,CAC1B,MAAM,CAAE,MAAOojB,GAAU,CACvB,MAAO,CAAE,GAAGA,EAAQ,QAAS,CAAC,CAACA,EAAO,OAAS,CAChD,EACD,aAAa,CAAE,KAAA72B,GAAQ,CACrB,OAAOA,EAAK,SAAS,EAAI,UAAY,WACtC,EACD,MAAO,CACL,MAAO,CACL,KAAM,KACN,OAAQ,IACT,CACF,EACD,QAAQ,CAAE,SAAA82B,GAAY,CACpB,MAAO,CACL,qBAAsBA,EAAS,KAAO,CAAE,aAAc,IAAM,EAAC,EAC7D,kBAAmBA,EAAS,KAAO,CAAE,aAAc,IAAM,EAAC,EAC1D,QAASA,EAAS,KAAO,CAAE,aAAc,EAAO,EAAC,EACjD,QAASA,EAAS,KAAO,CACvB,KAAM,GACN,aAAc,EACtB,EAAQ,CACH,CACF,EACD,KAAM,CAAC,eAAgB,aAAa,EACpC,MAAM,CAAE,MAAAC,EAAO,OAAA7hB,EAAQ,KAAAlV,CAAI,EAAI,CAC7B+2B,EAAM,CAAC,IAAM/2B,EAAK,SAAS,CAAC,EAAG,IAAM,CACnCkV,EAAO,CAAC,aAAc,cAAc,CAAC,CAC3C,CAAK,CACF,EACD,GAAI,CACF,WAAY,CACV,QAAS,CAAC,UAAW,WAAW,CACtC,CACG,EACD,OAAQ,CACN,QAAS,CACP,GAAI,CACF,QAAS,CACP,OAAQ,YACR,QAAS,CAAC,yBAA0B,sBAAsB,CAC3D,EACD,kBAAmB,CACjB,OAAQ,kBAClB,CACA,CACK,EACD,iBAAkB,CAChB,QAAS,CAAC,sBAAsB,EAChC,GAAI,CACF,MAAO,CACL,OAAQ,UACR,QAAS,CAAC,sBAAsB,CACjC,EACD,QAAS,CACP,OAAQ,YACR,QAAS,CAAC,yBAA0B,sBAAsB,CACpE,CACA,CACK,EACD,UAAW,CACT,GAAI,CACF,MAAO,CACL,OAAQ,UACR,QAAS,CAAC,sBAAsB,CAC1C,CACA,CACA,CACG,EACD,gBAAiB,CACf,QAAS,CACP,WAAY,CAAC,CAAE,QAAAnX,KAAc,CACvBA,EAAQ,IAAI,SAAS,GACzB,eAAe,IAAM,CACnBA,EAAQ,IAAI,UAAW,EAAI,CACrC,CAAS,CACF,EACD,aAAc,CAAC,CAAE,QAAAA,KAAc,CAC7BA,EAAQ,IAAI,UAAW,EAAK,CAC7B,EACD,YAAa,CAAC,CAAE,KAAAiV,KAAW,CACzBA,EAAK,IAAI,OAAQ,IAAI,EACrBA,EAAK,IAAI,SAAU,IAAI,CACxB,EACD,qBAAsB,CAAC,CAAE,KAAAhT,KAAW,QAClC9B,EAAA8B,EAAK,gBAAgB,IAArB,MAAA9B,GACD,EACD,QAAS,CAAC,CAAE,KAAA8U,EAAM,MAAAhO,KAAY,CAC5BgO,EAAK,IAAI,OAAQhO,EAAM,IAAI,CAC5B,EACD,UAAW,CAAC,CAAE,KAAAgO,EAAM,MAAAhO,KAAY,CAC9BgO,EAAK,IAAI,SAAUrP,GAAiBqB,EAAM,IAAI,CAAC,CAChD,EACD,aAAc,CAAC,CAAE,QAAAjH,EAAS,KAAAiV,EAAM,KAAAiC,EAAM,KAAAjV,CAAI,IAAO,CAC/C,MAAMi6B,EAAcj6B,EAAK,SAAS,EAClC,GAAIi6B,EACF,OAAOhlB,EAAK,CAAE,KAAM,QAAS,IAAK,kBAAkB,CAAE,EAExD,MAAM/S,EAAO8Q,EAAK,IAAI,MAAM,EAC5B,GAAI,CAACinB,IAAe/3B,GAAA,YAAAA,EAAM,cAAc,mBAAoB,SAC1D,OAAO+S,EAAK,CAAE,KAAM,UAAW,IAAK,kBAAkB,CAAE,EAE1DpL,EAAI,IAAM,SACR,MAAMqwB,EAAgBC,GAAiBnnB,EAAK,IAAI,QAAQ,CAAC,EACzDjV,EAAQ,IAAI,uBAAwBm8B,CAAa,EAC7CA,IAAkB,QAAUA,IAAkBn8B,EAAQ,IAAI,mBAAmB,KAAKG,EAAA8U,EAAK,IAAI,QAAQ,IAAjB,YAAA9U,EAAoB,WAAY,UAAUmF,EAAA2P,EAAK,IAAI,QAAQ,IAAjB,YAAA3P,EAAoB,qBAAsB,KACxK4R,EAAK,CAAE,KAAM,UAAW,IAAK,kBAAkB,CAAE,EAEjDA,EAAK,CAAE,KAAM,kBAAmB,CAE5C,CAAS,CACF,EACD,qBAAsB,CAAC,CAAE,QAAAlX,EAAS,KAAAiV,KAAW,CAC3CnJ,EAAI,IAAM,CACR9L,EAAQ,IAAI,oBAAqBo8B,GAAiBnnB,EAAK,IAAI,QAAQ,CAAC,CAAC,CAC/E,CAAS,CACF,EACD,uBAAwB,CAAC,CAAE,QAAAjV,KAAc,CACvCA,EAAQ,IAAI,oBAAqB,IAAI,CAC7C,CACK,EACD,QAAS,CACP,qBAAsB,CAAC,CAAE,QAAAA,EAAS,KAAAiV,EAAM,KAAAiC,CAAI,IAAO,CACjD,MAAM/S,EAAO8Q,EAAK,IAAI,MAAM,EAC5B,GAAI,CAAC9Q,EAAM,OACX,MAAMk4B,EAAWp1B,GAAU,aACV5B,GAAAC,GAAAnF,EAAA8G,EAAM,eAAN,YAAA9G,EAAA,KAAA8G,KAAA,YAAA3B,EAAyB,KAAzB,KAAAD,EAA+B4B,EAAM,UACrC9C,GACbnE,EAAQ,IAAI,oBAAqBo8B,GAAiBnnB,EAAK,IAAI,QAAQ,CAAC,CAAC,CAExE,EACKqnB,EAASr1B,GAAU,CACvB,MAAMk1B,EAAgBC,GAAiBnnB,EAAK,IAAI,QAAQ,CAAC,EAC1C9N,EAAeF,CAAK,IACpB9C,GAAQg4B,IAAkBn8B,EAAQ,IAAI,sBAAsB,GACzEkX,EAAK,CAAE,KAAM,UAAW,IAAK,cAAc,CAAE,CAEhD,EACD/S,EAAK,iBAAiB,iBAAkBk4B,CAAO,EAC/Cl4B,EAAK,iBAAiB,kBAAmBm4B,CAAK,EAC9Cn4B,EAAK,iBAAiB,eAAgBm4B,CAAK,EAC3C,MAAMC,EAAgBrrB,GAAS/M,EAAM,CAAE,kBAAmB,UAAU,CAAE,EACtE,MAAO,IAAM,CACXA,EAAK,oBAAoB,iBAAkBk4B,CAAO,EAClDl4B,EAAK,oBAAoB,kBAAmBm4B,CAAK,EACjDn4B,EAAK,oBAAoB,eAAgBm4B,CAAK,EAC9C7wB,GAAS,IAAM8wB,GAAe,CAC/B,CACT,CACA,CACA,CACA,EACA,SAASH,GAAiBjL,EAAQ,CAChC,OAAOA,GAAA,YAAAA,EAAQ,gBAAiB,MAClC,CACYvd,GAAW,EAAG,CAAC,iBAAkB,UAAW,WAAW,CAAC,ECzKpE,MAAM4oB,GAAc,CAAC3pB,EAAQ,KAAO,CAClC,KAAM,CAAE,UAAA4pB,EAAW,cAAAC,EAAe,QAAAT,EAAS,qBAAAU,EAAuB,GAAO,GAAG1B,CAAI,EAAKpoB,EAC/E+pB,EAAiBpoB,EAAM,OAAC,EAAK,EAC7B+mB,EAAe,CACnB,GAAGN,EACH,QAAAgB,EACA,eAAgBxC,GAAS5mB,EAAM,cAAc,CAC9C,EACKqlB,EAAUziB,GAAWonB,GAAkBtB,CAAY,EACnDuB,EAAMC,GAAiB7E,CAAuB,EAChD4E,EAAI,UACNF,EAAe,QAAU,IAE3B,MAAMI,EAAY,CAACF,EAAI,SAAW,CAACF,EAAe,SAAWH,GAAaC,GAAiB,CAACI,EAAI,SAAWF,EAAe,QACpHK,EAAmB,KAAO,CAC9B,aAAcH,EAAI,MAAQH,EAAuB,OAASV,EAAU,OAAS,SAC7E,OAAQ,CAACa,EAAI,OACjB,GACE,MAAO,CACL,IAAKA,EAAI,QACT,iBAAAG,EACA,QAASH,EAAI,QACb,UAAAE,CACD,CACH,EC5BA,IAAIE,GAAY,OAAO,eACnBC,GAAkB,CAACn7B,EAAKR,EAAKR,IAAUQ,KAAOQ,EAAMk7B,GAAUl7B,EAAKR,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAR,CAAK,CAAE,EAAIgB,EAAIR,CAAG,EAAIR,EACtJo8B,EAAgB,CAACp7B,EAAKR,EAAKR,IAAUm8B,GAAgBn7B,EAAK,OAAOR,GAAQ,SAAWA,EAAM,GAAKA,EAAKR,CAAK,EACzGq8B,GAAW,CACb,YAAYv8B,EAAM,CAChB,OAAI,OAAOA,GAAS,SAAiBA,EACjCa,GAASb,CAAI,GAAKiB,GAAQjB,EAAM,OAAO,EAAUA,EAAK,MACnD,EACR,EACD,aAAaA,EAAM,CACjB,OAAI,OAAOA,GAAS,SAAiBA,EACjCa,GAASb,CAAI,GAAKiB,GAAQjB,EAAM,OAAO,EAAUA,EAAK,MACnDu8B,GAAS,YAAYv8B,CAAI,CACjC,EACD,eAAeA,EAAM,CACnB,OAAIa,GAASb,CAAI,GAAKiB,GAAQjB,EAAM,UAAU,EAAU,CAAC,CAACA,EAAK,SACxD,EACX,CACA,EACIw8B,GAAiB,MAAMC,EAAgB,CACzC,YAAYj+B,EAAS,CACnB,KAAK,QAAUA,EAIf89B,EAAc,KAAM,OAAO,EAC3BA,EAAc,KAAM,OAAS18B,GACpB,IAAI68B,GAAgB,CAAE,GAAG,KAAK,QAAS,MAAO78B,GAAA,KAAAA,EAAS,CAAC,GAAG,KAAK,KAAK,CAAC,CAAE,CAChF,EACD08B,EAAc,KAAM,UAAYI,GACvBn8B,GAAQ,KAAK,MAAOm8B,EAAM,KAAK,CACvC,EAIDJ,EAAc,KAAM,WAAa18B,GACxB,KAAK,KAAKA,CAAK,CACvB,EAID08B,EAAc,KAAM,YAAa,CAAC18B,EAAQ,KAAK,QACtC,MAAM,KAAKA,CAAK,EAAE,IAAKI,GAAS,KAAK,aAAaA,CAAI,CAAC,EAAE,OAAO,OAAO,CAC/E,EAIDs8B,EAAc,KAAM,OAASp8B,GAAU,CACrC,GAAIA,GAAS,KAAM,OAAO,KAC1B,MAAMoC,EAAQ,KAAK,MAAM,UAAWtC,GAAS,KAAK,aAAaA,CAAI,IAAME,CAAK,EAC9E,OAAOoC,GAAS,KAAO,KAAK,MAAMA,CAAK,EAAI,IACjD,CAAK,EAIDg6B,EAAc,KAAM,WAAatmB,GACxB,MAAM,KAAKA,CAAM,EAAE,IAAK9V,GAAU,KAAK,KAAKA,CAAK,CAAC,EAAE,OAAQF,GAASA,GAAQ,IAAI,CACzF,EAIDs8B,EAAc,KAAM,KAAOh6B,GAAU,OACnC,OAAOjD,EAAA,KAAK,MAAMiD,CAAK,IAAhB,KAAAjD,EAAqB,IAClC,CAAK,EACDi9B,EAAc,KAAM,SAAU,CAACK,EAAQC,IAAW,CAChD,MAAMC,EAAS,KAAK,QAAQF,CAAM,EAC5BG,EAAS,KAAK,QAAQF,CAAM,EAClC,OAAQC,GAAA,KAAAA,EAAU,IAAMC,GAAA,KAAAA,EAAU,EACxC,CAAK,EAIDR,EAAc,KAAM,OAAStmB,GACpB,CAAC,GAAGA,CAAM,EAAE,KAAK,KAAK,OAAO,KAAK,IAAI,CAAC,CAC/C,EAIDsmB,EAAc,KAAM,eAAiBt8B,GAAS,WAC5C,OAAIA,GAAQ,KAAa,MAClBuE,GAAAC,GAAAnF,EAAA,KAAK,SAAQ,cAAb,YAAAmF,EAAA,KAAAnF,EAA2BW,KAA3B,KAAAuE,EAAoCg4B,GAAS,YAAYv8B,CAAI,CAC1E,CAAK,EAIDs8B,EAAc,KAAM,kBAAoBt8B,GAAS,WAC/C,OAAIA,GAAQ,KAAa,IAClBuE,GAAAC,GAAAnF,EAAA,KAAK,SAAQ,iBAAb,YAAAmF,EAAA,KAAAnF,EAA8BW,KAA9B,KAAAuE,EAAuCg4B,GAAS,eAAev8B,CAAI,CAChF,CAAK,EAIDs8B,EAAc,KAAM,gBAAkBt8B,GAAS,WAC7C,OAAIA,GAAQ,KAAa,MAClBuE,GAAAC,GAAAnF,EAAA,KAAK,SAAQ,eAAb,YAAAmF,EAAA,KAAAnF,EAA4BW,KAA5B,KAAAuE,EAAqCg4B,GAAS,aAAav8B,CAAI,CAC5E,CAAK,EAIDs8B,EAAc,KAAM,YAAcp8B,GAC5BA,GAAS,KAAa,KACnB,KAAK,cAAc,KAAK,KAAKA,CAAK,CAAC,CAC3C,EAIDo8B,EAAc,KAAM,iBAAkB,CAAC18B,EAAOm9B,EAAY,OACjD,MAAM,KAAKn9B,CAAK,EAAE,IAAKI,GAAS,KAAK,cAAcA,CAAI,CAAC,EAAE,OAAO,OAAO,EAAE,KAAK+8B,CAAS,CAChG,EAIDT,EAAc,KAAM,gBAAiB,CAACp8B,EAAO68B,IACpC,KAAK,eAAe,KAAK,SAAS78B,CAAK,EAAG68B,CAAS,CAC3D,EAIDT,EAAc,KAAM,MAAQp8B,GACnB,KAAK,QAAQA,CAAK,IAAM,EAChC,EAIDo8B,EAAc,KAAM,UAAYt8B,GAC1BA,GAAQ,KAAa,GAClB,KAAK,IAAI,KAAK,aAAaA,CAAI,CAAC,CACxC,EAIDs8B,EAAc,KAAM,eAAgB,CAACp8B,EAAO88B,EAAO,EAAGxiB,EAAQ,KAAU,CACtE,IAAIlY,EAAQ,KAAK,QAAQpC,CAAK,EAC9B,GAAIoC,IAAU,GAAI,OAAO,KAEzB,IADAA,EAAQkY,EAAQ,KAAK,IAAIlY,EAAQ06B,EAAM,KAAK,KAAO,CAAC,EAAI16B,EAAQ06B,EACzD16B,GAAS,KAAK,MAAQ,KAAK,gBAAgB,KAAK,GAAGA,CAAK,CAAC,GAAGA,IACnE,OAAO,KAAK,aAAa,KAAK,GAAGA,CAAK,CAAC,CAC7C,CAAK,EAIDg6B,EAAc,KAAM,mBAAoB,CAACp8B,EAAO88B,EAAO,EAAGxiB,EAAQ,KAAU,CAC1E,IAAIlY,EAAQ,KAAK,QAAQpC,CAAK,EAC9B,GAAIoC,IAAU,GAAI,OAAO,KAEzB,IADAA,EAAQkY,EAAQ,KAAK,IAAIlY,EAAQ06B,EAAM,CAAC,EAAI16B,EAAQ06B,EAC7C16B,GAAS,GAAK,KAAK,gBAAgB,KAAK,GAAGA,CAAK,CAAC,GAAGA,IAC3D,OAAO,KAAK,aAAa,KAAK,GAAGA,CAAK,CAAC,CAC7C,CAAK,EAIDg6B,EAAc,KAAM,UAAYp8B,GAC1BA,GAAS,KAAa,GACnB,KAAK,MAAM,UAAWF,GAAS,KAAK,aAAaA,CAAI,IAAME,CAAK,CACxE,EACDo8B,EAAc,KAAM,YAAa,CAACpsB,EAAMsF,IAAY,CAClD,IAAI5V,EAAQ4V,GAAW,KAAOrT,GAAK,KAAK,MAAO,KAAK,QAAQqT,CAAO,CAAC,EAAI,KAAK,MAE7E,OADoBtF,EAAK,SAAW,IACnBtQ,EAAQA,EAAM,OAAQI,GAAS,KAAK,aAAaA,CAAI,IAAMwV,CAAO,GAC5E5V,EAAM,KAAMI,GAAS8P,GAAM,KAAK,cAAc9P,CAAI,EAAGkQ,CAAI,CAAC,CACvE,CAAK,EAIDosB,EAAc,KAAM,SAAU,CAACW,EAAaz+B,IAAY,CACtD,KAAM,CAAE,MAAAuX,EAAO,aAAAqD,EAAc,QAAAxI,EAAU,GAAK,EAAGpS,EACzCqS,EAASkF,EAAM,UAAYknB,EAE3BC,EADarsB,EAAO,OAAS,GAAK,MAAM,KAAKA,CAAM,EAAE,MAAOlB,GAASA,IAASkB,EAAO,CAAC,CAAC,EAClEA,EAAO,CAAC,EAAIA,EACjC7Q,EAAO,KAAK,UAAUk9B,EAAO9jB,CAAY,EACzClZ,EAAQ,KAAK,aAAaF,CAAI,EACpC,SAAS8I,GAAU,CACjB,aAAaiN,EAAM,KAAK,EACxBA,EAAM,MAAQ,EACtB,CACM,SAASjF,EAAO+C,EAAQ,CACtBkC,EAAM,UAAYlC,EAClB/K,EAAS,EACL+K,IAAW,KACbkC,EAAM,MAAQ,CAAC,WAAW,IAAM,CAC9BjF,EAAO,EAAE,EACThI,EAAS,CACV,EAAE8H,CAAO,EAEpB,CACM,OAAAE,EAAOD,CAAM,EACN3Q,CACb,CAAK,EACDo8B,EAAc,KAAM,SAAU,CAACp8B,EAAOF,IAAS,CAC7C,IAAIsC,EAAQ,KAAK,MAAM,UAAW66B,GAAU,KAAK,aAAaA,CAAK,IAAMj9B,CAAK,EAC9E,OAAIoC,IAAU,GAAW,KAClB,KAAK,KAAK,CAAC,GAAG,KAAK,MAAM,MAAM,EAAGA,CAAK,EAAGtC,EAAM,GAAG,KAAK,MAAM,MAAMsC,EAAQ,CAAC,CAAC,CAAC,CAC5F,CAAK,EACDg6B,EAAc,KAAM,SAAU,CAACh6B,KAAU1C,IAChC,KAAK,KAAKw9B,GAAO,KAAK,MAAO96B,EAAO,GAAG1C,CAAK,CAAC,CACrD,EACD08B,EAAc,KAAM,eAAgB,CAACp8B,KAAUN,IAAU,CACvD,IAAIy9B,EAAU,KAAK,QAAQn9B,CAAK,EAChC,GAAIm9B,IAAY,GACd,GAAI,KAAK,MAAM,SAAW,EAAGA,EAAU,MAClC,QAAO,KAEd,OAAO,KAAK,KAAKD,GAAO,KAAK,MAAOC,EAAS,GAAGz9B,CAAK,CAAC,CAC5D,CAAK,EACD08B,EAAc,KAAM,cAAe,CAACp8B,KAAUN,IAAU,CACtD,IAAIy9B,EAAU,KAAK,QAAQn9B,CAAK,EAChC,GAAIm9B,IAAY,GACd,GAAI,KAAK,MAAM,SAAW,EAAGA,EAAU,MAClC,QAAO,KAEd,OAAO,KAAK,KAAKD,GAAO,KAAK,MAAOC,EAAU,EAAG,GAAGz9B,CAAK,CAAC,CAChE,CAAK,EACD08B,EAAc,KAAM,UAAW,IAAI18B,IAC1B,KAAK,KAAKw9B,GAAO,KAAK,MAAO,EAAG,GAAGx9B,CAAK,CAAC,CACjD,EACD08B,EAAc,KAAM,SAAU,IAAI18B,IACzB,KAAK,KAAKw9B,GAAO,KAAK,MAAO,KAAK,MAAM,OAAQ,GAAGx9B,CAAK,CAAC,CACjE,EACD08B,EAAc,KAAM,SAAU,IAAIgB,IAAkB,CAClD,MAAMtnB,EAASsnB,EAAc,IAC1BC,GAAgB,OAAOA,GAAgB,SAAWA,EAAc,KAAK,aAAaA,CAAW,CAC/F,EACD,OAAO,KAAK,KACV,KAAK,MAAM,OAAQv9B,GAAS,CAC1B,MAAME,EAAQ,KAAK,aAAaF,CAAI,EACpC,OAAIE,GAAS,KAAa,GACnB,CAAC8V,EAAO,SAAS9V,CAAK,CAC9B,CAAA,CACF,CACP,CAAK,EACDo8B,EAAc,KAAM,OAAQ,CAACp8B,EAAOm9B,IAAY,CAC9C,MAAMG,EAAY,KAAK,QAAQt9B,CAAK,EACpC,OAAIs9B,IAAc,GAAW,KACtB,KAAK,KAAKC,GAAK,KAAK,MAAO,CAACD,CAAS,EAAGH,CAAO,CAAC,CAC7D,CAAK,EACDf,EAAc,KAAM,UAAW,CAACkB,EAAWH,IAClC,KAAK,KAAKI,GAAK,KAAK,MAAO,CAACD,CAAS,EAAGH,CAAO,CAAC,CACxD,EACDf,EAAc,KAAM,eAAgB,CAACl8B,EAAGC,IAAM,CAC5C,MAAMw8B,EAAS,KAAK,QAAQz8B,CAAC,EACvB08B,EAAS,KAAK,QAAQz8B,CAAC,EAC7B,OAAIw8B,EAASC,EAAe,GACxBD,EAASC,EAAe,EACrB,CACb,CAAK,EACDR,EAAc,KAAM,QAAS,CAACoB,EAAMC,IAAO,CACzC,IAAIn9B,EAAO,CAAE,EACTE,EAAMg9B,EACV,KAAOh9B,GAAO,MAAM,CAGlB,GAFW,KAAK,KAAKA,CAAG,GACdF,EAAK,KAAKE,CAAG,EACnBA,IAAQi9B,EAAI,OAAOn9B,EACvBE,EAAM,KAAK,aAAaA,CAAG,CACnC,CACM,MAAO,CAAE,CACf,CAAK,EACD47B,EAAc,KAAM,gBAAiB,CAACoB,EAAMC,IACtCD,GAAQC,EACN,KAAK,aAAaD,EAAMC,CAAE,GAAK,EAC1B,KAAK,MAAMD,EAAMC,CAAE,EAErB,KAAK,MAAMA,EAAID,CAAI,EAErB,CAAE,CACV,EACDpB,EAAc,KAAM,WAAY,IAAM,CACpC,IAAI13B,EAAS,GACb,UAAW5E,KAAQ,KAAK,MAAO,CAC7B,MAAME,EAAQ,KAAK,aAAaF,CAAI,EAC9B49B,EAAQ,KAAK,cAAc59B,CAAI,EAC/Bs3B,EAAW,KAAK,gBAAgBt3B,CAAI,EACpC69B,EAAa,CAAC39B,EAAO09B,EAAOtG,CAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EACpE1yB,GAAUi5B,EAAa,GAC/B,CACM,OAAOj5B,CACb,CAAK,EACD03B,EAAc,KAAM,SAAU,KACrB,CACL,KAAM,KAAK,KACX,MAAO,KAAK,WACZ,KAAM,KAAK,SACZ,EACF,EACD,KAAK,MAAQ,CAAC,GAAG99B,EAAQ,KAAK,CAClC,CAIE,IAAI,MAAO,CACT,OAAO,KAAK,MAAM,MACtB,CAIE,IAAI,YAAa,CACf,IAAI8D,EAAQ,EACZ,KAAO,KAAK,gBAAgB,KAAK,GAAGA,CAAK,CAAC,GAAGA,IAC7C,OAAO,KAAK,aAAa,KAAK,GAAGA,CAAK,CAAC,CAC3C,CAIE,IAAI,WAAY,CACd,IAAIA,EAAQ,KAAK,KAAO,EACxB,KAAO,KAAK,gBAAgB,KAAK,GAAGA,CAAK,CAAC,GAAGA,IAC7C,OAAO,KAAK,aAAa,KAAK,GAAGA,CAAK,CAAC,CAC3C,CACE,EAAE,OAAO,QAAQ,GAAI,CACnB,MAAO,KAAK,KAChB,CACA,EACIwN,GAAQ,CAAC8tB,EAAOV,IACX,CAAC,EAACU,GAAA,MAAAA,EAAO,cAAc,WAAWV,EAAM,gBAE7C/6B,GAAO,CAAC5C,EAAG6C,IACN7C,EAAE,IAAI,CAAC8C,EAAGC,IAAU/C,GAAG,KAAK,IAAI6C,EAAK,CAAC,EAAIE,GAAS/C,EAAE,MAAM,CAAC,EAKrE,SAAS69B,GAAOx9B,EAAO0C,KAAU0T,EAAQ,CACvC,MAAO,CAAC,GAAGpW,EAAM,MAAM,EAAG0C,CAAK,EAAG,GAAG0T,EAAQ,GAAGpW,EAAM,MAAM0C,CAAK,CAAC,CACpE,CACA,SAASm7B,GAAK79B,EAAOk+B,EAAST,EAAS,CACrCS,EAAU,CAAC,GAAGA,CAAO,EAAE,KAAK,CAAC19B,EAAGC,IAAMD,EAAIC,CAAC,EAC3C,MAAM09B,EAAcD,EAAQ,IAAKx9B,GAAMV,EAAMU,CAAC,CAAC,EAC/C,QAASA,EAAIw9B,EAAQ,OAAS,EAAGx9B,GAAK,EAAGA,IACvCV,EAAQ,CAAC,GAAGA,EAAM,MAAM,EAAGk+B,EAAQx9B,CAAC,CAAC,EAAG,GAAGV,EAAM,MAAMk+B,EAAQx9B,CAAC,EAAI,CAAC,CAAC,EAExE,OAAA+8B,EAAU,KAAK,IAAI,EAAGA,EAAUS,EAAQ,OAAQx9B,GAAMA,EAAI+8B,CAAO,EAAE,MAAM,EAClE,CAAC,GAAGz9B,EAAM,MAAM,EAAGy9B,CAAO,EAAG,GAAGU,EAAa,GAAGn+B,EAAM,MAAMy9B,CAAO,CAAC,CAC7E,CC3UK,MAACW,GAAwBx/B,GAAY,IAAIg+B,GAAeh+B,CAAO,ECDpE,IAAIy/B,GAA6B,IAAI,QACjCC,GAAoC,IAAI,QACxCC,GAAY,CAAE,EACdC,GAAY,EACZC,GAAch7B,GAASA,IAASA,EAAK,MAAQg7B,GAAWh7B,EAAK,UAAU,GACvEi7B,GAAiB,CAACt6B,EAAQu6B,IAAYA,EAAQ,IAAKj3B,GAAW,CAChE,GAAItD,EAAO,SAASsD,CAAM,EAAG,OAAOA,EACpC,MAAMk3B,EAAkBH,GAAW/2B,CAAM,EACzC,OAAIk3B,GAAmBx6B,EAAO,SAASw6B,CAAe,EAC7CA,GAET,QAAQ,MAAM,+BAAgCl3B,EAAQ,0BAA2BtD,EAAQ,iBAAiB,EACnG,KACT,CAAC,EAAE,OAAQ8Y,GAAM,EAAQA,CAAE,EACvB2hB,GAAiBp7B,GACfA,EAAK,YAAc,wBACnBA,EAAK,YAAc,UACnBA,EAAK,aAAa,WAAW,EAAU,GACpCA,EAAK,QAAQ,uBAAuB,EAEzCq7B,GAAkB,CAACC,EAAgB5sB,IAAU,CAC/C,KAAM,CAAE,WAAAhG,EAAY,WAAA6yB,EAAY,iBAAAC,CAAgB,EAAI9sB,EAC9CwsB,EAAUD,GAAevyB,EAAY,MAAM,QAAQ4yB,CAAc,EAAIA,EAAiB,CAACA,CAAc,CAAC,EAC5GR,GAAUS,CAAU,IAAMT,GAAUS,CAAU,EAAoB,IAAI,SACtE,MAAME,EAAgBX,GAAUS,CAAU,EACpCG,EAAc,CAAE,EAChBC,EAAiC,IAAI,IACrCC,EAAiB,IAAI,IAAIV,CAAO,EAChCW,EAAQj8B,GAAO,CACf,CAACA,GAAM+7B,EAAe,IAAI/7B,CAAE,IAChC+7B,EAAe,IAAI/7B,CAAE,EACrBi8B,EAAKj8B,EAAG,UAAU,EACnB,EACDs7B,EAAQ,QAAQW,CAAI,EACpB,MAAMC,EAAQn7B,GAAW,CACnB,CAACA,GAAUi7B,EAAe,IAAIj7B,CAAM,GAGxC,MAAM,UAAU,QAAQ,KAAKA,EAAO,SAAWX,GAAS,CACtD,GAAI27B,EAAe,IAAI37B,CAAI,EACzB87B,EAAK97B,CAAI,MAET,IAAI,CACF,GAAIo7B,GAAcp7B,CAAI,EAAG,OAEzB,MAAM+7B,EADO/7B,EAAK,aAAaw7B,CAAgB,IAChB,OACzBQ,GAAgBpB,GAAW,IAAI56B,CAAI,GAAK,GAAK,EAC7Ci8B,GAAeR,EAAc,IAAIz7B,CAAI,GAAK,GAAK,EACrD46B,GAAW,IAAI56B,EAAMg8B,CAAY,EACjCP,EAAc,IAAIz7B,EAAMi8B,CAAW,EACnCP,EAAY,KAAK17B,CAAI,EACjBg8B,IAAiB,GAAKD,GACxBlB,GAAkB,IAAI76B,EAAM,EAAI,EAE9Bi8B,IAAgB,GAClBj8B,EAAK,aAAau7B,EAAY,EAAE,EAE7BQ,GACH/7B,EAAK,aAAaw7B,EAAkB,MAAQ,CAE/C,OAAQ/6B,EAAG,CACV,QAAQ,MAAM,2CAA4CT,EAAMS,CAAC,CAC3E,CAEA,CAAK,CACF,EACD,OAAAq7B,EAAKpzB,CAAU,EACfizB,EAAe,MAAO,EACtBZ,KACO,IAAM,CACXW,EAAY,QAAS17B,GAAS,CAC5B,MAAMg8B,EAAepB,GAAW,IAAI56B,CAAI,EAAI,EACtCi8B,EAAcR,EAAc,IAAIz7B,CAAI,EAAI,EAC9C46B,GAAW,IAAI56B,EAAMg8B,CAAY,EACjCP,EAAc,IAAIz7B,EAAMi8B,CAAW,EAC9BD,IACEnB,GAAkB,IAAI76B,CAAI,GAC7BA,EAAK,gBAAgBw7B,CAAgB,EAEvCX,GAAkB,OAAO76B,CAAI,GAE1Bi8B,GACHj8B,EAAK,gBAAgBu7B,CAAU,CAEvC,CAAK,EACDR,KACKA,KACHH,GAA6B,IAAI,QACjCA,GAA6B,IAAI,QACjCC,GAAoC,IAAI,QACxCC,GAAY,CAAE,EAEjB,CACH,EAGIx5B,GAAiBg6B,IACJ,MAAM,QAAQA,CAAc,EAAIA,EAAe,CAAC,EAAIA,GACrD,cAAc,KAE1BY,GAAa,CAACZ,EAAgB5yB,EAAapH,GAAcg6B,CAAc,EAAGC,EAAa,qBAAuB,CAChH,GAAK7yB,EACL,OAAO2yB,GAAgBC,EAAgB,CACrC,WAAA5yB,EACA,WAAA6yB,EACA,iBAAkB,aAAa,CAAC,CACpC,EAGI5zB,GAAOrJ,GAAO,CAChB,MAAMgrB,EAAU,sBAAsB,IAAMhrB,GAAI,EAChD,MAAO,IAAM,qBAAqBgrB,CAAO,CAC3C,EACA,SAAS6S,GAAWC,EAAajhC,EAAU,GAAI,CAC7C,KAAM,CAAE,MAAAmyB,EAAQ,EAAI,EAAKnyB,EACnBmN,EAAOglB,EAAQ3lB,GAAOzL,GAAMA,EAAG,EAC/BsJ,EAAW,CAAE,EACnB,OAAAA,EAAS,KACP8C,EAAK,IAAM,CAET,MAAMrC,GADU,OAAOm2B,GAAgB,WAAaA,EAAa,EAAGA,GAC3C,OAAO,OAAO,EACnCn2B,EAAS,SAAW,GACxBT,EAAS,KAAK02B,GAAWj2B,CAAQ,CAAC,CACnC,CAAA,CACF,EACM,IAAM,CACXT,EAAS,QAASlH,GAAOA,GAAA,YAAAA,GAAM,CAChC,CACH,CC9HA,KAAM,CAAC+9B,GAAgBC,EAAgB,EAAIphC,EAAc,CACvD,KAAM,gBACN,SAAU,mBACV,aAAc,oBAChB,CAAC,ECGKqhC,GAAiB1nB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAChD,MAAMyrB,EAASF,GAAkB,EAC3BG,EAAsBlL,GAA+B,EACrDmL,EAAWrE,GAAY,CAAE,GAAGoE,EAAqB,QAASD,EAAO,KAAM,EACvE3K,EAAcpjB,EAAW+tB,EAAO,iBAAkB,EAAEE,EAAS,iBAAkB,EAAEhuB,CAAK,EAC5F,OAAIguB,EAAS,UACJ,KAEc5K,MAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAK1d,GAAYuoB,EAAS,IAAK3rB,CAAG,CAAC,CAAE,CAC7F,CAAC,EACDwrB,GAAe,YAAc,iBCbxB,MAACI,GAAqB9nB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACpD,MAAMyrB,EAASF,GAAkB,EAC3BzK,EAAcpjB,EAAW+tB,EAAO,qBAAoB,EAAI9tB,CAAK,EACnE,OAAuBojB,EAAAA,IAAIlc,EAAI,OAAQ,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAChE,CAAC,EACD4rB,GAAmB,YAAc,qBCH5B,MAACC,GAAgB/nB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC/C,MAAMyrB,EAASF,GAAkB,EAC3BI,EAAW/E,GAAoB,EAC/B9F,EAAcpjB,EAAW+tB,EAAO,gBAAiB,EAAEE,EAAS,iBAAkB,EAAEhuB,CAAK,EAC3F,OAAIguB,EAAS,UACJ,KAEc5K,MAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAK1d,GAAYuoB,EAAS,IAAK3rB,CAAG,CAAC,CAAE,CAC7F,CAAC,EACD6rB,GAAc,YAAc,gBCXvB,MAACC,GAAoBhoB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACnD,MAAMyrB,EAASF,GAAkB,EAC3BzK,EAAcpjB,EAAW+tB,EAAO,oBAAmB,EAAI9tB,CAAK,EAClE,OAAuBojB,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC7D,CAAC,EACD8rB,GAAkB,YAAc,oBCJ3B,MAACC,GAAmBjoB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAClD,MAAMyrB,EAASF,GAAkB,EAC3BzK,EAAcpjB,EAAW+tB,EAAO,mBAAkB,EAAI9tB,CAAK,EAEjE,OADiBipB,GAAoB,EACxB,UACJ,KAEc7F,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC7D,CAAC,EACD+rB,GAAiB,YAAc,mBCf/B,IAAI/D,GAAY,OAAO,eACnBC,GAAkB,CAACn7B,EAAKR,EAAKR,IAAUQ,KAAOQ,EAAMk7B,GAAUl7B,EAAKR,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAR,CAAK,CAAE,EAAIgB,EAAIR,CAAG,EAAIR,EACtJo8B,EAAgB,CAACp7B,EAAKR,EAAKR,IAAUm8B,GAAgBn7B,EAAK,OAAOR,GAAQ,SAAWA,EAAM,GAAKA,EAAKR,CAAK,EACzGkgC,GAAmB,CACrB,aAAaC,EAAWC,EAAM,CAC5B,GAAID,EAAU,OAAS,EAAG,CACxB,MAAME,EAAaF,EAAUA,EAAU,OAAS,CAAC,EAC7CE,IAAeD,GACjBC,EAAW,MAAO,CAE1B,CACI,MAAMC,EAAYH,EAAU,QAAQC,CAAI,EACpCE,IAAc,IAGhBH,EAAU,OAAOG,EAAW,CAAC,EAC7BH,EAAU,KAAKC,CAAI,CAEtB,EACD,eAAeD,EAAWC,EAAM,CAC9B,MAAME,EAAYH,EAAU,QAAQC,CAAI,EACpCE,IAAc,IAChBH,EAAU,OAAOG,EAAW,CAAC,EAE3BH,EAAU,OAAS,GACrBA,EAAUA,EAAU,OAAS,CAAC,EAAE,QAAS,CAE/C,CACA,EACII,GAAkB,CAAE,EACpBC,GAAY,KAAM,CACpB,YAAYp3B,EAAU9K,EAAS,CAC7B89B,EAAc,KAAM,WAAW,EAC/BA,EAAc,KAAM,QAAQ,EAC5BA,EAAc,KAAM,KAAK,EACzBA,EAAc,KAAM,QAAS,CAC3B,WAAY,CAAE,EACd,gBAAiB,CAAE,EACnB,eAAgB,CAAE,EAClB,4BAA6B,KAC7B,wBAAyB,KACzB,OAAQ,GACR,OAAQ,GACR,uBAAwB,OACxB,eAAgB,MACtB,CAAK,EACDA,EAAc,KAAM,mBAAoB,EAAE,EAC1CA,EAAc,KAAM,cAAgBn2B,GAAU,CAC5C,MAAMmB,EAASjB,EAAeF,CAAK,EAC7Bw6B,EAAkB,KAAK,mBAAmBr5B,EAAQnB,CAAK,GAAK,EAClE,GAAIw6B,GAAmBz9B,GAAWoE,CAAM,EAClCq5B,IACF,KAAK,MAAM,wBAA0Br5B,OAElC,CACLnB,EAAM,yBAA0B,EAChC,IAAIy6B,EACAC,EAAsB,GAC1B,GAAI,KAAK,MAAM,wBACb,GAAI72B,GAAY,KAAK,MAAM,uBAAuB,EAAI,EAAG,CACvD,MAAM82B,EAAkB,KAAK,mBAAmB,KAAK,MAAM,uBAAuB,EAC5E,CAAE,cAAAC,CAAa,EAAK,KAAK,MAAM,gBAAgBD,CAAe,EACpE,GAAIC,EAAc,OAAS,EAAG,CAC5B,MAAMC,EAAYD,EAAc,UAAW19B,GAASA,IAAS,KAAK,MAAM,uBAAuB,EAC3F29B,GAAa,IACX,KAAK,OAAO,aAAa,KAAK,MAAM,cAAc,EAChDA,EAAY,EAAID,EAAc,SAChCH,EAAWG,EAAcC,EAAY,CAAC,EACtCH,EAAsB,IAGpBG,EAAY,GAAK,IACnBJ,EAAWG,EAAcC,EAAY,CAAC,EACtCH,EAAsB,IAI1C,CACA,MACiB,KAAK,MAAM,gBAAgB,KAAMI,GAAMA,EAAE,cAAc,KAAMC,GAAMl3B,GAAYk3B,CAAC,EAAI,CAAC,CAAC,IACzFL,EAAsB,SAI1BA,EAAsB,GAEpBA,IACFD,EAAW,KAAK,gBAAgB,CAG9B,OAAQ,KAAK,MAAM,wBACnB,WAAY,KAAK,OAAO,cAAc,KAAK,MAAM,cAAc,CAC3E,CAAW,GAECA,EACF,KAAK,SAASA,CAAQ,EAEtB,KAAK,SAAS,KAAK,MAAM,yBAA2B,KAAK,qBAAqB,CAExF,CACM,KAAK,MAAM,eAAiB,MAClC,CAAK,EACDtE,EAAc,KAAM,oBAAsBn2B,GAAU,CAClD,MAAMmB,EAASjB,EAAeF,CAAK,EACnC,GAAI,OAAK,mBAAmBmB,EAAQnB,CAAK,GAAK,GAG9C,IAAIg7B,GAAe,KAAK,OAAO,wBAAyBh7B,CAAK,EAAG,CAC9D,KAAK,WAAW,CAAE,YAAa,KAAK,OAAO,wBAAyB,EACpE,MACR,CACUg7B,GAAe,KAAK,OAAO,kBAAmBh7B,CAAK,GAGvDA,EAAM,eAAgB,EAC5B,CAAK,EACDm2B,EAAc,KAAM,cAAgBn2B,GAAU,CAC5C,MAAMmB,EAASjB,EAAeF,CAAK,EAC/B,KAAK,mBAAmBmB,EAAQnB,CAAK,GAAK,GAG1Cg7B,GAAe,KAAK,OAAO,wBAAyBh7B,CAAK,GAGzDg7B,GAAe,KAAK,OAAO,kBAAmBh7B,CAAK,IAGvDA,EAAM,eAAgB,EACtBA,EAAM,yBAA0B,EACtC,CAAK,EACDm2B,EAAc,KAAM,eAAiBn2B,GAAU,CAC7C,GAAI,KAAK,OAAO,aAAaA,CAAK,GAAK,KAAK,OAAO,cAAcA,CAAK,EAAG,CACvE,KAAK,MAAM,eAAiBA,EAC5B,MAAMi7B,EAAa,KAAK,OAAO,cAAcj7B,CAAK,EAC5Ck7B,EAAkB,KAAK,gBAAgB,CAAE,MAAAl7B,EAAO,WAAAi7B,CAAU,CAAE,EAClE,GAAI,CAACC,EAAiB,OAClBC,GAAWn7B,CAAK,GAClBA,EAAM,eAAgB,EAExB,KAAK,SAASk7B,CAAe,CACrC,CACA,CAAK,EACD/E,EAAc,KAAM,kBAAoBn2B,GAAU,CAC5Co7B,GAAcp7B,CAAK,GAAKg7B,GAAe,KAAK,OAAO,kBAAmBh7B,CAAK,IAAM,KACnFA,EAAM,eAAgB,EACtB,KAAK,WAAY,EAEzB,CAAK,EACDm2B,EAAc,KAAM,mBAAmB,EACvCA,EAAc,KAAM,wBAAyB,IAAM,CACjD,MAAMt0B,EAAM,KAAK,IAAI,aAAe,OACpC,KAAK,kBAAoB,IAAIA,EAAI,iBAAkBw5B,GAAc,CAClCA,EAAU,KAAMC,GACtB,MAAM,KAAKA,EAAS,YAAY,EACjC,KAAMp+B,GAASA,IAAS,KAAK,MAAM,uBAAuB,CAC/E,GAEC,KAAK,SAAS,KAAK,qBAAqB,CAElD,CAAO,CACP,CAAK,EACDi5B,EAAc,KAAM,sBAAuB,IAAM,QAC/Cj9B,EAAA,KAAK,oBAAL,MAAAA,EAAwB,aACpB,KAAK,MAAM,QAAU,CAAC,KAAK,MAAM,QACnC,KAAK,MAAM,WAAW,IAAK+J,GAAc,QACvC/J,EAAA,KAAK,oBAAL,MAAAA,EAAwB,QAAQ+J,EAAW,CAAE,QAAS,GAAM,UAAW,IACjF,CAAS,CAET,CAAK,EACDkzB,EAAc,KAAM,sBAAuB,IAAM,CAC/C,IAAIj5B,EAAO,KAAK,iBAAiB,eAAgB,CAAE,YAAa,GAAM,EACtE,GAAIA,IAAS,GACX,MAAO,GAET,GAAIA,IAAS,QAAUA,GAAQ,CAACkG,GAAYlG,CAAI,EAC9C,GAAI,KAAK,mBAAmB,KAAK,IAAI,aAAa,GAAK,EACrDA,EAAO,KAAK,IAAI,kBACX,CACL,MAAMq+B,EAAqB,KAAK,MAAM,eAAe,CAAC,EAEtDr+B,EAD0Bq+B,GAAsBA,EAAmB,mBACvC,KAAK,iBAAiB,eAAe,CAC3E,MACiBr+B,IAAS,OAClBA,EAAO,KAAK,iBAAiB,eAAe,GAE9C,GAAI,CAACA,EACH,MAAM,IAAI,MAAM,8DAA8D,EAEhF,OAAKA,EAAK,cACRA,EAAO,KAAK,iBAAiB,eAAe,GAEvCA,CACb,CAAK,EACDi5B,EAAc,KAAM,WAAaj5B,GAAS,CACxC,GAAIA,IAAS,IACTA,IAASoB,GAAiB,KAAK,GAAG,EACtC,IAAI,CAACpB,GAAQ,CAACA,EAAK,MAAO,CACxB,KAAK,SAAS,KAAK,qBAAqB,EACxC,MACR,CACMA,EAAK,MAAM,CAAE,cAAe,CAAC,CAAC,KAAK,OAAO,cAAe,EACzD,KAAK,MAAM,wBAA0BA,EACjCs+B,GAAkBt+B,CAAI,GACxBA,EAAK,OAAQ,EAErB,CAAK,EACDi5B,EAAc,KAAM,aAAesF,GAAsB,CACvD,GAAI,CAAC,KAAK,MAAM,OAAQ,OAAO,KAC/B,MAAMpjC,EAAU,CACd,aAAc,KAAK,OAAO,aAC1B,iBAAkB,KAAK,OAAO,iBAC9B,oBAAqB,KAAK,OAAO,oBACjC,GAAGojC,CACJ,EACD,aAAa,KAAK,MAAM,sBAAsB,EAC9C,KAAK,MAAM,uBAAyB,OACpC,KAAK,gBAAiB,EACtB,KAAK,MAAM,OAAS,GACpB,KAAK,MAAM,OAAS,GACpB,KAAK,oBAAqB,EAC1BxB,GAAiB,eAAe,KAAK,UAAW,IAAI,EACpD,MAAMyB,EAAe,KAAK,UAAUrjC,EAAS,cAAc,EACrDsjC,EAAmB,KAAK,UAAUtjC,EAAS,kBAAkB,EAC7DujC,EAAsB,KAAK,UAAUvjC,EAAS,qBAAqB,EACnEwjC,EAAc,KAAK,UAAUxjC,EAAS,cAAe,yBAAyB,EACpFqjC,GAAA,MAAAA,IACA,MAAMI,EAAqB,IAAM,CAC/BC,GAAM,IAAM,CACV,GAAIF,EAAa,CACf,MAAMG,EAAkB,KAAK,mBAAmB,KAAK,MAAM,2BAA2B,EACtF,KAAK,SAASA,CAAe,CACzC,CACUL,GAAA,MAAAA,GACV,CAAS,CACF,EACD,GAAIE,GAAeD,EAAqB,CACtC,MAAMI,EAAkB,KAAK,mBAAmB,KAAK,MAAM,2BAA2B,EACtF,OAAAJ,EAAoBI,CAAe,EAAE,KAAKF,EAAoBA,CAAkB,EACzE,IACf,CACM,OAAAA,EAAoB,EACb,IACb,CAAK,EACD3F,EAAc,KAAM,QAAU8F,GAAiB,CAC7C,GAAI,KAAK,MAAM,QAAU,CAAC,KAAK,MAAM,OACnC,OAAO,KAET,MAAMC,EAAU,KAAK,UAAUD,EAAc,SAAS,EAChDE,EAAc,KAAK,UAAUF,EAAc,aAAa,EAC9D,YAAK,MAAM,OAAS,GACpBC,GAAA,MAAAA,IACA,KAAK,gBAAiB,EACtB,KAAK,oBAAqB,EAC1BC,GAAA,MAAAA,IACO,IACb,CAAK,EACDhG,EAAc,KAAM,UAAYiG,GAAmB,CACjD,GAAI,CAAC,KAAK,MAAM,QAAU,CAAC,KAAK,MAAM,OACpC,OAAO,KAET,MAAMC,EAAY,KAAK,UAAUD,EAAgB,WAAW,EACtDE,EAAgB,KAAK,UAAUF,EAAgB,eAAe,EACpE,YAAK,MAAM,OAAS,GACpBC,GAAA,MAAAA,IACA,KAAK,oBAAqB,EAC1B,KAAK,aAAc,EACnB,KAAK,oBAAqB,EAC1BC,GAAA,MAAAA,IACO,IACb,CAAK,EACDnG,EAAc,KAAM,0BAA4BoG,IAC9C,KAAK,MAAM,WAAa,MAAM,QAAQA,CAAiB,EAAIA,EAAkB,OAAO,OAAO,EAAI,CAACA,CAAiB,EAAE,OAAO,OAAO,EAC7H,KAAK,MAAM,QACb,KAAK,oBAAqB,EAE5B,KAAK,oBAAqB,EACnB,KACR,EACDpG,EAAc,KAAM,qBAAuBqG,GAA0B,CACnE,MAAMt/B,EAAO,KAAK,iBAAiB,iBAAkB,CACnD,OAAQ,CAACs/B,CAAqB,CACtC,CAAO,EACD,OAAOt/B,IAAcA,IAAS,GAAQ,GAAQs/B,EACpD,CAAK,EACDrG,EAAc,KAAM,YAAa,CAACsG,EAAuBC,EAAYC,IAC5DF,GAAyBA,EAAsBC,CAAU,IAAM,OAASD,EAAsBC,CAAU,EAE7G,KAAK,OAAOC,GAAoBD,CAAU,CAE7C,EACDvG,EAAc,KAAM,mBAAoB,CAACuG,EAAY,CAAE,YAAAE,EAAc,GAAO,OAAA7wB,EAAS,EAAI,EAAG,KAAO,CACjG,IAAI8wB,EAAc,KAAK,OAAOH,CAAU,EAGxC,GAFI,OAAOG,GAAgB,aAAYA,EAAcA,EAAY,GAAG9wB,CAAM,GACtE8wB,IAAgB,KAAMA,EAAc,QACpC,CAACA,EAAa,CAChB,GAAIA,IAAgB,QAAUA,IAAgB,GAC5C,OAAOA,EAET,MAAM,IAAI,MAAM,KAAKH,CAAU,+DAA+D,CACtG,CACM,IAAIx/B,EAAO2/B,EACX,GAAI,OAAOA,GAAgB,SAAU,CACnC,GAAI,CACF3/B,EAAO,KAAK,IAAI,cAAc2/B,CAAW,CAC1C,OAAQC,EAAK,CACZ,MAAM,IAAI,MAAM,KAAKJ,CAAU,gDAAgDI,EAAI,OAAO,GAAG,CACvG,CACQ,GAAI,CAAC5/B,GACC,CAAC0/B,EACH,MAAM,IAAI,MAAM,KAAKF,CAAU,wCAAwC,CAGnF,CACM,OAAOx/B,CACb,CAAK,EACDi5B,EAAc,KAAM,kBAAoBtN,GAAS,CAC/C,KAAM,CAAE,MAAA7oB,EAAO,WAAAi7B,EAAa,EAAO,EAAGpS,EAChC1nB,EAAS0nB,EAAK,QAAU3oB,EAAeF,CAAK,EAClD,KAAK,oBAAqB,EAC1B,IAAIk7B,EAAkB,KACtB,GAAI,KAAK,MAAM,eAAe,OAAS,EAAG,CACxC,MAAM6B,EAAiB,KAAK,mBAAmB57B,EAAQnB,CAAK,EACtDg9B,EAAiBD,GAAkB,EAAI,KAAK,MAAM,gBAAgBA,CAAc,EAAI,OAC1F,GAAIA,EAAiB,EACf9B,EACFC,EAAkB,KAAK,MAAM,eAAe,KAAK,MAAM,eAAe,OAAS,CAAC,EAAE,iBAElFA,EAAkB,KAAK,MAAM,eAAe,CAAC,EAAE,0BAExCD,EAAY,CACrB,IAAIgC,EAAoB,KAAK,MAAM,eAAe,UAChD,CAAC,CAAE,kBAAAC,CAAmB,IAAK/7B,IAAW+7B,CACvC,EAID,GAHID,EAAoB,KAAMD,GAAA,YAAAA,EAAgB,aAAc77B,GAAUiC,GAAYjC,CAAM,GAAK,CAACuC,GAAWvC,CAAM,GAAK,EAAC67B,GAAA,MAAAA,EAAgB,iBAAiB77B,EAAQ,QAC5J87B,EAAoBF,GAElBE,GAAqB,EAAG,CAC1B,MAAME,EAAwBF,IAAsB,EAAI,KAAK,MAAM,eAAe,OAAS,EAAIA,EAAoB,EAC7GG,EAAmB,KAAK,MAAM,eAAeD,CAAqB,EACxEjC,EAAkBr3B,GAAY1C,CAAM,GAAK,EAAIi8B,EAAiB,iBAAmBA,EAAiB,mBAC9G,MAAsBjC,GAAWn7B,CAAK,IAC1Bk7B,EAAkB8B,GAAA,YAAAA,EAAgB,iBAAiB77B,EAAQ,IAEvE,KAAe,CACL,IAAIk8B,EAAmB,KAAK,MAAM,eAAe,UAC/C,CAAC,CAAE,iBAAAC,CAAkB,IAAKn8B,IAAWm8B,CACtC,EAID,GAHID,EAAmB,KAAML,GAAA,YAAAA,EAAgB,aAAc77B,GAAUiC,GAAYjC,CAAM,GAAK,CAACuC,GAAWvC,CAAM,GAAK,EAAC67B,GAAA,MAAAA,EAAgB,iBAAiB77B,OACnJk8B,EAAmBN,GAEjBM,GAAoB,EAAG,CACzB,MAAMF,EAAwBE,IAAqB,KAAK,MAAM,eAAe,OAAS,EAAI,EAAIA,EAAmB,EAC3GD,EAAmB,KAAK,MAAM,eAAeD,CAAqB,EACxEjC,EAAkBr3B,GAAY1C,CAAM,GAAK,EAAIi8B,EAAiB,kBAAoBA,EAAiB,oBAC/G,MAAsBjC,GAAWn7B,CAAK,IAC1Bk7B,EAAkB8B,GAAA,YAAAA,EAAgB,iBAAiB77B,GAE/D,CACA,MACQ+5B,EAAkB,KAAK,iBAAiB,eAAe,EAEzD,OAAOA,CACb,CAAK,EACD,KAAK,UAAY7iC,EAAQ,WAAaiiC,GACtC,MAAM3iB,EAAS,CACb,wBAAyB,GACzB,kBAAmB,GACnB,kBAAmB,GACnB,aAAaha,EAAG,CACd,OAAOw9B,GAAWx9B,CAAC,GAAK,CAACA,EAAE,QAC5B,EACD,cAAcA,EAAG,CACf,OAAOw9B,GAAWx9B,CAAC,GAAKA,EAAE,QAC3B,EACD,GAAGtF,CACJ,EACD,KAAK,IAAMsf,EAAO,UAAY1Z,GAAY,MAAM,QAAQkF,CAAQ,EAAIA,EAAS,CAAC,EAAIA,CAAQ,EAC1F,KAAK,OAASwU,EACd,KAAK,wBAAwBxU,CAAQ,EACrC,KAAK,sBAAuB,CAChC,CACE,IAAI,QAAS,CACX,OAAO,KAAK,MAAM,MACtB,CACE,IAAI,QAAS,CACX,OAAO,KAAK,MAAM,MACtB,CACE,mBAAmBG,EAAStD,EAAO,CACjC,MAAMG,EAAe,OAAOH,GAAA,YAAAA,EAAO,eAAiB,WAAaA,EAAM,aAAY,EAAK,OACxF,OAAO,KAAK,MAAM,gBAAgB,UAChC,CAAC,CAAE,UAAAiD,EAAW,cAAA23B,CAAa,IAAO33B,EAAU,SAASK,CAAO,IAAKnD,GAAA,YAAAA,EAAc,SAAS8C,KAAc23B,EAAc,KAAM19B,GAASA,IAASoG,CAAO,CACpJ,CACL,CACE,qBAAsB,CAgCpB,GA/BA,KAAK,MAAM,gBAAkB,KAAK,MAAM,WAAW,IAAKL,GAAc,CACpE,MAAM23B,EAAgBp3B,GAAaP,CAAS,EACtCs6B,EAAiBv6B,GAAcC,CAAS,EACxCi6B,EAAoBtC,EAAc,OAAS,EAAIA,EAAc,CAAC,EAAI,OAClE0C,EAAmB1C,EAAc,OAAS,EAAIA,EAAcA,EAAc,OAAS,CAAC,EAAI,OACxF4C,EAAuBD,EAAe,KAAMrgC,GAASwG,GAAWxG,CAAI,CAAC,EACrEugC,EAAsBF,EAAe,MAAK,EAAG,QAAO,EAAG,KAAMrgC,GAASwG,GAAWxG,CAAI,CAAC,EACtFwgC,EAAqB,CAAC,CAAC9C,EAAc,KAAM19B,GAAS2G,GAAY3G,CAAI,EAAI,CAAC,EAC/E,SAASygC,EAAiBzgC,EAAM0gC,EAAU,GAAM,CAC9C,MAAMC,EAAUjD,EAAc,QAAQ19B,CAAI,EAC1C,OAAI2gC,EAAU,EACRD,EACKL,EAAe,MAAMA,EAAe,QAAQrgC,CAAI,EAAI,CAAC,EAAE,KAAMJ,GAAO4G,GAAW5G,CAAE,CAAC,EAEpFygC,EAAe,MAAM,EAAGA,EAAe,QAAQrgC,CAAI,CAAC,EAAE,QAAO,EAAG,KAAMJ,GAAO4G,GAAW5G,CAAE,CAAC,EAE7F89B,EAAciD,GAAWD,EAAU,EAAI,GAAG,CACzD,CACM,MAAO,CACL,UAAA36B,EACA,cAAA23B,EACA,eAAA2C,EACA,mBAAAG,EACA,kBAAAR,EACA,iBAAAI,EACA,qBAAAE,EACA,oBAAAC,EACA,iBAAAE,CACD,CACP,CAAK,EACD,KAAK,MAAM,eAAiB,KAAK,MAAM,gBAAgB,OAAQG,GAAUA,EAAM,cAAc,OAAS,CAAC,EACnG,KAAK,MAAM,eAAe,QAAU,GAAK,CAAC,KAAK,iBAAiB,eAAe,EACjF,MAAM,IAAI,MACR,qGACD,EAEH,GAAI,KAAK,MAAM,gBAAgB,KAAMhD,GAAMA,EAAE,kBAAkB,GAAK,KAAK,MAAM,gBAAgB,OAAS,EACtG,MAAM,IAAI,MACR,+KACD,CAEP,CACE,cAAe,CACb,GAAK,KAAK,MAAM,OAChB,OAAAb,GAAiB,aAAa,KAAK,UAAW,IAAI,EAClD,KAAK,MAAM,uBAAyB,KAAK,OAAO,kBAAoB8B,GAAM,IAAM,CAC9E,KAAK,SAAS,KAAK,qBAAqB,CACzC,CAAA,EAAI,KAAK,SAAS,KAAK,oBAAmB,CAAE,EAC7C,KAAK,iBAAiB,KACpB76B,EAAY,KAAK,IAAK,UAAW,KAAK,YAAa,EAAI,EACvDA,EAAY,KAAK,IAAK,YAAa,KAAK,kBAAmB,CAAE,QAAS,GAAM,QAAS,EAAK,CAAE,EAC5FA,EAAY,KAAK,IAAK,aAAc,KAAK,kBAAmB,CAAE,QAAS,GAAM,QAAS,EAAK,CAAE,EAC7FA,EAAY,KAAK,IAAK,QAAS,KAAK,YAAa,CAAE,QAAS,GAAM,QAAS,EAAK,CAAE,EAClFA,EAAY,KAAK,IAAK,UAAW,KAAK,aAAc,CAAE,QAAS,GAAM,QAAS,EAAK,CAAE,EACrFA,EAAY,KAAK,IAAK,UAAW,KAAK,eAAe,CACtD,EACM,IACX,CACE,iBAAkB,CAChB,GAAK,KAAK,MAAM,OAChB,YAAK,iBAAiB,QAASyB,GAAYA,EAAO,CAAE,EACpD,KAAK,iBAAmB,CAAE,EACnB,IACX,CACE,SAASo7B,EAAiB,CACxB,GAAI,KAAK,MAAM,OACb,OAAO,KAET,MAAMC,EAAa,KAAK,UAAUD,EAAiB,YAAY,EACzDE,EAAiB,KAAK,UAAUF,EAAiB,gBAAgB,EACjEG,EAAoB,KAAK,UAAUH,EAAiB,mBAAmB,EACxEG,GACH,KAAK,oBAAqB,EAE5B,KAAK,MAAM,OAAS,GACpB,KAAK,MAAM,OAAS,GACpB,KAAK,MAAM,4BAA8B,KAAK,IAAI,eAAiB,KACnEF,GAAA,MAAAA,IACA,MAAMG,EAAmB,IAAM,CACzBD,GACF,KAAK,oBAAqB,EAE5B,KAAK,aAAc,EACnB,KAAK,oBAAqB,EAC1BD,GAAA,MAAAA,GACD,EACD,OAAIC,GACFA,EAAkB,KAAK,MAAM,WAAW,OAAM,CAAE,EAAE,KAAKC,EAAkBA,CAAgB,EAClF,OAETA,EAAkB,EACX,KACX,CACA,EACIhD,GAAcn7B,GAAUA,EAAM,MAAQ,MACtCg7B,GAAiB,CAACjhC,KAAUgS,IAAW,OAAOhS,GAAU,WAAaA,EAAM,GAAGgS,CAAM,EAAIhS,EACxFqhC,GAAiBp7B,GAAU,CAACA,EAAM,aAAeA,EAAM,MAAQ,SAC/D+7B,GAASvgC,GAAO,WAAWA,EAAI,CAAC,EAChCggC,GAAqBt+B,GAASA,EAAK,YAAc,SAAW,WAAYA,GAAQ,OAAOA,EAAK,QAAW,WAG3G,SAASkhC,GAAUthC,EAAIzE,EAAU,GAAI,CACnC,IAAI8hC,EACJ,MAAMx3B,EAAUkC,EAAI,IAAM,CACxB,MAAMolB,EAAY,OAAOntB,GAAO,WAAaA,EAAI,EAAGA,EACpD,GAAKmtB,EACL,CAAAkQ,EAAO,IAAII,GAAUtQ,EAAW,CAC9B,kBAAmB,GACnB,kBAAmB,GACnB,cAAe,GACf,wBAAyB,GACzB,kBAAmB,GACnB,cAAeA,EACf,GAAG5xB,EACH,SAAU4F,GAAYgsB,CAAS,CACrC,CAAK,EACD,GAAI,CACFkQ,EAAK,SAAU,CACrB,OAAYx8B,EAAA,CACZ,EACA,CAAG,EACD,OAAO,UAAmB,CACxBw8B,GAAA,MAAAA,EAAM,aACNx3B,EAAS,CACV,CACH,CCtgBA,IAAI07B,GAAiB,mBACrB,SAASC,GAAmB1c,EAAiB,CAC3C,MAAM2c,EAAe3c,EAAgB,sBAAqB,EAAG,KAE7D,OADmB,KAAK,MAAM2c,CAAY,EAAI3c,EAAgB,WAC1C,cAAgB,cACtC,CACA,SAAS4c,GAAkBC,EAAW,OACpC,MAAMl6B,EAAMk6B,GAAA,KAAAA,EAAa,SACnB58B,GAAM3I,EAAAqL,EAAI,cAAJ,KAAArL,EAAmB,OACzB,CAAE,gBAAA0oB,EAAiB,KAAAY,CAAI,EAAKje,EAElC,GADeie,EAAK,aAAa6b,EAAc,EACnC,OACZ7b,EAAK,aAAa6b,GAAgB,EAAE,EACpC,MAAMK,EAAiB78B,EAAI,WAAa+f,EAAgB,YAClD+c,EAA4B,IAAMv0B,GAAiBwX,EAAiB,oBAAqB,GAAG8c,CAAc,IAAI,EAC9GE,EAAkBN,GAAmB1c,CAAe,EACpDid,EAAe,IAAM50B,GAASuY,EAAM,CACxC,SAAU,SACV,CAACoc,CAAe,EAAG,GAAGF,CAAc,IACxC,CAAG,EACKI,EAAkB,IAAM,SAC5B,KAAM,CAAE,QAAAC,EAAS,QAAAC,EAAS,eAAAtc,CAAgB,EAAG7gB,EACvCo9B,GAAa/lC,EAAAwpB,GAAA,YAAAA,EAAgB,aAAhB,KAAAxpB,EAA8B,EAC3CgmC,GAAY7gC,EAAAqkB,GAAA,YAAAA,EAAgB,YAAhB,KAAArkB,EAA6B,EACzC8gC,EAAel1B,GAASuY,EAAM,CAClC,SAAU,QACV,SAAU,SACV,IAAK,GAAG,EAAEwc,EAAU,KAAK,MAAME,CAAS,EAAE,KAC1C,KAAM,GAAG,EAAEH,EAAU,KAAK,MAAME,CAAU,EAAE,KAC5C,MAAO,IACP,CAACL,CAAe,EAAG,GAAGF,CAAc,IAC1C,CAAK,EACD,MAAO,IAAM,CACXS,GAAA,MAAAA,IACAt9B,EAAI,SAAS,CAAE,KAAMk9B,EAAS,IAAKC,EAAS,SAAU,UAAW,CAClE,CACF,EACKt8B,EAAW,CAACi8B,EAA2B,EAAEj/B,GAAK,EAAKo/B,EAAe,EAAKD,GAAc,EAC3F,MAAO,IAAM,CACXn8B,EAAS,QAASlH,GAAOA,GAAA,YAAAA,GAAM,EAC/BgnB,EAAK,gBAAgB6b,EAAc,CACpC,CACH,CClCG,IAAC5N,GAAUtd,GAAc,QAAQ,EAAE,MACpC,UACA,WACA,aACA,UACA,QACA,cACA,cACF,EACIC,GAAQqd,GAAQ,MAAO,EAGvB2O,GAAmBnwB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,aAAT,KAAAmF,EAAuB,UAAU4Q,EAAI,EAAE,eAClEowB,GAAiBpwB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,WAAT,KAAAmF,EAAqB,UAAU4Q,EAAI,EAAE,aAC9DqwB,GAAgBrwB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,UAAT,KAAAmF,EAAoB,UAAU4Q,EAAI,EAAE,YAC5DswB,GAAgBtwB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,UAAT,KAAAmF,EAAoB,UAAU4Q,EAAI,EAAE,YAC5DuwB,GAAcvwB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,QAAT,KAAAmF,EAAkB,UAAU4Q,EAAI,EAAE,UACxDwwB,GAAoBxwB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,cAAT,KAAAmF,EAAwB,UAAU4Q,EAAI,EAAE,gBACpEywB,GAAqBzwB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,eAAT,KAAAmF,EAAyB,UAAU4Q,EAAI,EAAE,UACtE0wB,GAAgB1wB,GAAQA,EAAI,QAAQqwB,GAAarwB,CAAG,CAAC,EACrD2wB,GAAmB3wB,GAAQA,EAAI,QAAQmwB,GAAgBnwB,CAAG,CAAC,EAC3D4wB,GAAiB5wB,GAAQA,EAAI,QAAQowB,GAAcpwB,CAAG,CAAC,EACvD6wB,GAAgB7wB,GAAQA,EAAI,QAAQswB,GAAatwB,CAAG,CAAC,EACrD8wB,GAAc9wB,GAAQA,EAAI,QAAQuwB,GAAWvwB,CAAG,CAAC,EACjD+wB,GAAoB/wB,GAAQA,EAAI,QAAQwwB,GAAiBxwB,CAAG,CAAC,EAC7DgxB,GAAqBhxB,GAAQA,EAAI,QAAQywB,GAAkBzwB,CAAG,CAAC,EAGnE,SAAS+hB,GAAQC,EAASC,EAAW,CACnC,KAAM,CAAE,MAAAthB,EAAO,KAAAK,EAAM,QAAAlX,EAAS,KAAAiC,EAAM,MAAA2T,CAAK,EAAKsiB,EACxCiP,EAAYllC,EAAK,YAAY,EAC7BmlC,EAAOvwB,EAAM,QAAQ,MAAM,EACjC,MAAO,CACL,KAAAuwB,EACA,QAAQC,EAAU,CACFxwB,EAAM,QAAQ,MAAM,IACpBwwB,GACdnwB,EAAK,CAAE,KAAMmwB,EAAW,OAAS,OAAO,CAAE,CAC3C,EACD,iBAAkB,CAChB,OAAOlP,EAAU,OAAO,CACtB,GAAG9d,GAAM,QAAQ,MACjB,IAAKpY,EAAK,KAAK,EACf,GAAIukC,GAAa5wB,CAAK,EACtB,gBAAiB,SACjB,KAAM,SACN,gBAAiBwxB,EACjB,aAAcA,EAAO,OAAS,SAC9B,gBAAiBb,GAAa3wB,CAAK,EACnC,QAAQ3O,EAAO,CACTA,EAAM,kBACViQ,EAAK,CAAE,KAAM,SAAU,CACjC,CACA,CAAO,CACF,EACD,kBAAmB,CACjB,OAAOihB,EAAU,QAAQ,CACvB,GAAG9d,GAAM,SAAS,MAClB,IAAKpY,EAAK,KAAK,EACf,OAAQ,CAACmlC,EACT,GAAId,GAAc1wB,CAAK,EACvB,aAAcwxB,EAAO,OAAS,QACtC,CAAO,CACF,EACD,oBAAqB,CACnB,OAAOjP,EAAU,QAAQ,CACvB,GAAG9d,GAAM,WAAW,MACpB,IAAKpY,EAAK,KAAK,EACf,GAAIokC,GAAgBzwB,CAAK,EACzB,MAAO,CACL,cAAewxB,EAAO,OAAS,MACzC,CACA,CAAO,CACF,EACD,iBAAkB,CAChB,MAAME,EAAWtnC,EAAQ,IAAI,UAAU,EACvC,OAAOm4B,EAAU,QAAQ,CACvB,GAAG9d,GAAM,QAAQ,MACjB,IAAKpY,EAAK,KAAK,EACf,KAAMA,EAAK,MAAM,EACjB,OAAQ,CAACmlC,EACT,GAAIb,GAAa3wB,CAAK,EACtB,SAAU,GACV,aAAcwxB,EAAO,OAAS,SAC9B,aAAc,GACd,aAAcD,GAAa,OAC3B,kBAAmBA,GAAa,CAACG,EAAS,MAAQ,OAASb,GAAW7wB,CAAK,EAC3E,mBAAoB0xB,EAAS,YAAcZ,GAAiB9wB,CAAK,EAAI,MAC7E,CAAO,CACF,EACD,eAAgB,CACd,OAAOuiB,EAAU,QAAQ,CACvB,GAAG9d,GAAM,MAAM,MACf,IAAKpY,EAAK,KAAK,EACf,GAAIwkC,GAAW7wB,CAAK,CAC5B,CAAO,CACF,EACD,qBAAsB,CACpB,OAAOuiB,EAAU,QAAQ,CACvB,GAAG9d,GAAM,YAAY,MACrB,IAAKpY,EAAK,KAAK,EACf,GAAIykC,GAAiB9wB,CAAK,CAClC,CAAO,CACF,EACD,sBAAuB,CACrB,OAAOuiB,EAAU,OAAO,CACtB,GAAG9d,GAAM,aAAa,MACtB,IAAKpY,EAAK,KAAK,EACf,GAAI0kC,GAAkB/wB,CAAK,EAC3B,KAAM,SACN,QAAQ3O,EAAO,CACTA,EAAM,mBACVA,EAAM,gBAAiB,EACvBiQ,EAAK,CAAE,KAAM,QAAS,EAChC,CACA,CAAO,CACP,CACG,CACH,CACA,IAAIxB,GAAwB,CAC1B,MAAM,CAAE,MAAOojB,EAAQ,MAAAljB,CAAK,EAAI,CAC9B,MAAM2xB,EAAczO,EAAO,OAAS,cAEpC,MAAO,CACL,KAAM,SACN,MAAO,GACP,UAAW,GACX,cAAe,GACf,uBAAwB,CAACyO,EACzB,cAAe,GACf,aAAc,GACd,eATqBA,EAAc,IAAML,GAAkBtxB,CAAK,EAAI,OAUpE,GAAGkjB,CACJ,CACF,EACD,aAAa,CAAE,KAAA72B,GAAQ,CAErB,OADaA,EAAK,MAAM,GAAKA,EAAK,aAAa,EACjC,OAAS,QACxB,EACD,QAAQ,CAAE,SAAA82B,GAAY,CACpB,MAAO,CACL,SAAUA,EAAS,KAAO,CACxB,aAAc,CAAE,MAAO,GAAM,YAAa,EAAI,CACtD,EAAQ,CACH,CACF,EACD,MAAM,CAAE,MAAAC,EAAO,OAAA7hB,EAAQ,KAAAlV,CAAI,EAAI,CAC7B+2B,EAAM,CAAC,IAAM/2B,EAAK,MAAM,CAAC,EAAG,IAAM,CAChCkV,EAAO,CAAC,kBAAkB,CAAC,CACjC,CAAK,CACF,EACD,OAAQ,CACN,KAAM,CACJ,MAAO,CAAC,wBAAyB,YAAY,EAC7C,QAAS,CAAC,0BAA2B,YAAa,gBAAiB,kBAAkB,EACrF,GAAI,CACF,mBAAoB,CAClB,OAAQ,QACT,EACD,MAAO,CACL,CACE,MAAO,mBACP,QAAS,CAAC,eAAe,CAC1B,EACD,CACE,OAAQ,SACR,QAAS,CAAC,eAAe,CACrC,CACS,EACD,OAAQ,CACN,CACE,MAAO,mBACP,QAAS,CAAC,eAAe,CAC1B,EACD,CACE,OAAQ,SACR,QAAS,CAAC,eAAe,CACrC,CACA,CACA,CACK,EACD,OAAQ,CACN,GAAI,CACF,kBAAmB,CACjB,OAAQ,MACT,EACD,KAAM,CACJ,CACE,MAAO,mBACP,QAAS,CAAC,cAAc,CACzB,EACD,CACE,OAAQ,OACR,QAAS,CAAC,cAAc,CACpC,CACS,EACD,OAAQ,CACN,CACE,MAAO,mBACP,QAAS,CAAC,cAAc,CACzB,EACD,CACE,OAAQ,OACR,QAAS,CAAC,cAAc,CACpC,CACA,CACA,CACA,CACG,EACD,gBAAiB,CACf,OAAQ,CACN,iBAAkB,CAAC,CAAE,KAAAlV,CAAM,IAAKA,EAAK,MAAM,GAAK,IACjD,EACD,QAAS,CACP,wBAAwB,CAAE,MAAA2T,EAAO,KAAAsB,EAAM,KAAAjV,CAAI,EAAI,CAE7C,OAAOuzB,GADe,IAAMoR,GAAahxB,CAAK,EACA,CAC5C,MAAO,GACP,gBAAiB3T,EAAK,OAAO,EAC7B,QAAS,CAAC8kC,GAAanxB,CAAK,CAAC,EAC7B,kBAAkB3O,EAAO,QACvB9G,EAAA8B,EAAK,mBAAmB,IAAxB,MAAA9B,EAA4B8G,GACvBhF,EAAK,wBAAwB,GAChCgF,EAAM,eAAgB,CAEzB,EACD,mBAAoBhF,EAAK,oBAAoB,EAC7C,eAAgBA,EAAK,gBAAgB,EACrC,qBAAsBA,EAAK,sBAAsB,EACjD,gBAAgBgF,EAAO,QACrB9G,EAAA8B,EAAK,iBAAiB,IAAtB,MAAA9B,EAA0B8G,GACrBhF,EAAK,eAAe,GACvBgF,EAAM,eAAgB,CAEzB,EACD,WAAY,CACViQ,EAAK,CAAE,KAAM,QAAS,IAAK,kBAAkB,CAAE,CAC3D,CACA,CAAS,CACF,EACD,cAAc,CAAE,MAAAtB,EAAO,KAAA3T,GAAQ,CAC7B,GAAKA,EAAK,eAAe,EACzB,OAAOwjC,GAAkB7vB,EAAM,QAAQ,CACxC,EACD,UAAU,CAAE,MAAAA,EAAO,KAAA3T,GAAQ,CACzB,MAAI,CAACA,EAAK,WAAW,GAAK,CAACA,EAAK,OAAO,EAAG,OAEnCojC,GADW,IAAMuB,GAAahxB,CAAK,EACd,CAC1B,cAAe,GACf,wBAAyB,CAAC,CAAC3T,EAAK,cAAc,EAC9C,aAAcA,EAAK,gBAAgB,EACnC,eAAiB8B,GAAE,SAAK,OAAAuB,GAAAnF,EAAA8B,EAAK,cAAc,IAAnB,YAAA9B,MAAA,KAAAmF,EAA4BvB,EAC9D,CAAS,CACF,EACD,iBAAiB,CAAE,MAAA6R,EAAO,KAAA3T,GAAQ,CAChC,OAAKA,EAAK,OAAO,EAEVq+B,GADa,IAAM,CAACsG,GAAahxB,CAAK,CAAC,EACf,CAAE,MAAO,EAAI,CAAE,EAF1B,MAG5B,CACK,EACD,QAAS,CACP,sBAAsB,CAAE,QAAA5V,EAAS,MAAA4V,GAAS,CACxC9J,EAAI,IAAM,CACR9L,EAAQ,IAAI,WAAY,CACtB,MAAO,CAAC,CAACgnC,GAAWpxB,CAAK,EACzB,YAAa,CAAC,CAACqxB,GAAiBrxB,CAAK,CACjD,CAAW,CACX,CAAS,CACF,EACD,WAAW,CAAE,MAAAA,GAAS,CACpB9J,EAAI,IAAM,CACR,MAAMolB,EAAY0V,GAAahxB,CAAK,EACpC,GAAI,CAACsb,EAAW,OAChB,MAAMC,EAASvrB,GAAiBsrB,CAAS,EAC3B,CAAC2V,GAAgBjxB,CAAK,EAAGkxB,GAAclxB,CAAK,CAAC,EACrD,QAASzR,GAAS,CACtBA,GAAA,MAAAA,EAAM,MAAM,YAAY,YAAagtB,EAAO,OACxD,CAAW,CACX,CAAS,CACF,EACD,cAAc,CAAE,KAAAlvB,GAAQ,QACtB9B,EAAA8B,EAAK,cAAc,IAAnB,MAAA9B,EAAuB,CAAE,KAAM,EAAK,EACrC,EACD,aAAa,CAAE,KAAA8B,GAAQ,QACrB9B,EAAA8B,EAAK,cAAc,IAAnB,MAAA9B,EAAuB,CAAE,KAAM,EAAI,EACpC,EACD,iBAAiB,CAAE,KAAA8B,EAAM,KAAAiV,EAAM,MAAAjQ,CAAK,EAAI,CACtCiQ,EAAK,CACH,KAAMjV,EAAK,MAAM,EAAI,kBAAoB,mBACzC,cAAegF,CACzB,CAAS,CACT,CACA,CACA,CACA,EACY2M,KAAc,CACxB,aACA,gBACA,yBACA,MACA,eACA,cACA,cACA,KACA,KACA,MACA,iBACA,QACA,kBACA,iBACA,oBACA,eACA,uBACA,cACA,OACA,qBACA,gBACA,eACA,OACA,WACF,CAAC,ECpUD,MAAM4zB,GAAa30B,GAAU,CAC3B,MAAMhH,EAAKyvB,EAAAA,MAAO,EACZ,CAAE,YAAAjoB,CAAa,EAAGsH,GAAuB,EACzC,CAAE,IAAA7S,CAAK,EAAG+S,GAAkB,EAC5B0gB,EAAe,CACnB,GAAA1vB,EACA,YAAAwH,EACA,IAAAvL,EACA,GAAG+K,CACJ,EACKqlB,EAAUziB,GAAWgyB,GAAgBlM,CAAY,EACvD,OAAOmM,GAAexP,EAAS7f,EAAc,CAC/C,ECTMsvB,GAAc90B,GAAU,CAC5B,KAAM,CAAC+0B,EAAe,CAAE,SAAA1uB,EAAU,GAAGwhB,EAAY,EAAIqB,GAAmBlpB,CAAK,EACvE,CAAC+tB,CAAmB,EAAIjL,GAAyBiS,CAAa,EAC9DjH,EAAS6G,GAAU9M,CAAU,EAC7BmG,EAAWrE,GAAY5pB,EAAW,CAAE,QAAS+tB,EAAO,MAAQiH,CAAa,CAAC,EAChF,OAAuB3R,EAAG,IAACuK,GAAgB,CAAE,MAAOG,EAAQ,SAA0B1K,EAAAA,IAAIR,GAA6B,CAAE,MAAOmL,EAAqB,SAA0B3K,EAAAA,IAAI4F,GAAkB,CAAE,MAAOgF,EAAU,SAAA3nB,CAAQ,CAAE,CAAG,CAAA,EAAG,CAC1O,ECTM2uB,GAAc7uB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC7C,MAAMyrB,EAASF,GAAkB,EAC3BzK,EAAcpjB,EAAW+tB,EAAO,cAAa,EAAI9tB,CAAK,EAC5D,OAAuBojB,EAAAA,IAAIlc,EAAI,GAAI,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC5D,CAAC,EACD2yB,GAAY,YAAc,cCJrB,MAACC,GAAgB9uB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC/C,MAAMyrB,EAASF,GAAkB,EAC3BI,EAAW/E,GAAoB,EAC/B9F,EAAcpjB,EAClB,CACE,GAAG+tB,EAAO,gBAAiB,EAC3B,gBAAiBE,EAAS,UAAY,OAASF,EAAO,gBAAe,EAAG,eAAe,CACxF,EACD9tB,CACD,EACD,OAAuBojB,EAAAA,IAAIlc,EAAI,OAAQ,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAChE,CAAC,EACD4yB,GAAc,YAAc,gBCbvB,MAACC,GAAUl1B,GAAU,OACxB,KAAM,CAAE,SAAAqG,EAAU,SAAAkf,CAAQ,EAAKvlB,EACzB,CAAC3I,EAAW89B,CAAY,EAAI5zB,EAAQ,UAACjU,EAAA0S,EAAM,YAAN,YAAA1S,EAAiB,OAAO,EAC7D8nC,EAAWC,EAAoB,qBACnCC,GACA,IAAM,GACN,IAAM,EACP,EACK,CAAE,YAAA90B,CAAa,EAAGsH,GAAuB,EAI/C,GAHA5G,EAAAA,UAAU,IAAM,CACdi0B,EAAa,IAAM,OAAA,OAAA7nC,EAAA0S,EAAM,YAAN,YAAA1S,EAAiB,QAAO,CAC/C,EAAK,CAAC0S,EAAM,SAAS,CAAC,EAChBo1B,GAAY7P,EAAU,OAAuBnC,EAAG,IAACmS,EAAQ,SAAE,CAAE,SAAAlvB,EAAU,EAC3E,MAAMmvB,EAAYn+B,GAAA,KAAAA,EAAao+B,GAAcj1B,CAAW,EACxD,OAAuB4iB,EAAG,IAACmS,EAAQ,SAAE,CAAE,SAAU9uB,EAAQ,SAAC,IAAIJ,EAAWnU,GAAUwjC,GAAY,aAACxjC,EAAOsjC,CAAS,CAAC,CAAC,CAAE,CACtH,EACMC,GAAiBt8B,GAAO,CAC5B,MAAM7H,EAAO6H,GAAA,YAAAA,IACPhH,EAAWb,EAAK,YAAa,EACnC,OAAIG,GAAaU,CAAQ,EAAUA,EAC5BE,GAAYf,CAAI,EAAE,IAC3B,EACMgkC,GAAY,IAAM,IAAM,CAC9B,EC3BM,CAACK,GAAoBC,EAAoB,EAAIppC,EAAc,CAC/D,KAAM,oBACN,SAAU,uBACV,aAAc,wBAChB,CAAC,ECJKqpC,GAAqB71B,GAAUA,EAAM,SAAS41B,GAAsB,CAAA,ECApE,CAACE,GAAwBC,EAAwB,EAAIvpC,EAAc,CACvE,KAAM,wBACN,SAAU,2BACV,aAAc,4BAChB,CAAC,ECJK,CAACwpC,GAA6BC,EAA6B,EAAIzpC,EAAc,CACjF,KAAM,6BACN,SAAU,gCACV,aAAc,iCAChB,CAAC,ECGK0pC,GAAiB/vB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAChD,KAAM,CAAC8zB,EAAWtO,CAAU,EAAI1gB,EAAgB,EAAGnH,EAAO,CAAC,QAAS,WAAY,SAAS,CAAC,EACpFo2B,EAAaR,GAAsB,EACnCzS,EAAcpjB,EAAWq2B,EAAW,aAAaD,CAAS,EAAGtO,CAAU,EACvEwO,EAAYD,EAAW,aAAaD,CAAS,EACnD,OAAuB/S,EAAG,IAAC0S,GAAwB,CAAE,MAAOO,EAAW,SAA0BjT,EAAAA,IAAI4S,GAA6B,CAAE,MAAOG,EAAW,SAA0B/S,EAAAA,IAAIlc,EAAI,MAAO,CAAE,GAAGic,EAAa,IAAA9gB,CAAG,CAAE,CAAG,CAAA,EAAG,CAC9N,CAAC,EACD6zB,GAAe,YAAc,iBCTxB,MAACI,GAAwBnwB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACvD,MAAM+zB,EAAaR,GAAsB,EACnCO,EAAYF,GAA+B,EAC3C9S,EAAcpjB,EAAWq2B,EAAW,oBAAoBD,CAAS,EAAGn2B,CAAK,EAC/E,OAAuBojB,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC7D,CAAC,EACDi0B,GAAsB,YAAc,wBCN/B,MAACC,GAA4BpwB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC3D,MAAM+zB,EAAaR,GAAsB,EACnCO,EAAYF,GAA+B,EAC3C9S,EAAcpjB,EAAWq2B,EAAW,wBAAwBD,CAAS,EAAGn2B,CAAK,EACnF,OAAuBojB,EAAAA,IAAIlc,EAAI,MAAO,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC/D,CAAC,EACDk0B,GAA0B,YAAc,4BCNnC,MAACC,GAAqBrwB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACpD,MAAM+zB,EAAaR,GAAsB,EACnCO,EAAYF,GAA+B,EAC3C9S,EAAcpjB,EAAWq2B,EAAW,iBAAiBD,CAAS,EAAGn2B,CAAK,EAC5E,OAAuBojB,EAAAA,IAAIlc,EAAI,KAAM,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC9D,CAAC,EACDm0B,GAAmB,YAAc,qBCP5B,MAACC,GAAkBtwB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACjD,MAAM+zB,EAAaR,GAAsB,EACnCzS,EAAcpjB,EAAWq2B,EAAW,cAAa,EAAIp2B,CAAK,EAChE,OAAuBojB,EAAAA,IAAIlc,EAAI,MAAO,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC/D,CAAC,EACDo0B,GAAgB,YAAc,kBCJ3B,IAAC5R,GAAUtd,GAAc,aAAa,EAAE,MACzC,OACA,QACA,OACA,WACA,cACA,WACF,EACIC,GAAQqd,GAAQ,MAAO,EACvBC,GAAazhB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,OAAT,KAAAmF,EAAiB,eAAe4Q,EAAI,EAAE,IAC3D0hB,GAAc1hB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,QAAT,KAAAmF,EAAkB,eAAe4Q,EAAI,EAAE,UAC7DqzB,GAAY,CAACrzB,EAAKlV,IAAK,WAAK,OAAAqE,GAAAC,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,OAAT,YAAAmF,EAAA,KAAAnF,EAAgBa,KAAhB,KAAAqE,EAA0B,eAAe6Q,EAAI,EAAE,UAAUlV,CAAK,IAC1FwoC,GAAuB,CAACtzB,EAAKlV,IAAK,WAAK,OAAAqE,GAAAC,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,kBAAT,YAAAmF,EAAA,KAAAnF,EAA2Ba,KAA3B,KAAAqE,EAAqC,eAAe6Q,EAAI,EAAE,gBAAgBlV,CAAK,IACtHyoC,GAAmB,CAACvzB,EAAKlV,IAAK,WAAK,OAAAqE,GAAAC,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,cAAT,YAAAmF,EAAA,KAAAnF,EAAuBa,KAAvB,KAAAqE,EAAiC,eAAe6Q,EAAI,EAAE,kBAAkBlV,CAAK,IAChH0oC,GAAiB,CAACxzB,EAAKlV,IAAK,WAAK,OAAAqE,GAAAC,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,YAAT,YAAAmF,EAAA,KAAAnF,EAAqBa,KAArB,KAAAqE,EAA+B,eAAe6Q,EAAI,EAAE,gBAAgBlV,CAAK,IAC1G2oC,GAAkBzzB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,YAAT,KAAAmF,EAAsB,eAAe4Q,EAAI,EAAE,cACrE6hB,GAAa7hB,GAAQA,EAAI,QAAQyhB,GAAUzhB,CAAG,CAAC,EAC/C0zB,GAAuB,CAAC1zB,EAAKlV,IAAUkV,EAAI,QAAQszB,GAAqBtzB,EAAKlV,CAAK,CAAC,EACnF6oC,GAAkB3zB,GAAQA,EAAI,QAAQyzB,GAAezzB,CAAG,CAAC,EACzD4zB,GAA0B5zB,GAAQ6hB,OAAAA,OAAAA,EAAAA,GAAU7hB,CAAG,IAAb6hB,YAAAA,EAAgB,cAAc,yBAChEgS,GAAoC7zB,GAAQ6hB,OAAAA,OAAAA,EAAAA,GAAU7hB,CAAG,IAAb6hB,YAAAA,EAAgB,cAAc,iCAC1EiS,GAAe9zB,GAAQ,CAEzB,MAAM3G,EAAW,mCADD,IAAI,OAAOooB,GAAUzhB,CAAG,CAAC,CACkB,qBAC3D,OAAO5G,GAASyoB,GAAU7hB,CAAG,EAAG3G,CAAQ,CAC1C,EACI06B,GAAa,CAAC/zB,EAAKlV,IAAU,CAC/B,GAAKA,EACL,OAAOkV,EAAI,QAAQqzB,GAAUrzB,EAAKlV,CAAK,CAAC,CAC1C,EACIkpC,GAAiBnmC,GAAQ,aAAA,OAC3B,MAAM5D,EAAA4D,GAAA,YAAAA,EAAI,aAAJ,KAAA5D,EAAkB,EACxB,KAAKmF,EAAAvB,GAAA,YAAAA,EAAI,YAAJ,KAAAuB,EAAiB,EACtB,OAAOD,EAAAtB,GAAA,YAAAA,EAAI,cAAJ,KAAAsB,EAAmB,EAC1B,QAAQ6B,EAAAnD,GAAA,YAAAA,EAAI,eAAJ,KAAAmD,EAAoB,CAC9B,GACIijC,GAAexsB,IAAU,CAC3B,MAAO,GAAGA,EAAK,KAAK,KACpB,OAAQ,GAAGA,EAAK,MAAM,KACtB,KAAM,GAAGA,EAAK,IAAI,KAClB,IAAK,GAAGA,EAAK,GAAG,IAClB,GAGA,SAASsa,GAAQC,EAASC,EAAW,CACnC,KAAM,CAAE,QAAAn4B,EAAS,KAAAkX,EAAM,SAAAf,EAAU,KAAAlU,EAAM,MAAA2T,CAAK,EAAKsiB,EAC3CkS,EAAgBj0B,EAAS,YAAY,EACrCkiB,EAAWp2B,EAAK,UAAU,EAChC,SAASooC,EAAavR,EAAQ,CAC5B,MAAMP,EAAUv4B,EAAQ,IAAI,cAAc,IAAM84B,EAAO,MACjDN,EAAeD,GAAWjB,GAAgB,EAChD,MAAO,CACL,MAAOwB,EAAO,MACd,QAAS,CAAC,CAACA,EAAO,QAClB,SAAU,CAAC,CAACA,EAAO,UAAYsR,EAC/B,QAASpqC,EAAQ,IAAI,OAAO,IAAM84B,EAAO,MACzC,QAAAP,EACA,aAAAC,EACA,QAASx4B,EAAQ,IAAI,cAAc,IAAM84B,EAAO,MAChD,OAAQ94B,EAAQ,IAAI,aAAa,IAAM84B,EAAO,KAC/C,CACL,CACE,SAASwR,EAAiBxR,EAAQ,CAChC,MAAMoQ,EAAYmB,EAAavR,CAAM,EACrC,MAAO,CACL,aAAct1B,EAAS0lC,EAAU,OAAO,EACxC,qBAAsB1lC,EAAS0lC,EAAU,YAAY,EACrD,gBAAiB1lC,EAAS0lC,EAAU,QAAQ,EAC5C,gBAAiB1lC,EAAS60B,CAAQ,EAClC,aAAc6Q,EAAU,QAAU,UAAY,YAC9C,aAAc1lC,EAAS0lC,EAAU,OAAO,EACxC,eAAgB1lC,EAAS0lC,EAAU,OAAO,EAC1C,mBAAoBjnC,EAAK,aAAa,EACtC,WAAYuB,EAASxD,EAAQ,IAAI,KAAK,CAAC,CACxC,CACL,CACE,MAAMm3B,EAAQ,IAAM,OAClB,MAAMoT,GAAcpqC,EAAA4pC,GAAiCn0B,CAAK,IAAtC,KAAAzV,EAA2C2pC,GAAuBl0B,CAAK,EAC3F20B,GAAA,MAAAA,EAAa,OACd,EACD,MAAO,CACL,MAAApT,EACA,MAAOn3B,EAAQ,IAAI,OAAO,EAC1B,SAASgB,EAAO,CACdkW,EAAK,CAAE,KAAM,YAAa,MAAAlW,EAAO,UAAW,GAAO,CACpD,EACD,YAAa,CACXkW,EAAK,CAAE,KAAM,YAAa,MAAO,KAAM,UAAW,GAAO,CAC1D,EACD,cAAe,CACb,OAAOihB,EAAU,QAAQ,CACvB,GAAG9d,GAAM,KAAK,MACd,KAAM,aACN,GAAIsd,GAAU/hB,CAAK,EACnB,kBAAmBgiB,GAAWhiB,CAAK,EACnC,mBAAoB3T,EAAK,aAAa,EACtC,gBAAiBuB,EAAS4mC,CAAa,EACvC,mBAAoBnoC,EAAK,aAAa,EACtC,IAAKA,EAAK,KAAK,EACf,MAAO,CACL,SAAU,UACpB,CACA,CAAO,CACF,EACD,eAAgB,CACd,OAAOk2B,EAAU,QAAQ,CACvB,GAAG9d,GAAM,MAAM,MACf,IAAKpY,EAAK,KAAK,EACf,mBAAoBA,EAAK,aAAa,EACtC,gBAAiBuB,EAAS4mC,CAAa,EACvC,GAAIxS,GAAWhiB,CAAK,EACpB,QAASuhB,CACjB,CAAO,CACF,EACD,aAAAkT,EACA,aAAavR,EAAQ,CACnB,MAAMoQ,EAAYmB,EAAavR,CAAM,EACrC,OAAOX,EAAU,MAAM,CACrB,GAAG9d,GAAM,KAAK,MACd,IAAKpY,EAAK,KAAK,EACf,GAAIsnC,GAAU3zB,EAAOkjB,EAAO,KAAK,EACjC,QAAS0Q,GAAqB5zB,EAAOkjB,EAAO,KAAK,EACjD,GAAGwR,EAAiBxR,CAAM,EAC1B,eAAgB,CACVoQ,EAAU,UACVA,EAAU,SACdhyB,EAAK,CAAE,KAAM,cAAe,MAAO4hB,EAAO,MAAO,QAAS,GAAM,CACjE,EACD,gBAAiB,CACXoQ,EAAU,UACdhyB,EAAK,CAAE,KAAM,cAAe,MAAO,IAAI,CAAE,CAC1C,EACD,cAAcjQ,EAAO,CACfiiC,EAAU,WACVA,EAAU,SAAWjiC,EAAM,cAAgB,SAC7CA,EAAM,eAAgB,EAExBiQ,EAAK,CAAE,KAAM,aAAc,MAAO4hB,EAAO,MAAO,OAAQ,GAAM,EAC/D,EACD,aAAc,CACRoQ,EAAU,UACdhyB,EAAK,CAAE,KAAM,aAAc,MAAO,IAAI,CAAE,CACzC,EACD,SAAU,OACJ,CAACgyB,EAAU,UAAYriC,QACzB1G,EAAAypC,GAAqBh0B,EAAOkjB,EAAO,KAAK,IAAxC,MAAA34B,EAA2C,QAEvD,CACA,CAAO,CACF,EACD,iBAAiB24B,EAAQ,CACvB,OAAOX,EAAU,QAAQ,CACvB,GAAG9d,GAAM,SAAS,MAClB,IAAKpY,EAAK,KAAK,EACf,GAAIynC,GAAe9zB,EAAOkjB,EAAO,KAAK,EACtC,GAAGwR,EAAiBxR,CAAM,CAClC,CAAO,CACF,EACD,oBAAoBA,EAAQ,CAC1B,MAAMoQ,EAAYmB,EAAavR,CAAM,EACrC,OAAOX,EAAU,QAAQ,CACvB,GAAG9d,GAAM,YAAY,MACrB,IAAKpY,EAAK,KAAK,EACf,GAAIwnC,GAAiB7zB,EAAOkjB,EAAO,KAAK,EACxC,cAAet1B,EAAS0lC,EAAU,MAAM,EACxC,cAAe,GACf,GAAGoB,EAAiBxR,CAAM,CAClC,CAAO,CACF,EACD,wBAAwBA,EAAQ,CAC9B,MAAMoQ,EAAYmB,EAAavR,CAAM,EACrC,OAAOX,EAAU,MAAM,CACrB,eAAgBR,GAAU/hB,CAAK,EAC/B,GAAI4zB,GAAqB5zB,EAAOkjB,EAAO,KAAK,EAC5C,KAAM,QACN,KAAM72B,EAAK,MAAM,GAAKA,EAAK,IAAI,EAC/B,KAAMA,EAAK,MAAM,EACjB,MAAO62B,EAAO,MACd,QAAQ7xB,EAAO,CACb,GAAIoxB,EAAU,CACZpxB,EAAM,eAAgB,EACtB,MACZ,CACcA,EAAM,cAAc,SACtBiQ,EAAK,CAAE,KAAM,YAAa,MAAO4hB,EAAO,MAAO,UAAW,GAAM,CAEnE,EACD,QAAS,CACP5hB,EAAK,CAAE,KAAM,cAAe,MAAO,KAAM,QAAS,GAAO,CAC1D,EACD,SAAU,CACRA,EAAK,CAAE,KAAM,cAAe,MAAO4hB,EAAO,MAAO,QAAS,GAAM,CACjE,EACD,UAAU7xB,EAAO,CACXA,EAAM,kBACNA,EAAM,MAAQ,KAChBiQ,EAAK,CAAE,KAAM,aAAc,MAAO4hB,EAAO,MAAO,OAAQ,GAAM,CAEjE,EACD,QAAQ7xB,EAAO,CACTA,EAAM,kBACNA,EAAM,MAAQ,KAChBiQ,EAAK,CAAE,KAAM,aAAc,MAAO,IAAI,CAAE,CAE3C,EACD,SAAUgyB,EAAU,SACpB,eAAgBA,EAAU,QAC1B,MAAOn3B,EACf,CAAO,CACF,EACD,mBAAoB,CAClB,MAAM4L,EAAO3d,EAAQ,IAAI,eAAe,EACxC,OAAOm4B,EAAU,QAAQ,CACvB,GAAIwR,GAAe/zB,CAAK,EACxB,GAAGyE,GAAM,UAAU,MACnB,IAAKpY,EAAK,KAAK,EACf,OAAQjC,EAAQ,IAAI,OAAO,GAAK,KAChC,gBAAiBwD,EAAS4mC,CAAa,EACvC,mBAAoBnoC,EAAK,aAAa,EACtC,MAAO,CACL,wBAAyB,2BACzB,SAAU0b,GAAA,YAAAA,EAAM,KAChB,QAASA,GAAA,YAAAA,EAAM,IACf,UAAWA,GAAA,YAAAA,EAAM,MACjB,WAAYA,GAAA,YAAAA,EAAM,OAClB,SAAU,WACV,WAAY,6BACZ,mBAAoB,6BACpB,mBAAoB3d,EAAQ,IAAI,wBAAwB,EAAI,oCAAsC,MAClG,yBAA0B,oCAC1B,CAACiC,EAAK,aAAa,IAAM,aAAe,OAAS,KAAK,EAAGA,EAAK,aAAa,IAAM,aAAe,cAAgB,YAC1H,CACA,CAAO,CACP,CACG,CACH,CACA,GAAI,CAAE42B,IAAAA,EAAK,EAAG/lB,GAAc,EACxB4C,GAAwB,CAC1B,MAAM,CAAE,MAAOojB,GAAU,CACvB,MAAO,CACL,YAAa,WACb,GAAGA,CACJ,CACF,EACD,cAAe,CACb,MAAO,MACR,EACD,QAAQ,CAAE,KAAA72B,EAAM,SAAA82B,GAAY,CAC1B,MAAO,CACL,MAAOA,EAAS,KAAO,CACrB,aAAc92B,EAAK,cAAc,EACjC,MAAOA,EAAK,OAAO,EACnB,SAASjB,EAAO,QACdb,EAAA8B,EAAK,eAAe,IAApB,MAAA9B,EAAwB,CAAE,MAAAa,GACpC,CACA,EAAQ,EACF,YAAa+3B,EAAS,KAAO,CAC3B,aAAc,IACtB,EAAQ,EACF,aAAcA,EAAS,KAAO,CAC5B,aAAc,IACtB,EAAQ,EACF,aAAcA,EAAS,KAAO,CAC5B,aAAc,IACtB,EAAQ,EACF,cAAeA,EAAS,KAAO,CAC7B,aAAc,CAAA,CACtB,EAAQ,EACF,uBAAwBA,EAAS,KAAO,CACtC,aAAc,EACtB,EAAQ,EACF,iBAAkBA,EAAS,KAAO,CAChC,aAAc,EACtB,EAAQ,EACF,IAAKA,EAAS,KAAO,CACnB,aAAc,EACtB,EAAQ,CACH,CACF,EACD,MAAO,CACL,MAAO,CACL,iBAAkB,IACnB,CACF,EACD,SAAU,CACR,WAAY,CAAC,CAAE,KAAA92B,EAAM,QAAAjC,KAAc,CAAC,CAACiC,EAAK,UAAU,GAAKjC,EAAQ,IAAI,kBAAkB,CACxF,EACD,MAAO,CAAC,oBAAqB,SAAS,EACtC,KAAM,CAAC,iBAAiB,EACxB,QAAS,CAAC,wBAAyB,mBAAmB,EACtD,MAAM,CAAE,MAAAg5B,EAAO,OAAA7hB,EAAQ,QAAAnX,CAAO,EAAI,CAChCg5B,EAAM,CAAC,IAAMh5B,EAAQ,IAAI,OAAO,CAAC,EAAG,IAAM,CACxCmX,EAAO,CAAC,yBAA0B,oBAAqB,mBAAmB,CAAC,CACjF,CAAK,CACF,EACD,GAAI,CACF,UAAW,CACT,CACE,MAAO0hB,GAAI,WAAW,EACtB,QAAS,CAAC,WAAY,qBAAqB,CAC5C,EACD,CACE,QAAS,CAAC,UAAU,CAC5B,CACK,EACD,YAAa,CACX,QAAS,CAAC,YAAY,CACvB,EACD,WAAY,CACV,QAAS,CAAC,WAAW,CACtB,EACD,YAAa,CACX,QAAS,CAAC,YAAY,CAC5B,CACG,EACD,OAAQ,CACN,KAAM,CAAA,CACP,EACD,gBAAiB,CACf,OAAQ,CACN,UAAW,CAAC,CAAE,MAAA5xB,KAAY,CAAC,CAACA,EAAM,SACnC,EACD,QAAS,CACP,sBAAsB,CAAE,QAAAjH,EAAS,MAAA4V,GAAS,CACxC,OAAOpM,GAAiBuuB,GAAUniB,CAAK,EAAG,CACxC,yBAAyBwiB,EAAU,CACjCp4B,EAAQ,IAAI,mBAAoBo4B,CAAQ,CACzC,EACD,aAAc,CACZp4B,EAAQ,IAAI,QAASA,EAAQ,QAAQ,OAAO,CAAC,CACzD,CACA,CAAS,CACF,EACD,kBAAkB,CAAE,MAAA4V,GAAS,OAC3B,OAAO2hB,GAAkB,CAAE,MAAMp3B,EAAAyV,EAAM,cAAN,YAAAzV,EAAA,KAAAyV,EAAqB,CAAE,CAChE,CACK,EACD,QAAS,CACP,SAAS,CAAE,QAAA5V,EAAS,MAAAiH,GAAS,CAC3BjH,EAAQ,IAAI,QAASiH,EAAM,KAAK,CACjC,EACD,WAAW,CAAE,QAAAjH,EAAS,MAAAiH,GAAS,CAC7BjH,EAAQ,IAAI,eAAgBiH,EAAM,KAAK,CACxC,EACD,UAAU,CAAE,QAAAjH,EAAS,MAAAiH,GAAS,CAC5BjH,EAAQ,IAAI,cAAeiH,EAAM,KAAK,CACvC,EACD,WAAW,CAAE,QAAAjH,EAAS,MAAAiH,GAAS,CAC7BjH,EAAQ,IAAI,eAAgBiH,EAAM,KAAK,CACxC,EACD,kBAAkB,CAAE,QAAAjH,EAAS,MAAA4V,GAAS,CACrBo0B,GAAYp0B,CAAK,EACzB,QAAS40B,GAAU,CACxBA,EAAM,QAAUA,EAAM,QAAUxqC,EAAQ,IAAI,OAAO,CAC7D,CAAS,CACF,EACD,uBAAuB,CAAE,QAAAA,GAAW,CAClCA,EAAQ,IAAI,yBAA0B4B,GAAS5B,EAAQ,IAAI,OAAO,CAAC,CAAC,CACrE,EACD,gBAAgB,CAAE,KAAAiV,GAAQ,QACxB9U,EAAA8U,EAAK,IAAI,kBAAkB,IAA3B,MAAA9U,GACD,EACD,QAAQ,CAAE,QAAAH,GAAW,CACnBA,EAAQ,IAAI,MAAO,EAAK,CACzB,EACD,kBAAkB,CAAE,QAAAA,EAAS,MAAA4V,EAAO,KAAAX,CAAI,EAAI,OAE1C,IADA9U,EAAA8U,EAAK,IAAI,kBAAkB,IAA3B,MAAA9U,IACI,CAAC0pC,GAAej0B,CAAK,EAAG,OAC5B,MAAM5U,EAAQhB,EAAQ,IAAI,OAAO,EAC3ByqC,EAAUR,GAAWr0B,EAAO5U,CAAK,EACvC,GAAIA,GAAS,MAAQ,CAACypC,EAAS,CAC7BzqC,EAAQ,IAAI,yBAA0B,EAAK,EAC3CA,EAAQ,IAAI,gBAAiB,EAAE,EAC/B,MACV,CACQ,MAAM0qC,EAAmB36B,GAAiB,CAAC06B,CAAO,EAAG,CACnD,QAAQ1mC,EAAI,CACV,OAAOmmC,GAAcnmC,CAAE,CACxB,EACD,QAAQ,CAAE,MAAAuM,GAAS,CACjBtQ,EAAQ,IAAI,gBAAiBmqC,GAAY75B,EAAM,CAAC,CAAC,CAAC,CAC9D,CACA,CAAS,EACD2E,EAAK,IAAI,mBAAoBy1B,CAAgB,CAC9C,EACD,oBAAoB,CAAE,QAAA1qC,EAAS,MAAA4V,GAAS,CACrBo0B,GAAYp0B,CAAK,EACzB,QAASujB,GAAY,CAC5B,MAAMxwB,EAAUwwB,EAAQ,QAAUn5B,EAAQ,IAAI,OAAO,EACjD2I,IAAYwwB,EAAQ,SACxBvwB,GAA0BuwB,EAAS,CAAE,QAAAxwB,EAAS,CACxD,CAAS,CACT,CACA,CACA,CACA,EACYiL,KAAc,CACxB,MACA,WACA,OACA,cACA,KACA,MACA,OACA,gBACA,cACA,WACA,QACA,cACF,CAAC,EAEeA,GAAW,EAAG,CAAC,QAAS,WAAY,SAAS,CAAC,EC5Z9D,MAAM+2B,GAAiB93B,GAAU,CAC/B,MAAMhH,EAAKyvB,EAAAA,MAAO,EACZ,CAAE,YAAAjoB,CAAa,EAAGsH,GAAuB,EACzC,CAAE,IAAA7S,CAAK,EAAG+S,GAAkB,EAC5B0gB,EAAe,CACnB,GAAA1vB,EACA,IAAA/D,EACA,YAAAuL,EACA,GAAGR,CACJ,EACKqlB,EAAUziB,GAAWm1B,GAAerP,CAAY,EACtD,OAAOsP,GAAc3S,EAAS7f,EAAc,CAC9C,ECVMyyB,GAAiB9xB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAChD,KAAM,CAAC61B,EAAoBrQ,CAAU,EAAI1gB,EAAgB,EAAGnH,EAAO,CACjE,eACA,WACA,OACA,KACA,MACA,OACA,gBACA,cACA,WACA,OACJ,CAAG,EACKo2B,EAAa0B,GAAcI,CAAkB,EAC7C/U,EAAcpjB,EAAWq2B,EAAW,aAAY,EAAIvO,CAAU,EACpE,OAAuBzE,EAAG,IAACuS,GAAoB,CAAE,MAAOS,EAAY,SAA0BhT,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,CAAG,CAAE,CAAC,CAAE,CACvI,CAAC,EACD41B,GAAe,YAAc,iBClBxB,MAACE,GAAyBhyB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACxD,KAAM,CAAC,CAAE,MAAO+zB,GAAcvO,CAAU,EAAI1gB,IAAmBnH,EAAO,CAAC,OAAO,CAAC,EACzEmjB,EAAcpjB,EAAWq2B,EAAW,aAAY,EAAIvO,CAAU,EACpE,OAAuBzE,EAAG,IAACuS,GAAoB,CAAE,MAAOS,EAAY,SAA0BhT,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,CAAG,CAAE,CAAC,CAAE,CACvI,CAAC,EACD81B,GAAuB,YAAc,yBCVrC,KAAM,CAACC,GAAgBC,EAAgB,EAAI7rC,EAAc,CACvD,KAAM,gBACN,SAAU,mBACV,aAAc,oBAChB,CAAC,ECEK8rC,GAAgBnyB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC/C,MAAMk2B,EAASF,GAAkB,EAC3BrK,EAAW/E,GAAoB,EAC/B9F,EAAcpjB,EAAWw4B,EAAO,gBAAiB,EAAEvK,EAAS,iBAAkB,EAAEhuB,CAAK,EAC3F,OAAIguB,EAAS,UACJ,KAEc5K,MAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAK1d,GAAYuoB,EAAS,IAAK3rB,CAAG,CAAC,CAAE,CAC7F,CAAC,EACDi2B,GAAc,YAAc,gBCXvB,MAACE,GAAgBryB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC/C,MAAMk2B,EAASF,GAAkB,EAC3BlV,EAAcpjB,EAAWw4B,EAAO,gBAAe,EAAIv4B,CAAK,EAC9D,OAAuBojB,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC7D,CAAC,EACDm2B,GAAc,YAAc,gBCT5B,KAAM,CAACC,GAAoBC,EAAoB,EAAIlsC,EAAc,CAC/D,KAAM,oBACN,SAAU,uBACV,aAAc,wBAChB,CAAC,ECJK,CAACmsC,GAAyBC,EAAyB,EAAIpsC,EAAc,CACzE,KAAM,yBACN,SAAU,4BACV,aAAc,6BAChB,CAAC,ECGKqsC,GAAa1yB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC5C,KAAM,CAAC8zB,EAAWtO,CAAU,EAAI1gB,EAAkB,EAACnH,EAAO,CAAC,OAAQ,cAAc,CAAC,EAC5Eu4B,EAASF,GAAkB,EAC3BlV,EAAcpjB,EAAWw4B,EAAO,aAAapC,CAAS,EAAGtO,CAAU,EACnEwO,EAAYkC,EAAO,aAAapC,CAAS,EAC/C,OAAuB/S,EAAG,IAACuV,GAAyB,CAAE,MAAOxC,EAAW,SAA0B/S,EAAAA,IAAIqV,GAAoB,CAAE,MAAOpC,EAAW,SAA0BjT,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,CAAG,CAAE,CAAG,CAAA,EAAG,CACpN,CAAC,EACDw2B,GAAW,YAAc,aCVpB,MAACC,GAAc3yB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC7C,MAAMk2B,EAASF,GAAkB,EAC3BlV,EAAcpjB,EAAWw4B,EAAO,cAAa,EAAIv4B,CAAK,EAC5D,OAAuBojB,EAAAA,IAAIlc,EAAI,MAAO,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC/D,CAAC,EACDy2B,GAAY,YAAc,cCJrB,MAACC,GAAmB5yB,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAClD,MAAMk2B,EAASF,GAAkB,EAC3BlV,EAAcpjB,EAAWw4B,EAAO,mBAAkB,EAAIv4B,CAAK,EAEjE,OADiBipB,GAAoB,EACxB,UACJ,KAEc7F,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC7D,CAAC,EACD02B,GAAiB,YAAc,mBCP5B,IAAClU,GAAUtd,GAAc,QAAQ,EAAE,MACpC,QACA,aACA,UACA,YACA,eACA,OACA,WACA,gBACA,YACA,iBACA,OACA,UACA,OACA,UACA,WACF,EACIC,EAAQqd,GAAQ,MAAO,EACvBmU,GAAcvsC,GACT,IAAIg+B,GAAeh+B,CAAO,EAEnCusC,GAAW,MAAQ,IACV,IAAIvO,GAAe,CAAE,MAAO,CAAE,CAAA,CAAE,EAIzC,IAAI3F,GAAazhB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,OAAT,KAAAmF,EAAiB,UAAU4Q,EAAI,EAAE,IACtDqwB,GAAgBrwB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,UAAT,KAAAmF,EAAoB,UAAU4Q,EAAI,EAAE,YAC5DswB,GAAgBtwB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,UAAT,KAAAmF,EAAoB,UAAU4Q,EAAI,EAAE,YAC5D41B,GAAqB51B,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,eAAT,KAAAmF,EAAyB,UAAU4Q,EAAI,EAAE,kBACtE0hB,GAAc1hB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,QAAT,KAAAmF,EAAkB,UAAU4Q,EAAI,EAAE,UACxD2hB,GAAgB3hB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,UAAT,KAAAmF,EAAoB,UAAU4Q,EAAI,EAAE,YAC5DqzB,GAAY,CAACrzB,EAAKrK,IAAE,WAAK,OAAAxG,GAAAC,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,OAAT,YAAAmF,EAAA,KAAAnF,EAAgB0L,KAAhB,KAAAxG,EAAuB,UAAU6Q,EAAI,EAAE,WAAWrK,CAAE,IAC7EkgC,GAAqB71B,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,eAAT,KAAAmF,EAAyB,UAAU4Q,EAAI,EAAE,WACtEmwB,GAAmBnwB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,aAAT,KAAAmF,EAAuB,UAAU4Q,EAAI,EAAE,eAClE81B,GAAiB,CAAC91B,EAAKrK,IAAE,WAAK,OAAAxG,GAAAC,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,YAAT,YAAAmF,EAAA,KAAAnF,EAAqB0L,KAArB,KAAAxG,EAA4B,UAAU6Q,EAAI,EAAE,aAAarK,CAAE,IACzFogC,GAAsB,CAAC/1B,EAAKrK,IAAE,WAAK,OAAAxG,GAAAC,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,iBAAT,YAAAmF,EAAA,KAAAnF,EAA0B0L,KAA1B,KAAAxG,EAAiC,UAAU6Q,EAAI,EAAE,mBAAmBrK,CAAE,IACzGqgC,GAAqBh2B,GAAQA,EAAI,QAAQ61B,GAAkB71B,CAAG,CAAC,EAC/D0wB,GAAgB1wB,GAAQA,EAAI,QAAQqwB,GAAarwB,CAAG,CAAC,EACrD6wB,GAAgB7wB,GAAQA,EAAI,QAAQswB,GAAatwB,CAAG,CAAC,EACrDi2B,GAAqBj2B,GAAQA,EAAI,QAAQ41B,GAAkB51B,CAAG,CAAC,EAC/D2wB,GAAmB3wB,GAAQA,EAAI,QAAQmwB,GAAgBnwB,CAAG,CAAC,EAC3Dk2B,GAAY,CAACl2B,EAAKrK,IAAOqK,EAAI,QAAQqzB,GAAUrzB,EAAKrK,CAAE,CAAC,EAG3D,SAASosB,GAAQC,EAASC,EAAW,CACnC,KAAM,CAAE,QAAAn4B,EAAS,KAAAiC,EAAM,MAAA2T,EAAO,MAAAiB,EAAO,SAAAV,EAAU,KAAAe,CAAI,EAAKghB,EAClDE,EAAWn2B,EAAK,UAAU,GAAKjC,EAAQ,IAAI,kBAAkB,EAC7Ds4B,EAAUr2B,EAAK,SAAS,EACxBo2B,EAAWp2B,EAAK,UAAU,EAC1BoqC,EAAYpqC,EAAK,WAAW,EAC5BqqC,EAAcrqC,EAAK,YAAY,EAC/BmlC,EAAOvwB,EAAM,OAAO,MAAM,EAC1B0hB,EAAU1hB,EAAM,QAAQ,SAAS,EACjC01B,EAAmBvsC,EAAQ,IAAI,kBAAkB,EACjDwsC,EAAkBxsC,EAAQ,IAAI,iBAAiB,EAC/CysC,EAAgBzsC,EAAQ,IAAI,eAAe,EAC3C0sC,EAAmB1sC,EAAQ,IAAI,kBAAkB,EACjD2sC,EAAgBx2B,EAAS,eAAe,EACxC6jB,EAAc7jB,EAAS,eAAe,EACtCy2B,EAAuBL,EAAmBhD,GAAU3zB,EAAO22B,CAAgB,EAAI,OACrF,SAASlC,EAAavR,EAAQ,CAC5B,MAAM+T,EAAYP,EAAY,gBAAgBxT,EAAO,IAAI,EACnD93B,EAAQsrC,EAAY,aAAaxT,EAAO,IAAI,EAClD,OAAA/1B,GAAO/B,EAAO,IAAM,oCAAoC,KAAK,UAAU83B,EAAO,IAAI,CAAC,EAAE,EAC9E,CACL,MAAA93B,EACA,SAAU,GAAQo3B,GAAYyU,GAC9B,YAAaN,IAAqBvrC,EAClC,SAAUhB,EAAQ,IAAI,OAAO,EAAE,SAASgB,CAAK,CAC9C,CACL,CACE,MAAM8rC,EAAenb,GAAmB,CACtC,GAAG1vB,EAAK,aAAa,EACrB,UAAWyqC,CACf,CAAG,EACD,MAAO,CACL,KAAAtF,EACA,QAAA7O,EACA,MAAOv4B,EAAQ,IAAI,OAAO,EAAE,SAAW,EACvC,gBAAAwsC,EACA,iBAAAD,EACA,cAAAE,EACA,iBAAkBt2B,EAAS,kBAAkB,EAC7C,MAAOnW,EAAQ,IAAI,OAAO,EAC1B,cAAeA,EAAQ,IAAI,eAAe,EAC1C,WAAYssC,EACZ,SAAU,CAAC,CAACrqC,EAAK,UAAU,EAC3B,SAAU,CAAC,CAACm2B,EACZ,WAAW94B,EAAU,GAAI,CACvB4X,EAAK,CAAE,KAAM,kBAAmB,QAAA5X,CAAO,CAAE,CAC1C,EACD,OAAQ,QACNynC,EAAAA,GAAanxB,CAAK,IAAlBmxB,MAAAA,EAAqB,MAAM,CAAE,cAAe,EAAI,EACjD,EACD,QAAQM,EAAU,CACFxwB,EAAM,OAAO,MAAM,IACnBwwB,GACdnwB,EAAK,CAAE,KAAMmwB,EAAW,OAAS,OAAO,CAAE,CAC3C,EACD,YAAYrmC,EAAO,CACjBkW,EAAK,CAAE,KAAM,cAAe,MAAAlW,CAAK,CAAE,CACpC,EACD,SAASA,EAAO,CACdkW,EAAK,CAAE,KAAM,YAAa,MAAAlW,CAAK,CAAE,CAClC,EACD,WAAY,CACVkW,EAAK,CAAE,KAAM,YAAa,MAAOo1B,EAAY,UAAS,EAAI,CAC3D,EACD,eAAetrC,EAAO,CACpBkW,EAAK,CAAE,KAAM,wBAAyB,MAAAlW,CAAK,CAAE,CAC9C,EACD,WAAWA,EAAO,CAEdkW,EADElW,EACG,CAAE,KAAM,aAAc,MAAAA,CAAK,EAE3B,CAAE,KAAM,cAFqB,CAIrC,EACD,aAAAqpC,EACA,cAAe,CACb,OAAOlS,EAAU,QAAQ,CACvB,GAAG9d,EAAM,KAAK,MACd,IAAKpY,EAAK,KAAK,EACf,GAAI01B,GAAU/hB,CAAK,EACnB,eAAgBpS,EAAS80B,CAAO,EAChC,gBAAiB90B,EAAS60B,CAAQ,CAC1C,CAAO,CACF,EACD,eAAgB,CACd,OAAOF,EAAU,MAAM,CACrB,IAAKl2B,EAAK,KAAK,EACf,GAAI21B,GAAWhiB,CAAK,EACpB,GAAGyE,EAAM,MAAM,MACf,gBAAiB7W,EAAS40B,CAAQ,EAClC,eAAgB50B,EAAS80B,CAAO,EAChC,gBAAiB90B,EAAS60B,CAAQ,EAClC,QAAS0T,GAAkBn2B,CAAK,EAChC,QAAQ3O,EAAO,OACTA,EAAM,kBACNmxB,IACJ2O,EAAAA,GAAanxB,CAAK,IAAlBmxB,MAAAA,EAAqB,MAAM,CAAE,cAAe,EAAI,EAC1D,CACA,CAAO,CACF,EACD,iBAAkB,CAChB,OAAO5O,EAAU,QAAQ,CACvB,GAAG9d,EAAM,QAAQ,MACjB,IAAKpY,EAAK,KAAK,EACf,GAAI41B,GAAajiB,CAAK,EACtB,aAAcwxB,EAAO,OAAS,SAC9B,aAAc5jC,EAAS+0B,CAAO,EAC9B,gBAAiB/0B,EAAS40B,CAAQ,EAClC,eAAgB50B,EAAS80B,CAAO,CACxC,CAAO,CACF,EACD,mBAAoB,CAClB,OAAOH,EAAU,QAAQ,CACvB,GAAG9d,EAAM,UAAU,MACnB,IAAKpY,EAAK,KAAK,EACf,gBAAiBuB,EAAS40B,CAAQ,EAClC,eAAgB50B,EAAS80B,CAAO,EAChC,aAAc90B,EAAS+0B,CAAO,CACtC,CAAO,CACF,EACD,iBAAkB,CAChB,OAAOJ,EAAU,OAAO,CACtB,GAAIqO,GAAa5wB,CAAK,EACtB,SAAAwiB,EACA,IAAKn2B,EAAK,KAAK,EACf,KAAM,SACN,KAAM,WACN,gBAAiBskC,GAAa3wB,CAAK,EACnC,gBAAiBwxB,EACjB,gBAAiB,UACjB,aAAcA,EAAO,OAAS,SAC9B,eAAgB9O,EAChB,kBAAmBV,GAAWhiB,CAAK,EACnC,GAAGyE,EAAM,QAAQ,MACjB,gBAAiB7W,EAAS40B,CAAQ,EAClC,eAAgB50B,EAAS80B,CAAO,EAChC,gBAAiB90B,EAAS60B,CAAQ,EAClC,iBAAkBqU,EAClB,yBAA0BlpC,EAAS,CAAC2S,EAAS,kBAAkB,CAAC,EAChE,QAAQlP,EAAO,CACR+yB,IACD/yB,EAAM,kBACViQ,EAAK,CAAE,KAAM,gBAAiB,EAC/B,EACD,SAAU,CACRA,EAAK,CAAE,KAAM,gBAAiB,CAC/B,EACD,QAAS,CACPA,EAAK,CAAE,KAAM,eAAgB,CAC9B,EACD,UAAUjQ,EAAO,CAEf,GADIA,EAAM,kBACN,CAAC+yB,EAAa,OA+BlB,MAAM9tB,EA9BS,CACb,SAAU,CACRgL,EAAK,CAAE,KAAM,mBAAoB,CAClC,EACD,UAAU61B,EAAQ,CAChB71B,EAAK,CAAE,KAAM61B,EAAO,OAAS,OAAS,qBAAsB,CAC7D,EACD,WAAY,CACV71B,EAAK,CAAE,KAAM,qBAAsB,CACpC,EACD,YAAa,CACXA,EAAK,CAAE,KAAM,sBAAuB,CACrC,EACD,MAAO,CACLA,EAAK,CAAE,KAAM,eAAgB,CAC9B,EACD,KAAM,CACJA,EAAK,CAAE,KAAM,cAAe,CAC7B,EACD,OAAQ,CACNA,EAAK,CAAE,KAAM,gBAAiB,CAC/B,EACD,MAAM61B,EAAQ,CAEV71B,EADEy1B,EACG,CAAE,KAAM,oBAAqB,IAAKI,EAAO,KAEzC,CAAE,KAAM,gBAFsC,CAInE,CACW,EACmBllC,GAAYZ,EAAO,CACrC,IAAKhF,EAAK,KAAK,EACf,YAAa,UACzB,CAAW,CAAC,EACF,GAAIiK,EAAM,CACRA,EAAKjF,CAAK,EACVA,EAAM,eAAgB,EACtB,MACZ,CACc4K,GAAe,aAAa5K,CAAK,IACnCiQ,EAAK,CAAE,KAAM,oBAAqB,IAAKjQ,EAAM,IAAK,EAClDA,EAAM,eAAgB,EAElC,CACA,CAAO,CACF,EACD,mBAAoB,CAClB,OAAOkxB,EAAU,QAAQ,CACvB,GAAG9d,EAAM,UAAU,MACnB,IAAKpY,EAAK,KAAK,EACf,cAAe,GACf,aAAcmlC,EAAO,OAAS,SAC9B,gBAAiB5jC,EAAS40B,CAAQ,EAClC,eAAgB50B,EAAS80B,CAAO,EAChC,gBAAiB90B,EAAS60B,CAAQ,CAC1C,CAAO,CACF,EACD,aAAaS,EAAQ,CACnB,MAAMoQ,EAAYmB,EAAavR,CAAM,EACrC,OAAOX,EAAU,QAAQ,CACvB,GAAIoR,GAAU3zB,EAAOszB,EAAU,KAAK,EACpC,KAAM,SACN,GAAG7uB,EAAM,KAAK,MACd,IAAKpY,EAAK,KAAK,EACf,aAAcinC,EAAU,MACxB,gBAAiBA,EAAU,SAC3B,aAAcA,EAAU,SAAW,UAAY,YAC/C,mBAAoB1lC,EAAS0lC,EAAU,WAAW,EAClD,gBAAiB1lC,EAAS0lC,EAAU,QAAQ,EAC5C,gBAAiBxlC,GAASwlC,EAAU,QAAQ,EAC5C,cAAcjiC,EAAO,CACfiiC,EAAU,UAAYjiC,EAAM,cAAgB,SAC5CiiC,EAAU,QAAUqD,GACxBr1B,EAAK,CAAE,KAAM,oBAAqB,MAAOgyB,EAAU,MAAO,CAC3D,EACD,QAAQjiC,EAAO,CACTA,EAAM,kBACNiiC,EAAU,UACdhyB,EAAK,CAAE,KAAM,aAAc,IAAK,YAAa,MAAOgyB,EAAU,MAAO,CACtE,EACD,eAAejiC,EAAO,OAChBiiC,EAAU,UACVpQ,EAAO,cACP7xB,EAAM,cAAgB,SAEtB,GADiB9G,EAAA+3B,EAAQ,MAAM,SAAQ,IAAtB,MAAA/3B,EAA0B,KAAK,SAAS,aAE7D+W,EAAK,CAAE,KAAM,qBAAsB,CAC7C,CACA,CAAO,CACF,EACD,iBAAiB4hB,EAAQ,CACvB,MAAMoQ,EAAYmB,EAAavR,CAAM,EACrC,OAAOX,EAAU,QAAQ,CACvB,GAAG9d,EAAM,SAAS,MAClB,aAAc6uB,EAAU,SAAW,UAAY,YAC/C,gBAAiB1lC,EAAS0lC,EAAU,QAAQ,EAC5C,mBAAoB1lC,EAAS0lC,EAAU,WAAW,CAC1D,CAAO,CACF,EACD,sBAAsBpQ,EAAQ,CAC5B,MAAMoQ,EAAYmB,EAAavR,CAAM,EACrC,OAAOX,EAAU,QAAQ,CACvB,cAAe,GACf,GAAG9d,EAAM,cAAc,MACvB,aAAc6uB,EAAU,SAAW,UAAY,YAC/C,OAAQ,CAACA,EAAU,QAC3B,CAAO,CACF,EACD,uBAAuBpQ,EAAQ,CAC7B,KAAM,CAAE,QAAAkU,CAAO,EAAKlU,EACpB,OAAOX,EAAU,QAAQ,CACvB,GAAG9d,EAAM,eAAe,MACxB,GAAI4xB,GAAoBr2B,EAAOo3B,CAAO,EACtC,IAAK/qC,EAAK,KAAK,EACf,KAAM,cACd,CAAO,CACF,EACD,kBAAkB62B,EAAQ,CACxB,KAAM,CAAE,GAAAjtB,CAAE,EAAKitB,EACf,OAAOX,EAAU,QAAQ,CACvB,GAAG9d,EAAM,UAAU,MACnB,gBAAiB7W,EAAS40B,CAAQ,EAClC,GAAI4T,GAAep2B,EAAO/J,CAAE,EAC5B,kBAAmBogC,GAAoBr2B,EAAO/J,CAAE,EAChD,KAAM,QACN,IAAK5J,EAAK,KAAK,CACvB,CAAO,CACF,EACD,sBAAuB,CACrB,OAAOk2B,EAAU,OAAO,CACtB,GAAG9d,EAAM,aAAa,MACtB,GAAIyxB,GAAkBl2B,CAAK,EAC3B,KAAM,SACN,aAAc,cACd,eAAgBpS,EAAS80B,CAAO,EAChC,SAAAF,EACA,OAAQ,CAACjiB,EAAS,kBAAkB,EACpC,IAAKlU,EAAK,KAAK,EACf,QAAQgF,EAAO,CACTA,EAAM,kBACViQ,EAAK,CAAE,KAAM,cAAe,CACtC,CACA,CAAO,CACF,EACD,sBAAuB,CACrB,MAAMlW,EAAQhB,EAAQ,IAAI,OAAO,EAC3BJ,EAAeqC,EAAK,UAAU,EAAIjB,EAAQA,GAAA,YAAAA,EAAQ,GACxD,OAAOm3B,EAAU,OAAO,CACtB,KAAMl2B,EAAK,MAAM,EACjB,KAAMA,EAAK,MAAM,EACjB,SAAAm2B,EACA,SAAUn2B,EAAK,UAAU,EACzB,SAAUA,EAAK,UAAU,EACzB,cAAe,GACf,GAAI8pC,GAAkBn2B,CAAK,EAC3B,aAAAhW,EACA,MAAOmS,GACP,SAAU,GAGV,SAAU,QACRg1B,EAAAA,GAAanxB,CAAK,IAAlBmxB,MAAAA,EAAqB,MAAM,CAAE,cAAe,EAAI,EACjD,EACD,kBAAmBnP,GAAWhiB,CAAK,CAC3C,CAAO,CACF,EACD,oBAAqB,CACnB,OAAOuiB,EAAU,QAAQ,CACvB,GAAG9d,EAAM,WAAW,MACpB,IAAKpY,EAAK,KAAK,EACf,GAAIokC,GAAgBzwB,CAAK,EACzB,MAAOk3B,EAAa,QAC5B,CAAO,CACF,EACD,iBAAkB,CAChB,OAAO3U,EAAU,QAAQ,CACvB,OAAQ,CAACiP,EACT,IAAKnlC,EAAK,KAAK,EACf,GAAIskC,GAAa3wB,CAAK,EACtB,KAAMy2B,EAAY,UAAY,SAC9B,GAAGhyB,EAAM,QAAQ,MACjB,aAAc+sB,EAAO,OAAS,SAC9B,iBAAkBsF,EAClB,wBAAyBE,EACzB,wBAAyBP,EAAYO,EAAuB,OAC5D,uBAAwB3qC,EAAK,UAAU,GAAKoqC,EAAY,GAAO,OAC/D,kBAAmBzU,GAAWhiB,CAAK,EACnC,SAAU,EACV,UAAU3O,EAAO,CAEf,GADI,CAAC+yB,GACD,CAAC3yB,GAAaJ,CAAK,EAAG,OAC1B,GAAIA,EAAM,MAAQ,OAEZ,CADUoE,GAAgBpE,CAAK,EACvB,CACVA,EAAM,eAAgB,EACtB,MACd,CAEU,MAAMU,EAAS,CACb,SAAU,CACRuP,EAAK,CAAE,KAAM,mBAAoB,CAClC,EACD,WAAY,CACVA,EAAK,CAAE,KAAM,qBAAsB,CACpC,EACD,MAAO,CACLA,EAAK,CAAE,KAAM,eAAgB,CAC9B,EACD,KAAM,CACJA,EAAK,CAAE,KAAM,cAAe,CAC7B,EACD,OAAQ,CACNA,EAAK,CAAE,KAAM,aAAc,IAAK,eAAe,CAAE,CAClD,EACD,MAAM61B,EAAQ,OACRJ,EACFz1B,EAAK,CAAE,KAAM,oBAAqB,IAAK61B,EAAO,IAAK,GAEnD5sC,EAAAwH,EAAO,QAAP,MAAAxH,EAAA,KAAAwH,EAAeolC,EAE/B,CACW,EACK7gC,EAAOvE,EAAOE,GAAYZ,CAAK,CAAC,EACtC,GAAIiF,EAAM,CACRA,EAAKjF,CAAK,EACVA,EAAM,eAAgB,EACtB,MACZ,CACU,MAAMmB,EAASjB,EAAeF,CAAK,EAC/BtC,GAAkByD,CAAM,GAGxByJ,GAAe,aAAa5K,CAAK,IACnCiQ,EAAK,CAAE,KAAM,oBAAqB,IAAKjQ,EAAM,IAAK,EAClDA,EAAM,eAAgB,EAElC,CACA,CAAO,CACF,EACD,cAAe,CACb,OAAOkxB,EAAU,QAAQ,CACvB,GAAG9d,EAAM,KAAK,MACd,SAAU,EACV,KAAOgyB,EAAwB,OAAZ,UACnB,kBAAmB7F,GAAa5wB,CAAK,EACrC,wBAA0By2B,EAAmC,OAAvBO,EACtC,uBAAwB,CAACP,GAAapqC,EAAK,UAAU,EAAI,GAAO,MACxE,CAAO,CACP,CACG,CACH,CACA,GAAI,CAAE,IAAAgrC,GAAKpU,IAAAA,GAAK,GAAAqU,EAAE,EAAKp6B,GAAc,EACjC4C,GAAwB,CAC1B,MAAM,CAAE,MAAOojB,GAAU,OACvB,MAAO,CACL,UAAW,GACX,cAAe,CAACA,EAAO,SACvB,UAAW,GACX,aAAc,CAAE,EAChB,GAAGA,EACH,YAAY34B,EAAA24B,EAAO,aAAP,KAAA34B,EAAqB0rC,GAAW,MAAO,EACnD,YAAa,CACX,UAAW,eACX,OAAQ,EACR,GAAG/S,EAAO,WAClB,CACK,CACF,EACD,QAAQ,CAAE,KAAA72B,EAAM,SAAA82B,GAAY,CAC1B,MAAO,CACL,MAAOA,EAAS,KAAO,CACrB,aAAc92B,EAAK,cAAc,EACjC,MAAOA,EAAK,OAAO,EACnB,QAAAZ,GACA,SAASL,EAAO,OACd,MAAMN,EAAQuB,EAAK,YAAY,EAAE,SAASjB,CAAK,EAC/C,OAAOb,EAAA8B,EAAK,eAAe,IAApB,YAAA9B,EAAwB,CAAE,MAAAa,EAAO,MAAAN,CAAK,EACvD,CACA,EAAQ,EACF,iBAAkBq4B,EAAS,KAAO,CAChC,aAAc92B,EAAK,yBAAyB,GAAK,KACjD,MAAOA,EAAK,kBAAkB,EAC9B,SAASjB,EAAO,QACdb,EAAA8B,EAAK,mBAAmB,IAAxB,MAAA9B,EAA4B,CAC1B,iBAAkBa,EAClB,gBAAiBiB,EAAK,YAAY,EAAE,KAAKjB,CAAK,EAC9C,iBAAkBiB,EAAK,YAAY,EAAE,QAAQjB,CAAK,CAC9D,EACA,CACA,EAAQ,EACF,iBAAkB+3B,EAAS,KAAO,CAChC,aAAc,MACtB,EAAQ,EACF,iBAAkBA,EAAS,KAAO,CAChC,aAAc,EACtB,EAAQ,EACF,gBAAiBA,EAAS,KAAO,CAC/B,aAAc,IACtB,EAAQ,EACF,cAAeA,EAAS,IAAM,SAC5B,MAAM/3B,GAAQsE,GAAAnF,EAAA8B,EAAK,OAAO,IAAZ,KAAA9B,EAAiB8B,EAAK,cAAc,IAApC,KAAAqD,EAAyC,CAAE,EAEzD,MAAO,CAAE,aADKrD,EAAK,YAAY,EAAE,SAASjB,CAAK,CACjB,CACtC,CAAO,EACD,cAAe+3B,EAAS,IAAM,SAC5B,MAAM/3B,GAAQsE,GAAAnF,EAAA8B,EAAK,OAAO,IAAZ,KAAA9B,EAAiB8B,EAAK,cAAc,IAApC,KAAAqD,EAAyC,CAAE,EACzD,MAAO,CAAE,aAAcrD,EAAK,YAAY,EAAE,cAAcjB,CAAK,CAAG,CACjE,CAAA,CACF,CACF,EACD,MAAO,CACL,MAAO,CACL,UAAW,CAAE,GAAG6Q,GAAe,cAAc,CAC9C,CACF,EACD,SAAU,CACR,iBAAkB,CAAC,CAAE,QAAA7R,KAAcA,EAAQ,IAAI,OAAO,EAAE,OAAS,EACjE,cAAe,CAAC,CAAE,KAAAiV,KAAWA,EAAK,IAAI,WAAW,EAAE,YAAc,GACjE,WAAY,CAAC,CAAE,KAAAhT,EAAM,QAAAjC,CAAS,IAAK,CAAC,CAACiC,EAAK,UAAU,GAAK,CAAC,CAACjC,EAAQ,IAAI,kBAAkB,EACzF,cAAe,CAAC,CAAE,KAAAiC,KAAW,EAAEA,EAAK,UAAU,GAAKA,EAAK,UAAU,EACnE,EACD,aAAa,CAAE,KAAAA,GAAQ,CAErB,OADaA,EAAK,MAAM,GAAKA,EAAK,aAAa,EACjC,OAAS,MACxB,EACD,MAAO,CAAC,mBAAmB,EAC3B,MAAM,CAAE,QAAAjC,EAAS,KAAAiC,EAAM,MAAA+2B,EAAO,OAAA7hB,CAAM,EAAI,CACtC6hB,EAAM,CAAC,IAAMh5B,EAAQ,IAAI,OAAO,EAAE,SAAU,CAAA,EAAG,IAAM,CACnDmX,EAAO,CAAC,oBAAqB,oBAAqB,qBAAqB,CAAC,CAC9E,CAAK,EACD6hB,EAAM,CAAC,IAAM/2B,EAAK,MAAM,CAAC,EAAG,IAAM,CAChCkV,EAAO,CAAC,kBAAkB,CAAC,CACjC,CAAK,EACD6hB,EAAM,CAAC,IAAMh5B,EAAQ,IAAI,kBAAkB,CAAC,EAAG,IAAM,CACnDmX,EAAO,CAAC,qBAAqB,CAAC,CACpC,CAAK,EACD6hB,EAAM,CAAC,IAAM/2B,EAAK,YAAY,EAAE,SAAU,CAAA,EAAG,IAAM,CACjDkV,EAAO,CAAC,gBAAgB,CAAC,CAC/B,CAAK,CACF,EACD,GAAI,CACF,wBAAyB,CACvB,QAAS,CAAC,oBAAoB,CAC/B,EACD,cAAe,CACb,QAAS,CAAC,YAAY,CACvB,EACD,aAAc,CACZ,QAAS,CAAC,WAAW,CACtB,EACD,YAAa,CACX,QAAS,CAAC,kBAAkB,CAC7B,EACD,cAAe,CACb,QAAS,CAAC,oBAAoB,CAC/B,EACD,cAAe,CACb,QAAS,CAAC,qBAAsB,gBAAgB,CACtD,CACG,EACD,QAAS,CAAC,uBAAuB,EACjC,OAAQ,CACN,KAAM,CACJ,KAAM,CAAC,QAAQ,EACf,GAAI,CACF,kBAAmB,CACjB,CACE,MAAO,sBACP,OAAQ,OACR,QAAS,CAAC,kBAAmB,4BAA4B,CAC1D,EACD,CACE,OAAQ,OACR,QAAS,CAAC,iBAAiB,CACvC,CACS,EACD,gBAAiB,CACf,CACE,MAAO,mBACP,QAAS,CAAC,cAAc,CACzB,EACD,CACE,OAAQ,OACR,QAAS,CAAC,eAAgB,kBAAmB,4BAA4B,CACrF,CACS,EACD,gBAAiB,CACf,OAAQ,SACT,EACD,KAAM,CACJ,CACE,MAAO,mBACP,QAAS,CAAC,cAAc,CACzB,EACD,CACE,OAAQ,OACR,QAAS,CAAC,kBAAmB,cAAc,CACvD,CACA,CACA,CACK,EACD,QAAS,CACP,KAAM,CAAC,QAAQ,EACf,GAAI,CACF,kBAAmB,CACjB,CACE,MAAO,sBACP,OAAQ,OACR,QAAS,CAAC,kBAAmB,4BAA4B,CAC1D,EACD,CACE,MAAO,wBACP,OAAQ,OACR,QAAS,CAAC,kBAAmB,2BAA2B,CACzD,EACD,CACE,MAAO+1B,GAAG,0BAA2B,qBAAqB,EAC1D,OAAQ,OACR,QAAS,CAAC,kBAAmB,4BAA4B,CAC1D,EACD,CACE,OAAQ,OACR,QAAS,CAAC,iBAAiB,CACvC,CACS,EACD,KAAM,CACJ,CACE,MAAO,mBACP,QAAS,CAAC,cAAc,CACzB,EACD,CACE,OAAQ,OACR,QAAS,CAAC,kBAAmB,cAAc,CACvD,CACS,EACD,eAAgB,CACd,OAAQ,MACT,EACD,gBAAiB,CACf,CACE,MAAO,mBACP,QAAS,CAAC,cAAc,CACzB,EACD,CACE,OAAQ,OACR,QAAS,CAAC,kBAAmB,eAAgB,4BAA4B,CACrF,CACS,EACD,gBAAiB,CACf,CACE,MAAO,mBACP,QAAS,CAAC,cAAc,CACzB,EACD,CACE,OAAQ,OACR,QAAS,CAAC,kBAAmB,eAAgB,4BAA4B,CACrF,CACS,EACD,mBAAoB,CAClB,CACE,MAAO,mBACP,QAAS,CAAC,cAAc,CACzB,EACD,CACE,OAAQ,OACR,QAAS,CAAC,kBAAmB,eAAgB,2BAA2B,CACpF,CACS,EACD,qBAAsB,CACpB,CACE,MAAO,mBACP,QAAS,CAAC,cAAc,CACzB,EACD,CACE,OAAQ,OACR,QAAS,CAAC,kBAAmB,eAAgB,4BAA4B,CACrF,CACS,EACD,qBAAsB,CACpB,CACE,MAAOD,GAAIpU,GAAI,UAAU,EAAG,kBAAkB,EAC9C,QAAS,CAAC,oBAAoB,CAC/B,EACD,CACE,MAAOA,GAAI,UAAU,EACrB,QAAS,CAAC,gBAAgB,CACtC,CACS,EACD,sBAAuB,CACrB,CACE,MAAOoU,GAAIpU,GAAI,UAAU,EAAG,kBAAkB,EAC9C,QAAS,CAAC,gBAAgB,CAC3B,EACD,CACE,MAAOA,GAAI,UAAU,EACrB,QAAS,CAAC,iBAAiB,CACvC,CACS,EACD,eAAgB,CACd,MAAOA,GAAI,UAAU,EACrB,QAAS,CAAC,iBAAiB,CAC5B,EACD,cAAe,CACb,MAAOA,GAAI,UAAU,EACrB,QAAS,CAAC,gBAAgB,CAC3B,EACD,oBAAqB,CACnB,MAAOA,GAAI,UAAU,EACrB,QAAS,CAAC,oBAAoB,CACxC,CACA,CACK,EACD,KAAM,CACJ,KAAM,CAAC,MAAM,EACb,KAAM,CAAC,oBAAoB,EAC3B,QAAS,CAAC,0BAA2B,mBAAoB,yBAAyB,EAClF,GAAI,CACF,mBAAoB,CAClB,OAAQ,UACR,QAAS,CAAC,iBAAkB,sBAAsB,CACnD,EACD,MAAO,CACL,CACE,MAAO,mBACP,QAAS,CAAC,eAAe,CAC1B,EACD,CACE,OAAQ,UACR,QAAS,CAAC,gBAAiB,iBAAkB,sBAAsB,CAC/E,CACS,EACD,gBAAiB,CACf,CACE,MAAO,mBACP,QAAS,CAAC,eAAe,CAC1B,EACD,CACE,OAAQ,UACR,QAAS,CAAC,gBAAiB,sBAAsB,CAC7D,CACS,EACD,aAAc,CACZ,CACE,MAAOoU,GAAI,gBAAiB,kBAAkB,EAC9C,QAAS,CAAC,wBAAyB,eAAe,CACnD,EACD,CACE,MAAO,gBACP,OAAQ,UACR,QAAS,CAAC,wBAAyB,gBAAiB,iBAAkB,sBAAsB,CAC7F,EACD,CACE,QAAS,CAAC,uBAAuB,CAC7C,CACS,EACD,eAAgB,CACd,QAAS,CAAC,oBAAoB,CAC/B,EACD,cAAe,CACb,QAAS,CAAC,mBAAmB,CAC9B,EACD,qBAAsB,CACpB,CACE,MAAOA,GAAI,qBAAsB,OAAQ,uBAAuB,EAChE,QAAS,CAAC,oBAAoB,CAC/B,EACD,CACE,MAAO,qBACP,QAAS,CAAC,mBAAmB,CAC9B,EACD,CACE,QAAS,CAAC,oBAAoB,CAC1C,CACS,EACD,mBAAoB,CAClB,CACE,MAAOA,GAAI,qBAAsB,OAAQ,wBAAwB,EACjE,QAAS,CAAC,mBAAmB,CAC9B,EACD,CACE,MAAO,qBACP,QAAS,CAAC,uBAAuB,CAClC,EACD,CACE,QAAS,CAAC,mBAAmB,CACzC,CACS,EACD,oBAAqB,CACnB,QAAS,CAAC,uBAAuB,CAClC,EACD,oBAAqB,CACnB,QAAS,CAAC,eAAe,CAC1B,EACD,qBAAsB,CACpB,QAAS,CAAC,sBAAsB,CACjC,EACD,kBAAmB,CACjB,QAAS,CAAC,YAAY,CAChC,CACA,CACA,CACG,EACD,gBAAiB,CACf,OAAQ,CACN,KAAM,CAAC,CAAE,KAAAhrC,CAAI,IAAO,CAAC,CAACA,EAAK,WAAW,EACtC,SAAU,CAAC,CAAE,KAAAA,CAAI,IAAO,CAAC,CAACA,EAAK,UAAU,EACzC,iBAAkB,CAAC,CAAE,SAAAkU,CAAQ,IAAO,CAAC,CAACA,EAAS,kBAAkB,EACjE,mBAAoB,CAAC,CAAE,QAAAnW,CAAS,IAAKA,EAAQ,IAAI,kBAAkB,GAAK,KACxE,uBAAwB,CAAC,CAAE,QAAAA,EAAS,KAAAiC,KAAWjC,EAAQ,IAAI,kBAAkB,IAAMiC,EAAK,YAAY,EAAE,WACtG,sBAAuB,CAAC,CAAE,QAAAjC,EAAS,KAAAiC,KAAWjC,EAAQ,IAAI,kBAAkB,IAAMiC,EAAK,YAAY,EAAE,UACrG,cAAe,CAAC,CAAE,KAAAA,EAAM,MAAAgF,CAAO,IAAA,OAAK,OAAC,GAAE9G,EAAA8G,EAAM,gBAAN,KAAA9G,EAAuB8B,EAAK,eAAe,IAElF,iBAAkB,CAAC,CAAE,KAAAA,CAAI,IAAOA,EAAK,MAAM,IAAM,OACjD,oBAAqB,CAAC,CAAE,MAAAgF,CAAK,IAAO,OAAA,QAAA9G,EAAA8G,EAAM,gBAAN,YAAA9G,EAAqB,QAAS,iBAClE,oBAAqB,CAAC,CAAE,MAAA8G,CAAK,IAAO,OAAA,QAAA9G,EAAA8G,EAAM,gBAAN,YAAA9G,EAAqB,QAAS,iBAClE,sBAAuB,CAAC,CAAE,MAAA8G,CAAK,IAAO,OAAA,QAAA9G,EAAA8G,EAAM,gBAAN,YAAA9G,EAAqB,QAAS,oBACpE,wBAAyB,CAAC,CAAE,MAAA8G,CAAK,IAAO,OAAA,QAAA9G,EAAA8G,EAAM,gBAAN,YAAA9G,EAAqB,QAAS,qBACvE,EACD,QAAS,CACP,sBAAsB,CAAE,QAAAH,EAAS,MAAA4V,GAAS,CACxC,OAAOpM,GAAiB0iC,GAAkBt2B,CAAK,EAAG,CAChD,yBAAyBwiB,EAAU,CACjCp4B,EAAQ,IAAI,mBAAoBo4B,CAAQ,CACzC,EACD,aAAc,CACZ,MAAMp3B,EAAQhB,EAAQ,QAAQ,OAAO,EACrCA,EAAQ,IAAI,QAASgB,CAAK,CACtC,CACA,CAAS,CACF,EACD,wBAAwB,CAAE,MAAA4U,EAAO,KAAAsB,EAAM,KAAAjV,CAAI,EAAI,CAC7C,MAAMivB,EAAY,IAAM0V,GAAahxB,CAAK,EAC1C,IAAIu3B,EAAe,GACnB,OAAO3X,GAAwBtE,EAAW,CACxC,MAAO,GACP,QAAS,CAAC6V,GAAanxB,CAAK,EAAGu2B,GAAkBv2B,CAAK,CAAC,EACvD,eAAgB3T,EAAK,gBAAgB,EACrC,qBAAsBA,EAAK,sBAAsB,EACjD,kBAAkBgF,EAAO,QACvB9G,EAAA8B,EAAK,mBAAmB,IAAxB,MAAA9B,EAA4B8G,GAC5BkmC,EAAe,EAAElmC,EAAM,OAAO,WAAaA,EAAM,OAAO,YACzD,EACD,WAAY,CACViQ,EAAK,CAAE,KAAM,QAAS,IAAK,mBAAoB,aAAAi2B,EAAc,CACzE,CACA,CAAS,CACF,EACD,iBAAiB,CAAE,QAAAntC,EAAS,KAAAiC,EAAM,MAAA2T,CAAK,EAAI,CACzC,MAAMw3B,EAAcnrC,EAAK,aAAa,EACtC,OAAAjC,EAAQ,IAAI,mBAAoBotC,EAAY,SAAS,EAG9C9b,GAFW,IAAMyV,GAAanxB,CAAK,EACrB,IAAMixB,GAAgBjxB,CAAK,EACH,CAC3C,MAAO,GACP,GAAGw3B,EACH,WAAW9tB,EAAM,CACftf,EAAQ,IAAI,mBAAoBsf,EAAK,SAAS,CAC1D,CACA,CAAS,CACF,EACD,wBAAwB,CAAE,QAAAtf,EAAS,KAAAiC,EAAM,MAAA2T,EAAO,MAAA3O,CAAK,EAAI,CACvD,MAAMiF,EAAQmhC,GAAc,CAC1B,MAAMd,EAAmBvsC,EAAQ,IAAI,kBAAkB,EAEvD,GADIusC,GAAoB,MACpBtlC,EAAM,QAAS,EAAC,KAAK,SAAS,SAAS,EAAG,OAC9C,MAAMqmC,EAAWlB,GAAUx2B,EAAO22B,CAAgB,EAC5CgB,EAAa3G,GAAahxB,CAAK,EAC/B43B,EAAkBvrC,EAAK,iBAAiB,EAC9C,GAAIurC,EAAiB,CACnB,MAAMC,EAAmBxrC,EAAK,YAAY,EAAE,QAAQsqC,CAAgB,EACpEiB,GAAA,MAAAA,EAAkB,CAAE,MAAOC,EAAkB,UAAAJ,CAAS,GACtD,MACZ,CACUhgC,GAAeigC,EAAU,CAAE,OAAQC,EAAY,MAAO,UAAW,CAClE,EACDzhC,OAAAA,EAAI,IAAMI,EAAK,EAAI,CAAC,EAEbK,GADW,IAAMq6B,GAAahxB,CAAK,EACN,CAElC,WAAY,CAAC,uBAAuB,EACpC,UAAW,CACT1J,EAAK,EAAK,CACtB,CACA,CAAS,CACT,CACK,EACD,QAAS,CACP,WAAW,CAAE,QAAAlM,EAAS,KAAAiC,EAAM,MAAA2T,EAAO,MAAA3O,CAAK,EAAI,CAC1C,MAAMymC,EAAe,IAAM7G,GAAgBjxB,CAAK,EAChD0b,GAAayV,GAAanxB,CAAK,EAAG83B,EAAc,CAC9C,GAAGzrC,EAAK,aAAa,EACrB,GAAGgF,EAAM,QACT,MAAO,GACP,UAAW,GACX,WAAWqY,EAAM,CACftf,EAAQ,IAAI,mBAAoBsf,EAAK,SAAS,CAC1D,CACA,CAAS,CACF,EACD,iBAAiB,CAAE,KAAApI,EAAM,KAAAjV,EAAM,MAAAgF,CAAK,EAAI,CACtCiQ,EAAK,CAAE,KAAMjV,EAAK,MAAM,EAAI,kBAAoB,mBAAoB,cAAegF,EAAO,CAC3F,EACD,sBAAsB,CAAE,QAAAjH,EAAS,KAAAiC,GAAQ,CACvC,MAAMsqC,EAAmBvsC,EAAQ,IAAI,kBAAkB,EACvD,GAAIusC,GAAoB,KAAM,OAC9B,MAAMvrC,EAAQiB,EAAK,YAAY,EAAE,iBAAiBsqC,EAAkB,EAAGtqC,EAAK,WAAW,CAAC,EACxFjC,EAAQ,IAAI,mBAAoBgB,CAAK,CACtC,EACD,kBAAkB,CAAE,QAAAhB,EAAS,KAAAiC,GAAQ,CACnC,MAAMsqC,EAAmBvsC,EAAQ,IAAI,kBAAkB,EACvD,GAAIusC,GAAoB,KAAM,OAC9B,MAAMvrC,EAAQiB,EAAK,YAAY,EAAE,aAAasqC,EAAkB,EAAGtqC,EAAK,WAAW,CAAC,EACpFjC,EAAQ,IAAI,mBAAoBgB,CAAK,CACtC,EACD,mBAAmB,CAAE,QAAAhB,EAAS,KAAAiC,GAAQ,CACpC,MAAMjB,EAAQiB,EAAK,YAAY,EAAE,WACjCjC,EAAQ,IAAI,mBAAoBgB,CAAK,CACtC,EACD,kBAAkB,CAAE,QAAAhB,EAAS,KAAAiC,GAAQ,CACnC,MAAMjB,EAAQiB,EAAK,YAAY,EAAE,UACjCjC,EAAQ,IAAI,mBAAoBgB,CAAK,CACtC,EACD,gBAAgB,CAAE,MAAA4U,GAAS,CACzB9J,EAAI,IAAM,CACR,MAAMvB,EAAUQ,GAAgB,CAC9B,KAAM67B,GAAahxB,CAAK,CACpC,CAAW,EACDrL,GAAA,MAAAA,EAAS,MAAM,CAAE,cAAe,EAAI,EAC9C,CAAS,CACF,EACD,eAAe,CAAE,MAAAtD,EAAO,MAAA2O,GAAS,SAC/B,MAAMu3B,GAAe7nC,EAAA2B,EAAM,eAAN,KAAA3B,GAAsBnF,EAAA8G,EAAM,gBAAN,YAAA9G,EAAqB,aAC5DgtC,GAAgB,MAAQ,CAACA,GAC7BrhC,EAAI,IAAM,CACR,MAAMvB,EAAUw8B,GAAanxB,CAAK,EAClCrL,GAAA,MAAAA,EAAS,MAAM,CAAE,cAAe,EAAI,EAC9C,CAAS,CACF,EACD,sBAAsB,CAAE,QAAAvK,EAAS,KAAAiC,EAAM,MAAAgF,CAAK,EAAI,OAC9C,IAAIjG,GAAQb,EAAA8G,EAAM,QAAN,KAAA9G,EAAeH,EAAQ,IAAI,kBAAkB,EACzD,GAAIgB,GAAS,KAAM,OAEnBA,EADiBiB,EAAK,cAAc,GAAK,CAACA,EAAK,UAAU,GAAKjC,EAAQ,IAAI,OAAO,EAAE,SAASgB,CAAK,EAC9E,KAAOA,EAC1BhB,EAAQ,IAAI,QAAUoR,GAChBpQ,GAAS,KAAa,CAAE,EACxBiB,EAAK,UAAU,EAAUpB,GAAYuQ,EAAMpQ,CAAK,EAC7C,CAACA,CAAK,CACd,CACF,EACD,2BAA2B,CAAE,QAAAhB,EAAS,KAAAiC,EAAM,SAAAkU,CAAQ,EAAI,CACtD,MAAMm2B,EAAcrqC,EAAK,YAAY,EAC/BjB,EAAQmV,EAAS,kBAAkB,EAAIm2B,EAAY,KAAKtsC,EAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,EAAIssC,EAAY,WACrGtsC,EAAQ,IAAI,mBAAoBgB,CAAK,CACtC,EACD,0BAA0B,CAAE,QAAAhB,EAAS,KAAAiC,EAAM,SAAAkU,CAAQ,EAAI,CACrD,MAAMm2B,EAAcrqC,EAAK,YAAY,EAC/BjB,EAAQmV,EAAS,kBAAkB,EAAIm2B,EAAY,KAAKtsC,EAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,EAAIssC,EAAY,UACrGtsC,EAAQ,IAAI,mBAAoBgB,CAAK,CACtC,EACD,2BAA2B,CAAE,QAAAhB,EAAS,KAAAiC,EAAM,SAAAkU,CAAQ,EAAI,CACtD,GAAI,CAACA,EAAS,kBAAkB,EAAG,OACnC,MAAMnV,EAAQiB,EAAK,YAAY,EAAE,KAAKjC,EAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,EAC7DA,EAAQ,IAAI,mBAAoBgB,CAAK,CACtC,EACD,cAAc,CAAE,QAAAhB,EAAS,MAAAiH,GAAS,CAChCjH,EAAQ,IAAI,mBAAoBiH,EAAM,KAAK,CAC5C,EACD,sBAAsB,CAAE,QAAAjH,EAAS,KAAAiC,EAAM,MAAAgF,EAAO,KAAAgO,CAAI,EAAI,CACpD,MAAMjU,EAAQiB,EAAK,YAAY,EAAE,OAAOgF,EAAM,IAAK,CACjD,MAAOgO,EAAK,IAAI,WAAW,EAC3B,aAAcjV,EAAQ,IAAI,kBAAkB,CACtD,CAAS,EACGgB,GAAS,MACbhB,EAAQ,IAAI,mBAAoBgB,CAAK,CACtC,EACD,mBAAmB,CAAE,QAAAhB,EAAS,MAAAiH,GAAS,CACrCjH,EAAQ,IAAI,mBAAoBiH,EAAM,KAAK,CAC5C,EACD,qBAAqB,CAAE,QAAAjH,GAAW,CAChCA,EAAQ,IAAI,mBAAoB,IAAI,CACrC,EACD,WAAW,CAAE,QAAAA,EAAS,KAAAiC,EAAM,MAAAgF,CAAK,EAAI,CAEnC,MAAMjG,EADWiB,EAAK,cAAc,GAAK,CAACA,EAAK,UAAU,GAAKjC,EAAQ,IAAI,OAAO,EAAE,SAASiH,EAAM,KAAK,EAC9E,KAAOA,EAAM,MACtCjH,EAAQ,IAAI,QAAUoR,GAChBpQ,GAAS,KAAa,CAAE,EACxBiB,EAAK,UAAU,EAAUpB,GAAYuQ,EAAMpQ,CAAK,EAC7C,CAACA,CAAK,CACd,CACF,EACD,UAAU,CAAE,QAAAhB,EAAS,MAAAiH,GAAS,CAC5BjH,EAAQ,IAAI,QAAUoR,GAASA,EAAK,OAAQ/Q,GAAMA,IAAM4G,EAAM,KAAK,CAAC,CACrE,EACD,iBAAiB,CAAE,QAAAjH,EAAS,MAAAiH,GAAS,CACnCjH,EAAQ,IAAI,QAASiH,EAAM,KAAK,CACjC,EACD,mBAAmB,CAAE,QAAAjH,GAAW,CAC9BA,EAAQ,IAAI,QAAS,EAAE,CACxB,EACD,mBAAmB,CAAE,QAAAA,EAAS,KAAAiC,GAAQ,CACpC,KAAM,CAAC0rC,CAAS,EAAI3tC,EAAQ,IAAI,OAAO,EACjCgB,EAAQiB,EAAK,YAAY,EAAE,iBAAiB0rC,CAAS,EACvD3sC,GAAOhB,EAAQ,IAAI,QAAS,CAACgB,CAAK,CAAC,CACxC,EACD,eAAe,CAAE,QAAAhB,EAAS,KAAAiC,GAAQ,CAChC,KAAM,CAAC0rC,CAAS,EAAI3tC,EAAQ,IAAI,OAAO,EACjCgB,EAAQiB,EAAK,YAAY,EAAE,aAAa0rC,CAAS,EACnD3sC,GAAOhB,EAAQ,IAAI,QAAS,CAACgB,CAAK,CAAC,CACxC,EACD,gBAAgB,CAAE,QAAAhB,EAAS,KAAAiC,GAAQ,CACjC,MAAMjB,EAAQiB,EAAK,YAAY,EAAE,WAC7BjB,GAAOhB,EAAQ,IAAI,QAAS,CAACgB,CAAK,CAAC,CACxC,EACD,eAAe,CAAE,QAAAhB,EAAS,KAAAiC,GAAQ,CAChC,MAAMjB,EAAQiB,EAAK,YAAY,EAAE,UAC7BjB,GAAOhB,EAAQ,IAAI,QAAS,CAACgB,CAAK,CAAC,CACxC,EACD,mBAAmB,CAAE,QAAAhB,EAAS,KAAAiC,EAAM,MAAAgF,EAAO,KAAAgO,CAAI,EAAI,CACjD,MAAMjU,EAAQiB,EAAK,YAAY,EAAE,OAAOgF,EAAM,IAAK,CACjD,MAAOgO,EAAK,IAAI,WAAW,EAC3B,aAAcjV,EAAQ,IAAI,OAAO,EAAE,CAAC,CAC9C,CAAS,EACGgB,GAAS,MACbhB,EAAQ,IAAI,QAAS,CAACgB,CAAK,CAAC,CAC7B,EACD,mBAAmB,CAAE,KAAAiB,EAAM,MAAA2T,GAAS,SAC9B3T,EAAK,iBAAiB,GACxB9B,EAAA8B,EAAK,iBAAiB,IAAtB,MAAA9B,EAA0B,CAAE,MAAO,EAAG,UAAW,MAEjDymC,EAAAA,GAAahxB,CAAK,IAAlBgxB,MAAAA,EAAqB,SAAS,EAAG,EAEpC,EACD,aAAa,CAAE,KAAA3kC,GAAQ,QACrB9B,EAAA8B,EAAK,cAAc,IAAnB,MAAA9B,EAAuB,CAAE,KAAM,EAAI,EACpC,EACD,cAAc,CAAE,KAAA8B,GAAQ,QACtB9B,EAAA8B,EAAK,cAAc,IAAnB,MAAA9B,EAAuB,CAAE,KAAM,EAAK,EACrC,EACD,kBAAkB,CAAE,QAAAH,EAAS,KAAAiC,EAAM,MAAA2T,CAAK,EAAI,CAC1C,MAAMg4B,EAAW1B,GAAkBt2B,CAAK,EACxC,GAAKg4B,EACL,IAAI5tC,EAAQ,IAAI,OAAO,EAAE,SAAW,GAAK,CAACiC,EAAK,UAAU,EAAG,CAC1D2rC,EAAS,cAAgB,GACzB,MACV,CACQ,UAAWC,KAAUD,EAAS,QAC5BC,EAAO,SAAW7tC,EAAQ,IAAI,OAAO,EAAE,SAAS6tC,EAAO,KAAK,EAE/D,EACD,eAAe,CAAE,QAAA7tC,EAAS,KAAAiC,GAAQ,CAChC,MAAMqqC,EAAcrqC,EAAK,YAAY,EAC/BuqC,EAAkBF,EAAY,KAAKtsC,EAAQ,IAAI,kBAAkB,CAAC,EACpEwsC,GAAiBxsC,EAAQ,IAAI,kBAAmBwsC,CAAe,EACnE,MAAMC,EAAgBH,EAAY,SAAStsC,EAAQ,IAAI,OAAO,CAAC,EAC/DA,EAAQ,IAAI,gBAAiBysC,CAAa,EAC1C,MAAMqB,EAAgBxB,EAAY,eAAeG,CAAa,EAC9DzsC,EAAQ,IAAI,gBAAiB8tC,CAAa,CAC3C,EACD,kBAAkB,CAAE,QAAA9tC,EAAS,KAAAiC,GAAQ,CACnC,MAAMqqC,EAAcrqC,EAAK,YAAY,EAC/B8rC,EAAoB/tC,EAAQ,IAAI,eAAe,EAE/CysC,EADQzsC,EAAQ,IAAI,OAAO,EACL,IAAK2U,GAClBo5B,EAAkB,KAAM9P,GAAUqO,EAAY,aAAarO,CAAK,IAAMtpB,CAAM,GAC1E23B,EAAY,KAAK33B,CAAM,CACvC,EACD3U,EAAQ,IAAI,gBAAiBysC,CAAa,EAC1CzsC,EAAQ,IAAI,gBAAiBssC,EAAY,eAAeG,CAAa,CAAC,CACvE,EACD,oBAAoB,CAAE,QAAAzsC,EAAS,KAAAiC,GAAQ,CACrC,MAAMqqC,EAAcrqC,EAAK,YAAY,EAC/BsqC,EAAmBvsC,EAAQ,IAAI,kBAAkB,EACjDwsC,EAAkBD,EAAmBD,EAAY,KAAKC,CAAgB,EAAI,KAChFvsC,EAAQ,IAAI,kBAAmBwsC,CAAe,CAC/C,EACD,oBAAoB,CAAE,MAAA52B,GAAS,CAC7B,eAAe,IAAM,CACnB,MAAMzR,EAAO+nC,GAAkBt2B,CAAK,EACpC,GAAI,CAACzR,EAAM,OACX,MAAM2E,EAAM8M,EAAM,OAAQ,EACpBo4B,EAAc,IAAIllC,EAAI,MAAM,SAAU,CAAE,QAAS,GAAM,SAAU,GAAM,EAC7E3E,EAAK,cAAc6pC,CAAW,CACxC,CAAS,CACT,CACA,CACA,CACA,EACYp6B,KAAc,CACxB,gBACA,aACA,MACA,WACA,eACA,OACA,cACA,mBACA,KACA,MACA,UACA,YACA,WACA,OACA,iBACA,oBACA,oBACA,eACA,uBACA,gBACA,cACA,OACA,YACA,cACA,WACA,WACA,kBACA,QACA,eACA,yBACF,CAAC,EAEeA,KAAc,CAAC,OAAQ,cAAc,CAAC,EAEjCA,GAAa,EAAC,CAAC,IAAI,CAAC,EAEfA,GAAa,EAAC,CAAC,SAAS,CAAC,ECpmCnD,MAAMq6B,GAAap7B,GAAU,CAC3B,MAAMhH,EAAKyvB,EAAAA,MAAO,EACZ,CAAE,IAAAxzB,CAAK,EAAG+S,GAAkB,EAC5B,CAAE,YAAAxH,CAAa,EAAGsH,GAAuB,EACzCogB,EAAQF,GAAiB,EACzBU,EAAe,CACnB,GAAA1vB,EACA,IAAK,CACH,MAAOkvB,GAAA,YAAAA,EAAO,IAAI,MAClB,aAAcA,GAAA,YAAAA,EAAO,IAAI,OAC1B,EACD,SAAUA,GAAA,YAAAA,EAAO,SACjB,SAAUA,GAAA,YAAAA,EAAO,SACjB,QAASA,GAAA,YAAAA,EAAO,QAChB,SAAUA,GAAA,YAAAA,EAAO,SACjB,IAAAjzB,EACA,YAAAuL,EACA,GAAGR,CACJ,EACKqlB,EAAUziB,GAAWy4B,GAAgB3S,CAAY,EACvD,OAAO4S,GAAejW,EAAS7f,EAAc,CAC/C,ECjBM+1B,GAAa,CAACv7B,EAAOqC,IAAQ,CACjC,KAAM,CAAC0yB,EAAeyG,CAAW,EAAItS,GAAmBlpB,CAAK,EACvD,CAACy7B,EAAgB5T,CAAU,EAAI1gB,EAAgB,EAAGq0B,EAAa,CACnE,gBACA,aACA,YACA,0BACA,cACA,eACA,eACA,WACA,OACA,mBACA,KACA,MACA,UACA,YACA,WACA,OACA,iBACA,oBACA,oBACA,eACA,uBACA,gBACA,OACA,cACA,WACA,WACA,kBACA,OACJ,CAAG,EACKjD,EAAS6C,GAAUK,CAAc,EACjCzN,EAAWrE,GAAY5pB,EAAW,CAAE,QAASw4B,EAAO,MAAQxD,CAAa,CAAC,EAC1E5R,EAAcpjB,EAAWw4B,EAAO,aAAY,EAAI1Q,CAAU,EAChE,OAAuBzE,EAAG,IAACgV,GAAgB,CAAE,MAAOG,EAAQ,SAA0BnV,EAAAA,IAAI4F,GAAkB,CAAE,MAAOgF,EAAU,SAA0B5K,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,CAAG,CAAE,CAAG,CAAA,EAAG,CACrM,EACMq5B,GAAav1B,EAAU,WAACo1B,EAAU,EC1ClCI,GAAgBx1B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC/C,MAAMk2B,EAASF,GAAkB,EAC3BlV,EAAcpjB,EAAWw4B,EAAO,gBAAe,EAAIv4B,CAAK,EAC9D,OAAuBojB,EAAAA,IAAIlc,EAAI,OAAQ,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAChE,CAAC,EACDs5B,GAAc,YAAc,gBCLvB,MAACC,GAAkBz1B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACjD,KAAM,CAAE,SAAAgE,EAAU,YAAAw1B,EAAa,GAAGC,CAAY,EAAG97B,EAC3Cu4B,EAASF,GAAkB,EAC3BlV,EAAcpjB,EAAWw4B,EAAO,kBAAiB,EAAIuD,CAAU,EACrE,OAAuB1Y,MAAIlc,EAAI,KAAM,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,SAAUgE,GAAYkyB,EAAO,eAAiBsD,CAAW,CAAE,CACzH,CAAC,EACDD,GAAgB,YAAc,kBCV9B,KAAM,CAACG,GAAgBC,EAAgB,EAAIxvC,EAAc,CACvD,KAAM,gBACN,SAAU,mBACV,aAAc,oBAChB,CAAC,ECAKyvC,GAAgB91B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC/C,MAAM65B,EAAgBF,GAAkB,EAClC7Y,EAAcpjB,EAAWm8B,EAAc,gBAAe,EAAIl8B,CAAK,EACrE,OAAuBojB,EAAAA,IAAIlc,EAAI,KAAM,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC9D,CAAC,EACD45B,GAAc,YAAc,gBCJvB,MAACE,GAAoBh2B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACnD,MAAM65B,EAAgBF,GAAkB,EAClC7Y,EAAcpjB,EAAWm8B,EAAc,oBAAmB,EAAIl8B,CAAK,EACnEkoB,EAAQF,GAAiB,EAC/B,OAAuB5E,EAAG,IAAClc,EAAI,MAAO,CAAE,mBAAoBghB,GAAA,YAAAA,EAAO,gBAAiB,GAAG/E,EAAa,IAAA9gB,EAAK,CAC3G,CAAC,EACD85B,GAAkB,YAAc,oBCP3B,MAACC,GAAcj2B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC7C,MAAM65B,EAAgBF,GAAkB,EAClC7Y,EAAcpjB,EAAWm8B,EAAc,cAAa,EAAIl8B,CAAK,EACnE,OAAuBojB,EAAAA,IAAIlc,EAAI,KAAM,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC9D,CAAC,EACD+5B,GAAY,YAAc,cCJvB,IAACvX,GAAUtd,GAAc,QAAQ,EAAE,MAAM,OAAQ,QAAS,UAAW,OAAO,EAC3EC,GAAQqd,GAAQ,MAAO,EAGvBC,GAAazhB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,OAAT,KAAAmF,EAAiB,UAAU4Q,EAAI,EAAE,IACtD0hB,GAAc1hB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,QAAT,KAAAmF,EAAkB,UAAU4Q,EAAI,EAAE,UACxDg5B,GAAch5B,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,QAAT,KAAAmF,EAAkB,UAAU4Q,EAAI,EAAE,UACxD2hB,GAAgB3hB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,UAAT,KAAAmF,EAAoB,UAAU4Q,EAAI,EAAE,YAC5D4hB,GAAoB5hB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,cAAT,KAAAmF,EAAwB,UAAU4Q,EAAI,EAAE,UACpE6hB,GAAa7hB,GAAQA,EAAI,QAAQyhB,GAAUzhB,CAAG,CAAC,EAC/C8hB,GAAoB9hB,GAAQA,EAAI,QAAQ4hB,GAAiB5hB,CAAG,CAAC,EAGjE,SAAS+hB,GAAQC,EAASC,EAAW,CACnC,KAAM,CAAE,QAAAn4B,EAAS,KAAAkX,EAAM,KAAAjV,EAAM,MAAA2T,CAAO,EAAGsiB,EACjCE,EAAWn2B,EAAK,UAAU,EAC1Bo2B,EAAWp2B,EAAK,UAAU,EAC1B0G,EAAU,CAAC,CAAC3I,EAAQ,IAAI,SAAS,EACjCu4B,EAAU,CAACH,GAAYp4B,EAAQ,IAAI,SAAS,EAC5Cw4B,EAAe,CAACJ,GAAYp4B,EAAQ,IAAI,cAAc,EACtD04B,EAAY,CAChB,cAAel1B,EAASxD,EAAQ,IAAI,QAAQ,CAAC,EAC7C,aAAcwD,EAAS+0B,CAAO,EAC9B,qBAAsB/0B,EAASg1B,CAAY,EAC3C,gBAAiBh1B,EAAS60B,CAAQ,EAClC,aAAc70B,EAASxD,EAAQ,IAAI,SAAS,CAAC,EAC7C,gBAAiBwD,EAAS40B,CAAQ,EAClC,aAAczvB,EAAU,UAAY,YACpC,eAAgBnF,EAASvB,EAAK,SAAS,CAAC,CACzC,EACD,MAAO,CACL,QAAA0G,EACA,SAAAyvB,EACA,QAAAG,EACA,WAAWI,EAAU,CACnBzhB,EAAK,CAAE,KAAM,cAAe,QAASyhB,EAAU,UAAW,GAAO,CAClE,EACD,eAAgB,CACdzhB,EAAK,CAAE,KAAM,iBAAkB,QAAAvO,EAAS,UAAW,GAAO,CAC3D,EACD,cAAe,CACb,OAAOwvB,EAAU,MAAM,CACrB,GAAG9d,GAAM,KAAK,MACd,GAAGqe,EACH,IAAKz2B,EAAK,KAAK,EACf,GAAI01B,GAAU/hB,CAAK,EACnB,QAASkiB,GAAiBliB,CAAK,EAC/B,eAAgB,CACVwiB,GACJlhB,EAAK,CAAE,KAAM,cAAe,QAAS,CAAE,QAAS,EAAI,EAAI,CACzD,EACD,gBAAiB,CACXkhB,GACJlhB,EAAK,CAAE,KAAM,cAAe,QAAS,CAAE,QAAS,EAAK,EAAI,CAC1D,EACD,QAAQjQ,EAAO,OACb,GAAImxB,EAAU,OACCjxB,EAAeF,CAAK,IACpB+wB,GAAiBpiB,CAAK,GACnC3O,EAAM,gBAAiB,EAErBJ,GAAQ,KACV1G,EAAA63B,GAAiBpiB,CAAK,IAAtB,MAAAzV,EAAyB,QAErC,CACA,CAAO,CACF,EACD,eAAgB,CACd,OAAOg4B,EAAU,QAAQ,CACvB,GAAG9d,GAAM,MAAM,MACf,GAAGqe,EACH,IAAKz2B,EAAK,KAAK,EACf,GAAI21B,GAAWhiB,CAAK,CAC5B,CAAO,CACF,EACD,eAAgB,CACd,OAAOuiB,EAAU,QAAQ,CACvB,GAAG9d,GAAM,MAAM,MACf,GAAGqe,EACH,IAAKz2B,EAAK,KAAK,EACf,GAAIitC,GAAWt5B,CAAK,EACpB,cAAe,EACvB,CAAO,CACF,EACD,iBAAkB,CAChB,OAAOuiB,EAAU,QAAQ,CACvB,GAAG9d,GAAM,QAAQ,MACjB,GAAGqe,EACH,IAAKz2B,EAAK,KAAK,EACf,GAAI41B,GAAajiB,CAAK,EACtB,cAAe,EACvB,CAAO,CACF,EACD,qBAAsB,CACpB,OAAOuiB,EAAU,MAAM,CACrB,GAAIL,GAAiBliB,CAAK,EAC1B,KAAM,WACN,SAAU3T,EAAK,UAAU,EACzB,eAAgB0G,EAChB,SAAAyvB,EACA,kBAAmBR,GAAWhiB,CAAK,EACnC,eAAgB3T,EAAK,SAAS,EAC9B,KAAMA,EAAK,MAAM,EACjB,KAAMA,EAAK,MAAM,EACjB,MAAOA,EAAK,OAAO,EACnB,MAAO8P,GACP,SAAU,CACR,MAAM6mB,EAAgBtB,GAAgB,EACtCpgB,EAAK,CAAE,KAAM,cAAe,QAAS,CAAE,QAAS,GAAM,aAAc0hB,CAAa,EAAI,CACtF,EACD,QAAS,CACP1hB,EAAK,CAAE,KAAM,cAAe,QAAS,CAAE,QAAS,GAAO,aAAc,EAAK,EAAI,CAC/E,EACD,QAAQjQ,EAAO,CACb,GAAIoxB,EAAU,CACZpxB,EAAM,eAAgB,EACtB,MACZ,CACU,MAAM0xB,EAAW1xB,EAAM,cAAc,QACrCiQ,EAAK,CAAE,KAAM,cAAe,QAASyhB,EAAU,UAAW,GAAM,CAC1E,CACA,CAAO,CACP,CACG,CACH,CACA,GAAI,CAAEE,IAAAA,EAAK,EAAG/lB,GAAc,EACxB4C,GAAwB,CAC1B,MAAM,CAAE,MAAOojB,GAAU,CACvB,MAAO,CACL,eAAgB,GAChB,MAAO,SACP,MAAO,KACP,GAAGA,CACJ,CACF,EACD,cAAe,CACb,MAAO,OACR,EACD,QAAQ,CAAE,KAAA72B,EAAM,SAAA82B,GAAY,CAC1B,MAAO,CACL,QAASA,EAAS,KAAO,CACvB,aAAc92B,EAAK,gBAAgB,EACnC,MAAOA,EAAK,SAAS,EACrB,SAASjB,EAAO,QACdb,EAAA8B,EAAK,iBAAiB,IAAtB,MAAA9B,EAA0B,CAAE,QAASa,CAAK,EACpD,CACA,EAAQ,EACF,iBAAkB+3B,EAAS,KAAO,CAChC,aAAc,EACtB,EAAQ,EACF,aAAcA,EAAS,KAAO,CAC5B,aAAc,EACtB,EAAQ,EACF,OAAQA,EAAS,KAAO,CACtB,aAAc,EACtB,EAAQ,EACF,QAASA,EAAS,KAAO,CACvB,aAAc,EACtB,EAAQ,EACF,QAASA,EAAS,KAAO,CACvB,aAAc,EACtB,EAAQ,CACH,CACF,EACD,SAAU,CACR,WAAY,CAAC,CAAE,QAAA/4B,EAAS,KAAAiC,CAAM,IAAKA,EAAK,UAAU,GAAKjC,EAAQ,IAAI,kBAAkB,CACtF,EACD,MAAM,CAAE,MAAAg5B,EAAO,KAAA/2B,EAAM,QAAAjC,EAAS,OAAAmX,CAAM,EAAI,CACtC6hB,EAAM,CAAC,IAAM/2B,EAAK,UAAU,CAAC,EAAG,IAAM,CACpCkV,EAAO,CAAC,qBAAqB,CAAC,CACpC,CAAK,EACD6hB,EAAM,CAAC,IAAMh5B,EAAQ,IAAI,SAAS,CAAC,EAAG,IAAM,CAC1CmX,EAAO,CAAC,kBAAkB,CAAC,CACjC,CAAK,CACF,EACD,QAAS,CAAC,wBAAyB,kBAAmB,mBAAmB,EACzE,GAAI,CACF,iBAAkB,CAChB,CACE,MAAO0hB,GAAI,WAAW,EACtB,QAAS,CAAC,gBAAiB,qBAAqB,CACjD,EACD,CACE,QAAS,CAAC,eAAe,CACjC,CACK,EACD,cAAe,CACb,CACE,MAAOA,GAAI,WAAW,EACtB,QAAS,CAAC,aAAc,qBAAqB,CAC9C,EACD,CACE,QAAS,CAAC,YAAY,CAC9B,CACK,EACD,cAAe,CACb,QAAS,CAAC,YAAY,CAC5B,CACG,EACD,OAAQ,CACN,MAAO,CAAA,CACR,EACD,gBAAiB,CACf,OAAQ,CACN,UAAW,CAAC,CAAE,MAAA5xB,KAAY,CAAC,CAACA,EAAM,SACnC,EACD,QAAS,CACP,gBAAgB,CAAE,SAAAkP,EAAU,MAAAP,EAAO,QAAA5V,CAAO,EAAI,CAC5C,GAAI,CAAAmW,EAAS,YAAY,EACzB,OAAO3I,GAAW,CAChB,YAAauqB,GAAUniB,CAAK,EAC5B,aAAcoiB,GAAiBpiB,CAAK,EACpC,WAAa3O,GAAUA,EAAM,MAAQ,IACrC,QAAS,IAAMjH,EAAQ,IAAI,SAAU,EAAK,EAC1C,aAAc,IAAMA,EAAQ,IAAI,SAAU,EAAI,EAC9C,WAAY,IAAMA,EAAQ,IAAI,SAAU,EAAK,CACvD,CAAS,CACF,EACD,kBAAkB,CAAE,SAAAmW,EAAU,MAAAP,GAAS,CACrC,GAAI,CAAAO,EAAS,YAAY,EACzB,OAAOohB,GAAkB,CAAE,KAAM3hB,EAAM,YAAa,CAAA,CAAE,CACvD,EACD,sBAAsB,CAAE,QAAA5V,EAAS,KAAAkX,EAAM,MAAAtB,CAAK,EAAI,CAC9C,OAAOpM,GAAiBwuB,GAAiBpiB,CAAK,EAAG,CAC/C,yBAAyBwiB,EAAU,CACjCp4B,EAAQ,IAAI,mBAAoBo4B,CAAQ,CACzC,EACD,aAAc,CACZ,MAAMzvB,EAAU3I,EAAQ,QAAQ,SAAS,EACzCkX,EAAK,CAAE,KAAM,cAAe,QAAS,CAAC,CAACvO,EAAS,IAAK,aAAc,CAC/E,CACA,CAAS,CACT,CACK,EACD,QAAS,CACP,WAAW,CAAE,QAAA3I,EAAS,MAAAiH,GAAS,CAC7B,UAAWzF,KAAOyF,EAAM,QACtBjH,EAAQ,IAAIwB,EAAKyF,EAAM,QAAQzF,CAAG,CAAC,CAEtC,EACD,iBAAiB,CAAE,QAAAxB,EAAS,MAAA4V,GAAS,CACnC,MAAMujB,EAAUnB,GAAiBpiB,CAAK,EACjCujB,GACLzwB,GAAkBywB,EAAS,CAAC,CAACn5B,EAAQ,IAAI,SAAS,CAAC,CACpD,EACD,oBAAoB,CAAE,QAAAA,EAAS,KAAAiC,GAAQ,CACjCA,EAAK,UAAU,GACjBjC,EAAQ,IAAI,UAAW,EAAK,CAE/B,EACD,WAAW,CAAE,QAAAA,EAAS,MAAAiH,GAAS,CAC7BjH,EAAQ,IAAI,UAAWiH,EAAM,OAAO,CACrC,EACD,cAAc,CAAE,QAAAjH,GAAW,CACzBA,EAAQ,IAAI,UAAW,CAACA,EAAQ,IAAI,SAAS,CAAC,CAC/C,EACD,oBAAoB,CAAE,QAAAA,EAAS,MAAA4V,GAAS,CACtC,MAAMujB,EAAUnB,GAAiBpiB,CAAK,EACtChN,GAA0BuwB,EAAS,CAAE,QAASn5B,EAAQ,IAAI,SAAS,EAAG,CAC9E,CACA,CACA,CACA,EACY4T,KAAc,CACxB,UACA,iBACA,MACA,WACA,OACA,cACA,KACA,MACA,UACA,QACA,OACA,kBACA,WACA,WACA,OACF,CAAC,ECvRD,MAAMu7B,GAAat8B,GAAU,CAC3B,MAAMhH,EAAKyvB,EAAAA,MAAO,EACZ,CAAE,YAAAjoB,CAAa,EAAGsH,GAAuB,EACzC,CAAE,IAAA7S,CAAK,EAAG+S,GAAkB,EAC5BkgB,EAAQF,GAAiB,EACzBU,EAAe,CACnB,GAAA1vB,EACA,IAAK,CACH,MAAOkvB,GAAA,YAAAA,EAAO,IAAI,MAClB,YAAaA,GAAA,YAAAA,EAAO,IAAI,OACzB,EACD,IAAAjzB,EACA,SAAUizB,GAAA,YAAAA,EAAO,SACjB,SAAUA,GAAA,YAAAA,EAAO,SACjB,QAASA,GAAA,YAAAA,EAAO,QAChB,SAAUA,GAAA,YAAAA,EAAO,SACjB,YAAA1nB,EACA,GAAGR,CACJ,EACKqlB,EAAUziB,GAAW25B,GAAmB7T,CAAY,EAC1D,OAAO8T,GAAkBnX,EAAS7f,EAAc,CAClD,ECpBMi3B,GAAat2B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC5C,KAAM,CAACq6B,EAAa7U,CAAU,EAAI1gB,EAAgB,EAAGnH,EAAO,CAC1D,UACA,iBACA,WACA,OACA,KACA,MACA,UACA,QACA,OACA,kBACA,WACA,WACA,OACJ,CAAG,EACKk8B,EAAgBI,GAAUI,CAAW,EACrCvZ,EAAcpjB,EAAWm8B,EAAc,aAAY,EAAIrU,CAAU,EACvE,OAAuBzE,EAAG,IAAC2Y,GAAgB,CAAE,MAAOG,EAAe,SAA0B9Y,EAAAA,IAAIlc,EAAI,MAAO,CAAE,GAAGic,EAAa,IAAA9gB,CAAG,CAAE,CAAC,CAAE,CACxI,CAAC,EACDo6B,GAAW,YAAc,aCrBpB,MAACE,GAAqBx2B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACpD,KAAM,CAAC,CAAE,MAAO4nB,GAAOpC,CAAU,EAAI1gB,IAAmBnH,EAAO,CAAC,OAAO,CAAC,EAClEmjB,EAAcpjB,EAAWkqB,EAAI,aAAY,EAAIpC,CAAU,EAC7D,OAAuBzE,EAAG,IAAC2Y,GAAgB,CAAE,MAAO9R,EAAK,SAA0B7G,EAAAA,IAAIlc,EAAI,MAAO,CAAE,GAAGic,EAAa,IAAA9gB,CAAG,CAAE,CAAC,CAAE,CAC9H,CAAC,EACDs6B,GAAmB,YAAc,qBCN5B,MAACC,GAAcz2B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC7C,MAAM65B,EAAgBF,GAAkB,EAClC7Y,EAAcpjB,EAAWm8B,EAAc,cAAa,EAAIl8B,CAAK,EACnE,OAAuBojB,EAAAA,IAAIlc,EAAI,KAAM,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC9D,CAAC,EACDu6B,GAAY,YAAc,cCT1B,SAASC,GAAY1uC,EAAOgiC,EAAO,CACjC,KAAM,CAAC2M,EAAgBC,CAAiB,EAAIx7B,EAAAA,SAASpT,CAAK,EAC1D+S,OAAAA,EAAAA,UAAU,IAAM,CACd,MAAM+f,EAAQ,WAAW,IAAM,CAC7B8b,EAAkB5uC,CAAK,CACxB,EAAEgiC,CAAK,EACR,MAAO,IAAM,CACX,aAAalP,CAAK,CACnB,CACL,EAAK,CAAC9yB,EAAOgiC,CAAK,CAAC,EACV2M,CACT,CCXA,KAAM,CAACE,GAAcC,EAAc,EAAIzwC,EAAc,CACnD,KAAM,cACN,SAAU,iBACV,aAAc,kBAChB,CAAC,ECMK0wC,GAAa/2B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC5C,KAAM,CAAC86B,EAActV,CAAU,EAAI1gB,EAAgB,EAAGnH,EAAO,CAAC,OAAO,CAAC,EAChEo9B,EAAOH,GAAgB,EACvBlP,EAAsBlL,GAA+B,EACrDmL,EAAWrE,GAAY,CAC3B,GAAGoE,EACH,QAAS8O,GAAYO,EAAK,QAAUp9B,EAAM,MAAO,CAAC,EAClD,UAAW,EACf,CAAG,EACKmjB,EAAcpjB,EAAWq9B,EAAK,gBAAgBD,CAAY,EAAGnP,EAAS,iBAAkB,EAAEnG,CAAU,EAC1G,OAAuBzE,EAAG,IAAC4F,GAAkB,CAAE,MAAOgF,EAAU,SAAUA,EAAS,UAAY,KAAuB5K,EAAG,IAAClc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAK1d,GAAYuoB,EAAS,IAAK3rB,CAAG,CAAG,CAAA,EAAG,CAC/L,CAAC,EACD66B,GAAW,YAAc,aClBpB,MAACG,GAAel3B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC9C,MAAM+6B,EAAOH,GAAgB,EACvB9Z,EAAcpjB,EAAWq9B,EAAK,kBAAiB,EAAIp9B,CAAK,EAC9D,OAAuBojB,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC7D,CAAC,EACDg7B,GAAa,YAAc,eCLtB,MAACC,GAAUn3B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CACzC,MAAM+6B,EAAOH,GAAgB,EACvB9Z,EAAcpjB,EAAWq9B,EAAK,aAAY,EAAIp9B,CAAK,EACzD,OAAuBojB,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAC7D,CAAC,EACDi7B,GAAQ,YAAc,UCJjB,MAACC,GAAap3B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC5C,KAAM,CAACm7B,EAAU3V,CAAU,EAAI1gB,EAAkB,EAACnH,EAAO,CAAC,WAAY,OAAO,CAAC,EACxEo9B,EAAOH,GAAgB,EACvB9Z,EAAcpjB,EAAWq9B,EAAK,gBAAgBI,CAAQ,EAAG3V,CAAU,EACzE,OAAuBzE,EAAAA,IAAIlc,EAAI,OAAQ,CAAE,GAAGic,EAAa,IAAA9gB,EAAK,CAChE,CAAC,EACDk7B,GAAW,YAAc,aCPtB,IAAC1Y,GAAUtd,GAAc,MAAM,EAAE,MAAM,OAAQ,OAAQ,UAAW,UAAW,WAAW,EACvFC,GAAQqd,GAAQ,MAAO,EACvBC,GAAazhB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,OAAT,KAAAmF,EAAiB,QAAQ4Q,EAAI,EAAE,IACpDo6B,GAAap6B,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,OAAT,KAAAmF,EAAiB,QAAQ4Q,EAAI,EAAE,SACpDqwB,GAAe,CAACrwB,EAAKrK,IAAO,SAAA,OAAAvG,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,UAAT,KAAAmF,EAAoB,QAAQ4Q,EAAI,EAAE,YAAYrK,CAAE,IAC5E26B,GAAe,CAACtwB,EAAKrK,IAAO,SAAA,OAAAvG,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,UAAT,KAAAmF,EAAoB,QAAQ4Q,EAAI,EAAE,YAAYrK,CAAE,IAC5E89B,GAAkBzzB,GAAQ,SAAA,OAAA5Q,GAAAnF,EAAA+V,EAAI,MAAJ,YAAA/V,EAAS,YAAT,KAAAmF,EAAsB,QAAQ4Q,EAAI,EAAE,cAC9Dq6B,GAAar6B,GAAQA,EAAI,QAAQo6B,GAAUp6B,CAAG,CAAC,EAC/C0wB,GAAe,CAAC1wB,EAAKrK,IAAOqK,EAAI,QAAQqwB,GAAarwB,EAAKrK,CAAE,CAAC,EAC7Dk7B,GAAe,CAAC7wB,EAAKrK,IAAOqK,EAAI,QAAQswB,GAAatwB,EAAKrK,CAAE,CAAC,EAC7Dg+B,GAAkB3zB,GAAQA,EAAI,QAAQyzB,GAAezzB,CAAG,CAAC,EACzDs6B,GAAet6B,GAAQ,CAEzB,MAAM3G,EAAW,4BADD,IAAI,OAAO+gC,GAAUp6B,CAAG,CAAC,CACW,qBACpD,OAAO5G,GAASihC,GAAUr6B,CAAG,EAAG3G,CAAQ,CAC1C,EACIkhC,GAAqBv6B,GAAQ5V,GAAMkwC,GAAYt6B,CAAG,CAAC,EACnDw6B,GAAoBx6B,GAAQ3V,GAAKiwC,GAAYt6B,CAAG,CAAC,EACjDy6B,GAAmB,CAACz6B,EAAK4Z,IAASlgB,GAAS4gC,GAAYt6B,CAAG,EAAGswB,GAAatwB,EAAK4Z,EAAK,KAAK,EAAGA,EAAK,SAAS,EAC1G8gB,GAAmB,CAAC16B,EAAK4Z,IAAShgB,GAAS0gC,GAAYt6B,CAAG,EAAGswB,GAAatwB,EAAK4Z,EAAK,KAAK,EAAGA,EAAK,SAAS,EAC1Goa,GAAiBnmC,GAAO,aAC1B,MAAO,CACL,MAAM5D,EAAA4D,GAAA,YAAAA,EAAI,aAAJ,KAAA5D,EAAkB,EACxB,KAAKmF,EAAAvB,GAAA,YAAAA,EAAI,YAAJ,KAAAuB,EAAiB,EACtB,OAAOD,EAAAtB,GAAA,YAAAA,EAAI,cAAJ,KAAAsB,EAAmB,EAC1B,QAAQ6B,EAAAnD,GAAA,YAAAA,EAAI,eAAJ,KAAAmD,EAAoB,CAC7B,CACH,EACI2pC,GAAc,CAAC36B,EAAKrK,IAAO,CAC7B,MAAMilC,EAAMrhC,GAAS+gC,GAAYt6B,CAAG,EAAGswB,GAAatwB,EAAKrK,CAAE,CAAC,EAC5D,OAAOs+B,GAAYD,GAAc4G,CAAG,CAAC,CACvC,EACI3G,GAAexsB,IAAU,CAC3B,MAAO,GAAGA,EAAK,KAAK,KACpB,OAAQ,GAAGA,EAAK,MAAM,KACtB,KAAM,GAAGA,EAAK,IAAI,KAClB,IAAK,GAAGA,EAAK,GAAG,IAClB,GAGA,SAASsa,GAAQC,EAASC,EAAW,CACnC,KAAM,CAAE,MAAAthB,EAAO,KAAAK,EAAM,QAAAlX,EAAS,KAAAiC,EAAM,MAAA2T,CAAK,EAAKsiB,EACxC6Y,EAAe9uC,EAAK,cAAc,EAClCs2B,EAAU1hB,EAAM,QAAQ,SAAS,EACjCyH,EAAarc,EAAK,aAAa,IAAM,WACrC+uC,EAAe/uC,EAAK,aAAa,IAAM,aACvCoqC,EAAYpqC,EAAK,WAAW,EAClC,SAASgvC,EAAgBnY,EAAQ,CAC/B,MAAO,CACL,SAAU94B,EAAQ,IAAI,OAAO,IAAM84B,EAAO,MAC1C,QAAS94B,EAAQ,IAAI,cAAc,IAAM84B,EAAO,MAChD,SAAU,CAAC,CAACA,EAAO,QACpB,CACL,CACE,MAAO,CACL,MAAO94B,EAAQ,IAAI,OAAO,EAC1B,aAAcA,EAAQ,IAAI,cAAc,EACxC,SAASgB,EAAO,CACdkW,EAAK,CAAE,KAAM,YAAa,MAAAlW,CAAK,CAAE,CAClC,EACD,YAAa,CACXkW,EAAK,CAAE,KAAM,cAAe,CAC7B,EACD,iBAAiBlW,EAAO,CACtB,MAAM6K,EAAK26B,GAAa5wB,EAAO5U,CAAK,EACpCkW,EAAK,CAAE,KAAM,qBAAsB,GAAArL,CAAE,CAAE,CACxC,EACD,cAAe,CACbqL,EAAK,CAAE,KAAM,iBAAkB,CAChC,EACD,WAAWg6B,EAAW,CACpBh6B,EAAK,CAAE,KAAM,YAAa,MAAOg6B,EAAW,IAAK,aAAc,EAC/Dh6B,EAAK,CAAE,KAAM,aAAc,IAAK,YAAY,CAAE,CAC/C,EACD,WAAWg6B,EAAW,CACpBh6B,EAAK,CAAE,KAAM,YAAa,MAAOg6B,EAAW,IAAK,aAAc,EAC/Dh6B,EAAK,CAAE,KAAM,aAAc,IAAK,YAAY,CAAE,CAC/C,EACD,OAAQ,OACN,MAAMlW,EAAQhB,EAAQ,IAAI,OAAO,EAC5BgB,KACLb,EAAA4mC,GAAanxB,EAAO5U,CAAK,IAAzB,MAAAb,EAA4B,QAC7B,EACD,cAAe,CACb,OAAOg4B,EAAU,QAAQ,CACvB,GAAG9d,GAAM,KAAK,MACd,GAAIsd,GAAU/hB,CAAK,EACnB,mBAAoB3T,EAAK,aAAa,EACtC,aAAcuB,EAAS+0B,CAAO,EAC9B,IAAKt2B,EAAK,KAAK,CACvB,CAAO,CACF,EACD,cAAe,CACb,OAAOk2B,EAAU,QAAQ,CACvB,GAAG9d,GAAM,KAAK,MACd,GAAIi2B,GAAU16B,CAAK,EACnB,KAAM,UACN,IAAK3T,EAAK,KAAK,EACf,aAAcuB,EAAS+0B,CAAO,EAC9B,mBAAoBt2B,EAAK,aAAa,EACtC,mBAAoBA,EAAK,aAAa,EACtC,aAAc8uC,GAAA,YAAAA,EAAc,UAC5B,UAAU9pC,EAAO,CAGf,GAFIA,EAAM,kBACN,CAACI,GAAaJ,CAAK,GACnBK,GAAiBL,CAAK,EAAG,OAC7B,MAAMU,EAAS,CACb,WAAY,CACNqpC,GACJ95B,EAAK,CAAE,KAAM,aAAc,IAAK,WAAW,CAAE,CAC9C,EACD,SAAU,CACJ85B,GACJ95B,EAAK,CAAE,KAAM,aAAc,IAAK,SAAS,CAAE,CAC5C,EACD,WAAY,CACNoH,GACJpH,EAAK,CAAE,KAAM,aAAc,IAAK,WAAW,CAAE,CAC9C,EACD,YAAa,CACPoH,GACJpH,EAAK,CAAE,KAAM,aAAc,IAAK,YAAY,CAAE,CAC/C,EACD,MAAO,CACLA,EAAK,CAAE,KAAM,OAAQ,CACtB,EACD,KAAM,CACJA,EAAK,CAAE,KAAM,MAAO,CACrB,EACD,OAAQ,CACNA,EAAK,CAAE,KAAM,QAAS,CACpC,CACW,EACD,IAAI1V,EAAMqG,GAAYZ,EAAO,CAC3B,IAAKhF,EAAK,KAAK,EACf,YAAaA,EAAK,aAAa,CAC3C,CAAW,EACD,MAAMiK,EAAOvE,EAAOnG,CAAG,EACnB0K,IACFjF,EAAM,eAAgB,EACtBiF,EAAKjF,CAAK,EAEtB,CACA,CAAO,CACF,EACD,gBAAAgqC,EACA,gBAAgBnY,EAAQ,CACtB,KAAM,CAAE,MAAA93B,EAAO,SAAAo3B,CAAQ,EAAKU,EACtBqY,EAAeF,EAAgBnY,CAAM,EAC3C,OAAOX,EAAU,OAAO,CACtB,GAAG9d,GAAM,QAAQ,MACjB,KAAM,MACN,KAAM,SACN,SAAA+d,EACA,IAAKn2B,EAAK,KAAK,EACf,mBAAoBA,EAAK,aAAa,EACtC,gBAAiBuB,EAAS40B,CAAQ,EAClC,gBAAiBA,EACjB,aAAcp3B,EACd,gBAAiBmwC,EAAa,SAC9B,gBAAiB3tC,EAAS2tC,EAAa,QAAQ,EAC/C,aAAc3tC,EAAS2tC,EAAa,OAAO,EAC3C,gBAAiBA,EAAa,SAAW5K,GAAa3wB,EAAO5U,CAAK,EAAI,OACtE,eAAgBsvC,GAAU16B,CAAK,EAC/B,WAAYpS,EAASxD,EAAQ,IAAI,KAAK,CAAC,EACvC,GAAIwmC,GAAa5wB,EAAO5U,CAAK,EAC7B,SAAUmwC,EAAa,UAAY9E,EAAY,EAAI,GACnD,SAAU,CACRn1B,EAAK,CAAE,KAAM,YAAa,MAAAlW,CAAK,CAAE,CAClC,EACD,OAAOiG,EAAO,CACZ,MAAMmB,EAASnB,EAAM,eACjBmB,GAAA,YAAAA,EAAQ,aAAa,WAAY,OACnC8O,EAAK,CAAE,KAAM,WAAY,CAE5B,EACD,QAAQjQ,EAAO,CACTA,EAAM,kBACNmxB,IACAvxB,GAAQ,GACVI,EAAM,cAAc,MAAO,EAE7BiQ,EAAK,CAAE,KAAM,YAAa,MAAAlW,CAAK,CAAE,EAC3C,CACA,CAAO,CACF,EACD,gBAAgB83B,EAAQ,CACtB,KAAM,CAAE,MAAA93B,CAAK,EAAK83B,EACZsY,EAAWpxC,EAAQ,IAAI,OAAO,IAAMgB,EAC1C,OAAOm3B,EAAU,QAAQ,CACvB,GAAG9d,GAAM,QAAQ,MACjB,IAAKpY,EAAK,KAAK,EACf,GAAIskC,GAAa3wB,EAAO5U,CAAK,EAC7B,SAAUqrC,EAAY,EAAI,GAC1B,kBAAmB7F,GAAa5wB,EAAO5U,CAAK,EAC5C,KAAM,WACN,eAAgBsvC,GAAU16B,CAAK,EAC/B,gBAAiBpS,EAAS4tC,CAAQ,EAClC,mBAAoBnvC,EAAK,aAAa,EACtC,OAAQ,CAACmvC,CACjB,CAAO,CACF,EACD,mBAAoB,CAClB,MAAMC,EAAgBrxC,EAAQ,IAAI,eAAe,EAC3CsxC,EAAsBtxC,EAAQ,IAAI,qBAAqB,EAC7D,OAAOm4B,EAAU,QAAQ,CACvB,GAAIwR,GAAe/zB,CAAK,EACxB,GAAGyE,GAAM,UAAU,MACnB,IAAKpY,EAAK,KAAK,EACf,mBAAoBA,EAAK,aAAa,EACtC,MAAO,CACL,wBAAyB,0CACzB,SAAUovC,EAAc,KACxB,QAASA,EAAc,IACvB,UAAWA,EAAc,MACzB,WAAYA,EAAc,OAC1B,SAAU,WACV,WAAY,6BACZ,mBAAoB,6BACpB,mBAAoBC,EAAsB,oCAAsC,MAChF,yBAA0B,oCAC1B,CAACN,EAAe,OAAS,KAAK,EAAGA,EAAe,cAAgB,YAC1E,CACA,CAAO,CACP,CACG,CACH,CACA,GAAI,CAAE,IAAAnY,EAAK,EAAG/lB,GAAc,EACxB4C,GAAwB,CAC1B,MAAM,CAAE,MAAOojB,GAAU,CACvB,MAAO,CACL,IAAK,MACL,YAAa,aACb,eAAgB,YAChB,UAAW,GACX,UAAW,GACX,SAASyY,EAAS,CAChB7kC,GAAY6kC,EAAQ,IAAI,CACzB,EACD,aAAc,KACd,GAAGzY,CACJ,CACF,EACD,cAAe,CACb,MAAO,MACR,EACD,QAAQ,CAAE,KAAA72B,EAAM,SAAA82B,GAAY,CAC1B,MAAO,CACL,MAAOA,EAAS,KAAO,CACrB,aAAc92B,EAAK,cAAc,EACjC,MAAOA,EAAK,OAAO,EACnB,SAASjB,EAAO,QACdb,EAAA8B,EAAK,eAAe,IAApB,MAAA9B,EAAwB,CAAE,MAAAa,GACpC,CACA,EAAQ,EACF,aAAc+3B,EAAS,KAAO,CAC5B,aAAc92B,EAAK,OAAO,GAAKA,EAAK,cAAc,EAClD,KAAM,GACN,SAASjB,EAAO,QACdb,EAAA8B,EAAK,eAAe,IAApB,MAAA9B,EAAwB,CAAE,aAAca,CAAK,EACvD,CACA,EAAQ,EACF,IAAK+3B,EAAS,KAAO,CAAE,aAAc,EAAM,EAAC,EAC5C,oBAAqBA,EAAS,KAAO,CAAE,aAAc,EAAO,EAAC,EAC7D,cAAeA,EAAS,KAAO,CAC7B,aAAc,CAAE,KAAM,MAAO,IAAK,MAAO,MAAO,MAAO,OAAQ,KAAK,CAC5E,EAAQ,CACH,CACF,EACD,MAAM,CAAE,QAAA/4B,EAAS,KAAAiC,EAAM,MAAA+2B,EAAO,OAAA7hB,CAAM,EAAI,CACtC6hB,EAAM,CAAC,IAAMh5B,EAAQ,IAAI,OAAO,CAAC,EAAG,IAAM,CACxCmX,EAAO,CAAC,2BAA4B,oBAAqB,eAAgB,kBAAkB,CAAC,CAClG,CAAK,EACD6hB,EAAM,CAAC,IAAM/2B,EAAK,KAAK,EAAG,IAAMA,EAAK,aAAa,CAAC,EAAG,IAAM,CAC1DkV,EAAO,CAAC,mBAAmB,CAAC,CAClC,CAAK,CACF,EACD,GAAI,CACF,UAAW,CACT,QAAS,CAAC,UAAU,CACrB,EACD,YAAa,CACX,QAAS,CAAC,YAAY,CACvB,EACD,mBAAoB,CAClB,QAAS,CAAC,kBAAkB,CAC7B,EACD,eAAgB,CACd,QAAS,CAAC,cAAc,CAC9B,CACG,EACD,MAAO,CAAC,oBAAqB,eAAgB,SAAS,EACtD,KAAM,CAAC,iBAAiB,EACxB,OAAQ,CACN,KAAM,CACJ,GAAI,CACF,UAAW,CACT,OAAQ,UACR,QAAS,CAAC,iBAAiB,CAC5B,EACD,UAAW,CACT,OAAQ,UACR,QAAS,CAAC,kBAAmB,UAAU,CACjD,CACA,CACK,EACD,QAAS,CACP,GAAI,CACF,UAAW,CACT,OAAQ,UACR,QAAS,CAAC,kBAAmB,UAAU,CACxC,EACD,WAAY,CACV,CACE,MAAO,gBACP,QAAS,CAAC,eAAgB,kBAAkB,CAC7C,EACD,CACE,QAAS,CAAC,cAAc,CACpC,CACS,EACD,WAAY,CACV,CACE,MAAO,gBACP,QAAS,CAAC,eAAgB,kBAAkB,CAC7C,EACD,CACE,QAAS,CAAC,cAAc,CACpC,CACS,EACD,KAAM,CACJ,CACE,MAAO,gBACP,QAAS,CAAC,gBAAiB,kBAAkB,CAC9C,EACD,CACE,QAAS,CAAC,eAAe,CACrC,CACS,EACD,IAAK,CACH,CACE,MAAO,gBACP,QAAS,CAAC,eAAgB,kBAAkB,CAC7C,EACD,CACE,QAAS,CAAC,cAAc,CACpC,CACS,EACD,MAAO,CACL,MAAO0hB,GAAI,eAAe,EAC1B,QAAS,CAAC,kBAAkB,CAC7B,EACD,UAAW,CACT,QAAS,CAAC,iBAAiB,CAC5B,EACD,SAAU,CACR,OAAQ,OACR,QAAS,CAAC,mBAAmB,CACvC,CACA,CACA,CACG,EACD,gBAAiB,CACf,OAAQ,CACN,cAAe,CAAC,CAAE,KAAA52B,CAAM,IAAKA,EAAK,gBAAgB,IAAM,WACzD,EACD,QAAS,CACP,iBAAiB,CAAE,QAAAjC,EAAS,KAAAiC,GAAQ,CAClC6J,EAAI,IAAM,CACR,MAAM0lC,EAAexxC,EAAQ,IAAI,cAAc,EAC/C,GAAI,CAACwxC,EAAc,OAEnB,MAAMxwC,EADWiB,EAAK,cAAc,GAAKjC,EAAQ,IAAI,OAAO,IAAMwxC,EACzC,KAAOA,EAChCxxC,EAAQ,IAAI,QAASgB,CAAK,CACpC,CAAS,CACF,EACD,gBAAgB,CAAE,QAAAhB,EAAS,MAAAiH,EAAO,MAAAgP,CAAK,EAAI,CACrChP,EAAM,OAAS,MACnBgP,EAAM,IAAM,CACVjW,EAAQ,IAAI,eAAgBiH,EAAM,KAAK,CACjD,CAAS,CACF,EACD,kBAAkB,CAAE,QAAAjH,GAAW,CAC7BA,EAAQ,IAAI,eAAgB,IAAI,CACjC,EACD,SAAS,CAAE,QAAAA,EAAS,MAAAiH,EAAO,KAAAhF,CAAI,EAAI,CACjC,MAAMwvC,EAAWxvC,EAAK,cAAc,GAAKjC,EAAQ,IAAI,OAAO,IAAMA,EAAQ,IAAI,cAAc,EAC5FA,EAAQ,IAAI,QAASyxC,EAAW,KAAOxqC,EAAM,KAAK,CACnD,EACD,WAAW,CAAE,QAAAjH,GAAW,CACtBA,EAAQ,IAAI,QAAS,IAAI,CAC1B,EACD,cAAc,CAAE,MAAA4V,GAAS,CACvB9J,EAAI,IAAM,QACR3L,EAAAswC,GAAkB76B,CAAK,IAAvB,MAAAzV,EAA0B,OACpC,CAAS,CACF,EACD,aAAa,CAAE,MAAAyV,GAAS,CACtB9J,EAAI,IAAM,QACR3L,EAAAuwC,GAAiB96B,CAAK,IAAtB,MAAAzV,EAAyB,OACnC,CAAS,CACF,EACD,aAAa,CAAE,QAAAH,EAAS,KAAAiC,EAAM,MAAA2T,EAAO,MAAA3O,CAAK,EAAI,OAC5C,MAAMuqC,GAAerxC,EAAA8G,EAAM,QAAN,KAAA9G,EAAeH,EAAQ,IAAI,cAAc,EAC9D,GAAI,CAACwxC,EAAc,OACnB,MAAMne,EAAYsd,GAAiB/6B,EAAO,CACxC,MAAO47B,EACP,UAAWvvC,EAAK,WAAW,CACrC,CAAS,EACD6J,EAAI,IAAM,CACJ7J,EAAK,WAAW,EAClBoxB,GAAA,MAAAA,EAAW,SACFA,GAAA,YAAAA,EAAW,QAAQ,QAAS,MACrCrzB,EAAQ,IAAI,eAAgBqzB,EAAU,QAAQ,KAAK,CAE/D,CAAS,CACF,EACD,aAAa,CAAE,QAAArzB,EAAS,KAAAiC,EAAM,MAAA2T,EAAO,MAAA3O,CAAK,EAAI,OAC5C,MAAMuqC,GAAerxC,EAAA8G,EAAM,QAAN,KAAA9G,EAAeH,EAAQ,IAAI,cAAc,EAC9D,GAAI,CAACwxC,EAAc,OACnB,MAAMne,EAAYud,GAAiBh7B,EAAO,CACxC,MAAO47B,EACP,UAAWvvC,EAAK,WAAW,CACrC,CAAS,EACD6J,EAAI,IAAM,CACJ7J,EAAK,WAAW,EAClBoxB,GAAA,MAAAA,EAAW,SACFA,GAAA,YAAAA,EAAW,QAAQ,QAAS,MACrCrzB,EAAQ,IAAI,eAAgBqzB,EAAU,QAAQ,KAAK,CAE/D,CAAS,CACF,EACD,aAAa,CAAE,QAAArzB,EAAS,MAAA4V,GAAS,CAC/B9J,EAAI,IAAM,CACR,MAAM9K,EAAQhB,EAAQ,IAAI,OAAO,EACjC,GAAI,CAACgB,EAAO,OACZ,MAAMkwB,EAAY0V,GAAahxB,EAAO5U,CAAK,EAC3C,GAAI,CAACkwB,EAAW,OACGjnB,GAAcinB,CAAS,EAC3B,OAAS,EACtBA,EAAU,gBAAgB,UAAU,EAEpCA,EAAU,aAAa,WAAY,GAAG,CAElD,CAAS,CACF,EACD,gBAAgB,CAAE,KAAAjc,GAAQ,CACxB,MAAMrL,EAAUqL,EAAK,IAAI,kBAAkB,EACvCrL,GAASA,EAAS,CACvB,EACD,yBAAyB,CAAE,QAAA5J,GAAW,CACpCA,EAAQ,IAAI,sBAAuB,EAAI,CACxC,EACD,iBAAiB,CAAE,QAAAA,EAAS,MAAAiH,EAAO,MAAA2O,CAAK,EAAI,OAC1C,MAAM5U,GAAQb,EAAA8G,EAAM,KAAN,KAAA9G,EAAYH,EAAQ,IAAI,OAAO,EAE7C,GAAI,CADgB6pC,GAAej0B,CAAK,EACtB,OAClB,GAAI,CAAC5U,EAAO,CACVhB,EAAQ,IAAI,sBAAuB,EAAK,EACxC,MACV,CAC0B+mC,GAAanxB,EAAO5U,CAAK,IAE3ChB,EAAQ,IAAI,gBAAiB6wC,GAAYj7B,EAAO5U,CAAK,CAAC,EACtDyK,GAAS,IAAM,CACbzL,EAAQ,IAAI,sBAAuB,EAAK,CAClD,CAAS,EACF,EACD,QAAQ,CAAE,QAAAA,GAAW,CACnBA,EAAQ,IAAI,MAAO,EAAK,CACzB,EACD,kBAAkB,CAAE,QAAAA,EAAS,KAAAiV,EAAM,MAAAW,CAAK,EAAI,CAC1C,MAAMhM,EAAUqL,EAAK,IAAI,kBAAkB,EACvCrL,GAASA,EAAS,EACtB,MAAM5I,EAAQhB,EAAQ,IAAI,OAAO,EACjC,GAAI,CAACgB,EAAO,CACVhB,EAAQ,IAAI,sBAAuB,EAAK,EACxC,MACV,CACQ,MAAMqzB,EAAY0T,GAAanxB,EAAO5U,CAAK,EACrC0wC,EAAc7H,GAAej0B,CAAK,EACxC,GAAI,CAACyd,GAAa,CAACqe,EAAa,OAChC,MAAMhH,EAAmB36B,GAAiB,CAACsjB,CAAS,EAAG,CACrD,QAAQtvB,EAAI,CACV,OAAOmmC,GAAcnmC,CAAE,CACxB,EACD,QAAQ,CAAE,MAAAuM,GAAS,CACjB,KAAM,CAACqN,CAAI,EAAIrN,EACftQ,EAAQ,IAAI,gBAAiBmqC,GAAYxsB,CAAI,CAAC,CAC1D,CACA,CAAS,EACD1I,EAAK,IAAI,mBAAoBy1B,CAAgB,CAC9C,EACD,iBAAiB,CAAE,QAAA1qC,EAAS,KAAAiC,EAAM,MAAA2T,CAAK,EAAI,OACzC,MAAM5U,EAAQhB,EAAQ,IAAI,OAAO,EACjC,GAAI,CAACgB,EAAO,OACZ,MAAMqyB,EAAY0T,GAAanxB,EAAO5U,CAAK,EACtCwD,GAAgB6uB,CAAS,KAC9BlzB,EAAA8B,EAAK,UAAU,IAAf,MAAA9B,EAAmB,CAAE,MAAAa,EAAO,KAAMqyB,CAAS,GACnD,CACA,CACA,CACA,EACYzf,KAAc,CACxB,iBACA,YACA,eACA,MACA,cACA,KACA,MACA,YACA,WACA,gBACA,gBACA,cACA,eACA,QACA,cACF,CAAC,EAEkBA,KAAc,CAAC,WAAY,OAAO,CAAC,EAEnCA,GAAa,EAAC,CAAC,OAAO,CAAC,EC3gB1C,MAAM+9B,GAAW9+B,GAAU,CACzB,MAAMhH,EAAKyvB,EAAAA,MAAO,EACZ,CAAE,YAAAjoB,CAAa,EAAGsH,GAAuB,EACzC,CAAE,IAAA7S,CAAK,EAAG+S,GAAkB,EAC5B0gB,EAAe,CACnB,GAAA1vB,EACA,IAAA/D,EACA,YAAAuL,EACA,GAAGR,CACJ,EACKqlB,EAAUziB,GAAWm8B,GAAcrW,CAAY,EACrD,OAAOsW,GAAa3Z,EAAS7f,EAAc,CAC7C,ECTMy5B,GAAW94B,EAAU,WAAC,CAACnG,EAAOqC,IAAQ,CAC1C,KAAM,CAAC0rB,EAAqBmR,CAAS,EAAIpc,GAAyB9iB,CAAK,EACjE,CAACm/B,EAAcrD,CAAU,EAAI30B,EAAgB,EAAG+3B,EAAW,CAC/D,iBACA,YACA,eACA,eACA,KACA,MACA,YACA,WACA,gBACA,gBACA,cACA,eACA,OACJ,CAAG,EACK9B,EAAO0B,GAAQK,CAAY,EAC3Bhc,EAAcpjB,EAAWq9B,EAAK,aAAY,EAAItB,CAAU,EAC9D,OAAuB1Y,EAAG,IAAC4Z,GAAc,CAAE,MAAOI,EAAM,SAA0Bha,EAAAA,IAAIR,GAA6B,CAAE,MAAOmL,EAAqB,SAA0B3K,EAAAA,IAAIlc,EAAI,IAAK,CAAE,GAAGic,EAAa,IAAA9gB,CAAG,CAAE,CAAG,CAAA,EAAG,CACvN,CAAC,EACD48B,GAAS,YAAc","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,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101]}
|