@yoopta/themes-shadcn 6.0.1 → 6.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion.js +1 -1
- package/dist/applyTheme.d.ts.map +1 -1
- package/dist/carousel.js +1 -1
- package/dist/chunks/button-f335deaa.js +1 -0
- package/dist/chunks/{dropdown-menu-eb328f8d.js → dropdown-menu-36750aec.js} +3 -3
- package/dist/chunks/{hover-card-d6a71398.js → hover-card-8048e9ce.js} +1 -1
- package/dist/chunks/index-371259c9.js +1 -0
- package/dist/chunks/{index-f85dae42.js → index-5b487f4e.js} +1 -1
- package/dist/chunks/{index-ba3032f8.js → index-a77c7d53.js} +1 -1
- package/dist/chunks/{index-23db6fea.js → index-bd6363d4.js} +1 -1
- package/dist/chunks/label-35a74462.js +1 -0
- package/dist/chunks/{language-select-89735035.js → language-select-ee2698cf.js} +1 -1
- package/dist/chunks/pen-d6258303.js +7 -0
- package/dist/chunks/popover-dae0ce5f.js +1 -0
- package/dist/chunks/{scroll-area-dae47c2c.js → scroll-area-8321348a.js} +1 -1
- package/dist/chunks/{select-a8bcd8b5.js → select-a3724728.js} +1 -1
- package/dist/chunks/separator-f4e74aca.js +1 -0
- package/dist/chunks/{tabs-294764a6.js → tabs-370c3f2c.js} +1 -1
- package/dist/chunks/{tooltip-65b9c3a0.js → tooltip-5defff1d.js} +2 -2
- package/dist/code-group.js +1 -1
- package/dist/code.js +1 -1
- package/dist/divider.js +1 -1
- package/dist/embed/elements/embed/embed-element.d.ts +1 -1
- package/dist/embed/elements/embed/embed-element.d.ts.map +1 -1
- package/dist/embed/elements/embed/embed-inline-toolbar.d.ts.map +1 -1
- package/dist/embed/elements/embed/embed-render.d.ts.map +1 -1
- package/dist/embed/index.d.ts +1 -1
- package/dist/embed.js +2 -2
- package/dist/emoji.js +1 -1
- package/dist/file/elements/file/file-element.d.ts +1 -1
- package/dist/file/elements/file/file-element.d.ts.map +1 -1
- package/dist/file/elements/file/file-inline-toolbar.d.ts.map +1 -1
- package/dist/file/index.d.ts +1 -1
- package/dist/file.js +3 -3
- package/dist/image/elements/image/image-element.d.ts +1 -1
- package/dist/image/elements/image/image-element.d.ts.map +1 -1
- package/dist/image/elements/image/image-inline-toolbar.d.ts.map +1 -1
- package/dist/image/elements/image/image-render.d.ts.map +1 -1
- package/dist/image/index.d.ts +1 -1
- package/dist/image.js +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/link.js +1 -7
- package/dist/math/elements/math/math-edit.d.ts +13 -0
- package/dist/math/elements/math/math-edit.d.ts.map +1 -0
- package/dist/math/elements/math/math-element.d.ts +3 -0
- package/dist/math/elements/math/math-element.d.ts.map +1 -0
- package/dist/math/elements/math/math-preview.d.ts +10 -0
- package/dist/math/elements/math/math-preview.d.ts.map +1 -0
- package/dist/math/elements/math-block/math-block-element.d.ts +3 -0
- package/dist/math/elements/math-block/math-block-element.d.ts.map +1 -0
- package/dist/math/index.d.ts +15 -0
- package/dist/math/index.d.ts.map +1 -0
- package/dist/math.js +1 -0
- package/dist/mention.js +3 -3
- package/dist/steps/elements/steps-list-item.d.ts.map +1 -1
- package/dist/steps.js +1 -1
- package/dist/table-of-contents/elements/table-of-contents.d.ts.map +1 -1
- package/dist/table-of-contents.js +1 -1
- package/dist/table.js +3 -3
- package/dist/tabs.js +1 -1
- package/dist/video/elements/video/video-element.d.ts +1 -1
- package/dist/video/elements/video/video-element.d.ts.map +1 -1
- package/dist/video/elements/video/video-inline-toolbar.d.ts.map +1 -1
- package/dist/video/elements/video/video-render.d.ts.map +1 -1
- package/dist/video/index.d.ts +1 -1
- package/dist/video.js +2 -2
- package/package.json +21 -14
- package/dist/accordion.js.map +0 -1
- package/dist/blockquote.js.map +0 -1
- package/dist/callout.js.map +0 -1
- package/dist/carousel.js.map +0 -1
- package/dist/chunks/Combination-3c924518.js +0 -1080
- package/dist/chunks/Combination-3c924518.js.map +0 -1
- package/dist/chunks/_tslib-514d60fe.js +0 -67
- package/dist/chunks/_tslib-514d60fe.js.map +0 -1
- package/dist/chunks/arrow-right-5ddace59.js +0 -30
- package/dist/chunks/arrow-right-5ddace59.js.map +0 -1
- package/dist/chunks/button-27a1fbc2.js +0 -76
- package/dist/chunks/button-27a1fbc2.js.map +0 -1
- package/dist/chunks/button-7aec29d6.js +0 -1
- package/dist/chunks/card-12ed876a.js +0 -38
- package/dist/chunks/card-12ed876a.js.map +0 -1
- package/dist/chunks/check-9acc031a.js +0 -14
- package/dist/chunks/check-9acc031a.js.map +0 -1
- package/dist/chunks/chevron-down-7424d0c3.js +0 -16
- package/dist/chunks/chevron-down-7424d0c3.js.map +0 -1
- package/dist/chunks/chevron-up-546faa64.js +0 -14
- package/dist/chunks/chevron-up-546faa64.js.map +0 -1
- package/dist/chunks/code-5407bf8e.js +0 -17
- package/dist/chunks/code-5407bf8e.js.map +0 -1
- package/dist/chunks/createLucideIcon-6ba35914.js +0 -56
- package/dist/chunks/createLucideIcon-6ba35914.js.map +0 -1
- package/dist/chunks/dropdown-menu-9ba446af.js +0 -1250
- package/dist/chunks/dropdown-menu-9ba446af.js.map +0 -1
- package/dist/chunks/external-link-1bf3c7a2.js +0 -18
- package/dist/chunks/external-link-1bf3c7a2.js.map +0 -1
- package/dist/chunks/file-text-9e348575.js +0 -23
- package/dist/chunks/file-text-9e348575.js.map +0 -1
- package/dist/chunks/hover-card-22a4067b.js +0 -258
- package/dist/chunks/hover-card-22a4067b.js.map +0 -1
- package/dist/chunks/index-0c94b090.js +0 -222
- package/dist/chunks/index-0c94b090.js.map +0 -1
- package/dist/chunks/index-12e7c5fd.js +0 -155
- package/dist/chunks/index-12e7c5fd.js.map +0 -1
- package/dist/chunks/index-23c7fb16.js +0 -1
- package/dist/chunks/index-26994c9d.js +0 -131
- package/dist/chunks/index-26994c9d.js.map +0 -1
- package/dist/chunks/index-600be8f8.js +0 -190
- package/dist/chunks/index-600be8f8.js.map +0 -1
- package/dist/chunks/index-7e966ec9.js +0 -16
- package/dist/chunks/index-7e966ec9.js.map +0 -1
- package/dist/chunks/index-9ac5afe2.js +0 -201
- package/dist/chunks/index-9ac5afe2.js.map +0 -1
- package/dist/chunks/index-9bb7ddb4.js +0 -104
- package/dist/chunks/index-9bb7ddb4.js.map +0 -1
- package/dist/chunks/index-ae9b48d5.js +0 -12
- package/dist/chunks/index-ae9b48d5.js.map +0 -1
- package/dist/chunks/index-b26053ec.js +0 -3805
- package/dist/chunks/index-b26053ec.js.map +0 -1
- package/dist/chunks/index-b8f2908d.js +0 -40
- package/dist/chunks/index-b8f2908d.js.map +0 -1
- package/dist/chunks/index-c655a86f.js +0 -7
- package/dist/chunks/index-c655a86f.js.map +0 -1
- package/dist/chunks/index-d9171717.js +0 -13
- package/dist/chunks/index-d9171717.js.map +0 -1
- package/dist/chunks/index-e42d0aaf.js +0 -36
- package/dist/chunks/index-e42d0aaf.js.map +0 -1
- package/dist/chunks/index-ebc47eac.js +0 -2765
- package/dist/chunks/index-ebc47eac.js.map +0 -1
- package/dist/chunks/index-ffe23855.js +0 -71
- package/dist/chunks/index-ffe23855.js.map +0 -1
- package/dist/chunks/input-7c5e4260.js +0 -13
- package/dist/chunks/input-7c5e4260.js.map +0 -1
- package/dist/chunks/label-21d46c31.js +0 -1
- package/dist/chunks/label-2a076b3f.js +0 -70
- package/dist/chunks/label-2a076b3f.js.map +0 -1
- package/dist/chunks/language-select-b35256ab.js +0 -12
- package/dist/chunks/language-select-b35256ab.js.map +0 -1
- package/dist/chunks/play-c2a06e4e.js +0 -16
- package/dist/chunks/play-c2a06e4e.js.map +0 -1
- package/dist/chunks/plus-f36f52e8.js +0 -17
- package/dist/chunks/plus-f36f52e8.js.map +0 -1
- package/dist/chunks/popover-4b5c0941.js +0 -385
- package/dist/chunks/popover-4b5c0941.js.map +0 -1
- package/dist/chunks/popover-8e6ee2ab.js +0 -1
- package/dist/chunks/scroll-area-8dc03d8f.js +0 -727
- package/dist/chunks/scroll-area-8dc03d8f.js.map +0 -1
- package/dist/chunks/select-88f1b66c.js +0 -1281
- package/dist/chunks/select-88f1b66c.js.map +0 -1
- package/dist/chunks/separator-219dc1f7.js +0 -1
- package/dist/chunks/separator-a6b3e5d2.js +0 -74
- package/dist/chunks/separator-a6b3e5d2.js.map +0 -1
- package/dist/chunks/settings-2-8e53118c.js +0 -19
- package/dist/chunks/settings-2-8e53118c.js.map +0 -1
- package/dist/chunks/sparkles-a0316be3.js +0 -26
- package/dist/chunks/sparkles-a0316be3.js.map +0 -1
- package/dist/chunks/style-inject.es-746bb8ed.js +0 -29
- package/dist/chunks/style-inject.es-746bb8ed.js.map +0 -1
- package/dist/chunks/tabs-38ee85c4.js +0 -205
- package/dist/chunks/tabs-38ee85c4.js.map +0 -1
- package/dist/chunks/tooltip-eb8a0f63.js +0 -1671
- package/dist/chunks/tooltip-eb8a0f63.js.map +0 -1
- package/dist/chunks/trash-2-41ddec45.js +0 -20
- package/dist/chunks/trash-2-41ddec45.js.map +0 -1
- package/dist/chunks/upload-b987996c.js +0 -44
- package/dist/chunks/upload-b987996c.js.map +0 -1
- package/dist/chunks/utils-208f599b.js +0 -2500
- package/dist/chunks/utils-208f599b.js.map +0 -1
- package/dist/chunks/x-f7edc87d.js +0 -17
- package/dist/chunks/x-f7edc87d.js.map +0 -1
- package/dist/code-group.js.map +0 -1
- package/dist/code.js.map +0 -1
- package/dist/divider.js.map +0 -1
- package/dist/embed.js.map +0 -1
- package/dist/emoji.js.map +0 -1
- package/dist/file.js.map +0 -1
- package/dist/headings.js.map +0 -1
- package/dist/image.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/link.js.map +0 -1
- package/dist/lists.js.map +0 -1
- package/dist/mention.js.map +0 -1
- package/dist/paragraph.js.map +0 -1
- package/dist/steps.js.map +0 -1
- package/dist/table-of-contents.js.map +0 -1
- package/dist/table.js.map +0 -1
- package/dist/tabs.js.map +0 -1
- package/dist/video.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-area-8dc03d8f.js","sources":["../../../../../node_modules/@radix-ui/react-scroll-area/src/use-state-machine.ts","../../../../../node_modules/@radix-ui/react-scroll-area/src/scroll-area.tsx","../../src/ui/scroll-area.tsx"],"sourcesContent":["import * as React from 'react';\n\ntype Machine<S> = { [k: string]: { [k: string]: S } };\ntype MachineState<T> = keyof T;\ntype MachineEvent<T> = keyof UnionToIntersection<T[keyof T]>;\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n ? R\n : never;\n\nexport function useStateMachine<M>(\n initialState: MachineState<M>,\n machine: M & Machine<MachineState<M>>\n) {\n return React.useReducer((state: MachineState<M>, event: MachineEvent<M>): MachineState<M> => {\n const nextState = (machine[state] as any)[event];\n return nextState ?? state;\n }, initialState);\n}\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Presence } from '@radix-ui/react-presence';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useStateMachine } from './use-state-machine';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\ntype Sizes = {\n content: number;\n viewport: number;\n scrollbar: {\n size: number;\n paddingStart: number;\n paddingEnd: number;\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollArea\n * -----------------------------------------------------------------------------------------------*/\n\nconst SCROLL_AREA_NAME = 'ScrollArea';\n\ntype ScopedProps<P> = P & { __scopeScrollArea?: Scope };\nconst [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\n\ntype ScrollAreaContextValue = {\n type: 'auto' | 'always' | 'scroll' | 'hover';\n dir: Direction;\n scrollHideDelay: number;\n scrollArea: ScrollAreaElement | null;\n viewport: ScrollAreaViewportElement | null;\n onViewportChange(viewport: ScrollAreaViewportElement | null): void;\n content: HTMLDivElement | null;\n onContentChange(content: HTMLDivElement): void;\n scrollbarX: ScrollAreaScrollbarElement | null;\n onScrollbarXChange(scrollbar: ScrollAreaScrollbarElement | null): void;\n scrollbarXEnabled: boolean;\n onScrollbarXEnabledChange(rendered: boolean): void;\n scrollbarY: ScrollAreaScrollbarElement | null;\n onScrollbarYChange(scrollbar: ScrollAreaScrollbarElement | null): void;\n scrollbarYEnabled: boolean;\n onScrollbarYEnabledChange(rendered: boolean): void;\n onCornerWidthChange(width: number): void;\n onCornerHeightChange(height: number): void;\n};\n\nconst [ScrollAreaProvider, useScrollAreaContext] =\n createScrollAreaContext<ScrollAreaContextValue>(SCROLL_AREA_NAME);\n\ntype ScrollAreaElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface ScrollAreaProps extends PrimitiveDivProps {\n type?: ScrollAreaContextValue['type'];\n dir?: ScrollAreaContextValue['dir'];\n scrollHideDelay?: number;\n}\n\nconst ScrollArea = React.forwardRef<ScrollAreaElement, ScrollAreaProps>(\n (props: ScopedProps<ScrollAreaProps>, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = 'hover',\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React.useState<ScrollAreaElement | null>(null);\n const [viewport, setViewport] = React.useState<ScrollAreaViewportElement | null>(null);\n const [content, setContent] = React.useState<HTMLDivElement | null>(null);\n const [scrollbarX, setScrollbarX] = React.useState<ScrollAreaScrollbarElement | null>(null);\n const [scrollbarY, setScrollbarY] = React.useState<ScrollAreaScrollbarElement | null>(null);\n const [cornerWidth, setCornerWidth] = React.useState(0);\n const [cornerHeight, setCornerHeight] = React.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n const direction = useDirection(dir);\n\n return (\n <ScrollAreaProvider\n scope={__scopeScrollArea}\n type={type}\n dir={direction}\n scrollHideDelay={scrollHideDelay}\n scrollArea={scrollArea}\n viewport={viewport}\n onViewportChange={setViewport}\n content={content}\n onContentChange={setContent}\n scrollbarX={scrollbarX}\n onScrollbarXChange={setScrollbarX}\n scrollbarXEnabled={scrollbarXEnabled}\n onScrollbarXEnabledChange={setScrollbarXEnabled}\n scrollbarY={scrollbarY}\n onScrollbarYChange={setScrollbarY}\n scrollbarYEnabled={scrollbarYEnabled}\n onScrollbarYEnabledChange={setScrollbarYEnabled}\n onCornerWidthChange={setCornerWidth}\n onCornerHeightChange={setCornerHeight}\n >\n <Primitive.div\n dir={direction}\n {...scrollAreaProps}\n ref={composedRefs}\n style={{\n position: 'relative',\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n ['--radix-scroll-area-corner-width' as any]: cornerWidth + 'px',\n ['--radix-scroll-area-corner-height' as any]: cornerHeight + 'px',\n ...props.style,\n }}\n />\n </ScrollAreaProvider>\n );\n }\n);\n\nScrollArea.displayName = SCROLL_AREA_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'ScrollAreaViewport';\n\ntype ScrollAreaViewportElement = React.ComponentRef<typeof Primitive.div>;\ninterface ScrollAreaViewportProps extends PrimitiveDivProps {\n nonce?: string;\n}\n\nconst ScrollAreaViewport = React.forwardRef<ScrollAreaViewportElement, ScrollAreaViewportProps>(\n (props: ScopedProps<ScrollAreaViewportProps>, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React.useRef<ScrollAreaViewportElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return (\n <>\n {/* Hide scrollbars cross-browser and enable momentum scroll for touch devices */}\n <style\n dangerouslySetInnerHTML={{\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`,\n }}\n nonce={nonce}\n />\n <Primitive.div\n data-radix-scroll-area-viewport=\"\"\n {...viewportProps}\n ref={composedRefs}\n style={{\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? 'scroll' : 'hidden',\n overflowY: context.scrollbarYEnabled ? 'scroll' : 'hidden',\n ...props.style,\n }}\n >\n {/**\n * `display: table` ensures our content div will match the size of its children in both\n * horizontal and vertical axis so we can determine if scroll width/height changed and\n * recalculate thumb sizes. This doesn't account for children with *percentage*\n * widths that change. We'll wait to see what use-cases consumers come up with there\n * before trying to resolve it.\n */}\n <div ref={context.onContentChange} style={{ minWidth: '100%', display: 'table' }}>\n {children}\n </div>\n </Primitive.div>\n </>\n );\n }\n);\n\nScrollAreaViewport.displayName = VIEWPORT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaScrollbar\n * -----------------------------------------------------------------------------------------------*/\n\nconst SCROLLBAR_NAME = 'ScrollAreaScrollbar';\n\ntype ScrollAreaScrollbarElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbar = React.forwardRef<ScrollAreaScrollbarElement, ScrollAreaScrollbarProps>(\n (props: ScopedProps<ScrollAreaScrollbarProps>, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === 'horizontal';\n\n React.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n\n return context.type === 'hover' ? (\n <ScrollAreaScrollbarHover {...scrollbarProps} ref={forwardedRef} forceMount={forceMount} />\n ) : context.type === 'scroll' ? (\n <ScrollAreaScrollbarScroll {...scrollbarProps} ref={forwardedRef} forceMount={forceMount} />\n ) : context.type === 'auto' ? (\n <ScrollAreaScrollbarAuto {...scrollbarProps} ref={forwardedRef} forceMount={forceMount} />\n ) : context.type === 'always' ? (\n <ScrollAreaScrollbarVisible {...scrollbarProps} ref={forwardedRef} />\n ) : null;\n }\n);\n\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarHoverElement = ScrollAreaScrollbarAutoElement;\ninterface ScrollAreaScrollbarHoverProps extends ScrollAreaScrollbarAutoProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbarHover = React.forwardRef<\n ScrollAreaScrollbarHoverElement,\n ScrollAreaScrollbarHoverProps\n>((props: ScopedProps<ScrollAreaScrollbarHoverProps>, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React.useState(false);\n\n React.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener('pointerenter', handlePointerEnter);\n scrollArea.addEventListener('pointerleave', handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener('pointerenter', handlePointerEnter);\n scrollArea.removeEventListener('pointerleave', handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n\n return (\n <Presence present={forceMount || visible}>\n <ScrollAreaScrollbarAuto\n data-state={visible ? 'visible' : 'hidden'}\n {...scrollbarProps}\n ref={forwardedRef}\n />\n </Presence>\n );\n});\n\ntype ScrollAreaScrollbarScrollElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarScrollProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbarScroll = React.forwardRef<\n ScrollAreaScrollbarScrollElement,\n ScrollAreaScrollbarScrollProps\n>((props: ScopedProps<ScrollAreaScrollbarScrollProps>, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === 'horizontal';\n const debounceScrollEnd = useDebounceCallback(() => send('SCROLL_END'), 100);\n const [state, send] = useStateMachine('hidden', {\n hidden: {\n SCROLL: 'scrolling',\n },\n scrolling: {\n SCROLL_END: 'idle',\n POINTER_ENTER: 'interacting',\n },\n interacting: {\n SCROLL: 'interacting',\n POINTER_LEAVE: 'idle',\n },\n idle: {\n HIDE: 'hidden',\n SCROLL: 'scrolling',\n POINTER_ENTER: 'interacting',\n },\n });\n\n React.useEffect(() => {\n if (state === 'idle') {\n const hideTimer = window.setTimeout(() => send('HIDE'), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n\n React.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? 'scrollLeft' : 'scrollTop';\n\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send('SCROLL');\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener('scroll', handleScroll);\n return () => viewport.removeEventListener('scroll', handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n\n return (\n <Presence present={forceMount || state !== 'hidden'}>\n <ScrollAreaScrollbarVisible\n data-state={state === 'hidden' ? 'hidden' : 'visible'}\n {...scrollbarProps}\n ref={forwardedRef}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => send('POINTER_ENTER'))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () => send('POINTER_LEAVE'))}\n />\n </Presence>\n );\n});\n\ntype ScrollAreaScrollbarAutoElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarAutoProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbarAuto = React.forwardRef<\n ScrollAreaScrollbarAutoElement,\n ScrollAreaScrollbarAutoProps\n>((props: ScopedProps<ScrollAreaScrollbarAutoProps>, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React.useState(false);\n const isHorizontal = props.orientation === 'horizontal';\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n\n return (\n <Presence present={forceMount || visible}>\n <ScrollAreaScrollbarVisible\n data-state={visible ? 'visible' : 'hidden'}\n {...scrollbarProps}\n ref={forwardedRef}\n />\n </Presence>\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarVisibleElement = ScrollAreaScrollbarAxisElement;\ninterface ScrollAreaScrollbarVisibleProps\n extends Omit<ScrollAreaScrollbarAxisProps, keyof ScrollAreaScrollbarAxisPrivateProps> {\n orientation?: 'horizontal' | 'vertical';\n}\n\nconst ScrollAreaScrollbarVisible = React.forwardRef<\n ScrollAreaScrollbarVisibleElement,\n ScrollAreaScrollbarVisibleProps\n>((props: ScopedProps<ScrollAreaScrollbarVisibleProps>, forwardedRef) => {\n const { orientation = 'vertical', ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React.useRef<ScrollAreaThumbElement | null>(null);\n const pointerOffsetRef = React.useRef(0);\n const [sizes, setSizes] = React.useState<Sizes>({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 },\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n\n type UncommonProps = 'onThumbPositionChange' | 'onDragScroll' | 'onWheelScroll';\n const commonProps: Omit<ScrollAreaScrollbarAxisPrivateProps, UncommonProps> = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => (thumbRef.current = thumb),\n onThumbPointerUp: () => (pointerOffsetRef.current = 0),\n onThumbPointerDown: (pointerPos) => (pointerOffsetRef.current = pointerPos),\n };\n\n function getScrollPosition(pointerPos: number, dir?: Direction) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n\n if (orientation === 'horizontal') {\n return (\n <ScrollAreaScrollbarX\n {...commonProps}\n ref={forwardedRef}\n onThumbPositionChange={() => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }}\n />\n );\n }\n\n if (orientation === 'vertical') {\n return (\n <ScrollAreaScrollbarY\n {...commonProps}\n ref={forwardedRef}\n onThumbPositionChange={() => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }}\n />\n );\n }\n\n return null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarAxisPrivateProps = {\n hasThumb: boolean;\n sizes: Sizes;\n onSizesChange(sizes: Sizes): void;\n onThumbChange(thumb: ScrollAreaThumbElement | null): void;\n onThumbPointerDown(pointerPos: number): void;\n onThumbPointerUp(): void;\n onThumbPositionChange(): void;\n onWheelScroll(scrollPos: number): void;\n onDragScroll(pointerPos: number): void;\n};\n\ntype ScrollAreaScrollbarAxisElement = ScrollAreaScrollbarImplElement;\ninterface ScrollAreaScrollbarAxisProps\n extends Omit<ScrollAreaScrollbarImplProps, keyof ScrollAreaScrollbarImplPrivateProps>,\n ScrollAreaScrollbarAxisPrivateProps {}\n\nconst ScrollAreaScrollbarX = React.forwardRef<\n ScrollAreaScrollbarAxisElement,\n ScrollAreaScrollbarAxisProps\n>((props: ScopedProps<ScrollAreaScrollbarAxisProps>, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React.useState<CSSStyleDeclaration>();\n const ref = React.useRef<ScrollAreaScrollbarAxisElement>(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n\n React.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n\n return (\n <ScrollAreaScrollbarImpl\n data-orientation=\"horizontal\"\n {...scrollbarProps}\n ref={composeRefs}\n sizes={sizes}\n style={{\n bottom: 0,\n left: context.dir === 'rtl' ? 'var(--radix-scroll-area-corner-width)' : 0,\n right: context.dir === 'ltr' ? 'var(--radix-scroll-area-corner-width)' : 0,\n ['--radix-scroll-area-thumb-width' as any]: getThumbSize(sizes) + 'px',\n ...props.style,\n }}\n onThumbPointerDown={(pointerPos) => props.onThumbPointerDown(pointerPos.x)}\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.x)}\n onWheelScroll={(event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n // prevent window scroll when wheeling on scrollbar\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight),\n },\n });\n }\n }}\n />\n );\n});\n\nconst ScrollAreaScrollbarY = React.forwardRef<\n ScrollAreaScrollbarAxisElement,\n ScrollAreaScrollbarAxisProps\n>((props: ScopedProps<ScrollAreaScrollbarAxisProps>, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React.useState<CSSStyleDeclaration>();\n const ref = React.useRef<ScrollAreaScrollbarAxisElement>(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n\n React.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n\n return (\n <ScrollAreaScrollbarImpl\n data-orientation=\"vertical\"\n {...scrollbarProps}\n ref={composeRefs}\n sizes={sizes}\n style={{\n top: 0,\n right: context.dir === 'ltr' ? 0 : undefined,\n left: context.dir === 'rtl' ? 0 : undefined,\n bottom: 'var(--radix-scroll-area-corner-height)',\n ['--radix-scroll-area-thumb-height' as any]: getThumbSize(sizes) + 'px',\n ...props.style,\n }}\n onThumbPointerDown={(pointerPos) => props.onThumbPointerDown(pointerPos.y)}\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.y)}\n onWheelScroll={(event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n // prevent window scroll when wheeling on scrollbar\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom),\n },\n });\n }\n }}\n />\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollbarContext = {\n hasThumb: boolean;\n scrollbar: ScrollAreaScrollbarElement | null;\n onThumbChange(thumb: ScrollAreaThumbElement | null): void;\n onThumbPointerUp(): void;\n onThumbPointerDown(pointerPos: { x: number; y: number }): void;\n onThumbPositionChange(): void;\n};\n\nconst [ScrollbarProvider, useScrollbarContext] =\n createScrollAreaContext<ScrollbarContext>(SCROLLBAR_NAME);\n\ntype ScrollAreaScrollbarImplElement = React.ComponentRef<typeof Primitive.div>;\ntype ScrollAreaScrollbarImplPrivateProps = {\n sizes: Sizes;\n hasThumb: boolean;\n onThumbChange: ScrollbarContext['onThumbChange'];\n onThumbPointerUp: ScrollbarContext['onThumbPointerUp'];\n onThumbPointerDown: ScrollbarContext['onThumbPointerDown'];\n onThumbPositionChange: ScrollbarContext['onThumbPositionChange'];\n onWheelScroll(event: WheelEvent, maxScrollPos: number): void;\n onDragScroll(pointerPos: { x: number; y: number }): void;\n onResize(): void;\n};\ninterface ScrollAreaScrollbarImplProps\n extends Omit<PrimitiveDivProps, keyof ScrollAreaScrollbarImplPrivateProps>,\n ScrollAreaScrollbarImplPrivateProps {}\n\nconst ScrollAreaScrollbarImpl = React.forwardRef<\n ScrollAreaScrollbarImplElement,\n ScrollAreaScrollbarImplProps\n>((props: ScopedProps<ScrollAreaScrollbarImplProps>, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = React.useState<ScrollAreaScrollbarElement | null>(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React.useRef<DOMRect | null>(null);\n const prevWebkitUserSelectRef = React.useRef<string>('');\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n\n function handleDragScroll(event: React.PointerEvent<HTMLElement>) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n\n /**\n * We bind wheel event imperatively so we can switch off passive\n * mode for document wheel event to allow it to be prevented\n */\n React.useEffect(() => {\n const handleWheel = (event: WheelEvent) => {\n const element = event.target as HTMLElement;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener('wheel', handleWheel, { passive: false });\n return () => document.removeEventListener('wheel', handleWheel, { passive: false } as any);\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n\n /**\n * Update thumb position on sizes change\n */\n React.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n\n return (\n <ScrollbarProvider\n scope={__scopeScrollArea}\n scrollbar={scrollbar}\n hasThumb={hasThumb}\n onThumbChange={useCallbackRef(onThumbChange)}\n onThumbPointerUp={useCallbackRef(onThumbPointerUp)}\n onThumbPositionChange={handleThumbPositionChange}\n onThumbPointerDown={useCallbackRef(onThumbPointerDown)}\n >\n <Primitive.div\n {...scrollbarProps}\n ref={composeRefs}\n style={{ position: 'absolute', ...scrollbarProps.style }}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target as HTMLElement;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar!.getBoundingClientRect();\n // pointer capture doesn't prevent text selection in Safari\n // so we remove text selection manually when scrolling\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = 'none';\n if (context.viewport) context.viewport.style.scrollBehavior = 'auto';\n handleDragScroll(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, handleDragScroll)}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target as HTMLElement;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = '';\n rectRef.current = null;\n })}\n />\n </ScrollbarProvider>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'ScrollAreaThumb';\n\ntype ScrollAreaThumbElement = ScrollAreaThumbImplElement;\ninterface ScrollAreaThumbProps extends ScrollAreaThumbImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst ScrollAreaThumb = React.forwardRef<ScrollAreaThumbElement, ScrollAreaThumbProps>(\n (props: ScopedProps<ScrollAreaThumbProps>, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return (\n <Presence present={forceMount || scrollbarContext.hasThumb}>\n <ScrollAreaThumbImpl ref={forwardedRef} {...thumbProps} />\n </Presence>\n );\n }\n);\n\ntype ScrollAreaThumbImplElement = React.ComponentRef<typeof Primitive.div>;\ninterface ScrollAreaThumbImplProps extends PrimitiveDivProps {}\n\nconst ScrollAreaThumbImpl = React.forwardRef<ScrollAreaThumbImplElement, ScrollAreaThumbImplProps>(\n (props: ScopedProps<ScrollAreaThumbImplProps>, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(forwardedRef, (node) =>\n scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React.useRef<() => void>(undefined);\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = undefined;\n }\n }, 100);\n\n React.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n /**\n * We only bind to native scroll event so we know when scroll starts and ends.\n * When scroll starts we start a requestAnimationFrame loop that checks for\n * changes to scroll position. That rAF loop triggers our thumb position change\n * when relevant to avoid scroll-linked effects. We cancel the loop when scroll ends.\n * https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\n */\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener('scroll', handleScroll);\n return () => viewport.removeEventListener('scroll', handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n\n return (\n <Primitive.div\n data-state={scrollbarContext.hasThumb ? 'visible' : 'hidden'}\n {...thumbProps}\n ref={composedRef}\n style={{\n width: 'var(--radix-scroll-area-thumb-width)',\n height: 'var(--radix-scroll-area-thumb-height)',\n ...style,\n }}\n onPointerDownCapture={composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target as HTMLElement;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)}\n />\n );\n }\n);\n\nScrollAreaThumb.displayName = THUMB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaCorner\n * -----------------------------------------------------------------------------------------------*/\n\nconst CORNER_NAME = 'ScrollAreaCorner';\n\ntype ScrollAreaCornerElement = ScrollAreaCornerImplElement;\ninterface ScrollAreaCornerProps extends ScrollAreaCornerImplProps {}\n\nconst ScrollAreaCorner = React.forwardRef<ScrollAreaCornerElement, ScrollAreaCornerProps>(\n (props: ScopedProps<ScrollAreaCornerProps>, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== 'scroll' && hasBothScrollbarsVisible;\n return hasCorner ? <ScrollAreaCornerImpl {...props} ref={forwardedRef} /> : null;\n }\n);\n\nScrollAreaCorner.displayName = CORNER_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaCornerImplElement = React.ComponentRef<typeof Primitive.div>;\ninterface ScrollAreaCornerImplProps extends PrimitiveDivProps {}\n\nconst ScrollAreaCornerImpl = React.forwardRef<\n ScrollAreaCornerImplElement,\n ScrollAreaCornerImplProps\n>((props: ScopedProps<ScrollAreaCornerImplProps>, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const hasSize = Boolean(width && height);\n\n useResizeObserver(context.scrollbarX, () => {\n const height = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height);\n setHeight(height);\n });\n\n useResizeObserver(context.scrollbarY, () => {\n const width = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width);\n setWidth(width);\n });\n\n return hasSize ? (\n <Primitive.div\n {...cornerProps}\n ref={forwardedRef}\n style={{\n width,\n height,\n position: 'absolute',\n right: context.dir === 'ltr' ? 0 : undefined,\n left: context.dir === 'rtl' ? 0 : undefined,\n bottom: 0,\n ...props.style,\n }}\n />\n ) : null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction toInt(value?: string) {\n return value ? parseInt(value, 10) : 0;\n}\n\nfunction getThumbRatio(viewportSize: number, contentSize: number) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\n\nfunction getThumbSize(sizes: Sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n // minimum of 18 matches macOS minimum\n return Math.max(thumbSize, 18);\n}\n\nfunction getScrollPositionFromPointer(\n pointerPos: number,\n pointerOffset: number,\n sizes: Sizes,\n dir: Direction = 'ltr'\n) {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange as [number, number]);\n return interpolate(pointerPos);\n}\n\nfunction getThumbOffsetFromScroll(scrollPos: number, sizes: Sizes, dir: Direction = 'ltr') {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange as [number, number]);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction isScrollingWithinScrollbarBounds(scrollPos: number, maxScrollPos: number) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\n\n// Custom scroll handler to avoid scroll-linked effects\n// https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\nconst addUnlinkedScrollListener = (node: HTMLElement, handler = () => {}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\n\nfunction useDebounceCallback(callback: () => void, delay: number) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React.useRef(0);\n React.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return React.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\n\nfunction useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n /**\n * Resize Observer will throw an often benign error that says `ResizeObserver loop\n * completed with undelivered notifications`. This means that ResizeObserver was not\n * able to deliver all observations within a single animation frame, so we use\n * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n * Further reading: https://github.com/WICG/resize-observer/issues/38\n */\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = ScrollArea;\nconst Viewport = ScrollAreaViewport;\nconst Scrollbar = ScrollAreaScrollbar;\nconst Thumb = ScrollAreaThumb;\nconst Corner = ScrollAreaCorner;\n\nexport {\n createScrollAreaScope,\n //\n ScrollArea,\n ScrollAreaViewport,\n ScrollAreaScrollbar,\n ScrollAreaThumb,\n ScrollAreaCorner,\n //\n Root,\n Viewport,\n Scrollbar,\n Thumb,\n Corner,\n};\nexport type {\n ScrollAreaProps,\n ScrollAreaViewportProps,\n ScrollAreaScrollbarProps,\n ScrollAreaThumbProps,\n ScrollAreaCornerProps,\n};\n","'use client';\n\nimport type * as React from 'react';\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\n\nimport { cn } from '../utils';\n\nconst ScrollBar = ({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n 'flex touch-none p-px transition-colors select-none',\n orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent',\n orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent',\n className,\n )}\n {...props}>\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-border relative flex-1 rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n);\n\nconst ScrollArea = ({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) => (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn('relative', className)}\n {...props}>\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n);\n\nexport { ScrollArea, ScrollBar };\n"],"names":["ScrollArea","React2","height","width","useLayoutEffect","_jsx","ScrollAreaPrimitive.ScrollAreaScrollbar","ScrollAreaPrimitive.ScrollAreaThumb","_jsxs","ScrollAreaPrimitive.Root","ScrollAreaPrimitive.Viewport","ScrollAreaPrimitive.Corner"],"mappings":";;;;;;;;;;;AAWO,SAAS,eAAA,CACd,cACA,OACA,EAAA;AACA,EAAa,OAAA,KAAA,CAAA,UAAA,CAAW,CAAC,KAAA,EAAwB,KAA4C,KAAA;AAC3F,IAAA,MAAM,SAAa,GAAA,OAAA,CAAQ,KAAK,CAAA,CAAU,KAAK,CAAA,CAAA;AAC/C,IAAA,OAAO,SAAa,IAAA,KAAA,CAAA;AAAA,KACnB,YAAY,CAAA,CAAA;AACjB,CAAA;ACUA,IAAM,gBAAmB,GAAA,YAAA,CAAA;AAGzB,IAAM,CAAC,uBAAA,EAAyB,qBAAqB,CAAA,GAAI,mBAAmB,gBAAgB,CAAA,CAAA;AAuB5F,IAAM,CAAC,kBAAA,EAAoB,oBAAoB,CAAA,GAC7C,wBAAgD,gBAAgB,CAAA,CAAA;AAUlE,IAAMA,YAAmB,GAAAC,KAAA,CAAA,UAAA;AAAA,EACvB,CAAC,OAAqC,YAAiB,KAAA;AACrD,IAAM,MAAA;AAAA,MACJ,iBAAA;AAAA,MACA,IAAO,GAAA,OAAA;AAAA,MACP,GAAA;AAAA,MACA,eAAkB,GAAA,GAAA;AAAA,MAClB,GAAG,eAAA;AAAA,KACD,GAAA,KAAA,CAAA;AACJ,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAUA,eAAmC,IAAI,CAAA,CAAA;AACjF,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAUA,eAA2C,IAAI,CAAA,CAAA;AACrF,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUA,eAAgC,IAAI,CAAA,CAAA;AACxE,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAUA,eAA4C,IAAI,CAAA,CAAA;AAC1F,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAUA,eAA4C,IAAI,CAAA,CAAA;AAC1F,IAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAUA,eAAS,CAAC,CAAA,CAAA;AACtD,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAUA,eAAS,CAAC,CAAA,CAAA;AACxD,IAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAUA,eAAS,KAAK,CAAA,CAAA;AACtE,IAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAUA,eAAS,KAAK,CAAA,CAAA;AACtE,IAAA,MAAM,eAAe,eAAgB,CAAA,YAAA,EAAc,CAAC,IAAS,KAAA,aAAA,CAAc,IAAI,CAAC,CAAA,CAAA;AAChF,IAAM,MAAA,SAAA,GAAY,aAAa,GAAG,CAAA,CAAA;AAElC,IACE,uBAAA,GAAA;AAAA,MAAC,kBAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA,iBAAA;AAAA,QACP,IAAA;AAAA,QACA,GAAK,EAAA,SAAA;AAAA,QACL,eAAA;AAAA,QACA,UAAA;AAAA,QACA,QAAA;AAAA,QACA,gBAAkB,EAAA,WAAA;AAAA,QAClB,OAAA;AAAA,QACA,eAAiB,EAAA,UAAA;AAAA,QACjB,UAAA;AAAA,QACA,kBAAoB,EAAA,aAAA;AAAA,QACpB,iBAAA;AAAA,QACA,yBAA2B,EAAA,oBAAA;AAAA,QAC3B,UAAA;AAAA,QACA,kBAAoB,EAAA,aAAA;AAAA,QACpB,iBAAA;AAAA,QACA,yBAA2B,EAAA,oBAAA;AAAA,QAC3B,mBAAqB,EAAA,cAAA;AAAA,QACrB,oBAAsB,EAAA,eAAA;AAAA,QAEtB,QAAA,kBAAA,GAAA;AAAA,UAAC,SAAU,CAAA,GAAA;AAAA,UAAV;AAAA,YACC,GAAK,EAAA,SAAA;AAAA,YACJ,GAAG,eAAA;AAAA,YACJ,GAAK,EAAA,YAAA;AAAA,YACL,KAAO,EAAA;AAAA,cACL,QAAU,EAAA,UAAA;AAAA;AAAA,cAEV,CAAC,kCAAyC,GAAG,WAAc,GAAA,IAAA;AAAA,cAC3D,CAAC,mCAA0C,GAAG,YAAe,GAAA,IAAA;AAAA,cAC7D,GAAG,KAAM,CAAA,KAAA;AAAA,aACX;AAAA,WAAA;AAAA,SACF;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AACF,CAAA,CAAA;AAEAD,YAAA,CAAW,WAAc,GAAA,gBAAA,CAAA;AAMzB,IAAM,aAAgB,GAAA,oBAAA,CAAA;AAOtB,IAAM,kBAA2B,GAAAC,KAAA,CAAA,UAAA;AAAA,EAC/B,CAAC,OAA6C,YAAiB,KAAA;AAC7D,IAAA,MAAM,EAAE,iBAAmB,EAAA,QAAA,EAAU,KAAO,EAAA,GAAG,eAAkB,GAAA,KAAA,CAAA;AACjE,IAAM,MAAA,OAAA,GAAU,oBAAqB,CAAA,aAAA,EAAe,iBAAiB,CAAA,CAAA;AACrE,IAAM,MAAA,GAAA,GAAYA,aAAkC,IAAI,CAAA,CAAA;AACxD,IAAA,MAAM,YAAe,GAAA,eAAA,CAAgB,YAAc,EAAA,GAAA,EAAK,QAAQ,gBAAgB,CAAA,CAAA;AAChF,IAAA,uBAGI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,uBAAyB,EAAA;AAAA,YACvB,MAAQ,EAAA,CAAA,mLAAA,CAAA;AAAA,WACV;AAAA,UACA,KAAA;AAAA,SAAA;AAAA,OACF;AAAA,sBACA,GAAA;AAAA,QAAC,SAAU,CAAA,GAAA;AAAA,QAAV;AAAA,UACC,iCAAgC,EAAA,EAAA;AAAA,UAC/B,GAAG,aAAA;AAAA,UACJ,GAAK,EAAA,YAAA;AAAA,UACL,KAAO,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAYL,SAAA,EAAW,OAAQ,CAAA,iBAAA,GAAoB,QAAW,GAAA,QAAA;AAAA,YAClD,SAAA,EAAW,OAAQ,CAAA,iBAAA,GAAoB,QAAW,GAAA,QAAA;AAAA,YAClD,GAAG,KAAM,CAAA,KAAA;AAAA,WACX;AAAA,UASA,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA,EAAI,GAAK,EAAA,OAAA,CAAQ,eAAiB,EAAA,KAAA,EAAO,EAAE,QAAA,EAAU,MAAQ,EAAA,OAAA,EAAS,OAAQ,EAAA,EAC5E,QACH,EAAA,CAAA;AAAA,SAAA;AAAA,OACF;AAAA,KACF,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,CAAA,CAAA;AAEA,kBAAA,CAAmB,WAAc,GAAA,aAAA,CAAA;AAMjC,IAAM,cAAiB,GAAA,qBAAA,CAAA;AAOvB,IAAM,mBAA4B,GAAAA,KAAA,CAAA,UAAA;AAAA,EAChC,CAAC,OAA8C,YAAiB,KAAA;AAC9D,IAAA,MAAM,EAAE,UAAA,EAAY,GAAG,cAAA,EAAmB,GAAA,KAAA,CAAA;AAC1C,IAAA,MAAM,OAAU,GAAA,oBAAA,CAAqB,cAAgB,EAAA,KAAA,CAAM,iBAAiB,CAAA,CAAA;AAC5E,IAAM,MAAA,EAAE,yBAA2B,EAAA,yBAAA,EAA8B,GAAA,OAAA,CAAA;AACjE,IAAM,MAAA,YAAA,GAAe,MAAM,WAAgB,KAAA,YAAA,CAAA;AAE3C,IAAMA,gBAAU,MAAM;AACpB,MAAA,YAAA,GAAe,yBAA0B,CAAA,IAAI,CAAI,GAAA,yBAAA,CAA0B,IAAI,CAAA,CAAA;AAC/E,MAAA,OAAO,MAAM;AACX,QAAA,YAAA,GAAe,yBAA0B,CAAA,KAAK,CAAI,GAAA,yBAAA,CAA0B,KAAK,CAAA,CAAA;AAAA,OACnF,CAAA;AAAA,KACC,EAAA,CAAC,YAAc,EAAA,yBAAA,EAA2B,yBAAyB,CAAC,CAAA,CAAA;AAEvE,IAAA,OAAO,QAAQ,IAAS,KAAA,OAAA,uBACrB,wBAA0B,EAAA,EAAA,GAAG,gBAAgB,GAAK,EAAA,YAAA,EAAc,YAAwB,CACvF,GAAA,OAAA,CAAQ,SAAS,QACnB,mBAAA,GAAA,CAAC,6BAA2B,GAAG,cAAA,EAAgB,KAAK,YAAc,EAAA,UAAA,EAAwB,CACxF,GAAA,OAAA,CAAQ,SAAS,MACnB,mBAAA,GAAA,CAAC,2BAAyB,GAAG,cAAA,EAAgB,KAAK,YAAc,EAAA,UAAA,EAAwB,IACtF,OAAQ,CAAA,IAAA,KAAS,2BAClB,GAAA,CAAA,0BAAA,EAAA,EAA4B,GAAG,cAAgB,EAAA,GAAA,EAAK,cAAc,CACjE,GAAA,IAAA,CAAA;AAAA,GACN;AACF,CAAA,CAAA;AAEA,mBAAA,CAAoB,WAAc,GAAA,cAAA,CAAA;AASlC,IAAM,wBAAiC,GAAAA,KAAA,CAAA,UAAA,CAGrC,CAAC,KAAA,EAAmD,YAAiB,KAAA;AACrE,EAAA,MAAM,EAAE,UAAA,EAAY,GAAG,cAAA,EAAmB,GAAA,KAAA,CAAA;AAC1C,EAAA,MAAM,OAAU,GAAA,oBAAA,CAAqB,cAAgB,EAAA,KAAA,CAAM,iBAAiB,CAAA,CAAA;AAC5E,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUA,eAAS,KAAK,CAAA,CAAA;AAElD,EAAMA,gBAAU,MAAM;AACpB,IAAA,MAAM,aAAa,OAAQ,CAAA,UAAA,CAAA;AAC3B,IAAA,IAAI,SAAY,GAAA,CAAA,CAAA;AAChB,IAAA,IAAI,UAAY,EAAA;AACd,MAAA,MAAM,qBAAqB,MAAM;AAC/B,QAAA,MAAA,CAAO,aAAa,SAAS,CAAA,CAAA;AAC7B,QAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AAAA,OACjB,CAAA;AACA,MAAA,MAAM,qBAAqB,MAAM;AAC/B,QAAA,SAAA,GAAY,OAAO,UAAW,CAAA,MAAM,WAAW,KAAK,CAAA,EAAG,QAAQ,eAAe,CAAA,CAAA;AAAA,OAChF,CAAA;AACA,MAAW,UAAA,CAAA,gBAAA,CAAiB,gBAAgB,kBAAkB,CAAA,CAAA;AAC9D,MAAW,UAAA,CAAA,gBAAA,CAAiB,gBAAgB,kBAAkB,CAAA,CAAA;AAC9D,MAAA,OAAO,MAAM;AACX,QAAA,MAAA,CAAO,aAAa,SAAS,CAAA,CAAA;AAC7B,QAAW,UAAA,CAAA,mBAAA,CAAoB,gBAAgB,kBAAkB,CAAA,CAAA;AACjE,QAAW,UAAA,CAAA,mBAAA,CAAoB,gBAAgB,kBAAkB,CAAA,CAAA;AAAA,OACnE,CAAA;AAAA,KACF;AAAA,KACC,CAAC,OAAA,CAAQ,UAAY,EAAA,OAAA,CAAQ,eAAe,CAAC,CAAA,CAAA;AAEhD,EAAA,uBACG,GAAA,CAAA,QAAA,EAAA,EAAS,OAAS,EAAA,UAAA,IAAc,OAC/B,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,UAAU,SAAY,GAAA,QAAA;AAAA,MACjC,GAAG,cAAA;AAAA,MACJ,GAAK,EAAA,YAAA;AAAA,KAAA;AAAA,GAET,EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA,CAAA;AAOD,IAAM,yBAAkC,GAAAA,KAAA,CAAA,UAAA,CAGtC,CAAC,KAAA,EAAoD,YAAiB,KAAA;AACtE,EAAA,MAAM,EAAE,UAAA,EAAY,GAAG,cAAA,EAAmB,GAAA,KAAA,CAAA;AAC1C,EAAA,MAAM,OAAU,GAAA,oBAAA,CAAqB,cAAgB,EAAA,KAAA,CAAM,iBAAiB,CAAA,CAAA;AAC5E,EAAM,MAAA,YAAA,GAAe,MAAM,WAAgB,KAAA,YAAA,CAAA;AAC3C,EAAA,MAAM,oBAAoB,mBAAoB,CAAA,MAAM,IAAK,CAAA,YAAY,GAAG,GAAG,CAAA,CAAA;AAC3E,EAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,gBAAgB,QAAU,EAAA;AAAA,IAC9C,MAAQ,EAAA;AAAA,MACN,MAAQ,EAAA,WAAA;AAAA,KACV;AAAA,IACA,SAAW,EAAA;AAAA,MACT,UAAY,EAAA,MAAA;AAAA,MACZ,aAAe,EAAA,aAAA;AAAA,KACjB;AAAA,IACA,WAAa,EAAA;AAAA,MACX,MAAQ,EAAA,aAAA;AAAA,MACR,aAAe,EAAA,MAAA;AAAA,KACjB;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,IAAM,EAAA,QAAA;AAAA,MACN,MAAQ,EAAA,WAAA;AAAA,MACR,aAAe,EAAA,aAAA;AAAA,KACjB;AAAA,GACD,CAAA,CAAA;AAED,EAAMA,gBAAU,MAAM;AACpB,IAAA,IAAI,UAAU,MAAQ,EAAA;AACpB,MAAM,MAAA,SAAA,GAAY,OAAO,UAAW,CAAA,MAAM,KAAK,MAAM,CAAA,EAAG,QAAQ,eAAe,CAAA,CAAA;AAC/E,MAAO,OAAA,MAAM,MAAO,CAAA,YAAA,CAAa,SAAS,CAAA,CAAA;AAAA,KAC5C;AAAA,KACC,CAAC,KAAA,EAAO,OAAQ,CAAA,eAAA,EAAiB,IAAI,CAAC,CAAA,CAAA;AAEzC,EAAMA,gBAAU,MAAM;AACpB,IAAA,MAAM,WAAW,OAAQ,CAAA,QAAA,CAAA;AACzB,IAAM,MAAA,eAAA,GAAkB,eAAe,YAAe,GAAA,WAAA,CAAA;AAEtD,IAAA,IAAI,QAAU,EAAA;AACZ,MAAI,IAAA,aAAA,GAAgB,SAAS,eAAe,CAAA,CAAA;AAC5C,MAAA,MAAM,eAAe,MAAM;AACzB,QAAM,MAAA,SAAA,GAAY,SAAS,eAAe,CAAA,CAAA;AAC1C,QAAA,MAAM,8BAA8B,aAAkB,KAAA,SAAA,CAAA;AACtD,QAAA,IAAI,2BAA6B,EAAA;AAC/B,UAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AACb,UAAkB,iBAAA,EAAA,CAAA;AAAA,SACpB;AACA,QAAgB,aAAA,GAAA,SAAA,CAAA;AAAA,OAClB,CAAA;AACA,MAAS,QAAA,CAAA,gBAAA,CAAiB,UAAU,YAAY,CAAA,CAAA;AAChD,MAAA,OAAO,MAAM,QAAA,CAAS,mBAAoB,CAAA,QAAA,EAAU,YAAY,CAAA,CAAA;AAAA,KAClE;AAAA,KACC,CAAC,OAAA,CAAQ,UAAU,YAAc,EAAA,IAAA,EAAM,iBAAiB,CAAC,CAAA,CAAA;AAE5D,EAAA,uBACG,GAAA,CAAA,QAAA,EAAA,EAAS,OAAS,EAAA,UAAA,IAAc,UAAU,QACzC,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,0BAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,KAAU,KAAA,QAAA,GAAW,QAAW,GAAA,SAAA;AAAA,MAC3C,GAAG,cAAA;AAAA,MACJ,GAAK,EAAA,YAAA;AAAA,MACL,gBAAgB,oBAAqB,CAAA,KAAA,CAAM,gBAAgB,MAAM,IAAA,CAAK,eAAe,CAAC,CAAA;AAAA,MACtF,gBAAgB,oBAAqB,CAAA,KAAA,CAAM,gBAAgB,MAAM,IAAA,CAAK,eAAe,CAAC,CAAA;AAAA,KAAA;AAAA,GAE1F,EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA,CAAA;AAOD,IAAM,uBAAgC,GAAAA,KAAA,CAAA,UAAA,CAGpC,CAAC,KAAA,EAAkD,YAAiB,KAAA;AACpE,EAAA,MAAM,OAAU,GAAA,oBAAA,CAAqB,cAAgB,EAAA,KAAA,CAAM,iBAAiB,CAAA,CAAA;AAC5E,EAAA,MAAM,EAAE,UAAA,EAAY,GAAG,cAAA,EAAmB,GAAA,KAAA,CAAA;AAC1C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAUA,eAAS,KAAK,CAAA,CAAA;AAClD,EAAM,MAAA,YAAA,GAAe,MAAM,WAAgB,KAAA,YAAA,CAAA;AAC3C,EAAM,MAAA,YAAA,GAAe,oBAAoB,MAAM;AAC7C,IAAA,IAAI,QAAQ,QAAU,EAAA;AACpB,MAAA,MAAM,WAAc,GAAA,OAAA,CAAQ,QAAS,CAAA,WAAA,GAAc,QAAQ,QAAS,CAAA,WAAA,CAAA;AACpE,MAAA,MAAM,WAAc,GAAA,OAAA,CAAQ,QAAS,CAAA,YAAA,GAAe,QAAQ,QAAS,CAAA,YAAA,CAAA;AACrE,MAAW,UAAA,CAAA,YAAA,GAAe,cAAc,WAAW,CAAA,CAAA;AAAA,KACrD;AAAA,KACC,EAAE,CAAA,CAAA;AAEL,EAAkB,iBAAA,CAAA,OAAA,CAAQ,UAAU,YAAY,CAAA,CAAA;AAChD,EAAkB,iBAAA,CAAA,OAAA,CAAQ,SAAS,YAAY,CAAA,CAAA;AAE/C,EAAA,uBACG,GAAA,CAAA,QAAA,EAAA,EAAS,OAAS,EAAA,UAAA,IAAc,OAC/B,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,0BAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,UAAU,SAAY,GAAA,QAAA;AAAA,MACjC,GAAG,cAAA;AAAA,MACJ,GAAK,EAAA,YAAA;AAAA,KAAA;AAAA,GAET,EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA,CAAA;AAUD,IAAM,0BAAmC,GAAAA,KAAA,CAAA,UAAA,CAGvC,CAAC,KAAA,EAAqD,YAAiB,KAAA;AACvE,EAAA,MAAM,EAAE,WAAA,GAAc,UAAY,EAAA,GAAG,gBAAmB,GAAA,KAAA,CAAA;AACxD,EAAA,MAAM,OAAU,GAAA,oBAAA,CAAqB,cAAgB,EAAA,KAAA,CAAM,iBAAiB,CAAA,CAAA;AAC5E,EAAM,MAAA,QAAA,GAAiBA,aAAsC,IAAI,CAAA,CAAA;AACjE,EAAM,MAAA,gBAAA,GAAyBA,aAAO,CAAC,CAAA,CAAA;AACvC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAUA,KAAgB,CAAA,QAAA,CAAA;AAAA,IAC9C,OAAS,EAAA,CAAA;AAAA,IACT,QAAU,EAAA,CAAA;AAAA,IACV,WAAW,EAAE,IAAA,EAAM,GAAG,YAAc,EAAA,CAAA,EAAG,YAAY,CAAE,EAAA;AAAA,GACtD,CAAA,CAAA;AACD,EAAA,MAAM,UAAa,GAAA,aAAA,CAAc,KAAM,CAAA,QAAA,EAAU,MAAM,OAAO,CAAA,CAAA;AAG9D,EAAA,MAAM,WAAwE,GAAA;AAAA,IAC5E,GAAG,cAAA;AAAA,IACH,KAAA;AAAA,IACA,aAAe,EAAA,QAAA;AAAA,IACf,QAAU,EAAA,OAAA,CAAQ,UAAa,GAAA,CAAA,IAAK,aAAa,CAAC,CAAA;AAAA,IAClD,aAAe,EAAA,CAAC,KAAW,KAAA,QAAA,CAAS,OAAU,GAAA,KAAA;AAAA,IAC9C,gBAAA,EAAkB,MAAO,gBAAA,CAAiB,OAAU,GAAA,CAAA;AAAA,IACpD,kBAAoB,EAAA,CAAC,UAAgB,KAAA,gBAAA,CAAiB,OAAU,GAAA,UAAA;AAAA,GAClE,CAAA;AAEA,EAAS,SAAA,iBAAA,CAAkB,YAAoB,GAAiB,EAAA;AAC9D,IAAA,OAAO,4BAA6B,CAAA,UAAA,EAAY,gBAAiB,CAAA,OAAA,EAAS,OAAO,GAAG,CAAA,CAAA;AAAA,GACtF;AAEA,EAAA,IAAI,gBAAgB,YAAc,EAAA;AAChC,IACE,uBAAA,GAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACE,GAAG,WAAA;AAAA,QACJ,GAAK,EAAA,YAAA;AAAA,QACL,uBAAuB,MAAM;AAC3B,UAAI,IAAA,OAAA,CAAQ,QAAY,IAAA,QAAA,CAAS,OAAS,EAAA;AACxC,YAAM,MAAA,SAAA,GAAY,QAAQ,QAAS,CAAA,UAAA,CAAA;AACnC,YAAA,MAAM,MAAS,GAAA,wBAAA,CAAyB,SAAW,EAAA,KAAA,EAAO,QAAQ,GAAG,CAAA,CAAA;AACrE,YAAA,QAAA,CAAS,OAAQ,CAAA,KAAA,CAAM,SAAY,GAAA,CAAA,YAAA,EAAe,MAAM,CAAA,SAAA,CAAA,CAAA;AAAA,WAC1D;AAAA,SACF;AAAA,QACA,aAAA,EAAe,CAAC,SAAc,KAAA;AAC5B,UAAA,IAAI,OAAQ,CAAA,QAAA,EAAkB,OAAA,CAAA,QAAA,CAAS,UAAa,GAAA,SAAA,CAAA;AAAA,SACtD;AAAA,QACA,YAAA,EAAc,CAAC,UAAe,KAAA;AAC5B,UAAA,IAAI,QAAQ,QAAU,EAAA;AACpB,YAAA,OAAA,CAAQ,QAAS,CAAA,UAAA,GAAa,iBAAkB,CAAA,UAAA,EAAY,QAAQ,GAAG,CAAA,CAAA;AAAA,WACzE;AAAA,SACF;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AAEA,EAAA,IAAI,gBAAgB,UAAY,EAAA;AAC9B,IACE,uBAAA,GAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACE,GAAG,WAAA;AAAA,QACJ,GAAK,EAAA,YAAA;AAAA,QACL,uBAAuB,MAAM;AAC3B,UAAI,IAAA,OAAA,CAAQ,QAAY,IAAA,QAAA,CAAS,OAAS,EAAA;AACxC,YAAM,MAAA,SAAA,GAAY,QAAQ,QAAS,CAAA,SAAA,CAAA;AACnC,YAAM,MAAA,MAAA,GAAS,wBAAyB,CAAA,SAAA,EAAW,KAAK,CAAA,CAAA;AACxD,YAAA,QAAA,CAAS,OAAQ,CAAA,KAAA,CAAM,SAAY,GAAA,CAAA,eAAA,EAAkB,MAAM,CAAA,MAAA,CAAA,CAAA;AAAA,WAC7D;AAAA,SACF;AAAA,QACA,aAAA,EAAe,CAAC,SAAc,KAAA;AAC5B,UAAA,IAAI,OAAQ,CAAA,QAAA,EAAkB,OAAA,CAAA,QAAA,CAAS,SAAY,GAAA,SAAA,CAAA;AAAA,SACrD;AAAA,QACA,YAAA,EAAc,CAAC,UAAe,KAAA;AAC5B,UAAA,IAAI,QAAQ,QAAU,EAAA,OAAA,CAAQ,QAAS,CAAA,SAAA,GAAY,kBAAkB,UAAU,CAAA,CAAA;AAAA,SACjF;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AAEA,EAAO,OAAA,IAAA,CAAA;AACT,CAAC,CAAA,CAAA;AAqBD,IAAM,oBAA6B,GAAAA,KAAA,CAAA,UAAA,CAGjC,CAAC,KAAA,EAAkD,YAAiB,KAAA;AACpE,EAAA,MAAM,EAAE,KAAA,EAAO,aAAe,EAAA,GAAG,gBAAmB,GAAA,KAAA,CAAA;AACpD,EAAA,MAAM,OAAU,GAAA,oBAAA,CAAqB,cAAgB,EAAA,KAAA,CAAM,iBAAiB,CAAA,CAAA;AAC5E,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,KAA8B,CAAA,QAAA,EAAA,CAAA;AAC9E,EAAM,MAAA,GAAA,GAAYA,aAAuC,IAAI,CAAA,CAAA;AAC7D,EAAA,MAAM,WAAc,GAAA,eAAA,CAAgB,YAAc,EAAA,GAAA,EAAK,QAAQ,kBAAkB,CAAA,CAAA;AAEjF,EAAMA,gBAAU,MAAM;AACpB,IAAA,IAAI,IAAI,OAAS,EAAA,gBAAA,CAAiB,gBAAiB,CAAA,GAAA,CAAI,OAAO,CAAC,CAAA,CAAA;AAAA,GACjE,EAAG,CAAC,GAAG,CAAC,CAAA,CAAA;AAER,EACE,uBAAA,GAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,kBAAiB,EAAA,YAAA;AAAA,MAChB,GAAG,cAAA;AAAA,MACJ,GAAK,EAAA,WAAA;AAAA,MACL,KAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACL,MAAQ,EAAA,CAAA;AAAA,QACR,IAAM,EAAA,OAAA,CAAQ,GAAQ,KAAA,KAAA,GAAQ,uCAA0C,GAAA,CAAA;AAAA,QACxE,KAAO,EAAA,OAAA,CAAQ,GAAQ,KAAA,KAAA,GAAQ,uCAA0C,GAAA,CAAA;AAAA,QACzE,CAAC,iCAAwC,GAAG,YAAA,CAAa,KAAK,CAAI,GAAA,IAAA;AAAA,QAClE,GAAG,KAAM,CAAA,KAAA;AAAA,OACX;AAAA,MACA,oBAAoB,CAAC,UAAA,KAAe,KAAM,CAAA,kBAAA,CAAmB,WAAW,CAAC,CAAA;AAAA,MACzE,cAAc,CAAC,UAAA,KAAe,KAAM,CAAA,YAAA,CAAa,WAAW,CAAC,CAAA;AAAA,MAC7D,aAAA,EAAe,CAAC,KAAA,EAAO,YAAiB,KAAA;AACtC,QAAA,IAAI,QAAQ,QAAU,EAAA;AACpB,UAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,QAAS,CAAA,UAAA,GAAa,KAAM,CAAA,MAAA,CAAA;AACtD,UAAA,KAAA,CAAM,cAAc,SAAS,CAAA,CAAA;AAE7B,UAAI,IAAA,gCAAA,CAAiC,SAAW,EAAA,YAAY,CAAG,EAAA;AAC7D,YAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AAAA,WACvB;AAAA,SACF;AAAA,OACF;AAAA,MACA,UAAU,MAAM;AACd,QAAA,IAAI,GAAI,CAAA,OAAA,IAAW,OAAQ,CAAA,QAAA,IAAY,aAAe,EAAA;AACpD,UAAc,aAAA,CAAA;AAAA,YACZ,OAAA,EAAS,QAAQ,QAAS,CAAA,WAAA;AAAA,YAC1B,QAAA,EAAU,QAAQ,QAAS,CAAA,WAAA;AAAA,YAC3B,SAAW,EAAA;AAAA,cACT,IAAA,EAAM,IAAI,OAAQ,CAAA,WAAA;AAAA,cAClB,YAAA,EAAc,KAAM,CAAA,aAAA,CAAc,WAAW,CAAA;AAAA,cAC7C,UAAA,EAAY,KAAM,CAAA,aAAA,CAAc,YAAY,CAAA;AAAA,aAC9C;AAAA,WACD,CAAA,CAAA;AAAA,SACH;AAAA,OACF;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAC,CAAA,CAAA;AAED,IAAM,oBAA6B,GAAAA,KAAA,CAAA,UAAA,CAGjC,CAAC,KAAA,EAAkD,YAAiB,KAAA;AACpE,EAAA,MAAM,EAAE,KAAA,EAAO,aAAe,EAAA,GAAG,gBAAmB,GAAA,KAAA,CAAA;AACpD,EAAA,MAAM,OAAU,GAAA,oBAAA,CAAqB,cAAgB,EAAA,KAAA,CAAM,iBAAiB,CAAA,CAAA;AAC5E,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,KAA8B,CAAA,QAAA,EAAA,CAAA;AAC9E,EAAM,MAAA,GAAA,GAAYA,aAAuC,IAAI,CAAA,CAAA;AAC7D,EAAA,MAAM,WAAc,GAAA,eAAA,CAAgB,YAAc,EAAA,GAAA,EAAK,QAAQ,kBAAkB,CAAA,CAAA;AAEjF,EAAMA,gBAAU,MAAM;AACpB,IAAA,IAAI,IAAI,OAAS,EAAA,gBAAA,CAAiB,gBAAiB,CAAA,GAAA,CAAI,OAAO,CAAC,CAAA,CAAA;AAAA,GACjE,EAAG,CAAC,GAAG,CAAC,CAAA,CAAA;AAER,EACE,uBAAA,GAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,kBAAiB,EAAA,UAAA;AAAA,MAChB,GAAG,cAAA;AAAA,MACJ,GAAK,EAAA,WAAA;AAAA,MACL,KAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACL,GAAK,EAAA,CAAA;AAAA,QACL,KAAO,EAAA,OAAA,CAAQ,GAAQ,KAAA,KAAA,GAAQ,CAAI,GAAA,KAAA,CAAA;AAAA,QACnC,IAAM,EAAA,OAAA,CAAQ,GAAQ,KAAA,KAAA,GAAQ,CAAI,GAAA,KAAA,CAAA;AAAA,QAClC,MAAQ,EAAA,wCAAA;AAAA,QACR,CAAC,kCAAyC,GAAG,YAAA,CAAa,KAAK,CAAI,GAAA,IAAA;AAAA,QACnE,GAAG,KAAM,CAAA,KAAA;AAAA,OACX;AAAA,MACA,oBAAoB,CAAC,UAAA,KAAe,KAAM,CAAA,kBAAA,CAAmB,WAAW,CAAC,CAAA;AAAA,MACzE,cAAc,CAAC,UAAA,KAAe,KAAM,CAAA,YAAA,CAAa,WAAW,CAAC,CAAA;AAAA,MAC7D,aAAA,EAAe,CAAC,KAAA,EAAO,YAAiB,KAAA;AACtC,QAAA,IAAI,QAAQ,QAAU,EAAA;AACpB,UAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,QAAS,CAAA,SAAA,GAAY,KAAM,CAAA,MAAA,CAAA;AACrD,UAAA,KAAA,CAAM,cAAc,SAAS,CAAA,CAAA;AAE7B,UAAI,IAAA,gCAAA,CAAiC,SAAW,EAAA,YAAY,CAAG,EAAA;AAC7D,YAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AAAA,WACvB;AAAA,SACF;AAAA,OACF;AAAA,MACA,UAAU,MAAM;AACd,QAAA,IAAI,GAAI,CAAA,OAAA,IAAW,OAAQ,CAAA,QAAA,IAAY,aAAe,EAAA;AACpD,UAAc,aAAA,CAAA;AAAA,YACZ,OAAA,EAAS,QAAQ,QAAS,CAAA,YAAA;AAAA,YAC1B,QAAA,EAAU,QAAQ,QAAS,CAAA,YAAA;AAAA,YAC3B,SAAW,EAAA;AAAA,cACT,IAAA,EAAM,IAAI,OAAQ,CAAA,YAAA;AAAA,cAClB,YAAA,EAAc,KAAM,CAAA,aAAA,CAAc,UAAU,CAAA;AAAA,cAC5C,UAAA,EAAY,KAAM,CAAA,aAAA,CAAc,aAAa,CAAA;AAAA,aAC/C;AAAA,WACD,CAAA,CAAA;AAAA,SACH;AAAA,OACF;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAC,CAAA,CAAA;AAaD,IAAM,CAAC,iBAAA,EAAmB,mBAAmB,CAAA,GAC3C,wBAA0C,cAAc,CAAA,CAAA;AAkB1D,IAAM,uBAAgC,GAAAA,KAAA,CAAA,UAAA,CAGpC,CAAC,KAAA,EAAkD,YAAiB,KAAA;AACpE,EAAM,MAAA;AAAA,IACJ,iBAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,IACA,kBAAA;AAAA,IACA,qBAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG,cAAA;AAAA,GACD,GAAA,KAAA,CAAA;AACJ,EAAM,MAAA,OAAA,GAAU,oBAAqB,CAAA,cAAA,EAAgB,iBAAiB,CAAA,CAAA;AACtE,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAUA,eAA4C,IAAI,CAAA,CAAA;AACxF,EAAA,MAAM,cAAc,eAAgB,CAAA,YAAA,EAAc,CAAC,IAAS,KAAA,YAAA,CAAa,IAAI,CAAC,CAAA,CAAA;AAC9E,EAAM,MAAA,OAAA,GAAgBA,aAAuB,IAAI,CAAA,CAAA;AACjD,EAAM,MAAA,uBAAA,GAAgCA,aAAe,EAAE,CAAA,CAAA;AACvD,EAAA,MAAM,WAAW,OAAQ,CAAA,QAAA,CAAA;AACzB,EAAM,MAAA,YAAA,GAAe,KAAM,CAAA,OAAA,GAAU,KAAM,CAAA,QAAA,CAAA;AAC3C,EAAM,MAAA,iBAAA,GAAoB,eAAe,aAAa,CAAA,CAAA;AACtD,EAAM,MAAA,yBAAA,GAA4B,eAAe,qBAAqB,CAAA,CAAA;AACtE,EAAM,MAAA,YAAA,GAAe,mBAAoB,CAAA,QAAA,EAAU,EAAE,CAAA,CAAA;AAErD,EAAA,SAAS,iBAAiB,KAAwC,EAAA;AAChE,IAAA,IAAI,QAAQ,OAAS,EAAA;AACnB,MAAA,MAAM,CAAI,GAAA,KAAA,CAAM,OAAU,GAAA,OAAA,CAAQ,OAAQ,CAAA,IAAA,CAAA;AAC1C,MAAA,MAAM,CAAI,GAAA,KAAA,CAAM,OAAU,GAAA,OAAA,CAAQ,OAAQ,CAAA,GAAA,CAAA;AAC1C,MAAa,YAAA,CAAA,EAAE,CAAG,EAAA,CAAA,EAAG,CAAA,CAAA;AAAA,KACvB;AAAA,GACF;AAMA,EAAMA,gBAAU,MAAM;AACpB,IAAM,MAAA,WAAA,GAAc,CAAC,KAAsB,KAAA;AACzC,MAAA,MAAM,UAAU,KAAM,CAAA,MAAA,CAAA;AACtB,MAAM,MAAA,gBAAA,GAAmB,SAAW,EAAA,QAAA,CAAS,OAAO,CAAA,CAAA;AACpD,MAAI,IAAA,gBAAA,EAAoC,iBAAA,CAAA,KAAA,EAAO,YAAY,CAAA,CAAA;AAAA,KAC7D,CAAA;AACA,IAAA,QAAA,CAAS,iBAAiB,OAAS,EAAA,WAAA,EAAa,EAAE,OAAA,EAAS,OAAO,CAAA,CAAA;AAClE,IAAO,OAAA,MAAM,SAAS,mBAAoB,CAAA,OAAA,EAAS,aAAa,EAAE,OAAA,EAAS,OAAc,CAAA,CAAA;AAAA,KACxF,CAAC,QAAA,EAAU,SAAW,EAAA,YAAA,EAAc,iBAAiB,CAAC,CAAA,CAAA;AAKzD,EAAMA,KAAU,CAAA,SAAA,CAAA,yBAAA,EAA2B,CAAC,KAAA,EAAO,yBAAyB,CAAC,CAAA,CAAA;AAE7E,EAAA,iBAAA,CAAkB,WAAW,YAAY,CAAA,CAAA;AACzC,EAAkB,iBAAA,CAAA,OAAA,CAAQ,SAAS,YAAY,CAAA,CAAA;AAE/C,EACE,uBAAA,GAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,iBAAA;AAAA,MACP,SAAA;AAAA,MACA,QAAA;AAAA,MACA,aAAA,EAAe,eAAe,aAAa,CAAA;AAAA,MAC3C,gBAAA,EAAkB,eAAe,gBAAgB,CAAA;AAAA,MACjD,qBAAuB,EAAA,yBAAA;AAAA,MACvB,kBAAA,EAAoB,eAAe,kBAAkB,CAAA;AAAA,MAErD,QAAA,kBAAA,GAAA;AAAA,QAAC,SAAU,CAAA,GAAA;AAAA,QAAV;AAAA,UACE,GAAG,cAAA;AAAA,UACJ,GAAK,EAAA,WAAA;AAAA,UACL,OAAO,EAAE,QAAA,EAAU,UAAY,EAAA,GAAG,eAAe,KAAM,EAAA;AAAA,UACvD,aAAe,EAAA,oBAAA,CAAqB,KAAM,CAAA,aAAA,EAAe,CAAC,KAAU,KAAA;AAClE,YAAA,MAAM,WAAc,GAAA,CAAA,CAAA;AACpB,YAAI,IAAA,KAAA,CAAM,WAAW,WAAa,EAAA;AAChC,cAAA,MAAM,UAAU,KAAM,CAAA,MAAA,CAAA;AACtB,cAAQ,OAAA,CAAA,iBAAA,CAAkB,MAAM,SAAS,CAAA,CAAA;AACzC,cAAQ,OAAA,CAAA,OAAA,GAAU,UAAW,qBAAsB,EAAA,CAAA;AAGnD,cAAwB,uBAAA,CAAA,OAAA,GAAU,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,gBAAA,CAAA;AACtD,cAAS,QAAA,CAAA,IAAA,CAAK,MAAM,gBAAmB,GAAA,MAAA,CAAA;AACvC,cAAA,IAAI,OAAQ,CAAA,QAAA,EAAkB,OAAA,CAAA,QAAA,CAAS,MAAM,cAAiB,GAAA,MAAA,CAAA;AAC9D,cAAA,gBAAA,CAAiB,KAAK,CAAA,CAAA;AAAA,aACxB;AAAA,WACD,CAAA;AAAA,UACD,aAAe,EAAA,oBAAA,CAAqB,KAAM,CAAA,aAAA,EAAe,gBAAgB,CAAA;AAAA,UACzE,WAAa,EAAA,oBAAA,CAAqB,KAAM,CAAA,WAAA,EAAa,CAAC,KAAU,KAAA;AAC9D,YAAA,MAAM,UAAU,KAAM,CAAA,MAAA,CAAA;AACtB,YAAA,IAAI,OAAQ,CAAA,iBAAA,CAAkB,KAAM,CAAA,SAAS,CAAG,EAAA;AAC9C,cAAQ,OAAA,CAAA,qBAAA,CAAsB,MAAM,SAAS,CAAA,CAAA;AAAA,aAC/C;AACA,YAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,gBAAA,GAAmB,uBAAwB,CAAA,OAAA,CAAA;AAC/D,YAAA,IAAI,OAAQ,CAAA,QAAA,EAAkB,OAAA,CAAA,QAAA,CAAS,MAAM,cAAiB,GAAA,EAAA,CAAA;AAC9D,YAAA,OAAA,CAAQ,OAAU,GAAA,IAAA,CAAA;AAAA,WACnB,CAAA;AAAA,SAAA;AAAA,OACH;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAC,CAAA,CAAA;AAMD,IAAM,UAAa,GAAA,iBAAA,CAAA;AAWnB,IAAM,eAAwB,GAAAA,KAAA,CAAA,UAAA;AAAA,EAC5B,CAAC,OAA0C,YAAiB,KAAA;AAC1D,IAAA,MAAM,EAAE,UAAA,EAAY,GAAG,UAAA,EAAe,GAAA,KAAA,CAAA;AACtC,IAAA,MAAM,gBAAmB,GAAA,mBAAA,CAAoB,UAAY,EAAA,KAAA,CAAM,iBAAiB,CAAA,CAAA;AAChF,IAAA,uBACG,GAAA,CAAA,QAAA,EAAA,EAAS,OAAS,EAAA,UAAA,IAAc,gBAAiB,CAAA,QAAA,EAChD,QAAC,kBAAA,GAAA,CAAA,mBAAA,EAAA,EAAoB,GAAK,EAAA,YAAA,EAAe,GAAG,UAAA,EAAY,CAC1D,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,CAAA,CAAA;AAKA,IAAM,mBAA4B,GAAAA,KAAA,CAAA,UAAA;AAAA,EAChC,CAAC,OAA8C,YAAiB,KAAA;AAC9D,IAAA,MAAM,EAAE,iBAAA,EAAmB,KAAO,EAAA,GAAG,YAAe,GAAA,KAAA,CAAA;AACpD,IAAM,MAAA,iBAAA,GAAoB,oBAAqB,CAAA,UAAA,EAAY,iBAAiB,CAAA,CAAA;AAC5E,IAAM,MAAA,gBAAA,GAAmB,mBAAoB,CAAA,UAAA,EAAY,iBAAiB,CAAA,CAAA;AAC1E,IAAM,MAAA,EAAE,uBAA0B,GAAA,gBAAA,CAAA;AAClC,IAAA,MAAM,WAAc,GAAA,eAAA;AAAA,MAAgB,YAAA;AAAA,MAAc,CAAC,IAAA,KACjD,gBAAiB,CAAA,aAAA,CAAc,IAAI,CAAA;AAAA,KACrC,CAAA;AACA,IAAM,MAAA,+BAAA,GAAwCA,aAAmB,KAAS,CAAA,CAAA,CAAA;AAC1E,IAAM,MAAA,iBAAA,GAAoB,oBAAoB,MAAM;AAClD,MAAA,IAAI,gCAAgC,OAAS,EAAA;AAC3C,QAAA,+BAAA,CAAgC,OAAQ,EAAA,CAAA;AACxC,QAAA,+BAAA,CAAgC,OAAU,GAAA,KAAA,CAAA,CAAA;AAAA,OAC5C;AAAA,OACC,GAAG,CAAA,CAAA;AAEN,IAAMA,gBAAU,MAAM;AACpB,MAAA,MAAM,WAAW,iBAAkB,CAAA,QAAA,CAAA;AACnC,MAAA,IAAI,QAAU,EAAA;AAQZ,QAAA,MAAM,eAAe,MAAM;AACzB,UAAkB,iBAAA,EAAA,CAAA;AAClB,UAAI,IAAA,CAAC,gCAAgC,OAAS,EAAA;AAC5C,YAAM,MAAA,QAAA,GAAW,yBAA0B,CAAA,QAAA,EAAU,qBAAqB,CAAA,CAAA;AAC1E,YAAA,+BAAA,CAAgC,OAAU,GAAA,QAAA,CAAA;AAC1C,YAAsB,qBAAA,EAAA,CAAA;AAAA,WACxB;AAAA,SACF,CAAA;AACA,QAAsB,qBAAA,EAAA,CAAA;AACtB,QAAS,QAAA,CAAA,gBAAA,CAAiB,UAAU,YAAY,CAAA,CAAA;AAChD,QAAA,OAAO,MAAM,QAAA,CAAS,mBAAoB,CAAA,QAAA,EAAU,YAAY,CAAA,CAAA;AAAA,OAClE;AAAA,OACC,CAAC,iBAAA,CAAkB,QAAU,EAAA,iBAAA,EAAmB,qBAAqB,CAAC,CAAA,CAAA;AAEzE,IACE,uBAAA,GAAA;AAAA,MAAC,SAAU,CAAA,GAAA;AAAA,MAAV;AAAA,QACC,YAAA,EAAY,gBAAiB,CAAA,QAAA,GAAW,SAAY,GAAA,QAAA;AAAA,QACnD,GAAG,UAAA;AAAA,QACJ,GAAK,EAAA,WAAA;AAAA,QACL,KAAO,EAAA;AAAA,UACL,KAAO,EAAA,sCAAA;AAAA,UACP,MAAQ,EAAA,uCAAA;AAAA,UACR,GAAG,KAAA;AAAA,SACL;AAAA,QACA,oBAAsB,EAAA,oBAAA,CAAqB,KAAM,CAAA,oBAAA,EAAsB,CAAC,KAAU,KAAA;AAChF,UAAA,MAAM,QAAQ,KAAM,CAAA,MAAA,CAAA;AACpB,UAAM,MAAA,SAAA,GAAY,MAAM,qBAAsB,EAAA,CAAA;AAC9C,UAAM,MAAA,CAAA,GAAI,KAAM,CAAA,OAAA,GAAU,SAAU,CAAA,IAAA,CAAA;AACpC,UAAM,MAAA,CAAA,GAAI,KAAM,CAAA,OAAA,GAAU,SAAU,CAAA,GAAA,CAAA;AACpC,UAAA,gBAAA,CAAiB,kBAAmB,CAAA,EAAE,CAAG,EAAA,CAAA,EAAG,CAAA,CAAA;AAAA,SAC7C,CAAA;AAAA,QACD,WAAa,EAAA,oBAAA,CAAqB,KAAM,CAAA,WAAA,EAAa,iBAAiB,gBAAgB,CAAA;AAAA,OAAA;AAAA,KACxF,CAAA;AAAA,GAEJ;AACF,CAAA,CAAA;AAEA,eAAA,CAAgB,WAAc,GAAA,UAAA,CAAA;AAM9B,IAAM,WAAc,GAAA,kBAAA,CAAA;AAKpB,IAAM,gBAAyB,GAAAA,KAAA,CAAA,UAAA;AAAA,EAC7B,CAAC,OAA2C,YAAiB,KAAA;AAC3D,IAAA,MAAM,OAAU,GAAA,oBAAA,CAAqB,WAAa,EAAA,KAAA,CAAM,iBAAiB,CAAA,CAAA;AACzE,IAAA,MAAM,wBAA2B,GAAA,OAAA,CAAQ,OAAQ,CAAA,UAAA,IAAc,QAAQ,UAAU,CAAA,CAAA;AACjF,IAAM,MAAA,SAAA,GAAY,OAAQ,CAAA,IAAA,KAAS,QAAY,IAAA,wBAAA,CAAA;AAC/C,IAAA,OAAO,4BAAa,GAAA,CAAA,oBAAA,EAAA,EAAsB,GAAG,KAAO,EAAA,GAAA,EAAK,cAAc,CAAK,GAAA,IAAA,CAAA;AAAA,GAC9E;AACF,CAAA,CAAA;AAEA,gBAAA,CAAiB,WAAc,GAAA,WAAA,CAAA;AAO/B,IAAM,oBAA6B,GAAAA,KAAA,CAAA,UAAA,CAGjC,CAAC,KAAA,EAA+C,YAAiB,KAAA;AACjE,EAAA,MAAM,EAAE,iBAAA,EAAmB,GAAG,WAAA,EAAgB,GAAA,KAAA,CAAA;AAC9C,EAAM,MAAA,OAAA,GAAU,oBAAqB,CAAA,WAAA,EAAa,iBAAiB,CAAA,CAAA;AACnE,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAUA,eAAS,CAAC,CAAA,CAAA;AAC1C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAUA,eAAS,CAAC,CAAA,CAAA;AAC5C,EAAM,MAAA,OAAA,GAAU,OAAQ,CAAA,KAAA,IAAS,MAAM,CAAA,CAAA;AAEvC,EAAkB,iBAAA,CAAA,OAAA,CAAQ,YAAY,MAAM;AAC1C,IAAMC,MAAAA,OAAAA,GAAS,OAAQ,CAAA,UAAA,EAAY,YAAgB,IAAA,CAAA,CAAA;AACnD,IAAA,OAAA,CAAQ,qBAAqBA,OAAM,CAAA,CAAA;AACnC,IAAA,SAAA,CAAUA,OAAM,CAAA,CAAA;AAAA,GACjB,CAAA,CAAA;AAED,EAAkB,iBAAA,CAAA,OAAA,CAAQ,YAAY,MAAM;AAC1C,IAAMC,MAAAA,MAAAA,GAAQ,OAAQ,CAAA,UAAA,EAAY,WAAe,IAAA,CAAA,CAAA;AACjD,IAAA,OAAA,CAAQ,oBAAoBA,MAAK,CAAA,CAAA;AACjC,IAAA,QAAA,CAASA,MAAK,CAAA,CAAA;AAAA,GACf,CAAA,CAAA;AAED,EAAA,OAAO,OACL,mBAAA,GAAA;AAAA,IAAC,SAAU,CAAA,GAAA;AAAA,IAAV;AAAA,MACE,GAAG,WAAA;AAAA,MACJ,GAAK,EAAA,YAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACL,KAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAU,EAAA,UAAA;AAAA,QACV,KAAO,EAAA,OAAA,CAAQ,GAAQ,KAAA,KAAA,GAAQ,CAAI,GAAA,KAAA,CAAA;AAAA,QACnC,IAAM,EAAA,OAAA,CAAQ,GAAQ,KAAA,KAAA,GAAQ,CAAI,GAAA,KAAA,CAAA;AAAA,QAClC,MAAQ,EAAA,CAAA;AAAA,QACR,GAAG,KAAM,CAAA,KAAA;AAAA,OACX;AAAA,KAAA;AAAA,GAEA,GAAA,IAAA,CAAA;AACN,CAAC,CAAA,CAAA;AAID,SAAS,MAAM,KAAgB,EAAA;AAC7B,EAAA,OAAO,KAAQ,GAAA,QAAA,CAAS,KAAO,EAAA,EAAE,CAAI,GAAA,CAAA,CAAA;AACvC,CAAA;AAEA,SAAS,aAAA,CAAc,cAAsB,WAAqB,EAAA;AAChE,EAAA,MAAM,QAAQ,YAAe,GAAA,WAAA,CAAA;AAC7B,EAAO,OAAA,KAAA,CAAM,KAAK,CAAA,GAAI,CAAI,GAAA,KAAA,CAAA;AAC5B,CAAA;AAEA,SAAS,aAAa,KAAc,EAAA;AAClC,EAAA,MAAM,KAAQ,GAAA,aAAA,CAAc,KAAM,CAAA,QAAA,EAAU,MAAM,OAAO,CAAA,CAAA;AACzD,EAAA,MAAM,gBAAmB,GAAA,KAAA,CAAM,SAAU,CAAA,YAAA,GAAe,MAAM,SAAU,CAAA,UAAA,CAAA;AACxE,EAAA,MAAM,SAAa,GAAA,CAAA,KAAA,CAAM,SAAU,CAAA,IAAA,GAAO,gBAAoB,IAAA,KAAA,CAAA;AAE9D,EAAO,OAAA,IAAA,CAAK,GAAI,CAAA,SAAA,EAAW,EAAE,CAAA,CAAA;AAC/B,CAAA;AAEA,SAAS,4BACP,CAAA,UAAA,EACA,aACA,EAAA,KAAA,EACA,MAAiB,KACjB,EAAA;AACA,EAAM,MAAA,WAAA,GAAc,aAAa,KAAK,CAAA,CAAA;AACtC,EAAA,MAAM,cAAc,WAAc,GAAA,CAAA,CAAA;AAClC,EAAA,MAAM,SAAS,aAAiB,IAAA,WAAA,CAAA;AAChC,EAAA,MAAM,qBAAqB,WAAc,GAAA,MAAA,CAAA;AACzC,EAAM,MAAA,aAAA,GAAgB,KAAM,CAAA,SAAA,CAAU,YAAe,GAAA,MAAA,CAAA;AACrD,EAAA,MAAM,gBAAgB,KAAM,CAAA,SAAA,CAAU,IAAO,GAAA,KAAA,CAAM,UAAU,UAAa,GAAA,kBAAA,CAAA;AAC1E,EAAM,MAAA,YAAA,GAAe,KAAM,CAAA,OAAA,GAAU,KAAM,CAAA,QAAA,CAAA;AAC3C,EAAM,MAAA,WAAA,GAAc,GAAQ,KAAA,KAAA,GAAQ,CAAC,CAAA,EAAG,YAAY,CAAI,GAAA,CAAC,YAAe,GAAA,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA;AAC7E,EAAA,MAAM,cAAc,WAAY,CAAA,CAAC,aAAe,EAAA,aAAa,GAAG,WAA+B,CAAA,CAAA;AAC/F,EAAA,OAAO,YAAY,UAAU,CAAA,CAAA;AAC/B,CAAA;AAEA,SAAS,wBAAyB,CAAA,SAAA,EAAmB,KAAc,EAAA,GAAA,GAAiB,KAAO,EAAA;AACzF,EAAM,MAAA,WAAA,GAAc,aAAa,KAAK,CAAA,CAAA;AACtC,EAAA,MAAM,gBAAmB,GAAA,KAAA,CAAM,SAAU,CAAA,YAAA,GAAe,MAAM,SAAU,CAAA,UAAA,CAAA;AACxE,EAAM,MAAA,SAAA,GAAY,KAAM,CAAA,SAAA,CAAU,IAAO,GAAA,gBAAA,CAAA;AACzC,EAAM,MAAA,YAAA,GAAe,KAAM,CAAA,OAAA,GAAU,KAAM,CAAA,QAAA,CAAA;AAC3C,EAAA,MAAM,cAAc,SAAY,GAAA,WAAA,CAAA;AAChC,EAAM,MAAA,gBAAA,GAAmB,GAAQ,KAAA,KAAA,GAAQ,CAAC,CAAA,EAAG,YAAY,CAAI,GAAA,CAAC,YAAe,GAAA,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA;AAClF,EAAM,MAAA,qBAAA,GAAwB,KAAM,CAAA,SAAA,EAAW,gBAAoC,CAAA,CAAA;AACnF,EAAM,MAAA,WAAA,GAAc,YAAY,CAAC,CAAA,EAAG,YAAY,CAAG,EAAA,CAAC,CAAG,EAAA,WAAW,CAAC,CAAA,CAAA;AACnE,EAAA,OAAO,YAAY,qBAAqB,CAAA,CAAA;AAC1C,CAAA;AAGA,SAAS,WAAA,CAAY,OAAkC,MAAmC,EAAA;AACxF,EAAA,OAAO,CAAC,KAAkB,KAAA;AACxB,IAAA,IAAI,KAAM,CAAA,CAAC,CAAM,KAAA,KAAA,CAAM,CAAC,CAAK,IAAA,MAAA,CAAO,CAAC,CAAA,KAAM,MAAO,CAAA,CAAC,CAAG,EAAA,OAAO,OAAO,CAAC,CAAA,CAAA;AACrE,IAAM,MAAA,KAAA,GAAA,CAAS,MAAO,CAAA,CAAC,CAAI,GAAA,MAAA,CAAO,CAAC,CAAA,KAAM,KAAM,CAAA,CAAC,CAAI,GAAA,KAAA,CAAM,CAAC,CAAA,CAAA,CAAA;AAC3D,IAAA,OAAO,OAAO,CAAC,CAAA,GAAI,KAAS,IAAA,KAAA,GAAQ,MAAM,CAAC,CAAA,CAAA,CAAA;AAAA,GAC7C,CAAA;AACF,CAAA;AAEA,SAAS,gCAAA,CAAiC,WAAmB,YAAsB,EAAA;AACjF,EAAO,OAAA,SAAA,GAAY,KAAK,SAAY,GAAA,YAAA,CAAA;AACtC,CAAA;AAIA,IAAM,yBAA4B,GAAA,CAAC,IAAmB,EAAA,OAAA,GAAU,MAAM;AAAC,CAAM,KAAA;AAC3E,EAAA,IAAI,eAAe,EAAE,IAAA,EAAM,KAAK,UAAY,EAAA,GAAA,EAAK,KAAK,SAAU,EAAA,CAAA;AAChE,EAAA,IAAI,GAAM,GAAA,CAAA,CAAA;AACV,EAAA,CAAC,SAAS,IAAO,GAAA;AACf,IAAA,MAAM,WAAW,EAAE,IAAA,EAAM,KAAK,UAAY,EAAA,GAAA,EAAK,KAAK,SAAU,EAAA,CAAA;AAC9D,IAAM,MAAA,kBAAA,GAAqB,YAAa,CAAA,IAAA,KAAS,QAAS,CAAA,IAAA,CAAA;AAC1D,IAAM,MAAA,gBAAA,GAAmB,YAAa,CAAA,GAAA,KAAQ,QAAS,CAAA,GAAA,CAAA;AACvD,IAAI,IAAA,kBAAA,IAAsB,kBAA0B,OAAA,EAAA,CAAA;AACpD,IAAe,YAAA,GAAA,QAAA,CAAA;AACf,IAAM,GAAA,GAAA,MAAA,CAAO,sBAAsB,IAAI,CAAA,CAAA;AAAA,GACtC,GAAA,CAAA;AACH,EAAO,OAAA,MAAM,MAAO,CAAA,oBAAA,CAAqB,GAAG,CAAA,CAAA;AAC9C,CAAA,CAAA;AAEA,SAAS,mBAAA,CAAoB,UAAsB,KAAe,EAAA;AAChE,EAAM,MAAA,cAAA,GAAiB,eAAe,QAAQ,CAAA,CAAA;AAC9C,EAAM,MAAA,gBAAA,GAAyBF,aAAO,CAAC,CAAA,CAAA;AACvC,EAAMA,KAAA,CAAA,SAAA,CAAU,MAAM,MAAM,MAAA,CAAO,aAAa,gBAAiB,CAAA,OAAO,CAAG,EAAA,EAAE,CAAA,CAAA;AAC7E,EAAA,OAAaA,kBAAY,MAAM;AAC7B,IAAO,MAAA,CAAA,YAAA,CAAa,iBAAiB,OAAO,CAAA,CAAA;AAC5C,IAAA,gBAAA,CAAiB,OAAU,GAAA,MAAA,CAAO,UAAW,CAAA,cAAA,EAAgB,KAAK,CAAA,CAAA;AAAA,GACjE,EAAA,CAAC,cAAgB,EAAA,KAAK,CAAC,CAAA,CAAA;AAC5B,CAAA;AAEA,SAAS,iBAAA,CAAkB,SAA6B,QAAsB,EAAA;AAC5E,EAAM,MAAA,YAAA,GAAe,eAAe,QAAQ,CAAA,CAAA;AAC5C,EAAAG,gBAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,GAAM,GAAA,CAAA,CAAA;AACV,IAAA,IAAI,OAAS,EAAA;AAQX,MAAM,MAAA,cAAA,GAAiB,IAAI,cAAA,CAAe,MAAM;AAC9C,QAAA,oBAAA,CAAqB,GAAG,CAAA,CAAA;AACxB,QAAM,GAAA,GAAA,MAAA,CAAO,sBAAsB,YAAY,CAAA,CAAA;AAAA,OAChD,CAAA,CAAA;AACD,MAAA,cAAA,CAAe,QAAQ,OAAO,CAAA,CAAA;AAC9B,MAAA,OAAO,MAAM;AACX,QAAA,MAAA,CAAO,qBAAqB,GAAG,CAAA,CAAA;AAC/B,QAAA,cAAA,CAAe,UAAU,OAAO,CAAA,CAAA;AAAA,OAClC,CAAA;AAAA,KACF;AAAA,GACC,EAAA,CAAC,OAAS,EAAA,YAAY,CAAC,CAAA,CAAA;AAC5B,CAAA;AAIA,IAAM,IAAO,GAAAJ,YAAA,CAAA;AACb,IAAM,QAAW,GAAA,kBAAA,CAAA;AAGjB,IAAM,MAAS,GAAA,gBAAA;;ACh/Bf,MAAM,SAAS,GAAG,CAAC,EAIoD,KAAI;QAJxD,EACjB,SAAS,EACT,WAAW,GAAG,UAAU,OAE6C,EADlE,KAAK,GAHS,MAAA,CAAA,EAAA,EAAA,CAAA,WAAA,EAAA,aAAA,CAIlB,CADS,CAAA;IACkE,QAC1EK,IAACC,mBAAuC,EAC5B,MAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,uBAAuB,EACjC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,WAAW,KAAK,UAAU,IAAI,4CAA4C,EAC1E,WAAW,KAAK,YAAY,IAAI,8CAA8C,EAC9E,SAAS,CACV,EAAA,EACG,KAAK,EAAA,EAAA,QAAA,EACTD,GAAC,CAAAE,eAAmC,EAAA,EAAA,WAAA,EACxB,mBAAmB,EAC7B,SAAS,EAAC,wCAAwC,EAAA,CAClD,EACsC,CAAA,CAAA,EAC3C;EAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAIoC,KAAI;QAJxC,EAClB,SAAS,EACT,QAAQ,EAAA,GAAA,EAE8C,EADnD,KAAK,GAAA,MAAA,CAAA,EAAA,EAHU,yBAInB,CADS,CAAA;IACmD,QAC3DC,KAACC,IAAwB,EACb,MAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,aAAa,EACvB,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,IAChC,KAAK,EAAA,EAAA,QAAA,EAAA,CACTJ,IAACK,QAA4B,EACjB,MAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,sBAAsB,EAChC,SAAS,EAAC,oJAAoJ,EAC7J,EAAA,EAAA,QAAA,EAAA,QAAQ,IACoB,EAC/BL,GAAA,CAAC,SAAS,EAAG,EAAA,CAAA,EACbA,IAACM,MAA0B,EAAG,EAAA,CAAA,CAAA,EAAA,CAAA,CACL,EAC5B;;;;;","x_google_ignoreList":[0,1]}
|