{"version":3,"file":"index.mjs","sources":["../../src/popover/BasePopover.vue","../../src/popover/Popover.vue","../../src/popover/Popover.vue?vue&type=template&id=506f8538&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport PopoverStyle from 'primevue/popover/style';\n\nexport default {\n    name: 'BasePopover',\n    extends: BaseComponent,\n    props: {\n        dismissable: {\n            type: Boolean,\n            default: true\n        },\n        appendTo: {\n            type: [String, Object],\n            default: 'body'\n        },\n        baseZIndex: {\n            type: Number,\n            default: 0\n        },\n        autoZIndex: {\n            type: Boolean,\n            default: true\n        },\n        breakpoints: {\n            type: Object,\n            default: null\n        },\n        closeOnEscape: {\n            type: Boolean,\n            default: true\n        }\n    },\n    style: PopoverStyle,\n    provide() {\n        return {\n            $pcPopover: this,\n            $parentInstance: this\n        };\n    }\n};\n</script>\n","<template>\n    <Portal :appendTo=\"appendTo\">\n        <transition name=\"p-anchored-overlay\" @enter=\"onEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n            <div v-if=\"visible\" :ref=\"containerRef\" v-focustrap role=\"dialog\" :aria-modal=\"visible\" @click=\"onOverlayClick\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n                <slot v-if=\"$slots.container\" name=\"container\" :closeCallback=\"hide\" :keydownCallback=\"(event) => onButtonKeydown(event)\"></slot>\n                <template v-else>\n                    <div :class=\"cx('content')\" @click=\"onContentClick\" @mousedown=\"onContentClick\" @keydown=\"onContentKeydown\" v-bind=\"ptm('content')\">\n                        <slot></slot>\n                    </div>\n                </template>\n            </div>\n        </transition>\n    </Portal>\n</template>\n\n<script>\nimport { $dt } from '@primeuix/styled';\nimport { absolutePosition, addClass, addStyle, focus, getOffset, isClient, isTouchDevice, setAttribute } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport FocusTrap from 'primevue/focustrap';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport BasePopover from './BasePopover.vue';\n\nexport default {\n    name: 'Popover',\n    extends: BasePopover,\n    inheritAttrs: false,\n    emits: ['show', 'hide'],\n    data() {\n        return {\n            visible: false\n        };\n    },\n    watch: {\n        dismissable: {\n            immediate: true,\n            handler(newValue) {\n                if (newValue) {\n                    this.bindOutsideClickListener();\n                } else {\n                    this.unbindOutsideClickListener();\n                }\n            }\n        }\n    },\n    selfClick: false,\n    target: null,\n    eventTarget: null,\n    outsideClickListener: null,\n    scrollHandler: null,\n    resizeListener: null,\n    container: null,\n    styleElement: null,\n    overlayEventListener: null,\n    documentKeydownListener: null,\n    contentResizeObserver: null,\n    beforeUnmount() {\n        if (this.dismissable) {\n            this.unbindOutsideClickListener();\n        }\n\n        if (this.scrollHandler) {\n            this.scrollHandler.destroy();\n            this.scrollHandler = null;\n        }\n\n        this.destroyStyle();\n        this.unbindResizeListener();\n        this.unbindContentResizeListener();\n        this.target = null;\n\n        if (this.container && this.autoZIndex) {\n            ZIndex.clear(this.container);\n        }\n\n        if (this.overlayEventListener) {\n            OverlayEventBus.off('overlay-click', this.overlayEventListener);\n            this.overlayEventListener = null;\n        }\n\n        this.container = null;\n    },\n    mounted() {\n        if (this.breakpoints) {\n            this.createStyle();\n        }\n    },\n    methods: {\n        toggle(event, target) {\n            if (this.visible) this.hide();\n            else this.show(event, target);\n        },\n        show(event, target) {\n            this.visible = true;\n            this.eventTarget = event.currentTarget;\n            this.target = target || event.currentTarget;\n        },\n        hide() {\n            this.visible = false;\n        },\n        onContentClick() {\n            this.selfClick = true;\n        },\n        onEnter(el) {\n            addStyle(el, { position: 'absolute', top: '0' });\n            this.alignOverlay();\n\n            if (this.dismissable) {\n                this.bindOutsideClickListener();\n            }\n\n            this.bindScrollListener();\n            this.bindResizeListener();\n\n            if (this.autoZIndex) {\n                ZIndex.set('overlay', el, this.baseZIndex || this.$primevue.config.zIndex.overlay);\n            }\n\n            this.overlayEventListener = (e) => {\n                if (this.container.contains(e.target)) {\n                    this.selfClick = true;\n                }\n            };\n\n            this.bindContentResizeListener();\n            this.focus();\n            OverlayEventBus.on('overlay-click', this.overlayEventListener);\n            this.$emit('show');\n\n            if (this.closeOnEscape) {\n                this.bindDocumentKeyDownListener();\n            }\n        },\n        onLeave() {\n            this.unbindOutsideClickListener();\n            this.unbindScrollListener();\n            this.unbindResizeListener();\n            this.unbindDocumentKeyDownListener();\n            this.unbindContentResizeListener();\n            OverlayEventBus.off('overlay-click', this.overlayEventListener);\n            this.overlayEventListener = null;\n            this.$emit('hide');\n        },\n        onAfterLeave(el) {\n            if (this.autoZIndex) {\n                ZIndex.clear(el);\n            }\n        },\n        alignOverlay() {\n            absolutePosition(this.container, this.target, false);\n\n            const containerOffset = getOffset(this.container);\n            const targetOffset = getOffset(this.target);\n            let arrowLeft = 0;\n\n            if (containerOffset.left < targetOffset.left) {\n                arrowLeft = targetOffset.left - containerOffset.left;\n            }\n\n            this.container.style.setProperty($dt('popover.arrow.left').name, `${arrowLeft}px`);\n\n            if (containerOffset.top < targetOffset.top) {\n                this.container.setAttribute('data-p-popover-flipped', 'true');\n                !this.isUnstyled && addClass(this.container, 'p-popover-flipped');\n            }\n        },\n        onContentKeydown(event) {\n            if (event.code === 'Escape' && this.closeOnEscape) {\n                this.hide();\n                focus(this.target);\n            }\n        },\n        onButtonKeydown(event) {\n            switch (event.code) {\n                case 'ArrowDown':\n                case 'ArrowUp':\n                case 'ArrowLeft':\n                case 'ArrowRight':\n                    event.preventDefault();\n\n                default:\n                    break;\n            }\n        },\n        focus() {\n            let focusTarget = this.container.querySelector('[autofocus]');\n\n            if (focusTarget) {\n                focusTarget.focus();\n            }\n        },\n        onKeyDown(event) {\n            if (event.code === 'Escape' && this.closeOnEscape) {\n                this.visible = false;\n            }\n        },\n        bindDocumentKeyDownListener() {\n            if (!this.documentKeydownListener) {\n                this.documentKeydownListener = this.onKeyDown.bind(this);\n                window.document.addEventListener('keydown', this.documentKeydownListener);\n            }\n        },\n        unbindDocumentKeyDownListener() {\n            if (this.documentKeydownListener) {\n                window.document.removeEventListener('keydown', this.documentKeydownListener);\n                this.documentKeydownListener = null;\n            }\n        },\n        bindOutsideClickListener() {\n            if (!this.outsideClickListener && isClient()) {\n                this.outsideClickListener = (event) => {\n                    if (this.visible && !this.selfClick && !this.isTargetClicked(event)) {\n                        this.visible = false;\n                    }\n\n                    this.selfClick = false;\n                };\n\n                document.addEventListener('click', this.outsideClickListener);\n            }\n        },\n        unbindOutsideClickListener() {\n            if (this.outsideClickListener) {\n                document.removeEventListener('click', this.outsideClickListener);\n                this.outsideClickListener = null;\n                this.selfClick = false;\n            }\n        },\n        bindScrollListener() {\n            if (!this.scrollHandler) {\n                this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {\n                    if (this.visible) {\n                        this.visible = false;\n                    }\n                });\n            }\n\n            this.scrollHandler.bindScrollListener();\n        },\n        unbindScrollListener() {\n            if (this.scrollHandler) {\n                this.scrollHandler.unbindScrollListener();\n            }\n        },\n        bindResizeListener() {\n            if (!this.resizeListener) {\n                this.resizeListener = () => {\n                    if (this.visible && !isTouchDevice()) {\n                        this.visible = false;\n                    }\n                };\n\n                window.addEventListener('resize', this.resizeListener);\n            }\n        },\n        unbindResizeListener() {\n            if (this.resizeListener) {\n                window.removeEventListener('resize', this.resizeListener);\n                this.resizeListener = null;\n            }\n        },\n        bindContentResizeListener() {\n            if (!this.contentResizeObserver) {\n                this.contentResizeObserver = new ResizeObserver(() => {\n                    if (this.visible) {\n                        this.alignOverlay();\n                    }\n                });\n\n                this.contentResizeObserver.observe(this.container);\n            }\n        },\n        unbindContentResizeListener() {\n            if (this.contentResizeObserver) {\n                this.contentResizeObserver.disconnect();\n                this.contentResizeObserver = null;\n            }\n        },\n        isTargetClicked(event) {\n            return this.eventTarget && (this.eventTarget === event.target || this.eventTarget.contains(event.target));\n        },\n        containerRef(el) {\n            this.container = el;\n        },\n        createStyle() {\n            if (!this.styleElement && !this.isUnstyled) {\n                this.styleElement = document.createElement('style');\n                this.styleElement.type = 'text/css';\n                setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n                document.head.appendChild(this.styleElement);\n\n                let innerHTML = '';\n\n                for (let breakpoint in this.breakpoints) {\n                    innerHTML += `\n                        @media screen and (max-width: ${breakpoint}) {\n                            .p-popover[${this.$attrSelector}] {\n                                width: ${this.breakpoints[breakpoint]} !important;\n                            }\n                        }\n                    `;\n                }\n\n                this.styleElement.innerHTML = innerHTML;\n            }\n        },\n        destroyStyle() {\n            if (this.styleElement) {\n                document.head.removeChild(this.styleElement);\n                this.styleElement = null;\n            }\n        },\n        onOverlayClick(event) {\n            OverlayEventBus.emit('overlay-click', {\n                originalEvent: event,\n                target: this.target\n            });\n        }\n    },\n    directives: {\n        focustrap: FocusTrap,\n        ripple: Ripple\n    },\n    components: {\n        Portal\n    }\n};\n</script>\n","<template>\n    <Portal :appendTo=\"appendTo\">\n        <transition name=\"p-anchored-overlay\" @enter=\"onEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n            <div v-if=\"visible\" :ref=\"containerRef\" v-focustrap role=\"dialog\" :aria-modal=\"visible\" @click=\"onOverlayClick\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n                <slot v-if=\"$slots.container\" name=\"container\" :closeCallback=\"hide\" :keydownCallback=\"(event) => onButtonKeydown(event)\"></slot>\n                <template v-else>\n                    <div :class=\"cx('content')\" @click=\"onContentClick\" @mousedown=\"onContentClick\" @keydown=\"onContentKeydown\" v-bind=\"ptm('content')\">\n                        <slot></slot>\n                    </div>\n                </template>\n            </div>\n        </transition>\n    </Portal>\n</template>\n\n<script>\nimport { $dt } from '@primeuix/styled';\nimport { absolutePosition, addClass, addStyle, focus, getOffset, isClient, isTouchDevice, setAttribute } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport FocusTrap from 'primevue/focustrap';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport BasePopover from './BasePopover.vue';\n\nexport default {\n    name: 'Popover',\n    extends: BasePopover,\n    inheritAttrs: false,\n    emits: ['show', 'hide'],\n    data() {\n        return {\n            visible: false\n        };\n    },\n    watch: {\n        dismissable: {\n            immediate: true,\n            handler(newValue) {\n                if (newValue) {\n                    this.bindOutsideClickListener();\n                } else {\n                    this.unbindOutsideClickListener();\n                }\n            }\n        }\n    },\n    selfClick: false,\n    target: null,\n    eventTarget: null,\n    outsideClickListener: null,\n    scrollHandler: null,\n    resizeListener: null,\n    container: null,\n    styleElement: null,\n    overlayEventListener: null,\n    documentKeydownListener: null,\n    contentResizeObserver: null,\n    beforeUnmount() {\n        if (this.dismissable) {\n            this.unbindOutsideClickListener();\n        }\n\n        if (this.scrollHandler) {\n            this.scrollHandler.destroy();\n            this.scrollHandler = null;\n        }\n\n        this.destroyStyle();\n        this.unbindResizeListener();\n        this.unbindContentResizeListener();\n        this.target = null;\n\n        if (this.container && this.autoZIndex) {\n            ZIndex.clear(this.container);\n        }\n\n        if (this.overlayEventListener) {\n            OverlayEventBus.off('overlay-click', this.overlayEventListener);\n            this.overlayEventListener = null;\n        }\n\n        this.container = null;\n    },\n    mounted() {\n        if (this.breakpoints) {\n            this.createStyle();\n        }\n    },\n    methods: {\n        toggle(event, target) {\n            if (this.visible) this.hide();\n            else this.show(event, target);\n        },\n        show(event, target) {\n            this.visible = true;\n            this.eventTarget = event.currentTarget;\n            this.target = target || event.currentTarget;\n        },\n        hide() {\n            this.visible = false;\n        },\n        onContentClick() {\n            this.selfClick = true;\n        },\n        onEnter(el) {\n            addStyle(el, { position: 'absolute', top: '0' });\n            this.alignOverlay();\n\n            if (this.dismissable) {\n                this.bindOutsideClickListener();\n            }\n\n            this.bindScrollListener();\n            this.bindResizeListener();\n\n            if (this.autoZIndex) {\n                ZIndex.set('overlay', el, this.baseZIndex || this.$primevue.config.zIndex.overlay);\n            }\n\n            this.overlayEventListener = (e) => {\n                if (this.container.contains(e.target)) {\n                    this.selfClick = true;\n                }\n            };\n\n            this.bindContentResizeListener();\n            this.focus();\n            OverlayEventBus.on('overlay-click', this.overlayEventListener);\n            this.$emit('show');\n\n            if (this.closeOnEscape) {\n                this.bindDocumentKeyDownListener();\n            }\n        },\n        onLeave() {\n            this.unbindOutsideClickListener();\n            this.unbindScrollListener();\n            this.unbindResizeListener();\n            this.unbindDocumentKeyDownListener();\n            this.unbindContentResizeListener();\n            OverlayEventBus.off('overlay-click', this.overlayEventListener);\n            this.overlayEventListener = null;\n            this.$emit('hide');\n        },\n        onAfterLeave(el) {\n            if (this.autoZIndex) {\n                ZIndex.clear(el);\n            }\n        },\n        alignOverlay() {\n            absolutePosition(this.container, this.target, false);\n\n            const containerOffset = getOffset(this.container);\n            const targetOffset = getOffset(this.target);\n            let arrowLeft = 0;\n\n            if (containerOffset.left < targetOffset.left) {\n                arrowLeft = targetOffset.left - containerOffset.left;\n            }\n\n            this.container.style.setProperty($dt('popover.arrow.left').name, `${arrowLeft}px`);\n\n            if (containerOffset.top < targetOffset.top) {\n                this.container.setAttribute('data-p-popover-flipped', 'true');\n                !this.isUnstyled && addClass(this.container, 'p-popover-flipped');\n            }\n        },\n        onContentKeydown(event) {\n            if (event.code === 'Escape' && this.closeOnEscape) {\n                this.hide();\n                focus(this.target);\n            }\n        },\n        onButtonKeydown(event) {\n            switch (event.code) {\n                case 'ArrowDown':\n                case 'ArrowUp':\n                case 'ArrowLeft':\n                case 'ArrowRight':\n                    event.preventDefault();\n\n                default:\n                    break;\n            }\n        },\n        focus() {\n            let focusTarget = this.container.querySelector('[autofocus]');\n\n            if (focusTarget) {\n                focusTarget.focus();\n            }\n        },\n        onKeyDown(event) {\n            if (event.code === 'Escape' && this.closeOnEscape) {\n                this.visible = false;\n            }\n        },\n        bindDocumentKeyDownListener() {\n            if (!this.documentKeydownListener) {\n                this.documentKeydownListener = this.onKeyDown.bind(this);\n                window.document.addEventListener('keydown', this.documentKeydownListener);\n            }\n        },\n        unbindDocumentKeyDownListener() {\n            if (this.documentKeydownListener) {\n                window.document.removeEventListener('keydown', this.documentKeydownListener);\n                this.documentKeydownListener = null;\n            }\n        },\n        bindOutsideClickListener() {\n            if (!this.outsideClickListener && isClient()) {\n                this.outsideClickListener = (event) => {\n                    if (this.visible && !this.selfClick && !this.isTargetClicked(event)) {\n                        this.visible = false;\n                    }\n\n                    this.selfClick = false;\n                };\n\n                document.addEventListener('click', this.outsideClickListener);\n            }\n        },\n        unbindOutsideClickListener() {\n            if (this.outsideClickListener) {\n                document.removeEventListener('click', this.outsideClickListener);\n                this.outsideClickListener = null;\n                this.selfClick = false;\n            }\n        },\n        bindScrollListener() {\n            if (!this.scrollHandler) {\n                this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {\n                    if (this.visible) {\n                        this.visible = false;\n                    }\n                });\n            }\n\n            this.scrollHandler.bindScrollListener();\n        },\n        unbindScrollListener() {\n            if (this.scrollHandler) {\n                this.scrollHandler.unbindScrollListener();\n            }\n        },\n        bindResizeListener() {\n            if (!this.resizeListener) {\n                this.resizeListener = () => {\n                    if (this.visible && !isTouchDevice()) {\n                        this.visible = false;\n                    }\n                };\n\n                window.addEventListener('resize', this.resizeListener);\n            }\n        },\n        unbindResizeListener() {\n            if (this.resizeListener) {\n                window.removeEventListener('resize', this.resizeListener);\n                this.resizeListener = null;\n            }\n        },\n        bindContentResizeListener() {\n            if (!this.contentResizeObserver) {\n                this.contentResizeObserver = new ResizeObserver(() => {\n                    if (this.visible) {\n                        this.alignOverlay();\n                    }\n                });\n\n                this.contentResizeObserver.observe(this.container);\n            }\n        },\n        unbindContentResizeListener() {\n            if (this.contentResizeObserver) {\n                this.contentResizeObserver.disconnect();\n                this.contentResizeObserver = null;\n            }\n        },\n        isTargetClicked(event) {\n            return this.eventTarget && (this.eventTarget === event.target || this.eventTarget.contains(event.target));\n        },\n        containerRef(el) {\n            this.container = el;\n        },\n        createStyle() {\n            if (!this.styleElement && !this.isUnstyled) {\n                this.styleElement = document.createElement('style');\n                this.styleElement.type = 'text/css';\n                setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n                document.head.appendChild(this.styleElement);\n\n                let innerHTML = '';\n\n                for (let breakpoint in this.breakpoints) {\n                    innerHTML += `\n                        @media screen and (max-width: ${breakpoint}) {\n                            .p-popover[${this.$attrSelector}] {\n                                width: ${this.breakpoints[breakpoint]} !important;\n                            }\n                        }\n                    `;\n                }\n\n                this.styleElement.innerHTML = innerHTML;\n            }\n        },\n        destroyStyle() {\n            if (this.styleElement) {\n                document.head.removeChild(this.styleElement);\n                this.styleElement = null;\n            }\n        },\n        onOverlayClick(event) {\n            OverlayEventBus.emit('overlay-click', {\n                originalEvent: event,\n                target: this.target\n            });\n        }\n    },\n    directives: {\n        focustrap: FocusTrap,\n        ripple: Ripple\n    },\n    components: {\n        Portal\n    }\n};\n</script>\n"],"names":["name","BaseComponent","props","dismissable","type","Boolean","appendTo","String","Object","baseZIndex","Number","autoZIndex","breakpoints","closeOnEscape","style","PopoverStyle","provide","$pcPopover","$parentInstance","BasePopover","inheritAttrs","emits","data","visible","watch","immediate","handler","newValue","bindOutsideClickListener","unbindOutsideClickListener","selfClick","target","eventTarget","outsideClickListener","scrollHandler","resizeListener","container","styleElement","overlayEventListener","documentKeydownListener","contentResizeObserver","beforeUnmount","destroy","destroyStyle","unbindResizeListener","unbindContentResizeListener","ZIndex","clear","OverlayEventBus","off","mounted","createStyle","methods","toggle","event","hide","show","currentTarget","onContentClick","onEnter","el","_this","addStyle","position","top","alignOverlay","bindScrollListener","bindResizeListener","set","$primevue","config","zIndex","overlay","e","contains","bindContentResizeListener","focus","on","$emit","bindDocumentKeyDownListener","onLeave","unbindScrollListener","unbindDocumentKeyDownListener","onAfterLeave","absolutePosition","containerOffset","getOffset","targetOffset","arrowLeft","left","setProperty","$dt","concat","setAttribute","isUnstyled","addClass","onContentKeydown","code","onButtonKeydown","preventDefault","focusTarget","querySelector","onKeyDown","bind","window","document","addEventListener","removeEventListener","_this2","isClient","isTargetClicked","_this3","ConnectedOverlayScrollHandler","_this4","isTouchDevice","_this5","ResizeObserver","observe","disconnect","containerRef","_this$$primevue","createElement","csp","nonce","head","appendChild","innerHTML","breakpoint","$attrSelector","removeChild","onOverlayClick","emit","originalEvent","directives","focustrap","FocusTrap","ripple","Ripple","components","Portal","_createBlock","_component_Portal","_ctx","_createVNode","_Transition","_mergeProps","$options","ptm","$data","_withDirectives","_openBlock","_createElementBlock","ref","role","onClick","apply","arguments","cx","ptmi","$slots","_renderSlot","closeCallback","keydownCallback","onMousedown","onKeydown"],"mappings":";;;;;;;;;;;;AAIA,eAAe;AACXA,EAAAA,IAAI,EAAE,aAAa;AACnB,EAAA,SAAA,EAASC,aAAa;AACtBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,WAAW,EAAE;AACTC,MAAAA,IAAI,EAAEC,OAAO;MACb,SAAA,EAAS;KACZ;AACDC,IAAAA,QAAQ,EAAE;AACNF,MAAAA,IAAI,EAAE,CAACG,MAAM,EAAEC,MAAM,CAAC;MACtB,SAAA,EAAS;KACZ;AACDC,IAAAA,UAAU,EAAE;AACRL,MAAAA,IAAI,EAAEM,MAAM;MACZ,SAAA,EAAS;KACZ;AACDC,IAAAA,UAAU,EAAE;AACRP,MAAAA,IAAI,EAAEC,OAAO;MACb,SAAA,EAAS;KACZ;AACDO,IAAAA,WAAW,EAAE;AACTR,MAAAA,IAAI,EAAEI,MAAM;MACZ,SAAA,EAAS;KACZ;AACDK,IAAAA,aAAa,EAAE;AACXT,MAAAA,IAAI,EAAEC,OAAO;MACb,SAAA,EAAS;AACb;GACH;AACDS,EAAAA,KAAK,EAAEC,YAAY;EACnBC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;AACHC,MAAAA,UAAU,EAAE,IAAI;AAChBC,MAAAA,eAAe,EAAE;KACpB;AACL,EAAA;AACJ,CAAC;;ACdD,aAAe;AACXlB,EAAAA,IAAI,EAAE,SAAS;AACf,EAAA,SAAA,EAASmB,QAAW;AACpBC,EAAAA,YAAY,EAAE,KAAK;AACnBC,EAAAA,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EACvBC,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHC,MAAAA,OAAO,EAAE;KACZ;EACL,CAAC;AACDC,EAAAA,KAAK,EAAE;AACHrB,IAAAA,WAAW,EAAE;AACTsB,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACC,QAAQ,EAAE;AACd,QAAA,IAAIA,QAAQ,EAAE;UACV,IAAI,CAACC,wBAAwB,EAAE;AACnC,QAAA,CAAA,MAAO;UACH,IAAI,CAACC,0BAA0B,EAAE;AACrC,QAAA;AACJ,MAAA;AACJ;GACH;AACDC,EAAAA,SAAS,EAAE,KAAK;AAChBC,EAAAA,MAAM,EAAE,IAAI;AACZC,EAAAA,WAAW,EAAE,IAAI;AACjBC,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,cAAc,EAAE,IAAI;AACpBC,EAAAA,SAAS,EAAE,IAAI;AACfC,EAAAA,YAAY,EAAE,IAAI;AAClBC,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,uBAAuB,EAAE,IAAI;AAC7BC,EAAAA,qBAAqB,EAAE,IAAI;EAC3BC,aAAa,EAAA,SAAbA,aAAaA,GAAG;IACZ,IAAI,IAAI,CAACtC,WAAW,EAAE;MAClB,IAAI,CAAC0B,0BAA0B,EAAE;AACrC,IAAA;IAEA,IAAI,IAAI,CAACK,aAAa,EAAE;AACpB,MAAA,IAAI,CAACA,aAAa,CAACQ,OAAO,EAAE;MAC5B,IAAI,CAACR,gBAAgB,IAAI;AAC7B,IAAA;IAEA,IAAI,CAACS,YAAY,EAAE;IACnB,IAAI,CAACC,oBAAoB,EAAE;IAC3B,IAAI,CAACC,2BAA2B,EAAE;IAClC,IAAI,CAACd,MAAK,GAAI,IAAI;AAElB,IAAA,IAAI,IAAI,CAACK,SAAQ,IAAK,IAAI,CAACzB,UAAU,EAAE;AACnCmC,MAAAA,MAAM,CAACC,KAAK,CAAC,IAAI,CAACX,SAAS,CAAC;AAChC,IAAA;IAEA,IAAI,IAAI,CAACE,oBAAoB,EAAE;MAC3BU,eAAe,CAACC,GAAG,CAAC,eAAe,EAAE,IAAI,CAACX,oBAAoB,CAAC;MAC/D,IAAI,CAACA,oBAAmB,GAAI,IAAI;AACpC,IAAA;IAEA,IAAI,CAACF,SAAQ,GAAI,IAAI;EACzB,CAAC;EACDc,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,IAAI,IAAI,CAACtC,WAAW,EAAE;MAClB,IAAI,CAACuC,WAAW,EAAE;AACtB,IAAA;EACJ,CAAC;AACDC,EAAAA,OAAO,EAAE;AACLC,IAAAA,MAAM,WAANA,MAAMA,CAACC,KAAK,EAAEvB,MAAM,EAAE;AAClB,MAAA,IAAI,IAAI,CAACR,OAAO,EAAE,IAAI,CAACgC,IAAI,EAAE,CAAA,KACxB,IAAI,CAACC,IAAI,CAACF,KAAK,EAAEvB,MAAM,CAAC;IACjC,CAAC;AACDyB,IAAAA,IAAI,WAAJA,IAAIA,CAACF,KAAK,EAAEvB,MAAM,EAAE;MAChB,IAAI,CAACR,OAAM,GAAI,IAAI;AACnB,MAAA,IAAI,CAACS,cAAcsB,KAAK,CAACG,aAAa;AACtC,MAAA,IAAI,CAAC1B,MAAK,GAAIA,MAAK,IAAKuB,KAAK,CAACG,aAAa;IAC/C,CAAC;IACDF,IAAI,EAAA,SAAJA,IAAIA,GAAG;MACH,IAAI,CAAChC,UAAU,KAAK;IACxB,CAAC;IACDmC,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,IAAI,CAAC5B,SAAQ,GAAI,IAAI;IACzB,CAAC;AACD6B,IAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACC,EAAE,EAAE;AAAA,MAAA,IAAAC,KAAA,GAAA,IAAA;MACRC,QAAQ,CAACF,EAAE,EAAE;AAAEG,QAAAA,QAAQ,EAAE,UAAU;AAAEC,QAAAA,GAAG,EAAE;AAAI,OAAC,CAAC;MAChD,IAAI,CAACC,YAAY,EAAE;MAEnB,IAAI,IAAI,CAAC9D,WAAW,EAAE;QAClB,IAAI,CAACyB,wBAAwB,EAAE;AACnC,MAAA;MAEA,IAAI,CAACsC,kBAAkB,EAAE;MACzB,IAAI,CAACC,kBAAkB,EAAE;MAEzB,IAAI,IAAI,CAACxD,UAAU,EAAE;QACjBmC,MAAM,CAACsB,GAAG,CAAC,SAAS,EAAER,EAAE,EAAE,IAAI,CAACnD,UAAS,IAAK,IAAI,CAAC4D,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,OAAO,CAAC;AACtF,MAAA;AAEA,MAAA,IAAI,CAAClC,oBAAmB,GAAI,UAACmC,CAAC,EAAK;QAC/B,IAAIZ,KAAI,CAACzB,SAAS,CAACsC,QAAQ,CAACD,CAAC,CAAC1C,MAAM,CAAC,EAAE;UACnC8B,KAAI,CAAC/B,SAAQ,GAAI,IAAI;AACzB,QAAA;MACJ,CAAC;MAED,IAAI,CAAC6C,yBAAyB,EAAE;MAChC,IAAI,CAACC,KAAK,EAAE;MACZ5B,eAAe,CAAC6B,EAAE,CAAC,eAAe,EAAE,IAAI,CAACvC,oBAAoB,CAAC;AAC9D,MAAA,IAAI,CAACwC,KAAK,CAAC,MAAM,CAAC;MAElB,IAAI,IAAI,CAACjE,aAAa,EAAE;QACpB,IAAI,CAACkE,2BAA2B,EAAE;AACtC,MAAA;IACJ,CAAC;IACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;MACN,IAAI,CAACnD,0BAA0B,EAAE;MACjC,IAAI,CAACoD,oBAAoB,EAAE;MAC3B,IAAI,CAACrC,oBAAoB,EAAE;MAC3B,IAAI,CAACsC,6BAA6B,EAAE;MACpC,IAAI,CAACrC,2BAA2B,EAAE;MAClCG,eAAe,CAACC,GAAG,CAAC,eAAe,EAAE,IAAI,CAACX,oBAAoB,CAAC;MAC/D,IAAI,CAACA,oBAAmB,GAAI,IAAI;AAChC,MAAA,IAAI,CAACwC,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;AACDK,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAACvB,EAAE,EAAE;MACb,IAAI,IAAI,CAACjD,UAAU,EAAE;AACjBmC,QAAAA,MAAM,CAACC,KAAK,CAACa,EAAE,CAAC;AACpB,MAAA;IACJ,CAAC;IACDK,YAAY,EAAA,SAAZA,YAAYA,GAAG;MACXmB,gBAAgB,CAAC,IAAI,CAAChD,SAAS,EAAE,IAAI,CAACL,MAAM,EAAE,KAAK,CAAC;AAEpD,MAAA,IAAMsD,eAAc,GAAIC,SAAS,CAAC,IAAI,CAAClD,SAAS,CAAC;AACjD,MAAA,IAAMmD,YAAW,GAAID,SAAS,CAAC,IAAI,CAACvD,MAAM,CAAC;MAC3C,IAAIyD,SAAQ,GAAI,CAAC;AAEjB,MAAA,IAAIH,eAAe,CAACI,IAAG,GAAIF,YAAY,CAACE,IAAI,EAAE;AAC1CD,QAAAA,YAAYD,YAAY,CAACE,IAAG,GAAIJ,eAAe,CAACI,IAAI;AACxD,MAAA;AAEA,MAAA,IAAI,CAACrD,SAAS,CAACtB,KAAK,CAAC4E,WAAW,CAACC,GAAG,CAAC,oBAAoB,CAAC,CAAC3F,IAAI,EAAA,EAAA,CAAA4F,MAAA,CAAKJ,SAAS,OAAI,CAAC;AAElF,MAAA,IAAIH,eAAe,CAACrB,GAAE,GAAIuB,YAAY,CAACvB,GAAG,EAAE;QACxC,IAAI,CAAC5B,SAAS,CAACyD,YAAY,CAAC,wBAAwB,EAAE,MAAM,CAAC;QAC7D,CAAC,IAAI,CAACC,UAAS,IAAKC,QAAQ,CAAC,IAAI,CAAC3D,SAAS,EAAE,mBAAmB,CAAC;AACrE,MAAA;IACJ,CAAC;AACD4D,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAAC1C,KAAK,EAAE;MACpB,IAAIA,KAAK,CAAC2C,IAAG,KAAM,QAAO,IAAK,IAAI,CAACpF,aAAa,EAAE;QAC/C,IAAI,CAAC0C,IAAI,EAAE;AACXqB,QAAAA,KAAK,CAAC,IAAI,CAAC7C,MAAM,CAAC;AACtB,MAAA;IACJ,CAAC;AACDmE,IAAAA,eAAe,EAAA,SAAfA,eAAeA,CAAC5C,KAAK,EAAE;MACnB,QAAQA,KAAK,CAAC2C,IAAI;AACd,QAAA,KAAK,WAAW;AAChB,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,WAAW;AAChB,QAAA,KAAK,YAAY;UACb3C,KAAK,CAAC6C,cAAc,EAAE;AAI9B;IACJ,CAAC;IACDvB,KAAK,EAAA,SAALA,KAAKA,GAAG;MACJ,IAAIwB,WAAU,GAAI,IAAI,CAAChE,SAAS,CAACiE,aAAa,CAAC,aAAa,CAAC;AAE7D,MAAA,IAAID,WAAW,EAAE;QACbA,WAAW,CAACxB,KAAK,EAAE;AACvB,MAAA;IACJ,CAAC;AACD0B,IAAAA,SAAS,EAAA,SAATA,SAASA,CAAChD,KAAK,EAAE;MACb,IAAIA,KAAK,CAAC2C,IAAG,KAAM,QAAO,IAAK,IAAI,CAACpF,aAAa,EAAE;QAC/C,IAAI,CAACU,UAAU,KAAK;AACxB,MAAA;IACJ,CAAC;IACDwD,2BAA2B,EAAA,SAA3BA,2BAA2BA,GAAG;AAC1B,MAAA,IAAI,CAAC,IAAI,CAACxC,uBAAuB,EAAE;QAC/B,IAAI,CAACA,0BAA0B,IAAI,CAAC+D,SAAS,CAACC,IAAI,CAAC,IAAI,CAAC;QACxDC,MAAM,CAACC,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAACnE,uBAAuB,CAAC;AAC7E,MAAA;IACJ,CAAC;IACD2C,6BAA6B,EAAA,SAA7BA,6BAA6BA,GAAG;MAC5B,IAAI,IAAI,CAAC3C,uBAAuB,EAAE;QAC9BiE,MAAM,CAACC,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAACpE,uBAAuB,CAAC;QAC5E,IAAI,CAACA,uBAAsB,GAAI,IAAI;AACvC,MAAA;IACJ,CAAC;IACDX,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;AAAA,MAAA,IAAAgF,MAAA,GAAA,IAAA;MACvB,IAAI,CAAC,IAAI,CAAC3E,oBAAmB,IAAK4E,QAAQ,EAAE,EAAE;AAC1C,QAAA,IAAI,CAAC5E,oBAAmB,GAAI,UAACqB,KAAK,EAAK;AACnC,UAAA,IAAIsD,MAAI,CAACrF,OAAM,IAAK,CAACqF,MAAI,CAAC9E,SAAQ,IAAK,CAAC8E,MAAI,CAACE,eAAe,CAACxD,KAAK,CAAC,EAAE;YACjEsD,MAAI,CAACrF,UAAU,KAAK;AACxB,UAAA;UAEAqF,MAAI,CAAC9E,SAAQ,GAAI,KAAK;QAC1B,CAAC;QAED2E,QAAQ,CAACC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAACzE,oBAAoB,CAAC;AACjE,MAAA;IACJ,CAAC;IACDJ,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAI,IAAI,CAACI,oBAAoB,EAAE;QAC3BwE,QAAQ,CAACE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC1E,oBAAoB,CAAC;QAChE,IAAI,CAACA,oBAAmB,GAAI,IAAI;QAChC,IAAI,CAACH,SAAQ,GAAI,KAAK;AAC1B,MAAA;IACJ,CAAC;IACDoC,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAA6C,MAAA,GAAA,IAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAAC7E,aAAa,EAAE;QACrB,IAAI,CAACA,aAAY,GAAI,IAAI8E,6BAA6B,CAAC,IAAI,CAACjF,MAAM,EAAE,YAAM;UACtE,IAAIgF,MAAI,CAACxF,OAAO,EAAE;YACdwF,MAAI,CAACxF,UAAU,KAAK;AACxB,UAAA;AACJ,QAAA,CAAC,CAAC;AACN,MAAA;AAEA,MAAA,IAAI,CAACW,aAAa,CAACgC,kBAAkB,EAAE;IAC3C,CAAC;IACDe,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAAC/C,aAAa,EAAE;AACpB,QAAA,IAAI,CAACA,aAAa,CAAC+C,oBAAoB,EAAE;AAC7C,MAAA;IACJ,CAAC;IACDd,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAA8C,MAAA,GAAA,IAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAAC9E,cAAc,EAAE;QACtB,IAAI,CAACA,iBAAiB,YAAM;UACxB,IAAI8E,MAAI,CAAC1F,WAAW,CAAC2F,aAAa,EAAE,EAAE;YAClCD,MAAI,CAAC1F,UAAU,KAAK;AACxB,UAAA;QACJ,CAAC;QAEDiF,MAAM,CAACE,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACvE,cAAc,CAAC;AAC1D,MAAA;IACJ,CAAC;IACDS,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACT,cAAc,EAAE;QACrBqE,MAAM,CAACG,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAACxE,cAAc,CAAC;QACzD,IAAI,CAACA,iBAAiB,IAAI;AAC9B,MAAA;IACJ,CAAC;IACDwC,yBAAyB,EAAA,SAAzBA,yBAAyBA,GAAG;AAAA,MAAA,IAAAwC,MAAA,GAAA,IAAA;AACxB,MAAA,IAAI,CAAC,IAAI,CAAC3E,qBAAqB,EAAE;AAC7B,QAAA,IAAI,CAACA,qBAAoB,GAAI,IAAI4E,cAAc,CAAC,YAAM;UAClD,IAAID,MAAI,CAAC5F,OAAO,EAAE;YACd4F,MAAI,CAAClD,YAAY,EAAE;AACvB,UAAA;AACJ,QAAA,CAAC,CAAC;QAEF,IAAI,CAACzB,qBAAqB,CAAC6E,OAAO,CAAC,IAAI,CAACjF,SAAS,CAAC;AACtD,MAAA;IACJ,CAAC;IACDS,2BAA2B,EAAA,SAA3BA,2BAA2BA,GAAG;MAC1B,IAAI,IAAI,CAACL,qBAAqB,EAAE;AAC5B,QAAA,IAAI,CAACA,qBAAqB,CAAC8E,UAAU,EAAE;QACvC,IAAI,CAAC9E,qBAAoB,GAAI,IAAI;AACrC,MAAA;IACJ,CAAC;AACDsE,IAAAA,eAAe,EAAA,SAAfA,eAAeA,CAACxD,KAAK,EAAE;MACnB,OAAO,IAAI,CAACtB,WAAU,KAAM,IAAI,CAACA,WAAU,KAAMsB,KAAK,CAACvB,UAAU,IAAI,CAACC,WAAW,CAAC0C,QAAQ,CAACpB,KAAK,CAACvB,MAAM,CAAC,CAAC;IAC7G,CAAC;AACDwF,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAAC3D,EAAE,EAAE;MACb,IAAI,CAACxB,SAAQ,GAAIwB,EAAE;IACvB,CAAC;IACDT,WAAW,EAAA,SAAXA,WAAWA,GAAG;MACV,IAAI,CAAC,IAAI,CAACd,YAAW,IAAK,CAAC,IAAI,CAACyD,UAAU,EAAE;AAAA,QAAA,IAAA0B,eAAA;QACxC,IAAI,CAACnF,YAAW,GAAIoE,QAAQ,CAACgB,aAAa,CAAC,OAAO,CAAC;AACnD,QAAA,IAAI,CAACpF,YAAY,CAACjC,IAAG,GAAI,UAAU;AACnCyF,QAAAA,YAAY,CAAC,IAAI,CAACxD,YAAY,EAAE,OAAO,EAAA,CAAAmF,eAAA,GAAE,IAAI,CAACnD,SAAS,MAAA,IAAA,IAAAmD,eAAA,gBAAAA,eAAA,GAAdA,eAAA,CAAgBlD,MAAM,MAAA,IAAA,IAAAkD,eAAA,KAAA,MAAA,IAAA,CAAAA,eAAA,GAAtBA,eAAA,CAAwBE,GAAG,cAAAF,eAAA,KAAA,MAAA,GAAA,MAAA,GAA3BA,eAAA,CAA6BG,KAAK,CAAC;QAC5ElB,QAAQ,CAACmB,IAAI,CAACC,WAAW,CAAC,IAAI,CAACxF,YAAY,CAAC;QAE5C,IAAIyF,SAAQ,GAAI,EAAE;AAElB,QAAA,KAAK,IAAIC,UAAS,IAAK,IAAI,CAACnH,WAAW,EAAE;AACrCkH,UAAAA,SAAQ,+DAAAlC,MAAA,CAC4BmC,UAAU,EAAA,8CAAA,CAAA,CAAAnC,MAAA,CACzB,IAAI,CAACoC,aAAa,EAAA,8CAAA,CAAA,CAAApC,MAAA,CAClB,IAAI,CAAChF,WAAW,CAACmH,UAAU,CAAC,EAAA,8FAAA,CAGhD;AACL,QAAA;AAEA,QAAA,IAAI,CAAC1F,YAAY,CAACyF,SAAQ,GAAIA,SAAS;AAC3C,MAAA;IACJ,CAAC;IACDnF,YAAY,EAAA,SAAZA,YAAYA,GAAG;MACX,IAAI,IAAI,CAACN,YAAY,EAAE;QACnBoE,QAAQ,CAACmB,IAAI,CAACK,WAAW,CAAC,IAAI,CAAC5F,YAAY,CAAC;QAC5C,IAAI,CAACA,YAAW,GAAI,IAAI;AAC5B,MAAA;IACJ,CAAC;AACD6F,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAC5E,KAAK,EAAE;AAClBN,MAAAA,eAAe,CAACmF,IAAI,CAAC,eAAe,EAAE;AAClCC,QAAAA,aAAa,EAAE9E,KAAK;QACpBvB,MAAM,EAAE,IAAI,CAACA;AACjB,OAAC,CAAC;AACN,IAAA;GACH;AACDsG,EAAAA,UAAU,EAAE;AACRC,IAAAA,SAAS,EAAEC,SAAS;AACpBC,IAAAA,MAAM,EAAEC;GACX;AACDC,EAAAA,UAAU,EAAE;AACRC,IAAAA,MAAK,EAALA;AACJ;AACJ,CAAC;;;;;;sBCxUGC,WAAA,CAWQC,iBAAA,EAAA;IAXCvI,QAAQ,EAAEwI,IAAA,CAAAxI;AAAQ,GAAA,EAAA;uBACvB,YAAA;AAAA,MAAA,OASY,CATZyI,WAAA,CASYC,YATZC,UAAA,CASY;AATAjJ,QAAAA,IAAI,EAAC,oBAAmB;QAAG2D,OAAK,EAAEuF,QAAA,CAAAvF,OAAO;QAAGqB,OAAK,EAAEkE,QAAA,CAAAlE,OAAO;QAAGG,YAAW,EAAE+D,QAAA,CAAA/D;SAAsB2D,IAAA,CAAAK,GAAG,CAAA,YAAA,CAAA,CAAA,EAAA;2BAC3G,YAAA;AAAA,UAAA,OAOK,CAPMC,KAAA,CAAA7H,OAAO,GAAlB8H,cAAA,EAAAC,SAAA,EAAA,EAAAC,kBAAA,CAOK,OAPLN,UAAA,CAOK;;YAPgBO,GAAG,EAAEN,QAAA,CAAA3B,YAAY;AAAckC,YAAAA,IAAI,EAAC,QAAO;YAAG,YAAU,EAAEL,KAAA,CAAA7H,OAAO;YAAGmI,OAAK;qBAAER,QAAA,CAAAhB,cAAA,IAAAgB,QAAA,CAAAhB,cAAA,CAAAyB,KAAA,CAAAT,QAAA,EAAAU,SAAA,CAAc;AAAA,YAAA,CAAA,CAAA;AAAG,YAAA,OAAA,EAAOd,IAAA,CAAAe,EAAE,CAAA,MAAA;aAAkBf,IAAA,CAAAgB,IAAI,CAAA,MAAA,CAAA,CAAA,EAAA,CAChIhB,IAAA,CAAAiB,MAAM,CAAC3H,SAAS,GAA5B4H,UAAA,CAAgIlB,IAAA,CAAAiB,MAAA,EAAA,WAAA,EAAA;;YAAhFE,aAAa,EAAEf,QAAA,CAAA3F,IAAI;AAAG2G,YAAAA,eAAe,EAAA,SAAfA,eAAeA,CAAG5G,KAAK,EAAA;AAAA,cAAA,OAAK4F,QAAA,CAAAhD,eAAe,CAAC5C,KAAK,CAAA;AAAA,YAAA;gBAEnHgG,SAAA,EAAA,EAAAC,kBAAA,CAEK,OAFLN,UAAA,CAEK;;AAFC,YAAA,OAAA,EAAOH,IAAA,CAAAe,EAAE,CAAA,SAAA,CAAA;YAAcH,OAAK;qBAAER,QAAA,CAAAxF,cAAA,IAAAwF,QAAA,CAAAxF,cAAA,CAAAiG,KAAA,CAAAT,QAAA,EAAAU,SAAA,CAAc;AAAA,YAAA,CAAA,CAAA;YAAGO,WAAS;qBAAEjB,QAAA,CAAAxF,cAAA,IAAAwF,QAAA,CAAAxF,cAAA,CAAAiG,KAAA,CAAAT,QAAA,EAAAU,SAAA,CAAc;AAAA,YAAA,CAAA,CAAA;YAAGQ,SAAO;qBAAElB,QAAA,CAAAlD,gBAAA,IAAAkD,QAAA,CAAAlD,gBAAA,CAAA2D,KAAA,CAAAT,QAAA,EAAAU,SAAA,CAAgB;YAAA,CAAA;aAAUd,IAAA,CAAAK,GAAG,CAAA,SAAA,CAAA,CAAA,EAAA,CACnHa,UAAA,CAAYlB,IAAA,CAAAiB,MAAA,EAAA,SAAA,CAAA;;;;;;;;;;;;;"}