{"version":3,"sources":["webpack:///./node_modules/quasar/src/components/item/QItemLabel.js","webpack:///./node_modules/quasar/src/components/tooltip/QTooltip.js","webpack:///./node_modules/quasar/src/components/page/QPageContainer.js","webpack:///./src/components/LeftDrawer.vue","webpack:///./src/components/LeftDrawer.vue?6c48","webpack:///./node_modules/quasar/src/components/drawer/QDrawer.js","webpack:///./src/components/LeftDrawer.vue?6a91","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/core-js/modules/es.string.anchor.js","webpack:///./node_modules/quasar/src/components/item/QList.js","webpack:///./node_modules/quasar/src/utils/private/position-engine.js","webpack:///./node_modules/quasar/src/composables/private/use-can-render.js","webpack:///./node_modules/quasar/src/components/resize-observer/QResizeObserver.js","webpack:///./node_modules/quasar/src/components/item/QItemSection.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./src/components/TopNav.vue?4c61","webpack:///./node_modules/quasar/src/components/layout/QLayout.js","webpack:///./src/components/TopNav.vue","webpack:///./src/components/LoginLogout.vue","webpack:///./src/components/LoginLogout.vue?55c4","webpack:///./src/components/LoginLogout.vue?641c","webpack:///./src/components/TopNav.vue?cafd","webpack:///./node_modules/quasar/src/components/header/QHeader.js","webpack:///./node_modules/quasar/src/components/toolbar/QToolbar.js","webpack:///./node_modules/quasar/src/components/toolbar/QToolbarTitle.js","webpack:///./node_modules/quasar/src/components/space/QSpace.js","webpack:///./src/components/TopNav.vue?57aa","webpack:///./node_modules/quasar/src/composables/private/use-scroll-target.js","webpack:///./node_modules/quasar/src/composables/private/use-anchor.js","webpack:///./node_modules/quasar/src/components/item/QItem.js","webpack:///./node_modules/quasar/src/directives/TouchPan.js","webpack:///./src/assets/penlink-logo-white.png","webpack:///./node_modules/quasar/src/utils/format.js","webpack:///./node_modules/quasar/src/utils/private/click-outside.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./src/components/LeftDrawer.vue?e433","webpack:///./node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js","webpack:///./src/components/TopNav.vue?6d13","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/quasar/src/components/chip/QChip.js","webpack:///./node_modules/quasar/src/composables/use-quasar.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/quasar/src/components/scroll-observer/QScrollObserver.js","webpack:///./node_modules/quasar/src/utils/private/selection.js","webpack:///./src/components/LeftDrawer.vue?0dbe"],"names":["defineComponent","name","props","overline","Boolean","caption","header","lines","Number","String","setup","slots","parsedLines","computed","parseInt","classes","value","style","overflow","display","h","class","hSlot","default","inheritAttrs","useAnchorProps","useModelToggleProps","useTransitionProps","maxHeight","type","maxWidth","transitionShow","transitionHide","anchor","validator","validatePosition","self","offset","Array","validateOffset","scrollTarget","delay","hideDelay","emits","useModelToggleEmits","unwatchPosition","observer","emit","attrs","vm","getCurrentInstance","$q","proxy","innerRef","ref","showing","anchorOrigin","parsePosition","lang","rtl","selfOrigin","hideOnRouteChange","persistent","useTick","registerTick","removeTick","prepareTick","useTimeout","registerTimeout","removeTimeout","useTransition","transition","transitionStyle","useScrollTarget","configureScrollTarget","localScrollTarget","changeScrollEvent","unconfigureScrollTarget","useAnchor","configureAnchorEl","anchorEl","canShow","anchorEvents","useModelToggle","handleShow","handleHide","processOnMount","show","hide","Object","assign","delayShow","delayHide","usePortal","renderPortalContent","showPortal","hidePortal","renderPortal","platform","is","mobile","clickOutsideProps","onClickOutside","e","target","classList","contains","stopAndPrevent","hasClickOutside","modelValue","watch","val","fn","addClickOutside","removeClickOutside","onBeforeUnmount","evt","MutationObserver","updatePosition","observe","attributes","childList","characterData","subtree","screen","width","height","transitionDuration","anchorCleanup","disconnect","cleanEvt","el","setPosition","clearSelection","document","body","add","getTouchTarget","evts","map","addEvt","setTimeout","remove","noParentEvent","getScrollTarget","getTooltipContent","role","Transition","appear","_","$layout","inject","layoutKey","console","error","provide","pageContainerKey","css","space","paddingTop","size","right","footer","paddingBottom","left","src","drawerState","side","bordered","id","to","SubscriptionRoutes","list","avatar","ImageCategoryRoutes","ApiTestRoutes","imageAnalysis","leftDrawerStore","get","state","open","set","setLeftDrawerState","duration","useDarkProps","v","includes","mini","miniToOverlay","miniWidth","breakpoint","showIfAbove","behavior","elevated","overlay","noSwipeOpen","noSwipeClose","noSwipeBackdrop","lastDesktopState","timerMini","layoutTotalWidthWatcher","isDark","useDark","usePreventScroll","preventBodyScroll","belowBreakpoint","totalWidth","isMini","onScreenOverlay","noEvent","addToHistory","animate","applyPosition","otherInstance","instances","otherSide","applyBackdrop","isContainer","setScrollable","removeFromHistory","stateDirection","cleanup","useHistory","instance","rightSide","flagBackdropBg","flagPanning","flagMiniAnimate","flagContentPosition","fixed","view","indexOf","ios","onLayout","backdropClass","backdropStyle","backgroundColor","headerSlot","rows","top","footerSlot","bottom","aboveStyle","transform","contentClass","openDirective","dir","TouchPan","onOpenPan","contentCloseDirective","onClosePan","backdropCloseDirective","position","nextTick","Math","abs","scrollbarWidth","updateBelowBreakpoint","updateLocal","x","action","animateMini","clearTimeout","between","distance","isFinal","opened","min","max","isFirst","direction","updateLayout","prop","update","updateSizeOnLayout","newSide","oldSide","onMounted","child","push","withDirectives","key","hDir","onClick","content","render","QDrawer","QList","QItem","QItemSection","QIcon","toInteger","requireObjectCoercible","module","exports","count","str","this","result","n","Infinity","RangeError","$","createHTML","forcedStringHTMLMethod","proto","forced","dense","separator","padding","vpLeft","vpTop","pos","parts","split","length","horizontalPos","vertical","horizontal","getAnchorProps","getBoundingClientRect","middle","center","getTargetProps","offsetHeight","offsetWidth","cfg","client","window","visualViewport","offsetLeft","offsetTop","setProperty","anchorProps","scrollLeft","scrollTop","absoluteOffset","cover","anchorTop","anchorLeft","elStyle","visibility","fit","minWidth","minHeight","targetProps","applyBoundaries","currentHeight","currentWidth","margin","getScrollbarWidth","innerHeight","innerWidth","clientWidth","anchorY","anchorX","forEach","canRender","isRuntimeSsrPreHydration","hasObserver","ResizeObserver","resizeProps","url","debounce","timer","targetEl","trigger","now","onResize","$el","parentNode","unobserve","noop","curDocView","useCanRender","removeEventListener","listenOpts","passive","onObjLoad","contentDocument","defaultView","addEventListener","tabindex","data","onLoad","thumbnail","noWrap","classof","TypeError","container","test","toLowerCase","onScroll","Function","onScrollHeight","rootRef","scroll","inflectionPoint","containerHeight","targetStyle","targetChildStyle","onPageScroll","qScrollPrevented","info","directionChanged","delta","onPageResize","newHeight","newWidth","resized","updateScrollbarWidth","onContainerResize","reactive","part","hMergeSlot","QScrollObserver","QResizeObserver","layout","flat","round","toggleLeftDrawer","aria-label","icon","inset","Settings","appVersion","clickable","signOut","loginStore","QItemLabel","components","LoginLogout","reveal","revealOffset","heightHint","revealed","hidden","revealOnFocus","onFocusin","hUniqueSlot","shrink","QHeader","QToolbar","QBtn","QToolbarTitle","QSpace","QSeparator","scrollFn","fnProp","fnHandler","noParentEventWatcher","contextMenu","touchTimer","avoidEmit","touches","unconfigureAnchorEl","setAnchorEl","pickAnchorEl","querySelector","err","toggle","toggleKey","isKeyCode","contextClick","prevent","mobilePrevent","mobileTouch","mobileCleanup","context","useRouterLinkProps","tag","active","insetLevel","focused","manualFocus","useRouterLink","hasLink","linkProps","linkClass","linkTag","navigateToLink","blurTargetRef","isActionable","isClickable","disable","activeClass","qKeyEvent","activeElement","focus","onKeyup","MouseEvent","dispatchEvent","getContent","unshift","getChanges","ctx","distX","event","distY","y","absX","absY","up","down","synthetic","lastDir","payload","touch","mouse","Date","time","lastX","lastY","uid","__QUASAR_SSR_SERVER__","beforeMount","modifiers","has","handler","getModifierDirections","mouseStart","shouldStart","leftClick","start","touchStart","mouseEvent","firefox","preventDraggable","lastEvt","stop","all","mouseAllDir","clone","TouchEvent","defaultPrevented","cancelBubble","qClonedBy","concat","qClickOutside","initialEvent","detected","move","isMouseEvt","handleEvent","preserveCursor","documentElement","cursor","styleCleanup","withDelayedFn","end","abort","__qtouchpan","mouseCapture","capture","updated","oldValue","beforeUnmount","units","humanStorageSize","bytes","u","toFixed","normalizeToInterval","index","notPassiveCapture","registeredList","hasModalsAbove","node","nextElementSibling","globalHandler","nodeType","i","getEl","findIndex","splice","quot","string","attribute","S","p1","replace","component","items","targetComponent","__vccOpts","fails","METHOD_NAME","defaultSizes","xs","sm","md","lg","xl","useSizeProps","iconRight","iconRemove","iconSelected","label","color","textColor","selected","square","outline","removable","ripple","sizeStyle","useSize","hasLeftIcon","leftIcon","iconSet","chip","removeIcon","text","keyCode","onRemove","hMergeSlotSafely","Ripple","useQuasar","quasarKey","thisNumberValue","repeat","nativeToFixed","floor","pow","acc","log","x2","multiply","c","c2","divide","dataToString","s","t","call","FORCED","fractionDigits","z","j","k","number","fractDigits","sign","slice","axisValues","axis","parentEl","emitEvent","getVerticalScrollPosition","getHorizontalScrollPosition","curDir","immediately","requestAnimationFrame","cancelAnimationFrame","getPosition","getSelection","selection","empty","removeAllRanges","Platform","addRange","createRange"],"mappings":"+KAIeA,oCAAgB,CAC7BC,KAAM,aAENC,MAAO,CACLC,SAAUC,QACVC,QAASD,QACTE,OAAQF,QACRG,MAAO,CAAEC,OAAQC,SAGnBC,MAV6B,SAUtBR,EAVsB,GAUJ,IAATS,EAAS,EAATA,MACRC,EAAcC,uBAAS,kBAAMC,SAASZ,EAAMK,MAAO,OAEnDQ,EAAUF,uBAAS,iBACvB,kBACsB,IAAnBX,EAAMC,SAAoB,yCAA2C,MACnD,IAAlBD,EAAMG,QAAmB,uCAAyC,MACjD,IAAjBH,EAAMI,OAAkB,yBAA2B,KAC7B,IAAtBM,EAAYI,MAAc,YAAc,OAGvCC,EAAQJ,uBAAS,WACrB,YAAuB,IAAhBX,EAAMK,OAAoBK,EAAYI,MAAQ,EACjD,CACEE,SAAU,SACVC,QAAS,cACT,qBAAsB,WACtB,qBAAsBP,EAAYI,OAEpC,QAGN,OAAO,kBAAMI,eAAE,MAAO,CACpBH,MAAOA,EAAMD,MACbK,MAAON,EAAQC,OACdM,eAAMX,EAAMY,e,oRCnBJvB,oCAAgB,CAC7BC,KAAM,WAENuB,cAAc,EAEdtB,MAAO,+DACFuB,QACAC,QACAC,QAHA,IAKHC,UAAW,CACTC,KAAMpB,OACNc,QAAS,MAEXO,SAAU,CACRD,KAAMpB,OACNc,QAAS,MAGXQ,eAAgB,CACdR,QAAS,aAEXS,eAAgB,CACdT,QAAS,WAGXU,OAAQ,CACNJ,KAAMpB,OACNc,QAAS,gBACTW,UAAWC,QAEbC,KAAM,CACJP,KAAMpB,OACNc,QAAS,aACTW,UAAWC,QAEbE,OAAQ,CACNR,KAAMS,MACNf,QAAS,iBAAM,CAAE,GAAI,KACrBW,UAAWK,QAGbC,aAAc,CACZjB,aAAS,GAGXkB,MAAO,CACLZ,KAAMrB,OACNe,QAAS,GAGXmB,UAAW,CACTb,KAAMrB,OACNe,QAAS,KAIboB,MAAO,eACFC,QAGLlC,MA7D6B,SA6DtBR,EA7DsB,GA6DS,IAChC2C,EAAiBC,EADPnC,EAAsB,EAAtBA,MAAOoC,EAAe,EAAfA,KAAMC,EAAS,EAATA,MAGrBC,EAAKC,kCACMC,EAASF,EAAlBG,MAASD,GAEXE,EAAWC,iBAAI,MACfC,EAAUD,kBAAI,GAEdE,EAAe3C,uBAAS,kBAAM4C,eAAcvD,EAAM+B,OAAQkB,EAAGO,KAAKC,QAClEC,EAAa/C,uBAAS,kBAAM4C,eAAcvD,EAAMkC,KAAMe,EAAGO,KAAKC,QAC9DE,EAAoBhD,uBAAS,kBAA2B,IAArBX,EAAM4D,cAE/C,EAAkDC,iBAA1CC,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,WAAYC,EAAlC,EAAkCA,YAClC,EAA2CC,iBAAnCC,EAAR,EAAQA,gBAAiBC,EAAzB,EAAyBA,cACzB,EAAwCC,eAAcpE,EAAOqD,GAArDgB,EAAR,EAAQA,WAAYC,EAApB,EAAoBA,gBACpB,EAA0EC,eAAgBvE,EAAOwE,IAAzFC,EAAR,EAAQA,kBAAmBC,EAA3B,EAA2BA,kBAAmBC,EAA9C,EAA8CA,wBAE9C,EAA4CC,eAAU,CAAEvB,UAASwB,uBAAzDC,EAAR,EAAQA,SAAUC,EAAlB,EAAkBA,QAASC,EAA3B,EAA2BA,aAE3B,EAAuBC,eAAe,CACpC5B,UAAS0B,UAASG,cAAYC,cAC9BxB,oBACAyB,gBAAgB,IAHVC,EAAR,EAAQA,KAAMC,EAAd,EAAcA,KAMdC,OAAOC,OAAOR,EAAc,CAAES,aAAWC,eAEzC,MAAiDC,eAAU5C,EAAII,EAAUyC,IAAjEC,EAAR,EAAQA,WAAYC,EAApB,EAAoBA,WAAYC,GAAhC,EAAgCA,aAIhC,IAA8B,IAA1B9C,EAAG+C,SAASC,GAAGC,OAAiB,CAClC,IAAMC,GAAoB,CACxBrB,WACA3B,WACAiD,eAHwB,SAGRC,GAQd,OAPAf,EAAKe,GAGDA,EAAEC,OAAOC,UAAUC,SAAS,uBAC9BC,eAAeJ,IAGV,IAILK,GAAkB/F,uBAAS,kBAGV,OAArBX,EAAM2G,aAEkB,IAArB3G,EAAM4D,aACY,IAAlBP,EAAQvC,SAGb8F,mBAAMF,IAAiB,SAAAG,GACrB,IAAMC,GAAa,IAARD,EAAeE,OAAkBC,OAC5CF,EAAGX,OAGLc,8BAAgB,WACdD,eAAmBb,OAIvB,SAASjB,GAAYgC,GACnBnD,IACAI,IAEA0B,IAEA/B,GAAa,WACXlB,EAAW,IAAIuE,kBAAiB,kBAAMC,QACtCxE,EAASyE,QAAQlE,EAASrC,MAAO,CAAEwG,YAAY,EAAOC,WAAW,EAAMC,eAAe,EAAMC,SAAS,IACrGL,KACA5C,QAEFR,SAEwB,IAApBrB,IACFA,EAAkBiE,oBAChB,kBAAM3D,EAAGyE,OAAOC,MAAQ,IAAM1E,EAAGyE,OAAOE,OAAS,IAAM5H,EAAMkC,KAAO,IAAMlC,EAAM+B,OAAS,IAAMkB,EAAGO,KAAKC,MACvG2D,KAIJlD,GAAgB,WACdrB,EAAK,OAAQqE,KACZlH,EAAM6H,oBAGX,SAAS1C,GAAY+B,GACnBnD,IACAI,IAEA2D,KAEA5D,GAAgB,WACd4B,IACAjD,EAAK,OAAQqE,KACZlH,EAAM6H,oBAGX,SAASC,UACU,IAAblF,IACFA,EAASmF,aACTnF,OAAW,QAGW,IAApBD,IACFA,IACAA,OAAkB,GAGpBgC,IACAqD,eAAShD,EAAc,eAGzB,SAASoC,KACP,IAAMa,EAAK9E,EAASrC,WAEG,IAAnBgE,EAAShE,OAAqBmH,GAIlCC,eAAY,CACVD,KACA9F,OAAQnC,EAAMmC,OACd2C,SAAUA,EAAShE,MACnBwC,aAAcA,EAAaxC,MAC3B4C,WAAYA,EAAW5C,MACvBY,UAAW1B,EAAM0B,UACjBE,SAAU5B,EAAM4B,WAIpB,SAAS6D,GAAWyB,GAClB,IAA8B,IAA1BjE,EAAG+C,SAASC,GAAGC,OAAiB,CAClCiC,iBACAC,SAASC,KAAK9B,UAAU+B,IAAI,kBAE5B,IAAMhC,EAASiC,eAAezD,EAAShE,OACjC0H,EAAO,CAAE,YAAa,cAAe,WAAY,SACpDC,KAAI,SAAApC,GAAC,MAAK,CAAEC,EAAQD,EAAG,cAAe,qBAEzCqC,eAAO1D,EAAc,cAAewD,GAGtCtE,GAAgB,WACdmB,EAAK6B,KACJlH,EAAMuC,OAGX,SAASmD,GAAWwB,GAClB/C,KAE8B,IAA1BlB,EAAG+C,SAASC,GAAGC,SACjB8B,eAAShD,EAAc,eACvBmD,iBAEAQ,YAAW,WACTP,SAASC,KAAK9B,UAAUqC,OAAO,oBAC9B,KAGL1E,GAAgB,WACdoB,EAAK4B,KACJlH,EAAMwC,WAGX,SAASqC,KACP,IAA4B,IAAxB7E,EAAM6I,oBAA6C,IAAnB/D,EAAShE,MAA7C,CAEA,IAAM0H,GAAiC,IAA1BvF,EAAG+C,SAASC,GAAGC,OACxB,CACE,CAAEpB,EAAShE,MAAO,aAAc,YAAa,YAE/C,CACE,CAAEgE,EAAShE,MAAO,aAAc,YAAa,WAC7C,CAAEgE,EAAShE,MAAO,aAAc,YAAa,YAGnD4H,eAAO1D,EAAc,SAAUwD,IAGjC,SAAShE,KACP,QAAuB,IAAnBM,EAAShE,YAA2C,IAAvBd,EAAMsC,aAAyB,CAC9DmC,EAAkB3D,MAAQgI,eAAgBhE,EAAShE,MAAOd,EAAMsC,cAChE,IAAMwE,GAA6B,IAAxB9G,EAAM6I,cACbzB,GACA9B,EAEJZ,EAAkBD,EAAkB3D,MAAOgG,IAI/C,SAASiC,KACP,OAAyB,IAAlB1F,EAAQvC,MACXI,eAAE,MAAD,eAAC,kBACG4B,GADJ,IAECM,IAAKD,EACLhC,MAAO,CACL,iEACA2B,EAAM3B,OAERJ,MAAOuD,EAAgBxD,MACvBkI,KAAM,kBACL5H,eAAMX,EAAMY,UACf,KAGN,SAASuE,KACP,OAAO1E,eAAE+H,gBAAY,CACnBlJ,KAAMsE,EAAWvD,MACjBoI,QAAQ,GACPH,IAQL,OALA9B,6BAAgBa,IAGhBvC,OAAOC,OAAOzC,EAAGG,MAAO,CAAEkE,oBAEnBrB,O,oCClTX,wCAKejG,oCAAgB,CAC7BC,KAAM,iBAENS,MAH6B,SAGtB2I,EAHsB,GAGR,IAAT1I,EAAS,EAATA,MACV,EAA0BuC,kCAATC,EAAjB,EAAQC,MAASD,GAEXmG,EAAUC,oBAAOC,QAAW,WAChCC,QAAQC,MAAM,kDAGhBC,qBAAQC,QAAkB,GAE1B,IAAM3I,EAAQJ,uBAAS,WACrB,IAAMgJ,EAAM,GAeZ,OAb6B,IAAzBP,EAAQhJ,OAAOwJ,QACjBD,EAAIE,WAAJ,UAAqBT,EAAQhJ,OAAO0J,KAApC,QAE0B,IAAxBV,EAAQW,MAAMH,QAChBD,EAAI,UAAD,QAA6B,IAAhB1G,EAAGO,KAAKC,IAAe,OAAS,UAAhD,UAAmE2F,EAAQW,MAAMD,KAAjF,QAE2B,IAAzBV,EAAQY,OAAOJ,QACjBD,EAAIM,cAAJ,UAAwBb,EAAQY,OAAOF,KAAvC,QAEyB,IAAvBV,EAAQc,KAAKN,QACfD,EAAI,UAAD,QAA6B,IAAhB1G,EAAGO,KAAKC,IAAe,QAAU,SAAjD,UAAmE2F,EAAQc,KAAKJ,KAAhF,OAGKH,KAGT,OAAO,kBAAMzI,eAAE,MAAO,CACpBC,MAAO,mBACPJ,MAAOA,EAAMD,OACZM,eAAMX,EAAMY,e,2EC/Bb,yBAIM,OAJDF,MAAM,yBAAuB,CAChC,yBAEyC,OADvCA,MAAM,gCACNgJ,IAAA,Q,kCAUgB,iB,+BASA,oB,+BAUA,kB,wRAvCxB,yBA0Ca,G,WAzCA,EAAAC,Y,qDAAA,EAAAA,YAAW,IACpBC,KAAK,OACLC,SAAS,WACTnJ,MAAM,+BACLwG,MAAO,K,+BAER,iBAIM,CAJN,EAKA,yBA6BS,Q,8BA5BP,iBAQS,CART,yBAQS,GAPPxG,MAAM,qDACNoJ,GAAG,oBACFC,GAAE,MAAU,EAAAC,mBAAmBC,O,+BAChC,iBAEiB,CAFjB,yBAEiB,GAFDC,OAAO,UAAQ,C,8BAC7B,iBAAgC,CAAhC,yBAAgC,GAAxB5K,KAAK,wB,MAEf,yBAA8C,Q,8BAA9B,iBAAa,C,+BAE/B,yBAQS,GAPPoB,MAAM,wDACNoJ,GAAG,uBACFC,GAAE,MAAU,EAAAI,oBAAoBF,O,+BACjC,iBAEiB,CAFjB,yBAEiB,GAFDC,OAAO,UAAQ,C,8BAC7B,iBAA0B,CAA1B,yBAA0B,GAAlB5K,KAAK,kB,MAEf,yBAAiD,Q,8BAAjC,iBAAgB,C,+BAElC,yBASS,GARPoB,MAAM,sDACNoJ,GAAG,qBACFC,GAAE,MAAU,EAAAK,cAAcC,gB,+BAE3B,iBAEiB,CAFjB,yBAEiB,GAFDH,OAAO,UAAQ,C,8BAC7B,iBAAwB,CAAxB,yBAAwB,GAAhB5K,KAAK,gB,MAEf,yBAA+C,Q,8BAA/B,iBAAc,C,wHCjCzB,+BAAgB,CAC7BS,MAD6B,WAE3B,IAAMuK,EAAkB,iBAElBX,EAAc,sBAAS,CAC3BY,IAAK,kBAAMD,EAAgBE,MAAMC,MACjCC,IAAK,SAACrK,GAAD,OAAWiK,EAAgBK,mBAAmBtK,MAGrD,MAAO,CACLsJ,cACAK,mBAAA,OACAG,oBAAA,OACAC,cAAA,W,4LCNAQ,EAAW,IAEFvL,+BAAgB,CAC7BC,KAAM,UAENuB,cAAc,EAEdtB,MAAO,gDACFwB,QACA8J,QAFA,IAIHjB,KAAM,CACJ1I,KAAMpB,OACNc,QAAS,OACTW,UAAW,SAAAuJ,GAAC,MAAI,CAAE,OAAQ,SAAUC,SAASD,KAG/C5D,MAAO,CACLhG,KAAMrB,OACNe,QAAS,KAGXoK,KAAMvL,QACNwL,cAAexL,QACfyL,UAAW,CACThK,KAAMrB,OACNe,QAAS,IAGXuK,WAAY,CACVjK,KAAMrB,OACNe,QAAS,MAEXwK,YAAa3L,QAEb4L,SAAU,CACRnK,KAAMpB,OACNyB,UAAW,SAAAuJ,GAAC,MAAI,CAAE,UAAW,UAAW,UAAWC,SAASD,IAC5DlK,QAAS,WAGXiJ,SAAUpK,QACV6L,SAAU7L,QAEV8L,QAAS9L,QACT0D,WAAY1D,QACZ+L,YAAa/L,QACbgM,aAAchM,QACdiM,gBAAiBjM,UAGnBuC,MAAO,GAAF,sBACAC,QADA,CAEH,YAAa,eAGflC,MAtD6B,SAsDtBR,EAtDsB,GAsDS,IAYhCoM,EAAkBC,EAAWC,EAZnB7L,EAAsB,EAAtBA,MAAOoC,EAAe,EAAfA,KAAMC,EAAS,EAATA,MACrBC,EAAKC,kCACMC,EAASF,EAAlBG,MAASD,GAEXsJ,EAASC,eAAQxM,EAAOiD,GAC9B,EAA8BwJ,iBAAtBC,EAAR,EAAQA,kBACR,EAA4BzI,iBAApBC,EAAR,EAAQA,gBAEFkF,EAAUC,oBAAOC,QAAW,WAChCC,QAAQC,MAAM,2CAKVmD,EAAkBvJ,iBACH,WAAnBpD,EAAM8L,UACiB,YAAnB9L,EAAM8L,UAA0B1C,EAAQwD,WAAW9L,OAASd,EAAM4L,YAGlEiB,EAASlM,uBAAS,kBACP,IAAfX,EAAMyL,OAA2C,IAA1BkB,EAAgB7L,SAGnCgJ,EAAOnJ,uBAAS,kBACH,IAAjBkM,EAAO/L,MACHd,EAAM2L,UACN3L,EAAM2H,SAGNtE,EAAUD,kBACQ,IAAtBpD,EAAM6L,cAAkD,IAA1Bc,EAAgB7L,QAErB,IAArBd,EAAM2G,YAGNhD,EAAoBhD,uBAAS,kBACZ,IAArBX,EAAM4D,cACwB,IAA1B+I,EAAgB7L,QAA4C,IAA1BgM,EAAgBhM,UAGxD,SAASoE,EAAYgC,EAAK6F,GAMxB,GALAC,KAEQ,IAAR9F,GAAiBkC,EAAQ6D,UACzBC,GAAc,IAEgB,IAA1BP,EAAgB7L,MAAgB,CAClC,IAAMqM,EAAgB/D,EAAQgE,UAAWC,EAAUvM,YAC7B,IAAlBqM,IAA8D,IAAlCA,EAAcR,iBAC5CQ,EAAc7H,MAAK,GAGrBgI,GAAc,IACgB,IAA9BlE,EAAQmE,YAAYzM,OAAkB4L,GAAkB,QAGxDY,GAAc,IACN,IAARpG,GAAiBsG,IAAc,GAGjCtJ,GAAgB,YACN,IAARgD,GAAiBsG,IAAc,IACnB,IAAZT,GAAoBlK,EAAK,OAAQqE,KAChCmE,GAGL,SAASlG,EAAY+B,EAAK6F,GACxBU,KAEQ,IAARvG,GAAiBkC,EAAQ6D,UAEzBK,GAAc,GACdJ,GAAcQ,EAAe5M,MAAQgJ,EAAKhJ,OAE1C6M,MAEY,IAAZZ,GAAoB7I,GAAgB,WAClCrB,EAAK,OAAQqE,KACZmE,GAGL,MAAuBpG,eAAe,CACpC5B,UACAM,oBACAuB,aACAC,eAJME,EAAR,EAAQA,KAAMC,EAAd,EAAcA,KAOd,EAA4CsI,eAAWvK,EAASiC,EAAM3B,GAA9DqJ,EAAR,EAAQA,aAAcS,EAAtB,EAAsBA,kBAEhBI,EAAW,CACflB,kBACArH,QAGIwI,EAAYnN,uBAAS,iBAAqB,UAAfX,EAAMqK,QAEjCqD,EAAiB/M,uBAAS,mBACb,IAAhBsC,EAAGO,KAAKC,KAAgB,EAAI,KAA0B,IAApBqK,EAAUhN,MAAiB,GAAK,MAG/DiN,EAAiB3K,iBAAI,GACrB4K,EAAc5K,kBAAI,GAClB6K,EAAkB7K,kBAAI,GACtB8K,EAAsB9K,iBAC1B0G,EAAKhJ,MAAQ4M,EAAe5M,OAGxBuM,EAAY1M,uBAAS,kBAA2B,IAApBmN,EAAUhN,MAAiB,OAAS,WAChEqB,EAASxB,uBAAS,kBACJ,IAAlB0C,EAAQvC,QAA4C,IAA1B6L,EAAgB7L,QAAqC,IAAlBd,EAAMgM,SACtC,IAAxBhM,EAAM0L,cAAyB1L,EAAM2L,UAAY7B,EAAKhJ,MACvD,KAGAqN,EAAQxN,uBAAS,kBACH,IAAlBX,EAAMgM,UACqB,IAAxBhM,EAAM0L,eACNtC,EAAQgF,KAAKtN,MAAMuN,QAAQP,EAAUhN,MAAQ,IAAM,MAAQ,IACnC,IAAvBmC,EAAG+C,SAASC,GAAGqI,MAA8C,IAA9BlF,EAAQmE,YAAYzM,SAGnDyN,EAAW5N,uBAAS,kBACN,IAAlBX,EAAMgM,UACe,IAAlB3I,EAAQvC,QACkB,IAA1B6L,EAAgB7L,SAGfgM,EAAkBnM,uBAAS,kBACb,IAAlBX,EAAMgM,UACe,IAAlB3I,EAAQvC,QACkB,IAA1B6L,EAAgB7L,SAGf0N,GAAgB7N,uBAAS,iBAC7B,kCACqB,IAAlB0C,EAAQvC,QAAyC,IAAtBkN,EAAYlN,MAAkB,UAAY,OAGpE2N,GAAgB9N,uBAAS,iBAAO,CACpC+N,gBAAiB,cAAF,OAAwC,GAAvBX,EAAejN,MAAhC,SAGX6N,GAAahO,uBAAS,kBACN,IAApBmN,EAAUhN,MAC0B,MAAhCsI,EAAQwF,KAAK9N,MAAM+N,IAAK,GACQ,MAAhCzF,EAAQwF,KAAK9N,MAAM+N,IAAK,MAGxBC,GAAanO,uBAAS,kBACN,IAApBmN,EAAUhN,MAC6B,MAAnCsI,EAAQwF,KAAK9N,MAAMiO,OAAQ,GACQ,MAAnC3F,EAAQwF,KAAK9N,MAAMiO,OAAQ,MAG3BC,GAAarO,uBAAS,WAC1B,IAAMgJ,EAAM,GAoBZ,OAlB6B,IAAzBP,EAAQhJ,OAAOwJ,QAAuC,IAArB+E,GAAW7N,SAC1B,IAAhBqN,EAAMrN,MACR6I,EAAIkF,IAAJ,UAAczF,EAAQhJ,OAAO+B,OAA7B,OAEgC,IAAzBiH,EAAQhJ,OAAOwJ,QACtBD,EAAIkF,IAAJ,UAAczF,EAAQhJ,OAAO0J,KAA7B,SAIyB,IAAzBV,EAAQY,OAAOJ,QAAuC,IAArBkF,GAAWhO,SAC1B,IAAhBqN,EAAMrN,MACR6I,EAAIoF,OAAJ,UAAiB3F,EAAQY,OAAO7H,OAAhC,OAEgC,IAAzBiH,EAAQY,OAAOJ,QACtBD,EAAIoF,OAAJ,UAAiB3F,EAAQY,OAAOF,KAAhC,QAIGH,KAGH5I,GAAQJ,uBAAS,WACrB,IAAMI,EAAQ,CACZ4G,MAAO,GAAF,OAAMmC,EAAKhJ,MAAX,MACLmO,UAAW,cAAF,OAAiBf,EAAoBpN,MAArC,QAGX,OAAiC,IAA1B6L,EAAgB7L,MACnBC,EACAwE,OAAOC,OAAOzE,EAAOiO,GAAWlO,UAGhCoO,GAAevO,uBAAS,iBAC5B,2BACiC,IAA9ByI,EAAQmE,YAAYzM,MAAiB,SAAW,oBAG/CD,GAAUF,uBAAS,iBACvB,6BAAuBX,EAAMqK,QACA,IAA1B4D,EAAgBnN,MAAiB,0BAA4B,MAC1C,IAAnBd,EAAMsK,SAAoB,sBAAwB,MACjC,IAAjBiC,EAAOzL,MAAiB,yBAA2B,MAE9B,IAAtBkN,EAAYlN,MACR,kBACmB,IAAlBuC,EAAQvC,MAAiB,GAAK,8BAGT,IAA1B6L,EAAgB7L,MACZ,iEACA,sBAAgC,IAAjB+L,EAAO/L,MAAiB,OAAS,cAC/B,IAAhBqN,EAAMrN,QAAqC,IAAnByN,EAASzN,MAAiB,SAAW,MAC3C,IAAlBd,EAAMgM,UAA4C,IAAxBhM,EAAM0L,cAAyB,oBAAsB,MAC1D,IAArBiD,GAAW7N,MAAiB,yBAA2B,QAI1DqO,GAAgBxO,uBAAS,WAAM,MAE7ByO,GAAsB,IAAhBnM,EAAGO,KAAKC,IAAezD,EAAMqK,KAAOgD,EAAUvM,MAE1D,MAAO,CAAE,CACPuO,OACAC,QACA,GAHO,sBAKHF,GAAO,GALJ,0BAME,GANF,QAWLG,GAAwB5O,uBAAS,WAAM,MAErCyO,GAAsB,IAAhBnM,EAAGO,KAAKC,IAAe4J,EAAUvM,MAAQd,EAAMqK,KAE3D,MAAO,CAAE,CACPgF,OACAG,QACA,GAHO,sBAKHJ,GAAO,GALJ,0BAME,GANF,QAWLK,GAAyB9O,uBAAS,WAAM,MAEtCyO,GAAsB,IAAhBnM,EAAGO,KAAKC,IAAe4J,EAAUvM,MAAQd,EAAMqK,KAE3D,MAAO,CAAE,CACPgF,OACAG,QACA,GAHO,sBAKHJ,GAAO,GALJ,0BAME,GANF,gCAOQ,GAPR,QA4FX,SAASlC,GAAewC,QACL,IAAbA,EACFC,uBAAS,WACPD,GAA6B,IAAlBrM,EAAQvC,MAAiB,EAAIgJ,EAAKhJ,MAC7CoM,GAAcQ,EAAe5M,MAAQ4O,QAKP,IAA9BtG,EAAQmE,YAAYzM,QACG,IAApBgN,EAAUhN,QACiB,IAA1B6L,EAAgB7L,OAAkB8O,KAAKC,IAAIH,KAAc5F,EAAKhJ,QAElE4O,GAAYhC,EAAe5M,MAAQsI,EAAQ0G,eAAehP,OAG5DoN,EAAoBpN,MAAQ4O,GAIhC,SAASK,KACPC,GAAYrD,EACS,WAAnB3M,EAAM8L,UACiB,YAAnB9L,EAAM8L,UAA0B1C,EAAQwD,WAAW9L,OAASd,EAAM4L,YAI1E,SAAS0B,GAAe2C,GACtBlC,EAAejN,MAAQmP,EAGzB,SAASzC,GAAejC,GACtB,IAAM2E,GAAe,IAAN3E,EACX,UAC+B,IAA9BnC,EAAQmE,YAAYzM,MAAiB,MAAQ,GAEvC,KAAXoP,GAAiB9H,SAASC,KAAK9B,UAAW2J,GAAS,yBAGrD,SAASC,KACPC,aAAa/D,GACb4B,EAAgBnN,OAAQ,EACxBuL,EAAY1D,YAAW,WACrBsF,EAAgBnN,OAAQ,IACvB,KAGL,SAASwO,GAAWpI,GAClB,IAAsB,IAAlB7D,EAAQvC,MAAZ,CAMA,IACE6G,EAAQmC,EAAKhJ,MACb4O,EAAWW,eAAQnJ,EAAIoJ,SAASL,EAAG,EAAGtI,GAExC,IAAoB,IAAhBT,EAAIqJ,QAAkB,CACxB,IAAMC,EAASd,GAAYE,KAAKa,IAAI,GAAI9I,GAYxC,OAVe,IAAX6I,EACFnL,KAGA+D,EAAQ6D,UACRK,GAAc,GACdJ,GAAcQ,EAAe5M,MAAQ6G,SAGvCqG,EAAYlN,OAAQ,GAItBoM,KACmB,IAAhBjK,EAAGO,KAAKC,KAAmC,IAApBqK,EAAUhN,MAAiBgN,EAAUhN,OACzD8O,KAAKc,IAAI/I,EAAQ+H,EAAU,GAC3BE,KAAKa,IAAI,EAAGf,EAAW/H,IAE7B2F,GACE+C,eAAQX,EAAW/H,EAAO,EAAG,KAGX,IAAhBT,EAAIyJ,UACN3C,EAAYlN,OAAQ,IAIxB,SAAS0O,GAAYtI,GACnB,IAAsB,IAAlB7D,EAAQvC,MAAZ,CAMA,IACE6G,EAAQmC,EAAKhJ,MACbsO,EAAMlI,EAAI0J,YAAc5Q,EAAMqK,KAC9BqF,IAA4B,IAAhBzM,EAAGO,KAAKC,KAAuB,IAAR2L,EAAeA,GAC9CiB,eAAQnJ,EAAIoJ,SAASL,EAAG,EAAGtI,GAC3B,EAEN,IAAoB,IAAhBT,EAAIqJ,QAAkB,CACxB,IAAMC,EAASZ,KAAKC,IAAIH,GAAYE,KAAKa,IAAI,GAAI9I,GAYjD,OAVe,IAAX6I,GACFpH,EAAQ6D,UACRK,GAAc,GACdJ,GAAc,IAGd5H,SAGF0I,EAAYlN,OAAQ,GAItBoM,GAAcQ,EAAe5M,MAAQ4O,GACrCpC,GAAc+C,eAAQ,EAAIX,EAAW/H,EAAO,EAAG,KAE3B,IAAhBT,EAAIyJ,UACN3C,EAAYlN,OAAQ,IAIxB,SAAS6M,KACPjB,GAAkB,GAClBc,IAAc,GAGhB,SAASqD,GAAcC,EAAMjK,GAC3BuC,EAAQ2H,OAAO/Q,EAAMqK,KAAMyG,EAAMjK,GAGnC,SAASmJ,GAAac,EAAMjK,GACtBiK,EAAKhQ,QAAU+F,IACjBiK,EAAKhQ,MAAQ+F,GAIjB,SAASmK,GAAoBtF,EAAe5B,GAC1C+G,GAAa,QAA0B,IAAlBnF,EAAyB1L,EAAM2L,UAAY7B,GA8DlE,OA5RAlD,mBAAM+F,GAAiB,SAAA9F,IACT,IAARA,GACFuF,EAAmB/I,EAAQvC,OACT,IAAlBuC,EAAQvC,OAAkBwE,GAAK,KAGb,IAAlBtF,EAAMgM,SACgB,WAAnBhM,EAAM8L,WACe,IAArBM,KAEmB,IAAlB/I,EAAQvC,OACVoM,GAAc,GACdI,GAAc,GACdK,MAGAtI,GAAK,OAKXuB,mBAAMwC,EAAQwD,YAAY,SAAA/F,GACxBmJ,GAAYrD,EACS,WAAnB3M,EAAM8L,UACiB,YAAnB9L,EAAM8L,UAA0BjF,GAAO7G,EAAM4L,eAIrDhF,oBAAM,kBAAM5G,EAAMqK,QAAM,SAAC4G,EAASC,GAC5B9H,EAAQgE,UAAW8D,KAAcrD,IACnCzE,EAAQgE,UAAW8D,QAAY,EAC/B9H,EAAS8H,GAAUtH,OAAQ,EAC3BR,EAAS8H,GAAU/O,OAAS,GAG9BiH,EAAQgE,UAAW6D,GAAYpD,EAC/BzE,EAAS6H,GAAUnH,KAAOA,EAAKhJ,MAC/BsI,EAAS6H,GAAUrH,MAAQ2E,EAASzN,MACpCsI,EAAS6H,GAAU9O,OAASA,EAAOrB,SAGrC8F,oBAAM,kBAAM5G,EAAM8L,SAAW9L,EAAM4L,aAAYmE,IAE/CnJ,mBAAMwC,EAAQmE,aAAa,SAAA1G,IACP,IAAlBxD,EAAQvC,OAAkB4L,GAA0B,IAAR7F,MAG9CD,mBAAMwC,EAAQ0G,gBAAgB,WAC5B5C,IAAgC,IAAlB7J,EAAQvC,MAAiB,OAAI,MAG7C8F,mBAAMzE,GAAQ,SAAA0E,GAASgK,GAAa,SAAUhK,MAE9CD,mBAAM2H,GAAU,SAAA1H,GACdhE,EAAK,YAAagE,GAClBgK,GAAa,QAAShK,MAGxBD,mBAAMkH,GAAW,WAAQZ,QAEzBtG,mBAAMkD,GAAM,SAAAjD,GACVqG,KACA8D,GAAmBhR,EAAM0L,cAAe7E,MAG1CD,oBAAM,kBAAM5G,EAAM0L,iBAAe,SAAA7E,GAC/BmK,GAAmBnK,EAAKiD,EAAKhJ,UAG/B8F,oBAAM,kBAAM3D,EAAGO,KAAKC,OAAK,WAAQyJ,QAEjCtG,oBAAM,kBAAM5G,EAAMyL,QAAM,YACG,IAArBzL,EAAM2G,aACRwJ,KACA/G,EAAQ6D,cAIZrG,mBAAMiG,GAAQ,SAAAhG,GAAShE,EAAK,aAAcgE,MAmJ1CuC,EAAQgE,UAAWpN,EAAMqK,MAASwD,EAClCmD,GAAmBhR,EAAM0L,cAAe5B,EAAKhJ,OAC7C+P,GAAa,QAAStC,EAASzN,OAC/B+P,GAAa,SAAU1O,EAAOrB,QAGN,IAAtBd,EAAM6L,cACkB,IAArB7L,EAAM2G,aACY,IAAlBtD,EAAQvC,YAC2B,IAAnCd,EAAO,wBAEV6C,EAAK,qBAAqB,GAG5BsO,wBAAU,WACRtO,EAAK,YAAa0L,EAASzN,OAC3B+B,EAAK,aAAcgK,EAAO/L,OAE1BsL,GAAyC,IAAtBpM,EAAM6L,YAEzB,IAAM/E,EAAK,WACT,IAAMoJ,GAA2B,IAAlB7M,EAAQvC,MAAiBoE,EAAaC,EACrD+K,GAAO,GAAO,IAGiB,IAA7B9G,EAAQwD,WAAW9L,MAOvBwL,EAA0B1F,mBAAMwC,EAAQwD,YAAY,WAClDN,IACAA,OAA0B,GAEJ,IAAlBjJ,EAAQvC,QAAyC,IAAtBd,EAAM6L,cAAkD,IAA1Bc,EAAgB7L,MAC3EuE,GAAK,GAGLyB,OAZF6I,sBAAS7I,MAiBbG,8BAAgB,gBACc,IAA5BqF,GAAsCA,IACtC8D,aAAa/D,IAEK,IAAlBhJ,EAAQvC,OAAkB6M,KAEtBvE,EAAQgE,UAAWpN,EAAMqK,QAAWwD,IACtCzE,EAAQgE,UAAWpN,EAAMqK,WAAS,EAClCwG,GAAa,OAAQ,GACrBA,GAAa,SAAU,GACvBA,GAAa,SAAS,OAInB,WACL,IAAMO,EAAQ,IAEgB,IAA1BzE,EAAgB7L,SACI,IAAtBd,EAAMiM,aAAyBmF,EAAMC,KACnCC,4BACEpQ,eAAE,MAAO,CACPqQ,IAAK,OACLpQ,MAAO,0BAAF,OAA6BnB,EAAMqK,MACxC,cAAe,SAEjB8E,GAAcrO,QAIlBsQ,EAAMC,KACJG,eACE,MACA,CACEpO,IAAK,WACLjC,MAAOqN,GAAc1N,MACrBC,MAAO0N,GAAc3N,MACrB,cAAe,OACf2Q,QAASnM,QAEX,EACA,YAC0B,IAA1BtF,EAAMmM,kBAA8C,IAAlB9I,EAAQvC,OAC1C,kBAAM2O,GAAuB3O,WAKnC,IAAM2K,GAAwB,IAAjBoB,EAAO/L,YAAiC,IAAfL,EAAMgL,KACtCiG,EAAU,CACdxQ,eAAE,MAAD,eAAC,kBACG4B,GADJ,IAECyO,IAAK,GAAK9F,EACVtK,MAAO,CACL+N,GAAapO,MACbgC,EAAM3B,UAEE,IAATsK,EACChL,EAAMgL,OACNrK,eAAMX,EAAMY,WAuBlB,OAnBuB,IAAnBrB,EAAM+L,WAAuC,IAAlB1I,EAAQvC,OACrC4Q,EAAQL,KACNnQ,eAAE,MAAO,CACPC,MAAO,sEAKbiQ,EAAMC,KACJG,eACE,QACA,CAAEpO,IAAK,UAAWjC,MAAON,GAAQC,MAAOC,MAAOA,GAAMD,OACrD4Q,EACA,gBACuB,IAAvB1R,EAAMkM,eAAmD,IAA1BS,EAAgB7L,OAC/C,kBAAMyO,GAAsBzO,UAIzBI,eAAE,MAAO,CAAEC,MAAO,sBAAwBiQ,O,qECrqBvD,EAAOO,OAASA,EAED,SAOf,IAAS,EAAQ,aAAc,CAACC,UAAQC,QAAA,KAAMC,QAAA,KAAMC,eAAA,KAAaC,QAAA,Q,kCCbjE,IAAIC,EAAY,EAAQ,QACpBC,EAAyB,EAAQ,QAIrCC,EAAOC,QAAU,SAAgBC,GAC/B,IAAIC,EAAM/R,OAAO2R,EAAuBK,OACpCC,EAAS,GACTC,EAAIR,EAAUI,GAClB,GAAII,EAAI,GAAKA,GAAKC,IAAU,MAAMC,WAAW,+BAC7C,KAAMF,EAAI,GAAIA,KAAO,KAAOH,GAAOA,GAAc,EAAJG,IAAOD,GAAUF,GAC9D,OAAOE,I,oCCXT,IAAII,EAAI,EAAQ,QACZC,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QAIrCF,EAAE,CAAEtM,OAAQ,SAAUyM,OAAO,EAAMC,OAAQF,EAAuB,WAAa,CAC7E/Q,OAAQ,SAAgBhC,GACtB,OAAO8S,EAAWN,KAAM,IAAK,OAAQxS,O,wFCH1BD,oCAAgB,CAC7BC,KAAM,QAENC,MAAO,iCACFsL,QADA,IAGHhB,SAAUpK,QACV+S,MAAO/S,QACPgT,UAAWhT,QACXiT,QAASjT,UAGXM,MAZ6B,SAYtBR,EAZsB,GAYJ,IAATS,EAAS,EAATA,MACRsC,EAAKC,kCACLuJ,EAASC,eAAQxM,EAAO+C,EAAGG,MAAMD,IAEjCpC,EAAUF,uBAAS,iBACvB,WACsB,IAAnBX,EAAMsK,SAAoB,oBAAsB,MAChC,IAAhBtK,EAAMiT,MAAiB,iBAAmB,MACtB,IAApBjT,EAAMkT,UAAqB,qBAAuB,MACjC,IAAjB3G,EAAOzL,MAAiB,gBAAkB,MACxB,IAAlBd,EAAMmT,QAAmB,mBAAqB,OAGnD,OAAO,kBAAMjS,eAAE,MAAO,CAAEC,MAAON,EAAQC,OAASM,eAAMX,EAAMY,e,wNC5B5D+R,EAAQC,E,wBAEL,SAASpR,EAAkBqR,GAChC,IAAMC,EAAQD,EAAIE,MAAM,KACxB,OAAqB,IAAjBD,EAAME,UAGiD,IAAvD,CAAE,MAAO,SAAU,UAAWjI,SAAS+H,EAAO,KAChDhK,QAAQC,MAAM,kEACP,IAEkE,IAAvE,CAAE,OAAQ,SAAU,QAAS,QAAS,OAAQgC,SAAS+H,EAAO,MAChEhK,QAAQC,MAAM,0EACP,IAKJ,SAASnH,EAAgBwE,GAC9B,OAAKA,GACc,IAAfA,EAAI4M,SACgB,kBAAb5M,EAAK,IAAwC,kBAAbA,EAAK,IAMlD,IAAM6M,EAAgB,CACpB,YAAa,OACb,YAAa,QACb,UAAW,QACX,UAAW,QAQN,SAASnQ,EAAe+P,EAAK7P,GAClC,IAAM8P,EAAQD,EAAIE,MAAM,KACxB,MAAO,CACLG,SAAUJ,EAAO,GACjBK,WAAYF,EAAc,GAAD,OAAMH,EAAO,GAAb,aAA8B,IAAR9P,EAAe,MAAQ,SASnE,SAASoQ,EAAgB5L,EAAI9F,GAClC,MAAkD8F,EAAG6L,wBAA/CjF,EAAN,EAAMA,IAAK3E,EAAX,EAAWA,KAAMH,EAAjB,EAAiBA,MAAOgF,EAAxB,EAAwBA,OAAQpH,EAAhC,EAAgCA,MAAOC,EAAvC,EAAuCA,OAYvC,YAVe,IAAXzF,IACF0M,GAAO1M,EAAQ,GACf+H,GAAQ/H,EAAQ,GAChB4M,GAAU5M,EAAQ,GAClB4H,GAAS5H,EAAQ,GAEjBwF,GAASxF,EAAQ,GACjByF,GAAUzF,EAAQ,IAGb,CACL0M,MACA3E,OACAH,QACAgF,SACApH,QACAC,SACAmM,OAAQ7J,GAAQH,EAAQG,GAAQ,EAChC8J,OAAQnF,GAAOE,EAASF,GAAO,GAI5B,SAASoF,EAAgBhM,GAC9B,MAAO,CACL4G,IAAK,EACLmF,OAAQ/L,EAAGiM,aAAe,EAC1BnF,OAAQ9G,EAAGiM,aACXhK,KAAM,EACN6J,OAAQ9L,EAAGkM,YAAc,EACzBpK,MAAO9B,EAAGkM,aAKP,SAASjM,EAAakM,GAC3B,IAAsB,IAAlBC,OAAOpO,GAAGqI,UAA0C,IAA1BgG,OAAOC,eAA2B,CAG9D,IAAMtM,EAAKG,SAASC,KAAKtH,MACzB,EAA6CuT,OAAOC,eAAhCrK,EAApB,EAAQsK,WAA6B3F,EAArC,EAA0B4F,UAEtBvK,IAASkJ,IACXnL,EAAGyM,YAAY,cAAexK,EAAO,MACrCkJ,EAASlJ,GAEP2E,IAAQwE,IACVpL,EAAGyM,YAAY,aAAc7F,EAAM,MACnCwE,EAAQxE,GAIZ,IAAI8F,EAMJ,EAAkCP,EAAInM,GAA9B2M,EAAR,EAAQA,WAAYC,EAApB,EAAoBA,UAEpB,QAA2B,IAAvBT,EAAIU,eACNH,EAAcd,EAAeO,EAAItP,UAAwB,IAAdsP,EAAIW,MAAiB,CAAE,EAAG,GAAMX,EAAIjS,YAE5E,CACH,MACyCiS,EAAItP,SAASgP,wBAA7CkB,EADT,EACInG,IAAsBoG,EAD1B,EACoB/K,KAClB2E,EAAMmG,EAAYZ,EAAIU,eAAejG,IACrC3E,EAAO+K,EAAab,EAAIU,eAAe5K,KAEzCyK,EAAc,CAAE9F,MAAK3E,OAAMvC,MAAO,EAAGC,OAAQ,EAAGmC,MAAOG,EAAO,EAAG8J,OAAQnF,EAAKkF,OAAQ7J,EAAM6E,OAAQF,EAAM,GAG5G,IAAIqG,EAAU,CACZxT,UAAW0S,EAAI1S,UACfE,SAAUwS,EAAIxS,SACduT,WAAY,YAGE,IAAZf,EAAIgB,MAA8B,IAAdhB,EAAIW,QAC1BG,EAAQG,SAAWV,EAAYhN,MAAQ,MACrB,IAAdyM,EAAIW,QACNG,EAAQI,UAAYX,EAAY/M,OAAS,OAI7CrC,OAAOC,OAAO4O,EAAInM,GAAGlH,MAAOmU,GAE5B,IACEK,EAActB,EAAeG,EAAInM,IACjCjI,EAAQ,CACN6O,IAAK8F,EAAaP,EAAI9Q,aAAaqQ,UAAa4B,EAAanB,EAAI1Q,WAAWiQ,UAC5EzJ,KAAMyK,EAAaP,EAAI9Q,aAAasQ,YAAe2B,EAAanB,EAAI1Q,WAAWkQ,aAGnF4B,EAAgBxV,EAAO2U,EAAaY,EAAanB,EAAI9Q,aAAc8Q,EAAI1Q,YAEvEwR,EAAU,CACRrG,IAAK7O,EAAM6O,IAAM,KACjB3E,KAAMlK,EAAMkK,KAAO,WAGG,IAApBlK,EAAM0B,YACRwT,EAAQxT,UAAY1B,EAAM0B,UAAY,KAElCiT,EAAY/M,OAAS5H,EAAM0B,YAC7BwT,EAAQI,UAAYJ,EAAQxT,iBAGT,IAAnB1B,EAAM4B,WACRsT,EAAQtT,SAAW5B,EAAM4B,SAAW,KAEhC+S,EAAYhN,MAAQ3H,EAAM4B,WAC5BsT,EAAQG,SAAWH,EAAQtT,WAI/B2D,OAAOC,OAAO4O,EAAInM,GAAGlH,MAAOmU,GAGxBd,EAAInM,GAAG4M,YAAcA,IACvBT,EAAInM,GAAG4M,UAAYA,GAEjBT,EAAInM,GAAG2M,aAAeA,IACxBR,EAAInM,GAAG2M,WAAaA,GAIxB,SAASY,EAAiBxV,EAAO2U,EAAaY,EAAajS,EAAcI,GACvE,IACE+R,EAAgBF,EAAYxG,OAC5B2G,EAAeH,EAAYxL,MAC3B4L,EAASC,iBACTC,EAAcvB,OAAOuB,YAAcF,EACnCG,EAAa1N,SAASC,KAAK0N,YAE7B,GAAI/V,EAAM6O,IAAM,GAAK7O,EAAM6O,IAAM4G,EAAgBI,EAC/C,GAA4B,WAAxBnS,EAAWiQ,SACb3T,EAAM6O,IAAM8F,EAAarR,EAAaqQ,UAAakC,EAAc,EAC7DjG,KAAKc,IAAI,EAAGmF,EAAcJ,GAC1B,EACJzV,EAAM0B,UAAYkO,KAAKa,IAAIgF,EAAeI,QAEvC,GAAIlB,EAAarR,EAAaqQ,UAAakC,EAAc,EAAG,CAC/D,IAAMG,EAAUpG,KAAKa,IACnBoF,EAC0B,WAA1BvS,EAAaqQ,SACTgB,EAAYX,OACX1Q,EAAaqQ,WAAajQ,EAAWiQ,SAAWgB,EAAY5F,OAAS4F,EAAY9F,KAExF7O,EAAM0B,UAAYkO,KAAKa,IAAIgF,EAAeO,GAC1ChW,EAAM6O,IAAMe,KAAKc,IAAI,EAAGsF,EAAUP,QAGlCzV,EAAM6O,IAAMe,KAAKc,IAAI,EAA6B,WAA1BpN,EAAaqQ,SACjCgB,EAAYX,OACX1Q,EAAaqQ,WAAajQ,EAAWiQ,SAAWgB,EAAY9F,IAAM8F,EAAY5F,QAEnF/O,EAAM0B,UAAYkO,KAAKa,IAAIgF,EAAeI,EAAc7V,EAAM6O,KAIlE,GAAI7O,EAAMkK,KAAO,GAAKlK,EAAMkK,KAAOwL,EAAeI,EAEhD,GADA9V,EAAM4B,SAAWgO,KAAKa,IAAIiF,EAAcI,GACV,WAA1BpS,EAAWkQ,WACb5T,EAAMkK,KAAOyK,EAAarR,EAAasQ,YAAekC,EAAa,EAC/DlG,KAAKc,IAAI,EAAGoF,EAAaJ,GACzB,OAED,GAAIf,EAAarR,EAAasQ,YAAekC,EAAa,EAAG,CAChE,IAAMG,EAAUrG,KAAKa,IACnBqF,EAC4B,WAA5BxS,EAAasQ,WACTe,EAAYZ,OACXzQ,EAAasQ,aAAelQ,EAAWkQ,WAAae,EAAY5K,MAAQ4K,EAAYzK,MAE3FlK,EAAM4B,SAAWgO,KAAKa,IAAIiF,EAAcO,GACxCjW,EAAMkK,KAAO0F,KAAKc,IAAI,EAAGuF,EAAUjW,EAAM4B,eAGzC5B,EAAMkK,KAAO0F,KAAKc,IAAI,EAA+B,WAA5BpN,EAAasQ,WAClCe,EAAYZ,OACXzQ,EAAasQ,aAAelQ,EAAWkQ,WAAae,EAAYzK,KAAOyK,EAAY5K,OAExF/J,EAAM4B,SAAWgO,KAAKa,IAAIiF,EAAcI,EAAa9V,EAAMkK,MA3MhE,CAAE,OAAQ,SAAU,SAAUgM,SAAQ,SAAA5C,GACrCI,EAAc,GAAD,OAAMJ,EAAN,SAAqBA,EAClCI,EAAc,GAAD,OAAMJ,EAAN,SAAqBA,M,wEClCrB,aACb,IAAM6C,EAAY/S,kBAAKgT,OAAyBtV,OAQhD,OANwB,IAApBqV,EAAUrV,OACZqQ,wBAAU,WACRgF,EAAUrV,OAAQ,KAIfqV,G,YCRHE,EAAwC,qBAAnBC,eACrBC,GAA8B,IAAhBF,EAChB,GACA,CACEtV,MAAO,uIACPyV,IAAK,eAGI1W,oCAAgB,CAC7BC,KAAM,kBAENC,MAAO,CACLyW,SAAU,CACR9U,KAAM,CAAEpB,OAAQD,QAChBe,QAAS,MAIboB,MAAO,CAAE,UAETjC,MAZ6B,SAYtBR,EAZsB,GAYL,IAAR6C,EAAQ,EAARA,KAGd,IAAI6T,EAAOC,EAAU7M,EAAO,CAAEnC,OAAQ,EAAGC,QAAS,GAElD,SAASgP,EAASC,IACJ,IAARA,GAAmC,IAAnB7W,EAAMyW,UAAqC,MAAnBzW,EAAMyW,SAChDK,IAEQJ,IACRA,EAAQ/N,WAAWmO,EAAU9W,EAAMyW,WAIvC,SAASK,IAGP,GAFAJ,OAAQ,EAEJC,EAAU,CACZ,MAAqDA,EAAhChP,EAArB,EAAQwM,YAAkCvM,EAA1C,EAA4BsM,aAExBvM,IAAUmC,EAAKnC,OAASC,IAAWkC,EAAKlC,SAC1CkC,EAAO,CAAEnC,QAAOC,UAChB/E,EAAK,SAAUiH,KAKrB,IAMMlH,EANAG,EAAKC,kCAKX,GAFAuC,OAAOC,OAAOzC,EAAGG,MAAO,CAAE0T,aAEN,IAAhBP,EA4BF,OAzBAlF,wBAAU,WACRxB,uBAAS,WACPgH,EAAW5T,EAAGG,MAAM6T,IAAIC,WAEpBL,IACF/T,EAAW,IAAI0T,eAAeM,GAC9BhU,EAASyE,QAAQsP,GACjBG,WAKN7P,8BAAgB,WACdmJ,aAAasG,QAEI,IAAb9T,SAC0B,IAAxBA,EAASmF,WACXnF,EAASmF,aAEF4O,GACP/T,EAASqU,UAAUN,OAKlBO,OAEJ,CACH,IAEIC,EAFEhB,EAAYiB,IAIlB,SAASzJ,IACPyC,aAAasG,QAEM,IAAfS,SAEqC,IAAnCA,EAAWE,qBACbF,EAAWE,oBAAoB,SAAUT,EAASU,OAAWC,SAE/DJ,OAAa,GAIjB,SAASK,IACP7J,IAEIgJ,GAAYA,EAASc,kBACvBN,EAAaR,EAASc,gBAAgBC,YACtCP,EAAWQ,iBAAiB,SAAUf,EAASU,OAAWC,SAC1DT,KAaJ,OATA3F,wBAAU,WACRxB,uBAAS,WACPgH,EAAW5T,EAAGG,MAAM6T,IACpBJ,GAAYa,UAIhBvQ,6BAAgB0G,GAET,WACL,IAAwB,IAApBwI,EAAUrV,MACZ,OAAOI,eAAE,SAAU,CACjBH,MAAOwV,EAAYxV,MACnB6W,UAAW,EACXjW,KAAM,YACNkW,KAAMtB,EAAYC,IAClB,cAAe,OACfsB,OAAQN,U,kCCpIpB,4BAIe1X,oCAAgB,CAC7BC,KAAM,eAENC,MAAO,CACL2K,OAAQzK,QACR6X,UAAW7X,QACXmK,KAAMnK,QACN2O,IAAK3O,QACL8X,OAAQ9X,SAGVM,MAX6B,SAWtBR,EAXsB,GAWJ,IAATS,EAAS,EAATA,MACRI,EAAUF,uBAAS,iBACvB,sDACyC,IAAjBX,EAAM2K,SAAkC,IAAf3K,EAAMqK,OAAqC,IAApBrK,EAAM+X,UAAqB,OAAS,UAC3F,IAAd/X,EAAM6O,IAAe,sCAAwC,qBAC5C,IAAjB7O,EAAM2K,OAAkB,2BAA6B,MACjC,IAApB3K,EAAM+X,UAAqB,8BAAgC,MAC1C,IAAjB/X,EAAMgY,OAAkB,2BAA6B,OAG1D,OAAO,kBAAM9W,eAAE,MAAO,CAAEC,MAAON,EAAQC,OAASM,eAAMX,EAAMY,e,uBCzBhE,IAAI4W,EAAU,EAAQ,QAItB9F,EAAOC,QAAU,SAAUtR,GACzB,GAAoB,iBAATA,GAAuC,UAAlBmX,EAAQnX,GACtC,MAAMoX,UAAU,wBAElB,OAAQpX,I,oCCRV,W,8JCWehB,oCAAgB,CAC7BC,KAAM,UAENC,MAAO,CACLmY,UAAWjY,QACXkO,KAAM,CACJzM,KAAMpB,OACNc,QAAS,cACTW,UAAW,SAAAuJ,GAAC,MAAI,gCAAgC6M,KAAK7M,EAAE8M,iBAGzDC,SAAUC,SACVC,eAAgBD,SAChBzB,SAAUyB,UAGZ/X,MAhB6B,SAgBtBR,EAhBsB,GAgBE,IAgGzB0W,EAhGUjW,EAAe,EAAfA,MAAOoC,EAAQ,EAARA,KACrB,EAA0BG,kCAATC,EAAjB,EAAQC,MAASD,GAEXwV,EAAUrV,iBAAI,MAGdwE,EAASxE,iBAAIH,EAAGyE,OAAOE,QACvBD,EAAQvE,kBAAwB,IAApBpD,EAAMmY,UAAqB,EAAIlV,EAAGyE,OAAOC,OACrD+Q,EAAStV,iBAAI,CAAEsM,SAAU,EAAGkB,UAAW,OAAQ+H,gBAAiB,IAGhEC,EAAkBxV,iBAAI,GACtB0M,EAAiB1M,kBAAuC,IAAnCgT,OAAyBtV,MAAiB,EAAI8U,kBAEnE/U,EAAUF,uBAAS,iBACvB,wBACuB,IAApBX,EAAMmY,UAAqB,gBAAkB,eAG5CpX,EAAQJ,uBAAS,kBACD,IAApBX,EAAMmY,UACF,CAAE7C,UAAWrS,EAAGyE,OAAOE,OAAS,MAChC,QAIAiR,EAAclY,uBAAS,kBACF,IAAzBmP,EAAehP,MAAf,mBACwB,IAAhBmC,EAAGO,KAAKC,IAAe,OAAS,QADxC,UACuDqM,EAAehP,MADtE,OAEI,QAGAgY,EAAmBnY,uBAAS,wBACP,IAAzBmP,EAAehP,OAAf,uBAEwB,IAAhBmC,EAAGO,KAAKC,IAAe,QAAU,OAAU,GAFnD,kBAGwB,IAAhBR,EAAGO,KAAKC,IAAe,OAAS,QAHxC,WAGwDqM,EAAehP,MAHvE,sDAI6BgP,EAAehP,MAJ5C,WAMI,QAGN,SAASiY,EAAclB,GACrB,IAAwB,IAApB7X,EAAMmY,YAAoD,IAA9B/P,SAAS4Q,iBAA2B,CAClE,IAAMC,EAAO,CACXvJ,SAAUmI,EAAKnI,SAASb,IACxB+B,UAAWiH,EAAKjH,UAChBsI,iBAAkBrB,EAAKqB,iBACvBP,gBAAiBd,EAAKc,gBAAgB9J,IACtCsK,MAAOtB,EAAKsB,MAAMtK,KAGpB6J,EAAO5X,MAAQmY,OACI,IAAnBjZ,EAAMsY,UAAuBzV,EAAK,SAAUoW,IAIhD,SAASG,EAAcvB,GACrB,IAAgBwB,EAA+BxB,EAAvCjQ,OAA0B0R,EAAazB,EAApBlQ,MACvB4R,GAAU,EAEV3R,EAAO9G,QAAUuY,IACnBE,GAAU,EACV3R,EAAO9G,MAAQuY,OACU,IAAzBrZ,EAAMwY,gBAA6B3V,EAAK,gBAAiBwW,GACzDG,KAEE7R,EAAM7G,QAAUwY,IAClBC,GAAU,EACV5R,EAAM7G,MAAQwY,IAGA,IAAZC,QAAuC,IAAnBvZ,EAAM8W,UAC5BjU,EAAK,SAAUgV,GAInB,SAAS4B,EAAT,GAAwC,IAAV7R,EAAU,EAAVA,OACxBgR,EAAgB9X,QAAU8G,IAC5BgR,EAAgB9X,MAAQ8G,EACxB4R,KAIJ,SAASA,IACP,IAAwB,IAApBxZ,EAAMmY,UAAoB,CAC5B,IAAMxQ,EAAQC,EAAO9G,MAAQ8X,EAAgB9X,MACzC8U,iBACA,EAEA9F,EAAehP,QAAU6G,IAC3BmI,EAAehP,MAAQ6G,IAO7B,IAAMyB,EAAU,CACdgE,UAAW,GACXgB,KAAMzN,uBAAS,kBAAMX,EAAMoO,QAC3Bb,YAAa5M,uBAAS,kBAAMX,EAAMmY,aAElCM,UAEA7Q,SACAgR,kBACA9I,iBACAlD,WAAYjM,uBAAS,kBAAMgH,EAAM7G,MAAQgP,EAAehP,SAExD8N,KAAMjO,uBAAS,WACb,IAAMiO,EAAO5O,EAAMoO,KAAKiK,cAAc7E,MAAM,KAC5C,MAAO,CACL3E,IAAKD,EAAM,GAAI4E,MAAM,IACrBO,OAAQnF,EAAM,GAAI4E,MAAM,IACxBzE,OAAQH,EAAM,GAAI4E,MAAM,QAI5BpT,OAAQsZ,sBAAS,CAAE5P,KAAM,EAAG3H,OAAQ,EAAGyH,OAAO,IAC9CG,MAAO2P,sBAAS,CAAE5P,KAAM,IAAK3H,OAAQ,EAAGyH,OAAO,IAC/CI,OAAQ0P,sBAAS,CAAE5P,KAAM,EAAG3H,OAAQ,EAAGyH,OAAO,IAC9CM,KAAMwP,sBAAS,CAAE5P,KAAM,IAAK3H,OAAQ,EAAGyH,OAAO,IAE9C8O,SAEAzL,QA5Bc,gBA6BE,IAAVyJ,EACFtG,aAAasG,GAGbtO,SAASC,KAAK9B,UAAU+B,IAAI,0BAG9BoO,EAAQ/N,YAAW,WACjBP,SAASC,KAAK9B,UAAUqC,OAAO,0BAC/B8N,OAAQ,IACP,MAGL3F,OA1Cc,SA0CN4I,EAAM7I,EAAMjK,GAClBuC,EAASuQ,GAAQ7I,GAASjK,IAM9B,OAFA4C,qBAAQH,OAAWF,GAEZ,WACL,IAAMsI,EAAUkI,eAAWnZ,EAAMY,QAAS,CACxCH,eAAE2Y,OAAiB,CAAEvB,SAAUS,IAC/B7X,eAAE4Y,OAAiB,CAAEhD,SAAUsC,MAG3BW,EAAS7Y,eAAE,MAAO,CACtBC,MAAON,EAAQC,MACfC,MAAOA,EAAMD,MACbsC,KAAyB,IAApBpD,EAAMmY,eAAqB,EAASM,GACxC/G,GAEH,OAAwB,IAApB1R,EAAMmY,UACDjX,eAAE,MAAO,CACdC,MAAO,qCACPiC,IAAKqV,GACJ,CACDvX,eAAE4Y,OAAiB,CAAEhD,SAAU2C,IAC/BvY,eAAE,MAAO,CACPC,MAAO,gBACPJ,MAAO8X,EAAY/X,OAClB,CACDI,eAAE,MAAO,CACPC,MAAO,SACPJ,MAAO+X,EAAiBhY,OACvB,CAAEiZ,QAKJA,O,iFC/L6C,4B,GAK7C5Y,MAAM,oC,0XAjBf,yBAuBW,GAvBD4K,SAAA,GAAS5K,MAAM,yC,+BACvB,iBAqBY,CArBZ,yBAqBY,GArBDA,MAAM,qBAAmB,C,8BAClC,iBAQE,CARF,yBAQE,GAPA6Y,KAAA,GACA/G,MAAA,GACAgH,MAAA,GACC,QAAO,EAAAC,iBACRC,aAAW,OACXC,KAAK,WACLjZ,MAAM,yC,oBAGR,yBAEkB,GAFDA,MAAM,4BAA0B,C,8BAAC,iBAElD,C,YACA,yBAAW,GACX,yBAA8B,GAAjBwS,SAAA,GAAS0G,MAAA,KACtB,yBAEM,MAFN,EAA8C,KAC3C,6BAAG,EAAAC,SAASC,YAAU,GAEzB,yBAA8B,GAAjB5G,SAAA,GAAS0G,MAAA,KACtB,yBAAsD,GAAzClZ,MAAM,wC,+DCnBH,Y,wMAFpB,yBAIS,GAJDqZ,UAAA,GAAW,QAAO,EAAAC,S,+BACxB,iBAEiB,CAFjB,yBAEiB,Q,8BADb,iBAAqC,CAArC,yBAAqC,Q,8BAAvB,iBAAQ,C,sFCCjB,+BAAgB,CAC7Bja,MAD6B,WAE3B,IAAMka,EAAa,iBAEnB,MAAO,CACCD,QADD,WACQ,6JACLC,EAAWD,UADN,kD,yDCNnB,EAAO9I,OAAS,EAED,QAKf,IAAS,EAAQ,aAAc,CAACG,QAAA,KAAMC,eAAA,KAAa4I,aAAA,O,gBCJpC,+BAAgB,CAC7BC,WAAY,CACVC,eAEFra,MAJ6B,WAK3B,IAAMuK,EAAkB,iBAExB,MAAO,CACLmP,iBAAkBnP,EAAgBmP,iBAClCI,SAAA,W,0DCRSxa,+BAAgB,CAC7BC,KAAM,UAENC,MAAO,CACL2G,WAAY,CACVhF,KAAMzB,QACNmB,SAAS,GAEXyZ,OAAQ5a,QACR6a,aAAc,CACZpZ,KAAMrB,OACNe,QAAS,KAEXiJ,SAAUpK,QACV6L,SAAU7L,QAEV8a,WAAY,CACVrZ,KAAM,CAAEpB,OAAQD,QAChBe,QAAS,KAIboB,MAAO,CAAE,SAAU,WAEnBjC,MAxB6B,SAwBtBR,EAxBsB,GAwBE,IAAfS,EAAe,EAAfA,MAAOoC,EAAQ,EAARA,KACrB,EAA0BG,kCAATC,EAAjB,EAAQC,MAASD,GAEXmG,EAAUC,oBAAOC,QAAW,WAChCC,QAAQC,MAAM,2CAGVM,EAAO1G,iBAAIxC,SAASZ,EAAMgb,WAAY,KACtCC,EAAW7X,kBAAI,GAEf+K,EAAQxN,uBAAS,kBACJ,IAAjBX,EAAM8a,QACH1R,EAAQgF,KAAKtN,MAAMuN,QAAQ,MAAQ,IACL,IAA9BjF,EAAQmE,YAAYzM,SAGnBqB,EAASxB,uBAAS,WACtB,IAAyB,IAArBX,EAAM2G,WACR,OAAO,EAET,IAAoB,IAAhBwH,EAAMrN,MACR,OAA0B,IAAnBma,EAASna,MAAiBgJ,EAAKhJ,MAAQ,EAEhD,IAAMqB,EAAS2H,EAAKhJ,MAAQsI,EAAQsP,OAAO5X,MAAM4O,SACjD,OAAOvN,EAAS,EAAIA,EAAS,KAGzB+Y,EAASva,uBAAS,kBAA2B,IAArBX,EAAM2G,aACd,IAAhBwH,EAAMrN,QAAqC,IAAnBma,EAASna,SAGjCqa,EAAgBxa,uBAAS,kBACR,IAArBX,EAAM2G,aAAwC,IAAjBuU,EAAOpa,QAAmC,IAAjBd,EAAM8a,UAGxDja,EAAUF,uBAAS,iBACvB,0CACmB,IAAhBwN,EAAMrN,MAAiB,QAAU,YAAc,SAC5B,IAAnBd,EAAMsK,SAAoB,sBAAwB,MACjC,IAAjB4Q,EAAOpa,MAAiB,oBAAsB,MACzB,IAArBd,EAAM2G,WAAsB,2BAA6B,OAGxD5F,EAAQJ,uBAAS,WACrB,IACEyN,EAAOhF,EAAQwF,KAAK9N,MAAM+N,IAC1BlF,EAAM,GASR,MAPkB,MAAdyE,EAAM,KAAsC,IAAvBhF,EAAQc,KAAKN,QACpCD,GAAqB,IAAhB1G,EAAGO,KAAKC,IAAe,QAAU,QAAtC,UAAqD2F,EAAQc,KAAKJ,KAAlE,OAEgB,MAAdsE,EAAM,KAAuC,IAAxBhF,EAAQW,MAAMH,QACrCD,GAAqB,IAAhB1G,EAAGO,KAAKC,IAAe,OAAS,SAArC,UAAqD2F,EAAQW,MAAMD,KAAnE,OAGKH,KAGT,SAASkH,EAAcC,EAAMjK,GAC3BuC,EAAQ2H,OAAO,SAAUD,EAAMjK,GAGjC,SAASmJ,EAAac,EAAMjK,GACtBiK,EAAKhQ,QAAU+F,IACjBiK,EAAKhQ,MAAQ+F,GAIjB,SAASiQ,EAAT,GAA+B,IAAVlP,EAAU,EAAVA,OACnBoI,EAAYlG,EAAMlC,GAClBiJ,EAAa,OAAQjJ,GAGvB,SAASwT,EAAWlU,IACU,IAAxBiU,EAAcra,OAChBkP,EAAYiL,GAAU,GAGxBpY,EAAK,UAAWqE,GAGlBN,oBAAM,kBAAM5G,EAAM2G,cAAY,SAAAE,GAC5BgK,EAAa,QAAShK,GACtBmJ,EAAYiL,GAAU,GACtB7R,EAAQ6D,aAGVrG,mBAAMzE,GAAQ,SAAA0E,GACZgK,EAAa,SAAUhK,MAGzBD,oBAAM,kBAAM5G,EAAM8a,UAAQ,SAAAjU,IAChB,IAARA,GAAiBmJ,EAAYiL,EAAUjb,EAAM2G,eAG/CC,mBAAMqU,GAAU,SAAApU,GACduC,EAAQ6D,UACRpK,EAAK,SAAUgE,MAGjBD,mBAAMwC,EAAQsP,QAAQ,SAAAA,IACH,IAAjB1Y,EAAM8a,QAAmB9K,EAAYiL,EACd,OAArBvC,EAAO9H,WACJ8H,EAAOhJ,UAAY1P,EAAM+a,cACzBrC,EAAOhJ,SAAWgJ,EAAOC,gBAAkB,QAIlD,IAAM9K,EAAW,GAgBjB,OAdAzE,EAAQgE,UAAUhN,OAASyN,GACN,IAArB7N,EAAM2G,YAAuBkK,EAAa,OAAQ/G,EAAKhJ,OACvD+P,EAAa,QAAS7Q,EAAM2G,YAC5BkK,EAAa,SAAU1O,EAAOrB,OAE9BmG,8BAAgB,WACVmC,EAAQgE,UAAUhN,SAAWyN,IAC/BzE,EAAQgE,UAAUhN,YAAS,EAC3ByQ,EAAa,OAAQ,GACrBA,EAAa,SAAU,GACvBA,EAAa,SAAS,OAInB,WACL,IAAMO,EAAQiK,eAAY5a,EAAMY,QAAS,IAezC,OAbmB,IAAnBrB,EAAM+L,UAAqBqF,EAAMC,KAC/BnQ,eAAE,MAAO,CACPC,MAAO,sEAIXiQ,EAAMC,KACJnQ,eAAE4Y,OAAiB,CACjBrD,SAAU,EACVK,cAIG5V,eAAE,SAAU,CACjBC,MAAON,EAAQC,MACfC,MAAOA,EAAMD,MACbsa,aACChK,OC3KMtR,+BAAgB,CAC7BC,KAAM,WAENC,MAAO,CACLqa,MAAOna,SAGTM,MAP6B,SAOtBR,EAPsB,GAOJ,IAATS,EAAS,EAATA,MACRI,EAAUF,uBAAS,iBACvB,uCACmB,IAAhBX,EAAMqa,MAAiB,oBAAsB,OAGlD,OAAO,kBAAMnZ,eAAE,MAAO,CAAEC,MAAON,EAAQC,OAASM,eAAMX,EAAMY,c,YCbjDvB,+BAAgB,CAC7BC,KAAM,gBAENC,MAAO,CACLsb,OAAQpb,SAGVM,MAP6B,SAOtBR,EAPsB,GAOJ,IAATS,EAAS,EAATA,MACRI,EAAUF,uBAAS,iBACvB,8BACoB,IAAjBX,EAAMsb,OAAkB,cAAgB,OAG7C,OAAO,kBAAMpa,eAAE,MAAO,CAAEC,MAAON,EAAQC,OAASM,eAAMX,EAAMY,cCf1DuI,EAAQ1I,eAAE,MAAO,CAAEC,MAAO,YAEjBrB,+BAAgB,CAC7BC,KAAM,SAENS,MAH6B,WAI3B,OAAO,kBAAMoJ,M,YCHjB,EAAO+H,OAASA,EAED,SAQf,IAAS,EAAQ,aAAc,CAAC4J,UAAQC,WAASC,OAAA,KAAKC,gBAAcC,SAAOC,aAAA,Q,kCCf3E,4BAIe,gBACb5b,EACAwE,GAEA,IACIqX,EADEpX,EAAoBrB,iBAAI,MAG9B,SAASsB,EAAmBpC,EAAcwE,GACxC,IAAMgV,EAAS,GAAH,YAAc,IAAPhV,EAAgB,MAAQ,SAA/B,iBACNiV,OAAmB,IAAPjV,EAAgBA,EAAK+U,EAEnCvZ,IAAiBgS,QACnBhS,EAAcwZ,GAAS,SAAUC,EAAWzE,OAAWC,SAGzDjD,OAAQwH,GAAS,SAAUC,EAAWzE,OAAWC,SAEjDsE,EAAW/U,EAGb,SAASnC,IACyB,OAA5BF,EAAkB3D,QACpB4D,EAAkBD,EAAkB3D,OACpC2D,EAAkB3D,MAAQ,MAI9B,IAAMkb,EAAuBpV,oBAAM,kBAAM5G,EAAM6I,iBAAe,WAC5B,OAA5BpE,EAAkB3D,QACpB6D,IACAH,QAMJ,OAFAyC,6BAAgB+U,GAET,CACLvX,oBACAE,0BACAD,uB,oCC3CJ,kGAOanD,EAAiB,CAC5B+E,OAAQ,CACNjF,SAAS,GAEXwH,cAAe3I,QACf+b,YAAa/b,SAGA,mBAIZ,IAKGgc,EARJ7Y,EAGC,EAHDA,QACA8Y,EAEC,EAFDA,UACAtX,EACC,EADDA,kBAEA,EAA+B7B,kCAAvBhD,EAAR,EAAQA,MAAOkD,EAAf,EAAeA,MAAOL,EAAtB,EAAsBA,KAEhBiC,EAAW1B,iBAAI,MAIrB,SAAS2B,EAASmC,GAEhB,OAA0B,OAAnBpC,EAAShE,aAEH,IAARoG,QAAkC,IAAhBA,EAAIkV,SAAsBlV,EAAIkV,QAAQ3I,QAAU,GAGzE,IAAMzO,EAAe,GAyFrB,SAASqX,IACPrU,eAAShD,EAAc,UAGzB,SAASsX,EAAarU,GACpBnD,EAAShE,MAAQmH,EACjB,MAAOnD,EAAShE,MAAMyF,UAAUC,SAAS,kBACvC1B,EAAShE,MAAQgE,EAAShE,MAAMkW,WAElCnS,IAGF,SAAS0X,IACP,IAAqB,IAAjBvc,EAAMsG,QAAqC,KAAjBtG,EAAMsG,OAClCxB,EAAShE,MAAQ,UAEd,IAAqB,IAAjBd,EAAMsG,OACbgW,EAAYpZ,EAAM6T,IAAIC,gBAEnB,CACH,IAAI/O,EAAKjI,EAAMsG,OAEf,GAA4B,kBAAjBtG,EAAMsG,OACf,IACE2B,EAAKG,SAASoU,cAAcxc,EAAMsG,QAEpC,MAAOmW,GACLxU,OAAK,OAIE,IAAPA,GAAwB,OAAPA,GACnBnD,EAAShE,MAAQmH,EAAG8O,KAAO9O,EAC3BpD,MAGAC,EAAShE,MAAQ,KACjByI,QAAQC,MAAR,0BAAkCxJ,EAAMsG,OAAxC,kBA4CN,YAxK0B,IAAtBzB,IAIFU,OAAOC,OAAOR,EAAc,CAC1BM,KAD0B,SACpB4B,GACJhE,EAAMoC,KAAK4B,IAGbwV,OAL0B,SAKlBxV,GACNhE,EAAMwZ,OAAOxV,IAGfyV,UAT0B,SASfzV,IACc,IAAvB0V,eAAU1V,EAAK,KAAgBhE,EAAMwZ,OAAOxV,IAG9C2V,aAb0B,SAaZ3V,GACZhE,EAAMoC,KAAK4B,GACXyI,uBAAS,WAAQzM,EAAMmC,KAAK6B,MAC5B4V,eAAQ5V,IAGV6V,cAAeD,OAEfE,YArB0B,SAqBb9V,GAGX,GAFAlC,EAAaiY,cAAc/V,IAEN,IAAjBnC,EAAQmC,GAAZ,CAIAhE,EAAMoC,KAAK4B,GACXpC,EAAShE,MAAMyF,UAAU+B,IAAI,kBAE7B,IAAMhC,EAASiC,eAAerB,EAAIZ,QAClCoC,eAAO1D,EAAc,SAAU,CAC7B,CAAEsB,EAAQ,YAAa,gBAAiB,WACxC,CAAEA,EAAQ,WAAY,gBAAiB,WACvC,CAAEA,EAAQ,cAAe,gBAAiB,WAC1C,CAAExB,EAAShE,MAAO,cAAe,gBAAiB,gBAGpDob,EAAavT,YAAW,WACtBzF,EAAMmC,KAAK6B,KACV,OAGL+V,cA5C0B,SA4CX/V,GACbpC,EAAShE,MAAMyF,UAAUqC,OAAO,kBAChCwH,aAAa8L,IAES,IAAlB7Y,EAAQvC,YAA0B,IAARoG,GAC5BiB,oBAKNtD,EAAoB,WAAuC,IAGrD2D,EAHwB0U,EAA6B,uDAAnBld,EAAMic,aAChB,IAAxBjc,EAAM6I,eAA6C,OAAnB/D,EAAShE,QAMzC0H,GAFY,IAAZ0U,GACkC,IAAhCha,EAAMD,GAAG+C,SAASC,GAAGC,OAChB,CACL,CAAEpB,EAAShE,MAAO,aAAc,cAAe,YAI1C,CACL,CAAEgE,EAAShE,MAAO,QAAS,OAAQ,WACnC,CAAEgE,EAAShE,MAAO,cAAe,eAAgB,eAK9C,CACL,CAAEgE,EAAShE,MAAO,QAAS,SAAU,WACrC,CAAEgE,EAAShE,MAAO,QAAS,YAAa,YAI5C4H,eAAO1D,EAAc,SAAUwD,MA8CnC5B,oBAAM,kBAAM5G,EAAMic,eAAa,SAAApV,GACN,OAAnB/B,EAAShE,QACXub,IACAxX,EAAkBgC,OAItBD,oBAAM,kBAAM5G,EAAMsG,UAAQ,WACD,OAAnBxB,EAAShE,OACXub,IAGFE,OAGF3V,oBAAM,kBAAM5G,EAAM6I,iBAAe,SAAAhC,GACR,OAAnB/B,EAAShE,SACC,IAAR+F,EACFwV,IAGAxX,QAKNsM,wBAAU,WACRoL,KAEkB,IAAdJ,IAA2C,IAArBnc,EAAM2G,YAA0C,OAAnB7B,EAAShE,OAC9D+B,EAAK,qBAAqB,MAI9BoE,8BAAgB,WACdmJ,aAAa8L,GACbG,OAGK,CACLvX,WACAC,UACAC,kB,oJCrMWlF,oCAAgB,CAC7BC,KAAM,QAENC,MAAO,gDACFsL,QACA6R,QAFA,IAIHC,IAAK,CACHzb,KAAMpB,OACNc,QAAS,OAGXgc,OAAQnd,QAERsa,UAAWta,QACX+S,MAAO/S,QACPod,WAAYhd,OAEZsX,SAAU,CAAErX,OAAQD,QAEpBid,QAASrd,QACTsd,YAAatd,UAGfuC,MAAO,CAAE,QAAS,SAElBjC,MA1B6B,SA0BtBR,EA1BsB,GA0BE,IAAfS,EAAe,EAAfA,MAAOoC,EAAQ,EAARA,KACrB,EAA0BG,kCAATC,EAAjB,EAAQC,MAASD,GAEXsJ,EAASC,eAAQxM,EAAOiD,GAC9B,EAAmEwa,iBAA3DC,EAAR,EAAQA,QAASC,EAAjB,EAAiBA,UAAWC,EAA5B,EAA4BA,UAAWC,EAAvC,EAAuCA,QAASC,EAAhD,EAAgDA,eAE1CrF,EAAUrV,iBAAI,MACd2a,EAAgB3a,iBAAI,MAEpB4a,EAAerd,uBAAS,kBACR,IAApBX,EAAMwa,YACiB,IAAlBkD,EAAQ5c,OACM,MAAdd,EAAMod,KACQ,UAAdpd,EAAMod,OAGPa,EAActd,uBAAS,kBACT,IAAlBX,EAAMke,UAA2C,IAAvBF,EAAald,SAGnCD,EAAUF,uBAAS,iBACvB,mCACmB,IAAhBX,EAAMiT,MAAiB,iBAAmB,MACzB,IAAjB1G,EAAOzL,MAAiB,gBAAkB,MAEzB,IAAlB4c,EAAQ5c,MACJ8c,EAAU9c,OAES,IAAjBd,EAAMqd,OAAN,eAC8B,IAAtBrd,EAAMme,YAAN,WAAoCne,EAAMme,aAAiB,GADnE,mBAEI,MAGS,IAAlBne,EAAMke,QAAmB,YAAc,MAElB,IAAtBD,EAAYnd,MACR,8CACyB,IAAtBd,EAAMwd,YAAuB,qBAAuB,6BAClC,IAAlBxd,EAAMud,QAAmB,+BAAiC,IAC7D,OAIFxc,EAAQJ,uBAAS,WACrB,QAAyB,IAArBX,EAAMsd,WACR,OAAO,KAGT,IAAMlO,GAAsB,IAAhBnM,EAAGO,KAAKC,IAAe,QAAU,OAC7C,yBACI,UAAY2L,EAAQ,GAAwB,GAAnBpP,EAAMsd,WAAmB,SAIxD,SAAS7L,EAASpL,IACU,IAAtB4X,EAAYnd,QACc,OAAxBid,EAAcjd,SACI,IAAhBuF,EAAE+X,WAAsBhW,SAASiW,gBAAkB5F,EAAQ3X,MAC7Did,EAAcjd,MAAMwd,QAEblW,SAASiW,gBAAkBN,EAAcjd,OAChD2X,EAAQ3X,MAAMwd,UAIA,IAAlBZ,EAAQ5c,OAAkBgd,EAAezX,GACzCxD,EAAK,QAASwD,IAIlB,SAASkY,EAASlY,GAChB,IAA0B,IAAtB4X,EAAYnd,QAAuC,IAArB8b,eAAUvW,EAAG,IAAc,CAC3DI,eAAeJ,GAGfA,EAAE+X,WAAY,EAGd,IAAMlX,EAAM,IAAIsX,WAAW,QAASnY,GACpCa,EAAIkX,WAAY,EAChB3F,EAAQ3X,MAAM2d,cAAcvX,GAG9BrE,EAAK,QAASwD,GAGhB,SAASqY,IACP,IAAMtN,EAAQiK,eAAY5a,EAAMY,QAAS,IAMzC,OAJsB,IAAtB4c,EAAYnd,OAAkBsQ,EAAMuN,QAClCzd,eAAE,MAAO,CAAEC,MAAO,iBAAkByW,UAAW,EAAGxU,IAAK2a,KAGlD3M,EAGT,OAAO,WACL,IAAMyG,EAAO,CACXzU,IAAKqV,EACLtX,MAAON,EAAQC,MACfC,MAAOA,EAAMD,MACb2Q,UACA8M,WAWF,OAR0B,IAAtBN,EAAYnd,OACd+W,EAAKD,SAAW5X,EAAM4X,UAAY,IAClCrS,OAAOC,OAAOqS,EAAM8F,EAAU7c,SAEA,IAAvBkd,EAAald,QACpB+W,EAAM,iBAAoB,QAGrB3W,eACL2c,EAAQ/c,MACR+W,EACA6G,U,4GCjJR,SAASE,EAAY1X,EAAK2X,EAAKtO,GAC7B,IAEEnB,EAFIkE,EAAM5D,eAASxI,GAGnB4X,EAAQxL,EAAIpJ,KAAO2U,EAAIE,MAAM9O,EAC7B+O,EAAQ1L,EAAIzE,IAAMgQ,EAAIE,MAAME,EAC5BC,EAAOtP,KAAKC,IAAIiP,GAChBK,EAAOvP,KAAKC,IAAImP,GAEZpO,EAAYiO,EAAIjO,WAEO,IAAzBA,EAAUgD,aAA8C,IAAvBhD,EAAU+C,SAC7CvE,EAAM0P,EAAQ,EAAI,OAAS,SAEK,IAAzBlO,EAAUgD,aAA8C,IAAvBhD,EAAU+C,SAClDvE,EAAM4P,EAAQ,EAAI,KAAO,QAED,IAAjBpO,EAAUwO,IAAeJ,EAAQ,GACxC5P,EAAM,KACF8P,EAAOC,KACc,IAAnBvO,EAAU1G,MAAiB4U,EAAQ,EACrC1P,EAAM,QAEqB,IAApBwB,EAAU7G,OAAkB+U,EAAQ,IAC3C1P,EAAM,YAIgB,IAAnBwB,EAAUyO,MAAiBL,EAAQ,GAC1C5P,EAAM,OACF8P,EAAOC,KACc,IAAnBvO,EAAU1G,MAAiB4U,EAAQ,EACrC1P,EAAM,QAEqB,IAApBwB,EAAU7G,OAAkB+U,EAAQ,IAC3C1P,EAAM,YAIgB,IAAnBwB,EAAU1G,MAAiB4U,EAAQ,GAC1C1P,EAAM,OACF8P,EAAOC,KACY,IAAjBvO,EAAUwO,IAAeJ,EAAQ,EACnC5P,EAAM,MAEoB,IAAnBwB,EAAUyO,MAAiBL,EAAQ,IAC1C5P,EAAM,WAIiB,IAApBwB,EAAU7G,OAAkB+U,EAAQ,IAC3C1P,EAAM,QACF8P,EAAOC,KACY,IAAjBvO,EAAUwO,IAAeJ,EAAQ,EACnC5P,EAAM,MAEoB,IAAnBwB,EAAUyO,MAAiBL,EAAQ,IAC1C5P,EAAM,UAKZ,IAAIkQ,GAAY,EAEhB,QAAY,IAARlQ,IAA8B,IAAZmB,EAAmB,CACvC,IAA0B,IAAtBsO,EAAIE,MAAMpO,cAA0C,IAAtBkO,EAAIE,MAAMQ,QAC1C,MAAO,GAGTnQ,EAAMyP,EAAIE,MAAMQ,QAChBD,GAAY,EAEA,SAARlQ,GAA0B,UAARA,GACpBkE,EAAIpJ,MAAQ4U,EACZI,EAAO,EACPJ,EAAQ,IAGRxL,EAAIzE,KAAOmQ,EACXG,EAAO,EACPH,EAAQ,GAIZ,MAAO,CACLM,YACAE,QAAS,CACPtY,MACAuY,OAA2B,IAApBZ,EAAIE,MAAMW,MACjBA,OAA2B,IAApBb,EAAIE,MAAMW,MACjBhQ,SAAU4D,EACV1C,UAAWxB,EACXuB,QAASkO,EAAIE,MAAMpO,QACnBJ,SAAqB,IAAZA,EACTlF,SAAUsU,KAAK9I,MAAQgI,EAAIE,MAAMa,KACjCtP,SAAU,CACRL,EAAGiP,EACHD,EAAGE,GAELhd,OAAQ,CACN8N,EAAG6O,EACHG,EAAGD,GAEL7F,MAAO,CACLlJ,EAAGqD,EAAIpJ,KAAO2U,EAAIE,MAAMc,MACxBZ,EAAG3L,EAAIzE,IAAMgQ,EAAIE,MAAMe,SAM/B,IAAIC,EAAM,EAEKC,OAEX,CACEjgB,KAAM,YAENkgB,YAHF,SAGehY,EAHf,GAGyC,IAApBnH,EAAoB,EAApBA,MAAOof,EAAa,EAAbA,UAExB,IAAwB,IAApBA,EAAUR,QAAuC,IAArBrL,OAAO8L,IAAIV,MAA3C,CAcA,IAAMZ,EAAM,CACVkB,IAAK,QAAWA,IAChBK,QAAStf,EACTof,YACAtP,UAAWyP,eAAsBH,GAEjChJ,YAEAoJ,WARU,SAQEpZ,GACNqZ,eAAYrZ,EAAK2X,IAAQ2B,eAAUtZ,KACrCwB,eAAOmW,EAAK,OAAQ,CAClB,CAAEzW,SAAU,YAAa,OAAQ,qBACjC,CAAEA,SAAU,UAAW,MAAO,oBAGhCyW,EAAI4B,MAAMvZ,GAAK,KAInBwZ,WAnBU,SAmBExZ,GACV,GAAIqZ,eAAYrZ,EAAK2X,GAAM,CACzB,IAAMvY,EAASiC,eAAerB,EAAIZ,QAElCoC,eAAOmW,EAAK,OAAQ,CAClB,CAAEvY,EAAQ,YAAa,OAAQ,qBAC/B,CAAEA,EAAQ,cAAe,MAAO,kBAChC,CAAEA,EAAQ,WAAY,MAAO,oBAG/BuY,EAAI4B,MAAMvZ,KAIduZ,MAjCU,SAiCHvZ,EAAKyZ,IACY,IAAtBtM,OAAOpO,GAAG2a,SAAoBC,eAAiB5Y,GAAI,GACnD4W,EAAIiC,QAAU5Z,EAEd,IAAMoM,EAAM5D,eAASxI,GAMrB,IAAmB,IAAfyZ,IAA0C,IAAnBT,EAAUa,KAAe,CAKlD,IACwB,IAAtBlC,EAAIjO,UAAUoQ,OACK,IAAfL,IAAqD,IAA9B9B,EAAIjO,UAAUqQ,aACzC,CACA,IAAMC,EAAQha,EAAIvF,KAAK0M,QAAQ,UAAY,EACvC,IAAImQ,WAAWtX,EAAIvF,KAAMuF,GACzB,IAAIia,WAAWja,EAAIvF,KAAMuF,IAEJ,IAAzBA,EAAIka,kBAA6BtE,eAAQoE,IACpB,IAArBha,EAAIma,cAAyBN,eAAKG,GAElCA,EAAMI,eAA8B,IAAlBpa,EAAIoa,UAClB,CAAEzC,EAAIkB,KACN7Y,EAAIoa,UAAUC,OAAO1C,EAAIkB,KAC7BmB,EAAM9C,UAAYlX,EAAIkX,UACtB8C,EAAMM,cAAgBta,EAAIsa,cAE1B3C,EAAI4C,aAAe,CACjBnb,OAAQY,EAAIZ,OACZyY,MAAOmC,GAIXH,eAAK7Z,GAGP2X,EAAIE,MAAQ,CACV9O,EAAGqD,EAAIpJ,KACP+U,EAAG3L,EAAIzE,IACP+Q,KAAMD,KAAK9I,MACX6I,OAAsB,IAAfiB,EACPe,UAAU,EACV/Q,SAAS,EACTJ,SAAS,EACTsP,MAAOvM,EAAIpJ,KACX4V,MAAOxM,EAAIzE,MAIf8S,KAvFU,SAuFJza,GACJ,QAAkB,IAAd2X,EAAIE,MAAR,CAIAF,EAAIiC,QAAU5Z,EAEd,IAAM0a,GAAiC,IAApB/C,EAAIE,MAAMW,MACvBe,EAAQ,WACZoB,EAAY3a,EAAK0a,IAEgB,IAA7B1B,EAAU4B,iBACZ1Z,SAAS2Z,gBAAgBhhB,MAAMihB,OAAS,aAE3B,IAAfJ,GAAuBxZ,SAASC,KAAK9B,UAAU+B,IAAI,+BACnDF,SAASC,KAAK9B,UAAU+B,IAAI,kBAC5BH,iBAEA0W,EAAIoD,aAAe,SAAAC,GAQjB,GAPArD,EAAIoD,kBAAe,GAEc,IAA7B/B,EAAU4B,iBACZ1Z,SAAS2Z,gBAAgBhhB,MAAMihB,OAAS,IAE1C5Z,SAASC,KAAK9B,UAAUqC,OAAO,mBAEZ,IAAfgZ,EAAqB,CACvB,IAAMhZ,EAAS,WACbR,SAASC,KAAK9B,UAAUqC,OAAO,qCAGX,IAAlBsZ,EACFvZ,YAAW,WACTC,IACAsZ,MACC,IAEEtZ,cAEkB,IAAlBsZ,GACPA,MAKN,IAA2B,IAAvBrD,EAAIE,MAAM2C,SAAd,CAwBA,IACwB,IAAtB7C,EAAIjO,UAAUoQ,MACK,IAAfY,IAAqD,IAA9B/C,EAAIqB,UAAUe,YAKzC,OAHAR,IACA5B,EAAIE,MAAM2C,UAAW,OACrB7C,EAAI8C,KAAKza,GAIX,IACEoM,EAAM5D,eAASxI,GACf4X,EAAQxL,EAAIpJ,KAAO2U,EAAIE,MAAM9O,EAC7B+O,EAAQ1L,EAAIzE,IAAMgQ,EAAIE,MAAME,EAC5BC,EAAOtP,KAAKC,IAAIiP,GAChBK,EAAOvP,KAAKC,IAAImP,GAEdE,IAASC,KAEqB,IAA7BN,EAAIjO,UAAUgD,YAAuBsL,EAAOC,IACd,IAA3BN,EAAIjO,UAAU+C,UAAqBuL,EAAOC,IACrB,IAArBN,EAAIjO,UAAUwO,IAAeF,EAAOC,GAAQH,EAAQ,IAC7B,IAAvBH,EAAIjO,UAAUyO,MAAiBH,EAAOC,GAAQH,EAAQ,IAC/B,IAAvBH,EAAIjO,UAAU1G,MAAiBgV,EAAOC,GAAQL,EAAQ,IAC9B,IAAxBD,EAAIjO,UAAU7G,OAAkBmV,EAAOC,GAAQL,EAAQ,GAE3DD,EAAIE,MAAM2C,UAAW,EACrB7C,EAAI8C,KAAKza,IAGT2X,EAAIsD,IAAIjb,GAAK,QAtDjB,EACwB,IAAtB2X,EAAIE,MAAMpO,SAAoBkR,EAAY3a,EAAK2X,EAAIE,MAAMW,OAEzD,MAA+Bd,EAAW1X,EAAK2X,GAAK,GAA5CW,EAAR,EAAQA,QAASF,EAAjB,EAAiBA,eAED,IAAZE,KAC2B,IAAzBX,EAAIuB,QAAQZ,GACdX,EAAIsD,IAAIjb,SAGiB,IAArB2X,EAAIoD,eAAiD,IAAtBpD,EAAIE,MAAMpO,SAC3C8P,IAGF5B,EAAIE,MAAMc,MAAQL,EAAQ9P,SAASxF,KACnC2U,EAAIE,MAAMe,MAAQN,EAAQ9P,SAASb,IACnCgQ,EAAIE,MAAMQ,SAAwB,IAAdD,OAAqB,EAASE,EAAQ5O,UAC1DiO,EAAIE,MAAMpO,SAAU,OA0C5BwR,IA/LU,SA+LLjb,EAAKkb,GACR,QAAkB,IAAdvD,EAAIE,MAAR,CAOA,GAHA/W,eAAS6W,EAAK,SACQ,IAAtBxK,OAAOpO,GAAG2a,SAAoBC,eAAiB5Y,GAAI,IAErC,IAAVma,OACmB,IAArBvD,EAAIoD,cAA2BpD,EAAIoD,gBAER,IAAvBpD,EAAIE,MAAM2C,eAA0C,IAArB7C,EAAI4C,cACrC5C,EAAI4C,aAAanb,OAAOmY,cAAcI,EAAI4C,aAAa1C,YAGtD,IAA2B,IAAvBF,EAAIE,MAAM2C,SAAmB,EACd,IAAtB7C,EAAIE,MAAMpO,SAAoBkO,EAAIuB,QAAQxB,OAAmB,IAAR1X,EAAiB2X,EAAIiC,QAAU5Z,EAAK2X,GAAKW,SAE9F,MAAoBZ,OAAmB,IAAR1X,EAAiB2X,EAAIiC,QAAU5Z,EAAK2X,GAAK,GAAhEW,EAAR,EAAQA,QACF1Y,EAAK,WAAQ+X,EAAIuB,QAAQZ,SAEN,IAArBX,EAAIoD,aACNpD,EAAIoD,aAAanb,GAGjBA,IAIJ+X,EAAIE,WAAQ,EACZF,EAAI4C,kBAAe,EACnB5C,EAAIiC,aAAU,KAIlB7Y,EAAGoa,YAAcxD,GAEG,IAApBqB,EAAUR,OAAkBhX,eAAOmW,EAAK,OAAQ,CAC9C,CAAE5W,EAAI,YAAa,aAAnB,kBAAuE,IAA3BiY,EAAUoC,aAAwB,UAAY,QAGvE,IAArBjO,OAAO8L,IAAIV,OAAkB/W,eAAOmW,EAAK,OAAQ,CAC/C,CAAE5W,EAAI,aAAc,aAApB,kBAAmE,IAAtBiY,EAAUqC,QAAmB,UAAY,KACtF,CAAEta,EAAI,YAAa,OAAQ,uBApP7B,SAAS4Z,EAAa3a,EAAKyZ,IACD,IAApBT,EAAUR,QAAiC,IAAfiB,EAC9Bla,eAAeS,KAGI,IAAnBgZ,EAAUa,MAAiBA,eAAK7Z,IACV,IAAtBgZ,EAAUpD,SAAoBA,eAAQ5V,MAkP5Csb,QAjQF,SAiQWva,EAjQX,GAiQoC,IAAnBwa,EAAmB,EAAnBA,SAAU3hB,EAAS,EAATA,MACjB+d,EAAM5W,EAAGoa,iBAEH,IAARxD,GAAkB4D,IAAa3hB,IAChB,oBAAVA,GAAwB+d,EAAIsD,MACnCtD,EAAIuB,QAAUtf,IAIlB4hB,cA1QF,SA0QiBza,GACb,IAAM4W,EAAM5W,EAAGoa,iBAEH,IAARxD,SAIY,IAAdA,EAAIE,OAAoBF,EAAIsD,MAE5Bna,eAAS6W,EAAK,QACd7W,eAAS6W,EAAK,SAEQ,IAAtBxK,OAAOpO,GAAG2a,SAAoBC,eAAiB5Y,GAAI,QAC9B,IAArB4W,EAAIoD,cAA2BpD,EAAIoD,sBAE5Bha,EAAGoa,gB,qBClZpBlQ,EAAOC,QAAU,IAA0B,uC,oLCArCuQ,EAAQ,CAAE,IAAK,KAAM,KAAM,KAAM,KAAM,MAEtC,SAASC,EAAkBC,GAChC,IAAIC,EAAI,EAER,MAAOliB,SAASiiB,EAAO,KAAO,MAAQC,EAAIH,EAAMlP,OAAS,EACvDoP,GAAS,OACPC,EAGJ,gBAAWD,EAAME,QAAQ,IAAzB,OAAgCJ,EAAOG,IAOlC,SAASzS,EAAS9E,EAAGkF,EAAKC,GAC/B,OAAOA,GAAOD,EACVA,EACAb,KAAKa,IAAIC,EAAKd,KAAKc,IAAID,EAAKlF,IAG3B,SAASyX,EAAqBzX,EAAGkF,EAAKC,GAC3C,GAAIA,GAAOD,EACT,OAAOA,EAGT,IAAM3G,EAAQ4G,EAAMD,EAAM,EAEtBwS,EAAQxS,GAAOlF,EAAIkF,GAAO3G,EAK9B,OAJImZ,EAAQxS,IACVwS,EAAQnZ,EAAOmZ,GAGA,IAAVA,EAAc,EAAIA,I,gICjCvBvM,E,YAGAwM,EAAsB5L,OAAtB4L,kBACFC,EAAiB,GAEnB,SAASC,EAAgBC,GACvB,MAA4C,QAApCA,EAAOA,EAAKC,oBAClB,GAAID,EAAK9c,UAAUC,SAAS,mBAC1B,OAAO,EAIX,OAAO,EAGT,SAAS+c,EAAerc,GACtBkJ,aAAasG,GAEb,IAAMpQ,EAASY,EAAIZ,OAEnB,QACa,IAAXA,GACuB,IAApBA,EAAOkd,WAC4C,IAAnDld,EAAOC,UAAUC,SAAS,qBAK/B,IAAK,IAAIid,EAAIN,EAAe1P,OAAS,EAAGgQ,GAAK,EAAGA,IAAK,CACnD,IAAMxY,EAAQkY,EAAgBM,GAC9B,GAE6B,OAAzBxY,EAAMnG,SAAShE,QAC8B,IAA1CmK,EAAMnG,SAAShE,MAAM0F,SAASF,IAGjCA,IAAW8B,SAASC,OACU,OAA1B4C,EAAM9H,SAASrC,QAA6D,IAA1CmK,EAAM9H,SAASrC,MAAM0F,SAASF,UAGpD,IAAhB2E,EAAMyY,QACgC,IAAlCN,EAAenY,EAAMyY,SAU3B,OAJAxc,EAAIsa,eAAgB,EACpBvW,EAAM7E,eAAec,IAQpB,SAASH,EAAiBZ,GAC/Bgd,EAAe9R,KAAKlL,GAEU,IAA1Bgd,EAAe1P,SACjBrL,SAASuP,iBAAiB,YAAa4L,EAAeL,GACtD9a,SAASuP,iBAAiB,aAAc4L,EAAeL,IAIpD,SAASlc,EAAoBb,GAClC,IAAM8c,EAAQE,EAAeQ,WAAU,SAAAziB,GAAC,OAAIA,IAAMiF,KAE9C8c,GAAS,IACXE,EAAeS,OAAOX,EAAO,GAEC,IAA1BE,EAAe1P,SACjBrD,aAAasG,GACbtO,SAASiP,oBAAoB,YAAakM,EAAeL,GACzD9a,SAASiP,oBAAoB,aAAckM,EAAeL,O,uBC7EhE,IAAIhR,EAAyB,EAAQ,QAEjC2R,EAAO,KAIX1R,EAAOC,QAAU,SAAU0R,EAAQ1G,EAAK2G,EAAWjjB,GACjD,IAAIkjB,EAAIzjB,OAAO2R,EAAuB4R,IAClCG,EAAK,IAAM7G,EAEf,MADkB,KAAd2G,IAAkBE,GAAM,IAAMF,EAAY,KAAOxjB,OAAOO,GAAOojB,QAAQL,EAAM,UAAY,KACtFI,EAAK,IAAMD,EAAI,KAAO5G,EAAM,M,oCCVrC,W,qBCWAjL,EAAOC,QAAU,SAAmB+R,EAAWxiB,EAAMyiB,GACnD,MAAMC,OAA0C,IAAxBF,EAAUG,UAC9BH,EAAUG,UACVH,EAEE7d,EAAS+d,EAAgB1iB,GAE/B,QAAe,IAAX2E,EACF+d,EAAgB1iB,GAAQyiB,OAGxB,IAAK,IAAIX,KAAKW,OACM,IAAd9d,EAAOmd,KACTnd,EAAOmd,GAAKW,EAAMX,M,qBCvB1BtR,EAAOC,QAAU,CAAC,OAAS,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,OAAS,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,OAAS,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,MAAQ,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,SAAW,UAAU,UAAY,UAAU,UAAY,UAAU,UAAY,UAAU,UAAY,UAAU,UAAY,UAAU,MAAQ,OAAO,MAAQ,UAAU,OAAS,UAAU,YAAc,wB,qBCDz+B,IAAImS,EAAQ,EAAQ,QAIpBpS,EAAOC,QAAU,SAAUoS,GACzB,OAAOD,GAAM,WACX,IAAInM,EAAO,GAAGoM,GAAa,KAC3B,OAAOpM,IAASA,EAAKC,eAAiBD,EAAK5E,MAAM,KAAKC,OAAS,O,kJCK7DgR,EAAe,CACnBC,GAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,IAGShlB,oCAAgB,CAC7BC,KAAM,QAENC,MAAO,gDACFsL,QACAyZ,QAFA,IAIH9R,MAAO/S,QAEPka,KAAM7Z,OACNykB,UAAWzkB,OACX0kB,WAAY1kB,OACZ2kB,aAAc3kB,OACd4kB,MAAO,CAAE5kB,OAAQD,QAEjB8kB,MAAO7kB,OACP8kB,UAAW9kB,OAEXoG,WAAY,CACVhF,KAAMzB,QACNmB,SAAS,GAEXikB,SAAU,CACR3jB,KAAMzB,QACNmB,QAAS,MAGXkkB,OAAQrlB,QACRslB,QAAStlB,QACTsa,UAAWta,QACXulB,UAAWvlB,QAEX0X,SAAU,CAAErX,OAAQD,QACpB4d,QAAShe,QAETwlB,OAAQ,CACN/jB,KAAM,CAAEzB,QAASqF,QACjBlE,SAAS,KAIboB,MAAO,CAAE,oBAAqB,kBAAmB,SAAU,SAE3DjC,MA3C6B,SA2CtBR,EA3CsB,GA2CE,IAAfS,EAAe,EAAfA,MAAOoC,EAAQ,EAARA,KACrB,EAA0BG,kCAATC,EAAjB,EAAQC,MAASD,GAEXsJ,EAASC,eAAQxM,EAAOiD,GACxB0iB,EAAYC,eAAQ5lB,EAAOykB,GAE3BoB,EAAcllB,uBAAS,kBAAyB,IAAnBX,EAAMslB,eAAoC,IAAftlB,EAAMoa,QAE9D0L,EAAWnlB,uBAAS,kBACL,IAAnBX,EAAMslB,SACFtlB,EAAMklB,cAAgBjiB,EAAG8iB,QAAQC,KAAKV,SACtCtlB,EAAMoa,QAGN6L,EAAatlB,uBAAS,kBAAMX,EAAMilB,YAAchiB,EAAG8iB,QAAQC,KAAKpd,UAEhEqV,EAActd,uBAAS,kBACT,IAAlBX,EAAMke,WACkB,IAApBle,EAAMwa,WAAyC,OAAnBxa,EAAMslB,aAGlCzkB,EAAUF,uBAAS,WACvB,IAAMulB,GAAyB,IAAlBlmB,EAAMwlB,SACfxlB,EAAMolB,OACNplB,EAAMqlB,UAEV,MAAO,2CACgB,IAAlBrlB,EAAMwlB,cAAqC,IAAhBxlB,EAAMolB,MAAjC,cAA4DplB,EAAMolB,OAAW,KAC7Ec,EAAO,SAAH,OAAaA,EAAb,oBAAuC,MACzB,IAAlBlmB,EAAMke,QAAmB,YAAc,MACvB,IAAhBle,EAAMiT,MAAiB,iBAAmB,MACxB,IAAlBjT,EAAMwlB,QAAmB,mBAAqB,MAC3B,IAAnBxlB,EAAMslB,SAAoB,oBAAsB,MAC1B,IAAtBrH,EAAYnd,MAAiB,+DAAiE,MAC7E,IAAjBd,EAAMulB,OAAkB,kBAAoB,MAC3B,IAAjBhZ,EAAOzL,MAAiB,uBAAyB,OAGlDwG,EAAa3G,uBAAS,kBACR,IAAlBX,EAAMke,QACF,CAAEtG,UAAW,EAAG,gBAAiB,QACjC,CAAEA,SAAU5X,EAAM4X,UAAY,MAGpC,SAAS2G,EAASlY,GACF,KAAdA,EAAE8f,SAA8B1U,EAAQpL,GAG1C,SAASoL,EAASpL,GACXrG,EAAMke,UACTrb,EAAK,mBAAoB7C,EAAMslB,UAC/BziB,EAAK,QAASwD,IAIlB,SAAS+f,EAAU/f,QACC,IAAdA,EAAE8f,SAAoC,KAAd9f,EAAE8f,UAC5B1f,eAAeJ,IACO,IAAlBrG,EAAMke,UACRrb,EAAK,qBAAqB,GAC1BA,EAAK,YAKX,SAAS6b,IACP,IAAMtN,EAAQ,IAEQ,IAAtB6M,EAAYnd,OAAkBsQ,EAAMC,KAClCnQ,eAAE,MAAO,CAAEC,MAAO,qBAGE,IAAtB0kB,EAAY/kB,OAAkBsQ,EAAMC,KAClCnQ,eAAE8Q,OAAO,CACP7Q,MAAO,kCACPpB,KAAM+lB,EAAShlB,SAInB,IAAMqkB,OAAwB,IAAhBnlB,EAAMmlB,MAChB,CAAEjkB,eAAE,MAAO,CAAEC,MAAO,YAAc,CAAEnB,EAAMmlB,cAC1C,EAyBJ,OAvBA/T,EAAMC,KACJnQ,eAAE,MAAO,CACPC,MAAO,+DACNklB,eAAiB5lB,EAAMY,QAAS8jB,KAGrCnlB,EAAMglB,WAAa5T,EAAMC,KACvBnQ,eAAE8Q,OAAO,CACP7Q,MAAO,mCACPpB,KAAMC,EAAMglB,cAII,IAApBhlB,EAAMylB,WAAsBrU,EAAMC,KAChCnQ,eAAE8Q,OAAD,eAAC,gBACA7Q,MAAO,mDACPpB,KAAMkmB,EAAWnlB,OACdwG,EAAWxG,OAHf,IAIC2Q,QAAS2U,EACT7H,QAAS6H,MAINhV,EAGT,OAAO,WACL,IAAyB,IAArBpR,EAAM2G,WAAV,CAEA,IAAMkR,EAAO,CACX1W,MAAON,EAAQC,MACfC,MAAO4kB,EAAU7kB,OASnB,OANsB,IAAtBmd,EAAYnd,OAAkByE,OAAOC,OACnCqS,EACAvQ,EAAWxG,MACX,CAAE2Q,UAAS8M,YAGN/M,eACL,MACAqG,EACA6G,IACA,UACiB,IAAjB1e,EAAM0lB,SAAsC,IAAlB1lB,EAAMke,SAChC,iBAAM,CAAE,CAAEoI,OAAQtmB,EAAM0lB,kB,kCChMhC,8DAOe,SAASa,IACtB,OAAOld,oBAAOmd,U,kCCPhB,IAAI5T,EAAI,EAAQ,QACZX,EAAY,EAAQ,QACpBwU,EAAkB,EAAQ,QAC1BC,EAAS,EAAQ,QACjBnC,EAAQ,EAAQ,QAEhBoC,EAAgB,GAAI5D,QACpB6D,EAAQhX,KAAKgX,MAEbC,EAAM,SAAU5W,EAAGwC,EAAGqU,GACxB,OAAa,IAANrU,EAAUqU,EAAMrU,EAAI,IAAM,EAAIoU,EAAI5W,EAAGwC,EAAI,EAAGqU,EAAM7W,GAAK4W,EAAI5W,EAAIA,EAAGwC,EAAI,EAAGqU,IAG9EC,EAAM,SAAU9W,GAClB,IAAIwC,EAAI,EACJuU,EAAK/W,EACT,MAAO+W,GAAM,KACXvU,GAAK,GACLuU,GAAM,KAER,MAAOA,GAAM,EACXvU,GAAK,EACLuU,GAAM,EACN,OAAOvU,GAGPwU,EAAW,SAAUpP,EAAMpF,EAAGyU,GAChC,IAAIjE,GAAS,EACTkE,EAAKD,EACT,QAASjE,EAAQ,EACfkE,GAAM1U,EAAIoF,EAAKoL,GACfpL,EAAKoL,GAASkE,EAAK,IACnBA,EAAKP,EAAMO,EAAK,MAIhBC,EAAS,SAAUvP,EAAMpF,GAC3B,IAAIwQ,EAAQ,EACRiE,EAAI,EACR,QAASjE,GAAS,EAChBiE,GAAKrP,EAAKoL,GACVpL,EAAKoL,GAAS2D,EAAMM,EAAIzU,GACxByU,EAAKA,EAAIzU,EAAK,KAId4U,EAAe,SAAUxP,GAC3B,IAAIoL,EAAQ,EACRqE,EAAI,GACR,QAASrE,GAAS,EAChB,GAAU,KAANqE,GAAsB,IAAVrE,GAA+B,IAAhBpL,EAAKoL,GAAc,CAChD,IAAIsE,EAAIhnB,OAAOsX,EAAKoL,IACpBqE,EAAU,KAANA,EAAWC,EAAID,EAAIZ,EAAOc,KAAK,IAAK,EAAID,EAAE9T,QAAU8T,EAE1D,OAAOD,GAGPG,EAASd,IACY,UAAvB,KAAQ5D,QAAQ,IACG,MAAnB,GAAIA,QAAQ,IACS,SAArB,MAAMA,QAAQ,IACuB,yBAArC,mBAAsBA,QAAQ,MAC1BwB,GAAM,WAEVoC,EAAca,KAAK,OAKrB5U,EAAE,CAAEtM,OAAQ,SAAUyM,OAAO,EAAMC,OAAQyU,GAAU,CACnD1E,QAAS,SAAiB2E,GACxB,IAKIrhB,EAAGshB,EAAGC,EAAGC,EALTC,EAASrB,EAAgBlU,MACzBwV,EAAc9V,EAAUyV,GACxB7P,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACvBmQ,EAAO,GACPxV,EAAS,IAGb,GAAIuV,EAAc,GAAKA,EAAc,GAAI,MAAMpV,WAAW,6BAE1D,GAAImV,GAAUA,EAAQ,MAAO,MAC7B,GAAIA,IAAW,MAAQA,GAAU,KAAM,OAAOvnB,OAAOunB,GAKrD,GAJIA,EAAS,IACXE,EAAO,IACPF,GAAUA,GAERA,EAAS,MAKX,GAJAzhB,EAAI0gB,EAAIe,EAASjB,EAAI,EAAG,GAAI,IAAM,GAClCc,EAAIthB,EAAI,EAAIyhB,EAASjB,EAAI,GAAIxgB,EAAG,GAAKyhB,EAASjB,EAAI,EAAGxgB,EAAG,GACxDshB,GAAK,iBACLthB,EAAI,GAAKA,EACLA,EAAI,EAAG,CACT4gB,EAASpP,EAAM,EAAG8P,GAClBC,EAAIG,EACJ,MAAOH,GAAK,EACVX,EAASpP,EAAM,IAAK,GACpB+P,GAAK,EAEPX,EAASpP,EAAMgP,EAAI,GAAIe,EAAG,GAAI,GAC9BA,EAAIvhB,EAAI,EACR,MAAOuhB,GAAK,GACVR,EAAOvP,EAAM,GAAK,IAClB+P,GAAK,GAEPR,EAAOvP,EAAM,GAAK+P,GAClBX,EAASpP,EAAM,EAAG,GAClBuP,EAAOvP,EAAM,GACbrF,EAAS6U,EAAaxP,QAEtBoP,EAASpP,EAAM,EAAG8P,GAClBV,EAASpP,EAAM,IAAMxR,EAAG,GACxBmM,EAAS6U,EAAaxP,GAAQ6O,EAAOc,KAAK,IAAKO,GAUjD,OAPEA,EAAc,GAChBF,EAAIrV,EAAOiB,OACXjB,EAASwV,GAAQH,GAAKE,EAClB,KAAOrB,EAAOc,KAAK,IAAKO,EAAcF,GAAKrV,EAC3CA,EAAOyV,MAAM,EAAGJ,EAAIE,GAAe,IAAMvV,EAAOyV,MAAMJ,EAAIE,KAE9DvV,EAASwV,EAAOxV,EACTA,M,4GCrHL+E,EAAYD,OAAZC,QACF2Q,EAAa,CAAE,OAAQ,aAAc,YAE5BpoB,oCAAgB,CAC7BC,KAAM,kBAENC,MAAO,CACLmoB,KAAM,CACJxmB,KAAMpB,OACNyB,UAAW,SAAAuJ,GAAC,OAAI2c,EAAW1c,SAASD,IACpClK,QAAS,YAGXoV,SAAU,CAAElW,OAAQD,QAEpBgC,aAAc,CACZjB,aAAS,IAIboB,MAAO,CAAE,UAETjC,MAnB6B,SAmBtBR,EAnBsB,GAmBL,IAqBJyE,EAAmB2jB,EArBvBvlB,EAAQ,EAARA,KACR6V,EAAS,CACbhJ,SAAU,CACRb,IAAK,EACL3E,KAAM,GAGR0G,UAAW,OACXsI,kBAAkB,EAElBC,MAAO,CACLtK,IAAK,EACL3E,KAAM,GAGRyO,gBAAiB,CACf9J,IAAK,EACL3E,KAAM,IAINwM,EAAQ,KAOZ,SAAS2R,IACP3R,EAAQ,KAER,IAAM7H,EAAMe,KAAKc,IAAI,EAAG4X,eAA0B7jB,IAC5CyF,EAAOqe,eAA4B9jB,GAEnC0U,EAAQ,CACZtK,IAAKA,EAAM6J,EAAOhJ,SAASb,IAC3B3E,KAAMA,EAAOwO,EAAOhJ,SAASxF,MAG/B,KACkB,aAAflK,EAAMmoB,MAAqC,IAAdhP,EAAMtK,KACjB,eAAf7O,EAAMmoB,MAAwC,IAAfhP,EAAMjP,MAF3C,CAOA,IAAMse,EAAS5Y,KAAKC,IAAIsJ,EAAMtK,MAAQe,KAAKC,IAAIsJ,EAAMjP,MAChDiP,EAAMtK,IAAM,EAAI,KAAO,OACvBsK,EAAMjP,KAAO,EAAI,OAAS,QAE/BwO,EAAOhJ,SAAW,CAAEb,MAAK3E,QACzBwO,EAAOQ,iBAAmBR,EAAO9H,YAAc4X,EAC/C9P,EAAOS,MAAQA,GAEiB,IAA5BT,EAAOQ,mBACTR,EAAO9H,UAAY4X,EACnB9P,EAAOC,gBAAkBD,EAAOhJ,UAGlC7M,EAAK,SAAD,kBAAgB6V,KAGtB,SAASlU,IACPC,EAAoBqE,eAAgBsf,EAAUpoB,EAAMsC,cACpDmC,EAAkBkT,iBAAiB,SAAUf,EAASW,GACtDX,GAAQ,GAGV,SAASjS,SACmB,IAAtBF,IACFA,EAAkB4S,oBAAoB,SAAUT,EAASW,GACzD9S,OAAoB,GAIxB,SAASmS,EAAS6R,IACI,IAAhBA,GAA2C,IAAnBzoB,EAAMyW,UAAqC,MAAnBzW,EAAMyW,SACxD4R,IAEiB,OAAV3R,IACPA,EAAQ1W,EAAMyW,SACV9N,WAAW0f,EAAWroB,EAAMyW,UAC5BiS,sBAAsBL,IA3D9BzhB,oBAAM,kBAAM5G,EAAMsC,gBAAc,WAC9BqC,IACAH,OA6DF,IAAMzB,EAAKC,kCAmBX,OAjBAmO,wBAAU,WACRiX,EAAWrlB,EAAGG,MAAM6T,IAAIC,WACxBxS,OAGFyC,8BAAgB,WACdmJ,aAAasG,GACbiS,qBAAqBjS,GACrB/R,OAIFY,OAAOC,OAAOzC,EAAGG,MAAO,CACtB0T,UACAgS,YAAa,kBAAMlQ,KAGdxB,W,kCCpIX,kDAEO,SAAS/O,IACd,QAA4B,IAAxBmM,OAAOuU,aAAyB,CAClC,IAAMC,EAAYxU,OAAOuU,oBACD,IAApBC,EAAUC,MACZD,EAAUC,aAE2B,IAA9BD,EAAUE,kBACjBF,EAAUE,mBACa,IAAvBC,OAAShjB,GAAGC,QAAmB4iB,EAAUI,SAAS9gB,SAAS+gB,0BAG/B,IAAvB/gB,SAAS0gB,WAChB1gB,SAAS0gB,UAAUC,U,qBCbvB5W,EAAOC,QAAU,CAAC,OAAS,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,OAAS,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,OAAS,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,QAAU,UAAU,MAAQ,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,OAAS,UAAU,SAAW,UAAU,UAAY,UAAU,UAAY,UAAU,UAAY,UAAU,UAAY,UAAU,UAAY,UAAU,MAAQ,OAAO,MAAQ,UAAU,OAAS,UAAU,YAAc","file":"js/apiTest~imageCategories~subscriptions.aa3efae4.js","sourcesContent":["import { h, defineComponent, computed } from 'vue'\n\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default defineComponent({\n name: 'QItemLabel',\n\n props: {\n overline: Boolean,\n caption: Boolean,\n header: Boolean,\n lines: [ Number, String ]\n },\n\n setup (props, { slots }) {\n const parsedLines = computed(() => parseInt(props.lines, 10))\n\n const classes = computed(() =>\n 'q-item__label'\n + (props.overline === true ? ' q-item__label--overline text-overline' : '')\n + (props.caption === true ? ' q-item__label--caption text-caption' : '')\n + (props.header === true ? ' q-item__label--header' : '')\n + (parsedLines.value === 1 ? ' ellipsis' : '')\n )\n\n const style = computed(() => {\n return props.lines !== void 0 && parsedLines.value > 1\n ? {\n overflow: 'hidden',\n display: '-webkit-box',\n '-webkit-box-orient': 'vertical',\n '-webkit-line-clamp': parsedLines.value\n }\n : null\n })\n\n return () => h('div', {\n style: style.value,\n class: classes.value\n }, hSlot(slots.default))\n }\n})\n","import { h, defineComponent, ref, computed, watch, onBeforeUnmount, Transition, getCurrentInstance } from 'vue'\n\nimport useAnchor, { useAnchorProps } from '../../composables/private/use-anchor.js'\nimport useScrollTarget from '../../composables/private/use-scroll-target.js'\nimport useModelToggle, { useModelToggleProps, useModelToggleEmits } from '../../composables/private/use-model-toggle.js'\nimport usePortal from '../../composables/private/use-portal.js'\nimport useTransition, { useTransitionProps } from '../../composables/private/use-transition.js'\nimport useTick from '../../composables/private/use-tick.js'\nimport useTimeout from '../../composables/private/use-timeout.js'\n\nimport { getScrollTarget } from '../../utils/scroll.js'\nimport { getTouchTarget } from '../../utils/private/touch.js'\nimport { stopAndPrevent, addEvt, cleanEvt } from '../../utils/event.js'\nimport { clearSelection } from '../../utils/private/selection.js'\nimport { hSlot } from '../../utils/private/render.js'\nimport { addClickOutside, removeClickOutside } from '../../utils/private/click-outside.js'\nimport {\n validatePosition, validateOffset, setPosition, parsePosition\n} from '../../utils/private/position-engine.js'\n\nexport default defineComponent({\n name: 'QTooltip',\n\n inheritAttrs: false,\n\n props: {\n ...useAnchorProps,\n ...useModelToggleProps,\n ...useTransitionProps,\n\n maxHeight: {\n type: String,\n default: null\n },\n maxWidth: {\n type: String,\n default: null\n },\n\n transitionShow: {\n default: 'jump-down'\n },\n transitionHide: {\n default: 'jump-up'\n },\n\n anchor: {\n type: String,\n default: 'bottom middle',\n validator: validatePosition\n },\n self: {\n type: String,\n default: 'top middle',\n validator: validatePosition\n },\n offset: {\n type: Array,\n default: () => [ 14, 14 ],\n validator: validateOffset\n },\n\n scrollTarget: {\n default: void 0\n },\n\n delay: {\n type: Number,\n default: 0\n },\n\n hideDelay: {\n type: Number,\n default: 0\n }\n },\n\n emits: [\n ...useModelToggleEmits\n ],\n\n setup (props, { slots, emit, attrs }) {\n let unwatchPosition, observer\n\n const vm = getCurrentInstance()\n const { proxy: { $q } } = vm\n\n const innerRef = ref(null)\n const showing = ref(false)\n\n const anchorOrigin = computed(() => parsePosition(props.anchor, $q.lang.rtl))\n const selfOrigin = computed(() => parsePosition(props.self, $q.lang.rtl))\n const hideOnRouteChange = computed(() => props.persistent !== true)\n\n const { registerTick, removeTick, prepareTick } = useTick()\n const { registerTimeout, removeTimeout } = useTimeout()\n const { transition, transitionStyle } = useTransition(props, showing)\n const { localScrollTarget, changeScrollEvent, unconfigureScrollTarget } = useScrollTarget(props, configureScrollTarget)\n\n const { anchorEl, canShow, anchorEvents } = useAnchor({ showing, configureAnchorEl })\n\n const { show, hide } = useModelToggle({\n showing, canShow, handleShow, handleHide,\n hideOnRouteChange,\n processOnMount: true\n })\n\n Object.assign(anchorEvents, { delayShow, delayHide })\n\n const { showPortal, hidePortal, renderPortal } = usePortal(vm, innerRef, renderPortalContent)\n\n // if we're on mobile, let's improve the experience\n // by closing it when user taps outside of it\n if ($q.platform.is.mobile === true) {\n const clickOutsideProps = {\n anchorEl,\n innerRef,\n onClickOutside (e) {\n hide(e)\n\n // prevent click if it's on a dialog backdrop\n if (e.target.classList.contains('q-dialog__backdrop')) {\n stopAndPrevent(e)\n }\n\n return true\n }\n }\n\n const hasClickOutside = computed(() =>\n // it doesn't has external model\n // (null is the default value)\n props.modelValue === null\n // and it's not persistent\n && props.persistent !== true\n && showing.value === true\n )\n\n watch(hasClickOutside, val => {\n const fn = val === true ? addClickOutside : removeClickOutside\n fn(clickOutsideProps)\n })\n\n onBeforeUnmount(() => {\n removeClickOutside(clickOutsideProps)\n })\n }\n\n function handleShow (evt) {\n removeTick()\n removeTimeout()\n\n showPortal()\n\n registerTick(() => {\n observer = new MutationObserver(() => updatePosition())\n observer.observe(innerRef.value, { attributes: false, childList: true, characterData: true, subtree: true })\n updatePosition()\n configureScrollTarget()\n })\n prepareTick()\n\n if (unwatchPosition === void 0) {\n unwatchPosition = watch(\n () => $q.screen.width + '|' + $q.screen.height + '|' + props.self + '|' + props.anchor + '|' + $q.lang.rtl,\n updatePosition\n )\n }\n\n registerTimeout(() => {\n emit('show', evt)\n }, props.transitionDuration)\n }\n\n function handleHide (evt) {\n removeTick()\n removeTimeout()\n\n anchorCleanup()\n\n registerTimeout(() => {\n hidePortal()\n emit('hide', evt)\n }, props.transitionDuration)\n }\n\n function anchorCleanup () {\n if (observer !== void 0) {\n observer.disconnect()\n observer = void 0\n }\n\n if (unwatchPosition !== void 0) {\n unwatchPosition()\n unwatchPosition = void 0\n }\n\n unconfigureScrollTarget()\n cleanEvt(anchorEvents, 'tooltipTemp')\n }\n\n function updatePosition () {\n const el = innerRef.value\n\n if (anchorEl.value === void 0 || !el) {\n return\n }\n\n setPosition({\n el,\n offset: props.offset,\n anchorEl: anchorEl.value,\n anchorOrigin: anchorOrigin.value,\n selfOrigin: selfOrigin.value,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth\n })\n }\n\n function delayShow (evt) {\n if ($q.platform.is.mobile === true) {\n clearSelection()\n document.body.classList.add('non-selectable')\n\n const target = getTouchTarget(anchorEl.value)\n const evts = [ 'touchmove', 'touchcancel', 'touchend', 'click' ]\n .map(e => ([ target, e, '__delayHide', 'passiveCapture' ]))\n\n addEvt(anchorEvents, 'tooltipTemp', evts)\n }\n\n registerTimeout(() => {\n show(evt)\n }, props.delay)\n }\n\n function delayHide (evt) {\n removeTimeout()\n\n if ($q.platform.is.mobile === true) {\n cleanEvt(anchorEvents, 'tooltipTemp')\n clearSelection()\n // delay needed otherwise selection still occurs\n setTimeout(() => {\n document.body.classList.remove('non-selectable')\n }, 10)\n }\n\n registerTimeout(() => {\n hide(evt)\n }, props.hideDelay)\n }\n\n function configureAnchorEl () {\n if (props.noParentEvent === true || anchorEl.value === void 0) { return }\n\n const evts = $q.platform.is.mobile === true\n ? [\n [ anchorEl.value, 'touchstart', 'delayShow', 'passive' ]\n ]\n : [\n [ anchorEl.value, 'mouseenter', 'delayShow', 'passive' ],\n [ anchorEl.value, 'mouseleave', 'delayHide', 'passive' ]\n ]\n\n addEvt(anchorEvents, 'anchor', evts)\n }\n\n function configureScrollTarget () {\n if (anchorEl.value !== void 0 || props.scrollTarget !== void 0) {\n localScrollTarget.value = getScrollTarget(anchorEl.value, props.scrollTarget)\n const fn = props.noParentEvent === true\n ? updatePosition\n : hide\n\n changeScrollEvent(localScrollTarget.value, fn)\n }\n }\n\n function getTooltipContent () {\n return showing.value === true\n ? h('div', {\n ...attrs,\n ref: innerRef,\n class: [\n 'q-tooltip q-tooltip--style q-position-engine no-pointer-events',\n attrs.class\n ],\n style: transitionStyle.value,\n role: 'complementary'\n }, hSlot(slots.default))\n : null\n }\n\n function renderPortalContent () {\n return h(Transition, {\n name: transition.value,\n appear: true\n }, getTooltipContent)\n }\n\n onBeforeUnmount(anchorCleanup)\n\n // expose public methods\n Object.assign(vm.proxy, { updatePosition })\n\n return renderPortal\n }\n})\n","import { h, defineComponent, computed, provide, inject, getCurrentInstance } from 'vue'\n\nimport { hSlot } from '../../utils/private/render.js'\nimport { pageContainerKey, layoutKey } from '../../utils/private/symbols.js'\n\nexport default defineComponent({\n name: 'QPageContainer',\n\n setup (_, { slots }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const $layout = inject(layoutKey, () => {\n console.error('QPageContainer needs to be child of QLayout')\n })\n\n provide(pageContainerKey, true)\n\n const style = computed(() => {\n const css = {}\n\n if ($layout.header.space === true) {\n css.paddingTop = `${ $layout.header.size }px`\n }\n if ($layout.right.space === true) {\n css[ `padding${ $q.lang.rtl === true ? 'Left' : 'Right' }` ] = `${ $layout.right.size }px`\n }\n if ($layout.footer.space === true) {\n css.paddingBottom = `${ $layout.footer.size }px`\n }\n if ($layout.left.space === true) {\n css[ `padding${ $q.lang.rtl === true ? 'Right' : 'Left' }` ] = `${ $layout.left.size }px`\n }\n\n return css\n })\n\n return () => h('div', {\n class: 'q-page-container',\n style: style.value\n }, hSlot(slots.default))\n }\n})\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Subscriptions\r\n \r\n \r\n \r\n \r\n \r\n Image Categories\r\n \r\n \r\n \r\n \r\n \r\n Image Analysis\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","\r\nimport { defineComponent, computed } from 'vue';\r\nimport { useStore as useLeftDrawerStore } from '@/store/leftDrawer';\r\nimport { SubscriptionRoutes } from '@/router/routes/subscriptions';\r\nimport { ImageCategoryRoutes } from '@/router/routes/imageCategories';\r\nimport { ApiTestRoutes } from '@/router/routes/apiTest';\r\n\r\nexport default defineComponent({\r\n setup () {\r\n const leftDrawerStore = useLeftDrawerStore();\r\n\r\n const drawerState = computed({\r\n get: () => leftDrawerStore.state.open,\r\n set: (value) => leftDrawerStore.setLeftDrawerState(value)\r\n });\r\n\r\n return {\r\n drawerState,\r\n SubscriptionRoutes,\r\n ImageCategoryRoutes,\r\n ApiTestRoutes\r\n };\r\n }\r\n});\r\n","import { h, defineComponent, withDirectives, ref, computed, watch, onMounted, onBeforeUnmount, nextTick, inject, getCurrentInstance } from 'vue'\n\nimport useHistory from '../../composables/private/use-history.js'\nimport useModelToggle, { useModelToggleProps, useModelToggleEmits } from '../../composables/private/use-model-toggle.js'\nimport usePreventScroll from '../../composables/private/use-prevent-scroll.js'\nimport useTimeout from '../../composables/private/use-timeout.js'\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\n\nimport TouchPan from '../../directives/TouchPan.js'\n\nimport { between } from '../../utils/format.js'\nimport { hSlot, hDir } from '../../utils/private/render.js'\nimport { layoutKey } from '../../utils/private/symbols.js'\n\nconst duration = 150\n\nexport default defineComponent({\n name: 'QDrawer',\n\n inheritAttrs: false,\n\n props: {\n ...useModelToggleProps,\n ...useDarkProps,\n\n side: {\n type: String,\n default: 'left',\n validator: v => [ 'left', 'right' ].includes(v)\n },\n\n width: {\n type: Number,\n default: 300\n },\n\n mini: Boolean,\n miniToOverlay: Boolean,\n miniWidth: {\n type: Number,\n default: 57\n },\n\n breakpoint: {\n type: Number,\n default: 1023\n },\n showIfAbove: Boolean,\n\n behavior: {\n type: String,\n validator: v => [ 'default', 'desktop', 'mobile' ].includes(v),\n default: 'default'\n },\n\n bordered: Boolean,\n elevated: Boolean,\n\n overlay: Boolean,\n persistent: Boolean,\n noSwipeOpen: Boolean,\n noSwipeClose: Boolean,\n noSwipeBackdrop: Boolean\n },\n\n emits: [\n ...useModelToggleEmits,\n 'on-layout', 'mini-state'\n ],\n\n setup (props, { slots, emit, attrs }) {\n const vm = getCurrentInstance()\n const { proxy: { $q } } = vm\n\n const isDark = useDark(props, $q)\n const { preventBodyScroll } = usePreventScroll()\n const { registerTimeout } = useTimeout()\n\n const $layout = inject(layoutKey, () => {\n console.error('QDrawer needs to be child of QLayout')\n })\n\n let lastDesktopState, timerMini, layoutTotalWidthWatcher\n\n const belowBreakpoint = ref(\n props.behavior === 'mobile'\n || (props.behavior !== 'desktop' && $layout.totalWidth.value <= props.breakpoint)\n )\n\n const isMini = computed(() =>\n props.mini === true && belowBreakpoint.value !== true\n )\n\n const size = computed(() => (\n isMini.value === true\n ? props.miniWidth\n : props.width\n ))\n\n const showing = ref(\n props.showIfAbove === true && belowBreakpoint.value === false\n ? true\n : props.modelValue === true\n )\n\n const hideOnRouteChange = computed(() =>\n props.persistent !== true\n && (belowBreakpoint.value === true || onScreenOverlay.value === true)\n )\n\n function handleShow (evt, noEvent) {\n addToHistory()\n\n evt !== false && $layout.animate()\n applyPosition(0)\n\n if (belowBreakpoint.value === true) {\n const otherInstance = $layout.instances[ otherSide.value ]\n if (otherInstance !== void 0 && otherInstance.belowBreakpoint === true) {\n otherInstance.hide(false)\n }\n\n applyBackdrop(1)\n $layout.isContainer.value !== true && preventBodyScroll(true)\n }\n else {\n applyBackdrop(0)\n evt !== false && setScrollable(false)\n }\n\n registerTimeout(() => {\n evt !== false && setScrollable(true)\n noEvent !== true && emit('show', evt)\n }, duration)\n }\n\n function handleHide (evt, noEvent) {\n removeFromHistory()\n\n evt !== false && $layout.animate()\n\n applyBackdrop(0)\n applyPosition(stateDirection.value * size.value)\n\n cleanup()\n\n noEvent !== true && registerTimeout(() => {\n emit('hide', evt)\n }, duration)\n }\n\n const { show, hide } = useModelToggle({\n showing,\n hideOnRouteChange,\n handleShow,\n handleHide\n })\n\n const { addToHistory, removeFromHistory } = useHistory(showing, hide, hideOnRouteChange)\n\n const instance = {\n belowBreakpoint,\n hide\n }\n\n const rightSide = computed(() => props.side === 'right')\n\n const stateDirection = computed(() =>\n ($q.lang.rtl === true ? -1 : 1) * (rightSide.value === true ? 1 : -1)\n )\n\n const flagBackdropBg = ref(0)\n const flagPanning = ref(false)\n const flagMiniAnimate = ref(false)\n const flagContentPosition = ref( // starting with \"hidden\" for SSR\n size.value * stateDirection.value\n )\n\n const otherSide = computed(() => (rightSide.value === true ? 'left' : 'right'))\n const offset = computed(() => (\n showing.value === true && belowBreakpoint.value === false && props.overlay === false\n ? (props.miniToOverlay === true ? props.miniWidth : size.value)\n : 0\n ))\n\n const fixed = computed(() =>\n props.overlay === true\n || props.miniToOverlay === true\n || $layout.view.value.indexOf(rightSide.value ? 'R' : 'L') > -1\n || ($q.platform.is.ios === true && $layout.isContainer.value === true)\n )\n\n const onLayout = computed(() =>\n props.overlay === false\n && showing.value === true\n && belowBreakpoint.value === false\n )\n\n const onScreenOverlay = computed(() =>\n props.overlay === true\n && showing.value === true\n && belowBreakpoint.value === false\n )\n\n const backdropClass = computed(() =>\n 'fullscreen q-drawer__backdrop'\n + (showing.value === false && flagPanning.value === false ? ' hidden' : '')\n )\n\n const backdropStyle = computed(() => ({\n backgroundColor: `rgba(0,0,0,${ flagBackdropBg.value * 0.4 })`\n }))\n\n const headerSlot = computed(() => (\n rightSide.value === true\n ? $layout.rows.value.top[ 2 ] === 'r'\n : $layout.rows.value.top[ 0 ] === 'l'\n ))\n\n const footerSlot = computed(() => (\n rightSide.value === true\n ? $layout.rows.value.bottom[ 2 ] === 'r'\n : $layout.rows.value.bottom[ 0 ] === 'l'\n ))\n\n const aboveStyle = computed(() => {\n const css = {}\n\n if ($layout.header.space === true && headerSlot.value === false) {\n if (fixed.value === true) {\n css.top = `${ $layout.header.offset }px`\n }\n else if ($layout.header.space === true) {\n css.top = `${ $layout.header.size }px`\n }\n }\n\n if ($layout.footer.space === true && footerSlot.value === false) {\n if (fixed.value === true) {\n css.bottom = `${ $layout.footer.offset }px`\n }\n else if ($layout.footer.space === true) {\n css.bottom = `${ $layout.footer.size }px`\n }\n }\n\n return css\n })\n\n const style = computed(() => {\n const style = {\n width: `${ size.value }px`,\n transform: `translateX(${ flagContentPosition.value }px)`\n }\n\n return belowBreakpoint.value === true\n ? style\n : Object.assign(style, aboveStyle.value)\n })\n\n const contentClass = computed(() =>\n 'q-drawer__content fit '\n + ($layout.isContainer.value !== true ? 'scroll' : 'overflow-auto')\n )\n\n const classes = computed(() =>\n `q-drawer q-drawer--${ props.side }`\n + (flagMiniAnimate.value === true ? ' q-drawer--mini-animate' : '')\n + (props.bordered === true ? ' q-drawer--bordered' : '')\n + (isDark.value === true ? ' q-drawer--dark q-dark' : '')\n + (\n flagPanning.value === true\n ? ' no-transition'\n : (showing.value === true ? '' : ' q-layout--prevent-focus')\n )\n + (\n belowBreakpoint.value === true\n ? ' fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding'\n : ` q-drawer--${ isMini.value === true ? 'mini' : 'standard' }`\n + (fixed.value === true || onLayout.value !== true ? ' fixed' : '')\n + (props.overlay === true || props.miniToOverlay === true ? ' q-drawer--on-top' : '')\n + (headerSlot.value === true ? ' q-drawer--top-padding' : '')\n )\n )\n\n const openDirective = computed(() => {\n // if props.noSwipeOpen !== true\n const dir = $q.lang.rtl === true ? props.side : otherSide.value\n\n return [ [\n TouchPan,\n onOpenPan,\n void 0,\n {\n [ dir ]: true,\n mouse: true\n }\n ] ]\n })\n\n const contentCloseDirective = computed(() => {\n // if belowBreakpoint.value === true && props.noSwipeClose !== true\n const dir = $q.lang.rtl === true ? otherSide.value : props.side\n\n return [ [\n TouchPan,\n onClosePan,\n void 0,\n {\n [ dir ]: true,\n mouse: true\n }\n ] ]\n })\n\n const backdropCloseDirective = computed(() => {\n // if showing.value === true && props.noSwipeBackdrop !== true\n const dir = $q.lang.rtl === true ? otherSide.value : props.side\n\n return [ [\n TouchPan,\n onClosePan,\n void 0,\n {\n [ dir ]: true,\n mouse: true,\n mouseAllDir: true\n }\n ] ]\n })\n\n watch(belowBreakpoint, val => {\n if (val === true) { // from lg to xs\n lastDesktopState = showing.value\n showing.value === true && hide(false)\n }\n else if (\n props.overlay === false\n && props.behavior !== 'mobile'\n && lastDesktopState !== false\n ) { // from xs to lg\n if (showing.value === true) {\n applyPosition(0)\n applyBackdrop(0)\n cleanup()\n }\n else {\n show(false)\n }\n }\n })\n\n watch($layout.totalWidth, val => {\n updateLocal(belowBreakpoint, (\n props.behavior === 'mobile'\n || (props.behavior !== 'desktop' && val <= props.breakpoint)\n ))\n })\n\n watch(() => props.side, (newSide, oldSide) => {\n if ($layout.instances[ oldSide ] === instance) {\n $layout.instances[ oldSide ] = void 0\n $layout[ oldSide ].space = false\n $layout[ oldSide ].offset = 0\n }\n\n $layout.instances[ newSide ] = instance\n $layout[ newSide ].size = size.value\n $layout[ newSide ].space = onLayout.value\n $layout[ newSide ].offset = offset.value\n })\n\n watch(() => props.behavior + props.breakpoint, updateBelowBreakpoint)\n\n watch($layout.isContainer, val => {\n showing.value === true && preventBodyScroll(val !== true)\n })\n\n watch($layout.scrollbarWidth, () => {\n applyPosition(showing.value === true ? 0 : void 0)\n })\n\n watch(offset, val => { updateLayout('offset', val) })\n\n watch(onLayout, val => {\n emit('on-layout', val)\n updateLayout('space', val)\n })\n\n watch(rightSide, () => { applyPosition() })\n\n watch(size, val => {\n applyPosition()\n updateSizeOnLayout(props.miniToOverlay, val)\n })\n\n watch(() => props.miniToOverlay, val => {\n updateSizeOnLayout(val, size.value)\n })\n\n watch(() => $q.lang.rtl, () => { applyPosition() })\n\n watch(() => props.mini, () => {\n if (props.modelValue === true) {\n animateMini()\n $layout.animate()\n }\n })\n\n watch(isMini, val => { emit('mini-state', val) })\n\n function applyPosition (position) {\n if (position === void 0) {\n nextTick(() => {\n position = showing.value === true ? 0 : size.value\n applyPosition(stateDirection.value * position)\n })\n }\n else {\n if (\n $layout.isContainer.value === true\n && rightSide.value === true\n && (belowBreakpoint.value === true || Math.abs(position) === size.value)\n ) {\n position += stateDirection.value * $layout.scrollbarWidth.value\n }\n\n flagContentPosition.value = position\n }\n }\n\n function updateBelowBreakpoint () {\n updateLocal(belowBreakpoint, (\n props.behavior === 'mobile'\n || (props.behavior !== 'desktop' && $layout.totalWidth.value <= props.breakpoint)\n ))\n }\n\n function applyBackdrop (x) {\n flagBackdropBg.value = x\n }\n\n function setScrollable (v) {\n const action = v === true\n ? 'remove'\n : ($layout.isContainer.value !== true ? 'add' : '')\n\n action !== '' && document.body.classList[ action ]('q-body--drawer-toggle')\n }\n\n function animateMini () {\n clearTimeout(timerMini)\n flagMiniAnimate.value = true\n timerMini = setTimeout(() => {\n flagMiniAnimate.value = false\n }, 150)\n }\n\n function onOpenPan (evt) {\n if (showing.value !== false) {\n // some browsers might capture and trigger this\n // even if Drawer has just been opened (but animation is still pending)\n return\n }\n\n const\n width = size.value,\n position = between(evt.distance.x, 0, width)\n\n if (evt.isFinal === true) {\n const opened = position >= Math.min(75, width)\n\n if (opened === true) {\n show()\n }\n else {\n $layout.animate()\n applyBackdrop(0)\n applyPosition(stateDirection.value * width)\n }\n\n flagPanning.value = false\n return\n }\n\n applyPosition(\n ($q.lang.rtl === true ? rightSide.value !== true : rightSide.value)\n ? Math.max(width - position, 0)\n : Math.min(0, position - width)\n )\n applyBackdrop(\n between(position / width, 0, 1)\n )\n\n if (evt.isFirst === true) {\n flagPanning.value = true\n }\n }\n\n function onClosePan (evt) {\n if (showing.value !== true) {\n // some browsers might capture and trigger this\n // even if Drawer has just been closed (but animation is still pending)\n return\n }\n\n const\n width = size.value,\n dir = evt.direction === props.side,\n position = ($q.lang.rtl === true ? dir !== true : dir)\n ? between(evt.distance.x, 0, width)\n : 0\n\n if (evt.isFinal === true) {\n const opened = Math.abs(position) < Math.min(75, width)\n\n if (opened === true) {\n $layout.animate()\n applyBackdrop(1)\n applyPosition(0)\n }\n else {\n hide()\n }\n\n flagPanning.value = false\n return\n }\n\n applyPosition(stateDirection.value * position)\n applyBackdrop(between(1 - position / width, 0, 1))\n\n if (evt.isFirst === true) {\n flagPanning.value = true\n }\n }\n\n function cleanup () {\n preventBodyScroll(false)\n setScrollable(true)\n }\n\n function updateLayout (prop, val) {\n $layout.update(props.side, prop, val)\n }\n\n function updateLocal (prop, val) {\n if (prop.value !== val) {\n prop.value = val\n }\n }\n\n function updateSizeOnLayout (miniToOverlay, size) {\n updateLayout('size', miniToOverlay === true ? props.miniWidth : size)\n }\n\n $layout.instances[ props.side ] = instance\n updateSizeOnLayout(props.miniToOverlay, size.value)\n updateLayout('space', onLayout.value)\n updateLayout('offset', offset.value)\n\n if (\n props.showIfAbove === true\n && props.modelValue !== true\n && showing.value === true\n && props[ 'onUpdate:modelValue' ] !== void 0\n ) {\n emit('update:modelValue', true)\n }\n\n onMounted(() => {\n emit('on-layout', onLayout.value)\n emit('mini-state', isMini.value)\n\n lastDesktopState = props.showIfAbove === true\n\n const fn = () => {\n const action = showing.value === true ? handleShow : handleHide\n action(false, true)\n }\n\n if ($layout.totalWidth.value !== 0) {\n // make sure that all computed properties\n // have been updated before calling handleShow/handleHide()\n nextTick(fn)\n return\n }\n\n layoutTotalWidthWatcher = watch($layout.totalWidth, () => {\n layoutTotalWidthWatcher()\n layoutTotalWidthWatcher = void 0\n\n if (showing.value === false && props.showIfAbove === true && belowBreakpoint.value === false) {\n show(false)\n }\n else {\n fn()\n }\n })\n })\n\n onBeforeUnmount(() => {\n layoutTotalWidthWatcher !== void 0 && layoutTotalWidthWatcher()\n clearTimeout(timerMini)\n\n showing.value === true && cleanup()\n\n if ($layout.instances[ props.side ] === instance) {\n $layout.instances[ props.side ] = void 0\n updateLayout('size', 0)\n updateLayout('offset', 0)\n updateLayout('space', false)\n }\n })\n\n return () => {\n const child = []\n\n if (belowBreakpoint.value === true) {\n props.noSwipeOpen === false && child.push(\n withDirectives(\n h('div', {\n key: 'open',\n class: `q-drawer__opener fixed-${ props.side }`,\n 'aria-hidden': 'true'\n }),\n openDirective.value\n )\n )\n\n child.push(\n hDir(\n 'div',\n {\n ref: 'backdrop',\n class: backdropClass.value,\n style: backdropStyle.value,\n 'aria-hidden': 'true',\n onClick: hide\n },\n void 0,\n 'backdrop',\n props.noSwipeBackdrop !== true && showing.value === true,\n () => backdropCloseDirective.value\n )\n )\n }\n\n const mini = isMini.value === true && slots.mini !== void 0\n const content = [\n h('div', {\n ...attrs,\n key: '' + mini, // required otherwise Vue will not diff correctly\n class: [\n contentClass.value,\n attrs.class\n ]\n }, mini === true\n ? slots.mini()\n : hSlot(slots.default)\n )\n ]\n\n if (props.elevated === true && showing.value === true) {\n content.push(\n h('div', {\n class: 'q-layout__shadow absolute-full overflow-hidden no-pointer-events'\n })\n )\n }\n\n child.push(\n hDir(\n 'aside',\n { ref: 'content', class: classes.value, style: style.value },\n content,\n 'contentclose',\n props.noSwipeClose !== true && belowBreakpoint.value === true,\n () => contentCloseDirective.value\n )\n )\n\n return h('div', { class: 'q-drawer-container' }, child)\n }\n }\n})\n","import { render } from \"./LeftDrawer.vue?vue&type=template&id=2313d5aa\"\nimport script from \"./LeftDrawer.vue?vue&type=script&lang=ts\"\nexport * from \"./LeftDrawer.vue?vue&type=script&lang=ts\"\n\nimport \"./LeftDrawer.vue?vue&type=style&index=0&id=2313d5aa&lang=scss\"\nscript.render = render\n\nexport default script\nimport QDrawer from 'quasar/src/components/drawer/QDrawer.js';\nimport QList from 'quasar/src/components/item/QList.js';\nimport QItem from 'quasar/src/components/item/QItem.js';\nimport QItemSection from 'quasar/src/components/item/QItemSection.js';\nimport QIcon from 'quasar/src/components/icon/QIcon.js';\nimport qInstall from \"../../node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js\";\nqInstall(script, 'components', {QDrawer,QList,QItem,QItemSection,QIcon});\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","import { h, defineComponent, computed, getCurrentInstance } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\n\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default defineComponent({\n name: 'QList',\n\n props: {\n ...useDarkProps,\n\n bordered: Boolean,\n dense: Boolean,\n separator: Boolean,\n padding: Boolean\n },\n\n setup (props, { slots }) {\n const vm = getCurrentInstance()\n const isDark = useDark(props, vm.proxy.$q)\n\n const classes = computed(() =>\n 'q-list'\n + (props.bordered === true ? ' q-list--bordered' : '')\n + (props.dense === true ? ' q-list--dense' : '')\n + (props.separator === true ? ' q-list--separator' : '')\n + (isDark.value === true ? ' q-list--dark' : '')\n + (props.padding === true ? ' q-list--padding' : '')\n )\n\n return () => h('div', { class: classes.value }, hSlot(slots.default))\n }\n})\n","import { getScrollbarWidth } from '../scroll.js'\nimport { client } from '../../plugins/Platform.js'\n\nlet vpLeft, vpTop\n\nexport function validatePosition (pos) {\n const parts = pos.split(' ')\n if (parts.length !== 2) {\n return false\n }\n if ([ 'top', 'center', 'bottom' ].includes(parts[ 0 ]) !== true) {\n console.error('Anchor/Self position must start with one of top/center/bottom')\n return false\n }\n if ([ 'left', 'middle', 'right', 'start', 'end' ].includes(parts[ 1 ]) !== true) {\n console.error('Anchor/Self position must end with one of left/middle/right/start/end')\n return false\n }\n return true\n}\n\nexport function validateOffset (val) {\n if (!val) { return true }\n if (val.length !== 2) { return false }\n if (typeof val[ 0 ] !== 'number' || typeof val[ 1 ] !== 'number') {\n return false\n }\n return true\n}\n\nconst horizontalPos = {\n 'start#ltr': 'left',\n 'start#rtl': 'right',\n 'end#ltr': 'right',\n 'end#rtl': 'left'\n}\n\n;[ 'left', 'middle', 'right' ].forEach(pos => {\n horizontalPos[ `${ pos }#ltr` ] = pos\n horizontalPos[ `${ pos }#rtl` ] = pos\n})\n\nexport function parsePosition (pos, rtl) {\n const parts = pos.split(' ')\n return {\n vertical: parts[ 0 ],\n horizontal: horizontalPos[ `${ parts[ 1 ] }#${ rtl === true ? 'rtl' : 'ltr' }` ]\n }\n}\n\nexport function validateCover (val) {\n if (val === true || val === false) { return true }\n return validatePosition(val)\n}\n\nexport function getAnchorProps (el, offset) {\n let { top, left, right, bottom, width, height } = el.getBoundingClientRect()\n\n if (offset !== void 0) {\n top -= offset[ 1 ]\n left -= offset[ 0 ]\n bottom += offset[ 1 ]\n right += offset[ 0 ]\n\n width += offset[ 0 ]\n height += offset[ 1 ]\n }\n\n return {\n top,\n left,\n right,\n bottom,\n width,\n height,\n middle: left + (right - left) / 2,\n center: top + (bottom - top) / 2\n }\n}\n\nexport function getTargetProps (el) {\n return {\n top: 0,\n center: el.offsetHeight / 2,\n bottom: el.offsetHeight,\n left: 0,\n middle: el.offsetWidth / 2,\n right: el.offsetWidth\n }\n}\n\n// cfg: { el, anchorEl, anchorOrigin, selfOrigin, offset, absoluteOffset, cover, fit, maxHeight, maxWidth }\nexport function setPosition (cfg) {\n if (client.is.ios === true && window.visualViewport !== void 0) {\n // uses the q-position-engine CSS class\n\n const el = document.body.style\n const { offsetLeft: left, offsetTop: top } = window.visualViewport\n\n if (left !== vpLeft) {\n el.setProperty('--q-pe-left', left + 'px')\n vpLeft = left\n }\n if (top !== vpTop) {\n el.setProperty('--q-pe-top', top + 'px')\n vpTop = top\n }\n }\n\n let anchorProps\n\n // scroll position might change\n // if max-height/-width changes, so we\n // need to restore it after we calculate\n // the new positioning\n const { scrollLeft, scrollTop } = cfg.el\n\n if (cfg.absoluteOffset === void 0) {\n anchorProps = getAnchorProps(cfg.anchorEl, cfg.cover === true ? [ 0, 0 ] : cfg.offset)\n }\n else {\n const\n { top: anchorTop, left: anchorLeft } = cfg.anchorEl.getBoundingClientRect(),\n top = anchorTop + cfg.absoluteOffset.top,\n left = anchorLeft + cfg.absoluteOffset.left\n\n anchorProps = { top, left, width: 1, height: 1, right: left + 1, center: top, middle: left, bottom: top + 1 }\n }\n\n let elStyle = {\n maxHeight: cfg.maxHeight,\n maxWidth: cfg.maxWidth,\n visibility: 'visible'\n }\n\n if (cfg.fit === true || cfg.cover === true) {\n elStyle.minWidth = anchorProps.width + 'px'\n if (cfg.cover === true) {\n elStyle.minHeight = anchorProps.height + 'px'\n }\n }\n\n Object.assign(cfg.el.style, elStyle)\n\n const\n targetProps = getTargetProps(cfg.el),\n props = {\n top: anchorProps[ cfg.anchorOrigin.vertical ] - targetProps[ cfg.selfOrigin.vertical ],\n left: anchorProps[ cfg.anchorOrigin.horizontal ] - targetProps[ cfg.selfOrigin.horizontal ]\n }\n\n applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin)\n\n elStyle = {\n top: props.top + 'px',\n left: props.left + 'px'\n }\n\n if (props.maxHeight !== void 0) {\n elStyle.maxHeight = props.maxHeight + 'px'\n\n if (anchorProps.height > props.maxHeight) {\n elStyle.minHeight = elStyle.maxHeight\n }\n }\n if (props.maxWidth !== void 0) {\n elStyle.maxWidth = props.maxWidth + 'px'\n\n if (anchorProps.width > props.maxWidth) {\n elStyle.minWidth = elStyle.maxWidth\n }\n }\n\n Object.assign(cfg.el.style, elStyle)\n\n // restore scroll position\n if (cfg.el.scrollTop !== scrollTop) {\n cfg.el.scrollTop = scrollTop\n }\n if (cfg.el.scrollLeft !== scrollLeft) {\n cfg.el.scrollLeft = scrollLeft\n }\n}\n\nfunction applyBoundaries (props, anchorProps, targetProps, anchorOrigin, selfOrigin) {\n const\n currentHeight = targetProps.bottom,\n currentWidth = targetProps.right,\n margin = getScrollbarWidth(),\n innerHeight = window.innerHeight - margin,\n innerWidth = document.body.clientWidth\n\n if (props.top < 0 || props.top + currentHeight > innerHeight) {\n if (selfOrigin.vertical === 'center') {\n props.top = anchorProps[ anchorOrigin.vertical ] > innerHeight / 2\n ? Math.max(0, innerHeight - currentHeight)\n : 0\n props.maxHeight = Math.min(currentHeight, innerHeight)\n }\n else if (anchorProps[ anchorOrigin.vertical ] > innerHeight / 2) {\n const anchorY = Math.min(\n innerHeight,\n anchorOrigin.vertical === 'center'\n ? anchorProps.center\n : (anchorOrigin.vertical === selfOrigin.vertical ? anchorProps.bottom : anchorProps.top)\n )\n props.maxHeight = Math.min(currentHeight, anchorY)\n props.top = Math.max(0, anchorY - currentHeight)\n }\n else {\n props.top = Math.max(0, anchorOrigin.vertical === 'center'\n ? anchorProps.center\n : (anchorOrigin.vertical === selfOrigin.vertical ? anchorProps.top : anchorProps.bottom)\n )\n props.maxHeight = Math.min(currentHeight, innerHeight - props.top)\n }\n }\n\n if (props.left < 0 || props.left + currentWidth > innerWidth) {\n props.maxWidth = Math.min(currentWidth, innerWidth)\n if (selfOrigin.horizontal === 'middle') {\n props.left = anchorProps[ anchorOrigin.horizontal ] > innerWidth / 2\n ? Math.max(0, innerWidth - currentWidth)\n : 0\n }\n else if (anchorProps[ anchorOrigin.horizontal ] > innerWidth / 2) {\n const anchorX = Math.min(\n innerWidth,\n anchorOrigin.horizontal === 'middle'\n ? anchorProps.middle\n : (anchorOrigin.horizontal === selfOrigin.horizontal ? anchorProps.right : anchorProps.left)\n )\n props.maxWidth = Math.min(currentWidth, anchorX)\n props.left = Math.max(0, anchorX - props.maxWidth)\n }\n else {\n props.left = Math.max(0, anchorOrigin.horizontal === 'middle'\n ? anchorProps.middle\n : (anchorOrigin.horizontal === selfOrigin.horizontal ? anchorProps.left : anchorProps.right)\n )\n props.maxWidth = Math.min(currentWidth, innerWidth - props.left)\n }\n }\n}\n","import { ref, onMounted } from 'vue'\n\n// using it to manage SSR rendering with best performance\nimport { isRuntimeSsrPreHydration } from '../../plugins/Platform.js'\n\nexport default function () {\n const canRender = ref(!isRuntimeSsrPreHydration.value)\n\n if (canRender.value === false) {\n onMounted(() => {\n canRender.value = true\n })\n }\n\n return canRender\n}\n","import { h, defineComponent, onMounted, onBeforeUnmount, getCurrentInstance, nextTick } from 'vue'\n\nimport useCanRender from '../../composables/private/use-can-render.js'\n\nimport { listenOpts, noop } from '../../utils/event.js'\n\nconst hasObserver = typeof ResizeObserver !== 'undefined'\nconst resizeProps = hasObserver === true\n ? {}\n : {\n style: 'display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;',\n url: 'about:blank'\n }\n\nexport default defineComponent({\n name: 'QResizeObserver',\n\n props: {\n debounce: {\n type: [ String, Number ],\n default: 100\n }\n },\n\n emits: [ 'resize' ],\n\n setup (props, { emit }) {\n if (__QUASAR_SSR_SERVER__) { return noop }\n\n let timer, targetEl, size = { width: -1, height: -1 }\n\n function trigger (now) {\n if (now === true || props.debounce === 0 || props.debounce === '0') {\n onResize()\n }\n else if (!timer) {\n timer = setTimeout(onResize, props.debounce)\n }\n }\n\n function onResize () {\n timer = void 0\n\n if (targetEl) {\n const { offsetWidth: width, offsetHeight: height } = targetEl\n\n if (width !== size.width || height !== size.height) {\n size = { width, height }\n emit('resize', size)\n }\n }\n }\n\n const vm = getCurrentInstance()\n\n // expose public methods\n Object.assign(vm.proxy, { trigger })\n\n if (hasObserver === true) {\n let observer\n\n onMounted(() => {\n nextTick(() => {\n targetEl = vm.proxy.$el.parentNode\n\n if (targetEl) {\n observer = new ResizeObserver(trigger)\n observer.observe(targetEl)\n onResize()\n }\n })\n })\n\n onBeforeUnmount(() => {\n clearTimeout(timer)\n\n if (observer !== void 0) {\n if (observer.disconnect !== void 0) {\n observer.disconnect()\n }\n else if (targetEl) { // FF for Android\n observer.unobserve(targetEl)\n }\n }\n })\n\n return noop\n }\n else { // no observer, so fallback to old iframe method\n const canRender = useCanRender()\n\n let curDocView\n\n function cleanup () {\n clearTimeout(timer)\n\n if (curDocView !== void 0) {\n // iOS is fuzzy, need to check it first\n if (curDocView.removeEventListener !== void 0) {\n curDocView.removeEventListener('resize', trigger, listenOpts.passive)\n }\n curDocView = void 0\n }\n }\n\n function onObjLoad () {\n cleanup()\n\n if (targetEl && targetEl.contentDocument) {\n curDocView = targetEl.contentDocument.defaultView\n curDocView.addEventListener('resize', trigger, listenOpts.passive)\n onResize()\n }\n }\n\n onMounted(() => {\n nextTick(() => {\n targetEl = vm.proxy.$el\n targetEl && onObjLoad()\n })\n })\n\n onBeforeUnmount(cleanup)\n\n return () => {\n if (canRender.value === true) {\n return h('object', {\n style: resizeProps.style,\n tabindex: -1, // fix for Firefox\n type: 'text/html',\n data: resizeProps.url,\n 'aria-hidden': 'true',\n onLoad: onObjLoad\n })\n }\n }\n }\n }\n})\n","import { h, defineComponent, computed } from 'vue'\n\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default defineComponent({\n name: 'QItemSection',\n\n props: {\n avatar: Boolean,\n thumbnail: Boolean,\n side: Boolean,\n top: Boolean,\n noWrap: Boolean\n },\n\n setup (props, { slots }) {\n const classes = computed(() =>\n 'q-item__section column'\n + ` q-item__section--${ props.avatar === true || props.side === true || props.thumbnail === true ? 'side' : 'main' }`\n + (props.top === true ? ' q-item__section--top justify-start' : ' justify-center')\n + (props.avatar === true ? ' q-item__section--avatar' : '')\n + (props.thumbnail === true ? ' q-item__section--thumbnail' : '')\n + (props.noWrap === true ? ' q-item__section--nowrap' : '')\n )\n\n return () => h('div', { class: classes.value }, hSlot(slots.default))\n }\n})\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vue-cli-plugin-quasar/lib/loader.vue.auto-import-quasar.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-2!./TopNav.vue?vue&type=style&index=0&id=7d5e6b33&lang=scss\"","import { h, defineComponent, ref, reactive, computed, provide, getCurrentInstance } from 'vue'\n\nimport { isRuntimeSsrPreHydration } from '../../plugins/Platform.js'\n\nimport QScrollObserver from '../scroll-observer/QScrollObserver.js'\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\n\nimport { getScrollbarWidth } from '../../utils/scroll.js'\nimport { hMergeSlot } from '../../utils/private/render.js'\nimport { layoutKey } from '../../utils/private/symbols.js'\n\nexport default defineComponent({\n name: 'QLayout',\n\n props: {\n container: Boolean,\n view: {\n type: String,\n default: 'hhh lpr fff',\n validator: v => /^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(v.toLowerCase())\n },\n\n onScroll: Function,\n onScrollHeight: Function,\n onResize: Function\n },\n\n setup (props, { slots, emit }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const rootRef = ref(null)\n\n // page related\n const height = ref($q.screen.height)\n const width = ref(props.container === true ? 0 : $q.screen.width)\n const scroll = ref({ position: 0, direction: 'down', inflectionPoint: 0 })\n\n // container only prop\n const containerHeight = ref(0)\n const scrollbarWidth = ref(isRuntimeSsrPreHydration.value === true ? 0 : getScrollbarWidth())\n\n const classes = computed(() =>\n 'q-layout q-layout--'\n + (props.container === true ? 'containerized' : 'standard')\n )\n\n const style = computed(() => (\n props.container === false\n ? { minHeight: $q.screen.height + 'px' }\n : null\n ))\n\n // used by container only\n const targetStyle = computed(() => (\n scrollbarWidth.value !== 0\n ? { [ $q.lang.rtl === true ? 'left' : 'right' ]: `${ scrollbarWidth.value }px` }\n : null\n ))\n\n const targetChildStyle = computed(() => (\n scrollbarWidth.value !== 0\n ? {\n [ $q.lang.rtl === true ? 'right' : 'left' ]: 0,\n [ $q.lang.rtl === true ? 'left' : 'right' ]: `-${ scrollbarWidth.value }px`,\n width: `calc(100% + ${ scrollbarWidth.value }px)`\n }\n : null\n ))\n\n function onPageScroll (data) {\n if (props.container === true || document.qScrollPrevented !== true) {\n const info = {\n position: data.position.top,\n direction: data.direction,\n directionChanged: data.directionChanged,\n inflectionPoint: data.inflectionPoint.top,\n delta: data.delta.top\n }\n\n scroll.value = info\n props.onScroll !== void 0 && emit('scroll', info)\n }\n }\n\n function onPageResize (data) {\n const { height: newHeight, width: newWidth } = data\n let resized = false\n\n if (height.value !== newHeight) {\n resized = true\n height.value = newHeight\n props.onScrollHeight !== void 0 && emit('scroll-height', newHeight)\n updateScrollbarWidth()\n }\n if (width.value !== newWidth) {\n resized = true\n width.value = newWidth\n }\n\n if (resized === true && props.onResize !== void 0) {\n emit('resize', data)\n }\n }\n\n function onContainerResize ({ height }) {\n if (containerHeight.value !== height) {\n containerHeight.value = height\n updateScrollbarWidth()\n }\n }\n\n function updateScrollbarWidth () {\n if (props.container === true) {\n const width = height.value > containerHeight.value\n ? getScrollbarWidth()\n : 0\n\n if (scrollbarWidth.value !== width) {\n scrollbarWidth.value = width\n }\n }\n }\n\n let timer\n\n const $layout = {\n instances: {},\n view: computed(() => props.view),\n isContainer: computed(() => props.container),\n\n rootRef,\n\n height,\n containerHeight,\n scrollbarWidth,\n totalWidth: computed(() => width.value + scrollbarWidth.value),\n\n rows: computed(() => {\n const rows = props.view.toLowerCase().split(' ')\n return {\n top: rows[ 0 ].split(''),\n middle: rows[ 1 ].split(''),\n bottom: rows[ 2 ].split('')\n }\n }),\n\n header: reactive({ size: 0, offset: 0, space: false }),\n right: reactive({ size: 300, offset: 0, space: false }),\n footer: reactive({ size: 0, offset: 0, space: false }),\n left: reactive({ size: 300, offset: 0, space: false }),\n\n scroll,\n\n animate () {\n if (timer !== void 0) {\n clearTimeout(timer)\n }\n else {\n document.body.classList.add('q-body--layout-animate')\n }\n\n timer = setTimeout(() => {\n document.body.classList.remove('q-body--layout-animate')\n timer = void 0\n }, 155)\n },\n\n update (part, prop, val) {\n $layout[ part ][ prop ] = val\n }\n }\n\n provide(layoutKey, $layout)\n\n return () => {\n const content = hMergeSlot(slots.default, [\n h(QScrollObserver, { onScroll: onPageScroll }),\n h(QResizeObserver, { onResize: onPageResize })\n ])\n\n const layout = h('div', {\n class: classes.value,\n style: style.value,\n ref: props.container === true ? void 0 : rootRef\n }, content)\n\n if (props.container === true) {\n return h('div', {\n class: 'q-layout-container overflow-hidden',\n ref: rootRef\n }, [\n h(QResizeObserver, { onResize: onContainerResize }),\n h('div', {\n class: 'absolute-full',\n style: targetStyle.value\n }, [\n h('div', {\n class: 'scroll',\n style: targetChildStyle.value\n }, [ layout ])\n ])\n ])\n }\n\n return layout\n }\n }\n})\n","\r\n \r\n \r\n \r\n\r\n \r\n Cloud Services Gateway\r\n \r\n \r\n \r\n \r\n v{{ Settings.appVersion }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","\r\n \r\n \r\n Sign Out\r\n \r\n \r\n\r\n\r\n\r\n","\r\nimport { defineComponent } from 'vue';\r\nimport { useStore as useLoginStore } from '@/store/login';\r\n\r\nexport default defineComponent({\r\n setup () {\r\n const loginStore = useLoginStore();\r\n\r\n return {\r\n async signOut () {\r\n await loginStore.signOut();\r\n }\r\n };\r\n }\r\n});\r\n","import { render } from \"./LoginLogout.vue?vue&type=template&id=6b9d8424\"\nimport script from \"./LoginLogout.vue?vue&type=script&lang=ts\"\nexport * from \"./LoginLogout.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script\nimport QItem from 'quasar/src/components/item/QItem.js';\nimport QItemSection from 'quasar/src/components/item/QItemSection.js';\nimport QItemLabel from 'quasar/src/components/item/QItemLabel.js';\nimport qInstall from \"../../node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js\";\nqInstall(script, 'components', {QItem,QItemSection,QItemLabel});\n","\r\nimport { defineComponent } from 'vue';\r\nimport { useStore as useLeftDrawerStore } from '@/store/leftDrawer';\r\nimport LoginLogout from '@/components/LoginLogout.vue';\r\nimport { Settings } from '@/settings';\r\n\r\nexport default defineComponent({\r\n components: {\r\n LoginLogout\r\n },\r\n setup () {\r\n const leftDrawerStore = useLeftDrawerStore();\r\n\r\n return {\r\n toggleLeftDrawer: leftDrawerStore.toggleLeftDrawer,\r\n Settings\r\n };\r\n }\r\n});\r\n","import { h, defineComponent, ref, computed, watch, onBeforeUnmount, inject, getCurrentInstance } from 'vue'\n\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\n\nimport { hUniqueSlot } from '../../utils/private/render.js'\nimport { layoutKey } from '../../utils/private/symbols.js'\n\nexport default defineComponent({\n name: 'QHeader',\n\n props: {\n modelValue: {\n type: Boolean,\n default: true\n },\n reveal: Boolean,\n revealOffset: {\n type: Number,\n default: 250\n },\n bordered: Boolean,\n elevated: Boolean,\n\n heightHint: {\n type: [ String, Number ],\n default: 50\n }\n },\n\n emits: [ 'reveal', 'focusin' ],\n\n setup (props, { slots, emit }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const $layout = inject(layoutKey, () => {\n console.error('QHeader needs to be child of QLayout')\n })\n\n const size = ref(parseInt(props.heightHint, 10))\n const revealed = ref(true)\n\n const fixed = computed(() =>\n props.reveal === true\n || $layout.view.value.indexOf('H') > -1\n || $layout.isContainer.value === true\n )\n\n const offset = computed(() => {\n if (props.modelValue !== true) {\n return 0\n }\n if (fixed.value === true) {\n return revealed.value === true ? size.value : 0\n }\n const offset = size.value - $layout.scroll.value.position\n return offset > 0 ? offset : 0\n })\n\n const hidden = computed(() => props.modelValue !== true\n || (fixed.value === true && revealed.value !== true)\n )\n\n const revealOnFocus = computed(() =>\n props.modelValue === true && hidden.value === true && props.reveal === true\n )\n\n const classes = computed(() =>\n 'q-header q-layout__section--marginal '\n + (fixed.value === true ? 'fixed' : 'absolute') + '-top'\n + (props.bordered === true ? ' q-header--bordered' : '')\n + (hidden.value === true ? ' q-header--hidden' : '')\n + (props.modelValue !== true ? ' q-layout--prevent-focus' : '')\n )\n\n const style = computed(() => {\n const\n view = $layout.rows.value.top,\n css = {}\n\n if (view[ 0 ] === 'l' && $layout.left.space === true) {\n css[ $q.lang.rtl === true ? 'right' : 'left' ] = `${ $layout.left.size }px`\n }\n if (view[ 2 ] === 'r' && $layout.right.space === true) {\n css[ $q.lang.rtl === true ? 'left' : 'right' ] = `${ $layout.right.size }px`\n }\n\n return css\n })\n\n function updateLayout (prop, val) {\n $layout.update('header', prop, val)\n }\n\n function updateLocal (prop, val) {\n if (prop.value !== val) {\n prop.value = val\n }\n }\n\n function onResize ({ height }) {\n updateLocal(size, height)\n updateLayout('size', height)\n }\n\n function onFocusin (evt) {\n if (revealOnFocus.value === true) {\n updateLocal(revealed, true)\n }\n\n emit('focusin', evt)\n }\n\n watch(() => props.modelValue, val => {\n updateLayout('space', val)\n updateLocal(revealed, true)\n $layout.animate()\n })\n\n watch(offset, val => {\n updateLayout('offset', val)\n })\n\n watch(() => props.reveal, val => {\n val === false && updateLocal(revealed, props.modelValue)\n })\n\n watch(revealed, val => {\n $layout.animate()\n emit('reveal', val)\n })\n\n watch($layout.scroll, scroll => {\n props.reveal === true && updateLocal(revealed,\n scroll.direction === 'up'\n || scroll.position <= props.revealOffset\n || scroll.position - scroll.inflectionPoint < 100\n )\n })\n\n const instance = {}\n\n $layout.instances.header = instance\n props.modelValue === true && updateLayout('size', size.value)\n updateLayout('space', props.modelValue)\n updateLayout('offset', offset.value)\n\n onBeforeUnmount(() => {\n if ($layout.instances.header === instance) {\n $layout.instances.header = void 0\n updateLayout('size', 0)\n updateLayout('offset', 0)\n updateLayout('space', false)\n }\n })\n\n return () => {\n const child = hUniqueSlot(slots.default, [])\n\n props.elevated === true && child.push(\n h('div', {\n class: 'q-layout__shadow absolute-full overflow-hidden no-pointer-events'\n })\n )\n\n child.push(\n h(QResizeObserver, {\n debounce: 0,\n onResize\n })\n )\n\n return h('header', {\n class: classes.value,\n style: style.value,\n onFocusin\n }, child)\n }\n }\n})\n","import { h, defineComponent, computed } from 'vue'\n\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default defineComponent({\n name: 'QToolbar',\n\n props: {\n inset: Boolean\n },\n\n setup (props, { slots }) {\n const classes = computed(() =>\n 'q-toolbar row no-wrap items-center'\n + (props.inset === true ? ' q-toolbar--inset' : '')\n )\n\n return () => h('div', { class: classes.value }, hSlot(slots.default))\n }\n})\n","import { h, defineComponent, computed } from 'vue'\n\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default defineComponent({\n name: 'QToolbarTitle',\n\n props: {\n shrink: Boolean\n },\n\n setup (props, { slots }) {\n const classes = computed(() =>\n 'q-toolbar__title ellipsis'\n + (props.shrink === true ? ' col-shrink' : '')\n )\n\n return () => h('div', { class: classes.value }, hSlot(slots.default))\n }\n})\n","import { h, defineComponent } from 'vue'\n\nconst space = h('div', { class: 'q-space' })\n\nexport default defineComponent({\n name: 'QSpace',\n\n setup () {\n return () => space\n }\n})\n","import { render } from \"./TopNav.vue?vue&type=template&id=7d5e6b33\"\nimport script from \"./TopNav.vue?vue&type=script&lang=ts\"\nexport * from \"./TopNav.vue?vue&type=script&lang=ts\"\n\nimport \"./TopNav.vue?vue&type=style&index=0&id=7d5e6b33&lang=scss\"\nscript.render = render\n\nexport default script\nimport QHeader from 'quasar/src/components/header/QHeader.js';\nimport QToolbar from 'quasar/src/components/toolbar/QToolbar.js';\nimport QBtn from 'quasar/src/components/btn/QBtn.js';\nimport QToolbarTitle from 'quasar/src/components/toolbar/QToolbarTitle.js';\nimport QSpace from 'quasar/src/components/space/QSpace.js';\nimport QSeparator from 'quasar/src/components/separator/QSeparator.js';\nimport qInstall from \"../../node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js\";\nqInstall(script, 'components', {QHeader,QToolbar,QBtn,QToolbarTitle,QSpace,QSeparator});\n","import { ref, watch, onBeforeUnmount } from 'vue'\n\nimport { listenOpts } from '../../utils/event.js'\n\nexport default function (\n props,\n configureScrollTarget\n) {\n const localScrollTarget = ref(null)\n let scrollFn\n\n function changeScrollEvent (scrollTarget, fn) {\n const fnProp = `${ fn !== void 0 ? 'add' : 'remove' }EventListener`\n const fnHandler = fn !== void 0 ? fn : scrollFn\n\n if (scrollTarget !== window) {\n scrollTarget[ fnProp ]('scroll', fnHandler, listenOpts.passive)\n }\n\n window[ fnProp ]('scroll', fnHandler, listenOpts.passive)\n\n scrollFn = fn\n }\n\n function unconfigureScrollTarget () {\n if (localScrollTarget.value !== null) {\n changeScrollEvent(localScrollTarget.value)\n localScrollTarget.value = null\n }\n }\n\n const noParentEventWatcher = watch(() => props.noParentEvent, () => {\n if (localScrollTarget.value !== null) {\n unconfigureScrollTarget()\n configureScrollTarget()\n }\n })\n\n onBeforeUnmount(noParentEventWatcher)\n\n return {\n localScrollTarget,\n unconfigureScrollTarget,\n changeScrollEvent\n }\n}\n","import { ref, watch, onMounted, onBeforeUnmount, nextTick, getCurrentInstance } from 'vue'\n\nimport { clearSelection } from '../../utils/private/selection.js'\nimport { addEvt, cleanEvt, prevent } from '../../utils/event.js'\nimport { getTouchTarget } from '../../utils/private/touch.js'\nimport { isKeyCode } from '../../utils/private/key-composition.js'\n\nexport const useAnchorProps = {\n target: {\n default: true\n },\n noParentEvent: Boolean,\n contextMenu: Boolean\n}\n\nexport default function ({\n showing,\n avoidEmit, // required for QPopupProxy (true)\n configureAnchorEl // optional\n}) {\n const { props, proxy, emit } = getCurrentInstance()\n\n const anchorEl = ref(null)\n\n let touchTimer\n\n function canShow (evt) {\n // abort with no parent configured or on multi-touch\n return anchorEl.value === null\n ? false\n : (evt === void 0 || evt.touches === void 0 || evt.touches.length <= 1)\n }\n\n const anchorEvents = {}\n\n if (configureAnchorEl === void 0) {\n // default configureAnchorEl is designed for\n // QMenu & QPopupProxy (which is why it's handled here)\n\n Object.assign(anchorEvents, {\n hide (evt) {\n proxy.hide(evt)\n },\n\n toggle (evt) {\n proxy.toggle(evt)\n },\n\n toggleKey (evt) {\n isKeyCode(evt, 13) === true && proxy.toggle(evt)\n },\n\n contextClick (evt) {\n proxy.hide(evt)\n nextTick(() => { proxy.show(evt) })\n prevent(evt)\n },\n\n mobilePrevent: prevent,\n\n mobileTouch (evt) {\n anchorEvents.mobileCleanup(evt)\n\n if (canShow(evt) !== true) {\n return\n }\n\n proxy.hide(evt)\n anchorEl.value.classList.add('non-selectable')\n\n const target = getTouchTarget(evt.target)\n addEvt(anchorEvents, 'anchor', [\n [ target, 'touchmove', 'mobileCleanup', 'passive' ],\n [ target, 'touchend', 'mobileCleanup', 'passive' ],\n [ target, 'touchcancel', 'mobileCleanup', 'passive' ],\n [ anchorEl.value, 'contextmenu', 'mobilePrevent', 'notPassive' ]\n ])\n\n touchTimer = setTimeout(() => {\n proxy.show(evt)\n }, 300)\n },\n\n mobileCleanup (evt) {\n anchorEl.value.classList.remove('non-selectable')\n clearTimeout(touchTimer)\n\n if (showing.value === true && evt !== void 0) {\n clearSelection()\n }\n }\n })\n\n configureAnchorEl = function (context = props.contextMenu) {\n if (props.noParentEvent === true || anchorEl.value === null) { return }\n\n let evts\n\n if (context === true) {\n if (proxy.$q.platform.is.mobile === true) {\n evts = [\n [ anchorEl.value, 'touchstart', 'mobileTouch', 'passive' ]\n ]\n }\n else {\n evts = [\n [ anchorEl.value, 'click', 'hide', 'passive' ],\n [ anchorEl.value, 'contextmenu', 'contextClick', 'notPassive' ]\n ]\n }\n }\n else {\n evts = [\n [ anchorEl.value, 'click', 'toggle', 'passive' ],\n [ anchorEl.value, 'keyup', 'toggleKey', 'passive' ]\n ]\n }\n\n addEvt(anchorEvents, 'anchor', evts)\n }\n }\n\n function unconfigureAnchorEl () {\n cleanEvt(anchorEvents, 'anchor')\n }\n\n function setAnchorEl (el) {\n anchorEl.value = el\n while (anchorEl.value.classList.contains('q-anchor--skip')) {\n anchorEl.value = anchorEl.value.parentNode\n }\n configureAnchorEl()\n }\n\n function pickAnchorEl () {\n if (props.target === false || props.target === '') {\n anchorEl.value = null\n }\n else if (props.target === true) {\n setAnchorEl(proxy.$el.parentNode)\n }\n else {\n let el = props.target\n\n if (typeof props.target === 'string') {\n try {\n el = document.querySelector(props.target)\n }\n catch (err) {\n el = void 0\n }\n }\n\n if (el !== void 0 && el !== null) {\n anchorEl.value = el.$el || el\n configureAnchorEl()\n }\n else {\n anchorEl.value = null\n console.error(`Anchor: target \"${ props.target }\" not found`)\n }\n }\n }\n\n watch(() => props.contextMenu, val => {\n if (anchorEl.value !== null) {\n unconfigureAnchorEl()\n configureAnchorEl(val)\n }\n })\n\n watch(() => props.target, () => {\n if (anchorEl.value !== null) {\n unconfigureAnchorEl()\n }\n\n pickAnchorEl()\n })\n\n watch(() => props.noParentEvent, val => {\n if (anchorEl.value !== null) {\n if (val === true) {\n unconfigureAnchorEl()\n }\n else {\n configureAnchorEl()\n }\n }\n })\n\n onMounted(() => {\n pickAnchorEl()\n\n if (avoidEmit !== true && props.modelValue === true && anchorEl.value === null) {\n emit('update:modelValue', false)\n }\n })\n\n onBeforeUnmount(() => {\n clearTimeout(touchTimer)\n unconfigureAnchorEl()\n })\n\n return {\n anchorEl,\n canShow,\n anchorEvents\n }\n}\n","import { h, defineComponent, ref, computed, getCurrentInstance } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport useRouterLink, { useRouterLinkProps } from '../../composables/private/use-router-link.js'\n\nimport { hUniqueSlot } from '../../utils/private/render.js'\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { isKeyCode } from '../../utils/private/key-composition.js'\n\nexport default defineComponent({\n name: 'QItem',\n\n props: {\n ...useDarkProps,\n ...useRouterLinkProps,\n\n tag: {\n type: String,\n default: 'div'\n },\n\n active: Boolean,\n\n clickable: Boolean,\n dense: Boolean,\n insetLevel: Number,\n\n tabindex: [ String, Number ],\n\n focused: Boolean,\n manualFocus: Boolean\n },\n\n emits: [ 'click', 'keyup' ],\n\n setup (props, { slots, emit }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const isDark = useDark(props, $q)\n const { hasLink, linkProps, linkClass, linkTag, navigateToLink } = useRouterLink()\n\n const rootRef = ref(null)\n const blurTargetRef = ref(null)\n\n const isActionable = computed(() =>\n props.clickable === true\n || hasLink.value === true\n || props.tag === 'a'\n || props.tag === 'label'\n )\n\n const isClickable = computed(() =>\n props.disable !== true && isActionable.value === true\n )\n\n const classes = computed(() =>\n 'q-item q-item-type row no-wrap'\n + (props.dense === true ? ' q-item--dense' : '')\n + (isDark.value === true ? ' q-item--dark' : '')\n + (\n hasLink.value === true\n ? linkClass.value\n : (\n props.active === true\n ? `${ props.activeClass !== void 0 ? ` ${ props.activeClass }` : '' } q-item--active`\n : ''\n )\n )\n + (props.disable === true ? ' disabled' : '')\n + (\n isClickable.value === true\n ? ' q-item--clickable q-link cursor-pointer '\n + (props.manualFocus === true ? 'q-manual-focusable' : 'q-focusable q-hoverable')\n + (props.focused === true ? ' q-manual-focusable--focused' : '')\n : ''\n )\n )\n\n const style = computed(() => {\n if (props.insetLevel === void 0) {\n return null\n }\n\n const dir = $q.lang.rtl === true ? 'Right' : 'Left'\n return {\n [ 'padding' + dir ]: (16 + props.insetLevel * 56) + 'px'\n }\n })\n\n function onClick (e) {\n if (isClickable.value === true) {\n if (blurTargetRef.value !== null) {\n if (e.qKeyEvent !== true && document.activeElement === rootRef.value) {\n blurTargetRef.value.focus()\n }\n else if (document.activeElement === blurTargetRef.value) {\n rootRef.value.focus()\n }\n }\n\n hasLink.value === true && navigateToLink(e)\n emit('click', e)\n }\n }\n\n function onKeyup (e) {\n if (isClickable.value === true && isKeyCode(e, 13) === true) {\n stopAndPrevent(e)\n\n // for ripple\n e.qKeyEvent = true\n\n // for click trigger\n const evt = new MouseEvent('click', e)\n evt.qKeyEvent = true\n rootRef.value.dispatchEvent(evt)\n }\n\n emit('keyup', e)\n }\n\n function getContent () {\n const child = hUniqueSlot(slots.default, [])\n\n isClickable.value === true && child.unshift(\n h('div', { class: 'q-focus-helper', tabindex: -1, ref: blurTargetRef })\n )\n\n return child\n }\n\n return () => {\n const data = {\n ref: rootRef,\n class: classes.value,\n style: style.value,\n onClick,\n onKeyup\n }\n\n if (isClickable.value === true) {\n data.tabindex = props.tabindex || '0'\n Object.assign(data, linkProps.value)\n }\n else if (isActionable.value === true) {\n data[ 'aria-disabled' ] = 'true'\n }\n\n return h(\n linkTag.value,\n data,\n getContent()\n )\n }\n }\n})\n","import { client } from '../plugins/Platform.js'\nimport { getModifierDirections, getTouchTarget, shouldStart } from '../utils/private/touch.js'\nimport { addEvt, cleanEvt, position, leftClick, prevent, stop, stopAndPrevent, preventDraggable, noop } from '../utils/event.js'\nimport { clearSelection } from '../utils/private/selection.js'\nimport getSSRProps from '../utils/private/noop-ssr-directive-transform.js'\n\nfunction getChanges (evt, ctx, isFinal) {\n const pos = position(evt)\n let\n dir,\n distX = pos.left - ctx.event.x,\n distY = pos.top - ctx.event.y,\n absX = Math.abs(distX),\n absY = Math.abs(distY)\n\n const direction = ctx.direction\n\n if (direction.horizontal === true && direction.vertical !== true) {\n dir = distX < 0 ? 'left' : 'right'\n }\n else if (direction.horizontal !== true && direction.vertical === true) {\n dir = distY < 0 ? 'up' : 'down'\n }\n else if (direction.up === true && distY < 0) {\n dir = 'up'\n if (absX > absY) {\n if (direction.left === true && distX < 0) {\n dir = 'left'\n }\n else if (direction.right === true && distX > 0) {\n dir = 'right'\n }\n }\n }\n else if (direction.down === true && distY > 0) {\n dir = 'down'\n if (absX > absY) {\n if (direction.left === true && distX < 0) {\n dir = 'left'\n }\n else if (direction.right === true && distX > 0) {\n dir = 'right'\n }\n }\n }\n else if (direction.left === true && distX < 0) {\n dir = 'left'\n if (absX < absY) {\n if (direction.up === true && distY < 0) {\n dir = 'up'\n }\n else if (direction.down === true && distY > 0) {\n dir = 'down'\n }\n }\n }\n else if (direction.right === true && distX > 0) {\n dir = 'right'\n if (absX < absY) {\n if (direction.up === true && distY < 0) {\n dir = 'up'\n }\n else if (direction.down === true && distY > 0) {\n dir = 'down'\n }\n }\n }\n\n let synthetic = false\n\n if (dir === void 0 && isFinal === false) {\n if (ctx.event.isFirst === true || ctx.event.lastDir === void 0) {\n return {}\n }\n\n dir = ctx.event.lastDir\n synthetic = true\n\n if (dir === 'left' || dir === 'right') {\n pos.left -= distX\n absX = 0\n distX = 0\n }\n else {\n pos.top -= distY\n absY = 0\n distY = 0\n }\n }\n\n return {\n synthetic,\n payload: {\n evt,\n touch: ctx.event.mouse !== true,\n mouse: ctx.event.mouse === true,\n position: pos,\n direction: dir,\n isFirst: ctx.event.isFirst,\n isFinal: isFinal === true,\n duration: Date.now() - ctx.event.time,\n distance: {\n x: absX,\n y: absY\n },\n offset: {\n x: distX,\n y: distY\n },\n delta: {\n x: pos.left - ctx.event.lastX,\n y: pos.top - ctx.event.lastY\n }\n }\n }\n}\n\nlet uid = 0\n\nexport default __QUASAR_SSR_SERVER__\n ? { name: 'touch-pan', getSSRProps }\n : {\n name: 'touch-pan',\n\n beforeMount (el, { value, modifiers }) {\n // early return, we don't need to do anything\n if (modifiers.mouse !== true && client.has.touch !== true) {\n return\n }\n\n function handleEvent (evt, mouseEvent) {\n if (modifiers.mouse === true && mouseEvent === true) {\n stopAndPrevent(evt)\n }\n else {\n modifiers.stop === true && stop(evt)\n modifiers.prevent === true && prevent(evt)\n }\n }\n\n const ctx = {\n uid: 'qvtp_' + (uid++),\n handler: value,\n modifiers,\n direction: getModifierDirections(modifiers),\n\n noop,\n\n mouseStart (evt) {\n if (shouldStart(evt, ctx) && leftClick(evt)) {\n addEvt(ctx, 'temp', [\n [ document, 'mousemove', 'move', 'notPassiveCapture' ],\n [ document, 'mouseup', 'end', 'passiveCapture' ]\n ])\n\n ctx.start(evt, true)\n }\n },\n\n touchStart (evt) {\n if (shouldStart(evt, ctx)) {\n const target = getTouchTarget(evt.target)\n\n addEvt(ctx, 'temp', [\n [ target, 'touchmove', 'move', 'notPassiveCapture' ],\n [ target, 'touchcancel', 'end', 'passiveCapture' ],\n [ target, 'touchend', 'end', 'passiveCapture' ]\n ])\n\n ctx.start(evt)\n }\n },\n\n start (evt, mouseEvent) {\n client.is.firefox === true && preventDraggable(el, true)\n ctx.lastEvt = evt\n\n const pos = position(evt)\n\n /*\n * Stop propagation so possible upper v-touch-pan don't catch this as well;\n * If we're not the target (based on modifiers), we'll re-emit the event later\n */\n if (mouseEvent === true || modifiers.stop === true) {\n /*\n * are we directly switching to detected state?\n * clone event only otherwise\n */\n if (\n ctx.direction.all !== true\n && (mouseEvent !== true || ctx.direction.mouseAllDir !== true)\n ) {\n const clone = evt.type.indexOf('mouse') > -1\n ? new MouseEvent(evt.type, evt)\n : new TouchEvent(evt.type, evt)\n\n evt.defaultPrevented === true && prevent(clone)\n evt.cancelBubble === true && stop(clone)\n\n clone.qClonedBy = evt.qClonedBy === void 0\n ? [ ctx.uid ]\n : evt.qClonedBy.concat(ctx.uid)\n clone.qKeyEvent = evt.qKeyEvent\n clone.qClickOutside = evt.qClickOutside\n\n ctx.initialEvent = {\n target: evt.target,\n event: clone\n }\n }\n\n stop(evt)\n }\n\n ctx.event = {\n x: pos.left,\n y: pos.top,\n time: Date.now(),\n mouse: mouseEvent === true,\n detected: false,\n isFirst: true,\n isFinal: false,\n lastX: pos.left,\n lastY: pos.top\n }\n },\n\n move (evt) {\n if (ctx.event === void 0) {\n return\n }\n\n ctx.lastEvt = evt\n\n const isMouseEvt = ctx.event.mouse === true\n const start = () => {\n handleEvent(evt, isMouseEvt)\n\n if (modifiers.preserveCursor !== true) {\n document.documentElement.style.cursor = 'grabbing'\n }\n isMouseEvt === true && document.body.classList.add('no-pointer-events--children')\n document.body.classList.add('non-selectable')\n clearSelection()\n\n ctx.styleCleanup = withDelayedFn => {\n ctx.styleCleanup = void 0\n\n if (modifiers.preserveCursor !== true) {\n document.documentElement.style.cursor = ''\n }\n document.body.classList.remove('non-selectable')\n\n if (isMouseEvt === true) {\n const remove = () => {\n document.body.classList.remove('no-pointer-events--children')\n }\n\n if (withDelayedFn !== void 0) {\n setTimeout(() => {\n remove()\n withDelayedFn()\n }, 50)\n }\n else { remove() }\n }\n else if (withDelayedFn !== void 0) {\n withDelayedFn()\n }\n }\n }\n\n if (ctx.event.detected === true) {\n ctx.event.isFirst !== true && handleEvent(evt, ctx.event.mouse)\n\n const { payload, synthetic } = getChanges(evt, ctx, false)\n\n if (payload !== void 0) {\n if (ctx.handler(payload) === false) {\n ctx.end(evt)\n }\n else {\n if (ctx.styleCleanup === void 0 && ctx.event.isFirst === true) {\n start()\n }\n\n ctx.event.lastX = payload.position.left\n ctx.event.lastY = payload.position.top\n ctx.event.lastDir = synthetic === true ? void 0 : payload.direction\n ctx.event.isFirst = false\n }\n }\n\n return\n }\n\n if (\n ctx.direction.all === true\n || (isMouseEvt === true && ctx.modifiers.mouseAllDir === true)\n ) {\n start()\n ctx.event.detected = true\n ctx.move(evt)\n return\n }\n\n const\n pos = position(evt),\n distX = pos.left - ctx.event.x,\n distY = pos.top - ctx.event.y,\n absX = Math.abs(distX),\n absY = Math.abs(distY)\n\n if (absX !== absY) {\n if (\n (ctx.direction.horizontal === true && absX > absY)\n || (ctx.direction.vertical === true && absX < absY)\n || (ctx.direction.up === true && absX < absY && distY < 0)\n || (ctx.direction.down === true && absX < absY && distY > 0)\n || (ctx.direction.left === true && absX > absY && distX < 0)\n || (ctx.direction.right === true && absX > absY && distX > 0)\n ) {\n ctx.event.detected = true\n ctx.move(evt)\n }\n else {\n ctx.end(evt, true)\n }\n }\n },\n\n end (evt, abort) {\n if (ctx.event === void 0) {\n return\n }\n\n cleanEvt(ctx, 'temp')\n client.is.firefox === true && preventDraggable(el, false)\n\n if (abort === true) {\n ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n if (ctx.event.detected !== true && ctx.initialEvent !== void 0) {\n ctx.initialEvent.target.dispatchEvent(ctx.initialEvent.event)\n }\n }\n else if (ctx.event.detected === true) {\n ctx.event.isFirst === true && ctx.handler(getChanges(evt === void 0 ? ctx.lastEvt : evt, ctx).payload)\n\n const { payload } = getChanges(evt === void 0 ? ctx.lastEvt : evt, ctx, true)\n const fn = () => { ctx.handler(payload) }\n\n if (ctx.styleCleanup !== void 0) {\n ctx.styleCleanup(fn)\n }\n else {\n fn()\n }\n }\n\n ctx.event = void 0\n ctx.initialEvent = void 0\n ctx.lastEvt = void 0\n }\n }\n\n el.__qtouchpan = ctx\n\n modifiers.mouse === true && addEvt(ctx, 'main', [\n [ el, 'mousedown', 'mouseStart', `passive${ modifiers.mouseCapture === true ? 'Capture' : '' }` ]\n ])\n\n client.has.touch === true && addEvt(ctx, 'main', [\n [ el, 'touchstart', 'touchStart', `passive${ modifiers.capture === true ? 'Capture' : '' }` ],\n [ el, 'touchmove', 'noop', 'notPassiveCapture' ]\n ])\n },\n\n updated (el, { oldValue, value }) {\n const ctx = el.__qtouchpan\n\n if (ctx !== void 0 && oldValue !== value) {\n typeof value !== 'function' && ctx.end()\n ctx.handler = value\n }\n },\n\n beforeUnmount (el) {\n const ctx = el.__qtouchpan\n\n if (ctx !== void 0) {\n // emit the end event when the directive is destroyed while active\n // this is only needed in TouchPan because the rest of the touch directives do not emit an end event\n // the condition is also checked in the start of function but we avoid the call\n ctx.event !== void 0 && ctx.end()\n\n cleanEvt(ctx, 'main')\n cleanEvt(ctx, 'temp')\n\n client.is.firefox === true && preventDraggable(el, false)\n ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n delete el.__qtouchpan\n }\n }\n }\n","module.exports = __webpack_public_path__ + \"img/penlink-logo-white.e5159d65.png\";","const units = [ 'B', 'KB', 'MB', 'GB', 'TB', 'PB' ]\n\nexport function humanStorageSize (bytes) {\n let u = 0\n\n while (parseInt(bytes, 10) >= 1024 && u < units.length - 1) {\n bytes /= 1024\n ++u\n }\n\n return `${ bytes.toFixed(1) }${ units[ u ] }`\n}\n\nexport function capitalize (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function between (v, min, max) {\n return max <= min\n ? min\n : Math.min(max, Math.max(min, v))\n}\n\nexport function normalizeToInterval (v, min, max) {\n if (max <= min) {\n return min\n }\n\n const size = (max - min + 1)\n\n let index = min + (v - min) % size\n if (index < min) {\n index = size + index\n }\n\n return index === 0 ? 0 : index // fix for (-a % a) => -0\n}\n\nexport function pad (v, length = 2, char = '0') {\n if (v === void 0 || v === null) {\n return v\n }\n\n const val = '' + v\n return val.length >= length\n ? val\n : new Array(length - val.length + 1).join(char) + val\n}\n\nexport default {\n humanStorageSize,\n capitalize,\n between,\n normalizeToInterval,\n pad\n}\n","import { listenOpts } from '../event.js'\n\nlet timer\n\nconst\n { notPassiveCapture } = listenOpts,\n registeredList = []\n\nfunction hasModalsAbove (node) {\n while ((node = node.nextElementSibling) !== null) {\n if (node.classList.contains('q-dialog--modal')) {\n return true\n }\n }\n\n return false\n}\n\nfunction globalHandler (evt) {\n clearTimeout(timer)\n\n const target = evt.target\n\n if (\n target === void 0\n || target.nodeType === 8\n || target.classList.contains('no-pointer-events') === true\n ) {\n return\n }\n\n for (let i = registeredList.length - 1; i >= 0; i--) {\n const state = registeredList[ i ]\n if (\n (\n state.anchorEl.value === null\n || state.anchorEl.value.contains(target) === false\n )\n && (\n target === document.body\n || (state.innerRef.value !== null && state.innerRef.value.contains(target) === false)\n )\n && (\n state.getEl !== void 0\n ? hasModalsAbove(state.getEl()) !== true\n : true\n )\n ) {\n // mark the event as being processed by clickOutside\n // used to prevent refocus after menu close\n evt.qClickOutside = true\n state.onClickOutside(evt)\n }\n else {\n return\n }\n }\n}\n\nexport function addClickOutside (clickOutsideProps) {\n registeredList.push(clickOutsideProps)\n\n if (registeredList.length === 1) {\n document.addEventListener('mousedown', globalHandler, notPassiveCapture)\n document.addEventListener('touchstart', globalHandler, notPassiveCapture)\n }\n}\n\nexport function removeClickOutside (clickOutsideProps) {\n const index = registeredList.findIndex(h => h === clickOutsideProps)\n\n if (index > -1) {\n registeredList.splice(index, 1)\n\n if (registeredList.length === 0) {\n clearTimeout(timer)\n document.removeEventListener('mousedown', globalHandler, notPassiveCapture)\n document.removeEventListener('touchstart', globalHandler, notPassiveCapture)\n }\n }\n}\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '' + tag + '>';\n};\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/vue-cli-plugin-quasar/lib/loader.vue.auto-import-quasar.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-2!./LeftDrawer.vue?vue&type=style&index=0&id=2313d5aa&lang=scss\"","/**\n * Quasar runtime for auto-importing\n * components or directives.\n *\n * Warning! This file does NOT get transpiled by Babel\n * but is included into the UI code.\n *\n * @param {component} Vue Component object\n * @param {type} One of 'components' or 'directives'\n * @param {items} Object containing components or directives\n */\nmodule.exports = function qInstall (component, type, items) {\n const targetComponent = component.__vccOpts !== void 0\n ? component.__vccOpts\n : component\n\n const target = targetComponent[type]\n\n if (target === void 0) {\n targetComponent[type] = items\n }\n else {\n for (var i in items) {\n if (target[i] === void 0) {\n target[i] = items[i]\n }\n }\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Gray50\":\"#fafafa\",\"Gray100\":\"#f2f4f5\",\"Gray200\":\"#ebeff2\",\"Gray300\":\"#dae0e6\",\"Gray400\":\"#bec5cc\",\"Gray500\":\"#a1aab3\",\"Gray600\":\"#8a9299\",\"Gray700\":\"#737980\",\"Gray800\":\"#5c6166\",\"Gray900\":\"#45494d\",\"Navy50\":\"#bde3fc\",\"Navy100\":\"#7ec9fc\",\"Navy200\":\"#3faffc\",\"Navy300\":\"#0095fc\",\"Navy400\":\"#0086e3\",\"Navy500\":\"#0077c9\",\"Navy600\":\"#0068b0\",\"Navy700\":\"#005996\",\"Navy800\":\"#004a7d\",\"Navy900\":\"#002b49\",\"Blue50\":\"#bbeafa\",\"Blue100\":\"#7ddafa\",\"Blue200\":\"#3ecafa\",\"Blue300\":\"#00bbfa\",\"Blue400\":\"#00a8e1\",\"Blue500\":\"#0095c7\",\"Blue600\":\"#0081ad\",\"Blue700\":\"#006e94\",\"Blue800\":\"#005b7a\",\"Blue900\":\"#004861\",\"Red50\":\"#f2b5c1\",\"Red100\":\"#f2798f\",\"Red200\":\"#f23d5e\",\"Red300\":\"#f2002c\",\"Red400\":\"#d90027\",\"Red500\":\"#bf0023\",\"Red600\":\"#a6001e\",\"Red700\":\"#8c001a\",\"Red800\":\"#730015\",\"Red900\":\"#590010\",\"Yellow50\":\"#fcf8bd\",\"Yellow100\":\"#fcf37e\",\"Yellow200\":\"#fcef3f\",\"Yellow300\":\"#fceb00\",\"Yellow400\":\"#e3d400\",\"Yellow500\":\"#c9bc00\",\"White\":\"#fff\",\"Black\":\"#17181a\",\"Orange\":\"#ff8900\",\"Transparent\":\"rgba(255,255,255,0)\"};","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","import { h, defineComponent, computed, getCurrentInstance } from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport Ripple from '../../directives/Ripple.js'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport useSize, { useSizeProps } from '../../composables/private/use-size.js'\n\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { hMergeSlotSafely, hDir } from '../../utils/private/render.js'\n\nconst defaultSizes = {\n xs: 8,\n sm: 10,\n md: 14,\n lg: 20,\n xl: 24\n}\n\nexport default defineComponent({\n name: 'QChip',\n\n props: {\n ...useDarkProps,\n ...useSizeProps,\n\n dense: Boolean,\n\n icon: String,\n iconRight: String,\n iconRemove: String,\n iconSelected: String,\n label: [ String, Number ],\n\n color: String,\n textColor: String,\n\n modelValue: {\n type: Boolean,\n default: true\n },\n selected: {\n type: Boolean,\n default: null\n },\n\n square: Boolean,\n outline: Boolean,\n clickable: Boolean,\n removable: Boolean,\n\n tabindex: [ String, Number ],\n disable: Boolean,\n\n ripple: {\n type: [ Boolean, Object ],\n default: true\n }\n },\n\n emits: [ 'update:modelValue', 'update:selected', 'remove', 'click' ],\n\n setup (props, { slots, emit }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const isDark = useDark(props, $q)\n const sizeStyle = useSize(props, defaultSizes)\n\n const hasLeftIcon = computed(() => props.selected === true || props.icon !== void 0)\n\n const leftIcon = computed(() => (\n props.selected === true\n ? props.iconSelected || $q.iconSet.chip.selected\n : props.icon\n ))\n\n const removeIcon = computed(() => props.iconRemove || $q.iconSet.chip.remove)\n\n const isClickable = computed(() =>\n props.disable === false\n && (props.clickable === true || props.selected !== null)\n )\n\n const classes = computed(() => {\n const text = props.outline === true\n ? props.color || props.textColor\n : props.textColor\n\n return 'q-chip row inline no-wrap items-center'\n + (props.outline === false && props.color !== void 0 ? ` bg-${ props.color }` : '')\n + (text ? ` text-${ text } q-chip--colored` : '')\n + (props.disable === true ? ' disabled' : '')\n + (props.dense === true ? ' q-chip--dense' : '')\n + (props.outline === true ? ' q-chip--outline' : '')\n + (props.selected === true ? ' q-chip--selected' : '')\n + (isClickable.value === true ? ' q-chip--clickable cursor-pointer non-selectable q-hoverable' : '')\n + (props.square === true ? ' q-chip--square' : '')\n + (isDark.value === true ? ' q-chip--dark q-dark' : '')\n })\n\n const attributes = computed(() => (\n props.disable === true\n ? { tabindex: -1, 'aria-disabled': 'true' }\n : { tabindex: props.tabindex || 0 }\n ))\n\n function onKeyup (e) {\n e.keyCode === 13 /* ENTER */ && onClick(e)\n }\n\n function onClick (e) {\n if (!props.disable) {\n emit('update:selected', !props.selected)\n emit('click', e)\n }\n }\n\n function onRemove (e) {\n if (e.keyCode === void 0 || e.keyCode === 13) {\n stopAndPrevent(e)\n if (props.disable === false) {\n emit('update:modelValue', false)\n emit('remove')\n }\n }\n }\n\n function getContent () {\n const child = []\n\n isClickable.value === true && child.push(\n h('div', { class: 'q-focus-helper' })\n )\n\n hasLeftIcon.value === true && child.push(\n h(QIcon, {\n class: 'q-chip__icon q-chip__icon--left',\n name: leftIcon.value\n })\n )\n\n const label = props.label !== void 0\n ? [ h('div', { class: 'ellipsis' }, [ props.label ]) ]\n : void 0\n\n child.push(\n h('div', {\n class: 'q-chip__content col row no-wrap items-center q-anchor--skip'\n }, hMergeSlotSafely(slots.default, label))\n )\n\n props.iconRight && child.push(\n h(QIcon, {\n class: 'q-chip__icon q-chip__icon--right',\n name: props.iconRight\n })\n )\n\n props.removable === true && child.push(\n h(QIcon, {\n class: 'q-chip__icon q-chip__icon--remove cursor-pointer',\n name: removeIcon.value,\n ...attributes.value,\n onClick: onRemove,\n onKeyup: onRemove\n })\n )\n\n return child\n }\n\n return () => {\n if (props.modelValue === false) { return }\n\n const data = {\n class: classes.value,\n style: sizeStyle.value\n }\n\n isClickable.value === true && Object.assign(\n data,\n attributes.value,\n { onClick, onKeyup }\n )\n\n return hDir(\n 'div',\n data,\n getContent(),\n 'ripple',\n props.ripple !== false && props.disable !== true,\n () => [ [ Ripple, props.ripple ] ]\n )\n }\n }\n})\n","import { inject } from 'vue'\nimport { quasarKey } from '../utils/private/symbols.js'\n\n/**\n * Returns the $q instance.\n * Equivalent to `this.$q` inside templates.\n */\nexport default function useQuasar () {\n return inject(quasarKey)\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","import { defineComponent, watch, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport { getScrollTarget, getVerticalScrollPosition, getHorizontalScrollPosition } from '../../utils/scroll.js'\nimport { listenOpts, noop } from '../../utils/event.js'\n\nconst { passive } = listenOpts\nconst axisValues = [ 'both', 'horizontal', 'vertical' ]\n\nexport default defineComponent({\n name: 'QScrollObserver',\n\n props: {\n axis: {\n type: String,\n validator: v => axisValues.includes(v),\n default: 'vertical'\n },\n\n debounce: [ String, Number ],\n\n scrollTarget: {\n default: void 0\n }\n },\n\n emits: [ 'scroll' ],\n\n setup (props, { emit }) {\n const scroll = {\n position: {\n top: 0,\n left: 0\n },\n\n direction: 'down',\n directionChanged: false,\n\n delta: {\n top: 0,\n left: 0\n },\n\n inflectionPoint: {\n top: 0,\n left: 0\n }\n }\n\n let timer = null, localScrollTarget, parentEl\n\n watch(() => props.scrollTarget, () => {\n unconfigureScrollTarget()\n configureScrollTarget()\n })\n\n function emitEvent () {\n timer = null\n\n const top = Math.max(0, getVerticalScrollPosition(localScrollTarget))\n const left = getHorizontalScrollPosition(localScrollTarget)\n\n const delta = {\n top: top - scroll.position.top,\n left: left - scroll.position.left\n }\n\n if (\n (props.axis === 'vertical' && delta.top === 0)\n || (props.axis === 'horizontal' && delta.left === 0)\n ) {\n return\n }\n\n const curDir = Math.abs(delta.top) >= Math.abs(delta.left)\n ? (delta.top < 0 ? 'up' : 'down')\n : (delta.left < 0 ? 'left' : 'right')\n\n scroll.position = { top, left }\n scroll.directionChanged = scroll.direction !== curDir\n scroll.delta = delta\n\n if (scroll.directionChanged === true) {\n scroll.direction = curDir\n scroll.inflectionPoint = scroll.position\n }\n\n emit('scroll', { ...scroll })\n }\n\n function configureScrollTarget () {\n localScrollTarget = getScrollTarget(parentEl, props.scrollTarget)\n localScrollTarget.addEventListener('scroll', trigger, passive)\n trigger(true)\n }\n\n function unconfigureScrollTarget () {\n if (localScrollTarget !== void 0) {\n localScrollTarget.removeEventListener('scroll', trigger, passive)\n localScrollTarget = void 0\n }\n }\n\n function trigger (immediately) {\n if (immediately === true || props.debounce === 0 || props.debounce === '0') {\n emitEvent()\n }\n else if (timer === null) {\n timer = props.debounce\n ? setTimeout(emitEvent, props.debounce)\n : requestAnimationFrame(emitEvent)\n }\n }\n\n const vm = getCurrentInstance()\n\n onMounted(() => {\n parentEl = vm.proxy.$el.parentNode\n configureScrollTarget()\n })\n\n onBeforeUnmount(() => {\n clearTimeout(timer)\n cancelAnimationFrame(timer)\n unconfigureScrollTarget()\n })\n\n // expose public methods\n Object.assign(vm.proxy, {\n trigger,\n getPosition: () => scroll\n })\n\n return noop\n }\n})\n","import Platform from '../../plugins/Platform.js'\n\nexport function clearSelection () {\n if (window.getSelection !== void 0) {\n const selection = window.getSelection()\n if (selection.empty !== void 0) {\n selection.empty()\n }\n else if (selection.removeAllRanges !== void 0) {\n selection.removeAllRanges()\n Platform.is.mobile !== true && selection.addRange(document.createRange())\n }\n }\n else if (document.selection !== void 0) {\n document.selection.empty()\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Gray50\":\"#fafafa\",\"Gray100\":\"#f2f4f5\",\"Gray200\":\"#ebeff2\",\"Gray300\":\"#dae0e6\",\"Gray400\":\"#bec5cc\",\"Gray500\":\"#a1aab3\",\"Gray600\":\"#8a9299\",\"Gray700\":\"#737980\",\"Gray800\":\"#5c6166\",\"Gray900\":\"#45494d\",\"Navy50\":\"#bde3fc\",\"Navy100\":\"#7ec9fc\",\"Navy200\":\"#3faffc\",\"Navy300\":\"#0095fc\",\"Navy400\":\"#0086e3\",\"Navy500\":\"#0077c9\",\"Navy600\":\"#0068b0\",\"Navy700\":\"#005996\",\"Navy800\":\"#004a7d\",\"Navy900\":\"#002b49\",\"Blue50\":\"#bbeafa\",\"Blue100\":\"#7ddafa\",\"Blue200\":\"#3ecafa\",\"Blue300\":\"#00bbfa\",\"Blue400\":\"#00a8e1\",\"Blue500\":\"#0095c7\",\"Blue600\":\"#0081ad\",\"Blue700\":\"#006e94\",\"Blue800\":\"#005b7a\",\"Blue900\":\"#004861\",\"Red50\":\"#f2b5c1\",\"Red100\":\"#f2798f\",\"Red200\":\"#f23d5e\",\"Red300\":\"#f2002c\",\"Red400\":\"#d90027\",\"Red500\":\"#bf0023\",\"Red600\":\"#a6001e\",\"Red700\":\"#8c001a\",\"Red800\":\"#730015\",\"Red900\":\"#590010\",\"Yellow50\":\"#fcf8bd\",\"Yellow100\":\"#fcf37e\",\"Yellow200\":\"#fcef3f\",\"Yellow300\":\"#fceb00\",\"Yellow400\":\"#e3d400\",\"Yellow500\":\"#c9bc00\",\"White\":\"#fff\",\"Black\":\"#17181a\",\"Orange\":\"#ff8900\",\"Transparent\":\"rgba(255,255,255,0)\"};"],"sourceRoot":""}