{"version":3,"file":"scroll-area-qiUBme0Q.mjs","sources":["../../node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../../src/components/ui/scroll-area/scroll-area.tsx"],"sourcesContent":["\"use client\";\n\n// src/scroll-area.tsx\nimport * as React2 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\";\n\n// src/use-state-machine.ts\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n  return React.useReducer((state, event) => {\n    const nextState = machine[state][event];\n    return nextState ?? state;\n  }, initialState);\n}\n\n// src/scroll-area.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = React2.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      __scopeScrollArea,\n      type = \"hover\",\n      dir,\n      scrollHideDelay = 600,\n      ...scrollAreaProps\n    } = props;\n    const [scrollArea, setScrollArea] = React2.useState(null);\n    const [viewport, setViewport] = React2.useState(null);\n    const [content, setContent] = React2.useState(null);\n    const [scrollbarX, setScrollbarX] = React2.useState(null);\n    const [scrollbarY, setScrollbarY] = React2.useState(null);\n    const [cornerWidth, setCornerWidth] = React2.useState(0);\n    const [cornerHeight, setCornerHeight] = React2.useState(0);\n    const [scrollbarXEnabled, setScrollbarXEnabled] = React2.useState(false);\n    const [scrollbarYEnabled, setScrollbarYEnabled] = React2.useState(false);\n    const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n    const direction = useDirection(dir);\n    return /* @__PURE__ */ jsx(\n      ScrollAreaProvider,\n      {\n        scope: __scopeScrollArea,\n        type,\n        dir: direction,\n        scrollHideDelay,\n        scrollArea,\n        viewport,\n        onViewportChange: setViewport,\n        content,\n        onContentChange: setContent,\n        scrollbarX,\n        onScrollbarXChange: setScrollbarX,\n        scrollbarXEnabled,\n        onScrollbarXEnabledChange: setScrollbarXEnabled,\n        scrollbarY,\n        onScrollbarYChange: setScrollbarY,\n        scrollbarYEnabled,\n        onScrollbarYEnabledChange: setScrollbarYEnabled,\n        onCornerWidthChange: setCornerWidth,\n        onCornerHeightChange: setCornerHeight,\n        children: /* @__PURE__ */ jsx(\n          Primitive.div,\n          {\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\"]: cornerWidth + \"px\",\n              [\"--radix-scroll-area-corner-height\"]: cornerHeight + \"px\",\n              ...props.style\n            }\n          }\n        )\n      }\n    );\n  }\n);\nScrollArea.displayName = SCROLL_AREA_NAME;\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = React2.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n    const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n    const ref = React2.useRef(null);\n    const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n    return /* @__PURE__ */ jsxs(Fragment, { children: [\n      /* @__PURE__ */ jsx(\n        \"style\",\n        {\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\n        }\n      ),\n      /* @__PURE__ */ jsx(\n        Primitive.div,\n        {\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          children: /* @__PURE__ */ jsx(\"div\", { ref: context.onContentChange, style: { minWidth: \"100%\", display: \"table\" }, children })\n        }\n      )\n    ] });\n  }\n);\nScrollAreaViewport.displayName = VIEWPORT_NAME;\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = React2.forwardRef(\n  (props, 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    React2.useEffect(() => {\n      isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n      return () => {\n        isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n      };\n    }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n    return context.type === \"hover\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"scroll\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"auto\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"always\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;\n  }\n);\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\nvar ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {\n  const { forceMount, ...scrollbarProps } = props;\n  const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n  const [visible, setVisible] = React2.useState(false);\n  React2.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  return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n    ScrollAreaScrollbarAuto,\n    {\n      \"data-state\": visible ? \"visible\" : \"hidden\",\n      ...scrollbarProps,\n      ref: forwardedRef\n    }\n  ) });\n});\nvar ScrollAreaScrollbarScroll = React2.forwardRef((props, 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  React2.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  React2.useEffect(() => {\n    const viewport = context.viewport;\n    const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\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  return /* @__PURE__ */ jsx(Presence, { present: forceMount || state !== \"hidden\", children: /* @__PURE__ */ jsx(\n    ScrollAreaScrollbarVisible,\n    {\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  ) });\n});\nvar ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef) => {\n  const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n  const { forceMount, ...scrollbarProps } = props;\n  const [visible, setVisible] = React2.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  useResizeObserver(context.viewport, handleResize);\n  useResizeObserver(context.content, handleResize);\n  return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n    ScrollAreaScrollbarVisible,\n    {\n      \"data-state\": visible ? \"visible\" : \"hidden\",\n      ...scrollbarProps,\n      ref: forwardedRef\n    }\n  ) });\n});\nvar ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {\n  const { orientation = \"vertical\", ...scrollbarProps } = props;\n  const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n  const thumbRef = React2.useRef(null);\n  const pointerOffsetRef = React2.useRef(0);\n  const [sizes, setSizes] = React2.useState({\n    content: 0,\n    viewport: 0,\n    scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n  });\n  const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n  const commonProps = {\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  function getScrollPosition(pointerPos, dir) {\n    return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n  }\n  if (orientation === \"horizontal\") {\n    return /* @__PURE__ */ jsx(\n      ScrollAreaScrollbarX,\n      {\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  if (orientation === \"vertical\") {\n    return /* @__PURE__ */ jsx(\n      ScrollAreaScrollbarY,\n      {\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  return null;\n});\nvar ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef) => {\n  const { sizes, onSizesChange, ...scrollbarProps } = props;\n  const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n  const [computedStyle, setComputedStyle] = React2.useState();\n  const ref = React2.useRef(null);\n  const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n  React2.useEffect(() => {\n    if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n  }, [ref]);\n  return /* @__PURE__ */ jsx(\n    ScrollAreaScrollbarImpl,\n    {\n      \"data-orientation\": \"horizontal\",\n      ...scrollbarProps,\n      ref: composeRefs,\n      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\"]: 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          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});\nvar ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef) => {\n  const { sizes, onSizesChange, ...scrollbarProps } = props;\n  const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n  const [computedStyle, setComputedStyle] = React2.useState();\n  const ref = React2.useRef(null);\n  const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n  React2.useEffect(() => {\n    if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n  }, [ref]);\n  return /* @__PURE__ */ jsx(\n    ScrollAreaScrollbarImpl,\n    {\n      \"data-orientation\": \"vertical\",\n      ...scrollbarProps,\n      ref: composeRefs,\n      sizes,\n      style: {\n        top: 0,\n        right: context.dir === \"ltr\" ? 0 : void 0,\n        left: context.dir === \"rtl\" ? 0 : void 0,\n        bottom: \"var(--radix-scroll-area-corner-height)\",\n        [\"--radix-scroll-area-thumb-height\"]: 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          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});\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = React2.forwardRef((props, 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] = React2.useState(null);\n  const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n  const rectRef = React2.useRef(null);\n  const prevWebkitUserSelectRef = React2.useRef(\"\");\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  function handleDragScroll(event) {\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  React2.useEffect(() => {\n    const handleWheel = (event) => {\n      const element = event.target;\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 });\n  }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n  React2.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n  useResizeObserver(scrollbar, handleResize);\n  useResizeObserver(context.content, handleResize);\n  return /* @__PURE__ */ jsx(\n    ScrollbarProvider,\n    {\n      scope: __scopeScrollArea,\n      scrollbar,\n      hasThumb,\n      onThumbChange: useCallbackRef(onThumbChange),\n      onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n      onThumbPositionChange: handleThumbPositionChange,\n      onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n      children: /* @__PURE__ */ jsx(\n        Primitive.div,\n        {\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;\n              element.setPointerCapture(event.pointerId);\n              rectRef.current = scrollbar.getBoundingClientRect();\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;\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      )\n    }\n  );\n});\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = React2.forwardRef(\n  (props, forwardedRef) => {\n    const { forceMount, ...thumbProps } = props;\n    const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n    return /* @__PURE__ */ jsx(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });\n  }\n);\nvar ScrollAreaThumbImpl = React2.forwardRef(\n  (props, 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(\n      forwardedRef,\n      (node) => scrollbarContext.onThumbChange(node)\n    );\n    const removeUnlinkedScrollListenerRef = React2.useRef(void 0);\n    const debounceScrollEnd = useDebounceCallback(() => {\n      if (removeUnlinkedScrollListenerRef.current) {\n        removeUnlinkedScrollListenerRef.current();\n        removeUnlinkedScrollListenerRef.current = void 0;\n      }\n    }, 100);\n    React2.useEffect(() => {\n      const viewport = scrollAreaContext.viewport;\n      if (viewport) {\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    return /* @__PURE__ */ jsx(\n      Primitive.div,\n      {\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;\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);\nScrollAreaThumb.displayName = THUMB_NAME;\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = React2.forwardRef(\n  (props, 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 ? /* @__PURE__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;\n  }\n);\nScrollAreaCorner.displayName = CORNER_NAME;\nvar ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {\n  const { __scopeScrollArea, ...cornerProps } = props;\n  const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n  const [width, setWidth] = React2.useState(0);\n  const [height, setHeight] = React2.useState(0);\n  const hasSize = Boolean(width && height);\n  useResizeObserver(context.scrollbarX, () => {\n    const height2 = context.scrollbarX?.offsetHeight || 0;\n    context.onCornerHeightChange(height2);\n    setHeight(height2);\n  });\n  useResizeObserver(context.scrollbarY, () => {\n    const width2 = context.scrollbarY?.offsetWidth || 0;\n    context.onCornerWidthChange(width2);\n    setWidth(width2);\n  });\n  return hasSize ? /* @__PURE__ */ jsx(\n    Primitive.div,\n    {\n      ...cornerProps,\n      ref: forwardedRef,\n      style: {\n        width,\n        height,\n        position: \"absolute\",\n        right: context.dir === \"ltr\" ? 0 : void 0,\n        left: context.dir === \"rtl\" ? 0 : void 0,\n        bottom: 0,\n        ...props.style\n      }\n    }\n  ) : null;\n});\nfunction toInt(value) {\n  return value ? parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n  const ratio = viewportSize / contentSize;\n  return isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(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  return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\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);\n  return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"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);\n  const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n  return interpolate(scrollWithoutMomentum);\n}\nfunction linearScale(input, output) {\n  return (value) => {\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}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n  return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nvar addUnlinkedScrollListener = (node, handler = () => {\n}) => {\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};\nfunction useDebounceCallback(callback, delay) {\n  const handleCallback = useCallbackRef(callback);\n  const debounceTimerRef = React2.useRef(0);\n  React2.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n  return React2.useCallback(() => {\n    window.clearTimeout(debounceTimerRef.current);\n    debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n  }, [handleCallback, delay]);\n}\nfunction useResizeObserver(element, onResize) {\n  const handleResize = useCallbackRef(onResize);\n  useLayoutEffect(() => {\n    let rAF = 0;\n    if (element) {\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}\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\nexport {\n  Corner,\n  Root,\n  ScrollArea,\n  ScrollAreaCorner,\n  ScrollAreaScrollbar,\n  ScrollAreaThumb,\n  ScrollAreaViewport,\n  Scrollbar,\n  Thumb,\n  Viewport,\n  createScrollAreaScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\nimport React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nfunction ScrollArea({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Root\n\t\t\tdata-slot=\"scroll-area\"\n\t\t\tclassName={cn(\"relative\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.Viewport\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName=\"ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>\n\t\t\t<ScrollBar />\n\t\t\t<ScrollAreaPrimitive.Corner />\n\t\t</ScrollAreaPrimitive.Root>\n\t);\n}\n\nfunction ScrollBar({\n\tclassName,\n\torientation = \"vertical\",\n\t...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n\treturn (\n\t\t<ScrollAreaPrimitive.ScrollAreaScrollbar\n\t\t\tdata-slot=\"scroll-area-scrollbar\"\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t\"flex touch-none p-px transition-colors select-none\",\n\t\t\t\torientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\",\n\t\t\t\torientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.ScrollAreaThumb\n\t\t\t\tdata-slot=\"scroll-area-thumb\"\n\t\t\t\tclassName=\"bg-border relative flex-1 rounded-full\"\n\t\t\t/>\n\t\t</ScrollAreaPrimitive.ScrollAreaScrollbar>\n\t);\n}\n\nexport { ScrollArea, ScrollBar };\n"],"names":["ScrollArea","React2","height","width","useLayoutEffect","className","children","props","React","ScrollAreaPrimitive","data-slot","cn","ScrollBar","orientation"],"mappings":";;;;;;;;;;;;;;;;;;AA6BA,IAAM,gBAAA,GAAmB,YAAA;AAGzB,IAAM,CAAC,uBAA8C,CAAA,GAAI,mBAAmB,gBAAgB,CAAA;AAuB5F,IAAM,CAAC,kBAAA,EAAoB,oBAAoB,CAAA,GAC7C,wBAAgD,gBAAgB,CAAA;AAUlE,IAAMA,eAAmBC,KAAA,CAAA,UAAA,CACvB,CAAC,OAAqC,YAAA,GAAA;AACpC,IAAA,MAAM,EACJ,iBAAA,EACA,IAAA,GAAO,OAAA,EACP,GAAA,EACA,eAAA,GAAkB,GAAA,EAClB,GAAG,iBACL,GAAI,KAAA;IACJ,MAAM,CAAC,YAAY,aAAa,CAAA,GAAUA,KAAA,CAAA,QAAA,CAAmC,IAAI,CAAA;IACjF,MAAM,CAAC,UAAU,WAAW,CAAA,GAAUA,KAAA,CAAA,QAAA,CAA2C,IAAI,CAAA;IACrF,MAAM,CAAC,SAAS,UAAU,CAAA,GAAUA,KAAA,CAAA,QAAA,CAAgC,IAAI,CAAA;IACxE,MAAM,CAAC,YAAY,aAAa,CAAA,GAAUA,KAAA,CAAA,QAAA,CAA4C,IAAI,CAAA;IAC1F,MAAM,CAAC,YAAY,aAAa,CAAA,GAAUA,KAAA,CAAA,QAAA,CAA4C,IAAI,CAAA;IAC1F,MAAM,CAAC,aAAa,cAAc,CAAA,GAAUA,KAAA,CAAA,QAAA,CAAS,CAAC,CAAA;IACtD,MAAM,CAAC,cAAc,eAAe,CAAA,GAAUA,KAAA,CAAA,QAAA,CAAS,CAAC,CAAA;IACxD,MAAM,CAAC,mBAAmB,oBAAoB,CAAA,GAAUA,KAAA,CAAA,QAAA,CAAS,KAAK,CAAA;IACtE,MAAM,CAAC,mBAAmB,oBAAoB,CAAA,GAAUA,KAAA,CAAA,QAAA,CAAS,KAAK,CAAA;AACtE,IAAA,MAAM,eAAe,eAAA,CAAgB,YAAA,EAAc,CAAC,IAAA,GAAS,aAAA,CAAc,IAAI,CAAC,CAAA;IAChF,MAAM,SAAA,GAAY,aAAa,GAAG,CAAA;IAElC,uBACE,GAAA,CAAC,kBAAA,EAAA;QACC,KAAA,EAAO,iBAAA;AACP,QAAA,IAAA;QACA,GAAA,EAAK,SAAA;AACL,QAAA,eAAA;AACA,QAAA,UAAA;AACA,QAAA,QAAA;QACA,gBAAA,EAAkB,WAAA;AAClB,QAAA,OAAA;QACA,eAAA,EAAiB,UAAA;AACjB,QAAA,UAAA;QACA,kBAAA,EAAoB,aAAA;AACpB,QAAA,iBAAA;QACA,yBAAA,EAA2B,oBAAA;AAC3B,QAAA,UAAA;QACA,kBAAA,EAAoB,aAAA;AACpB,QAAA,iBAAA;QACA,yBAAA,EAA2B,oBAAA;QAC3B,mBAAA,EAAqB,cAAA;QACrB,oBAAA,EAAsB,eAAA;AAEtB,QAAA,QAAA,kBAAA,GAAA,CAAC,SAAA,CAAU,GAAA,EAAV;YACC,GAAA,EAAK,SAAA;AACJ,YAAA,GAAG,eAAA;YACJ,GAAA,EAAK,YAAA;YACL,KAAA,EAAO;gBACL,QAAA,EAAU,UAAA;;gBAEV,CAAC,kCAAyC,GAAG,WAAA,GAAc,IAAA;gBAC3D,CAAC,mCAA0C,GAAG,YAAA,GAAe,IAAA;AAC7D,gBAAA,GAAG,MAAM;AACX;AAAA,SAAA;AACF,KAAA,CAAA;AAGN,CAAA,CAAA;AAGFD,YAAA,CAAW,WAAA,GAAc,gBAAA;AAMzB,IAAM,aAAA,GAAgB,oBAAA;AAOtB,IAAM,qBAA2BC,KAAA,CAAA,UAAA,CAC/B,CAAC,OAA6C,YAAA,GAAA;IAC5C,MAAM,EAAE,iBAAA,EAAmB,QAAA,EAAU,KAAA,EAAO,GAAG,aAAA,EAAc,GAAI,KAAA;IACjE,MAAM,OAAA,GAAU,oBAAA,CAAqB,aAAA,EAAe,iBAAiB,CAAA;AACrE,IAAA,MAAM,GAAA,GAAYA,KAAA,CAAA,MAAA,CAAkC,IAAI,CAAA;AACxD,IAAA,MAAM,YAAA,GAAe,eAAA,CAAgB,YAAA,EAAc,GAAA,EAAK,QAAQ,gBAAgB,CAAA;IAChF,uBACE,IAAA,CAAA,QAAA,EAAA;QAEE,QAAA,EAAA;4BAAA,IAAC,OAAA,EAAA;gBACC,uBAAA,EAAyB;oBACvB,MAAA,EAAQ,CAAA,mLAAA;AACV,iBAAA;AACA,gBAAA;AAAA,aAAA,CAAA;AAEF,4BAAA,GAAA,CAAC,SAAA,CAAU,GAAA,EAAV;gBACC,iCAAA,EAAgC,EAAA;AAC/B,gBAAA,GAAG,aAAA;gBACJ,GAAA,EAAK,YAAA;gBACL,KAAA,EAAO;AAAA;;;;;;;;;;AAAA,gBAYL,SAAA,EAAW,OAAA,CAAQ,iBAAA,GAAoB,QAAA,GAAW,QAAA;oBAClD,SAAA,EAAW,OAAA,CAAQ,iBAAA,GAAoB,QAAA,GAAW,QAAA;AAClD,oBAAA,GAAG,MAAM;AACX,iBAAA;gBASA,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA;AAAI,oBAAA,GAAA,EAAK,QAAQ,eAAA;oBAAiB,KAAA,EAAO;wBAAE,QAAA,EAAU,MAAA;wBAAQ,OAAA,EAAS;AAAQ,qBAAA;AAC5E,oBAAA;iBACH;AAAA,aAAA;AACF;KACF,CAAA;AAEJ,CAAA,CAAA;AAGF,kBAAA,CAAmB,WAAA,GAAc,aAAA;AAMjC,IAAM,cAAA,GAAiB,qBAAA;AAOvB,IAAM,sBAA4BA,KAAA,CAAA,UAAA,CAChC,CAAC,OAA8C,YAAA,GAAA;AAC7C,IAAA,MAAM,EAAE,UAAA,EAAY,GAAG,cAAA,EAAe,GAAI,KAAA;AAC1C,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,cAAA,EAAgB,KAAA,CAAM,iBAAiB,CAAA;AAC5E,IAAA,MAAM,EAAE,yBAAA,EAA2B,yBAAA,EAA0B,GAAI,OAAA;IACjE,MAAM,YAAA,GAAe,KAAA,CAAM,WAAA,KAAgB,YAAA;IAErCA,KAAA,CAAA,SAAA,CAAU,IAAA;AACd,QAAA,YAAA,GAAe,yBAAA,CAA0B,IAAI,CAAA,GAAI,yBAAA,CAA0B,IAAI,CAAA;AAC/E,QAAA,OAAO,IAAA;AACL,YAAA,YAAA,GAAe,yBAAA,CAA0B,KAAK,CAAA,GAAI,yBAAA,CAA0B,KAAK,CAAA;AACnF,QAAA,CAAA;IACF,CAAA,EAAG;AAAC,QAAA,YAAA;AAAc,QAAA,yBAAA;QAA2B;AAA0B,KAAA,CAAA;AAEvE,IAAA,OAAO,QAAQ,IAAA,KAAS,0BACtB,IAAC,wBAAA,EAAA;AAA0B,QAAA,GAAG,cAAA;QAAgB,GAAA,EAAK,YAAA;AAAc,QAAA;KAAwB,CAAA,GACvF,QAAQ,IAAA,KAAS,2BACnB,IAAC,yBAAA,EAAA;AAA2B,QAAA,GAAG,cAAA;QAAgB,GAAA,EAAK,YAAA;AAAc,QAAA;KAAwB,CAAA,GACxF,QAAQ,IAAA,KAAS,yBACnB,IAAC,uBAAA,EAAA;AAAyB,QAAA,GAAG,cAAA;QAAgB,GAAA,EAAK,YAAA;AAAc,QAAA;KAAwB,CAAA,GACtF,QAAQ,IAAA,KAAS,2BACnB,IAAC,0BAAA,EAAA;AAA4B,QAAA,GAAG,cAAA;QAAgB,GAAA,EAAK;AAAA,KAAc,CAAA,GACjE,IAAA;AACN,CAAA,CAAA;AAGF,mBAAA,CAAoB,WAAA,GAAc,cAAA;AASlC,IAAM,2BAAiCA,KAAA,CAAA,UAAA,CAGrC,CAAC,OAAmD,YAAA,GAAA;AACpD,IAAA,MAAM,EAAE,UAAA,EAAY,GAAG,cAAA,EAAe,GAAI,KAAA;AAC1C,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,cAAA,EAAgB,KAAA,CAAM,iBAAiB,CAAA;IAC5E,MAAM,CAAC,SAAS,UAAU,CAAA,GAAUA,KAAA,CAAA,QAAA,CAAS,KAAK,CAAA;IAE5CA,KAAA,CAAA,SAAA,CAAU,IAAA;QACd,MAAM,UAAA,GAAa,QAAQ,UAAA;AAC3B,QAAA,IAAI,SAAA,GAAY,CAAA;AAChB,QAAA,IAAI,UAAA,EAAY;AACd,YAAA,MAAM,qBAAqB,IAAA;gBACzB,MAAA,CAAO,YAAA,CAAa,SAAS,CAAA;AAC7B,gBAAA,UAAA,CAAW,IAAI,CAAA;AACjB,YAAA,CAAA;AACA,YAAA,MAAM,qBAAqB,IAAA;gBACzB,SAAA,GAAY,MAAA,CAAO,UAAA,CAAW,IAAM,WAAW,KAAK,CAAA,EAAG,QAAQ,eAAe,CAAA;AAChF,YAAA,CAAA;YACA,UAAA,CAAW,gBAAA,CAAiB,cAAA,EAAgB,kBAAkB,CAAA;YAC9D,UAAA,CAAW,gBAAA,CAAiB,cAAA,EAAgB,kBAAkB,CAAA;AAC9D,YAAA,OAAO,IAAA;gBACL,MAAA,CAAO,YAAA,CAAa,SAAS,CAAA;gBAC7B,UAAA,CAAW,mBAAA,CAAoB,cAAA,EAAgB,kBAAkB,CAAA;gBACjE,UAAA,CAAW,mBAAA,CAAoB,cAAA,EAAgB,kBAAkB,CAAA;AACnE,YAAA,CAAA;AACF,QAAA;IACF,CAAA,EAAG;AAAC,QAAA,OAAA,CAAQ,UAAA;AAAY,QAAA,OAAA,CAAQ;AAAgB,KAAA,CAAA;IAEhD,uBACE,GAAA,CAAC,QAAA,EAAA;AAAS,QAAA,OAAA,EAAS,UAAA,IAAc,OAAA;QAC/B,QAAA,kBAAA,GAAA,CAAC,uBAAA,EAAA;AACC,YAAA,YAAA,EAAY,UAAU,SAAA,GAAY,QAAA;AACjC,YAAA,GAAG,cAAA;YACJ,GAAA,EAAK;AAAA,SAAA;KAET,CAAA;AAEJ,CAAC,CAAA;AAOD,IAAM,4BAAkCA,KAAA,CAAA,UAAA,CAGtC,CAAC,OAAoD,YAAA,GAAA;AACrD,IAAA,MAAM,EAAE,UAAA,EAAY,GAAG,cAAA,EAAe,GAAI,KAAA;AAC1C,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,cAAA,EAAgB,KAAA,CAAM,iBAAiB,CAAA;IAC5E,MAAM,YAAA,GAAe,KAAA,CAAM,WAAA,KAAgB,YAAA;AAC3C,IAAA,MAAM,oBAAoB,mBAAA,CAAoB,IAAM,IAAA,CAAK,YAAY,GAAG,GAAG,CAAA;AAC3E,IAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,gBAAgB,QAAA,EAAU;QAC9C,MAAA,EAAQ;YACN,MAAA,EAAQ;AACV,SAAA;QACA,SAAA,EAAW;YACT,UAAA,EAAY,MAAA;YACZ,aAAA,EAAe;AACjB,SAAA;QACA,WAAA,EAAa;YACX,MAAA,EAAQ,aAAA;YACR,aAAA,EAAe;AACjB,SAAA;QACA,IAAA,EAAM;YACJ,IAAA,EAAM,QAAA;YACN,MAAA,EAAQ,WAAA;YACR,aAAA,EAAe;AACjB;KACD,CAAA;IAEKA,KAAA,CAAA,SAAA,CAAU,IAAA;AACd,QAAA,IAAI,UAAU,MAAA,EAAQ;YACpB,MAAM,SAAA,GAAY,OAAO,UAAA,CAAW,IAAM,IAAA,CAAK,MAAM,CAAA,EAAG,OAAA,CAAQ,eAAe,CAAA;AAC/E,YAAA,OAAO,IAAM,MAAA,CAAO,YAAA,CAAa,SAAS,CAAA;AAC5C,QAAA;IACF,CAAA,EAAG;AAAC,QAAA,KAAA;AAAO,QAAA,OAAA,CAAQ,eAAA;QAAiB;AAAK,KAAA,CAAA;IAEnCA,KAAA,CAAA,SAAA,CAAU,IAAA;QACd,MAAM,QAAA,GAAW,QAAQ,QAAA;QACzB,MAAM,eAAA,GAAkB,eAAe,YAAA,GAAe,WAAA;AAEtD,QAAA,IAAI,QAAA,EAAU;AACZ,YAAA,IAAI,aAAA,GAAgB,QAAA,CAAS,eAAe,CAAA;AAC5C,YAAA,MAAM,eAAe,IAAA;AACnB,gBAAA,MAAM,SAAA,GAAY,QAAA,CAAS,eAAe,CAAA;AAC1C,gBAAA,MAAM,8BAA8B,aAAA,KAAkB,SAAA;AACtD,gBAAA,IAAI,2BAAA,EAA6B;AAC/B,oBAAA,IAAA,CAAK,QAAQ,CAAA;oBACb,iBAAA,EAAkB;AACpB,gBAAA;gBACA,aAAA,GAAgB,SAAA;AAClB,YAAA,CAAA;YACA,QAAA,CAAS,gBAAA,CAAiB,QAAA,EAAU,YAAY,CAAA;AAChD,YAAA,OAAO,IAAM,QAAA,CAAS,mBAAA,CAAoB,UAAU,YAAY,CAAA;AAClE,QAAA;IACF,CAAA,EAAG;AAAC,QAAA,OAAA,CAAQ,QAAA;AAAU,QAAA,YAAA;AAAc,QAAA,IAAA;QAAM;AAAkB,KAAA,CAAA;IAE5D,uBACE,GAAA,CAAC,QAAA,EAAA;AAAS,QAAA,OAAA,EAAS,cAAc,KAAA,KAAU,QAAA;QACzC,QAAA,kBAAA,GAAA,CAAC,0BAAA,EAAA;YACC,YAAA,EAAY,KAAA,KAAU,WAAW,QAAA,GAAW,SAAA;AAC3C,YAAA,GAAG,cAAA;YACJ,GAAA,EAAK,YAAA;AACL,YAAA,cAAA,EAAgB,qBAAqB,KAAA,CAAM,cAAA,EAAgB,IAAM,IAAA,CAAK,eAAe,CAAC,CAAA;AACtF,YAAA,cAAA,EAAgB,qBAAqB,KAAA,CAAM,cAAA,EAAgB,IAAM,IAAA,CAAK,eAAe,CAAC;AAAA,SAAA;KAE1F,CAAA;AAEJ,CAAC,CAAA;AAOD,IAAM,0BAAgCA,KAAA,CAAA,UAAA,CAGpC,CAAC,OAAkD,YAAA,GAAA;AACnD,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,cAAA,EAAgB,KAAA,CAAM,iBAAiB,CAAA;AAC5E,IAAA,MAAM,EAAE,UAAA,EAAY,GAAG,cAAA,EAAe,GAAI,KAAA;IAC1C,MAAM,CAAC,SAAS,UAAU,CAAA,GAAUA,KAAA,CAAA,QAAA,CAAS,KAAK,CAAA;IAClD,MAAM,YAAA,GAAe,KAAA,CAAM,WAAA,KAAgB,YAAA;IAC3C,MAAM,YAAA,GAAe,oBAAoB,IAAA;QACvC,IAAI,OAAA,CAAQ,QAAA,EAAU;YACpB,MAAM,WAAA,GAAc,QAAQ,QAAA,CAAS,WAAA,GAAc,OAAA,CAAQ,QAAA,CAAS,WAAA;YACpE,MAAM,WAAA,GAAc,QAAQ,QAAA,CAAS,YAAA,GAAe,OAAA,CAAQ,QAAA,CAAS,YAAA;YACrE,UAAA,CAAW,YAAA,GAAe,cAAc,WAAW,CAAA;AACrD,QAAA;AACF,IAAA,CAAA,EAAG,EAAE,CAAA;IAEL,iBAAA,CAAkB,OAAA,CAAQ,QAAA,EAAU,YAAY,CAAA;IAChD,iBAAA,CAAkB,OAAA,CAAQ,OAAA,EAAS,YAAY,CAAA;IAE/C,uBACE,GAAA,CAAC,QAAA,EAAA;AAAS,QAAA,OAAA,EAAS,UAAA,IAAc,OAAA;QAC/B,QAAA,kBAAA,GAAA,CAAC,0BAAA,EAAA;AACC,YAAA,YAAA,EAAY,UAAU,SAAA,GAAY,QAAA;AACjC,YAAA,GAAG,cAAA;YACJ,GAAA,EAAK;AAAA,SAAA;KAET,CAAA;AAEJ,CAAC,CAAA;AAUD,IAAM,6BAAmCA,KAAA,CAAA,UAAA,CAGvC,CAAC,OAAqD,YAAA,GAAA;AACtD,IAAA,MAAM,EAAE,WAAA,GAAc,UAAA,EAAY,GAAG,cAAA,EAAe,GAAI,KAAA;AACxD,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,cAAA,EAAgB,KAAA,CAAM,iBAAiB,CAAA;AAC5E,IAAA,MAAM,QAAA,GAAiBA,KAAA,CAAA,MAAA,CAAsC,IAAI,CAAA;AACjE,IAAA,MAAM,gBAAA,GAAyBA,KAAA,CAAA,MAAA,CAAO,CAAC,CAAA;AACvC,IAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAUA,KAAA,CAAA,QAAA,CAAgB;QAC9C,OAAA,EAAS,CAAA;QACT,QAAA,EAAU,CAAA;QACV,SAAA,EAAW;YAAE,IAAA,EAAM,CAAA;YAAG,YAAA,EAAc,CAAA;YAAG,UAAA,EAAY;AAAE;KACtD,CAAA;AACD,IAAA,MAAM,aAAa,aAAA,CAAc,KAAA,CAAM,QAAA,EAAU,MAAM,OAAO,CAAA;AAG9D,IAAA,MAAM,WAAA,GAAwE;AAC5E,QAAA,GAAG,cAAA;AACH,QAAA,KAAA;QACA,aAAA,EAAe,QAAA;AACf,QAAA,QAAA,EAAU,OAAA,CAAQ,UAAA,GAAa,CAAA,IAAK,UAAA,GAAa,CAAC,CAAA;AAClD,QAAA,aAAA,EAAe,CAAC,KAAA,GAAW,QAAA,CAAS,OAAA,GAAU,KAAA;QAC9C,gBAAA,EAAkB,IAAO,gBAAA,CAAiB,OAAA,GAAU,CAAA;AACpD,QAAA,kBAAA,EAAoB,CAAC,UAAA,GAAgB,gBAAA,CAAiB,OAAA,GAAU;AAClE,KAAA;AAEA,IAAA,SAAS,iBAAA,CAAkB,UAAA,EAAoB,GAAA,EAAiB;AAC9D,QAAA,OAAO,6BAA6B,UAAA,EAAY,gBAAA,CAAiB,OAAA,EAAS,OAAO,GAAG,CAAA;AACtF,IAAA;AAEA,IAAA,IAAI,gBAAgB,YAAA,EAAc;QAChC,uBACE,GAAA,CAAC,oBAAA,EAAA;AACE,YAAA,GAAG,WAAA;YACJ,GAAA,EAAK,YAAA;AACL,YAAA,qBAAA,EAAuB,IAAA;AACrB,gBAAA,IAAI,OAAA,CAAQ,QAAA,IAAY,QAAA,CAAS,OAAA,EAAS;AACxC,oBAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,QAAA,CAAS,UAAA;AACnC,oBAAA,MAAM,MAAA,GAAS,wBAAA,CAAyB,SAAA,EAAW,KAAA,EAAO,QAAQ,GAAG,CAAA;AACrE,oBAAA,QAAA,CAAS,OAAA,CAAQ,KAAA,CAAM,SAAA,GAAY,CAAA,YAAA,EAAe,MAAM,CAAA,SAAA,CAAA;AAC1D,gBAAA;AACF,YAAA,CAAA;AACA,YAAA,aAAA,EAAe,CAAC,SAAA,GAAA;gBACd,IAAI,OAAA,CAAQ,QAAA,EAAU,QAAQ,QAAA,CAAS,UAAA,GAAa,SAAA;AACtD,YAAA,CAAA;AACA,YAAA,YAAA,EAAc,CAAC,UAAA,GAAA;gBACb,IAAI,OAAA,CAAQ,QAAA,EAAU;AACpB,oBAAA,OAAA,CAAQ,QAAA,CAAS,UAAA,GAAa,iBAAA,CAAkB,UAAA,EAAY,QAAQ,GAAG,CAAA;AACzE,gBAAA;AACF,YAAA;AAAA,SAAA,CAAA;AAGN,IAAA;AAEA,IAAA,IAAI,gBAAgB,UAAA,EAAY;QAC9B,uBACE,GAAA,CAAC,oBAAA,EAAA;AACE,YAAA,GAAG,WAAA;YACJ,GAAA,EAAK,YAAA;AACL,YAAA,qBAAA,EAAuB,IAAA;AACrB,gBAAA,IAAI,OAAA,CAAQ,QAAA,IAAY,QAAA,CAAS,OAAA,EAAS;AACxC,oBAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,QAAA,CAAS,SAAA;oBACnC,MAAM,MAAA,GAAS,wBAAA,CAAyB,SAAA,EAAW,KAAK,CAAA;AACxD,oBAAA,QAAA,CAAS,OAAA,CAAQ,KAAA,CAAM,SAAA,GAAY,CAAA,eAAA,EAAkB,MAAM,CAAA,MAAA,CAAA;AAC7D,gBAAA;AACF,YAAA,CAAA;AACA,YAAA,aAAA,EAAe,CAAC,SAAA,GAAA;gBACd,IAAI,OAAA,CAAQ,QAAA,EAAU,QAAQ,QAAA,CAAS,SAAA,GAAY,SAAA;AACrD,YAAA,CAAA;AACA,YAAA,YAAA,EAAc,CAAC,UAAA,GAAA;gBACb,IAAI,OAAA,CAAQ,QAAA,EAAU,OAAA,CAAQ,QAAA,CAAS,SAAA,GAAY,iBAAA,CAAkB,UAAU,CAAA;AACjF,YAAA;AAAA,SAAA,CAAA;AAGN,IAAA;IAEA,OAAO,IAAA;AACT,CAAC,CAAA;AAqBD,IAAM,uBAA6BA,KAAA,CAAA,UAAA,CAGjC,CAAC,OAAkD,YAAA,GAAA;IACnD,MAAM,EAAE,KAAA,EAAO,aAAA,EAAe,GAAG,cAAA,EAAe,GAAI,KAAA;AACpD,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,cAAA,EAAgB,KAAA,CAAM,iBAAiB,CAAA;AAC5E,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,KAAA,CAAA,QAAA,EAA8B;AAC9E,IAAA,MAAM,GAAA,GAAYA,KAAA,CAAA,MAAA,CAAuC,IAAI,CAAA;AAC7D,IAAA,MAAM,WAAA,GAAc,eAAA,CAAgB,YAAA,EAAc,GAAA,EAAK,QAAQ,kBAAkB,CAAA;IAE3EA,KAAA,CAAA,SAAA,CAAU,IAAA;QACd,IAAI,GAAA,CAAI,OAAA,EAAS,iBAAiB,gBAAA,CAAiB,GAAA,CAAI,OAAO,CAAC,CAAA;IACjE,CAAA,EAAG;QAAC;AAAI,KAAA,CAAA;IAER,uBACE,GAAA,CAAC,uBAAA,EAAA;QACC,kBAAA,EAAiB,YAAA;AAChB,QAAA,GAAG,cAAA;QACJ,GAAA,EAAK,WAAA;AACL,QAAA,KAAA;QACA,KAAA,EAAO;YACL,MAAA,EAAQ,CAAA;AACR,YAAA,IAAA,EAAM,OAAA,CAAQ,GAAA,KAAQ,KAAA,GAAQ,uCAAA,GAA0C,CAAA;AACxE,YAAA,KAAA,EAAO,OAAA,CAAQ,GAAA,KAAQ,KAAA,GAAQ,uCAAA,GAA0C,CAAA;AACzE,YAAA,CAAC,iCAAwC,GAAG,YAAA,CAAa,KAAK,CAAA,GAAI,IAAA;AAClE,YAAA,GAAG,MAAM;AACX,SAAA;AACA,QAAA,kBAAA,EAAoB,CAAC,UAAA,GAAe,KAAA,CAAM,kBAAA,CAAmB,WAAW,CAAC,CAAA;AACzE,QAAA,YAAA,EAAc,CAAC,UAAA,GAAe,KAAA,CAAM,YAAA,CAAa,WAAW,CAAC,CAAA;QAC7D,aAAA,EAAe,CAAC,OAAO,YAAA,GAAA;YACrB,IAAI,OAAA,CAAQ,QAAA,EAAU;AACpB,gBAAA,MAAM,YAAY,OAAA,CAAQ,QAAA,CAAS,UAAA,GAAa,MAAM,MAAA;gBACtD,KAAA,CAAM,aAAA,CAAc,SAAS,CAAA;gBAE7B,IAAI,gCAAA,CAAiC,SAAA,EAAW,YAAY,CAAA,EAAG;AAC7D,oBAAA,KAAA,CAAM,cAAA,EAAe;AACvB,gBAAA;AACF,YAAA;AACF,QAAA,CAAA;AACA,QAAA,QAAA,EAAU,IAAA;AACR,YAAA,IAAI,IAAI,OAAA,IAAW,OAAA,CAAQ,QAAA,IAAY,aAAA,EAAe;gBACpD,aAAA,CAAc;oBACZ,OAAA,EAAS,OAAA,CAAQ,QAAA,CAAS,WAAA;oBAC1B,QAAA,EAAU,OAAA,CAAQ,QAAA,CAAS,WAAA;oBAC3B,SAAA,EAAW;wBACT,IAAA,EAAM,GAAA,CAAI,OAAA,CAAQ,WAAA;wBAClB,YAAA,EAAc,KAAA,CAAM,cAAc,WAAW,CAAA;wBAC7C,UAAA,EAAY,KAAA,CAAM,cAAc,YAAY;AAC9C;iBACD,CAAA;AACH,YAAA;AACF,QAAA;AAAA,KAAA,CAAA;AAGN,CAAC,CAAA;AAED,IAAM,uBAA6BA,KAAA,CAAA,UAAA,CAGjC,CAAC,OAAkD,YAAA,GAAA;IACnD,MAAM,EAAE,KAAA,EAAO,aAAA,EAAe,GAAG,cAAA,EAAe,GAAI,KAAA;AACpD,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,cAAA,EAAgB,KAAA,CAAM,iBAAiB,CAAA;AAC5E,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,KAAA,CAAA,QAAA,EAA8B;AAC9E,IAAA,MAAM,GAAA,GAAYA,KAAA,CAAA,MAAA,CAAuC,IAAI,CAAA;AAC7D,IAAA,MAAM,WAAA,GAAc,eAAA,CAAgB,YAAA,EAAc,GAAA,EAAK,QAAQ,kBAAkB,CAAA;IAE3EA,KAAA,CAAA,SAAA,CAAU,IAAA;QACd,IAAI,GAAA,CAAI,OAAA,EAAS,iBAAiB,gBAAA,CAAiB,GAAA,CAAI,OAAO,CAAC,CAAA;IACjE,CAAA,EAAG;QAAC;AAAI,KAAA,CAAA;IAER,uBACE,GAAA,CAAC,uBAAA,EAAA;QACC,kBAAA,EAAiB,UAAA;AAChB,QAAA,GAAG,cAAA;QACJ,GAAA,EAAK,WAAA;AACL,QAAA,KAAA;QACA,KAAA,EAAO;YACL,GAAA,EAAK,CAAA;AACL,YAAA,KAAA,EAAO,OAAA,CAAQ,GAAA,KAAQ,KAAA,GAAQ,IAAI,MAAA;AACnC,YAAA,IAAA,EAAM,OAAA,CAAQ,GAAA,KAAQ,KAAA,GAAQ,IAAI,MAAA;YAClC,MAAA,EAAQ,wCAAA;AACR,YAAA,CAAC,kCAAyC,GAAG,YAAA,CAAa,KAAK,CAAA,GAAI,IAAA;AACnE,YAAA,GAAG,MAAM;AACX,SAAA;AACA,QAAA,kBAAA,EAAoB,CAAC,UAAA,GAAe,KAAA,CAAM,kBAAA,CAAmB,WAAW,CAAC,CAAA;AACzE,QAAA,YAAA,EAAc,CAAC,UAAA,GAAe,KAAA,CAAM,YAAA,CAAa,WAAW,CAAC,CAAA;QAC7D,aAAA,EAAe,CAAC,OAAO,YAAA,GAAA;YACrB,IAAI,OAAA,CAAQ,QAAA,EAAU;AACpB,gBAAA,MAAM,YAAY,OAAA,CAAQ,QAAA,CAAS,SAAA,GAAY,MAAM,MAAA;gBACrD,KAAA,CAAM,aAAA,CAAc,SAAS,CAAA;gBAE7B,IAAI,gCAAA,CAAiC,SAAA,EAAW,YAAY,CAAA,EAAG;AAC7D,oBAAA,KAAA,CAAM,cAAA,EAAe;AACvB,gBAAA;AACF,YAAA;AACF,QAAA,CAAA;AACA,QAAA,QAAA,EAAU,IAAA;AACR,YAAA,IAAI,IAAI,OAAA,IAAW,OAAA,CAAQ,QAAA,IAAY,aAAA,EAAe;gBACpD,aAAA,CAAc;oBACZ,OAAA,EAAS,OAAA,CAAQ,QAAA,CAAS,YAAA;oBAC1B,QAAA,EAAU,OAAA,CAAQ,QAAA,CAAS,YAAA;oBAC3B,SAAA,EAAW;wBACT,IAAA,EAAM,GAAA,CAAI,OAAA,CAAQ,YAAA;wBAClB,YAAA,EAAc,KAAA,CAAM,cAAc,UAAU,CAAA;wBAC5C,UAAA,EAAY,KAAA,CAAM,cAAc,aAAa;AAC/C;iBACD,CAAA;AACH,YAAA;AACF,QAAA;AAAA,KAAA,CAAA;AAGN,CAAC,CAAA;AAaD,IAAM,CAAC,iBAAA,EAAmB,mBAAmB,CAAA,GAC3C,wBAA0C,cAAc,CAAA;AAkB1D,IAAM,0BAAgCA,KAAA,CAAA,UAAA,CAGpC,CAAC,OAAkD,YAAA,GAAA;IACnD,MAAM,EACJ,iBAAA,EACA,KAAA,EACA,QAAA,EACA,aAAA,EACA,gBAAA,EACA,kBAAA,EACA,qBAAA,EACA,YAAA,EACA,aAAA,EACA,QAAA,EACA,GAAG,cAAA,EACL,GAAI,KAAA;IACJ,MAAM,OAAA,GAAU,oBAAA,CAAqB,cAAA,EAAgB,iBAAiB,CAAA;IACtE,MAAM,CAAC,WAAW,YAAY,CAAA,GAAUA,KAAA,CAAA,QAAA,CAA4C,IAAI,CAAA;AACxF,IAAA,MAAM,cAAc,eAAA,CAAgB,YAAA,EAAc,CAAC,IAAA,GAAS,YAAA,CAAa,IAAI,CAAC,CAAA;AAC9E,IAAA,MAAM,OAAA,GAAgBA,KAAA,CAAA,MAAA,CAAuB,IAAI,CAAA;AACjD,IAAA,MAAM,uBAAA,GAAgCA,KAAA,CAAA,MAAA,CAAe,EAAE,CAAA;IACvD,MAAM,QAAA,GAAW,QAAQ,QAAA;AACzB,IAAA,MAAM,YAAA,GAAe,KAAA,CAAM,OAAA,GAAU,MAAM,QAAA;IAC3C,MAAM,iBAAA,GAAoB,eAAe,aAAa,CAAA;IACtD,MAAM,yBAAA,GAA4B,eAAe,qBAAqB,CAAA;IACtE,MAAM,YAAA,GAAe,mBAAA,CAAoB,QAAA,EAAU,EAAE,CAAA;IAErD,SAAS,gBAAA,CAAiB,KAAA,EAAwC;QAChE,IAAI,OAAA,CAAQ,OAAA,EAAS;AACnB,YAAA,MAAM,IAAI,KAAA,CAAM,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,IAAA;AAC1C,YAAA,MAAM,IAAI,KAAA,CAAM,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,GAAA;YAC1C,YAAA,CAAa;AAAE,gBAAA,CAAA;AAAG,gBAAA;aAAG,CAAA;AACvB,QAAA;AACF,IAAA;IAMMA,KAAA,CAAA,SAAA,CAAU,IAAA;QACd,MAAM,WAAA,GAAc,CAAC,KAAA,GAAA;YACnB,MAAM,OAAA,GAAU,MAAM,MAAA;YACtB,MAAM,gBAAA,GAAmB,SAAA,EAAW,QAAA,CAAS,OAAO,CAAA;AACpD,YAAA,IAAI,gBAAA,EAAkB,iBAAA,CAAkB,KAAA,EAAO,YAAY,CAAA;AAC7D,QAAA,CAAA;QACA,QAAA,CAAS,gBAAA,CAAiB,OAAA,EAAS,WAAA,EAAa;YAAE,OAAA,EAAS;SAAO,CAAA;AAClE,QAAA,OAAO,IAAM,QAAA,CAAS,mBAAA,CAAoB,SAAS,WAAA,EAAa;gBAAE,OAAA,EAAS;aAAc,CAAA;IAC3F,CAAA,EAAG;AAAC,QAAA,QAAA;AAAU,QAAA,SAAA;AAAW,QAAA,YAAA;QAAc;AAAkB,KAAA,CAAA;IAKnDA,KAAA,CAAA,SAAA,CAAU,yBAAA,EAA2B;AAAC,QAAA,KAAA;QAAO;AAA0B,KAAA,CAAA;AAE7E,IAAA,iBAAA,CAAkB,WAAW,YAAY,CAAA;IACzC,iBAAA,CAAkB,OAAA,CAAQ,OAAA,EAAS,YAAY,CAAA;IAE/C,uBACE,GAAA,CAAC,iBAAA,EAAA;QACC,KAAA,EAAO,iBAAA;AACP,QAAA,SAAA;AACA,QAAA,QAAA;AACA,QAAA,aAAA,EAAe,eAAe,aAAa,CAAA;AAC3C,QAAA,gBAAA,EAAkB,eAAe,gBAAgB,CAAA;QACjD,qBAAA,EAAuB,yBAAA;AACvB,QAAA,kBAAA,EAAoB,eAAe,kBAAkB,CAAA;AAErD,QAAA,QAAA,kBAAA,GAAA,CAAC,SAAA,CAAU,GAAA,EAAV;AACE,YAAA,GAAG,cAAA;YACJ,GAAA,EAAK,WAAA;YACL,KAAA,EAAO;gBAAE,QAAA,EAAU,UAAA;AAAY,gBAAA,GAAG,eAAe;AAAM,aAAA;AACvD,YAAA,aAAA,EAAe,oBAAA,CAAqB,KAAA,CAAM,aAAA,EAAe,CAAC,KAAA,GAAA;AACxD,gBAAA,MAAM,WAAA,GAAc,CAAA;gBACpB,IAAI,KAAA,CAAM,MAAA,KAAW,WAAA,EAAa;oBAChC,MAAM,OAAA,GAAU,MAAM,MAAA;oBACtB,OAAA,CAAQ,iBAAA,CAAkB,KAAA,CAAM,SAAS,CAAA;AACzC,oBAAA,OAAA,CAAQ,OAAA,GAAU,SAAA,CAAW,qBAAA,EAAsB;AAGnD,oBAAA,uBAAA,CAAwB,OAAA,GAAU,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,gBAAA;AACtD,oBAAA,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,gBAAA,GAAmB,MAAA;oBACvC,IAAI,OAAA,CAAQ,QAAA,EAAU,OAAA,CAAQ,QAAA,CAAS,KAAA,CAAM,cAAA,GAAiB,MAAA;AAC9D,oBAAA,gBAAA,CAAiB,KAAK,CAAA;AACxB,gBAAA;YACF,CAAC,CAAA;AACD,YAAA,aAAA,EAAe,oBAAA,CAAqB,KAAA,CAAM,aAAA,EAAe,gBAAgB,CAAA;AACzE,YAAA,WAAA,EAAa,oBAAA,CAAqB,KAAA,CAAM,WAAA,EAAa,CAAC,KAAA,GAAA;gBACpD,MAAM,OAAA,GAAU,MAAM,MAAA;AACtB,gBAAA,IAAI,OAAA,CAAQ,iBAAA,CAAkB,KAAA,CAAM,SAAS,CAAA,EAAG;oBAC9C,OAAA,CAAQ,qBAAA,CAAsB,KAAA,CAAM,SAAS,CAAA;AAC/C,gBAAA;AACA,gBAAA,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,gBAAA,GAAmB,wBAAwB,OAAA;gBAC/D,IAAI,OAAA,CAAQ,QAAA,EAAU,OAAA,CAAQ,QAAA,CAAS,KAAA,CAAM,cAAA,GAAiB,EAAA;AAC9D,gBAAA,OAAA,CAAQ,OAAA,GAAU,IAAA;YACpB,CAAC;AAAA,SAAA;AACH,KAAA,CAAA;AAGN,CAAC,CAAA;AAMD,IAAM,UAAA,GAAa,iBAAA;AAWnB,IAAM,kBAAwBA,KAAA,CAAA,UAAA,CAC5B,CAAC,OAA0C,YAAA,GAAA;AACzC,IAAA,MAAM,EAAE,UAAA,EAAY,GAAG,UAAA,EAAW,GAAI,KAAA;AACtC,IAAA,MAAM,gBAAA,GAAmB,mBAAA,CAAoB,UAAA,EAAY,KAAA,CAAM,iBAAiB,CAAA;IAChF,uBACE,GAAA,CAAC,QAAA,EAAA;QAAS,OAAA,EAAS,UAAA,IAAc,iBAAiB,QAAA;QAChD,QAAA,kBAAA,GAAA,CAAC,mBAAA,EAAA;YAAoB,GAAA,EAAK,YAAA;AAAe,YAAA,GAAG;SAAY;KAC1D,CAAA;AAEJ,CAAA,CAAA;AAMF,IAAM,sBAA4BA,KAAA,CAAA,UAAA,CAChC,CAAC,OAA8C,YAAA,GAAA;IAC7C,MAAM,EAAE,iBAAA,EAAmB,KAAA,EAAO,GAAG,UAAA,EAAW,GAAI,KAAA;IACpD,MAAM,iBAAA,GAAoB,oBAAA,CAAqB,UAAA,EAAY,iBAAiB,CAAA;IAC5E,MAAM,gBAAA,GAAmB,mBAAA,CAAoB,UAAA,EAAY,iBAAiB,CAAA;AAC1E,IAAA,MAAM,EAAE,qBAAA,EAAsB,GAAI,gBAAA;IAClC,MAAM,WAAA,GAAc,gBAAgB,YAAA,EAAc,CAAC,OACjD,gBAAA,CAAiB,aAAA,CAAc,IAAI,CAAA,CAAA;AAErC,IAAA,MAAM,+BAAA,GAAwCA,KAAA,CAAA,MAAA,CAAmB,MAAS,CAAA;IAC1E,MAAM,iBAAA,GAAoB,oBAAoB,IAAA;QAC5C,IAAI,+BAAA,CAAgC,OAAA,EAAS;AAC3C,YAAA,+BAAA,CAAgC,OAAA,EAAQ;YACxC,+BAAA,CAAgC,OAAA,GAAU,MAAA;AAC5C,QAAA;AACF,IAAA,CAAA,EAAG,GAAG,CAAA;IAEAA,KAAA,CAAA,SAAA,CAAU,IAAA;QACd,MAAM,QAAA,GAAW,kBAAkB,QAAA;AACnC,QAAA,IAAI,QAAA,EAAU;AAQZ,YAAA,MAAM,eAAe,IAAA;gBACnB,iBAAA,EAAkB;gBAClB,IAAI,CAAC,+BAAA,CAAgC,OAAA,EAAS;oBAC5C,MAAM,QAAA,GAAW,yBAAA,CAA0B,QAAA,EAAU,qBAAqB,CAAA;AAC1E,oBAAA,+BAAA,CAAgC,OAAA,GAAU,QAAA;oBAC1C,qBAAA,EAAsB;AACxB,gBAAA;AACF,YAAA,CAAA;YACA,qBAAA,EAAsB;YACtB,QAAA,CAAS,gBAAA,CAAiB,QAAA,EAAU,YAAY,CAAA;AAChD,YAAA,OAAO,IAAM,QAAA,CAAS,mBAAA,CAAoB,UAAU,YAAY,CAAA;AAClE,QAAA;IACF,CAAA,EAAG;AAAC,QAAA,iBAAA,CAAkB,QAAA;AAAU,QAAA,iBAAA;QAAmB;AAAsB,KAAA,CAAA;AAEzE,IAAA,uBACE,GAAA,CAAC,SAAA,CAAU,GAAA,EAAV;QACC,YAAA,EAAY,gBAAA,CAAiB,QAAA,GAAW,SAAA,GAAY,QAAA;AACnD,QAAA,GAAG,UAAA;QACJ,GAAA,EAAK,WAAA;QACL,KAAA,EAAO;YACL,KAAA,EAAO,sCAAA;YACP,MAAA,EAAQ,uCAAA;AACR,YAAA,GAAG;AACL,SAAA;AACA,QAAA,oBAAA,EAAsB,oBAAA,CAAqB,KAAA,CAAM,oBAAA,EAAsB,CAAC,KAAA,GAAA;YACtE,MAAM,KAAA,GAAQ,MAAM,MAAA;YACpB,MAAM,SAAA,GAAY,KAAA,CAAM,qBAAA,EAAsB;AAC9C,YAAA,MAAM,CAAA,GAAI,KAAA,CAAM,OAAA,GAAU,UAAU,IAAA;AACpC,YAAA,MAAM,CAAA,GAAI,KAAA,CAAM,OAAA,GAAU,UAAU,GAAA;AACpC,YAAA,gBAAA,CAAiB,kBAAA,CAAmB;AAAE,gBAAA,CAAA;AAAG,gBAAA;aAAG,CAAA;QAC9C,CAAC,CAAA;AACD,QAAA,WAAA,EAAa,oBAAA,CAAqB,KAAA,CAAM,WAAA,EAAa,iBAAiB,gBAAgB;AAAA,KAAA,CAAA;AAG5F,CAAA,CAAA;AAGF,eAAA,CAAgB,WAAA,GAAc,UAAA;AAM9B,IAAM,WAAA,GAAc,kBAAA;AAKpB,IAAM,mBAAyBA,KAAA,CAAA,UAAA,CAC7B,CAAC,OAA2C,YAAA,GAAA;AAC1C,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,WAAA,EAAa,KAAA,CAAM,iBAAiB,CAAA;AACzE,IAAA,MAAM,2BAA2B,OAAA,CAAQ,OAAA,CAAQ,UAAA,IAAc,QAAQ,UAAU,CAAA;AACjF,IAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,IAAA,KAAS,QAAA,IAAY,wBAAA;AAC/C,IAAA,OAAO,SAAA,mBAAY,GAAA,CAAC,oBAAA,EAAA;AAAsB,QAAA,GAAG,KAAA;QAAO,GAAA,EAAK;AAAA,KAAc,CAAA,GAAK,IAAA;AAC9E,CAAA,CAAA;AAGF,gBAAA,CAAiB,WAAA,GAAc,WAAA;AAO/B,IAAM,uBAA6BA,KAAA,CAAA,UAAA,CAGjC,CAAC,OAA+C,YAAA,GAAA;AAChD,IAAA,MAAM,EAAE,iBAAA,EAAmB,GAAG,WAAA,EAAY,GAAI,KAAA;IAC9C,MAAM,OAAA,GAAU,oBAAA,CAAqB,WAAA,EAAa,iBAAiB,CAAA;IACnE,MAAM,CAAC,OAAO,QAAQ,CAAA,GAAUA,KAAA,CAAA,QAAA,CAAS,CAAC,CAAA;IAC1C,MAAM,CAAC,QAAQ,SAAS,CAAA,GAAUA,KAAA,CAAA,QAAA,CAAS,CAAC,CAAA;IAC5C,MAAM,OAAA,GAAU,OAAA,CAAQ,KAAA,IAAS,MAAM,CAAA;IAEvC,iBAAA,CAAkB,OAAA,CAAQ,UAAA,EAAY,IAAA;AACpC,QAAA,MAAMC,OAAAA,GAAS,OAAA,CAAQ,UAAA,EAAY,YAAA,IAAgB,CAAA;QACnD,OAAA,CAAQ,oBAAA,CAAqBA,OAAM,CAAA;AACnC,QAAA,SAAA,CAAUA,OAAM,CAAA;IAClB,CAAC,CAAA;IAED,iBAAA,CAAkB,OAAA,CAAQ,UAAA,EAAY,IAAA;AACpC,QAAA,MAAMC,MAAAA,GAAQ,OAAA,CAAQ,UAAA,EAAY,WAAA,IAAe,CAAA;QACjD,OAAA,CAAQ,mBAAA,CAAoBA,MAAK,CAAA;AACjC,QAAA,QAAA,CAASA,MAAK,CAAA;IAChB,CAAC,CAAA;AAED,IAAA,OAAO,0BACL,GAAA,CAAC,SAAA,CAAU,GAAA,EAAV;AACE,QAAA,GAAG,WAAA;QACJ,GAAA,EAAK,YAAA;QACL,KAAA,EAAO;AACL,YAAA,KAAA;AACA,YAAA,MAAA;YACA,QAAA,EAAU,UAAA;AACV,YAAA,KAAA,EAAO,OAAA,CAAQ,GAAA,KAAQ,KAAA,GAAQ,IAAI,MAAA;AACnC,YAAA,IAAA,EAAM,OAAA,CAAQ,GAAA,KAAQ,KAAA,GAAQ,IAAI,MAAA;YAClC,MAAA,EAAQ,CAAA;AACR,YAAA,GAAG,MAAM;AACX;KAAA,CAAA,GAEA,IAAA;AACN,CAAC,CAAA;AAID,SAAS,KAAA,CAAM,KAAA,EAAgB;AAC7B,IAAA,OAAO,KAAA,GAAQ,QAAA,CAAS,KAAA,EAAO,EAAE,CAAA,GAAI,CAAA;AACvC;AAEA,SAAS,aAAA,CAAc,YAAA,EAAsB,WAAA,EAAqB;AAChE,IAAA,MAAM,QAAQ,YAAA,GAAe,WAAA;IAC7B,OAAO,KAAA,CAAM,KAAK,CAAA,GAAI,CAAA,GAAI,KAAA;AAC5B;AAEA,SAAS,YAAA,CAAa,KAAA,EAAc;AAClC,IAAA,MAAM,QAAQ,aAAA,CAAc,KAAA,CAAM,QAAA,EAAU,MAAM,OAAO,CAAA;IACzD,MAAM,gBAAA,GAAmB,MAAM,SAAA,CAAU,YAAA,GAAe,KAAA,CAAM,SAAA,CAAU,UAAA;IACxE,MAAM,SAAA,GAAa,CAAb,KAAA,CAAmB,SAAA,CAAU,IAAA,GAAO,gBAAA,IAAoB,KAAA;AAE9D,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,SAAA,EAAW,EAAE,CAAA;AAC/B;AAEA,SAAS,4BAAA,CACP,UAAA,EACA,aAAA,EACA,KAAA,EACA,GAAA,GAAiB,KAAA,EACjB;IACA,MAAM,WAAA,GAAc,aAAa,KAAK,CAAA;AACtC,IAAA,MAAM,cAAc,WAAA,GAAc,CAAA;AAClC,IAAA,MAAM,SAAS,aAAA,IAAiB,WAAA;AAChC,IAAA,MAAM,qBAAqB,WAAA,GAAc,MAAA;AACzC,IAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,SAAA,CAAU,YAAA,GAAe,MAAA;IACrD,MAAM,aAAA,GAAgB,KAAA,CAAM,SAAA,CAAU,IAAA,GAAO,KAAA,CAAM,SAAA,CAAU,UAAA,GAAa,kBAAA;AAC1E,IAAA,MAAM,YAAA,GAAe,KAAA,CAAM,OAAA,GAAU,MAAM,QAAA;IAC3C,MAAM,WAAA,GAAc,QAAQ,KAAA,GAAQ;AAAC,QAAA,CAAA;QAAG;KAAY,GAAI;AAAC,QAAA,YAAA,GAAe,EAAA;QAAI;AAAC,KAAA;AAC7E,IAAA,MAAM,cAAc,WAAA,CAAY;AAAC,QAAA,aAAA;QAAe;AAAa,KAAA,EAAG,WAA+B,CAAA;AAC/F,IAAA,OAAO,YAAY,UAAU,CAAA;AAC/B;AAEA,SAAS,yBAAyB,SAAA,EAAmB,KAAA,EAAc,GAAA,GAAiB,KAAA,EAAO;IACzF,MAAM,WAAA,GAAc,aAAa,KAAK,CAAA;IACtC,MAAM,gBAAA,GAAmB,MAAM,SAAA,CAAU,YAAA,GAAe,KAAA,CAAM,SAAA,CAAU,UAAA;AACxE,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,SAAA,CAAU,IAAA,GAAO,gBAAA;AACzC,IAAA,MAAM,YAAA,GAAe,KAAA,CAAM,OAAA,GAAU,MAAM,QAAA;AAC3C,IAAA,MAAM,cAAc,SAAA,GAAY,WAAA;IAChC,MAAM,gBAAA,GAAmB,QAAQ,KAAA,GAAQ;AAAC,QAAA,CAAA;QAAG;KAAY,GAAI;AAAC,QAAA,YAAA,GAAe,EAAA;QAAI;AAAC,KAAA;IAClF,MAAM,qBAAA,GAAwB,KAAA,CAAM,SAAA,EAAW,gBAAoC,CAAA;AACnF,IAAA,MAAM,cAAc,WAAA,CAAY;AAAC,QAAA,CAAA;QAAG;KAAY,EAAG;AAAC,QAAA,CAAA;QAAG;AAAY,KAAA,CAAA;AACnE,IAAA,OAAO,YAAY,qBAAqB,CAAA;AAC1C;AAGA,SAAS,WAAA,CAAY,KAAA,EAAkC,MAAA,EAAmC;AACxF,IAAA,OAAO,CAAC,KAAA,GAAA;QACN,IAAI,KAAA,CAAM,CAAC,CAAA,KAAM,KAAA,CAAM,CAAC,CAAA,IAAK,MAAA,CAAO,CAAC,CAAA,KAAM,MAAA,CAAO,CAAC,CAAA,EAAG,OAAO,MAAA,CAAO,CAAC,CAAA;AACrE,QAAA,MAAM,QAAA,CAAS,MAAA,CAAO,CAAC,CAAA,GAAI,MAAA,CAAO,CAAA,CAAC,KAAM,KAAA,CAAM,CAAC,CAAA,GAAI,KAAA,CAAM,CAAA,CAAC,CAAA;QAC3D,OAAO,MAAA,CAAO,CAAC,CAAA,GAAI,KAAA,IAAS,KAAA,GAAQ,KAAA,CAAM,CAAA,CAAC,CAAA;AAC7C,IAAA,CAAA;AACF;AAEA,SAAS,gCAAA,CAAiC,SAAA,EAAmB,YAAA,EAAsB;IACjF,OAAO,SAAA,GAAY,KAAK,SAAA,GAAY,YAAA;AACtC;AAIA,IAAM,4BAA4B,CAAC,IAAA,EAAmB,UAAU,IAAA,CAAO,CAAD,GAAC;AACrE,IAAA,IAAI,YAAA,GAAe;AAAE,QAAA,IAAA,EAAM,KAAK,UAAA;AAAY,QAAA,GAAA,EAAK,KAAK;AAAU,KAAA;AAChE,IAAA,IAAI,GAAA,GAAM,CAAA;AACT,IAAA,CAAA,SAAS,IAAA,GAAO;AACf,QAAA,MAAM,QAAA,GAAW;AAAE,YAAA,IAAA,EAAM,KAAK,UAAA;AAAY,YAAA,GAAA,EAAK,KAAK;AAAU,SAAA;AAC9D,QAAA,MAAM,kBAAA,GAAqB,YAAA,CAAa,IAAA,KAAS,SAAS,IAAA;AAC1D,QAAA,MAAM,gBAAA,GAAmB,YAAA,CAAa,GAAA,KAAQ,SAAS,GAAA;QACvD,IAAI,kBAAA,IAAsB,gBAAA,EAAkB,OAAA,EAAQ;QACpD,YAAA,GAAe,QAAA;QACf,GAAA,GAAM,MAAA,CAAO,qBAAA,CAAsB,IAAI,CAAA;KACzC,GAAG;AACH,IAAA,OAAO,IAAM,MAAA,CAAO,oBAAA,CAAqB,GAAG,CAAA;AAC9C,CAAA;AAEA,SAAS,mBAAA,CAAoB,QAAA,EAAsB,KAAA,EAAe;IAChE,MAAM,cAAA,GAAiB,eAAe,QAAQ,CAAA;AAC9C,IAAA,MAAM,gBAAA,GAAyBF,KAAA,CAAA,MAAA,CAAO,CAAC,CAAA;IACjCA,KAAA,CAAA,SAAA,CAAU,IAAM,IAAM,MAAA,CAAO,YAAA,CAAa,gBAAA,CAAiB,OAAO,CAAA,EAAG,EAAE,CAAA;IAC7E,OAAaA,KAAA,CAAA,WAAA,CAAY,IAAA;QACvB,MAAA,CAAO,YAAA,CAAa,gBAAA,CAAiB,OAAO,CAAA;AAC5C,QAAA,gBAAA,CAAiB,OAAA,GAAU,MAAA,CAAO,UAAA,CAAW,gBAAgB,KAAK,CAAA;IACpE,CAAA,EAAG;AAAC,QAAA,cAAA;QAAgB;AAAM,KAAA,CAAA;AAC5B;AAEA,SAAS,iBAAA,CAAkB,OAAA,EAA6B,QAAA,EAAsB;IAC5E,MAAM,YAAA,GAAe,eAAe,QAAQ,CAAA;AAC5C,IAAAG,gBAAA,CAAgB,IAAA;AACd,QAAA,IAAI,GAAA,GAAM,CAAA;AACV,QAAA,IAAI,OAAA,EAAS;YAQX,MAAM,cAAA,GAAiB,IAAI,cAAA,CAAe,IAAA;AACxC,gBAAA,oBAAA,CAAqB,GAAG,CAAA;gBACxB,GAAA,GAAM,MAAA,CAAO,qBAAA,CAAsB,YAAY,CAAA;YACjD,CAAC,CAAA;YACD,cAAA,CAAe,OAAA,CAAQ,OAAO,CAAA;AAC9B,YAAA,OAAO,IAAA;gBACL,MAAA,CAAO,oBAAA,CAAqB,GAAG,CAAA;gBAC/B,cAAA,CAAe,SAAA,CAAU,OAAO,CAAA;AAClC,YAAA,CAAA;AACF,QAAA;IACF,CAAA,EAAG;AAAC,QAAA,OAAA;QAAS;AAAa,KAAA,CAAA;AAC5B;AAIA,IAAM,IAAA,GAAOJ,YAAA;AACb,IAAM,QAAA,GAAW,kBAAA;AAGjB,IAAM,MAAA,GAAS,gBAAA;;ACj/Bf,SAASA,WAAW,EACnBK,SAAS,EACTC,QAAQ,EACR,GAAGC,KAAAA,EACoD,EAAA;IACvD,qBACCC,cAAA,CAAA,aAAA,CAACC,IAAwB,EAAA;QACxBC,WAAAA,EAAU,aAAA;AACVL,QAAAA,SAAAA,EAAWM,GAAG,UAAA,EAAYN,SAAAA,CAAAA;AACzB,QAAA,GAAGE;AAEJ,KAAA,gBAAAC,cAAA,CAAA,aAAA,CAACC,QAA4B,EAAA;QAC5BC,WAAAA,EAAU,sBAAA;QACVL,SAAAA,EAAU;AAETC,KAAAA,EAAAA,QAAAA,CAAAA,gBAEFE,cAAA,CAAA,aAAA,CAACI,SAAAA,EAAAA,IAAAA,CAAAA,gBACDJ,cAAA,CAAA,aAAA,CAACC,MAA0B,EAAA,IAAA,CAAA,CAAA;AAG9B;AAEA,SAASG,SAAAA,CAAU,EAClBP,SAAS,EACTQ,cAAc,UAAU,EACxB,GAAGN,KAAAA,EACmE,EAAA;IACtE,qBACCC,cAAA,CAAA,aAAA,CAACC,mBAAuC,EAAA;QACvCC,WAAAA,EAAU,uBAAA;QACVG,WAAAA,EAAaA,WAAAA;AACbR,QAAAA,SAAAA,EAAWM,GACV,oDAAA,EACAE,WAAAA,KAAgB,cAAc,4CAAA,EAC9BA,WAAAA,KAAgB,gBAAgB,8CAAA,EAChCR,SAAAA,CAAAA;AAEA,QAAA,GAAGE;AAEJ,KAAA,gBAAAC,cAAA,CAAA,aAAA,CAACC,eAAmC,EAAA;QACnCC,WAAAA,EAAU,mBAAA;QACVL,SAAAA,EAAU;;AAId;;;;","x_google_ignoreList":[0]}