{"version":3,"sources":["webpack:///./node_modules/v-year-calendar/dist/v-year-calendar.js","webpack:///./src/store/settings/language/moduleLanguageState.js","webpack:///./src/store/settings/language/moduleLanguageMutations.js","webpack:///./src/store/settings/language/moduleLanguageActions.js","webpack:///./src/store/settings/language/moduleLanguageGetters.js","webpack:///./src/store/settings/language/moduleLanguage.js","webpack:///./src/store/settings/industrySector/moduleIndustrySectorState.js","webpack:///./src/store/settings/industrySector/moduleIndustrySectorMutations.js","webpack:///./src/store/settings/industrySector/moduleIndustrySectorActions.js","webpack:///./src/store/settings/industrySector/moduleIndustrySectorGetters.js","webpack:///./src/store/settings/industrySector/moduleIndustrySector.js","webpack:///./src/views/planning/YearSummary.vue?7d36","webpack:///./node_modules/tippy.js/dist/tippy.chunk.esm.js","webpack:///./src/views/planning/YearSummarySearchSidebar.vue?146e","webpack:///src/views/planning/YearSummarySearchSidebar.vue","webpack:///./src/views/planning/YearSummarySearchSidebar.vue?5847","webpack:///./src/views/planning/YearSummarySearchSidebar.vue","webpack:///src/views/planning/YearSummary.vue","webpack:///./src/views/planning/YearSummary.vue?c6dc","webpack:///./src/views/planning/YearSummary.vue","webpack:///./node_modules/vue-perfect-scrollbar/dist/index.js","webpack:///./src/store/settings/courseAreaOfStudy/moduleCourseAreaOfStudyState.js","webpack:///./src/store/settings/courseAreaOfStudy/moduleCourseAreaOfStudyMutations.js","webpack:///./src/store/settings/courseAreaOfStudy/moduleCourseAreaOfStudyActions.js","webpack:///./src/store/settings/courseAreaOfStudy/moduleCourseAreaOfStudyGetters.js","webpack:///./src/store/settings/courseAreaOfStudy/moduleCourseAreaOfStudy.js","webpack:///./src/store/settings/courseCategory/moduleCourseCategoryState.js","webpack:///./src/store/settings/courseCategory/moduleCourseCategoryMutations.js","webpack:///./src/store/settings/courseCategory/moduleCourseCategoryActions.js","webpack:///./src/store/settings/courseCategory/moduleCourseCategoryGetters.js","webpack:///./src/store/settings/courseCategory/moduleCourseCategory.js","webpack:///./src/views/planning/YearSummarySearchSidebar.vue?1fbe","webpack:///./node_modules/popper.js/dist/esm/popper.js"],"names":["globalThis","window","global","self","unwrapExports","x","__esModule","Object","prototype","hasOwnProperty","call","createCommonjsModule","fn","module","exports","jsYearCalendar","factory","_exports","_typeof","obj","Symbol","iterator","constructor","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","defineProperty","key","_createClass","protoProps","staticProps","_defineProperty","value","NodeList","forEach","callback","thisArg","this","Element","matches","msMatchesSelector","webkitMatchesSelector","closest","s","el","document","documentElement","contains","parentElement","parentNode","nodeType","Calendar","element","options","arguments","undefined","HTMLElement","Error","querySelector","classList","add","_initializeEvents","_initializeOptions","setYear","startYear","opt","isNaN","parseInt","Date","getFullYear","minDate","maxDate","language","locales","allowOverlap","displayWeekNumber","displayDisabledDataSource","displayHeader","alwaysHalfDay","enableRangeSelection","disabledDays","Array","disabledWeekDays","hiddenWeekDays","roundRangeLimits","dataSource","style","enableContextMenu","contextMenuItems","customDayRenderer","customDataSourceRenderer","weekStart","loadingTemplate","_dataSource","_initializeDatasourceColors","yearChanged","addEventListener","renderEnd","clickDay","dayContextMenu","selectRange","mouseOnDay","mouseOutDay","getDataSource","result","then","color","colors","isLoading","firstChild","removeChild","_renderHeader","_renderLoading","_renderBody","_renderDataSource","_applyEvents","months","opacity","display","transition","setTimeout","_triggerEvent","currentYear","header","createElement","headerTable","prevDiv","prevIcon","innerHTML","appendChild","prev2YearDiv","textContent","toString","prevYearDiv","yearDiv","nextYearDiv","next2YearDiv","nextDiv","nextIcon","monthsDiv","m","monthDiv","dataset","monthId","_nbCols","concat","firstDate","table","thead","titleRow","titleCell","setAttribute","headerRow","weekNumberCell","weekShort","d","headerCell","daysMin","_isHidden","currentDate","getTime","lastDate","getDay","setDate","getDate","row","currentThursday","getWeekNumber","cell","_isDisabled","cellContent","container","minHeight","loading","spinner","bounce","_this","querySelectorAll","month","monthData","startDate","endDate","push","day","nextDate","dayData","_renderDataSourceDay","elt","events","parent","weight","boxShadow","backgroundColor","currentTime","startHalfDay","otherColor","background","endHalfDay","_this2","e","currentTarget","marginLeft","visibility","cells","stopPropagation","date","_getDate","getEvents","preventDefault","_openContextMenu","which","isThereFreeSlot","_mouseDown","_rangeStart","_rangeEnd","_refreshRange","newDate","getMonth","oldValue","getEventsOnRange","_responsiveInterval","clearInterval","setInterval","calendarSize","offsetWidth","monthSize","className","remove","_this3","top","left","offsetTop","offsetLeft","offsetParent","_this4","contextMenu","body","eventItem","paddingLeft","eventItemContent","text","name","icon","_renderContextMenuItems","children","position","_getElementPosition","right","getBoundingClientRect","_checkContextMenuItemsPosition","closeContextMenu","event","type","removeEventListener","items","evt","subMenu","visible","menuItem","menuItemContent","click","index","menus","menu","htmlMenu","year","eventName","parameters","Event","createEvent","initEvent","calendar","dispatchEvent","workingDate","setHours","week1","Math","round","_this5","after","some","_this6","parsedYear","eventResult","preventRendering","render","_fetchDataSource","_this7","en","days","daysShort","monthsShort","JsCalendar","styleInject","css","ref","insertAt","head","getElementsByTagName","insertBefore","styleSheet","cssText","createTextNode","css_248z","script","data","shouldRender","mounted","$el","renderStyle","$emit","computed","allProps","watch","val","setAllowOverlap","setAlwaysHalfDay","setContextMenuItems","setCustomDayRenderer","setCustomDataSourceRenderer","setDataSource","setDisabledDays","setDisabledWeekDays","setDisplayDisabledDataSource","setDisplayHeader","setDisplayWeekNumber","setEnableContextMenu","setEnableRangeSelection","setHiddenWeekDays","setLanguage","setLoadingTemplate","setMaxDate","setMinDate","setRoundRangeLimits","setStyle","setWeekStart","normalizeComponent","template","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","normalizeComponent_1","__vue_script__","__vue_render__","_vm","_h","$createElement","_c","_self","__vue_staticRenderFns__","_withStripped","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","vYearCalendar","languages","ADD_ITEM","state","item","unshift","SET_Languages","UPDATE_Language","languageIndex","findIndex","p","ID","assign","REMOVE_ITEM","itemId","ItemIndex","splice","addItem","commit","Promise","resolve","reject","axios","post","response","catch","error","fetchDataListItems","get","updateItem","put","GetItemByID","itemid","removeItem","delete","namespaced","mutations","actions","getters","industrySectors","SET_IndustrySectors","UPDATE_IndustrySector","industrySector","industrySectorIndex","attrs","showSearchSidebar","search","on","closeSidebar","$event","toggleDataSidebar","_v","_s","$t","staticClass","courses","_extends","source","apply","version","reflow","offsetHeight","setInnerHTML","html","isReferenceElement","_tippy","reference","getArrayOfElements","isElement","isNodeList","arrayFrom","isArray","getValueAtIndexOrReturn","defaultValue","v","getModifier","modifiers","isType","str","indexOf","isMouseEvent","invokeWithArgsOrReturn","args","setModifierValue","property","filter","div","setTransitionDuration","els","transitionDuration","setVisibilityState","debounce","ms","arg","clearTimeout","timeout","preserveInvocation","originalFn","currentFn","slice","closestCallback","includes","a","b","splitBySpaces","split","Boolean","useIfDefined","nextValue","currentValue","normalizeToArray","getOwnerDocument","elementOrElements","_normalizeToArray","ownerDocument","pushIfUnique","arr","appendPxIfNumber","unique","getNumber","parseFloat","getUnitsInPx","doc","isRem","rootFontSize","getComputedStyle","fontSize","String","getComputedPadding","basePlacement","padding","distancePx","freshPaddingObject","bottom","keys","reduce","pluginProps","animateFill","followCursor","inlinePositioning","sticky","defaultProps","allowHTML","animation","appendTo","aria","arrow","boundary","content","delay","distance","duration","flip","flipBehavior","flipOnUpdate","hideOnClick","ignoreAttributes","inertia","interactive","interactiveBorder","interactiveDebounce","lazy","maxWidth","multiple","offset","onAfterUpdate","onBeforeUpdate","onCreate","onDestroy","onHidden","onHide","onMount","onShow","onShown","onTrigger","onUntrigger","placement","plugins","popperOptions","role","showOnCreate","theme","touch","trigger","triggerTarget","updateDuration","zIndex","defaultKeys","POPPER_INSTANCE_DEPENDENCIES","setDefaultProps","partialProps","getExtendedPassedProps","passedProps","acc","plugin","getDataAttributeProps","propKeys","valueAsString","getAttribute","trim","JSON","parse","evaluateProps","out","PASSIVE","passive","IOS_CLASS","POPPER_CLASS","TOOLTIP_CLASS","CONTENT_CLASS","ARROW_CLASS","SVG_ARROW_CLASS","POPPER_SELECTOR","TOOLTIP_SELECTOR","CONTENT_SELECTOR","ARROW_SELECTOR","SVG_ARROW_SELECTOR","currentInput","isTouch","lastMouseMoveTime","onDocumentTouchStart","performance","onDocumentMouseMove","now","onWindowBlur","activeElement","blur","isVisible","bindGlobalEventListeners","capture","isBrowser","ua","navigator","userAgent","isIE","test","isIOS","platform","updateIOSClass","isAdd","shouldAdd","getBasePlacement","addInertia","tooltip","removeInertia","removeAttribute","addInteractive","removeInteractive","contentEl","getChildren","popper","createArrowElement","arrowElement","createPopperElement","id","updateTheme","updatePopperElement","prevProps","nextProps","_getChildren","updateTransitionEndListener","action","listener","isCursorOutsideInteractiveBorder","popperTreeData","clientX","clientY","every","_ref","popperRect","tooltipRect","mergedRect","min","max","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","idCounter","mouseMoveListeners","mountedInstances","createTippy","showTimeout","hideTimeout","scheduleHideAnimationFrame","lastTriggerEvent","currentMountCallback","currentTransitionEndListener","isBeingDestroyed","isVisibleFromClick","didHideDueToDocumentMouseDown","popperUpdates","listeners","debouncedOnMouseMove","onMouseMove","popperChildren","popperInstance","transitionableElements","currentPlacement","isEnabled","isDestroyed","isMounted","isShown","clearDelayTimeouts","setProps","setContent","show","hide","enable","disable","destroy","pluginsHooks","map","hadAriaExpandedAttributeOnCreate","hasAttribute","addListenersToTriggerTarget","handleAriaExpandedAttribute","createPopperInstance","invokeHook","scheduleShow","getNormalizedTouchSettings","getIsCustomTouchBehavior","getCurrentTarget","getDelay","isShow","shouldInvokePropsHook","_instance$props","pluginHooks","handleAriaDescribedByAttribute","attr","nodes","node","replace","cleanupInteractiveMouseListeners","scheduleHide","onDocumentMouseDown","removeDocumentMouseDownListener","addDocumentMouseDownListener","onTransitionedOut","onTransitionEnd","onTransitionedIn","eventType","handler","onMouseLeave","onBlurOrFocusOut","removeListenersFromTriggerTarget","shouldScheduleClickHide","isEventListenerStopped","_getNormalizedTouchSe","isCursorOverReferenceOrPopper","relatedTarget","supportsTouch","isTouchEvent","isCustomTouch","flipModifier","preventOverflowModifier","applyMutations","prevPlacement","flipped","attributes","isVerticalPlacement","isSecondaryPlacement","update","config","eventsEnabled","tippyDistance","enabled","order","computedPreventOverflowPadding","computedFlipPadding","instanceModifiers","preventOverflow","boundariesElement","behavior","runMountCallback","onUpdate","mount","enableEventListeners","requestAnimationFrame","cancelAnimationFrame","prop","currentReference","isAlreadyVisible","isDisabled","isTouchAndTouchDisabled","isAlreadyHidden","disableEventListeners","tippy","targets","optionalProps","elements","instances","model","$$v","isSidebarActiveLocal","expression","settings","courseCategories","Category","$set","Language","Sector","courseAreaOfStudyList","Area","slot","searchYearSummery","resetModel","isSidebarActive","required","default","maxScrollbarLength","wheelSpeed","$store","courseCategoryList","courseAreaOfStudies","languageList","set","methods","components","VuePerfectScrollbar","vSelect","component","YearSummarySearchSidebar","getYearSummary","Year","created","registerModule","moduleCourseCategory","moduleIndustrySector","moduleCourseAreaOfStudy","moduleLanguage","dispatch","t","o","r","n","l","c","containerWidth","containerHeight","contentWidth","contentHeight","isRtl","isNegativeScroll","scrollLeft","negativeScrollAdjustment","scrollWidth","clientWidth","u","scrollbarXRail","create","scrollbarX","bind","scrollbarXActive","scrollbarXWidth","scrollbarXLeft","scrollbarXBottom","toInt","isScrollbarXUsingBottom","scrollbarXTop","railBorderXWidth","railXMarginWidth","railXWidth","railXRatio","scrollbarYRail","scrollbarY","scrollbarYActive","scrollbarYHeight","scrollbarYTop","scrollbarYRight","isScrollbarYUsingRight","scrollbarYLeft","scrollbarYOuterWidth","outerWidth","railBorderYWidth","railYMarginHeight","railYHeight","railYRatio","minScrollbarLength","width","scrollTop","height","clientHeight","scrollHeight","queryChildren","suppressScrollX","scrollXMarginOffset","suppressScrollY","scrollYMarginOffset","isEditable","removePsClasses","startScrolling","stopScrolling","env","isWebKit","DocumentTouch","supportsIePointer","msMaxTouchPoints","lastTop","lastLeft","childNodes","swicher","tagname","scrollHanle","__init","_ps_inited","initialize","__uninit","$route","updated","$nextTick","activated","deactivated","beforeDestroy","join","unbind","unbindAll","eventElements","eventElement","once","floor","random","substring","handlers","swipePropagation","swipeEasing","useBothWheelAxes","wheelPropagation","pageY","pageYOffset","pageX","pageXOffset","isDefaultPrevented","defaultPrevented","tagName","contentDocument","f","metaKey","altKey","shiftKey","ctrlKey","deltaX","deltaY","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","overflow","overflowX","overflowY","match","onwheel","onmousewheel","getSelection","getRangeAt","commonAncestorContainer","y","abs","w","targetTouches","pointerType","buttons","MSPOINTER_TYPE_MOUSE","_","g","PointerEvent","MSPointerEvent","keyboard","wheel","selection","esModule","$props","tag","_t","refs","parts","media","sourceMap","nextSibling","singleton","sources","btoa","unescape","encodeURIComponent","stringify","toLowerCase","DEBUG","locals","SET_CourseAreaOfStudies","UPDATE_CourseAreaOfStudy","courseAreaOfStudy","courseAreaOfStudyIndex","SET_CourseCategories","UPDATE_CourseCategory","courseCategory","courseCategoryIndex","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","called","taskDebounce","scheduled","supportsMicroTasks","isFunction","functionToCheck","getType","getStyleComputedProperty","defaultView","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","getReferenceNode","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","getOffsetParent","noOffsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","findCommonOffsetParent","element1","element2","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","modifier","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","defineProperties","getClientRect","offsets","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","getBoundaries","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","sort","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","check","cur","runModifiers","ends","modifiersToRun","console","warn","arrowStyles","positionFixed","originalPlacement","isCreated","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","willChange","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","scheduleUpdate","removeEventListeners","isNumeric","isFinite","setStyles","unit","setAttributes","applyStyle","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","len","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","size","parseOffset","useHeight","fragments","frag","divider","splitRegex","ops","op","mergeWithPrevious","index2","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","shift","shiftvariation","shiftOffsets","bound","inner","subtractLength","onLoad","Defaults","Popper","jquery","Utils","PopperUtils"],"mappings":"mHAAA,YAE2C,qBAAfA,WAA6BA,WAA+B,qBAAXC,OAAyBA,OAA2B,qBAAXC,GAAkD,qBAATC,MAAuBA,KAEtL,SAASC,EAAeC,GACvB,OAAOA,GAAKA,EAAEC,YAAcC,OAAOC,UAAUC,eAAeC,KAAKL,EAAG,WAAaA,EAAE,WAAaA,EAGjG,SAASM,EAAqBC,EAAIC,GACjC,OAAOA,EAAS,CAAEC,QAAS,IAAMF,EAAGC,EAAQA,EAAOC,SAAUD,EAAOC,QAGrE,IAAIC,EAAiBJ,GAAqB,SAAUE,EAAQC,IAC5D,SAAWZ,EAAQc,GAEfA,EAAQF,IAFZ,CAIyB,qBAAfd,WAA6BA,WAA6B,qBAATG,MAAuBA,MAAuB,SAAUc,GAOjH,SAASC,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXE,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiBF,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOZ,UAAY,gBAAkBW,GAAiBD,EAAQC,GAEnX,SAASI,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAEhH,SAASC,EAAkBC,EAAQC,GAAS,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,IAAIE,EAAaH,EAAMC,GAAIE,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAM5B,OAAO6B,eAAeR,EAAQI,EAAWK,IAAKL,IAE7S,SAASM,EAAab,EAAac,EAAYC,GAAmJ,OAAhID,GAAYZ,EAAkBF,EAAYjB,UAAW+B,GAAiBC,GAAab,EAAkBF,EAAae,GAAqBf,EAEzM,SAASgB,EAAgBtB,EAAKkB,EAAKK,GAAiK,OAApJL,KAAOlB,EAAOZ,OAAO6B,eAAejB,EAAKkB,EAAK,CAAEK,MAAOA,EAAOT,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBhB,EAAIkB,GAAOK,EAAgBvB,EAgC3M,GA7CAZ,OAAO6B,eAAenB,EAAU,aAAc,CAC5CyB,OAAO,IAETzB,EAAS,gBAAa,EA+BE,qBAAb0B,UAA6BA,SAASnC,UAAUoC,UACzDD,SAASnC,UAAUoC,QAAU,SAAUC,EAAUC,GAC/CA,EAAUA,GAAW7C,OAErB,IAAK,IAAI6B,EAAI,EAAGA,EAAIiB,KAAKhB,OAAQD,IAC/Be,EAASnC,KAAKoC,EAASC,KAAKjB,GAAIA,EAAGiB,QAMlB,qBAAZC,UAA4BA,QAAQxC,UAAUyC,QAAS,CAChE,IAAIzC,EAAYwC,QAAQxC,UACxBwC,QAAQxC,UAAUyC,QAAUzC,EAAU0C,mBAAqB1C,EAAU2C,sBAGhD,qBAAZH,SAA4BA,QAAQxC,UAAU4C,UACvDJ,QAAQxC,UAAU4C,QAAU,SAAUC,GACpC,IAAIC,EAAKP,KACT,IAAKQ,SAASC,gBAAgBC,SAASH,GAAK,OAAO,KAEnD,EAAG,CACD,GAAIA,EAAGL,QAAQI,GAAI,OAAOC,EAC1BA,EAAKA,EAAGI,eAAiBJ,EAAGK,iBACd,OAAPL,GAA8B,GAAfA,EAAGM,UAE3B,OAAO,OAQX,IAAIC,EAAwB,WA4F1B,SAASA,EAASC,GAChB,IAAIC,EAAUC,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,KAkClF,GAhCAzC,EAAgBwB,KAAMc,GAEtBpB,EAAgBM,KAAM,eAAW,GAEjCN,EAAgBM,KAAM,eAAW,GAEjCN,EAAgBM,KAAM,mBAAe,GAErCN,EAAgBM,KAAM,kBAAc,GAEpCN,EAAgBM,KAAM,mBAAe,GAErCN,EAAgBM,KAAM,iBAAa,GAEnCN,EAAgBM,KAAM,2BAAuB,GAE7CN,EAAgBM,KAAM,eAAW,GAEjCN,EAAgBM,KAAM,gBAAY,GAElCN,EAAgBM,KAAM,sBAAkB,GAExCN,EAAgBM,KAAM,kBAAc,GAEpCN,EAAgBM,KAAM,mBAAe,GAErCN,EAAgBM,KAAM,iBAAa,GAEnCN,EAAgBM,KAAM,mBAAe,GAErCN,EAAgBM,KAAM,mBAAe,GAEjCe,aAAmBI,YACrBnB,KAAKe,QAAUA,MACV,IAAuB,kBAAZA,EAGhB,MAAM,IAAIK,MAAM,4DAFhBpB,KAAKe,QAAUP,SAASa,cAAcN,GAKxCf,KAAKe,QAAQO,UAAUC,IAAI,YAE3BvB,KAAKwB,kBAAkBR,GAEvBhB,KAAKyB,mBAAmBT,GAExBhB,KAAK0B,QAAQ1B,KAAKgB,QAAQW,WAguD5B,OA7tDApC,EAAauB,EAAU,CAAC,CACtBxB,IAAK,qBACLK,MAAO,SAA4BiC,GACtB,MAAPA,IACFA,EAAM,IAGR5B,KAAKgB,QAAU,CACbW,UAAYE,MAAMC,SAASF,EAAID,aAAwC,IAAII,MAAOC,cAArCF,SAASF,EAAID,WAC1DM,QAASL,EAAIK,mBAAmBF,KAAOH,EAAIK,QAAU,KACrDC,QAASN,EAAIM,mBAAmBH,KAAOH,EAAIM,QAAU,KACrDC,SAA0B,MAAhBP,EAAIO,UAAsD,MAAlCrB,EAASsB,QAAQR,EAAIO,UAAoBP,EAAIO,SAAW,KAC1FE,aAAkC,MAApBT,EAAIS,cAAuBT,EAAIS,aAC7CC,kBAA4C,MAAzBV,EAAIU,mBAA4BV,EAAIU,kBACvDC,0BAA4D,MAAjCX,EAAIW,2BAAoCX,EAAIW,0BACvEC,cAAoC,MAArBZ,EAAIY,eAAwBZ,EAAIY,cAC/CC,cAAoC,MAArBb,EAAIa,eAAwBb,EAAIa,cAC/CC,qBAAkD,MAA5Bd,EAAIc,sBAA+Bd,EAAIc,qBAC7DC,aAAcf,EAAIe,wBAAwBC,MAAQhB,EAAIe,aAAe,GACrEE,iBAAkBjB,EAAIiB,4BAA4BD,MAAQhB,EAAIiB,iBAAmB,GACjFC,eAAgBlB,EAAIkB,0BAA0BF,MAAQhB,EAAIkB,eAAiB,GAC3EC,iBAA0C,MAAxBnB,EAAImB,kBAA2BnB,EAAImB,iBACrDC,WAAYpB,EAAIoB,sBAAsBJ,OAAmC,oBAAnBhB,EAAIoB,WAA4BpB,EAAIoB,WAAa,GACvGC,MAAoB,cAAbrB,EAAIqB,OAAsC,UAAbrB,EAAIqB,OAAkC,UAAbrB,EAAIqB,MAAoBrB,EAAIqB,MAAQ,SACjGC,kBAA4C,MAAzBtB,EAAIsB,mBAA4BtB,EAAIsB,kBACvDC,iBAAkBvB,EAAIuB,4BAA4BP,MAAQhB,EAAIuB,iBAAmB,GACjFC,kBAAoD,oBAA1BxB,EAAIwB,kBAAmCxB,EAAIwB,kBAAoB,KACzFC,yBAAkE,oBAAjCzB,EAAIyB,yBAA0CzB,EAAIyB,yBAA2B,KAC9GC,UAAYzB,MAAMC,SAASF,EAAI0B,YAAwC,KAA1BxB,SAASF,EAAI0B,WAC1DC,gBAAgD,kBAAxB3B,EAAI2B,iBAAgC3B,EAAI2B,2BAA2BpC,YAAcS,EAAI2B,gBAAkB,MAG7HvD,KAAKgB,QAAQgC,sBAAsBJ,QACrC5C,KAAKwD,YAAcxD,KAAKgB,QAAQgC,WAEhChD,KAAKyD,iCAGR,CACDnE,IAAK,oBACLK,MAAO,SAA2BiC,GACrB,MAAPA,IACFA,EAAM,IAGJA,EAAI8B,aACN1D,KAAKe,QAAQ4C,iBAAiB,cAAe/B,EAAI8B,aAG/C9B,EAAIgC,WACN5D,KAAKe,QAAQ4C,iBAAiB,YAAa/B,EAAIgC,WAG7ChC,EAAIiC,UACN7D,KAAKe,QAAQ4C,iBAAiB,WAAY/B,EAAIiC,UAG5CjC,EAAIkC,gBACN9D,KAAKe,QAAQ4C,iBAAiB,iBAAkB/B,EAAIkC,gBAGlDlC,EAAImC,aACN/D,KAAKe,QAAQ4C,iBAAiB,cAAe/B,EAAImC,aAG/CnC,EAAIoC,YACNhE,KAAKe,QAAQ4C,iBAAiB,aAAc/B,EAAIoC,YAG9CpC,EAAIqC,aACNjE,KAAKe,QAAQ4C,iBAAiB,cAAe/B,EAAIqC,eAGpD,CACD3E,IAAK,mBACLK,MAAO,SAA0BG,GAC/B,GAAuC,oBAA5BE,KAAKgB,QAAQgC,WAA2B,CACjD,IAAIkB,EAAgBlE,KAAKgB,QAAQgC,WAEjC,GAA4B,GAAxBkB,EAAclF,OAEhBkF,EAAclE,KAAKgB,QAAQW,UAAW7B,OACjC,CAEL,IAAIqE,EAASD,EAAclE,KAAKgB,QAAQW,WAEpCwC,aAAkBvB,MACpB9C,EAASqE,GAETA,EAAOC,KAAKtE,SAIhBA,EAASE,KAAKgB,QAAQgC,cAGzB,CACD1D,IAAK,8BACLK,MAAO,WACL,IAAK,IAAIZ,EAAI,EAAGA,EAAIiB,KAAKwD,YAAYxE,OAAQD,IACV,MAA7BiB,KAAKwD,YAAYzE,GAAGsF,QACtBrE,KAAKwD,YAAYzE,GAAGsF,MAAQvD,EAASwD,OAAOvF,EAAI+B,EAASwD,OAAOtF,WAQrE,CACDM,IAAK,SACLK,MAAO,WACL,IAAI4E,EAAYtD,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GAG/E,MAAOjB,KAAKe,QAAQyD,WAClBxE,KAAKe,QAAQ0D,YAAYzE,KAAKe,QAAQyD,YAOxC,GAJIxE,KAAKgB,QAAQwB,eACfxC,KAAK0E,gBAGHH,EACFvE,KAAK2E,qBACA,CACL3E,KAAK4E,cAEL5E,KAAK6E,oBAEL7E,KAAK8E,eAGL,IAAIC,EAAS/E,KAAKe,QAAQM,cAAc,qBACxC0D,EAAO9B,MAAM+B,QAAU,IACvBD,EAAO9B,MAAMgC,QAAU,QACvBF,EAAO9B,MAAMiC,WAAa,eAC1BC,YAAW,WACTJ,EAAO9B,MAAM+B,QAAU,IACvBG,YAAW,WACT,OAAOJ,EAAO9B,MAAMiC,WAAa,KAChC,OACF,GAEHlF,KAAKoF,cAAc,YAAa,CAC9BC,YAAarF,KAAKgB,QAAQW,eAI/B,CACDrC,IAAK,gBACLK,MAAO,WACL,IAAI2F,EAAS9E,SAAS+E,cAAc,OACpCD,EAAOhE,UAAUC,IAAI,mBACrB,IAAIiE,EAAchF,SAAS+E,cAAc,SACrCE,EAAUjF,SAAS+E,cAAc,MACrCE,EAAQnE,UAAUC,IAAI,QAEM,MAAxBvB,KAAKgB,QAAQiB,SAAmBjC,KAAKgB,QAAQiB,QAAU,IAAIF,KAAK/B,KAAKgB,QAAQW,UAAY,EAAG,GAAI,KAClG8D,EAAQnE,UAAUC,IAAI,YAGxB,IAAImE,EAAWlF,SAAS+E,cAAc,QACtCG,EAASC,UAAY,WACrBF,EAAQG,YAAYF,GACpBF,EAAYI,YAAYH,GACxB,IAAII,EAAerF,SAAS+E,cAAc,MAC1CM,EAAavE,UAAUC,IAAI,cAC3BsE,EAAavE,UAAUC,IAAI,kBAC3BsE,EAAaC,aAAe9F,KAAKgB,QAAQW,UAAY,GAAGoE,WAE5B,MAAxB/F,KAAKgB,QAAQiB,SAAmBjC,KAAKgB,QAAQiB,QAAU,IAAIF,KAAK/B,KAAKgB,QAAQW,UAAY,EAAG,GAAI,KAClGkE,EAAavE,UAAUC,IAAI,YAG7BiE,EAAYI,YAAYC,GACxB,IAAIG,EAAcxF,SAAS+E,cAAc,MACzCS,EAAY1E,UAAUC,IAAI,cAC1ByE,EAAY1E,UAAUC,IAAI,iBAC1ByE,EAAYF,aAAe9F,KAAKgB,QAAQW,UAAY,GAAGoE,WAE3B,MAAxB/F,KAAKgB,QAAQiB,SAAmBjC,KAAKgB,QAAQiB,QAAU,IAAIF,KAAK/B,KAAKgB,QAAQW,UAAY,EAAG,GAAI,KAClGqE,EAAY1E,UAAUC,IAAI,YAG5BiE,EAAYI,YAAYI,GACxB,IAAIC,EAAUzF,SAAS+E,cAAc,MACrCU,EAAQ3E,UAAUC,IAAI,cACtB0E,EAAQH,YAAc9F,KAAKgB,QAAQW,UAAUoE,WAC7CP,EAAYI,YAAYK,GACxB,IAAIC,EAAc1F,SAAS+E,cAAc,MACzCW,EAAY5E,UAAUC,IAAI,cAC1B2E,EAAY5E,UAAUC,IAAI,iBAC1B2E,EAAYJ,aAAe9F,KAAKgB,QAAQW,UAAY,GAAGoE,WAE3B,MAAxB/F,KAAKgB,QAAQkB,SAAmBlC,KAAKgB,QAAQkB,QAAU,IAAIH,KAAK/B,KAAKgB,QAAQW,UAAY,EAAG,EAAG,IACjGuE,EAAY5E,UAAUC,IAAI,YAG5BiE,EAAYI,YAAYM,GACxB,IAAIC,EAAe3F,SAAS+E,cAAc,MAC1CY,EAAa7E,UAAUC,IAAI,cAC3B4E,EAAa7E,UAAUC,IAAI,kBAC3B4E,EAAaL,aAAe9F,KAAKgB,QAAQW,UAAY,GAAGoE,WAE5B,MAAxB/F,KAAKgB,QAAQkB,SAAmBlC,KAAKgB,QAAQkB,QAAU,IAAIH,KAAK/B,KAAKgB,QAAQW,UAAY,EAAG,EAAG,IACjGwE,EAAa7E,UAAUC,IAAI,YAG7BiE,EAAYI,YAAYO,GACxB,IAAIC,EAAU5F,SAAS+E,cAAc,MACrCa,EAAQ9E,UAAUC,IAAI,QAEM,MAAxBvB,KAAKgB,QAAQkB,SAAmBlC,KAAKgB,QAAQkB,QAAU,IAAIH,KAAK/B,KAAKgB,QAAQW,UAAY,EAAG,EAAG,IACjGyE,EAAQ9E,UAAUC,IAAI,YAGxB,IAAI8E,EAAW7F,SAAS+E,cAAc,QACtCc,EAASV,UAAY,WACrBS,EAAQR,YAAYS,GACpBb,EAAYI,YAAYQ,GACxBd,EAAOM,YAAYJ,GACnBxF,KAAKe,QAAQ6E,YAAYN,KAE1B,CACDhG,IAAK,cACLK,MAAO,WACL,IAAI2G,EAAY9F,SAAS+E,cAAc,OACvCe,EAAUhF,UAAUC,IAAI,oBAExB,IAAK,IAAIgF,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAE3B,IAAIC,EAAWhG,SAAS+E,cAAc,OACtCiB,EAASlF,UAAUC,IAAI,mBACvBiF,EAASC,QAAQC,QAAUH,EAAER,WAEzB/F,KAAK2G,SACPH,EAASlF,UAAUC,IAAI,SAASqF,OAAO5G,KAAK2G,UAG9C,IAAIE,EAAY,IAAI9E,KAAK/B,KAAKgB,QAAQW,UAAW4E,EAAG,GAChDO,EAAQtG,SAAS+E,cAAc,SACnCuB,EAAMxF,UAAUC,IAAI,SAGpB,IAAIwF,EAAQvG,SAAS+E,cAAc,SAC/ByB,EAAWxG,SAAS+E,cAAc,MAClC0B,EAAYzG,SAAS+E,cAAc,MACvC0B,EAAU3F,UAAUC,IAAI,eACxB0F,EAAUC,aAAa,UAAWlH,KAAKgB,QAAQsB,kBAAoB,IAAM,KACzE2E,EAAUnB,YAAchF,EAASsB,QAAQpC,KAAKgB,QAAQmB,UAAU4C,OAAOwB,GACvES,EAASpB,YAAYqB,GACrBF,EAAMnB,YAAYoB,GAClB,IAAIG,EAAY3G,SAAS+E,cAAc,MAEvC,GAAIvF,KAAKgB,QAAQsB,kBAAmB,CAClC,IAAI8E,EAAiB5G,SAAS+E,cAAc,MAC5C6B,EAAe9F,UAAUC,IAAI,eAC7B6F,EAAetB,YAAchF,EAASsB,QAAQpC,KAAKgB,QAAQmB,UAAUkF,UACrEF,EAAUvB,YAAYwB,GAGxB,IAAI9D,EAAYtD,KAAKgB,QAAQsC,UAAYtD,KAAKgB,QAAQsC,UAAYxC,EAASsB,QAAQpC,KAAKgB,QAAQmB,UAAUmB,UACtGgE,EAAIhE,EAER,EAAG,CACD,IAAIiE,EAAa/G,SAAS+E,cAAc,MACxCgC,EAAWjG,UAAUC,IAAI,cACzBgG,EAAWzB,YAAchF,EAASsB,QAAQpC,KAAKgB,QAAQmB,UAAUqF,QAAQF,GAErEtH,KAAKyH,UAAUH,IACjBC,EAAWjG,UAAUC,IAAI,UAG3B4F,EAAUvB,YAAY2B,GACtBD,IACIA,GAAK,IAAGA,EAAI,SACTA,GAAKhE,GAEdyD,EAAMnB,YAAYuB,GAClBL,EAAMlB,YAAYmB,GAGlB,IAAIW,EAAc,IAAI3F,KAAK8E,EAAUc,WACjCC,EAAW,IAAI7F,KAAK/B,KAAKgB,QAAQW,UAAW4E,EAAI,EAAG,GAEvD,MAAOmB,EAAYG,UAAYvE,EAC7BoE,EAAYI,QAAQJ,EAAYK,UAAY,GAG9C,MAAOL,GAAeE,EAAU,CAC9B,IAAII,EAAMxH,SAAS+E,cAAc,MAEjC,GAAIvF,KAAKgB,QAAQsB,kBAAmB,CAC9B8E,EAAiB5G,SAAS+E,cAAc,MAA5C,IACI0C,EAAkB,IAAIlG,KAAK2F,EAAYC,WAE3CM,EAAgBH,QAAQG,EAAgBF,UAAYzE,EAAY,GAChE8D,EAAe9F,UAAUC,IAAI,eAC7B6F,EAAetB,YAAc9F,KAAKkI,cAAcD,GAAiBlC,WACjEiC,EAAIpC,YAAYwB,GAGlB,EAAG,CACD,IAAIe,EAAO3H,SAAS+E,cAAc,MAOlC,GANA4C,EAAK7G,UAAUC,IAAI,OAEfvB,KAAKyH,UAAUC,EAAYG,WAC7BM,EAAK7G,UAAUC,IAAI,UAGjBmG,EAAcb,EAChBsB,EAAK7G,UAAUC,IAAI,YACd,GAAImG,EAAcE,EACvBO,EAAK7G,UAAUC,IAAI,WACd,CACDvB,KAAKoI,YAAYV,IACnBS,EAAK7G,UAAUC,IAAI,YAGrB,IAAI8G,EAAc7H,SAAS+E,cAAc,OACzC8C,EAAY/G,UAAUC,IAAI,eAC1B8G,EAAYvC,YAAc4B,EAAYK,UAAUhC,WAChDoC,EAAKvC,YAAYyC,GAEbrI,KAAKgB,QAAQoC,mBACfpD,KAAKgB,QAAQoC,kBAAkBiF,EAAaX,GAIhDM,EAAIpC,YAAYuC,GAChBT,EAAYI,QAAQJ,EAAYK,UAAY,SACrCL,EAAYG,UAAYvE,GAEjCwD,EAAMlB,YAAYoC,GAGpBxB,EAASZ,YAAYkB,GACrBR,EAAUV,YAAYY,GAGxBxG,KAAKe,QAAQ6E,YAAYU,KAE1B,CACDhH,IAAK,iBACLK,MAAO,WACL,IAAI2I,EAAY9H,SAAS+E,cAAc,OACvC+C,EAAUhH,UAAUC,IAAI,8BACxB+G,EAAUrF,MAAMsF,UAA2B,IAAfvI,KAAK2G,QAAgB,KACjD,IAAI6B,EAAUhI,SAAS+E,cAAc,OAGrC,GAFAiD,EAAQlH,UAAUC,IAAI,oBAElBvB,KAAKgB,QAAQuC,gBAC6B,kBAAjCvD,KAAKgB,QAAQuC,gBACtBiF,EAAQ7C,UAAY3F,KAAKgB,QAAQuC,gBACxBvD,KAAKgB,QAAQuC,2BAA2BpC,aACjDqH,EAAQ5C,YAAY5F,KAAKgB,QAAQuC,qBAE9B,CACL,IAAIkF,EAAUjI,SAAS+E,cAAc,OACrCkD,EAAQnH,UAAUC,IAAI,oBAEtB,IAAK,IAAIxC,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3B,IAAI2J,EAASlI,SAAS+E,cAAc,OACpCmD,EAAOpH,UAAUC,IAAI,SAASqF,OAAO7H,IACrC0J,EAAQ7C,YAAY8C,GAGtBF,EAAQ5C,YAAY6C,GAGtBH,EAAU1C,YAAY4C,GACtBxI,KAAKe,QAAQ6E,YAAY0C,KAE1B,CACDhJ,IAAK,oBACLK,MAAO,WACL,IAAIgJ,EAAQ3I,KAEY,MAApBA,KAAKwD,aAAuBxD,KAAKwD,YAAYxE,OAAS,GACxDgB,KAAKe,QAAQ6H,iBAAiB,oBAAoB/I,SAAQ,SAAUgJ,GAClE,IAAInC,EAAU5E,SAAS+G,EAAMpC,QAAQC,SACjCG,EAAY,IAAI9E,KAAK4G,EAAM3H,QAAQW,UAAW+E,EAAS,GACvDkB,EAAW,IAAI7F,KAAK4G,EAAM3H,QAAQW,UAAW+E,EAAU,EAAG,GAE9D,IAA8B,MAAzBiC,EAAM3H,QAAQiB,SAAmB2F,EAAWe,EAAM3H,QAAQiB,WAAsC,MAAzB0G,EAAM3H,QAAQkB,SAAmB2E,GAAa8B,EAAM3H,QAAQkB,SAAU,CAGhJ,IAFA,IAAI4G,EAAY,GAEP/J,EAAI,EAAGA,EAAI4J,EAAMnF,YAAYxE,OAAQD,IACtC4J,EAAMnF,YAAYzE,GAAGgK,WAAanB,KAAae,EAAMnF,YAAYzE,GAAGiK,QAAUnC,IAClFiC,EAAUG,KAAKN,EAAMnF,YAAYzE,IAIjC+J,EAAU9J,OAAS,GACrB6J,EAAMD,iBAAiB,gBAAgB/I,SAAQ,SAAUqJ,GACvD,IAAIxB,EAAc,IAAI3F,KAAK4G,EAAM3H,QAAQW,UAAW+E,EAAS5E,SAASoH,EAAIpD,cACtEqD,EAAW,IAAIpH,KAAK4G,EAAM3H,QAAQW,UAAW+E,EAASgB,EAAYK,UAAY,GAC9EqB,EAAU,GAEd,IAA8B,MAAzBT,EAAM3H,QAAQiB,SAAmByF,GAAeiB,EAAM3H,QAAQiB,WAAsC,MAAzB0G,EAAM3H,QAAQkB,SAAmBwF,GAAeiB,EAAM3H,QAAQkB,SAAU,CACtJ,IAAK,IAAInD,EAAI,EAAGA,EAAI+J,EAAU9J,OAAQD,IAChC+J,EAAU/J,GAAGgK,UAAYI,GAAYL,EAAU/J,GAAGiK,SAAWtB,GAC/D0B,EAAQH,KAAKH,EAAU/J,IAIvBqK,EAAQpK,OAAS,IAAM2J,EAAM3H,QAAQuB,4BAA8BoG,EAAMP,YAAYV,KACvFiB,EAAMU,qBAAqBH,EAAKxB,EAAa0B,aAS5D,CACD9J,IAAK,uBACLK,MAAO,SAA8B2J,EAAK5B,EAAa6B,GACrD,IAAIC,EAASF,EAAI3I,cAEjB,OAAQX,KAAKgB,QAAQiC,OACnB,IAAK,SACH,IAAIwG,EAAS,EAUb,GARqB,GAAjBF,EAAOvK,OACTyK,EAAS,EACAF,EAAOvK,QAAU,EAC1ByK,EAAS,EAETD,EAAOvG,MAAMyG,UAAY,yBAGvBD,EAAS,EAAG,CAGd,IAFA,IAAIC,EAAY,GAEP3K,EAAI,EAAGA,EAAIwK,EAAOvK,OAAQD,IAChB,IAAb2K,IACFA,GAAa,KAGfA,GAAa,YAAY9C,QAAQ7H,EAAI,GAAK0K,EAAQ,WAAW7C,OAAO2C,EAAOxK,GAAGsF,OAGhFmF,EAAOvG,MAAMyG,UAAYA,EAG3B,MAEF,IAAK,aACHF,EAAOvG,MAAM0G,gBAAkBJ,EAAOA,EAAOvK,OAAS,GAAGqF,MACzD,IAAIuF,EAAclC,EAAYC,UAE9B,GAAI4B,EAAOA,EAAOvK,OAAS,GAAG+J,UAAUpB,WAAaiC,EAGnD,GAFAJ,EAAOlI,UAAUC,IAAI,aAEjBgI,EAAOA,EAAOvK,OAAS,GAAG6K,cAAgB7J,KAAKgB,QAAQyB,cAAe,CACxE+G,EAAOlI,UAAUC,IAAI,YAErB,IAAIuI,EAAa,cAEjB,IAAS/K,EAAIwK,EAAOvK,OAAS,EAAGD,GAAK,EAAGA,IACtC,GAAIwK,EAAOxK,GAAGgK,UAAUpB,WAAaiC,IAAgBL,EAAOxK,GAAG8K,eAAiB7J,KAAKgB,QAAQyB,cAAe,CAC1GqH,EAAaP,EAAOxK,GAAGsF,MACvB,MAIJmF,EAAOvG,MAAM8G,WAAa,2BAA2BnD,OAAO2C,EAAOA,EAAOvK,OAAS,GAAGqF,MAAO,MAAMuC,OAAO2C,EAAOA,EAAOvK,OAAS,GAAGqF,MAAO,UAAUuC,OAAOkD,EAAY,UAAUlD,OAAOkD,EAAY,UAC5L9J,KAAKgB,QAAQ+B,kBACtByG,EAAOlI,UAAUC,IAAI,mBAElB,GAAIgI,EAAOA,EAAOvK,OAAS,GAAGgK,QAAQrB,WAAaiC,EAGxD,GAFAJ,EAAOlI,UAAUC,IAAI,WAEjBgI,EAAOA,EAAOvK,OAAS,GAAGgL,YAAchK,KAAKgB,QAAQyB,cAAe,CACtE+G,EAAOlI,UAAUC,IAAI,YAIrB,IAFIuI,EAAa,cAER/K,EAAIwK,EAAOvK,OAAS,EAAGD,GAAK,EAAGA,IACtC,GAAIwK,EAAOxK,GAAGiK,QAAQrB,WAAaiC,IAAgBL,EAAOxK,GAAGiL,aAAehK,KAAKgB,QAAQyB,cAAe,CACtGqH,EAAaP,EAAOxK,GAAGsF,MACvB,MAIJmF,EAAOvG,MAAM8G,WAAa,2BAA2BnD,OAAO2C,EAAOA,EAAOvK,OAAS,GAAGqF,MAAO,MAAMuC,OAAO2C,EAAOA,EAAOvK,OAAS,GAAGqF,MAAO,UAAUuC,OAAOkD,EAAY,UAAUlD,OAAOkD,EAAY,UAC5L9J,KAAKgB,QAAQ+B,kBACtByG,EAAOlI,UAAUC,IAAI,eAIzB,MAEF,IAAK,SACCvB,KAAKgB,QAAQqC,0BACfrD,KAAKgB,QAAQqC,yBAAyB1F,KAAKqC,KAAMsJ,EAAK5B,EAAa6B,GAGrE,SAGL,CACDjK,IAAK,eACLK,MAAO,WACL,IAAIsK,EAASjK,KAETA,KAAKgB,QAAQwB,gBAEfxC,KAAKe,QAAQ6H,iBAAiB,mCAAmC/I,SAAQ,SAAUkB,GACjFA,EAAQ4C,iBAAiB,SAAS,SAAUuG,GACrCA,EAAEC,cAAc7I,UAAUZ,SAAS,aACtCuJ,EAAOvI,QAAQI,SAASoI,EAAEC,cAAcrE,oBAI9C9F,KAAKe,QAAQM,cAAc,0BAA0BsC,iBAAiB,SAAS,SAAUuG,GACvF,IAAKA,EAAEC,cAAc7I,UAAUZ,SAAS,YAAa,CACnD,IAAIqE,EAASkF,EAAOlJ,QAAQM,cAAc,qBAE1C0D,EAAO9B,MAAMiC,WAAa,mBAC1BH,EAAO9B,MAAMmH,WAAa,OAC1BjF,YAAW,WACTJ,EAAO9B,MAAMoH,WAAa,SAC1BtF,EAAO9B,MAAMiC,WAAa,GAC1BH,EAAO9B,MAAMmH,WAAa,IAC1BjF,YAAW,WACT8E,EAAOvI,QAAQuI,EAAOjJ,QAAQW,UAAY,KACzC,MACF,SAGP3B,KAAKe,QAAQM,cAAc,0BAA0BsC,iBAAiB,SAAS,SAAUuG,GACvF,IAAKA,EAAEC,cAAc7I,UAAUZ,SAAS,YAAa,CACnD,IAAIqE,EAASkF,EAAOlJ,QAAQM,cAAc,qBAE1C0D,EAAO9B,MAAMiC,WAAa,mBAC1BH,EAAO9B,MAAMmH,WAAa,QAC1BjF,YAAW,WACTJ,EAAO9B,MAAMoH,WAAa,SAC1BtF,EAAO9B,MAAMiC,WAAa,GAC1BH,EAAO9B,MAAMmH,WAAa,IAC1BjF,YAAW,WACT8E,EAAOvI,QAAQuI,EAAOjJ,QAAQW,UAAY,KACzC,MACF,UAKT,IAAI2I,EAAQtK,KAAKe,QAAQ6H,iBAAiB,2CAC1C0B,EAAMzK,SAAQ,SAAUsI,GAEtBA,EAAKxE,iBAAiB,SAAS,SAAUuG,GACvCA,EAAEK,kBAEF,IAAIC,EAAOP,EAAOQ,SAASP,EAAEC,eAE7BF,EAAO7E,cAAc,WAAY,CAC/BrE,QAASmJ,EAAEC,cACXK,KAAMA,EACNjB,OAAQU,EAAOS,UAAUF,QAK7BrC,EAAKxE,iBAAiB,eAAe,SAAUuG,GACzCD,EAAOjJ,QAAQkC,oBACjBgH,EAAES,iBAEEV,EAAOjJ,QAAQmC,iBAAiBnE,OAAS,GAC3CiL,EAAOW,iBAAiBV,EAAEC,gBAI9B,IAAIK,EAAOP,EAAOQ,SAASP,EAAEC,eAE7BF,EAAO7E,cAAc,iBAAkB,CACrCrE,QAASmJ,EAAEC,cACXK,KAAMA,EACNjB,OAAQU,EAAOS,UAAUF,QAKzBP,EAAOjJ,QAAQ0B,uBACjByF,EAAKxE,iBAAiB,aAAa,SAAUuG,GAC3C,GAAe,GAAXA,EAAEW,MAAY,CAChB,IAAInD,EAAcuC,EAAOQ,SAASP,EAAEC,gBAEhCF,EAAOjJ,QAAQqB,cAAgB4H,EAAOa,gBAAgBpD,MACxDuC,EAAOc,YAAa,EACpBd,EAAOe,YAAcf,EAAOgB,UAAYvD,EAExCuC,EAAOiB,qBAIb/C,EAAKxE,iBAAiB,cAAc,SAAUuG,GAC5C,GAAID,EAAOc,WAAY,CACrB,IAAIrD,EAAcuC,EAAOQ,SAASP,EAAEC,eAEpC,IAAKF,EAAOjJ,QAAQqB,aAAc,CAChC,IAAI8I,EAAU,IAAIpJ,KAAKkI,EAAOe,YAAYrD,WAE1C,GAAIwD,EAAUzD,EAAa,CACzB,IAAIyB,EAAW,IAAIpH,KAAKoJ,EAAQnJ,cAAemJ,EAAQC,WAAYD,EAAQpD,UAAY,GAEvF,MAAOoD,EAAUzD,EAAa,CAC5B,IAAKuC,EAAOa,gBAAgB3B,GAAU,GACpC,MAGFgC,EAAQrD,QAAQqD,EAAQpD,UAAY,GACpCoB,EAASrB,QAAQqB,EAASpB,UAAY,QAEnC,CACDoB,EAAW,IAAIpH,KAAKoJ,EAAQnJ,cAAemJ,EAAQC,WAAYD,EAAQpD,UAAY,GAEvF,MAAOoD,EAAUzD,EAAa,CAC5B,IAAKuC,EAAOa,gBAAgB3B,GAAU,GACpC,MAGFgC,EAAQrD,QAAQqD,EAAQpD,UAAY,GACpCoB,EAASrB,QAAQqB,EAASpB,UAAY,IAI1CL,EAAcyD,EAGhB,IAAIE,EAAWpB,EAAOgB,UACtBhB,EAAOgB,UAAYvD,EAEf2D,EAAS1D,WAAasC,EAAOgB,UAAUtD,WACzCsC,EAAOiB,qBAQf/C,EAAKxE,iBAAiB,cAAc,SAAUuG,GAC5C,IAAKD,EAAOc,WAAY,CACtB,IAAIP,EAAOP,EAAOQ,SAASP,EAAEC,eAE7BF,EAAO7E,cAAc,aAAc,CACjCrE,QAASmJ,EAAEC,cACXK,KAAMA,EACNjB,OAAQU,EAAOS,UAAUF,SAI/BrC,EAAKxE,iBAAiB,cAAc,SAAUuG,GAC5C,IAAIM,EAAOP,EAAOQ,SAASP,EAAEC,eAE7BF,EAAO7E,cAAc,cAAe,CAClCrE,QAASmJ,EAAEC,cACXK,KAAMA,EACNjB,OAAQU,EAAOS,UAAUF,WAK3BxK,KAAKgB,QAAQ0B,sBAEfxF,OAAOyG,iBAAiB,WAAW,SAAUuG,GAC3C,GAAID,EAAOc,WAAY,CACrBd,EAAOc,YAAa,EAEpBd,EAAOiB,gBAEP,IAAIjJ,EAAUgI,EAAOe,YAAcf,EAAOgB,UAAYhB,EAAOe,YAAcf,EAAOgB,UAC9E/I,EAAU+H,EAAOgB,UAAYhB,EAAOe,YAAcf,EAAOgB,UAAYhB,EAAOe,YAEhFf,EAAO7E,cAAc,cAAe,CAClC2D,UAAW9G,EACX+G,QAAS9G,EACTqH,OAAQU,EAAOqB,iBAAiBrJ,EAAS,IAAIF,KAAKG,EAAQF,cAAeE,EAAQkJ,WAAYlJ,EAAQ6F,UAAY,UAQrH/H,KAAKuL,sBACPC,cAAcxL,KAAKuL,qBACnBvL,KAAKuL,oBAAsB,MAG7BvL,KAAKuL,oBAAsBE,aAAY,WACrC,GAA8C,MAA1CxB,EAAOlJ,QAAQM,cAAc,UAAjC,CAIA,IAAIqK,EAAezB,EAAOlJ,QAAQ4K,YAC9BC,EAAY3B,EAAOlJ,QAAQM,cAAc,UAAUsK,YAAc,GACrE1B,EAAOtD,QAAU,KAGfsD,EAAOtD,QADO,EAAZiF,EAAgBF,EACD,EACI,EAAZE,EAAgBF,EACR,EACI,EAAZE,EAAgBF,EACR,EACI,EAAZE,EAAgBF,EACR,EAEA,GAGnBzB,EAAOlJ,QAAQ6H,iBAAiB,oBAAoB/I,SAAQ,SAAUgJ,GAC/DA,EAAMvH,UAAUZ,SAAS,SAASkG,OAAOqD,EAAOtD,YACnD,CAAC,UAAW,UAAW,UAAW,UAAW,YAAY9G,SAAQ,SAAUgM,GACzEhD,EAAMvH,UAAUwK,OAAOD,MAEzBhD,EAAMvH,UAAUC,IAAI,SAASqF,OAAOqD,EAAOtD,iBAG9C,OAEJ,CACDrH,IAAK,gBACLK,MAAO,WACL,IAAIoM,EAAS/L,KAYb,GAVAA,KAAKe,QAAQ6H,iBAAiB,gBAAgB/I,SAAQ,SAAUqJ,GAC9D,OAAOA,EAAI5H,UAAUwK,OAAO,YAE9B9L,KAAKe,QAAQ6H,iBAAiB,sBAAsB/I,SAAQ,SAAUqJ,GACpE,OAAOA,EAAI5H,UAAUwK,OAAO,kBAE9B9L,KAAKe,QAAQ6H,iBAAiB,oBAAoB/I,SAAQ,SAAUqJ,GAClE,OAAOA,EAAI5H,UAAUwK,OAAO,gBAG1B9L,KAAK+K,WAAY,CACnB,IAAI9I,EAAUjC,KAAKgL,YAAchL,KAAKiL,UAAYjL,KAAKgL,YAAchL,KAAKiL,UACtE/I,EAAUlC,KAAKiL,UAAYjL,KAAKgL,YAAchL,KAAKiL,UAAYjL,KAAKgL,YACxEhL,KAAKe,QAAQ6H,iBAAiB,oBAAoB/I,SAAQ,SAAUgJ,GAClE,IAAInC,EAAU5E,SAAS+G,EAAMpC,QAAQC,SAEjCzE,EAAQmJ,YAAc1E,GAAWxE,EAAQkJ,YAAc1E,GACzDmC,EAAMD,iBAAiB,8BAA8B/I,SAAQ,SAAUqJ,GACrE,IAAIsB,EAAOuB,EAAOtB,SAASvB,GAEvBsB,GAAQvI,GAAWuI,GAAQtI,IAC7BgH,EAAI5H,UAAUC,IAAI,SAEdiJ,EAAK7C,WAAa1F,EAAQ0F,WAC5BuB,EAAI5H,UAAUC,IAAI,eAGhBiJ,EAAK7C,WAAazF,EAAQyF,WAC5BuB,EAAI5H,UAAUC,IAAI,uBAQ/B,CACDjC,IAAK,sBACLK,MAAO,SAA6BoB,GAClC,IAAIiL,EAAM,EACNC,EAAO,EAEX,GACED,GAAOjL,EAAQmL,WAAa,EAC5BD,GAAQlL,EAAQoL,YAAc,EAC9BpL,EAAUA,EAAQqL,mBACXrL,GAET,MAAO,CACLiL,IAAKA,EACLC,KAAMA,KAGT,CACD3M,IAAK,mBACLK,MAAO,SAA0B2J,GAC/B,IAAI+C,EAASrM,KAETsM,EAAc9L,SAASa,cAAc,0BAEzC,GAAoB,OAAhBiL,EAAsB,CACxBA,EAAYrJ,MAAMgC,QAAU,OAE5B,MAAOqH,EAAY9H,WACjB8H,EAAY7H,YAAY6H,EAAY9H,iBAGtC8H,EAAc9L,SAAS+E,cAAc,OACrC+G,EAAYhL,UAAUC,IAAI,yBAC1Bf,SAAS+L,KAAK3G,YAAY0G,GAO5B,IAJA,IAAI9B,EAAOxK,KAAKyK,SAASnB,GAErBC,EAASvJ,KAAK0K,UAAUF,GAEnBzL,EAAI,EAAGA,EAAIwK,EAAOvK,OAAQD,IAAK,CACtC,IAAIyN,EAAYhM,SAAS+E,cAAc,OACvCiH,EAAUlL,UAAUC,IAAI,QACxBiL,EAAUvJ,MAAMwJ,YAAc,MAC9BD,EAAUvJ,MAAMyG,UAAY,mBAAmB9C,OAAO2C,EAAOxK,GAAGsF,OAChE,IAAIqI,EAAmBlM,SAAS+E,cAAc,OAC9CmH,EAAiBpL,UAAUC,IAAI,WAC/B,IAAIoL,EAAOnM,SAAS+E,cAAc,QAClCoH,EAAKrL,UAAUC,IAAI,QACnBoL,EAAK7G,YAAcyD,EAAOxK,GAAG6N,KAC7BF,EAAiB9G,YAAY+G,GAC7B,IAAIE,EAAOrM,SAAS+E,cAAc,QAClCsH,EAAKvL,UAAUC,IAAI,SACnBsL,EAAKlH,UAAY,WACjB+G,EAAiB9G,YAAYiH,GAC7BL,EAAU5G,YAAY8G,GAEtB1M,KAAK8M,wBAAwBN,EAAWxM,KAAKgB,QAAQmC,iBAAkBoG,EAAOxK,IAE9EuN,EAAY1G,YAAY4G,GAG1B,GAAIF,EAAYS,SAAS/N,OAAS,EAAG,CACnC,IAAIgO,EAAWhN,KAAKiN,oBAAoB3D,GAExCgD,EAAYrJ,MAAMgJ,KAAOe,EAASf,KAAO,GAAK,KAC9CK,EAAYrJ,MAAMiK,MAAQ,GAC1BZ,EAAYrJ,MAAM+I,IAAMgB,EAAShB,IAAM,GAAK,KAC5CM,EAAYrJ,MAAMgC,QAAU,QAExBqH,EAAYa,wBAAwBD,MAAQ1M,SAAS+L,KAAKZ,cAC5DW,EAAYrJ,MAAMgJ,KAAO,GACzBK,EAAYrJ,MAAMiK,MAAQ,KAI5B/H,YAAW,WACT,OAAOkH,EAAOe,mCACb,GAEH,IAAIC,EAAmB,SAASA,EAAiBC,GAC5B,UAAfA,EAAMC,MAAqBjB,EAAY5L,SAAS4M,EAAMzO,UACxDyN,EAAYrJ,MAAMgC,QAAU,OAC5B/H,OAAOsQ,oBAAoB,QAASH,GACpCnQ,OAAOsQ,oBAAoB,SAAUH,GACrCnQ,OAAOsQ,oBAAoB,SAAUH,KAIzCnQ,OAAOyG,iBAAiB,QAAS0J,GACjCnQ,OAAOyG,iBAAiB,SAAU0J,GAClCnQ,OAAOyG,iBAAiB,SAAU0J,MAGrC,CACD/N,IAAK,0BACLK,MAAO,SAAiC6J,EAAQiE,EAAOC,GACrD,IAAIC,EAAUnN,SAAS+E,cAAc,OACrCoI,EAAQrM,UAAUC,IAAI,WAEtB,IAAK,IAAIxC,EAAI,EAAGA,EAAI0O,EAAMzO,OAAQD,IAChC,IAAyB,IAArB0O,EAAM1O,GAAG6O,UAAiD,oBAArBH,EAAM1O,GAAG6O,SAA2BH,EAAM1O,GAAG6O,QAAQF,IAA9F,CAIA,IAAIG,EAAWrN,SAAS+E,cAAc,OACtCsI,EAASvM,UAAUC,IAAI,QACvB,IAAIuM,EAAkBtN,SAAS+E,cAAc,OAC7CuI,EAAgBxM,UAAUC,IAAI,WAC9B,IAAIoL,EAAOnM,SAAS+E,cAAc,QAgBlC,GAfAoH,EAAKrL,UAAUC,IAAI,QACnBoL,EAAK7G,YAAc2H,EAAM1O,GAAG4N,KAC5BmB,EAAgBlI,YAAY+G,GAExBc,EAAM1O,GAAGgP,OACX,SAAWC,GACTF,EAAgBnK,iBAAiB,SAAS,WACxCnD,SAASa,cAAc,0BAA0B4B,MAAMgC,QAAU,OACjEwI,EAAMO,GAAOD,MAAML,MAHvB,CAKG3O,GAGL8O,EAASjI,YAAYkI,GAEjBL,EAAM1O,GAAG0O,OAASA,EAAM1O,GAAG0O,MAAMzO,OAAS,EAAG,CAC/C,IAAI6N,EAAOrM,SAAS+E,cAAc,QAClCsH,EAAKvL,UAAUC,IAAI,SACnBsL,EAAKlH,UAAY,WACjBmI,EAAgBlI,YAAYiH,GAE5B7M,KAAK8M,wBAAwBe,EAAUJ,EAAM1O,GAAG0O,MAAOC,GAGzDC,EAAQ/H,YAAYiI,GAGlBF,EAAQZ,SAAS/N,OAAS,GAC5BwK,EAAO5D,YAAY+H,KAGtB,CACDrO,IAAK,iCACLK,MAAO,WACL,IAAIsO,EAAQzN,SAASoI,iBAAiB,mCACtCqF,EAAMpO,SAAQ,SAAUqO,GACtB,IAAIC,EAAWD,EACfC,EAASlL,MAAMgC,QAAU,QACzBkJ,EAASlL,MAAMoH,WAAa,YAE9B4D,EAAMpO,SAAQ,SAAUqO,GACtB,IAAIC,EAAWD,EAEXC,EAAShB,wBAAwBD,MAAQ1M,SAAS+L,KAAKZ,YACzDwC,EAAS7M,UAAUC,IAAI,aAEvB4M,EAAS7M,UAAUwK,OAAO,gBAG9BmC,EAAMpO,SAAQ,SAAUqO,GACtB,IAAIC,EAAWD,EACfC,EAASlL,MAAMgC,QAAU,GACzBkJ,EAASlL,MAAMoH,WAAa,QAG/B,CACD/K,IAAK,WACLK,MAAO,SAAkB2J,GACvB,IAAIJ,EAAMI,EAAIjI,cAAc,gBAAgByE,YACxC+C,EAAQS,EAAIjJ,QAAQ,oBAAoBoG,QAAQC,QAChD0H,EAAOpO,KAAKgB,QAAQW,UACxB,OAAO,IAAII,KAAKqM,EAAMvF,EAAOK,KAE9B,CACD5J,IAAK,gBACLK,MAAO,SAAuB0O,EAAWC,GACvC,IAAIhB,EAAQ,KAWZ,IAAK,IAAIvO,IATY,oBAAVwP,MACTjB,EAAQ,IAAIiB,MAAMF,IAElBf,EAAQ9M,SAASgO,YAAY,SAC7BlB,EAAMmB,UAAUJ,GAAW,GAAO,IAGpCf,EAAMoB,SAAW1O,KAEHsO,EACZhB,EAAMvO,GAAKuP,EAAWvP,GAIxB,OADAiB,KAAKe,QAAQ4N,cAAcrB,GACpBA,IAER,CACDhO,IAAK,cACLK,MAAO,SAAqB6K,GAC1B,GAA4B,MAAxBxK,KAAKgB,QAAQiB,SAAmBuI,EAAOxK,KAAKgB,QAAQiB,SAAmC,MAAxBjC,KAAKgB,QAAQkB,SAAmBsI,EAAOxK,KAAKgB,QAAQkB,QACrH,OAAO,EAGT,GAAIlC,KAAKgB,QAAQ6B,iBAAiB7D,OAAS,EACzC,IAAK,IAAIsI,EAAI,EAAGA,EAAItH,KAAKgB,QAAQ6B,iBAAiB7D,OAAQsI,IACxD,GAAIkD,EAAK3C,UAAY7H,KAAKgB,QAAQ6B,iBAAiByE,GACjD,OAAO,EAKb,GAAItH,KAAKgB,QAAQ2B,aAAa3D,OAAS,EACrC,IAASsI,EAAI,EAAGA,EAAItH,KAAKgB,QAAQ2B,aAAa3D,OAAQsI,IACpD,GAAIkD,EAAK7C,WAAa3H,KAAKgB,QAAQ2B,aAAa2E,GAAGK,UACjD,OAAO,EAKb,OAAO,IAER,CACDrI,IAAK,YACLK,MAAO,SAAmBuJ,GACxB,GAAIlJ,KAAKgB,QAAQ8B,eAAe9D,OAAS,EACvC,IAAK,IAAIsI,EAAI,EAAGA,EAAItH,KAAKgB,QAAQ8B,eAAe9D,OAAQsI,IACtD,GAAI4B,GAAOlJ,KAAKgB,QAAQ8B,eAAewE,GACrC,OAAO,EAKb,OAAO,IAQR,CACDhI,IAAK,gBACLK,MAAO,SAAuB6K,GAE5B,IAAIoE,EAAc,IAAI7M,KAAKyI,EAAK7C,WAChCiH,EAAYC,SAAS,EAAG,EAAG,EAAG,GAE9BD,EAAY9G,QAAQ8G,EAAY7G,UAAY,GAAK6G,EAAY/G,SAAW,GAAK,GAE7E,IAAIiH,EAAQ,IAAI/M,KAAK6M,EAAY5M,cAAe,EAAG,GAEnD,OAAO,EAAI+M,KAAKC,QAAQJ,EAAYjH,UAAYmH,EAAMnH,WAAa,MAAW,GAAKmH,EAAMjH,SAAW,GAAK,GAAK,KAQ/G,CACDvI,IAAK,YACLK,MAAO,SAAmB6K,GACxB,OAAOxK,KAAKsL,iBAAiBd,EAAM,IAAIzI,KAAKyI,EAAKxI,cAAewI,EAAKY,WAAYZ,EAAKzC,UAAY,MASnG,CACDzI,IAAK,mBACLK,MAAO,SAA0BoJ,EAAWC,GAC1C,IAAIO,EAAS,GAEb,GAAIvJ,KAAKwD,aAAeuF,GAAaC,EACnC,IAAK,IAAIjK,EAAI,EAAGA,EAAIiB,KAAKwD,YAAYxE,OAAQD,IACvCiB,KAAKwD,YAAYzE,GAAGgK,UAAYC,GAAWhJ,KAAKwD,YAAYzE,GAAGiK,SAAWD,GAC5EQ,EAAON,KAAKjJ,KAAKwD,YAAYzE,IAKnC,OAAOwK,IAWR,CACDjK,IAAK,kBACLK,MAAO,SAAyB6K,GAC9B,IAAIyE,EAASjP,KAETkP,EAAQjO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,KAC5EsI,EAASvJ,KAAK0K,UAAUF,GAE5B,OAAc,IAAV0E,GACM3F,EAAO4F,MAAK,SAAUzB,GAC5B,OAAQuB,EAAOjO,QAAQyB,gBAAkBiL,EAAI1D,YAAc0D,EAAI1E,QAAUwB,MAExD,IAAV0E,GACD3F,EAAO4F,MAAK,SAAUzB,GAC5B,OAAQuB,EAAOjO,QAAQyB,gBAAkBiL,EAAI7D,cAAgB6D,EAAI3E,UAAYyB,KAGxExK,KAAK8K,gBAAgBN,GAAM,IAAUxK,KAAK8K,gBAAgBN,GAAM,KAO1E,CACDlL,IAAK,UACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQW,YAQrB,CACDrC,IAAK,UACLK,MAAO,SAAiByO,GACtB,IAAIgB,EAASpP,KAETqP,EAAavN,SAASsM,GAE1B,IAAKvM,MAAMwN,GAAa,CACtBrP,KAAKgB,QAAQW,UAAY0N,EAEzB,MAAOrP,KAAKe,QAAQyD,WAClBxE,KAAKe,QAAQ0D,YAAYzE,KAAKe,QAAQyD,YAGpCxE,KAAKgB,QAAQwB,eACfxC,KAAK0E,gBAGP,IAAI4K,EAActP,KAAKoF,cAAc,cAAe,CAClDC,YAAarF,KAAKgB,QAAQW,UAC1B4N,kBAAkB,IAGmB,oBAA5BvP,KAAKgB,QAAQgC,YACtBhD,KAAKwP,QAAO,GAEZxP,KAAKyP,kBAAiB,SAAUzM,GAC9BoM,EAAO5L,YAAcR,EAErBoM,EAAO3L,8BAEP2L,EAAOI,QAAO,OAGXF,EAAYC,kBACfvP,KAAKwP,YASZ,CACDlQ,IAAK,aACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQiB,UAWrB,CACD3C,IAAK,aACLK,MAAO,SAAoB6K,GACzB,IAAI+E,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,IAElFuJ,aAAgBzI,MAAiB,OAATyI,KAC1BxK,KAAKgB,QAAQiB,QAAUuI,EAElB+E,GACHvP,KAAKwP,YAQV,CACDlQ,IAAK,aACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQkB,UAWrB,CACD5C,IAAK,aACLK,MAAO,SAAoB6K,GACzB,IAAI+E,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,IAElFuJ,aAAgBzI,MAAiB,OAATyI,KAC1BxK,KAAKgB,QAAQkB,QAAUsI,EAElB+E,GACHvP,KAAKwP,YAQV,CACDlQ,IAAK,WACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQiC,QAWrB,CACD3D,IAAK,WACLK,MAAO,SAAkBsD,GACvB,IAAIsM,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQiC,MAAiB,cAATA,GAAkC,UAATA,GAA8B,UAATA,EAAoBA,EAAQ,SAE1FsM,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,kBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQqB,eAQrB,CACD/C,IAAK,kBACLK,MAAO,SAAyB0C,GAC9BrC,KAAKgB,QAAQqB,aAAeA,IAM7B,CACD/C,IAAK,uBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQsB,oBAWrB,CACDhD,IAAK,uBACLK,MAAO,SAA8B2C,GACnC,IAAIiN,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQsB,kBAAoBA,EAE5BiN,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,mBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQwB,gBAWrB,CACDlD,IAAK,mBACLK,MAAO,SAA0B6C,GAC/B,IAAI+M,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQwB,cAAgBA,EAExB+M,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,+BACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQuB,4BAWrB,CACDjD,IAAK,+BACLK,MAAO,SAAsC4C,GAC3C,IAAIgN,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQuB,0BAA4BA,EAEpCgN,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,mBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQyB,gBAWrB,CACDnD,IAAK,mBACLK,MAAO,SAA0B8C,GAC/B,IAAI8M,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQyB,cAAgBA,EAExB8M,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,0BACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQ0B,uBAWrB,CACDpD,IAAK,0BACLK,MAAO,SAAiC+C,GACtC,IAAI6M,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQ0B,qBAAuBA,EAE/B6M,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,kBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQ2B,eAWrB,CACDrD,IAAK,kBACLK,MAAO,SAAyBgD,GAC9B,IAAI4M,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQ2B,aAAeA,aAAwBC,MAAQD,EAAe,GAEtE4M,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,sBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQ6B,mBAWrB,CACDvD,IAAK,sBACLK,MAAO,SAA6BkD,GAClC,IAAI0M,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQ6B,iBAAmBA,aAA4BD,MAAQC,EAAmB,GAElF0M,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,oBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQ8B,iBAWrB,CACDxD,IAAK,oBACLK,MAAO,SAA2BmD,GAChC,IAAIyM,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQ8B,eAAiBA,aAA0BF,MAAQE,EAAiB,GAE5EyM,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,sBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQ+B,mBAWrB,CACDzD,IAAK,sBACLK,MAAO,SAA6BoD,GAClC,IAAIwM,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQ+B,iBAAmBA,EAE3BwM,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,uBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQkC,oBAWrB,CACD5D,IAAK,uBACLK,MAAO,SAA8BuD,GACnC,IAAIqM,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQkC,kBAAoBA,EAE5BqM,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,sBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQmC,mBAWrB,CACD7D,IAAK,sBACLK,MAAO,SAA6BwD,GAClC,IAAIoM,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQmC,iBAAmBA,aAA4BP,MAAQO,EAAmB,GAElFoM,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,uBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQoC,oBAWrB,CACD9D,IAAK,uBACLK,MAAO,SAA8ByD,GACnC,IAAImM,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQoC,kBAAiD,oBAAtBA,EAAmCA,EAAoB,KAE1FmM,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,8BACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQqC,2BAWrB,CACD/D,IAAK,8BACLK,MAAO,SAAqC0D,GAC1C,IAAIkM,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQqC,yBAA+D,oBAA7BA,EAA0CA,EAA2B,KAE/GkM,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,cACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQmB,WAWrB,CACD7C,IAAK,cACLK,MAAO,SAAqBwC,GAC1B,IAAIoN,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GAEtE,MAAZkB,GAAkD,MAA9BrB,EAASsB,QAAQD,KACvCnC,KAAKgB,QAAQmB,SAAWA,EAEnBoN,GACHvP,KAAKwP,YAQV,CACDlQ,IAAK,gBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQgC,aAWrB,CACD1D,IAAK,gBACLK,MAAO,SAAuBqD,GAC5B,IAAI0M,EAAS1P,KAETuP,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQgC,WAAaA,aAAsBJ,OAA+B,oBAAfI,EAA4BA,EAAa,GAElE,oBAA5BhD,KAAKgB,QAAQgC,YACtBhD,KAAKwP,QAAO,GAEZxP,KAAKyP,kBAAiB,SAAUzM,GAC9B0M,EAAOlM,YAAcR,EAErB0M,EAAOjM,8BAEPiM,EAAOF,QAAO,QAGhBxP,KAAKwD,YAAcxD,KAAKgB,QAAQgC,WAEhChD,KAAKyD,8BAEA8L,GACHvP,KAAKwP,YAQV,CACDlQ,IAAK,eACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQsC,UAAYtD,KAAKgB,QAAQsC,UAAYxC,EAASsB,QAAQpC,KAAKgB,QAAQmB,UAAUmB,YAWlG,CACDhE,IAAK,eACLK,MAAO,SAAsB2D,GAC3B,IAAIiM,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GACtFjB,KAAKgB,QAAQsC,UAAazB,MAAMC,SAASwB,IAAoC,KAAtBxB,SAASwB,GAE3DiM,GACHvP,KAAKwP,WAOR,CACDlQ,IAAK,qBACLK,MAAO,WACL,OAAOK,KAAKgB,QAAQuC,kBAQrB,CACDjE,IAAK,qBACLK,MAAO,SAA4B4D,GACjCvD,KAAKgB,QAAQuC,gBAA6C,kBAApBA,GAAgCA,aAA2BpC,YAAcoC,EAAkB,OAYlI,CACDjE,IAAK,WACLK,MAAO,SAAkB+N,GACvB,IAAI6B,EAAmBtO,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GAEtFjB,KAAKwD,YAAYyF,KAAKyE,GAEjB6B,GACHvP,KAAKwP,aAKJ1O,EA72DmB,GAg3D5B5C,EAAS,WAAa4C,EAEtBpB,EAAgBoB,EAAU,UAAW,CACnC6O,GAAI,CACFC,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YACzEC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDrI,QAAS,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC9CzC,OAAQ,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACvH+K,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FzI,UAAW,IACX/D,UAAW,KAIf5D,EAAgBoB,EAAU,SAAU,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,YAEpB,YAAjD,qBAAX5D,OAAyB,YAAciB,EAAQjB,WACzDA,OAAO4D,SAAWA,EAClBN,SAASmD,iBAAiB,oBAAoB,WAC5CnD,SAASoI,iBAAiB,6BAA6B/I,SAAQ,SAAUkB,GACvE,OAAO,IAAID,EAASC,gBAOxBgP,EAAa1S,EAAcW,GAE/B,SAASgS,EAAYC,EAAKC,QACX,IAARA,IAAiBA,EAAM,IAC5B,IAAIC,EAAWD,EAAIC,SAEnB,GAAKF,GAA2B,qBAAbzP,SAAnB,CAEA,IAAI4P,EAAO5P,SAAS4P,MAAQ5P,SAAS6P,qBAAqB,QAAQ,GAC9DpN,EAAQzC,SAAS+E,cAAc,SACnCtC,EAAMsK,KAAO,WAEI,QAAb4C,GACEC,EAAK5L,WACP4L,EAAKE,aAAarN,EAAOmN,EAAK5L,YAKhC4L,EAAKxK,YAAY3C,GAGfA,EAAMsN,WACRtN,EAAMsN,WAAWC,QAAUP,EAE3BhN,EAAM2C,YAAYpF,SAASiQ,eAAeR,KAI9C,IAAIS,EAAW,qiPACfV,EAAYU,GAGZ,IAAIC,EAAS,CACX/D,KAAM,WACN9N,MAAO,CAAC,eAAgB,gBAAiB,mBAAoB,oBAAqB,2BAA4B,aAAc,eAAgB,mBAAoB,4BAA6B,gBAAiB,oBAAqB,oBAAqB,uBAAwB,iBAAkB,WAAY,kBAAmB,UAAW,UAAW,mBAAoB,cAAe,YAAa,QACvY8R,KAAM,WACJ,MAAO,CACLC,cAAc,IAGlBC,QAAS,WACP,IAAInI,EAAQ3I,KAEZA,KAAK0O,SAAW,IAAIqB,EAAW/P,KAAK+Q,IAAK,CAEvC1O,aAAcrC,KAAKqC,aACnBI,cAAezC,KAAKyC,cACpBU,iBAAkBnD,KAAKmD,iBACvBC,kBAAmBpD,KAAKoD,kBACxBC,yBAA0BrD,KAAKqD,yBAC/BL,WAAYhD,KAAKgD,WACjBL,aAAc3C,KAAK2C,aACnBE,iBAAkB7C,KAAK6C,iBACvBN,0BAA2BvC,KAAKuC,0BAChCC,cAAexC,KAAKwC,cACpBF,kBAAmBtC,KAAKsC,kBACxBY,kBAAmBlD,KAAKkD,kBACxBR,qBAAsB1C,KAAK0C,qBAC3BI,eAAgB9C,KAAK8C,eACrBX,SAAUnC,KAAKmC,SACfoB,gBAAiBvD,KAAKuD,gBACtBrB,QAASlC,KAAKkC,QACdD,QAASjC,KAAKiC,QACdc,iBAAkB/C,KAAK+C,iBACvBE,MAAOjD,KAAKgR,YACZ1N,UAAWtD,KAAKsD,UAChB3B,UAAW3B,KAAKoO,KAEhBvK,SAAU,SAAkBqG,GAC1B,OAAOvB,EAAMsI,MAAM,YAAa/G,IAElCpG,eAAgB,SAAwBoG,GACtC,OAAOvB,EAAMsI,MAAM,mBAAoB/G,IAEzClG,WAAY,SAAoBkG,GAC9B,OAAOvB,EAAMsI,MAAM,eAAgB/G,IAErCjG,YAAa,SAAqBiG,GAChC,OAAOvB,EAAMsI,MAAM,gBAAiB/G,IAEtCtG,UAAW,SAAmBsG,GAC5B,OAAOvB,EAAMsI,MAAM,aAAc/G,IAEnCnG,YAAa,SAAqBmG,GAChC,OAAOvB,EAAMsI,MAAM,eAAgB/G,IAErCxG,YAAa,SAAqBwG,GAChC,OAAOvB,EAAMsI,MAAM,eAAgB/G,OAIzCgH,SAAU,CACRC,SAAU,WACR,MAAO,qBAAqBvK,OAAO5G,KAAKqC,aAAc,sBAAsBuE,OAAO5G,KAAKyC,cAAe,sBAAsBmE,OAAO5G,KAAKmD,iBAAkB,sBAAsByD,OAAO5G,KAAKoD,kBAAmB,sBAAsBwD,OAAO5G,KAAKqD,yBAA0B,sBAAsBuD,OAAO5G,KAAKgD,WAAY,sBAAsB4D,OAAO5G,KAAK2C,aAAc,sBAAsBiE,OAAO5G,KAAK6C,iBAAkB,sBAAsB+D,OAAO5G,KAAKuC,0BAA2B,sBAAsBqE,OAAO5G,KAAKwC,cAAe,sBAAsBoE,OAAO5G,KAAKsC,kBAAmB,sBAAsBsE,OAAO5G,KAAKkD,kBAAmB,sBAAsB0D,OAAO5G,KAAK0C,qBAAsB,sBAAsBkE,OAAO5G,KAAK8C,eAAgB,sBAAsB8D,OAAO5G,KAAKmC,SAAU,sBAAsByE,OAAO5G,KAAKuD,gBAAiB,sBAAsBqD,OAAO5G,KAAKkC,QAAS,sBAAsB0E,OAAO5G,KAAKiC,QAAS,sBAAsB2E,OAAO5G,KAAK+C,iBAAkB,sBAAsB6D,OAAO5G,KAAKgR,YAAa,sBAAsBpK,OAAO5G,KAAKsD,UAAW,sBAAsBsD,OAAO5G,KAAKoO,KAAM,oBAGjlCgD,MAAO,CACL/O,aAAc,SAAsBgP,GAClCrR,KAAK0O,SAAS4C,gBAAgBD,IAEhC5O,cAAe,SAAuB4O,GACpCrR,KAAK0O,SAAS6C,iBAAiBF,GAAK,GACpCrR,KAAK6Q,cAAe,GAEtB1N,iBAAkB,SAA0BkO,GAC1CrR,KAAK0O,SAAS8C,oBAAoBH,GAAK,GACvCrR,KAAK6Q,cAAe,GAEtBzN,kBAAmB,SAA2BiO,GAC5CrR,KAAK0O,SAAS+C,qBAAqBJ,GAAK,GACxCrR,KAAK6Q,cAAe,GAEtBxN,yBAA0B,SAAkCgO,GAC1DrR,KAAK0O,SAASgD,4BAA4BL,GAAK,GAC/CrR,KAAK6Q,cAAe,GAEtB7N,WAAY,SAAoBqO,GAC9BrR,KAAK0O,SAASiD,cAAcN,GAAK,GACjCrR,KAAK6Q,cAAe,GAEtBlO,aAAc,SAAsB0O,GAClCrR,KAAK0O,SAASkD,gBAAgBP,GAAK,GACnCrR,KAAK6Q,cAAe,GAEtBhO,iBAAkB,SAA0BwO,GAC1CrR,KAAK0O,SAASmD,oBAAoBR,GAAK,GACvCrR,KAAK6Q,cAAe,GAEtBtO,0BAA2B,SAAmC8O,GAC5DrR,KAAK0O,SAASoD,6BAA6BT,GAAK,GAChDrR,KAAK6Q,cAAe,GAEtBrO,cAAe,SAAuB6O,GACpCrR,KAAK0O,SAASqD,iBAAiBV,GAAK,GACpCrR,KAAK6Q,cAAe,GAEtBvO,kBAAmB,SAA2B+O,GAC5CrR,KAAK0O,SAASsD,qBAAqBX,GAAK,GACxCrR,KAAK6Q,cAAe,GAEtB3N,kBAAmB,SAA2BmO,GAC5CrR,KAAK0O,SAASuD,qBAAqBZ,GAAK,GACxCrR,KAAK6Q,cAAe,GAEtBnO,qBAAsB,SAA8B2O,GAClDrR,KAAK0O,SAASwD,wBAAwBb,GAAK,GAC3CrR,KAAK6Q,cAAe,GAEtB/N,eAAgB,SAAwBuO,GACtCrR,KAAK0O,SAASyD,kBAAkBd,GAAK,GACrCrR,KAAK6Q,cAAe,GAEtB1O,SAAU,SAAkBkP,GAC1BrR,KAAK0O,SAAS0D,YAAYf,GAAK,GAC/BrR,KAAK6Q,cAAe,GAEtBtN,gBAAiB,SAAyB8N,GACxCrR,KAAK0O,SAAS2D,mBAAmBhB,GAAK,IAExCnP,QAAS,SAAiBmP,GACxBrR,KAAK0O,SAAS4D,WAAWjB,GAAK,GAC9BrR,KAAK6Q,cAAe,GAEtB5O,QAAS,SAAiBoP,GACxBrR,KAAK0O,SAAS6D,WAAWlB,GAAK,GAC9BrR,KAAK6Q,cAAe,GAEtB9N,iBAAkB,SAA0BsO,GAC1CrR,KAAK0O,SAAS8D,oBAAoBnB,GAAK,GACvCrR,KAAK6Q,cAAe,GAEtBG,YAAa,SAAqBK,GAChCrR,KAAK0O,SAAS+D,SAASpB,GAAK,GAC5BrR,KAAK6Q,cAAe,GAEtBvN,UAAW,SAAmB+N,GAC5BrR,KAAK0O,SAASgE,aAAarB,GAAK,GAChCrR,KAAK6Q,cAAe,GAEtBzC,KAAM,SAAciD,GAClBrR,KAAK0O,SAAShN,QAAQ2P,IAExBF,SAAU,SAAkBE,GACtBrR,KAAK6Q,eACP7Q,KAAK0O,SAASc,SACdxP,KAAK6Q,cAAe,KAI1BzO,QAAS2N,EAAW3N,SAItB,SAASuQ,EAAmBC,EAAU3P,EAAO0N,EAAQkC,EAASC,EAAsBC,EAElFC,EAAYC,EAAgBC,EAAmBC,GACrB,mBAAfH,IACTE,EAAoBD,EACpBA,EAAiBD,EACjBA,GAAa,GAIf,IAiBII,EAjBApS,EAA4B,oBAAX2P,EAAwBA,EAAO3P,QAAU2P,EAsD9D,GApDIiC,GAAYA,EAASpD,SACvBxO,EAAQwO,OAASoD,EAASpD,OAC1BxO,EAAQqS,gBAAkBT,EAASS,gBACnCrS,EAAQsS,WAAY,EAEhBR,IACF9R,EAAQuS,YAAa,IAKrBV,IACF7R,EAAQwS,SAAWX,GAKjBE,GAEFK,EAAO,SAAcK,GAEnBA,EAAUA,GACVzT,KAAK0T,QAAU1T,KAAK0T,OAAOC,YAC3B3T,KAAKwJ,QAAUxJ,KAAKwJ,OAAOkK,QAAU1T,KAAKwJ,OAAOkK,OAAOC,WAGnDF,GAA0C,qBAAxBG,sBACrBH,EAAUG,qBAIR3Q,GACFA,EAAMtF,KAAKqC,KAAMkT,EAAkBO,IAIjCA,GAAWA,EAAQI,uBACrBJ,EAAQI,sBAAsBtS,IAAIwR,IAMtC/R,EAAQ8S,aAAeV,GACdnQ,IACTmQ,EAAOJ,EAAa,WAClB/P,EAAMtF,KAAKqC,KAAMmT,EAAqBnT,KAAK+T,MAAMC,SAASC,cACxD,SAAUR,GACZxQ,EAAMtF,KAAKqC,KAAMiT,EAAeQ,MAIhCL,EACF,GAAIpS,EAAQuS,WAAY,CAEtB,IAAIW,EAAiBlT,EAAQwO,OAE7BxO,EAAQwO,OAAS,SAAkC2E,EAAGV,GAEpD,OADAL,EAAKzV,KAAK8V,GACHS,EAAeC,EAAGV,QAEtB,CAEL,IAAIW,EAAWpT,EAAQqT,aACvBrT,EAAQqT,aAAeD,EAAW,GAAGxN,OAAOwN,EAAUhB,GAAQ,CAACA,GAInE,OAAOzC,EAGT,IAAI2D,EAAuB3B,EAGvB4B,EAAiB5D,EAGjB6D,EAAiB,WACnB,IAAIC,EAAMzU,KAEN0U,EAAKD,EAAIE,eAETC,EAAKH,EAAII,MAAMD,IAAMF,EAEzB,OAAOE,EAAG,QAGRE,EAA0B,GAC9BN,EAAeO,eAAgB,EAG/B,IAAIC,OAAwB9T,EAGxB+T,OAAmB/T,EAGnBgU,OAA4BhU,EAG5BiU,GAAiC,EAKjCC,EAAgBd,EAAqB,CACvC9E,OAAQgF,EACRnB,gBAAiByB,GAChBE,EAAuBT,EAAgBU,EAAkBE,EAAgCD,OAA2BhU,OAAWA,GAElIpD,EAAOC,QAAUqX,I,0DCpxEF,OACbC,UAAU,ICFG,G,UAAA,CACbC,SADa,SACJC,EAAOC,GACdD,EAAMF,UAAUI,QAAQD,IAE1BE,cAJa,SAICH,EAAOF,GACnBE,EAAMF,UAAYA,GAEpBM,gBAPa,SAOGJ,EAAOpT,GACrB,IAAMyT,EAAgBL,EAAMF,UAAUQ,WAAU,SAACC,GAAD,OAAOA,EAAEC,IAAM5T,EAAS4T,MACxEvY,OAAOwY,OAAOT,EAAMF,UAAUO,GAAgBzT,IAElD8T,YAXe,SAWHV,EAAOW,GACf,IAAMC,EAAYZ,EAAMF,UAAUQ,WAAU,SAACC,GAAD,OAAOA,EAAEC,IAAMG,KAC3DX,EAAMF,UAAUe,OAAOD,EAAW,M,YCXvB,GACbE,QADa,WACOb,GAAM,IAAhBc,EAAgB,EAAhBA,OACR,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMC,KAAK,2BAA4BnB,GACpCpR,MAAK,SAACwS,GACLN,EAAO,WAAY9Y,OAAOwY,OAAOR,EAAM,CAAEO,GAAIa,EAAShG,KAAKmF,MAC3DS,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCC,mBAZa,YAYkB,IAAVT,EAAU,EAAVA,OACnB,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMM,IAAI,uBACP5S,MAAK,SAACwS,GACLN,EAAO,gBAAiBM,EAAShG,MACjC4F,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCG,WAvBa,WAuBUzB,GAAM,IAAhBc,EAAgB,EAAhBA,OACX,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMQ,IAAI,kCAAkC1B,EAAKO,GAAIP,GAClDpR,MAAK,SAACwS,GACLN,EAAO,kBAAmBd,GAC1BgB,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCK,YAlCa,WAkCWC,GAAQ,IAAlBd,EAAkB,EAAlBA,OACZ,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMC,KAAK,2BAA4BS,GACpChT,MAAK,SAACwS,GACLN,EAAO,kBAAmBM,EAAShG,MACnC4F,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCO,WA7Ca,WA6CU7B,GAAM,IAAhBc,EAAgB,EAAhBA,OACX,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMY,OAAO,kCAAkC9B,EAAKO,IACjD3R,MAAK,SAACwS,GACLN,EAAO,cAAed,EAAKO,IAC3BS,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,WCrDpB,KCKA,QACdS,YAAY,EACThC,MAAOA,EACPiC,UAAWA,EACXC,QAASA,EACTC,QAASA,I,oCCVE,OACbC,gBAAgB,ICFH,G,UAAA,CACbrC,SADa,SACJC,EAAOC,GACdD,EAAMoC,gBAAgBlC,QAAQD,IAEhCoC,oBAJa,SAIOrC,EAAOoC,GACzBpC,EAAMoC,gBAAkBA,GAE1BE,sBAPa,SAOStC,EAAOuC,GAC3B,IAAMC,EAAsBxC,EAAMoC,gBAAgB9B,WAAU,SAACC,GAAD,OAAOA,EAAEC,IAAM+B,EAAe/B,MAC1FvY,OAAOwY,OAAOT,EAAMoC,gBAAgBI,GAAsBD,IAE9D7B,YAXe,SAWHV,EAAOW,GACf,IAAMC,EAAYZ,EAAMoC,gBAAgB9B,WAAU,SAACC,GAAD,OAAOA,EAAEC,IAAMG,KACjEX,EAAMoC,gBAAgBvB,OAAOD,EAAW,M,YCX7B,GACbE,QADa,WACOb,GAAM,IAAhBc,EAAgB,EAAhBA,OACR,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMC,KAAK,uCAAwCnB,GAChDpR,MAAK,SAACwS,GACLN,EAAO,WAAY9Y,OAAOwY,OAAOR,EAAM,CAAEO,GAAIa,EAAShG,KAAKmF,MAC3DS,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCC,mBAZa,YAYkB,IAAVT,EAAU,EAAVA,OACnB,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMM,IAAI,6BACP5S,MAAK,SAACwS,GACLN,EAAO,sBAAuBM,EAAShG,MACvC4F,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCG,WAvBa,WAuBUzB,GAAM,IAAhBc,EAAgB,EAAhBA,OACX,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMQ,IAAI,8CAA8C1B,EAAKO,GAAIP,GAC9DpR,MAAK,SAACwS,GACLN,EAAO,wBAAyBd,GAChCgB,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCK,YAlCa,WAkCWC,GAAQ,IAAlBd,EAAkB,EAAlBA,OACZ,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMC,KAAK,uCAAwCS,GAChDhT,MAAK,SAACwS,GACLN,EAAO,wBAAyBM,EAAShG,MACzC4F,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCO,WA7Ca,WA6CU7B,GAAM,IAAhBc,EAAgB,EAAhBA,OACX,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMY,OAAO,8CAA8C9B,EAAKO,IAC7D3R,MAAK,SAACwS,GACLN,EAAO,cAAed,EAAKO,IAC3BS,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,WCrDpB,KCKA,QACdS,YAAY,EACThC,MAAOA,EACPiC,UAAWA,EACXC,QAASA,EACTC,QAASA,I,yCCpBb,IAAIlI,EAAS,WAAa,IAAIiF,EAAIzU,KAAS0U,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,2BAA2B,CAACoD,MAAM,CAAC,gBAAkBvD,EAAIwD,kBAAkB,OAASxD,EAAIyD,QAAQC,GAAG,CAAC,aAAe1D,EAAI2D,gBAAgBxD,EAAG,YAAY,CAACoD,MAAM,CAAC,KAAO,SAAS,YAAY,UAAU,KAAO,eAAeG,GAAG,CAAC,MAAQ,SAASE,GAAQ,OAAO5D,EAAI6D,mBAAkB,MAAS,CAAC7D,EAAI8D,GAAG9D,EAAI+D,GAAG/D,EAAIgE,GAAG,cAAc7D,EAAG,MAAM,CAAC8D,YAAY,YAAY,CAAC9D,EAAG,WAAW,CAACoD,MAAM,CAAC,uBAAsB,EAAK,cAAcvD,EAAIkE,SAASR,GAAG,CAAC,eAAe1D,EAAI/Q,YAAY,eAAe+Q,EAAIzQ,WAAW,gBAAgByQ,EAAIxQ,gBAAgB,IAAI,IACloBoP,EAAkB,G;;;;;;ACMtB,SAASuF,IAeP,OAdAA,EAAWpb,OAAOwY,QAAU,SAAUnX,GACpC,IAAK,IAAIE,EAAI,EAAGA,EAAIkC,UAAUjC,OAAQD,IAAK,CACzC,IAAI8Z,EAAS5X,UAAUlC,GAEvB,IAAK,IAAIO,KAAOuZ,EACVrb,OAAOC,UAAUC,eAAeC,KAAKkb,EAAQvZ,KAC/CT,EAAOS,GAAOuZ,EAAOvZ,IAK3B,OAAOT,GAGF+Z,EAASE,MAAM9Y,KAAMiB,WAG9B,IAAI8X,EAAU,QAKd,SAASC,EAAOjY,GACTA,EAAQkY,aAMf,SAASC,EAAanY,EAASoY,GAC7BpY,EAAQ4E,KAAewT,EAMzB,SAASC,EAAmBzZ,GAC1B,SAAUA,IAASA,EAAM0Z,QAAU1Z,EAAM0Z,OAAOC,YAAc3Z,GAMhE,SAAS,EAAevB,EAAKkB,GAC3B,MAAO,GAAG5B,eAAeC,KAAKS,EAAKkB,GAMrC,SAASia,EAAmB5Z,GAC1B,OAAI6Z,EAAU7Z,GACL,CAACA,GAGN8Z,EAAW9Z,GACN+Z,EAAU/Z,GAGfiD,MAAM+W,QAAQha,GACTA,EAGF+Z,EAAUlZ,SAASoI,iBAAiBjJ,IAM7C,SAASia,EAAwBja,EAAOqO,EAAO6L,GAC7C,GAAIjX,MAAM+W,QAAQha,GAAQ,CACxB,IAAIma,EAAIna,EAAMqO,GACd,OAAY,MAAL8L,EAAYlX,MAAM+W,QAAQE,GAAgBA,EAAa7L,GAAS6L,EAAeC,EAGxF,OAAOna,EAOT,SAASoa,EAAY3b,EAAKkB,GACxB,OAAOlB,GAAOA,EAAI4b,WAAa5b,EAAI4b,UAAU1a,GAM/C,SAAS2a,EAAOta,EAAO4N,GACrB,IAAI2M,EAAM,GAAGnU,SAASpI,KAAKgC,GAC3B,OAAkC,IAA3Bua,EAAIC,QAAQ,YAAoBD,EAAIC,QAAQ5M,EAAO,MAAQ,EAMpE,SAASiM,EAAU7Z,GACjB,OAAOsa,EAAOta,EAAO,WAMvB,SAAS8Z,EAAW9Z,GAClB,OAAOsa,EAAOta,EAAO,YAMvB,SAASya,EAAaza,GACpB,OAAOsa,EAAOta,EAAO,cAOvB,SAASgG,IACP,MAAO,YAMT,SAAS0U,EAAuB1a,EAAO2a,GACrC,MAAwB,oBAAV3a,EAAuBA,EAAMmZ,WAAM,EAAQwB,GAAQ3a,EAMnE,SAAS4a,EAAiBP,EAAWpN,EAAM4N,EAAU7a,GACnDqa,EAAUS,QAAO,SAAUlU,GACzB,OAAOA,EAAEqG,OAASA,KACjB,GAAG4N,GAAY7a,EAMpB,SAAS+a,IACP,OAAOla,SAAS+E,cAAc,OAMhC,SAASoV,EAAsBC,EAAKjb,GAClCib,EAAI/a,SAAQ,SAAUU,GAChBA,IACFA,EAAG0C,MAAM4X,mBAAqBlb,EAAQ,SAQ5C,SAASmb,EAAmBF,EAAKrF,GAC/BqF,EAAI/a,SAAQ,SAAUU,GAChBA,GACFA,EAAG2G,aAAa,aAAcqO,MAUpC,SAASwF,EAASld,EAAImd,GAEpB,OAAW,IAAPA,EACKnd,EAIF,SAAUod,GACfC,aAAaC,GACbA,EAAUhW,YAAW,WACnBtH,EAAGod,KACFD,IALL,IAAIG,EAYN,SAASC,EAAmBC,EAAYC,EAAWhB,GAC7Ce,GAAcA,IAAeC,GAC/BD,EAAWvC,WAAM,EAAQwB,GAmB7B,SAASZ,EAAU/Z,GACjB,MAAO,GAAG4b,MAAM5d,KAAKgC,GAMvB,SAAS6b,EAAgBza,EAASjB,GAChC,MAAOiB,EAAS,CACd,GAAIjB,EAASiB,GACX,OAAOA,EAGTA,EAAUA,EAAQJ,cAGpB,OAAO,KAMT,SAAS8a,EAASC,EAAGC,GACnB,OAAOD,EAAEvB,QAAQwB,IAAM,EAMzB,SAASC,EAAcjc,GACrB,OAAOA,EAAMkc,MAAM,OAAOpB,OAAOqB,SAOnC,SAASC,EAAaC,EAAWC,GAC/B,YAAqB/a,IAAd8a,EAA0BA,EAAYC,EAM/C,SAASC,EAAiBvc,GACxB,MAAO,GAAGiH,OAAOjH,GAOnB,SAASwc,EAAiBC,GACxB,IAAIC,EAAoBH,EAAiBE,GACrCrb,EAAUsb,EAAkB,GAEhC,OAAOtb,GAAUA,EAAQub,eAA4B9b,SAMvD,SAAS+b,EAAaC,EAAK7c,IACG,IAAxB6c,EAAIrC,QAAQxa,IACd6c,EAAIvT,KAAKtJ,GAOb,SAAS8c,EAAiB9c,GACxB,MAAwB,kBAAVA,EAAqBA,EAAQ,KAAOA,EAMpD,SAAS+c,EAAOF,GACd,OAAOA,EAAI/B,QAAO,SAAUjF,EAAMxH,GAChC,OAAOwO,EAAIrC,QAAQ3E,KAAUxH,KAOjC,SAAS2O,EAAUhd,GACjB,MAAwB,kBAAVA,EAAqBA,EAAQid,WAAWjd,GAMxD,SAASkd,EAAaC,EAAKnd,GACzB,IAAIod,EAAyB,kBAAVpd,GAAsB8b,EAAS9b,EAAO,OACrDwZ,EAAO2D,EAAIrc,gBACXuc,EAAe,GAEnB,OAAI7D,GAAQ4D,EACHH,WAAWK,iBAAiB9D,GAAM+D,UAAYC,OAAOH,IAAiBL,EAAUhd,GAGlFgd,EAAUhd,GAMnB,SAASyd,EAAmBC,EAAeC,EAASC,QAClC,IAAZD,IACFA,EAAU,GAGZ,IAAIE,EAAqB,CACvBxR,IAAK,EACLkB,MAAO,EACPuQ,OAAQ,EACRxR,KAAM,GAEJyR,EAAOlgB,OAAOkgB,KAAKF,GACvB,OAAOE,EAAKC,QAAO,SAAUvf,EAAKkB,GAOhC,OANAlB,EAAIkB,GAA0B,kBAAZge,EAAuBA,EAAUA,EAAQhe,GAEvD+d,IAAkB/d,IACpBlB,EAAIkB,GAA0B,kBAAZge,EAAuBA,EAAUC,EAAaD,EAAQD,GAAiBE,GAGpFnf,IACNof,GA2DL,IAAII,EAAc,CAChBC,aAAa,EACbC,cAAc,EACdC,mBAAmB,EACnBC,QAAQ,GAENC,EAAerF,EAAS,CAC1BsF,WAAW,EACXC,UAAW,OACXC,SAAU,WACR,OAAO5d,SAAS+L,MAElB8R,KAAM,cACNC,OAAO,EACPC,SAAU,eACVC,QAAS,GACTC,MAAO,EACPC,SAAU,GACVC,SAAU,CAAC,IAAK,KAChBC,MAAM,EACNC,aAAc,OACdC,cAAc,EACdC,aAAa,EACbC,kBAAkB,EAClBC,SAAS,EACTC,aAAa,EACbC,kBAAmB,EACnBC,oBAAqB,EACrBC,MAAM,EACNC,SAAU,IACVC,UAAU,EACVC,OAAQ,EACRC,cAAe,aACfC,eAAgB,aAChBC,SAAU,aACVC,UAAW,aACXC,SAAU,aACVC,OAAQ,aACRC,QAAS,aACTC,OAAQ,aACRC,QAAS,aACTC,UAAW,aACXC,YAAa,aACbC,UAAW,MACXC,QAAS,GACTC,cAAe,GACfC,KAAM,UACNC,cAAc,EACdC,MAAO,GACPC,OAAO,EACPC,QAAS,mBACTC,cAAe,KACfC,eAAgB,EAChBC,OAAQ,MACPlD,GACCmD,EAAcvjB,OAAOkgB,KAAKO,GAM1B+C,EAA+B,CAAC,QAAS,WAAY,WAAY,OAAQ,eAAgB,eAAgB,SAAU,YAAa,iBAKhIC,EAAkB,SAAyBC,GAK7C,IAAIxD,EAAOlgB,OAAOkgB,KAAKwD,GACvBxD,EAAK7d,SAAQ,SAAUP,GACrB2e,EAAa3e,GAAO4hB,EAAa5hB,OAOrC,SAAS6hB,EAAuBC,GAC9B,IAAIf,EAAUe,EAAYf,SAAW,GACjCzC,EAAcyC,EAAQ1C,QAAO,SAAU0D,EAAKC,GAC9C,IAAI1U,EAAO0U,EAAO1U,KACdiN,EAAeyH,EAAOzH,aAM1B,OAJIjN,IACFyU,EAAIzU,QAA8B1L,IAAtBkgB,EAAYxU,GAAsBwU,EAAYxU,GAAQiN,GAG7DwH,IACN,IACH,OAAOzI,EAAS,GAAIwI,EAAa,GAAIxD,GAMvC,SAAS2D,EAAsBjI,EAAW+G,GACxC,IAAImB,EAAWnB,EAAU7iB,OAAOkgB,KAAKyD,EAAuBvI,EAAS,GAAIqF,EAAc,CACrFoC,QAASA,MACJU,EACHjiB,EAAQ0iB,EAAS7D,QAAO,SAAU0D,EAAK/hB,GACzC,IAAImiB,GAAiBnI,EAAUoI,aAAa,cAAgBpiB,IAAQ,IAAIqiB,OAExE,IAAKF,EACH,OAAOJ,EAGT,GAAY,YAAR/hB,EACF+hB,EAAI/hB,GAAOmiB,OAEX,IACEJ,EAAI/hB,GAAOsiB,KAAKC,MAAMJ,GACtB,MAAOvX,GACPmX,EAAI/hB,GAAOmiB,EAIf,OAAOJ,IACN,IACH,OAAOviB,EAOT,SAASgjB,EAAcxI,EAAWxa,GAChC,IAAIijB,EAAMnJ,EAAS,GAAI9Z,EAAO,CAC5B0f,QAASnE,EAAuBvb,EAAM0f,QAAS,CAAClF,KAC/Cxa,EAAMkgB,iBAAmB,GAAKuC,EAAsBjI,EAAWxa,EAAMuhB,UAMxE,OAJI0B,EAAI7C,cACN6C,EAAI1D,KAAO,MAGN0D,EA0CT,IAAIC,EAAU,CACZC,SAAS,GAGPC,EAAY,YACZC,EAAe,eACfC,GAAgB,gBAChBC,GAAgB,gBAEhBC,GAAc,cACdC,GAAkB,kBAClBC,GAAkB,IAAML,EACxBM,GAAmB,IAAML,GACzBM,GAAmB,IAAML,GACzBM,GAAiB,IAAML,GACvBM,GAAqB,IAAML,GAE3BM,GAAe,CACjBC,SAAS,GAEPC,GAAoB,EAQxB,SAASC,KACHH,GAAaC,UAIjBD,GAAaC,SAAU,EAEnB5lB,OAAO+lB,aACTziB,SAASmD,iBAAiB,YAAauf,KAS3C,SAASA,KACP,IAAIC,EAAMF,YAAYE,MAElBA,EAAMJ,GAAoB,KAC5BF,GAAaC,SAAU,EACvBtiB,SAASgN,oBAAoB,YAAa0V,KAG5CH,GAAoBI,EAStB,SAASC,KACP,IAAIC,EAAgB7iB,SAAS6iB,cAE7B,GAAIjK,EAAmBiK,GAAgB,CACrC,IAAI5kB,EAAW4kB,EAAchK,OAEzBgK,EAAcC,OAAS7kB,EAAS8W,MAAMgO,WACxCF,EAAcC,QAQpB,SAASE,KACPhjB,SAASmD,iBAAiB,aAAcqf,GAAsBpK,EAAS,GAAIoJ,EAAS,CAClFyB,SAAS,KAEXvmB,OAAOyG,iBAAiB,OAAQyf,IAGlC,IAAIM,GAA8B,qBAAXxmB,QAA8C,qBAAbsD,SACpDmjB,GAAKD,GAAYE,UAAUC,UAAY,GACvCC,GAAO,kBAAkBC,KAAKJ,IAC9BK,GAAQN,IAAa,mBAAmBK,KAAKH,UAAUK,UAC3D,SAASC,GAAeC,GACtB,IAAIC,EAAYD,GAASH,IAASnB,GAAaC,QAC/CtiB,SAAS+L,KAAKjL,UAAU8iB,EAAY,MAAQ,UAAUlC,GAOxD,SAASmC,GAAiBjE,GACxB,OAAOA,EAAUvE,MAAM,KAAK,GAM9B,SAASyI,GAAWC,GAClBA,EAAQrd,aAAa,eAAgB,IAMvC,SAASsd,GAAcD,GACrBA,EAAQE,gBAAgB,gBAM1B,SAASC,GAAeH,GACtBA,EAAQrd,aAAa,mBAAoB,IAM3C,SAASyd,GAAkBJ,GACzBA,EAAQE,gBAAgB,oBAM1B,SAAS,GAAWG,EAAW9lB,GAC7B,GAAI0a,EAAU1a,EAAM0f,SAClBtF,EAAa0L,EAAW,IACxBA,EAAUhf,YAAY9G,EAAM0f,cACvB,GAA6B,oBAAlB1f,EAAM0f,QAAwB,CAC9C,IAAIlf,EAAMR,EAAMof,UAAY,YAAc,cAC1C0G,EAAUtlB,GAAOR,EAAM0f,SAO3B,SAASqG,GAAYC,GACnB,MAAO,CACLP,QAASO,EAAOzjB,cAAcohB,IAC9BjE,QAASsG,EAAOzjB,cAAcqhB,IAC9BpE,MAAOwG,EAAOzjB,cAAcshB,KAAmBmC,EAAOzjB,cAAcuhB,KAOxE,SAASmC,GAAmBzG,GAC1B,IAAI0G,EAAetK,IAcnB,OAZc,IAAV4D,EACF0G,EAAanZ,UAAYyW,IAEzB0C,EAAanZ,UAAY0W,GAErB/I,EAAU8E,GACZ0G,EAAapf,YAAY0Y,GAEzBpF,EAAa8L,EAAc1G,IAIxB0G,EAMT,SAASC,GAAoBC,EAAIpmB,GAC/B,IAAIgmB,EAASpK,IACboK,EAAOjZ,UAAYsW,EACnB2C,EAAO7hB,MAAM+J,SAAW,WACxB8X,EAAO7hB,MAAM+I,IAAM,IACnB8Y,EAAO7hB,MAAMgJ,KAAO,IACpB,IAAIsY,EAAU7J,IACd6J,EAAQ1Y,UAAYuW,GACpBmC,EAAQW,GAAK,SAAWA,EACxBX,EAAQrd,aAAa,aAAc,UACnCqd,EAAQrd,aAAa,WAAY,MACjCie,GAAYZ,EAAS,MAAOzlB,EAAM2hB,OAClC,IAAIjC,EAAU9D,IAqBd,OApBA8D,EAAQ3S,UAAYwW,GACpB7D,EAAQtX,aAAa,aAAc,UAE/BpI,EAAMogB,aACRwF,GAAeH,GAGbzlB,EAAMwf,QACRiG,EAAQrd,aAAa,aAAc,IACnCqd,EAAQ3e,YAAYmf,GAAmBjmB,EAAMwf,SAG3Cxf,EAAMmgB,SACRqF,GAAWC,GAGb,GAAW/F,EAAS1f,GACpBylB,EAAQ3e,YAAY4Y,GACpBsG,EAAOlf,YAAY2e,GACnBa,GAAoBN,EAAQhmB,EAAOA,GAC5BgmB,EAMT,SAASM,GAAoBN,EAAQO,EAAWC,GAC9C,IAAIC,EAAeV,GAAYC,GAC3BP,EAAUgB,EAAahB,QACvB/F,EAAU+G,EAAa/G,QACvBF,EAAQiH,EAAajH,MAEzBwG,EAAO7hB,MAAM6d,OAAS,GAAKwE,EAAUxE,OACrCyD,EAAQrd,aAAa,iBAAkBoe,EAAUnH,WACjDoG,EAAQthB,MAAMqc,SAAW7C,EAAiB6I,EAAUhG,UAEhDgG,EAAU/E,KACZgE,EAAQrd,aAAa,OAAQoe,EAAU/E,MAEvCgE,EAAQE,gBAAgB,QAGtBY,EAAU7G,UAAY8G,EAAU9G,SAClC,GAAWA,EAAS8G,IAIjBD,EAAU/G,OAASgH,EAAUhH,OAEhCiG,EAAQ3e,YAAYmf,GAAmBO,EAAUhH,QACjDiG,EAAQrd,aAAa,aAAc,KAC1Bme,EAAU/G,QAAUgH,EAAUhH,OAEvCiG,EAAQ9f,YAAY6Z,GACpBiG,EAAQE,gBAAgB,eACfY,EAAU/G,QAAUgH,EAAUhH,QAEvCiG,EAAQ9f,YAAY6Z,GACpBiG,EAAQ3e,YAAYmf,GAAmBO,EAAUhH,UAI9C+G,EAAUnG,aAAeoG,EAAUpG,YACtCwF,GAAeH,GACNc,EAAUnG,cAAgBoG,EAAUpG,aAC7CyF,GAAkBJ,IAIfc,EAAUpG,SAAWqG,EAAUrG,QAClCqF,GAAWC,GACFc,EAAUpG,UAAYqG,EAAUrG,SACzCuF,GAAcD,GAIZc,EAAU5E,QAAU6E,EAAU7E,QAChC0E,GAAYZ,EAAS,SAAUc,EAAU5E,OACzC0E,GAAYZ,EAAS,MAAOe,EAAU7E,QAO1C,SAAS+E,GAA4BjB,EAASkB,EAAQC,GACpD,CAAC,gBAAiB,uBAAuB7lB,SAAQ,SAAUyN,GACzDiX,EAAQkB,EAAS,iBAAiBnY,EAAOoY,MAO7C,SAASP,GAAYZ,EAASkB,EAAQhF,GACpC7E,EAAc6E,GAAO5gB,SAAQ,SAAU+M,GACrC2X,EAAQjjB,UAAUmkB,GAAQ7Y,EAAO,aAQrC,SAAS+Y,GAAiCC,EAAgBtY,GACxD,IAAIuY,EAAUvY,EAAMuY,QAChBC,EAAUxY,EAAMwY,QACpB,OAAOF,EAAeG,OAAM,SAAUC,GACpC,IAAIC,EAAaD,EAAKC,WAClBC,EAAcF,EAAKE,YACnB/G,EAAoB6G,EAAK7G,kBAGzBgH,EAAa,CACfna,IAAK+C,KAAKqX,IAAIH,EAAWja,IAAKka,EAAYla,KAC1CkB,MAAO6B,KAAKsX,IAAIJ,EAAW/Y,MAAOgZ,EAAYhZ,OAC9CuQ,OAAQ1O,KAAKsX,IAAIJ,EAAWxI,OAAQyI,EAAYzI,QAChDxR,KAAM8C,KAAKqX,IAAIH,EAAWha,KAAMia,EAAYja,OAE1Cqa,EAAaH,EAAWna,IAAM8Z,EAAU3G,EACxCoH,EAAgBT,EAAUK,EAAW1I,OAAS0B,EAC9CqH,EAAcL,EAAWla,KAAO4Z,EAAU1G,EAC1CsH,EAAeZ,EAAUM,EAAWjZ,MAAQiS,EAChD,OAAOmH,GAAcC,GAAiBC,GAAeC,KAIzD,IAAIC,GAAY,EACZC,GAAqB,GAKrBC,GAAmB,GAOvB,SAASC,GAAYvN,EAAW8H,GAC9B,IAQI0F,EACAC,EACAC,EAVAloB,EAAQgjB,EAAcxI,EAAWV,EAAS,GAAIqF,EAAc,GAAIkD,EAAuBC,KAE3F,IAAKtiB,EAAMygB,UAAYjG,EAAUD,OAC/B,OAAO,KAQT,IAII4N,EACAC,EACAC,EAGAhd,EATAid,GAAmB,EACnBC,GAAqB,EACrBC,GAAgC,EAChCC,EAAgB,EAIhBC,EAAY,GACZC,EAAuB1M,EAAS2M,GAAa5oB,EAAMsgB,qBAKnDtC,EAAMX,EAAiBrd,EAAM8hB,eAAiBtH,GAG9C4L,EAAKwB,KACL5B,EAASG,GAAoBC,EAAIpmB,GACjC6oB,EAAiB9C,GAAYC,GAC7B8C,EAAiB,KACjBvH,EAAU3D,EAAO5d,EAAMuhB,SAEvBkE,EAAUoD,EAAepD,QACzB/F,EAAUmJ,EAAenJ,QACzBqJ,EAAyB,CAACtD,EAAS/F,GACnCjJ,GAAQ,CAEVuS,iBAAkB,KAElBC,WAAW,EAEXxE,WAAW,EAEXyE,aAAa,EAEbC,WAAW,EAEXC,SAAS,GAEPzpB,GAAW,CAEbymB,GAAIA,EACJ5L,UAAWA,EACXwL,OAAQA,EACR6C,eAAgBA,EAChBC,eAAgBA,EAChB9oB,MAAOA,EACPyW,MAAOA,GACP8K,QAASA,EAET8H,mBAAoBA,GACpBC,SAAUA,GACVC,WAAYA,GACZC,KAAMA,GACNC,KAAMA,GACNC,OAAQA,GACRC,QAASA,GACTC,QAASA,IAIXpP,EAAUD,OAAS5a,GACnBqmB,EAAOzL,OAAS5a,GAChB,IAAIkqB,GAAetI,EAAQuI,KAAI,SAAUtH,GACvC,OAAOA,EAAOzjB,GAAGY,OAEfoqB,GAAmCvP,EAAUwP,aAAa,iBA2B9D,OA1BAC,KACAC,KAEKlqB,EAAMugB,MACT4J,KAGFC,GAAW,WAAY,CAACzqB,KAEpBK,EAAM0hB,cACR2I,KAKFrE,EAAOnhB,iBAAiB,cAAc,WAChClF,GAASK,MAAMogB,aAAezgB,GAAS8W,MAAMgO,WAC/C9kB,GAAS0pB,wBAGbrD,EAAOnhB,iBAAiB,cAAc,SAAU2J,GAC1C7O,GAASK,MAAMogB,aAAezD,EAAShd,GAASK,MAAM6hB,QAAS,gBACjE8G,EAAqBna,GACrBwP,EAAInZ,iBAAiB,YAAa8jB,OAG/BhpB,GAGP,SAAS2qB,KACP,IAAI1I,EAAQjiB,GAASK,MAAM4hB,MAC3B,OAAO9d,MAAM+W,QAAQ+G,GAASA,EAAQ,CAACA,EAAO,GAGhD,SAAS2I,KACP,MAA2C,SAApCD,KAA6B,GAGtC,SAASE,KACP,OAAOnf,GAAiBmP,EAG1B,SAASiQ,GAASC,GAIhB,OAAI/qB,GAAS8W,MAAM0S,YAAcxpB,GAAS8W,MAAMgO,WAAaV,GAAaC,SAAWmE,GAA8C,UAA1BA,EAAiB1Z,KACjH,EAGFqM,EAAwBnb,GAASK,MAAM2f,MAAO+K,EAAS,EAAI,EAAGvL,EAAaQ,OAGpF,SAASyK,GAAW9V,EAAMkH,EAAMmP,GAa5B,IAAIC,QAZwB,IAA1BD,IACFA,GAAwB,GAG1Bd,GAAa9oB,SAAQ,SAAU8pB,GACzB,EAAeA,EAAavW,IAE9BuW,EAAYvW,GAAM0F,MAAM6Q,EAAarP,MAIrCmP,KAIDC,EAAkBjrB,GAASK,OAAOsU,GAAM0F,MAAM4Q,EAAiBpP,GAIpE,SAASsP,KACP,IAAIvL,EAAO5f,GAASK,MAAMuf,KAE1B,GAAKA,EAAL,CAIA,IAAIwL,EAAO,QAAUxL,EACjB6G,EAAKX,EAAQW,GACb4E,EAAQ5N,EAAiBzd,GAASK,MAAM8hB,eAAiBtH,GAC7DwQ,EAAMjqB,SAAQ,SAAUkqB,GACtB,IAAI9N,EAAe8N,EAAKrI,aAAamI,GAErC,GAAIprB,GAAS8W,MAAMgO,UACjBwG,EAAK7iB,aAAa2iB,EAAM5N,EAAeA,EAAe,IAAMiJ,EAAKA,OAC5D,CACL,IAAIlJ,EAAYC,GAAgBA,EAAa+N,QAAQ9E,EAAI,IAAIvD,OAEzD3F,EACF+N,EAAK7iB,aAAa2iB,EAAM7N,GAExB+N,EAAKtF,gBAAgBoF,QAM7B,SAASb,KAIP,IAAIH,GAAJ,CAIA,IAAIiB,EAAQ5N,EAAiBzd,GAASK,MAAM8hB,eAAiBtH,GAC7DwQ,EAAMjqB,SAAQ,SAAUkqB,GAClBtrB,GAASK,MAAMogB,YACjB6K,EAAK7iB,aAAa,gBAAiBzI,GAAS8W,MAAMgO,WAAawG,IAAST,KAAqB,OAAS,SAEtGS,EAAKtF,gBAAgB,qBAK3B,SAASwF,KACPnN,EAAIvQ,KAAKiB,oBAAoB,aAAc0c,IAC3CpN,EAAItP,oBAAoB,YAAaia,GACrCd,GAAqBA,GAAmBlM,QAAO,SAAUiL,GACvD,OAAOA,IAAa+B,KAIxB,SAAS0C,GAAoB7c,GAE3B,IAAI7O,GAASK,MAAMogB,cAAe4F,EAAOpkB,SAAS4M,EAAMzO,QAAxD,CAKA,GAAIyqB,KAAmB5oB,SAAS4M,EAAMzO,QAAS,CAC7C,GAAIgkB,GAAaC,QACf,OAGF,GAAIrkB,GAAS8W,MAAMgO,WAAa9H,EAAShd,GAASK,MAAM6hB,QAAS,SAC/D,QAI+B,IAA/BliB,GAASK,MAAMigB,cACjBsI,GAAqB,EACrB5oB,GAAS0pB,qBACT1pB,GAAS8pB,OAITjB,GAAgC,EAChCniB,YAAW,WACTmiB,GAAgC,KAK7B7oB,GAAS8W,MAAM0S,WAClBmC,OAKN,SAASC,KACPvN,EAAInZ,iBAAiB,YAAawmB,IAAqB,GAGzD,SAASC,KACPtN,EAAItP,oBAAoB,YAAa2c,IAAqB,GAG5D,SAASG,GAAkB3L,EAAU7e,GACnCyqB,GAAgB5L,GAAU,YACnBlgB,GAAS8W,MAAMgO,WAAauB,EAAOlkB,YAAckkB,EAAOlkB,WAAWF,SAASokB,IAC/EhlB,OAKN,SAAS0qB,GAAiB7L,EAAU7e,GAClCyqB,GAAgB5L,EAAU7e,GAG5B,SAASyqB,GAAgB5L,EAAU7e,GACjC,SAAS4lB,EAASpY,GACZA,EAAMzO,SAAW0lB,IACnBiB,GAA4BjB,EAAS,SAAUmB,GAC/C5lB,KAMJ,GAAiB,IAAb6e,EACF,OAAO7e,IAGT0lB,GAA4BjB,EAAS,SAAU4C,GAC/C3B,GAA4BjB,EAAS,MAAOmB,GAC5CyB,EAA+BzB,EAGjC,SAASvN,GAAGsS,EAAWC,EAAS1pB,QACd,IAAZA,IACFA,GAAU,GAGZ,IAAI8oB,EAAQ5N,EAAiBzd,GAASK,MAAM8hB,eAAiBtH,GAC7DwQ,EAAMjqB,SAAQ,SAAUkqB,GACtBA,EAAKpmB,iBAAiB8mB,EAAWC,EAAS1pB,GAC1CwmB,EAAUve,KAAK,CACb8gB,KAAMA,EACNU,UAAWA,EACXC,QAASA,EACT1pB,QAASA,OAKf,SAAS+nB,KACHM,OACFlR,GAAG,aAAc+H,GAAW8B,GAC5B7J,GAAG,WAAYwS,GAAc3I,IAG/BpG,EAAcnd,GAASK,MAAM6hB,SAAS9gB,SAAQ,SAAU4qB,GACtD,GAAkB,WAAdA,EAMJ,OAFAtS,GAAGsS,EAAWvK,IAENuK,GACN,IAAK,aACHtS,GAAG,aAAcwS,IACjB,MAEF,IAAK,QACHxS,GAAG2L,GAAO,WAAa,OAAQ8G,IAC/B,MAEF,IAAK,UACHzS,GAAG,WAAYyS,IACf,UAKR,SAASC,KACPrD,EAAU3nB,SAAQ,SAAUmmB,GAC1B,IAAI+D,EAAO/D,EAAK+D,KACZU,EAAYzE,EAAKyE,UACjBC,EAAU1E,EAAK0E,QACf1pB,EAAUglB,EAAKhlB,QACnB+oB,EAAKvc,oBAAoBid,EAAWC,EAAS1pB,MAE/CwmB,EAAY,GAGd,SAAStH,GAAU5S,GACjB,IAAIwd,GAA0B,EAE9B,GAAKrsB,GAAS8W,MAAMwS,YAAagD,GAAuBzd,KAAUga,EAAlE,CAmBA,GAfAL,EAAmB3Z,EACnBnD,EAAgBmD,EAAMnD,cACtB6e,MAEKvqB,GAAS8W,MAAMgO,WAAanJ,EAAa9M,IAK5CqZ,GAAmB9mB,SAAQ,SAAU6lB,GACnC,OAAOA,EAASpY,MAKD,UAAfA,EAAMC,MAAsBkO,EAAShd,GAASK,MAAM6hB,QAAS,gBAAiB0G,IAAsD,IAA/B5oB,GAASK,MAAMigB,cAAyBtgB,GAAS8W,MAAMgO,UAEzJ,CACL,IAAIyH,EAAwB5B,KACxBzpB,EAAQqrB,EAAsB,GAC9BrM,EAAWqM,EAAsB,GAEjCnI,GAAaC,SAAqB,SAAVnjB,GAAoBgf,EAG9CmI,EAAc3hB,YAAW,WACvBgkB,GAAa7b,KACZqR,GAEHwK,GAAa7b,QAbfwd,GAA0B,EAiBT,UAAfxd,EAAMC,OACR8Z,GAAsByD,GAGpBA,GACFZ,GAAa5c,IAIjB,SAASoa,GAAYpa,GACnB,IAAI2d,EAAgCzP,EAAgBlO,EAAMzO,QAAQ,SAAU0B,GAC1E,OAAOA,IAAO+Y,GAAa/Y,IAAOukB,KAGpC,GAAmB,cAAfxX,EAAMC,OAAwB0d,EAAlC,CAIA,IAAIrF,EAAiBlM,EAAUoL,EAAOlc,iBAAiB4Z,KAAkB5b,OAAOke,GAAQ8D,KAAI,SAAU9D,GACpG,IAAIrmB,EAAWqmB,EAAOzL,OAClBkL,EAAU9lB,EAASkpB,eAAepD,QAClCpF,EAAoB1gB,EAASK,MAAMqgB,kBACvC,MAAO,CACL8G,WAAYnB,EAAO3X,wBACnB+Y,YAAa3B,EAAQpX,wBACrBgS,kBAAmBA,MAInBwG,GAAiCC,EAAgBtY,KACnD2c,KACAC,GAAa5c,KAIjB,SAASqd,GAAard,GACpB,IAAIyd,GAAuBzd,MAIvBmO,EAAShd,GAASK,MAAM6hB,QAAS,WAAY0G,GAIjD,OAAI5oB,GAASK,MAAMogB,aACjBpC,EAAIvQ,KAAK5I,iBAAiB,aAAcumB,IACxCpN,EAAInZ,iBAAiB,YAAa8jB,GAClClL,EAAaoK,GAAoBc,QACjCA,EAAqBna,SAIvB4c,GAAa5c,GAGf,SAASsd,GAAiBtd,IACnBmO,EAAShd,GAASK,MAAM6hB,QAAS,YAAcrT,EAAMzO,SAAWyqB,QAKjE7qB,GAASK,MAAMogB,aAAe5R,EAAM4d,eAAiBpG,EAAOpkB,SAAS4M,EAAM4d,gBAI/EhB,GAAa5c,IAGf,SAASyd,GAAuBzd,GAC9B,IAAI6d,EAAgB,iBAAkBjuB,OAClCkuB,EAAe3P,EAASnO,EAAMC,KAAM,SACpC8d,EAAgBhC,KACpB,OAAO8B,GAAiBtI,GAAaC,SAAWuI,IAAkBD,GAAgBvI,GAAaC,UAAYuI,GAAiBD,EAG9H,SAASnC,KACP,IAII1L,EAJA+C,EAAgB7hB,GAASK,MAAMwhB,cAC/BhC,EAAQ7f,GAASkpB,eAAerJ,MAChCgN,EAAevR,EAAYuG,EAAe,QAC1CiL,EAA0BxR,EAAYuG,EAAe,mBAGzD,SAASkL,EAAe5a,GACtB,IAAI6a,EAAgBhtB,GAAS8W,MAAMuS,iBACnCrpB,GAAS8W,MAAMuS,iBAAmBlX,EAAKwP,UAEnC3hB,GAASK,MAAM8f,OAASngB,GAASK,MAAMggB,eACrClO,EAAK8a,UACPjtB,GAASmpB,eAAe5mB,QAAQof,UAAYxP,EAAKwP,WAGnD7F,EAAiB9b,GAASmpB,eAAe5N,UAAW,OAAQ,WAAW,IAGzEuK,EAAQrd,aAAa,iBAAkB0J,EAAKwP,YAEG,IAA3CxP,EAAK+a,WAAW,uBAClBpH,EAAQrd,aAAa,yBAA0B,IAE/Cqd,EAAQE,gBAAgB,0BAG1B,IAAIpH,EAAgBgH,GAAiBzT,EAAKwP,WACtCwL,EAAsBnQ,EAAS,CAAC,MAAO,UAAW4B,GAClDwO,EAAuBpQ,EAAS,CAAC,SAAU,SAAU4B,GAEzDkH,EAAQthB,MAAM+I,IAAM,IACpBuY,EAAQthB,MAAMgJ,KAAO,IACrBsY,EAAQthB,MAAM2oB,EAAsB,MAAQ,SAAWC,EAAuB,GAAK,GAAKtO,EAAa,KAGjGkO,GAAiBA,IAAkB7a,EAAKwP,WAC1C3hB,GAASmpB,eAAekE,SAI5B,IAAIC,EAASnT,EAAS,CACpBoT,eAAe,EACf5L,UAAW3hB,GAASK,MAAMshB,WACzBE,EAAe,CAChBtG,UAAWpB,EAAS,GAAI0H,GAAiBA,EAActG,UAAW,CAQhEiS,cAAe,CACbC,SAAS,EACTC,MAAO,EACPtuB,GAAI,SAAY+S,GAGd2M,EAAaV,EAAaC,EAAKre,GAASK,MAAM4f,UAC9C,IAAIrB,EAAgBgH,GAAiBzT,EAAKwP,WACtCgM,EAAiChP,EAAmBC,EAAekO,GAA2BA,EAAwBjO,QAASC,GAC/H8O,EAAsBjP,EAAmBC,EAAeiO,GAAgBA,EAAahO,QAASC,GAC9F+O,EAAoB7tB,GAASmpB,eAAe5N,UAGhD,OAFAO,EAAiB+R,EAAmB,kBAAmB,UAAWF,GAClE7R,EAAiB+R,EAAmB,OAAQ,UAAWD,GAChDzb,IAGX2b,gBAAiB3T,EAAS,CACxB4T,kBAAmB/tB,GAASK,MAAMyf,UACjCgN,GACH3M,KAAMhG,EAAS,CACbsT,QAASztB,GAASK,MAAM8f,KACxB6N,SAAUhuB,GAASK,MAAM+f,cACxByM,GACHhN,MAAO1F,EAAS,CACd7X,QAASud,EACT4N,UAAW5N,GACVvE,EAAYuG,EAAe,UAC9Bd,OAAQ5G,EAAS,CACf4G,OAAQ/gB,GAASK,MAAM0gB,QACtBzF,EAAYuG,EAAe,aAEhCX,SAAU,SAAkB/O,GAC1B4a,EAAe5a,GACfwK,EAAmBkF,GAAiBA,EAAcX,SAAUoM,EAAOpM,SAAU,CAAC/O,IAC9E8b,MAEFC,SAAU,SAAkB/b,GAC1B4a,EAAe5a,GACfwK,EAAmBkF,GAAiBA,EAAcqM,SAAUZ,EAAOY,SAAU,CAAC/b,IAC9E8b,QAIJjuB,GAASmpB,eAAiB,IAAI,OAAOtO,EAAWwL,EAAQiH,GAG1D,SAASW,KAGe,IAAlBnF,GACFA,IAEA9oB,GAASmpB,eAAekE,UACf5E,GAA0C,IAAlBK,IACjCA,IAEAvO,EAAO8L,GACPoC,KAIJ,SAAS0F,KAGPrF,EAAgB,EAChB,IACI3mB,EADAwd,EAAW3f,GAASK,MAAMsf,SAO1B2L,EAAOT,KAGT1oB,EADEnC,GAASK,MAAMogB,aAAed,IAAaH,EAAaG,UAAyB,WAAbA,EACzD2L,EAAKnpB,WAELyZ,EAAuB+D,EAAU,CAAC2L,IAK5CnpB,EAAWF,SAASokB,IACvBlkB,EAAWgF,YAAYkf,GAQzBvK,EAAiB9b,GAASmpB,eAAe5N,UAAW,OAAQ,UAAWvb,GAASK,MAAM8f,MACtFngB,GAASmpB,eAAeiF,uBAExBpuB,GAASmpB,eAAekE,SAG1B,SAAS3C,GAAa7b,GACpB7O,GAAS0pB,qBAEJ1pB,GAASmpB,gBACZqB,KAGE3b,GACF4b,GAAW,YAAa,CAACzqB,GAAU6O,IAGrC+c,KACA,IAAI5L,EAAQ8K,IAAS,GAEjB9K,EACFqI,EAAc3hB,YAAW,WACvB1G,GAAS6pB,SACR7J,GAEHhgB,GAAS6pB,OAIb,SAAS4B,GAAa5c,GAIpB,GAHA7O,GAAS0pB,qBACTe,GAAW,cAAe,CAACzqB,GAAU6O,IAEhC7O,GAAS8W,MAAMgO,WASpB,KAAI9H,EAAShd,GAASK,MAAM6hB,QAAS,eAAiBlF,EAAShd,GAASK,MAAM6hB,QAAS,UAAYlF,EAAS,CAAC,aAAc,aAAcnO,EAAMC,OAAS8Z,GAAxJ,CAIA,IAAI5I,EAAQ8K,IAAS,GAEjB9K,EACFsI,EAAc5hB,YAAW,WACnB1G,GAAS8W,MAAMgO,WACjB9kB,GAAS8pB,SAEV9J,GAIHuI,EAA6B8F,uBAAsB,WACjDruB,GAAS8pB,gBAxBX6B,KA+BJ,SAAS5B,KACP/pB,GAAS8W,MAAMwS,WAAY,EAG7B,SAASU,KAGPhqB,GAAS8pB,OACT9pB,GAAS8W,MAAMwS,WAAY,EAG7B,SAASI,KACPjN,aAAa4L,GACb5L,aAAa6L,GACbgG,qBAAqB/F,GAGvB,SAASoB,GAASlH,GAKhB,IAAIziB,GAAS8W,MAAMyS,YAAnB,CAII,EAWJkB,GAAW,iBAAkB,CAACzqB,GAAUyiB,IACxC2J,KACA,IAAIxF,EAAY5mB,GAASK,MACrBwmB,EAAYxD,EAAcxI,EAAWV,EAAS,GAAIna,GAASK,MAAO,GAAIoiB,EAAc,CACtFlC,kBAAkB,KAwBpB,GAtBAsG,EAAUtG,iBAAmBjD,EAAamF,EAAalC,iBAAkBqG,EAAUrG,kBACnFvgB,GAASK,MAAQwmB,EACjByD,KAEI1D,EAAUjG,sBAAwBkG,EAAUlG,sBAC9C6K,KACAxC,EAAuB1M,EAAS2M,GAAapC,EAAUlG,sBAGzDgG,GAAoBN,EAAQO,EAAWC,GACvC7mB,GAASkpB,eAAiB9C,GAAYC,GAElCO,EAAUzE,gBAAkB0E,EAAU1E,cACxC1E,EAAiBmJ,EAAUzE,eAAe/gB,SAAQ,SAAUkqB,GAC1DA,EAAKtF,gBAAgB,oBAEda,EAAU1E,eACnBtH,EAAUmL,gBAAgB,iBAG5BuE,KAEIvqB,GAASmpB,eACX,GAAI5G,EAA6B7R,MAAK,SAAU6d,GAC9C,OAAO,EAAe9L,EAAc8L,IAAS9L,EAAa8L,KAAU3H,EAAU2H,MAC5E,CACF,IAAIC,EAAmBxuB,GAASmpB,eAAetO,UAC/C7a,GAASmpB,eAAec,UACxBO,KACAxqB,GAASmpB,eAAetO,UAAY2T,EAEhCxuB,GAAS8W,MAAMgO,WACjB9kB,GAASmpB,eAAeiF,4BAG1BpuB,GAASmpB,eAAekE,SAI5B5C,GAAW,gBAAiB,CAACzqB,GAAUyiB,KAGzC,SAASmH,GAAW7J,GAClB/f,GAAS2pB,SAAS,CAChB5J,QAASA,IAIb,SAAS8J,GAAK3J,QACK,IAAbA,IACFA,EAAW/E,EAAwBnb,GAASK,MAAM6f,SAAU,EAAGV,EAAaU,WAQ9E,IAAIuO,EAAmBzuB,GAAS8W,MAAMgO,UAClCyE,EAAcvpB,GAAS8W,MAAMyS,YAC7BmF,GAAc1uB,GAAS8W,MAAMwS,UAC7BqF,EAA0BvK,GAAaC,UAAYrkB,GAASK,MAAM4hB,MAElEwM,GAAoBlF,GAAemF,GAAcC,GAOjD9D,KAAmBR,aAAa,cAI/BrqB,GAASmpB,gBACZqB,KAGFC,GAAW,SAAU,CAACzqB,KAAW,IAEO,IAApCA,GAASK,MAAMkhB,OAAOvhB,MAI1B4rB,KACAvF,EAAO7hB,MAAMoH,WAAa,UAC1B5L,GAAS8W,MAAMgO,WAAY,EAKtB9kB,GAAS8W,MAAM0S,WAClBtN,EAAsBkN,EAAuBjhB,OAAOke,GAAS,GAG/DoC,EAAuB,WAChBzoB,GAAS8W,MAAMgO,YAIpB5I,EAAsB,CAACmK,GAASrmB,GAASK,MAAM+hB,gBAC/ClG,EAAsBkN,EAAwBlJ,GAC9C7D,EAAmB+M,EAAwB,WAC3C+B,KACAZ,KACAzM,EAAaqK,GAAkBnoB,IAC/BylB,IAAe,GACfzlB,GAAS8W,MAAM0S,WAAY,EAC3BiB,GAAW,UAAW,CAACzqB,KACvB+rB,GAAiB7L,GAAU,WACzBlgB,GAAS8W,MAAM2S,SAAU,EACzBgB,GAAW,UAAW,CAACzqB,UAI3BmuB,OAGF,SAASrE,GAAK5J,QACK,IAAbA,IACFA,EAAW/E,EAAwBnb,GAASK,MAAM6f,SAAU,EAAGV,EAAaU,WAQ9E,IAAI0O,GAAmB5uB,GAAS8W,MAAMgO,YAAc6D,EAChDY,EAAcvpB,GAAS8W,MAAMyS,YAC7BmF,GAAc1uB,GAAS8W,MAAMwS,YAAcX,EAE3CiG,GAAmBrF,GAAemF,IAItCjE,GAAW,SAAU,CAACzqB,KAAW,KAEO,IAApCA,GAASK,MAAMghB,OAAOrhB,KAAwB2oB,KAIlDgD,KACAtF,EAAO7hB,MAAMoH,WAAa,SAC1B5L,GAAS8W,MAAMgO,WAAY,EAC3B9kB,GAAS8W,MAAM2S,SAAU,EACzBvN,EAAsBkN,EAAwBlJ,GAC9C7D,EAAmB+M,EAAwB,UAC3C+B,KACAZ,KACAsB,GAAkB3L,GAAU,WAC1BlgB,GAASmpB,eAAe0F,wBACxB7uB,GAASmpB,eAAe5mB,QAAQof,UAAY3hB,GAASK,MAAMshB,UAC3D0E,EAAOlkB,WAAW6D,YAAYqgB,GAC9B8B,GAAmBA,GAAiBnM,QAAO,SAAU1b,GACnD,OAAOA,IAAMN,MAGiB,IAA5BmoB,GAAiB5nB,QACnBklB,IAAe,GAGjBzlB,GAAS8W,MAAM0S,WAAY,EAC3BiB,GAAW,WAAY,CAACzqB,UAI5B,SAASiqB,KAKHjqB,GAAS8W,MAAMyS,cAInBZ,GAAmB,EACnB3oB,GAAS0pB,qBACT1pB,GAAS8pB,KAAK,GACdsC,YACOvR,EAAUD,OAEb5a,GAASmpB,gBACXnpB,GAASmpB,eAAec,UAG1BtB,GAAmB,EACnB3oB,GAAS8W,MAAMyS,aAAc,EAC7BkB,GAAW,YAAa,CAACzqB,OAI7B,SAAS8uB,GAAMC,EAASC,EAExBpN,QACwB,IAAlBoN,IACFA,EAAgB,SAGF,IAAZpN,IACFA,EAAU,IAGZA,EAAUpC,EAAaoC,QAAQzZ,OAAO6mB,EAAcpN,SAAWA,GAO/DmD,KAEA,IAAIpC,EAAcxI,EAAS,GAAI6U,EAAe,CAC5CpN,QAASA,IAGPqN,EAAWnU,EAAmBiU,GAQ9BG,EAAYD,EAAS/P,QAAO,SAAU0D,EAAK/H,GAC7C,IAAI7a,EAAW6a,GAAauN,GAAYvN,EAAW8H,GAMnD,OAJI3iB,GACF4iB,EAAIpY,KAAKxK,GAGJ4iB,IACN,IACH,OAAO7H,EAAUgU,GAAWG,EAAU,GAAKA,EAG7CJ,GAAMxU,QAAUA,EAChBwU,GAAMtP,aAAeA,EACrBsP,GAAMtM,gBAAkBA,EACxBsM,GAAM1K,aAAeA,G,wBCr0DjB,GAAS,WAAa,IAAIpO,EAAIzU,KAAS0U,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAAC8D,YAAY,wCAAwCV,MAAM,CAAC,kBAAkB,GAAG,iBAAiB,GAAG,OAAS,OAAO,gBAAgB,IAAI,MAAQ,UAAU,OAAS,IAAI4V,MAAM,CAACjuB,MAAO8U,EAAwB,qBAAE3U,SAAS,SAAU+tB,GAAMpZ,EAAIqZ,qBAAqBD,GAAKE,WAAW,yBAAyB,CAACnZ,EAAG,MAAM,CAAC8D,YAAY,+CAA+C,CAAC9D,EAAG,KAAK,CAACH,EAAI8D,GAAG,IAAI9D,EAAI+D,GAAG/D,EAAIgE,GAAG,cAAc7D,EAAG,eAAe,CAAC8D,YAAY,iBAAiBV,MAAM,CAAC,KAAO,SAASG,GAAG,CAAC,MAAQ,SAASE,GAAQA,EAAO9N,kBAAkBkK,EAAIqZ,sBAAuB,OAAW,GAAGlZ,EAAG,aAAa,CAAC8D,YAAY,SAAS9D,EAAG,sBAAsB,CAAC8D,YAAY,iCAAiCV,MAAM,CAAC,SAAWvD,EAAIuZ,WAAW,CAACpZ,EAAG,MAAM,CAAC8D,YAAY,OAAO,CAAC9D,EAAG,IAAI,CAACH,EAAI8D,GAAG9D,EAAI+D,GAAG/D,EAAIgE,GAAG,gBAAgB7D,EAAG,WAAW,CAAC8D,YAAY,cAAcV,MAAM,CAAC,MAAQ,OAAO,QAAUvD,EAAIwZ,iBAAiB,OAAS,SAAUC,GAAY,OAAOA,EAASnY,KAAO6X,MAAM,CAACjuB,MAAO8U,EAAIyD,OAAuB,iBAAEpY,SAAS,SAAU+tB,GAAMpZ,EAAI0Z,KAAK1Z,EAAIyD,OAAQ,mBAAoB2V,IAAME,WAAW,6BAA6BnZ,EAAG,IAAI,CAACH,EAAI8D,GAAG9D,EAAI+D,GAAG/D,EAAIgE,GAAG,gBAAgB7D,EAAG,WAAW,CAAC8D,YAAY,cAAcV,MAAM,CAAC,MAAQ,OAAO,QAAUvD,EAAIY,UAAU,OAAS,SAAU+Y,GAAY,OAAOA,EAASrY,KAAO6X,MAAM,CAACjuB,MAAO8U,EAAIyD,OAAiB,WAAEpY,SAAS,SAAU+tB,GAAMpZ,EAAI0Z,KAAK1Z,EAAIyD,OAAQ,aAAc2V,IAAME,WAAW,uBAAuBnZ,EAAG,IAAI,CAACH,EAAI8D,GAAG9D,EAAI+D,GAAG/D,EAAIgE,GAAG,sBAAsB7D,EAAG,WAAW,CAAC8D,YAAY,cAAcV,MAAM,CAAC,MAAQ,OAAO,QAAUvD,EAAIkD,gBAAgB,OAAS,SAAU0W,GAAU,OAAOA,EAAOtY,KAAO6X,MAAM,CAACjuB,MAAO8U,EAAIyD,OAAuB,iBAAEpY,SAAS,SAAU+tB,GAAMpZ,EAAI0Z,KAAK1Z,EAAIyD,OAAQ,mBAAoB2V,IAAME,WAAW,6BAA6BnZ,EAAG,IAAI,CAACH,EAAI8D,GAAG9D,EAAI+D,GAAG/D,EAAIgE,GAAG,mBAAmB7D,EAAG,WAAW,CAAC8D,YAAY,cAAcV,MAAM,CAAC,MAAQ,OAAO,QAAUvD,EAAI6Z,sBAAsB,OAAS,SAAUC,GAAQ,OAAOA,EAAKxY,KAAO6X,MAAM,CAACjuB,MAAO8U,EAAIyD,OAAoB,cAAEpY,SAAS,SAAU+tB,GAAMpZ,EAAI0Z,KAAK1Z,EAAIyD,OAAQ,gBAAiB2V,IAAME,WAAW,2BAA2B,KAAKnZ,EAAG,MAAM,CAAC8D,YAAY,kCAAkCV,MAAM,CAAC,KAAO,UAAUwW,KAAK,UAAU,CAAC5Z,EAAG,YAAY,CAAC8D,YAAY,OAAOP,GAAG,CAAC,MAAQ1D,EAAIga,oBAAoB,CAACha,EAAI8D,GAAG9D,EAAI+D,GAAG/D,EAAIgE,GAAG,cAAc7D,EAAG,YAAY,CAAC8D,YAAY,OAAOV,MAAM,CAAC,KAAO,SAAS,MAAQ,UAAUG,GAAG,CAAC,MAAQ1D,EAAIia,aAAa,CAACja,EAAI8D,GAAG9D,EAAI+D,GAAG/D,EAAIgE,GAAG,aAAa7D,EAAG,YAAY,CAACoD,MAAM,CAAC,KAAO,SAAS,MAAQ,UAAUG,GAAG,CAAC,MAAQ,SAASE,GAAQ5D,EAAIqZ,sBAAuB,KAAS,CAACrZ,EAAI8D,GAAG9D,EAAI+D,GAAG/D,EAAIgE,GAAG,eAAe,IAAI,IAChrF,GAAkB,G,gDC4DP,IACb3Z,MAAOA,CACL6vB,gBAAiBA,CACfphB,KAAMA,QACNqhB,UAAUA,GAEZ1W,OAAQA,CACN3K,KAAMA,OACNshB,QAASA,eAMbje,KAdF,WAeI,MAAO,CAELod,SAAUA,CAERc,mBAAoBA,GACpBC,WAAYA,MAKlB7d,SAAUA,CACR+c,iBADJ,WAEM,OAAOjuB,KAAKgvB,OAAOzZ,MAAM0Z,mBAAmBhB,kBAE9CtW,gBAJJ,WAMM,OAAN,sDAEI2W,sBARJ,WAUM,OAAOtuB,KAAKgvB,OAAOzZ,MAAM+Y,sBAAsBY,qBAEjD7Z,UAZJ,WAcM,OAAOrV,KAAKgvB,OAAOzZ,MAAM4Z,aAAa9Z,WAExCyY,qBAAsBA,CACpB9W,IADN,WAEQ,OAAOhX,KAAK2uB,iBAEdS,IAJN,SAIA/d,GACaA,GACHrR,KAAKiR,MAAM,mBAQnBoe,QAASA,CACPX,WADJ,WAGM,KAAN,6BACM,KAAN,6BACM,KAAN,0BACM,KAAN,uBACM,KAAN,WAEID,kBATJ,WAWMzuB,KAAKiR,MAAM,gBAAjB,KAIEqe,WAAYA,CACVC,oBAAJA,KACIC,QAAJA,OCrIiX,M,yBCQ7WC,GAAY,gBACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,GAAAA,G,4DCIA,IACbH,WAAYA,CACVxuB,SAAJA,IACI4uB,yBAAJA,IAEE9e,KALF,WAMI,MAAO,CACL+H,QAANA,GACMtT,YAANA,EACM6S,OAANA,GACAD,uBAIEoX,QAAFA,CAEI/W,kBAFJ,WAEA,8DAEMtY,KAAKiY,kBAAoB5G,GAE/B+G,aANA,SAMAF,GAEA,GAEA,sBAGA,2BAEIyX,eAfJ,WAeA,WACAjZ,yDACAtS,MAAA,YACQ,EAAR,gCAGU,OAFAiN,EAAVA,gCACUA,EAAVA,4BACA,QAIAwF,OAAA,YAAQ,MAAR,MAEInT,YAAaA,SAAjBA,GACM1D,KAAKkY,OAAO0X,KAAlB,cACM5vB,KAAK2vB,eAAezlB,EAAE7E,cAExBrB,WAAJA,YACM,GAAIkG,EAAEX,OAAOvK,OAAS,EAAG,CACvB,IAAIwf,EAAU,GAEd,IAAK,IAAIzf,KAAKmL,EAAEX,OACdiV,GAAWA,2EACrBtU,kBAAA,KAAAA,iBADqBsU,eAKO,MAAhBxe,KAAKukB,UACPvkB,KAAKukB,QAAQmE,UACb1oB,KAAKukB,QAAU,MAGjBvkB,KAAKukB,QAAUgJ,GAAMrjB,EAAEnJ,QAAS,CAC9Bqf,UAAVA,MACU5B,QAAVA,EACUiC,MAAVA,eACUtC,UAAVA,aACUG,OAAVA,IAEQte,KAAKukB,QAAQ+D,SAGjBrkB,YAAaA,WACU,OAAjBjE,KAAKukB,UACPvkB,KAAKukB,QAAQmE,UACb1oB,KAAKukB,QAAU,QAKrBrT,SACF,GAGE2e,QAlFF,WAoFA,uBACM7vB,KAAKgvB,OAAOc,eAAe,qBAAsBC,GAAA,MACjDA,QAAqBA,cAAeA,GAE1C,uBACM/vB,KAAKgvB,OAAOc,eAAe,qBAAsBE,GAAA,MACjDA,QAAqBA,cAAeA,GAE1C,uBACMhwB,KAAKgvB,OAAOc,eAAe,wBAAyBG,GAAA,MACpDA,QAAwBA,cAAeA,GAE7C,uBACMjwB,KAAKgvB,OAAOc,eAAe,eAAgBI,GAAA,MAC3CA,QAAeA,cAAeA,GAEhClwB,KAAKgvB,OAAOmB,SAAS,mCACrBnwB,KAAKgvB,OAAOmB,SAAS,4CACrBnwB,KAAKgvB,OAAOmB,SAAS,yCACrBnwB,KAAKgvB,OAAOmB,SAAS,2CC9H2U,MCOhW,GAAY,gBACd,GACA3gB,EACA6D,GACA,EACA,KACA,KACA,MAIa,gB,uDClBfvV,EAAOC,QAAQ,SAASqyB,GAAG,SAASlmB,EAAEmmB,GAAG,GAAGC,EAAED,GAAG,OAAOC,EAAED,GAAGtyB,QAAQ,IAAIwyB,EAAED,EAAED,GAAG,CAACtxB,EAAEsxB,EAAEG,GAAE,EAAGzyB,QAAQ,IAAI,OAAOqyB,EAAEC,GAAG1yB,KAAK4yB,EAAExyB,QAAQwyB,EAAEA,EAAExyB,QAAQmM,GAAGqmB,EAAEC,GAAE,EAAGD,EAAExyB,QAAQ,IAAIuyB,EAAE,GAAG,OAAOpmB,EAAE3D,EAAE6pB,EAAElmB,EAAEumB,EAAEH,EAAEpmB,EAAEnL,EAAE,SAASqxB,GAAG,OAAOA,GAAGlmB,EAAE5C,EAAE,SAAS8oB,EAAEE,EAAED,GAAGnmB,EAAEmmB,EAAED,EAAEE,IAAI9yB,OAAO6B,eAAe+wB,EAAEE,EAAE,CAACnxB,cAAa,EAAGD,YAAW,EAAG8X,IAAIqZ,KAAKnmB,EAAEqmB,EAAE,SAASH,GAAG,IAAIE,EAAEF,GAAGA,EAAE7yB,WAAW,WAAW,OAAO6yB,EAAEvB,SAAS,WAAW,OAAOuB,GAAG,OAAOlmB,EAAE5C,EAAEgpB,EAAE,IAAIA,GAAGA,GAAGpmB,EAAEmmB,EAAE,SAASD,EAAElmB,GAAG,OAAO1M,OAAOC,UAAUC,eAAeC,KAAKyyB,EAAElmB,IAAIA,EAAE4L,EAAE,SAAS5L,EAAEA,EAAE5J,EAAE,GAA9e,CAAkf,CAAC,SAAS8vB,EAAElmB,EAAEomB,GAAG,aAAa,SAASD,EAAED,EAAElmB,GAAG,SAASomB,IAAIF,EAAE9uB,UAAUC,IAAI,aAAa,SAAS8uB,IAAID,EAAE9uB,UAAUwK,OAAO,aAAa,IAAIykB,EAAEvwB,KAAoB,IAAI,IAAIjB,KAAvBwxB,EAAEvC,SAAStS,IAAiBxR,EAAEqmB,EAAEvC,SAASjvB,GAAGmL,EAAEnL,GAAGwxB,EAAEG,eAAe,KAAKH,EAAEI,gBAAgB,KAAKJ,EAAEK,aAAa,KAAKL,EAAEM,cAAc,KAAKN,EAAEO,MAAM,QAAQL,EAAExgB,IAAImgB,EAAE,aAAaG,EAAEQ,iBAAiB,WAAW,IAAI7mB,EAAEkmB,EAAEY,WAAWV,EAAE,KAAK,OAAOF,EAAEY,YAAY,EAAEV,EAAEF,EAAEY,WAAW,EAAEZ,EAAEY,WAAW9mB,EAAEomB,EAA5F,GAAiGC,EAAEU,yBAAyBV,EAAEQ,iBAAiBX,EAAEc,YAAYd,EAAEe,YAAY,EAAEZ,EAAEjjB,MAAM,IAAI8jB,EAAEb,EAAEjU,cAAc8T,EAAE9T,eAAe9b,SAAS+vB,EAAEc,eAAeZ,EAAErS,SAASqS,EAAEa,OAAO,MAAM,wBAAwBlB,GAAGG,EAAEgB,WAAWd,EAAErS,SAASqS,EAAEa,OAAO,MAAM,mBAAmBf,EAAEc,gBAAgBd,EAAEgB,WAAWrqB,aAAa,WAAW,GAAGqpB,EAAEjjB,MAAMkkB,KAAKjB,EAAEgB,WAAW,QAAQjB,GAAGC,EAAEjjB,MAAMkkB,KAAKjB,EAAEgB,WAAW,OAAOlB,GAAGE,EAAEkB,iBAAiB,KAAKlB,EAAEmB,gBAAgB,KAAKnB,EAAEoB,eAAe,KAAKpB,EAAEqB,iBAAiBtxB,EAAEuxB,MAAMpB,EAAExgB,IAAIsgB,EAAEc,eAAe,WAAWd,EAAEuB,wBAAwBvB,EAAEqB,mBAAmBrB,EAAEqB,iBAAiBrB,EAAEwB,cAAcxB,EAAEuB,wBAAwB,KAAKxxB,EAAEuxB,MAAMpB,EAAExgB,IAAIsgB,EAAEc,eAAe,QAAQd,EAAEyB,iBAAiB1xB,EAAEuxB,MAAMpB,EAAExgB,IAAIsgB,EAAEc,eAAe,oBAAoB/wB,EAAEuxB,MAAMpB,EAAExgB,IAAIsgB,EAAEc,eAAe,qBAAqBZ,EAAExgB,IAAIsgB,EAAEc,eAAe,UAAU,SAASd,EAAE0B,iBAAiB3xB,EAAEuxB,MAAMpB,EAAExgB,IAAIsgB,EAAEc,eAAe,eAAe/wB,EAAEuxB,MAAMpB,EAAExgB,IAAIsgB,EAAEc,eAAe,gBAAgBZ,EAAExgB,IAAIsgB,EAAEc,eAAe,UAAU,IAAId,EAAE2B,WAAW,KAAK3B,EAAE4B,WAAW,KAAK5B,EAAE6B,eAAe3B,EAAErS,SAASqS,EAAEa,OAAO,MAAM,wBAAwBlB,GAAGG,EAAE8B,WAAW5B,EAAErS,SAASqS,EAAEa,OAAO,MAAM,mBAAmBf,EAAE6B,gBAAgB7B,EAAE8B,WAAWnrB,aAAa,WAAW,GAAGqpB,EAAEjjB,MAAMkkB,KAAKjB,EAAE8B,WAAW,QAAQ/B,GAAGC,EAAEjjB,MAAMkkB,KAAKjB,EAAE8B,WAAW,OAAOhC,GAAGE,EAAE+B,iBAAiB,KAAK/B,EAAEgC,iBAAiB,KAAKhC,EAAEiC,cAAc,KAAKjC,EAAEkC,gBAAgBnyB,EAAEuxB,MAAMpB,EAAExgB,IAAIsgB,EAAE6B,eAAe,UAAU7B,EAAEmC,uBAAuBnC,EAAEkC,kBAAkBlC,EAAEkC,gBAAgBlC,EAAEoC,eAAepC,EAAEmC,uBAAuB,KAAKpyB,EAAEuxB,MAAMpB,EAAExgB,IAAIsgB,EAAE6B,eAAe,SAAS7B,EAAEqC,qBAAqBrC,EAAEO,MAAMxwB,EAAEuyB,WAAWtC,EAAE8B,YAAY,KAAK9B,EAAEuC,iBAAiBxyB,EAAEuxB,MAAMpB,EAAExgB,IAAIsgB,EAAE6B,eAAe,mBAAmB9xB,EAAEuxB,MAAMpB,EAAExgB,IAAIsgB,EAAE6B,eAAe,sBAAsB3B,EAAExgB,IAAIsgB,EAAE6B,eAAe,UAAU,SAAS7B,EAAEwC,kBAAkBzyB,EAAEuxB,MAAMpB,EAAExgB,IAAIsgB,EAAE6B,eAAe,cAAc9xB,EAAEuxB,MAAMpB,EAAExgB,IAAIsgB,EAAE6B,eAAe,iBAAiB3B,EAAExgB,IAAIsgB,EAAE6B,eAAe,UAAU,IAAI7B,EAAEyC,YAAY,KAAKzC,EAAE0C,WAAW,KAAK,SAAS1C,EAAEH,GAAG,OAAOA,EAAE1O,aAAa,cAAc,SAAS3iB,EAAEqxB,EAAElmB,GAAGkmB,EAAElpB,aAAa,aAAagD,GAAG,SAASsmB,EAAEJ,GAAGA,EAAE3L,gBAAgB,cAAc,IAAInkB,EAAEgwB,EAAE,GAAG5U,EAAE4U,EAAE,IAAIG,EAAEH,EAAE,GAAGc,EAAEd,EAAE,IAAIxa,EAAEwa,EAAE,IAAIhpB,EAAE,GAAG4C,EAAE3I,IAAI,SAAS6uB,EAAElmB,GAAG,IAAIomB,EAAExa,IAAI,OAAO/W,EAAEqxB,EAAEE,GAAGhpB,EAAEgpB,GAAG,IAAID,EAAED,EAAElmB,GAAG5C,EAAEgpB,IAAIpmB,EAAE4B,OAAO,SAASskB,UAAU9oB,EAAEipB,EAAEH,IAAII,EAAEJ,IAAIlmB,EAAE8M,IAAI,SAASoZ,GAAG,OAAO9oB,EAAEipB,EAAEH,MAAM,SAASA,EAAElmB,EAAEomB,GAAG,aAAa,SAASD,EAAED,EAAElmB,GAAG,OAAOkmB,EAAEpC,SAASkF,qBAAqBhpB,EAAE6E,KAAKsX,IAAInc,EAAEkmB,EAAEpC,SAASkF,qBAAqB9C,EAAEpC,SAASc,qBAAqB5kB,EAAE6E,KAAKqX,IAAIlc,EAAEkmB,EAAEpC,SAASc,qBAAqB5kB,EAAE,SAASqmB,EAAEH,EAAElmB,GAAG,IAAIomB,EAAE,CAAC6C,MAAMjpB,EAAEgoB,YAAYhoB,EAAE4mB,MAAMR,EAAErkB,KAAK/B,EAAE+mB,yBAAyBb,EAAEY,WAAW9mB,EAAEwmB,eAAexmB,EAAE0mB,aAAaN,EAAErkB,KAAKmkB,EAAEY,WAAW9mB,EAAE4nB,wBAAwBxB,EAAE7S,OAAOvT,EAAE0nB,iBAAiBxB,EAAEgD,UAAU9C,EAAEtkB,IAAI9B,EAAE6nB,cAAc3B,EAAEgD,UAAU5C,EAAEvgB,IAAI/F,EAAEmnB,eAAef,GAAG,IAAID,EAAE,CAACrkB,IAAIokB,EAAEgD,UAAUC,OAAOnpB,EAAE8oB,aAAa9oB,EAAEwoB,uBAAuBxoB,EAAE4mB,MAAMT,EAAEnjB,MAAMhD,EAAE0mB,cAAc1mB,EAAE+mB,yBAAyBb,EAAEY,YAAY9mB,EAAEuoB,gBAAgBvoB,EAAE0oB,qBAAqBvC,EAAEnjB,MAAMhD,EAAEuoB,gBAAgBrC,EAAEY,WAAW9mB,EAAE4mB,MAAMT,EAAEpkB,KAAK/B,EAAE+mB,yBAAyBb,EAAEY,WAAW,EAAE9mB,EAAEwmB,eAAexmB,EAAE0mB,aAAa1mB,EAAEyoB,eAAezoB,EAAE0oB,qBAAqBvC,EAAEpkB,KAAK/B,EAAEyoB,eAAevC,EAAEY,WAAWR,EAAEvgB,IAAI/F,EAAEkoB,eAAe/B,GAAGG,EAAEvgB,IAAI/F,EAAEqnB,WAAW,CAACtlB,KAAK/B,EAAEynB,eAAewB,MAAMjpB,EAAEwnB,gBAAgBxnB,EAAE8nB,mBAAmBxB,EAAEvgB,IAAI/F,EAAEmoB,WAAW,CAACrmB,IAAI9B,EAAEsoB,cAAca,OAAOnpB,EAAEqoB,iBAAiBroB,EAAE4oB,mBAAmB,IAAI/zB,EAAEuxB,EAAE,GAAGE,EAAEF,EAAE,GAAGhwB,EAAEgwB,EAAE,GAAG5U,EAAE4U,EAAE,GAAGF,EAAEryB,QAAQ,SAASqyB,GAAG,IAA+IE,EAA3IpmB,EAAE5J,EAAE0W,IAAIoZ,GAAGlmB,EAAEwmB,eAAeN,EAAEe,YAAYjnB,EAAEymB,gBAAgBP,EAAEkD,aAAappB,EAAE0mB,aAAaR,EAAEc,YAAYhnB,EAAE2mB,cAAcT,EAAEmD,aAAmBnD,EAAE1vB,SAASwJ,EAAEmnB,kBAAkBf,EAAEE,EAAEgD,cAAcpD,EAAE,yBAAyBE,EAAEtxB,OAAO,GAAGsxB,EAAEzwB,SAAQ,SAASuwB,GAAGI,EAAE1kB,OAAOskB,MAAKI,EAAEpS,SAASlU,EAAEmnB,eAAejB,IAAIA,EAAE1vB,SAASwJ,EAAEkoB,kBAAkB9B,EAAEE,EAAEgD,cAAcpD,EAAE,yBAAyBE,EAAEtxB,OAAO,GAAGsxB,EAAEzwB,SAAQ,SAASuwB,GAAGI,EAAE1kB,OAAOskB,MAAKI,EAAEpS,SAASlU,EAAEkoB,eAAehC,KAAKlmB,EAAE8jB,SAASyF,iBAAiBvpB,EAAEwmB,eAAexmB,EAAE8jB,SAAS0F,oBAAoBxpB,EAAE0mB,cAAc1mB,EAAEunB,kBAAiB,EAAGvnB,EAAEgoB,WAAWhoB,EAAEwmB,eAAexmB,EAAE+nB,iBAAiB/nB,EAAEioB,WAAWjoB,EAAEwmB,eAAexmB,EAAEgoB,WAAWhoB,EAAEwnB,gBAAgBrB,EAAEnmB,EAAEnL,EAAE8yB,MAAM3nB,EAAEgoB,WAAWhoB,EAAEwmB,eAAexmB,EAAE0mB,eAAe1mB,EAAEynB,eAAe5yB,EAAE8yB,OAAO3nB,EAAE+mB,yBAAyBb,EAAEY,aAAa9mB,EAAEgoB,WAAWhoB,EAAEwnB,kBAAkBxnB,EAAE0mB,aAAa1mB,EAAEwmB,kBAAkBxmB,EAAEunB,kBAAiB,GAAIvnB,EAAE8jB,SAAS2F,iBAAiBzpB,EAAEymB,gBAAgBzmB,EAAE8jB,SAAS4F,oBAAoB1pB,EAAE2mB,eAAe3mB,EAAEooB,kBAAiB,EAAGpoB,EAAE8oB,YAAY9oB,EAAEymB,gBAAgBzmB,EAAE6oB,kBAAkB7oB,EAAE+oB,WAAW/oB,EAAEymB,gBAAgBzmB,EAAE8oB,YAAY9oB,EAAEqoB,iBAAiBlC,EAAEnmB,EAAEnL,EAAE8yB,MAAM3nB,EAAE8oB,YAAY9oB,EAAEymB,gBAAgBzmB,EAAE2mB,gBAAgB3mB,EAAEsoB,cAAczzB,EAAE8yB,MAAMzB,EAAEgD,WAAWlpB,EAAE8oB,YAAY9oB,EAAEqoB,mBAAmBroB,EAAE2mB,cAAc3mB,EAAEymB,mBAAmBzmB,EAAEooB,kBAAiB,EAAGpoB,EAAEynB,gBAAgBznB,EAAEgoB,WAAWhoB,EAAEwnB,kBAAkBxnB,EAAEynB,eAAeznB,EAAEgoB,WAAWhoB,EAAEwnB,iBAAiBxnB,EAAEsoB,eAAetoB,EAAE8oB,YAAY9oB,EAAEqoB,mBAAmBroB,EAAEsoB,cAActoB,EAAE8oB,YAAY9oB,EAAEqoB,kBAAkBhC,EAAEH,EAAElmB,GAAGA,EAAEunB,iBAAiBrB,EAAE9uB,UAAUC,IAAI,iBAAiB6uB,EAAE9uB,UAAUwK,OAAO,gBAAgB5B,EAAEwnB,gBAAgB,EAAExnB,EAAEynB,eAAe,EAAEjW,EAAE0U,EAAE,OAAO,IAAIlmB,EAAEooB,iBAAiBlC,EAAE9uB,UAAUC,IAAI,iBAAiB6uB,EAAE9uB,UAAUwK,OAAO,gBAAgB5B,EAAEqoB,iBAAiB,EAAEroB,EAAEsoB,cAAc,EAAE9W,EAAE0U,EAAE,MAAM,MAAM,SAASA,EAAElmB,EAAEomB,GAAG,aAAa,SAASD,EAAED,GAAG,IAAIlmB,EAAEomB,EAAE,CAAC,oBAAoB,OAAOpmB,OAAE,IAASkmB,EAAE,CAAC,QAAQ,SAAS,CAAC,OAAOA,GAAGE,EAAE1pB,OAAOsD,GAAG,IAAIqmB,EAAED,EAAE,GAAGvxB,EAAEmL,EAAE2nB,MAAM,SAASzB,GAAG,OAAOtuB,SAASsuB,EAAE,KAAK,GAAGlmB,EAAE2pB,WAAW,SAASzD,GAAG,OAAOG,EAAErwB,QAAQkwB,EAAE,4BAA4BG,EAAErwB,QAAQkwB,EAAE,6BAA6BG,EAAErwB,QAAQkwB,EAAE,+BAA+BG,EAAErwB,QAAQkwB,EAAE,6BAA6BlmB,EAAE4pB,gBAAgB,SAAS1D,GAAG,IAAI,IAAIlmB,EAAE,EAAEA,EAAEkmB,EAAE9uB,UAAUtC,OAAOkL,IAAI,CAAC,IAAIomB,EAAEF,EAAE9uB,UAAU4I,GAAG,IAAIomB,EAAEnW,QAAQ,QAAQiW,EAAE9uB,UAAUwK,OAAOwkB,KAAKpmB,EAAE2oB,WAAW,SAASzC,GAAG,OAAOrxB,EAAEwxB,EAAEtgB,IAAImgB,EAAE,UAAUrxB,EAAEwxB,EAAEtgB,IAAImgB,EAAE,gBAAgBrxB,EAAEwxB,EAAEtgB,IAAImgB,EAAE,iBAAiBrxB,EAAEwxB,EAAEtgB,IAAImgB,EAAE,oBAAoBrxB,EAAEwxB,EAAEtgB,IAAImgB,EAAE,sBAAsBlmB,EAAE6pB,eAAe,SAAS3D,EAAElmB,GAAG,IAAI,IAAIomB,EAAED,EAAEnmB,GAAGqmB,EAAE,EAAEA,EAAED,EAAEtxB,OAAOuxB,IAAIH,EAAE9uB,UAAUC,IAAI+uB,EAAEC,KAAKrmB,EAAE8pB,cAAc,SAAS5D,EAAElmB,GAAG,IAAI,IAAIomB,EAAED,EAAEnmB,GAAGqmB,EAAE,EAAEA,EAAED,EAAEtxB,OAAOuxB,IAAIH,EAAE9uB,UAAUwK,OAAOwkB,EAAEC,KAAKrmB,EAAE+pB,IAAI,CAACC,SAAS,oBAAoB1zB,UAAU,qBAAqBA,SAASC,gBAAgBwC,MAAMkoB,cAAc,oBAAoBjuB,SAAS,iBAAiBA,QAAQA,OAAOi3B,eAAe3zB,oBAAoBtD,OAAOi3B,eAAeC,kBAAkB,oBAAoBl3B,QAAQ,OAAOA,OAAO0mB,UAAUyQ,mBAAmB,SAASjE,EAAElmB,EAAEomB,GAAG,aAAa,IAAID,EAAEC,EAAE,GAAGC,EAAE,SAASH,GAAG,IAAIlmB,EAAE1J,SAASgO,YAAY,SAAS,OAAOtE,EAAEuE,UAAU2hB,GAAE,GAAG,GAAIlmB,GAAGkmB,EAAEryB,QAAQ,SAASqyB,EAAElmB,EAAEomB,GAAG,QAAG,IAASF,EAAE,KAAK,4DAA4D,QAAG,IAASlmB,EAAE,KAAK,yDAAyD,QAAG,IAASomB,EAAE,KAAK,yDAAyD,QAAQpmB,GAAGomB,GAAG,IAAIF,EAAEgD,UAAU9C,EAAE,EAAEF,EAAEzhB,cAAc4hB,EAAE,sBAAsB,SAASrmB,GAAGomB,GAAG,IAAIF,EAAEY,WAAWV,EAAE,EAAEF,EAAEzhB,cAAc4hB,EAAE,sBAAsB,IAAIxxB,EAAEsxB,EAAErZ,IAAIoZ,GAAG,QAAQlmB,GAAGomB,GAAGvxB,EAAE8xB,cAAc9xB,EAAE4xB,kBAAkBL,EAAEvxB,EAAE8xB,cAAc9xB,EAAE4xB,gBAAgBL,EAAEF,EAAEgD,WAAW,EAAE9C,EAAEF,EAAEgD,UAAUhD,EAAEgD,UAAU9C,EAAEF,EAAEzhB,cAAc4hB,EAAE,oBAAoB,SAASrmB,GAAGomB,GAAGvxB,EAAE6xB,aAAa7xB,EAAE2xB,iBAAiBJ,EAAEvxB,EAAE6xB,aAAa7xB,EAAE2xB,eAAeJ,EAAEF,EAAEY,YAAY,EAAEV,EAAEF,EAAEY,WAAWZ,EAAEY,WAAWV,EAAEF,EAAEzhB,cAAc4hB,EAAE,yBAAoB,IAASxxB,EAAEu1B,UAAUv1B,EAAEu1B,QAAQlE,EAAEgD,gBAAW,IAASr0B,EAAEw1B,WAAWx1B,EAAEw1B,SAASnE,EAAEY,YAAY,QAAQ9mB,GAAGomB,EAAEvxB,EAAEu1B,SAASlE,EAAEzhB,cAAc4hB,EAAE,iBAAiB,QAAQrmB,GAAGomB,EAAEvxB,EAAEu1B,SAASlE,EAAEzhB,cAAc4hB,EAAE,mBAAmB,SAASrmB,GAAGomB,EAAEvxB,EAAEw1B,UAAUnE,EAAEzhB,cAAc4hB,EAAE,mBAAmB,SAASrmB,GAAGomB,EAAEvxB,EAAEw1B,UAAUnE,EAAEzhB,cAAc4hB,EAAE,oBAAoB,QAAQrmB,GAAGomB,IAAIvxB,EAAEu1B,UAAUlE,EAAEgD,UAAUr0B,EAAEu1B,QAAQhE,EAAEF,EAAEzhB,cAAc4hB,EAAE,iBAAiB,SAASrmB,GAAGomB,IAAIvxB,EAAEw1B,WAAWnE,EAAEY,WAAWjyB,EAAEw1B,SAASjE,EAAEF,EAAEzhB,cAAc4hB,EAAE,mBAAmB,SAASH,EAAElmB,EAAEomB,GAAG,aAAa,SAASD,EAAED,EAAElmB,GAAG,OAAOhN,OAAO+f,iBAAiBmT,GAAGlmB,GAAG,SAASqmB,EAAEH,EAAElmB,EAAEomB,GAAG,MAAM,iBAAiBA,IAAIA,EAAEA,EAAEvqB,WAAW,MAAMqqB,EAAEntB,MAAMiH,GAAGomB,EAAEF,EAAE,SAASrxB,EAAEqxB,EAAElmB,GAAG,IAAI,IAAIomB,KAAKpmB,EAAE,CAAC,IAAImmB,EAAEnmB,EAAEomB,GAAG,iBAAiBD,IAAIA,EAAEA,EAAEtqB,WAAW,MAAMqqB,EAAEntB,MAAMqtB,GAAGD,EAAE,OAAOD,EAAE,IAAII,EAAE,CAAG,OAAS,SAASJ,EAAElmB,GAAG,IAAIomB,EAAE9vB,SAAS+E,cAAc6qB,GAAG,OAAOE,EAAEzkB,UAAU3B,EAAEomB,GAAG,SAAW,SAASF,EAAElmB,GAAG,OAAOA,EAAEtE,YAAYwqB,GAAGA,GAAG,IAAM,SAASA,EAAElmB,EAAEomB,GAAG,MAAM,iBAAiBpmB,EAAEnL,EAAEqxB,EAAElmB,QAAG,IAASomB,EAAED,EAAED,EAAElmB,GAAGqmB,EAAEH,EAAElmB,EAAEomB,IAAI,QAAU,SAASF,EAAElmB,GAAG,YAAO,IAASkmB,EAAElwB,QAAQkwB,EAAElwB,QAAQgK,GAAGkmB,EAAEjwB,kBAAkB+J,IAAI,OAAS,SAASkmB,QAAG,IAASA,EAAEtkB,OAAOskB,EAAEtkB,SAASskB,EAAExvB,YAAYwvB,EAAExvB,WAAW6D,YAAY2rB,IAAI,cAAgB,SAASA,EAAElmB,GAAG,OAAOtH,MAAMnF,UAAUgd,OAAO9c,KAAKyyB,EAAEoE,YAAW,SAASpE,GAAG,OAAOI,EAAEtwB,QAAQkwB,EAAElmB,QAAMkmB,EAAEryB,QAAQyyB,GAAG,SAASJ,EAAElmB,EAAEomB,GAAGA,EAAE,IAAI,IAAID,EAAEC,EAAE,GAAFA,CAAMA,EAAE,GAAGA,EAAE,IAAI,KAAK,MAAMF,EAAEryB,QAAQsyB,EAAEtyB,SAAS,SAASqyB,EAAElmB,EAAEomB,GAAG,aAAa9yB,OAAO6B,eAAe6K,EAAE,aAAa,CAACvK,OAAM,IAAK,IAAI0wB,EAAEC,EAAE,GAAGC,EAAED,EAAEC,EAAEF,GAAGnmB,EAAE2kB,QAAQ0B,EAAE7U,GAAG,SAAS0U,EAAElmB,EAAEomB,GAAG,aAAa9yB,OAAO6B,eAAe6K,EAAE,aAAa,CAACvK,OAAM,IAAK,IAAI0wB,EAAEC,EAAE,IAAIC,EAAED,EAAEC,EAAEF,GAAGnmB,EAAE2kB,QAAQ,CAACjiB,KAAK,wBAAwB9N,MAAM,CAACkvB,SAAS,CAACa,aAAQ,GAAQ4F,QAAQ,CAAClnB,KAAKuO,QAAQ+S,SAAQ,GAAI6F,QAAQ,CAACnnB,KAAK4P,OAAO0R,QAAQ,YAAYQ,QAAQ,CAACsF,YAAY,SAASvE,GAAGpwB,KAAKiR,MAAMmf,EAAE7iB,KAAK6iB,IAAItE,OAAO,WAAWyE,EAAE7U,EAAEoQ,OAAO9rB,KAAK+Q,MAAM6jB,OAAO,WAAW50B,KAAKy0B,UAAUz0B,KAAK60B,WAAW70B,KAAK8rB,OAAO9rB,KAAK+Q,MAAM/Q,KAAK60B,YAAW,EAAGtE,EAAE7U,EAAEoZ,WAAW90B,KAAK+Q,IAAI/Q,KAAKguB,aAAa+G,SAAS,WAAWxE,EAAE7U,EAAEgN,QAAQ1oB,KAAK+Q,KAAK/Q,KAAK60B,YAAW,IAAKzjB,MAAM,CAACqjB,QAAQ,SAASrE,GAAGA,IAAIpwB,KAAK60B,YAAY70B,KAAK40B,UAAUxE,GAAGpwB,KAAK60B,YAAY70B,KAAK+0B,YAAYC,OAAO,WAAWh1B,KAAK8rB,WAAWhb,QAAQ,WAAW9Q,KAAK40B,UAAUK,QAAQ,WAAWj1B,KAAKk1B,UAAUl1B,KAAK8rB,SAASqJ,UAAU,WAAWn1B,KAAK40B,UAAUQ,YAAY,WAAWp1B,KAAK+0B,YAAYM,cAAc,WAAWr1B,KAAK+0B,cAAc,SAAS3E,EAAElmB,EAAEomB,GAAGpmB,EAAEkmB,EAAEryB,QAAQuyB,EAAE,EAAFA,GAAOpmB,EAAEjB,KAAK,CAACmnB,EAAErxB,EAAE,48EAA48E,MAAM,SAASqxB,EAAElmB,GAAGkmB,EAAEryB,QAAQ,WAAW,IAAIqyB,EAAE,GAAG,OAAOA,EAAErqB,SAAS,WAAW,IAAI,IAAIqqB,EAAE,GAAGlmB,EAAE,EAAEA,EAAElK,KAAKhB,OAAOkL,IAAI,CAAC,IAAIomB,EAAEtwB,KAAKkK,GAAGomB,EAAE,GAAGF,EAAEnnB,KAAK,UAAUqnB,EAAE,GAAG,IAAIA,EAAE,GAAG,KAAKF,EAAEnnB,KAAKqnB,EAAE,IAAI,OAAOF,EAAEkF,KAAK,KAAKlF,EAAErxB,EAAE,SAASmL,EAAEomB,GAAG,iBAAiBpmB,IAAIA,EAAE,CAAC,CAAC,KAAKA,EAAE,MAAM,IAAI,IAAImmB,EAAE,GAAGE,EAAE,EAAEA,EAAEvwB,KAAKhB,OAAOuxB,IAAI,CAAC,IAAIxxB,EAAEiB,KAAKuwB,GAAG,GAAG,iBAAiBxxB,IAAIsxB,EAAEtxB,IAAG,GAAI,IAAIwxB,EAAE,EAAEA,EAAErmB,EAAElL,OAAOuxB,IAAI,CAAC,IAAIC,EAAEtmB,EAAEqmB,GAAG,iBAAiBC,EAAE,IAAIH,EAAEG,EAAE,MAAMF,IAAIE,EAAE,GAAGA,EAAE,GAAGF,EAAEA,IAAIE,EAAE,GAAG,IAAIA,EAAE,GAAG,UAAUF,EAAE,KAAKF,EAAEnnB,KAAKunB,MAAMJ,IAAI,SAASA,EAAElmB,EAAEomB,GAAG,aAAaF,EAAEryB,QAAQuyB,EAAE,KAAK,SAASF,EAAElmB,EAAEomB,GAAG,aAAa,IAAID,EAAE,SAASD,GAAGpwB,KAAKe,QAAQqvB,EAAEpwB,KAAKuJ,OAAO,IAAI8mB,EAAE5yB,UAAU+zB,KAAK,SAASpB,EAAElmB,QAAG,IAASlK,KAAKuJ,OAAO6mB,KAAKpwB,KAAKuJ,OAAO6mB,GAAG,IAAIpwB,KAAKuJ,OAAO6mB,GAAGnnB,KAAKiB,GAAGlK,KAAKe,QAAQ4C,iBAAiBysB,EAAElmB,GAAE,IAAKmmB,EAAE5yB,UAAU83B,OAAO,SAASnF,EAAElmB,GAAG,IAAIomB,OAAE,IAASpmB,EAAElK,KAAKuJ,OAAO6mB,GAAGpwB,KAAKuJ,OAAO6mB,GAAG3V,QAAO,SAAS4V,GAAG,SAASC,GAAGD,IAAInmB,KAAKlK,KAAKe,QAAQyM,oBAAoB4iB,EAAEC,GAAE,IAAI,KAAKrwB,OAAOqwB,EAAE5yB,UAAU+3B,UAAU,WAAW,IAAI,IAAIpF,KAAKpwB,KAAKuJ,OAAOvJ,KAAKu1B,OAAOnF,IAAI,IAAIG,EAAE,WAAWvwB,KAAKy1B,cAAc,IAAIlF,EAAE9yB,UAAUi4B,aAAa,SAAStF,GAAG,IAAIlmB,EAAElK,KAAKy1B,cAAchb,QAAO,SAASvQ,GAAG,OAAOA,EAAEnJ,UAAUqvB,KAAI,GAAG,YAAO,IAASlmB,IAAIA,EAAE,IAAImmB,EAAED,GAAGpwB,KAAKy1B,cAAcxsB,KAAKiB,IAAIA,GAAGqmB,EAAE9yB,UAAU+zB,KAAK,SAASpB,EAAElmB,EAAEomB,GAAGtwB,KAAK01B,aAAatF,GAAGoB,KAAKtnB,EAAEomB,IAAIC,EAAE9yB,UAAU83B,OAAO,SAASnF,EAAElmB,EAAEomB,GAAGtwB,KAAK01B,aAAatF,GAAGmF,OAAOrrB,EAAEomB,IAAIC,EAAE9yB,UAAU+3B,UAAU,WAAW,IAAI,IAAIpF,EAAE,EAAEA,EAAEpwB,KAAKy1B,cAAcz2B,OAAOoxB,IAAIpwB,KAAKy1B,cAAcrF,GAAGoF,aAAajF,EAAE9yB,UAAUk4B,KAAK,SAASvF,EAAElmB,EAAEomB,GAAG,IAAID,EAAErwB,KAAK01B,aAAatF,GAAGG,EAAE,SAASH,GAAGC,EAAEkF,OAAOrrB,EAAEqmB,GAAGD,EAAEF,IAAIC,EAAEmB,KAAKtnB,EAAEqmB,IAAIH,EAAEryB,QAAQwyB,GAAG,SAASH,EAAElmB,EAAEomB,GAAG,aAAaF,EAAEryB,QAAQ,WAAW,SAASqyB,IAAI,OAAOrhB,KAAK6mB,MAAM,OAAO,EAAE7mB,KAAK8mB,WAAW9vB,SAAS,IAAI+vB,UAAU,GAAG,OAAO,WAAW,OAAO1F,IAAIA,IAAI,IAAIA,IAAI,IAAIA,IAAI,IAAIA,IAAI,IAAIA,IAAIA,IAAIA,KAAlK,IAA2K,SAASA,EAAElmB,EAAEomB,GAAG,aAAa,IAAID,EAAEC,EAAE,IAAIC,EAAED,EAAE,IAAIvxB,EAAEuxB,EAAE,IAAIF,EAAEryB,QAAQ,CAAC+2B,WAAWvE,EAAEzE,OAAO/sB,EAAE2pB,QAAQ2H,IAAI,SAASD,EAAElmB,EAAEomB,GAAG,aAAaF,EAAEryB,QAAQ,WAAW,MAAM,CAACg4B,SAAS,CAAC,aAAa,iBAAiB,WAAW,QAAQ,SAASjH,mBAAmB,KAAKoE,mBAAmB,KAAKQ,oBAAoB,EAAEE,oBAAoB,EAAEH,iBAAgB,EAAGE,iBAAgB,EAAGqC,kBAAiB,EAAGC,aAAY,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGpH,WAAW,EAAEtO,MAAM,aAAa,SAAS2P,EAAElmB,EAAEomB,GAAG,aAAa,IAAID,EAAEC,EAAE,GAAGC,EAAED,EAAE,GAAGvxB,EAAEuxB,EAAE,GAAGF,EAAEryB,QAAQ,SAASqyB,GAAG,IAAIlmB,EAAEnL,EAAEiY,IAAIoZ,GAAGlmB,IAAIA,EAAEoD,MAAMkoB,YAAYjF,EAAEzkB,OAAO5B,EAAEqnB,YAAYhB,EAAEzkB,OAAO5B,EAAEmoB,YAAY9B,EAAEzkB,OAAO5B,EAAEmnB,gBAAgBd,EAAEzkB,OAAO5B,EAAEkoB,gBAAgB/B,EAAEyD,gBAAgB1D,GAAGrxB,EAAE+M,OAAOskB,MAAM,SAASA,EAAElmB,EAAEomB,GAAG,aAAa,SAASD,EAAED,EAAElmB,GAAG,SAASomB,EAAEF,GAAG,OAAOA,EAAEjjB,wBAAwB,IAAIkjB,EAAE,SAASD,GAAGA,EAAE7lB,mBAAmBL,EAAEoD,MAAMkkB,KAAKtnB,EAAEmoB,WAAW,QAAQhC,GAAGnmB,EAAEoD,MAAMkkB,KAAKtnB,EAAEkoB,eAAe,SAAQ,SAAS/B,GAAG,IAAIE,EAAEF,EAAE+F,MAAMl5B,OAAOm5B,YAAY/F,EAAEpmB,EAAEkoB,gBAAgBpmB,IAAI1L,EAAEiwB,EAAErmB,EAAEsoB,cAAc,GAAG,EAAEhC,EAAEJ,EAAE,MAAMA,EAAEgD,UAAU9yB,EAAE4J,EAAEymB,iBAAiB5xB,EAAEqxB,GAAGC,EAAE9lB,qBAAoBL,EAAEoD,MAAMkkB,KAAKtnB,EAAEqnB,WAAW,QAAQlB,GAAGnmB,EAAEoD,MAAMkkB,KAAKtnB,EAAEmnB,eAAe,SAAQ,SAAShB,GAAG,IAAIE,EAAEF,EAAEiG,MAAMp5B,OAAOq5B,YAAYjG,EAAEpmB,EAAEmnB,gBAAgBplB,KAAK3L,EAAEiwB,EAAErmB,EAAEynB,eAAe,GAAG,EAAEnB,EAAEJ,EAAE,OAAOA,EAAEY,WAAW1wB,EAAE4J,EAAEwmB,gBAAgB3xB,EAAEqxB,GAAGC,EAAE9lB,qBAAoB,IAAIgmB,EAAED,EAAE,GAAGvxB,EAAEuxB,EAAE,GAAGE,EAAEF,EAAE,GAAGF,EAAEryB,QAAQ,SAASqyB,GAAGC,EAAED,EAAEG,EAAEvZ,IAAIoZ,MAAM,SAASA,EAAElmB,EAAEomB,GAAG,aAAa,SAASD,EAAED,EAAElmB,GAAG,SAASomB,EAAEA,GAAG,IAAIC,EAAEF,EAAEC,EAAEpmB,EAAEioB,WAAW3B,EAAEzhB,KAAKsX,IAAI,EAAEnc,EAAEmnB,eAAelkB,wBAAwBlB,MAAM/B,EAAEioB,YAAYjoB,EAAEgoB,WAAWhoB,EAAEwnB,iBAAiBxnB,EAAEynB,eAAepB,EAAE,EAAE,EAAEA,EAAEC,EAAEA,EAAED,EAAE,IAAIjwB,EAAEvB,EAAE8yB,MAAM3nB,EAAEynB,gBAAgBznB,EAAE0mB,aAAa1mB,EAAEwmB,iBAAiBxmB,EAAEwmB,eAAexmB,EAAEioB,WAAWjoB,EAAEwnB,kBAAkBxnB,EAAE+mB,yBAAyBR,EAAEL,EAAE,OAAO9vB,GAAG,IAAI+vB,EAAE,KAAKE,EAAE,KAAKjwB,EAAE,SAAS4J,GAAGomB,EAAEpmB,EAAEosB,MAAM/F,GAAG7U,EAAE0U,GAAGlmB,EAAEK,kBAAkBL,EAAES,kBAAkBymB,EAAE,WAAWryB,EAAEi1B,cAAc5D,EAAE,KAAKlmB,EAAEoD,MAAMioB,OAAOrrB,EAAEoS,cAAc,YAAYhc,IAAI4J,EAAEoD,MAAMkkB,KAAKtnB,EAAEqnB,WAAW,aAAY,SAASjB,GAAGC,EAAED,EAAEgG,MAAMjG,EAAEtxB,EAAE8yB,MAAMrB,EAAEvgB,IAAI/F,EAAEqnB,WAAW,SAASrnB,EAAEioB,WAAWpzB,EAAEg1B,eAAe3D,EAAE,KAAKlmB,EAAEoD,MAAMkkB,KAAKtnB,EAAEoS,cAAc,YAAYhc,GAAG4J,EAAEoD,MAAMqoB,KAAKzrB,EAAEoS,cAAc,UAAU8U,GAAGd,EAAE/lB,kBAAkB+lB,EAAE3lB,oBAAmB,SAAS4lB,EAAEH,EAAElmB,GAAG,SAASomB,EAAEA,GAAG,IAAIC,EAAEF,EAAEC,EAAEpmB,EAAE+oB,WAAWzC,EAAEzhB,KAAKsX,IAAI,EAAEnc,EAAEkoB,eAAejlB,wBAAwBnB,KAAK9B,EAAE+oB,YAAY/oB,EAAE8oB,YAAY9oB,EAAEqoB,kBAAkBroB,EAAEsoB,cAAcjC,EAAE,EAAE,EAAEA,EAAEC,EAAEA,EAAED,EAAE,IAAIjwB,EAAEvB,EAAE8yB,MAAM3nB,EAAEsoB,eAAetoB,EAAE2mB,cAAc3mB,EAAEymB,kBAAkBzmB,EAAEymB,gBAAgBzmB,EAAE+oB,WAAW/oB,EAAEqoB,mBAAmB9B,EAAEL,EAAE,MAAM9vB,GAAG,IAAI+vB,EAAE,KAAKE,EAAE,KAAKjwB,EAAE,SAAS4J,GAAGomB,EAAEpmB,EAAEksB,MAAM7F,GAAG7U,EAAE0U,GAAGlmB,EAAEK,kBAAkBL,EAAES,kBAAkBymB,EAAE,WAAWryB,EAAEi1B,cAAc5D,EAAE,KAAKlmB,EAAEoD,MAAMioB,OAAOrrB,EAAEoS,cAAc,YAAYhc,IAAI4J,EAAEoD,MAAMkkB,KAAKtnB,EAAEmoB,WAAW,aAAY,SAAS/B,GAAGC,EAAED,EAAE8F,MAAM/F,EAAEtxB,EAAE8yB,MAAMrB,EAAEvgB,IAAI/F,EAAEmoB,WAAW,QAAQnoB,EAAE+oB,WAAWl0B,EAAEg1B,eAAe3D,EAAE,KAAKlmB,EAAEoD,MAAMkkB,KAAKtnB,EAAEoS,cAAc,YAAYhc,GAAG4J,EAAEoD,MAAMqoB,KAAKzrB,EAAEoS,cAAc,UAAU8U,GAAGd,EAAE/lB,kBAAkB+lB,EAAE3lB,oBAAmB,IAAI5L,EAAEuxB,EAAE,GAAGE,EAAEF,EAAE,GAAGhwB,EAAEgwB,EAAE,GAAG5U,EAAE4U,EAAE,GAAGG,EAAEH,EAAE,GAAGF,EAAEryB,QAAQ,SAASqyB,GAAG,IAAIlmB,EAAE5J,EAAE0W,IAAIoZ,GAAGC,EAAED,EAAElmB,GAAGqmB,EAAEH,EAAElmB,KAAK,SAASkmB,EAAElmB,EAAEomB,GAAG,aAAa,SAASD,EAAED,EAAElmB,GAAG,SAASomB,EAAEA,EAAED,GAAG,IAAIE,EAAEH,EAAEgD,UAAU,GAAG,IAAI9C,EAAE,CAAC,IAAIpmB,EAAEooB,iBAAiB,OAAM,EAAG,GAAG,IAAI/B,GAAGF,EAAE,GAAGE,GAAGrmB,EAAE2mB,cAAc3mB,EAAEymB,iBAAiBN,EAAE,EAAE,OAAOnmB,EAAE8jB,SAASmI,iBAAiB,IAAIp3B,EAAEqxB,EAAEY,WAAW,GAAG,IAAIX,EAAE,CAAC,IAAInmB,EAAEunB,iBAAiB,OAAM,EAAG,GAAG,IAAI1yB,GAAGuxB,EAAE,GAAGvxB,GAAGmL,EAAE0mB,aAAa1mB,EAAEwmB,gBAAgBJ,EAAE,EAAE,OAAOpmB,EAAE8jB,SAASmI,iBAAiB,OAAM,EAAG,IAAI9F,GAAE,EAAGnmB,EAAEoD,MAAMkkB,KAAKpB,EAAE,cAAa,WAAWC,GAAE,KAAKnmB,EAAEoD,MAAMkkB,KAAKpB,EAAE,cAAa,WAAWC,GAAE,KAAK,IAAIG,GAAE,EAAGtmB,EAAEoD,MAAMkkB,KAAKtnB,EAAEoS,cAAc,WAAU,SAASmU,GAAG,KAAKA,EAAE+F,oBAAoB/F,EAAE+F,sBAAsB/F,EAAEgG,kBAAkB,CAAC,IAAIrF,EAAEryB,EAAEmB,QAAQgK,EAAEqnB,WAAW,WAAWxyB,EAAEmB,QAAQgK,EAAEmoB,WAAW,UAAU,GAAGhC,GAAGe,EAAE,CAAC,IAAItb,EAAEtV,SAAS6iB,cAAc7iB,SAAS6iB,cAAcnZ,EAAEoS,cAAc+G,cAAc,GAAGvN,EAAE,CAAC,GAAG,WAAWA,EAAE4gB,QAAQ5gB,EAAEA,EAAE6gB,gBAAgBtT,mBAAmB,KAAKvN,EAAE7B,YAAY6B,EAAEA,EAAE7B,WAAWoP,cAAc,GAAGkN,EAAEsD,WAAW/d,GAAG,OAAO,IAAIxO,EAAE,EAAEsvB,EAAE,EAAE,OAAOnG,EAAE5lB,OAAO,KAAK,GAAGvD,EAAEmpB,EAAEoG,SAAS3sB,EAAE0mB,aAAaH,EAAEqG,QAAQ5sB,EAAEwmB,gBAAgB,GAAG,MAAM,KAAK,GAAGkG,EAAEnG,EAAEoG,QAAQ3sB,EAAE2mB,cAAcJ,EAAEqG,OAAO5sB,EAAEymB,gBAAgB,GAAG,MAAM,KAAK,GAAGrpB,EAAEmpB,EAAEoG,QAAQ3sB,EAAE0mB,aAAaH,EAAEqG,OAAO5sB,EAAEwmB,eAAe,GAAG,MAAM,KAAK,GAAGkG,EAAEnG,EAAEoG,SAAS3sB,EAAE2mB,cAAcJ,EAAEqG,QAAQ5sB,EAAEymB,iBAAiB,GAAG,MAAM,KAAK,GAAGiG,EAAE,GAAG,MAAM,KAAK,GAAGA,EAAEnG,EAAEsG,SAAS,IAAI,GAAG,MAAM,KAAK,GAAGH,GAAG,GAAG,MAAM,KAAK,GAAGA,EAAEnG,EAAEuG,SAAS9sB,EAAE2mB,eAAe3mB,EAAEymB,gBAAgB,MAAM,KAAK,GAAGiG,EAAEnG,EAAEuG,QAAQ5G,EAAEgD,UAAUlpB,EAAEymB,gBAAgB,MAAM,QAAQ,OAAOjV,EAAE0U,EAAE,MAAMA,EAAEgD,UAAUwD,GAAGlb,EAAE0U,EAAE,OAAOA,EAAEY,WAAW1pB,GAAGhH,EAAE8vB,GAAGI,EAAEF,EAAEhpB,EAAEsvB,GAAGpG,GAAGC,EAAE9lB,sBAAqB,IAAI4lB,EAAED,EAAE,GAAGvxB,EAAEuxB,EAAE,GAAGE,EAAEF,EAAE,GAAGhwB,EAAEgwB,EAAE,GAAG5U,EAAE4U,EAAE,GAAGF,EAAEryB,QAAQ,SAASqyB,GAAGC,EAAED,EAAEI,EAAExZ,IAAIoZ,MAAM,SAASA,EAAElmB,EAAEomB,GAAG,aAAa,SAASD,EAAED,EAAElmB,GAAG,SAASomB,EAAEA,EAAED,GAAG,IAAIE,EAAEH,EAAEgD,UAAU,GAAG,IAAI9C,EAAE,CAAC,IAAIpmB,EAAEooB,iBAAiB,OAAM,EAAG,GAAG,IAAI/B,GAAGF,EAAE,GAAGE,GAAGrmB,EAAE2mB,cAAc3mB,EAAEymB,iBAAiBN,EAAE,EAAE,OAAOnmB,EAAE8jB,SAASmI,iBAAiB,IAAIp3B,EAAEqxB,EAAEY,WAAW,GAAG,IAAIX,EAAE,CAAC,IAAInmB,EAAEunB,iBAAiB,OAAM,EAAG,GAAG,IAAI1yB,GAAGuxB,EAAE,GAAGvxB,GAAGmL,EAAE0mB,aAAa1mB,EAAEwmB,gBAAgBJ,EAAE,EAAE,OAAOpmB,EAAE8jB,SAASmI,iBAAiB,OAAM,EAAG,SAAS9F,EAAED,GAAG,IAAIlmB,EAAEkmB,EAAE6G,OAAO3G,GAAG,EAAEF,EAAE8G,OAAO,YAAO,IAAShtB,QAAG,IAASomB,IAAIpmB,GAAG,EAAEkmB,EAAE+G,YAAY,EAAE7G,EAAEF,EAAEgH,YAAY,GAAGhH,EAAEiH,WAAW,IAAIjH,EAAEiH,YAAYntB,GAAG,GAAGomB,GAAG,IAAIpmB,IAAIA,GAAGomB,IAAIA,IAAIpmB,EAAE,EAAEomB,EAAEF,EAAEkH,YAAYlH,EAAE2G,SAAS,EAAEzG,GAAGpmB,GAAG,CAACA,EAAEomB,GAAG,SAASC,EAAErmB,EAAEomB,GAAG,IAAID,EAAED,EAAE/uB,cAAc,2DAA2D,GAAGgvB,EAAE,CAAC,IAAIE,EAAErzB,OAAO+f,iBAAiBoT,GAAG,IAAI,CAACE,EAAEgH,SAAShH,EAAEiH,UAAUjH,EAAEkH,WAAWnC,KAAK,IAAIoC,MAAM,iBAAiB,OAAM,EAAG,IAAI34B,EAAEsxB,EAAEkD,aAAalD,EAAEiD,aAAa,GAAGv0B,EAAE,KAAK,IAAIsxB,EAAE+C,WAAW9C,EAAE,GAAGD,EAAE+C,YAAYr0B,GAAGuxB,EAAE,GAAG,OAAM,EAAG,IAAIE,EAAEH,EAAEW,WAAWX,EAAEc,YAAY,GAAGX,EAAE,KAAK,IAAIH,EAAEW,YAAY9mB,EAAE,GAAGmmB,EAAEW,aAAaR,GAAGtmB,EAAE,GAAG,OAAM,EAAG,OAAM,EAAG,SAAS5J,EAAEA,GAAG,IAAImwB,EAAEJ,EAAE/vB,GAAG8wB,EAAEX,EAAE,GAAG3a,EAAE2a,EAAE,GAAGF,EAAEa,EAAEtb,KAAK4F,GAAE,EAAGxR,EAAE8jB,SAASkI,iBAAiBhsB,EAAEooB,mBAAmBpoB,EAAEunB,kBAAoBjB,EAAEJ,EAAE,MAANta,EAAYsa,EAAEgD,UAAUtd,EAAE5L,EAAE8jB,SAASe,WAAsBqB,EAAEgD,UAAUhC,EAAElnB,EAAE8jB,SAASe,YAAYrT,GAAE,GAAIxR,EAAEunB,mBAAmBvnB,EAAEooB,mBAAqB9B,EAAEJ,EAAE,OAANgB,EAAahB,EAAEY,WAAWI,EAAElnB,EAAE8jB,SAASe,WAAuBqB,EAAEY,WAAWlb,EAAE5L,EAAE8jB,SAASe,YAAYrT,GAAE,IAAK8U,EAAEJ,EAAE,MAAMA,EAAEgD,UAAUtd,EAAE5L,EAAE8jB,SAASe,YAAYyB,EAAEJ,EAAE,OAAOA,EAAEY,WAAWI,EAAElnB,EAAE8jB,SAASe,aAAahwB,EAAEqxB,IAAI1U,EAAEA,GAAG4U,EAAEc,EAAEtb,MAAMxV,EAAEiK,kBAAkBjK,EAAEqK,mBAAmB,IAAI+Q,GAAE,OAAG,IAASxe,OAAOy6B,QAAQztB,EAAEoD,MAAMkkB,KAAKpB,EAAE,QAAQ9vB,QAAG,IAASpD,OAAO06B,cAAc1tB,EAAEoD,MAAMkkB,KAAKpB,EAAE,aAAa9vB,GAAG,IAAIiwB,EAAED,EAAE,GAAGvxB,EAAEuxB,EAAE,GAAGE,EAAEF,EAAE,GAAGF,EAAEryB,QAAQ,SAASqyB,GAAGC,EAAED,EAAEG,EAAEvZ,IAAIoZ,MAAM,SAASA,EAAElmB,EAAEomB,GAAG,aAAa,SAASD,EAAED,EAAElmB,GAAGA,EAAEoD,MAAMkkB,KAAKpB,EAAE,UAAS,WAAWrxB,EAAEqxB,MAAK,IAAIG,EAAED,EAAE,GAAGvxB,EAAEuxB,EAAE,GAAGF,EAAEryB,QAAQ,SAASqyB,GAAGC,EAAED,EAAEG,EAAEvZ,IAAIoZ,MAAM,SAASA,EAAElmB,EAAEomB,GAAG,aAAa,SAASD,EAAED,EAAElmB,GAAG,SAASomB,IAAI,IAAIF,EAAElzB,OAAO26B,aAAa36B,OAAO26B,eAAer3B,SAASq3B,aAAar3B,SAASq3B,eAAe,GAAG,OAAO,IAAIzH,EAAErqB,WAAW/G,OAAO,KAAKoxB,EAAE0H,WAAW,GAAGC,wBAAwB,SAAS1H,IAAII,IAAIA,EAAEhlB,aAAY,WAAe1M,EAAEiY,IAAIoZ,IAAgC9vB,EAAE8vB,EAAE,MAAMA,EAAEgD,UAAUhC,EAAEplB,KAAK1L,EAAE8vB,EAAE,OAAOA,EAAEY,WAAWI,EAAEnlB,MAAMukB,EAAEJ,IAAhF5kB,cAAcilB,KAAsE,KAAK,SAAS/U,IAAI+U,IAAIjlB,cAAcilB,GAAGA,EAAE,MAAMF,EAAEyD,cAAc5D,GAAG,IAAIK,EAAE,KAAKW,EAAE,CAACplB,IAAI,EAAEC,KAAK,GAAG6J,GAAE,EAAG5L,EAAEoD,MAAMkkB,KAAKtnB,EAAEoS,cAAc,mBAAkB,WAAW8T,EAAE1vB,SAAS4vB,KAAKxa,GAAE,GAAIA,GAAE,EAAG4F,QAAOxR,EAAEoD,MAAMkkB,KAAKt0B,OAAO,WAAU,WAAW4Y,IAAIA,GAAE,EAAG4F,QAAOxR,EAAEoD,MAAMkkB,KAAKt0B,OAAO,SAAQ,WAAW4Y,IAAIA,GAAE,EAAG4F,QAAOxR,EAAEoD,MAAMkkB,KAAKt0B,OAAO,aAAY,SAASgN,GAAG,GAAG4L,EAAE,CAAC,IAAIwa,EAAE,CAAChzB,EAAE4M,EAAEosB,MAAM0B,EAAE9tB,EAAEksB,OAAOr3B,EAAE,CAACkN,KAAKmkB,EAAEjkB,WAAWe,MAAMkjB,EAAEjkB,WAAWikB,EAAEzkB,YAAYK,IAAIokB,EAAElkB,UAAUuR,OAAO2S,EAAElkB,UAAUkkB,EAAEnX,cAAcqX,EAAEhzB,EAAEyB,EAAEkN,KAAK,GAAGmlB,EAAEnlB,MAAM,EAAEskB,EAAEwD,eAAe3D,EAAE,MAAME,EAAEhzB,EAAEyB,EAAEmO,MAAM,GAAGkkB,EAAEnlB,KAAK,EAAEskB,EAAEwD,eAAe3D,EAAE,MAAMgB,EAAEnlB,KAAK,EAAEqkB,EAAE0H,EAAEj5B,EAAEiN,IAAI,GAAGolB,EAAEplB,IAAIjN,EAAEiN,IAAI,EAAEskB,EAAE0H,EAAE,GAAG,GAAG,GAAGzH,EAAEwD,eAAe3D,EAAE,MAAME,EAAE0H,EAAEj5B,EAAE0e,OAAO,GAAG2T,EAAEplB,IAAIskB,EAAE0H,EAAEj5B,EAAE0e,OAAO,EAAE,EAAE,EAAE,GAAG8S,EAAEwD,eAAe3D,EAAE,MAAMgB,EAAEplB,IAAI,EAAE,IAAIolB,EAAEplB,KAAK,IAAIolB,EAAEnlB,KAAKyP,IAAI2U,QAAO,IAAIE,EAAED,EAAE,GAAGvxB,EAAEuxB,EAAE,GAAGE,EAAEF,EAAE,GAAGhwB,EAAEgwB,EAAE,GAAGF,EAAEryB,QAAQ,SAASqyB,GAAGC,EAAED,EAAErxB,EAAEiY,IAAIoZ,MAAM,SAASA,EAAElmB,EAAEomB,GAAG,aAAa,SAASD,EAAED,EAAElmB,EAAEomB,EAAED,GAAG,SAASE,EAAED,EAAED,GAAG,IAAIE,EAAEH,EAAEgD,UAAUr0B,EAAEqxB,EAAEY,WAAWR,EAAEzhB,KAAKkpB,IAAI3H,GAAGhwB,EAAEyO,KAAKkpB,IAAI5H,GAAG,GAAG/vB,EAAEkwB,GAAG,GAAGH,EAAE,GAAGE,IAAIrmB,EAAE2mB,cAAc3mB,EAAEymB,iBAAiBN,EAAE,GAAG,IAAIE,EAAE,OAAOrmB,EAAE8jB,SAASgI,sBAAsB,GAAGxF,EAAElwB,IAAIgwB,EAAE,GAAGvxB,IAAImL,EAAE0mB,aAAa1mB,EAAEwmB,gBAAgBJ,EAAE,GAAG,IAAIvxB,GAAG,OAAOmL,EAAE8jB,SAASgI,iBAAiB,OAAM,EAAG,SAASta,EAAExR,EAAEomB,GAAGhwB,EAAE8vB,EAAE,MAAMA,EAAEgD,UAAU9C,GAAGhwB,EAAE8vB,EAAE,OAAOA,EAAEY,WAAW9mB,GAAGsmB,EAAEJ,GAAG,SAASK,IAAIyH,GAAE,EAAG,SAAS9G,IAAI8G,GAAE,EAAG,SAASpiB,EAAEsa,GAAG,OAAOA,EAAE+H,cAAc/H,EAAE+H,cAAc,GAAG/H,EAAE,SAAS9oB,EAAE8oB,GAAG,QAAQA,EAAEgI,aAAa,QAAQhI,EAAEgI,aAAa,IAAIhI,EAAEiI,cAAcjI,EAAE+H,eAAe,IAAI/H,EAAE+H,cAAcn5B,YAAYoxB,EAAEgI,aAAa,UAAUhI,EAAEgI,aAAahI,EAAEgI,cAAchI,EAAEkI,uBAAuB,SAAS1B,EAAExG,GAAG,GAAG9oB,EAAE8oB,GAAG,CAACmI,GAAE,EAAG,IAAIruB,EAAE4L,EAAEsa,GAAGzU,EAAE2a,MAAMpsB,EAAEosB,MAAM3a,EAAEya,MAAMlsB,EAAEksB,MAAMoC,GAAE,IAAKz2B,MAAM4F,UAAU,OAAOqwB,GAAGxsB,cAAcwsB,GAAG5H,EAAE7lB,mBAAmB,SAAS4J,EAAEic,GAAG,IAAImI,GAAGruB,EAAE8jB,SAASgI,kBAAkBY,EAAExG,IAAI8H,GAAGK,GAAGjxB,EAAE8oB,GAAG,CAAC,IAAIE,EAAExa,EAAEsa,GAAGC,EAAE,CAACiG,MAAMhG,EAAEgG,MAAMF,MAAM9F,EAAE8F,OAAOr3B,EAAEsxB,EAAEiG,MAAM3a,EAAE2a,MAAM9F,EAAEH,EAAE+F,MAAMza,EAAEya,MAAM1a,EAAE3c,EAAEyxB,GAAG7U,EAAE0U,EAAE,IAAI/vB,GAAE,IAAKyB,MAAM4F,UAAU8oB,EAAEnwB,EAAEk4B,EAAE/H,EAAE,IAAIlqB,EAAEjJ,EAAEyB,EAAE0xB,EAAElqB,EAAEyxB,EAAExH,EAAEC,EAAE+H,EAAEl4B,GAAGiwB,EAAExxB,EAAEyxB,KAAKJ,EAAE7lB,kBAAkB6lB,EAAEzlB,mBAAmB,SAASmP,KAAKoe,GAAGK,IAAIA,GAAE,EAAGruB,EAAE8jB,SAASiI,cAAczqB,cAAcwsB,GAAGA,EAAEvsB,aAAY,WAAW,OAAO1M,EAAEiY,IAAIoZ,KAAK7pB,EAAEjJ,GAAGiJ,EAAEyxB,GAAGjpB,KAAKkpB,IAAI1xB,EAAEjJ,GAAG,KAAKyR,KAAKkpB,IAAI1xB,EAAEyxB,GAAG,SAASxsB,cAAcwsB,IAAItc,EAAE,GAAGnV,EAAEjJ,EAAE,GAAGiJ,EAAEyxB,GAAGzxB,EAAEjJ,GAAG,QAAQiJ,EAAEyxB,GAAG,UAAUxsB,cAAcwsB,KAAI,MAAM,IAAIrc,EAAE,GAAG6c,EAAE,EAAEjyB,EAAE,GAAGyxB,EAAE,KAAKE,GAAE,EAAGK,GAAE,EAAGjI,GAAGpmB,EAAEoD,MAAMkkB,KAAKt0B,OAAO,aAAauzB,GAAGvmB,EAAEoD,MAAMkkB,KAAKt0B,OAAO,WAAWk0B,GAAGlnB,EAAEoD,MAAMkkB,KAAKpB,EAAE,aAAawG,GAAG1sB,EAAEoD,MAAMkkB,KAAKpB,EAAE,YAAYjc,GAAGjK,EAAEoD,MAAMkkB,KAAKpB,EAAE,WAAWtW,IAAIuW,IAAInzB,OAAOu7B,cAAcvuB,EAAEoD,MAAMkkB,KAAKt0B,OAAO,cAAcuzB,GAAGvmB,EAAEoD,MAAMkkB,KAAKt0B,OAAO,YAAYk0B,GAAGlnB,EAAEoD,MAAMkkB,KAAKpB,EAAE,cAAcwG,GAAG1sB,EAAEoD,MAAMkkB,KAAKpB,EAAE,cAAcjc,GAAGjK,EAAEoD,MAAMkkB,KAAKpB,EAAE,YAAYtW,IAAI5c,OAAOw7B,iBAAiBxuB,EAAEoD,MAAMkkB,KAAKt0B,OAAO,gBAAgBuzB,GAAGvmB,EAAEoD,MAAMkkB,KAAKt0B,OAAO,cAAck0B,GAAGlnB,EAAEoD,MAAMkkB,KAAKpB,EAAE,gBAAgBwG,GAAG1sB,EAAEoD,MAAMkkB,KAAKpB,EAAE,gBAAgBjc,GAAGjK,EAAEoD,MAAMkkB,KAAKpB,EAAE,cAActW,KAAK,IAAIyW,EAAED,EAAE,GAAGvxB,EAAEuxB,EAAE,GAAGE,EAAEF,EAAE,GAAGhwB,EAAEgwB,EAAE,GAAGF,EAAEryB,QAAQ,SAASqyB,IAAMG,EAAE0D,IAAI9I,eAAeoF,EAAE0D,IAAIG,oBAAmB/D,EAAED,EAAErxB,EAAEiY,IAAIoZ,GAAGG,EAAE0D,IAAI9I,cAAcoF,EAAE0D,IAAIG,qBAAsB,SAAShE,EAAElmB,EAAEomB,GAAG,aAAa,IAAID,EAAEC,EAAE,GAAGC,EAAED,EAAE,GAAGvxB,EAAE,CAAC,aAAauxB,EAAE,IAAI,iBAAiBA,EAAE,IAAIqI,SAASrI,EAAE,IAAIsI,MAAMtI,EAAE,IAAI5P,MAAM4P,EAAE,IAAIuI,UAAUvI,EAAE,KAAKE,EAAEF,EAAE,IAAIF,EAAEryB,QAAQ,SAASqyB,EAAElmB,GAAGkmB,EAAE9uB,UAAUC,IAAI,MAAM,IAAI+uB,EAAED,EAAE9uB,IAAI6uB,EAAE,iBAAiBlmB,EAAEA,EAAE,IAAIkmB,EAAE9uB,UAAUC,IAAI,aAAa+uB,EAAEtC,SAASvN,OAAO6P,EAAEtC,SAAS+H,SAASl2B,SAAQ,SAASqK,GAAGnL,EAAEmL,GAAGkmB,MAAKI,EAAEJ,GAAGG,EAAEH,KAAK,SAASA,EAAElmB,EAAEomB,GAAG,aAAa,IAAID,EAAEC,EAAE,GAAGC,EAAED,EAAE,GAAGvxB,EAAEuxB,EAAE,GAAGE,EAAEF,EAAE,GAAGhwB,EAAEgwB,EAAE,GAAGF,EAAEryB,QAAQ,SAASqyB,GAAG,IAAIlmB,EAAEnL,EAAEiY,IAAIoZ,GAAGlmB,IAAIA,EAAE+mB,yBAAyB/mB,EAAE6mB,iBAAiBX,EAAEc,YAAYd,EAAEe,YAAY,EAAEZ,EAAEtgB,IAAI/F,EAAEmnB,eAAe,UAAU,SAASd,EAAEtgB,IAAI/F,EAAEkoB,eAAe,UAAU,SAASloB,EAAE+nB,iBAAiB5B,EAAEwB,MAAMtB,EAAEtgB,IAAI/F,EAAEmnB,eAAe,eAAehB,EAAEwB,MAAMtB,EAAEtgB,IAAI/F,EAAEmnB,eAAe,gBAAgBnnB,EAAE6oB,kBAAkB1C,EAAEwB,MAAMtB,EAAEtgB,IAAI/F,EAAEkoB,eAAe,cAAc/B,EAAEwB,MAAMtB,EAAEtgB,IAAI/F,EAAEkoB,eAAe,iBAAiB7B,EAAEtgB,IAAI/F,EAAEmnB,eAAe,UAAU,QAAQd,EAAEtgB,IAAI/F,EAAEkoB,eAAe,UAAU,QAAQ5B,EAAEJ,GAAG9vB,EAAE8vB,EAAE,MAAMA,EAAEgD,WAAW9yB,EAAE8vB,EAAE,OAAOA,EAAEY,YAAYT,EAAEtgB,IAAI/F,EAAEmnB,eAAe,UAAU,IAAId,EAAEtgB,IAAI/F,EAAEkoB,eAAe,UAAU,OAAO,SAAShC,EAAElmB,GAAGkmB,EAAEryB,QAAQ,SAASqyB,EAAElmB,EAAEomB,EAAED,GAAG,IAAIE,EAAExxB,EAAEqxB,EAAEA,GAAG,GAAGI,SAASJ,EAAEvB,QAAQ,WAAW2B,GAAG,aAAaA,IAAID,EAAEH,EAAErxB,EAAEqxB,EAAEvB,SAAS,IAAIvuB,EAAE,mBAAmBvB,EAAEA,EAAEiC,QAAQjC,EAAE,GAAGmL,IAAI5J,EAAEkP,OAAOtF,EAAEsF,OAAOlP,EAAE+S,gBAAgBnJ,EAAEmJ,iBAAiBid,IAAIhwB,EAAEkT,SAAS8c,GAAGD,EAAE,CAAC,IAAI3U,EAAEpb,EAAE4Q,WAAW5Q,EAAE4Q,SAAS,IAAI1T,OAAOkgB,KAAK2S,GAAGxwB,SAAQ,SAASuwB,GAAG,IAAIlmB,EAAEmmB,EAAED,GAAG1U,EAAE0U,GAAG,WAAW,OAAOlmB,MAAK,MAAM,CAAC4uB,SAASvI,EAAExyB,QAAQgB,EAAEiC,QAAQV,KAAK,SAAS8vB,EAAElmB,GAAGkmB,EAAEryB,QAAQ,CAACyR,OAAO,WAAW,IAAI4gB,EAAEpwB,KAAKkK,EAAEkmB,EAAEzb,eAAe,OAAOyb,EAAEvb,MAAMD,IAAI1K,GAAGkmB,EAAE2I,OAAOrE,QAAQ,CAACsE,IAAI,UAAUtgB,YAAY,eAAeP,GAAG,CAAC,aAAa,SAASjO,GAAGkmB,EAAEtE,OAAO5hB,IAAI,cAAckmB,EAAEuE,YAAY,cAAcvE,EAAEuE,YAAY,eAAevE,EAAEuE,YAAY,iBAAiBvE,EAAEuE,YAAY,iBAAiBvE,EAAEuE,YAAY,kBAAkBvE,EAAEuE,YAAY,mBAAmBvE,EAAEuE,YAAY,iBAAiBvE,EAAEuE,YAAY,mBAAmBvE,EAAEuE,YAAY,iBAAiBvE,EAAEuE,cAAc,CAACvE,EAAE6I,GAAG,YAAY,IAAI5lB,gBAAgB,KAAK,SAAS+c,EAAElmB,GAAG,SAASomB,EAAEF,EAAElmB,GAAG,IAAI,IAAIomB,EAAE,EAAEA,EAAEF,EAAEpxB,OAAOsxB,IAAI,CAAC,IAAID,EAAED,EAAEE,GAAGC,EAAEa,EAAEf,EAAEnL,IAAI,GAAGqL,EAAE,CAACA,EAAE2I,OAAO,IAAI,IAAIn6B,EAAE,EAAEA,EAAEwxB,EAAE4I,MAAMn6B,OAAOD,IAAIwxB,EAAE4I,MAAMp6B,GAAGsxB,EAAE8I,MAAMp6B,IAAI,KAAKA,EAAEsxB,EAAE8I,MAAMn6B,OAAOD,IAAIwxB,EAAE4I,MAAMlwB,KAAK3I,EAAE+vB,EAAE8I,MAAMp6B,GAAGmL,QAAQ,CAAK,IAAIsmB,EAAE,GAAV,IAAazxB,EAAE,EAAEA,EAAEsxB,EAAE8I,MAAMn6B,OAAOD,IAAIyxB,EAAEvnB,KAAK3I,EAAE+vB,EAAE8I,MAAMp6B,GAAGmL,IAAIknB,EAAEf,EAAEnL,IAAI,CAACA,GAAGmL,EAAEnL,GAAGgU,KAAK,EAAEC,MAAM3I,KAAK,SAASH,EAAED,GAAG,IAAI,IAAIlmB,EAAE,GAAGomB,EAAE,GAAGD,EAAE,EAAEA,EAAED,EAAEpxB,OAAOqxB,IAAI,CAAC,IAAIE,EAAEH,EAAEC,GAAGtxB,EAAEwxB,EAAE,GAAGC,EAAED,EAAE,GAAGjwB,EAAEiwB,EAAE,GAAG7U,EAAE6U,EAAE,GAAGE,EAAE,CAACxgB,IAAIugB,EAAE4I,MAAM94B,EAAE+4B,UAAU3d,GAAG4U,EAAEvxB,GAAGuxB,EAAEvxB,GAAGo6B,MAAMlwB,KAAKwnB,GAAGvmB,EAAEjB,KAAKqnB,EAAEvxB,GAAG,CAACmmB,GAAGnmB,EAAEo6B,MAAM,CAAC1I,KAAK,OAAOvmB,EAAE,SAASqmB,EAAEH,EAAElmB,GAAG,IAAIomB,EAAEsG,IAAIvG,EAAE1U,EAAEA,EAAE3c,OAAO,GAAG,GAAG,QAAQoxB,EAAEjgB,SAASkgB,EAAEA,EAAEiJ,YAAYhJ,EAAEhgB,aAAapG,EAAEmmB,EAAEiJ,aAAahJ,EAAE1qB,YAAYsE,GAAGomB,EAAEhgB,aAAapG,EAAEomB,EAAE9rB,YAAYmX,EAAE1S,KAAKiB,OAAO,CAAC,GAAG,WAAWkmB,EAAEjgB,SAAS,MAAM,IAAI/O,MAAM,sEAAsEkvB,EAAE1qB,YAAYsE,IAAI,SAASnL,EAAEqxB,GAAGA,EAAExvB,WAAW6D,YAAY2rB,GAAG,IAAIlmB,EAAEyR,EAAExB,QAAQiW,GAAGlmB,GAAG,GAAGyR,EAAEvF,OAAOlM,EAAE,GAAG,SAASsmB,EAAEJ,GAAG,IAAIlmB,EAAE1J,SAAS+E,cAAc,SAAS,OAAO2E,EAAEqD,KAAK,WAAWgjB,EAAEH,EAAElmB,GAAGA,EAAE,SAAS5J,EAAE8vB,EAAElmB,GAAG,IAAIomB,EAAED,EAAEE,EAAE,GAAGrmB,EAAEqvB,UAAU,CAAC,IAAIj5B,EAAEwZ,IAAIwW,EAAEnc,IAAIA,EAAEqc,EAAEtmB,IAAImmB,EAAE3U,EAAE8V,KAAK,KAAKlB,EAAEhwB,GAAE,GAAIiwB,EAAE7U,EAAE8V,KAAK,KAAKlB,EAAEhwB,GAAE,QAASgwB,EAAEE,EAAEtmB,GAAGmmB,EAAEI,EAAEe,KAAK,KAAKlB,GAAGC,EAAE,WAAWxxB,EAAEuxB,IAAI,OAAOD,EAAED,GAAG,SAASlmB,GAAG,GAAGA,EAAE,CAAC,GAAGA,EAAE+F,MAAMmgB,EAAEngB,KAAK/F,EAAEkvB,QAAQhJ,EAAEgJ,OAAOlvB,EAAEmvB,YAAYjJ,EAAEiJ,UAAU,OAAOhJ,EAAED,EAAElmB,QAAQqmB,KAAK,SAAS7U,EAAE0U,EAAElmB,EAAEomB,EAAED,GAAG,IAAIE,EAAED,EAAE,GAAGD,EAAEpgB,IAAI,GAAGmgB,EAAE7f,WAAW6f,EAAE7f,WAAWC,QAAQgoB,EAAEtuB,EAAEqmB,OAAO,CAAC,IAAIxxB,EAAEyB,SAASiQ,eAAe8f,GAAGC,EAAEJ,EAAEoE,WAAWhE,EAAEtmB,IAAIkmB,EAAE3rB,YAAY+rB,EAAEtmB,IAAIsmB,EAAExxB,OAAOoxB,EAAE9f,aAAavR,EAAEyxB,EAAEtmB,IAAIkmB,EAAExqB,YAAY7G,IAAI,SAAS0xB,EAAEL,EAAElmB,GAAG,IAAIomB,EAAEpmB,EAAE+F,IAAIogB,EAAEnmB,EAAEkvB,MAAM7I,EAAErmB,EAAEmvB,UAAU,GAAGhJ,GAAGD,EAAElpB,aAAa,QAAQmpB,GAAGE,IAAID,GAAG,mBAAmBC,EAAEiJ,QAAQ,GAAG,MAAMlJ,GAAG,uDAAuDmJ,KAAKC,SAASC,mBAAmB/X,KAAKgY,UAAUrJ,MAAM,OAAOH,EAAE7f,WAAW6f,EAAE7f,WAAWC,QAAQ8f,MAAM,CAAC,KAAKF,EAAE5rB,YAAY4rB,EAAE3rB,YAAY2rB,EAAE5rB,YAAY4rB,EAAExqB,YAAYpF,SAASiQ,eAAe6f,KAAK,IAAIc,EAAE,GAAGtb,EAAE,SAASsa,GAAG,IAAIlmB,EAAE,OAAO,WAAW,YAAO,IAASA,IAAIA,EAAEkmB,EAAEtX,MAAM9Y,KAAKiB,YAAYiJ,IAAI5C,EAAEwO,GAAE,WAAW,MAAM,eAAeiO,KAAK7mB,OAAO0mB,UAAUC,UAAUgW,kBAAiBjD,EAAE9gB,GAAE,WAAW,OAAOtV,SAAS4P,MAAM5P,SAAS6P,qBAAqB,QAAQ,MAAK8D,EAAE,KAAK2F,EAAE,EAAE6B,EAAE,GAAGyU,EAAEryB,QAAQ,SAASqyB,EAAElmB,GAAG,GAAG,oBAAoB4vB,OAAOA,OAAO,iBAAiBt5B,SAAS,MAAM,IAAIY,MAAM,gEAAgE8I,EAAEA,GAAG,QAAG,IAASA,EAAEqvB,YAAYrvB,EAAEqvB,UAAUjyB,UAAK,IAAS4C,EAAEiG,WAAWjG,EAAEiG,SAAS,UAAU,IAAIogB,EAAEF,EAAED,GAAG,OAAOE,EAAEC,EAAErmB,GAAG,SAASkmB,GAAG,IAAI,IAAIrxB,EAAE,GAAGyxB,EAAE,EAAEA,EAAED,EAAEvxB,OAAOwxB,IAAI,CAAC,IAAIlwB,EAAEiwB,EAAEC,GAAG9U,EAAE0V,EAAE9wB,EAAE4kB,IAAIxJ,EAAEwd,OAAOn6B,EAAEkK,KAAKyS,GAAM0U,GAAGE,EAAED,EAAED,GAAGlmB,GAAG,IAAQsmB,EAAE,EAAEA,EAAEzxB,EAAEC,OAAOwxB,IAAI,CAAK9U,EAAE3c,EAAEyxB,GAAG,GAAG,IAAI9U,EAAEwd,KAAK,CAAC,IAAI,IAAIzI,EAAE,EAAEA,EAAE/U,EAAEyd,MAAMn6B,OAAOyxB,IAAI/U,EAAEyd,MAAM1I,YAAYW,EAAE1V,EAAEwJ,QAAQ,IAAIsT,EAAE,WAAW,IAAIpI,EAAE,GAAG,OAAO,SAASlmB,EAAEomB,GAAG,OAAOF,EAAElmB,GAAGomB,EAAEF,EAAE3V,OAAOqB,SAASwZ,KAAK,OAA9E,IAAyF,SAASlF,EAAElmB,EAAEomB,GAAG,IAAID,EAAEC,EAAE,GAAG,iBAAiBD,IAAIA,EAAE,CAAC,CAACD,EAAErxB,EAAEsxB,EAAE,MAAMC,EAAE,GAAFA,CAAMD,EAAE,IAAIA,EAAE0J,SAAS3J,EAAEryB,QAAQsyB,EAAE0J,Y,kCCUx85B,OACb7K,oBAAoB,ICFP,G,UAAA,CACb5Z,SADa,SACJC,EAAOC,GACdD,EAAM2Z,oBAAoBzZ,QAAQD,IAEpCwkB,wBAJa,SAIWzkB,EAAO2Z,GAC7B3Z,EAAM2Z,oBAAsBA,GAE9B+K,yBAPa,SAOY1kB,EAAO2kB,GAC9B,IAAMC,EAAyB5kB,EAAM2Z,oBAAoBrZ,WAAU,SAACC,GAAD,OAAOA,EAAEC,IAAMmkB,EAAkBnkB,MACpGvY,OAAOwY,OAAOT,EAAM2Z,oBAAoBiL,GAAyBD,IAErEjkB,YAXe,SAWHV,EAAOW,GACf,IAAMC,EAAYZ,EAAM2Z,oBAAoBrZ,WAAU,SAACC,GAAD,OAAOA,EAAEC,IAAMG,KACrEX,EAAM2Z,oBAAoB9Y,OAAOD,EAAW,M,YCXjC,GACbE,QADa,WACOb,GAAM,IAAhBc,EAAgB,EAAhBA,OACR,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMC,KAAK,6CAA8CnB,GACtDpR,MAAK,SAACwS,GACLN,EAAO,WAAY9Y,OAAOwY,OAAOR,EAAM,CAAEO,GAAIa,EAAShG,KAAKmF,MAC3DS,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCC,mBAZa,YAYkB,IAAVT,EAAU,EAAVA,OACnB,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMM,IAAI,gCACP5S,MAAK,SAACwS,GACLN,EAAO,0BAA2BM,EAAShG,MAC3C4F,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCG,WAvBa,WAuBUzB,GAAM,IAAhBc,EAAgB,EAAhBA,OACX,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMQ,IAAI,oDAAoD1B,EAAKO,GAAIP,GACpEpR,MAAK,SAACwS,GACLN,EAAO,2BAA4Bd,GACnCgB,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCK,YAlCa,WAkCWC,GAAQ,IAAlBd,EAAkB,EAAlBA,OACZ,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMC,KAAK,6CAA8CS,GACtDhT,MAAK,SAACwS,GACLN,EAAO,2BAA4BM,EAAShG,MAC5C4F,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCO,WA7Ca,WA6CU7B,GAAM,IAAhBc,EAAgB,EAAhBA,OACX,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMY,OAAO,oDAAoD9B,EAAKO,IACnE3R,MAAK,SAACwS,GACLN,EAAO,cAAed,EAAKO,IAC3BS,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,WCrDpB,KCKA,QACdS,YAAY,EACThC,MAAOA,EACPiC,UAAWA,EACXC,QAASA,EACTC,QAASA,I,kCCVE,OACbuW,iBAAiB,ICFJ,G,UAAA,CACb3Y,SADa,SACJC,EAAOC,GACdD,EAAM0Y,iBAAiBxY,QAAQD,IAEjC4kB,qBAJa,SAIQ7kB,EAAO0Y,GAC1B1Y,EAAM0Y,iBAAmBA,GAE3BoM,sBAPa,SAOS9kB,EAAO+kB,GAC3B,IAAMC,EAAsBhlB,EAAM0Y,iBAAiBpY,WAAU,SAACC,GAAD,OAAOA,EAAEC,IAAMukB,EAAevkB,MAC3FvY,OAAOwY,OAAOT,EAAM0Y,iBAAiBsM,GAAsBD,IAE/DrkB,YAXe,SAWHV,EAAOW,GACf,IAAMC,EAAYZ,EAAM0Y,iBAAiBpY,WAAU,SAACC,GAAD,OAAOA,EAAEC,IAAMG,KAClEX,EAAM0Y,iBAAiB7X,OAAOD,EAAW,M,YCX9B,GACbE,QADa,WACOb,GAAM,IAAhBc,EAAgB,EAAhBA,OACR,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMC,KAAK,uCAAwCnB,GAChDpR,MAAK,SAACwS,GACLN,EAAO,WAAY9Y,OAAOwY,OAAOR,EAAM,CAAEO,GAAIa,EAAShG,KAAKmF,MAC3DS,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCC,mBAZa,YAYkB,IAAVT,EAAU,EAAVA,OACnB,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMM,IAAI,6BACP5S,MAAK,SAACwS,GACLN,EAAO,uBAAwBM,EAAShG,MACxC4F,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCG,WAvBa,WAuBUzB,GAAM,IAAhBc,EAAgB,EAAhBA,OACX,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMQ,IAAI,8CAA8C1B,EAAKO,GAAIP,GAC9DpR,MAAK,SAACwS,GACLN,EAAO,wBAAyBd,GAChCgB,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCK,YAlCa,WAkCWC,GAAQ,IAAlBd,EAAkB,EAAlBA,OACZ,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMC,KAAK,uCAAwCS,GAChDhT,MAAK,SAACwS,GACLN,EAAO,wBAAyBM,EAAShG,MACzC4F,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,UAIjCO,WA7Ca,WA6CU7B,GAAM,IAAhBc,EAAgB,EAAhBA,OACX,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAMY,OAAO,8CAA8C9B,EAAKO,IAC7D3R,MAAK,SAACwS,GACLN,EAAO,cAAed,EAAKO,IAC3BS,EAAQI,MAETC,OAAM,SAACC,GAAYL,EAAOK,WCrDpB,KCKA,QACdS,YAAY,EACThC,MAAOA,EACPiC,UAAWA,EACXC,QAASA,EACTC,QAASA,I,gFCpBb,W,mCCAA;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAIgM,EAA8B,qBAAXxmB,QAA8C,qBAAbsD,UAAiD,qBAAdojB,UAEvF4W,EAAkB,WAEpB,IADA,IAAIC,EAAwB,CAAC,OAAQ,UAAW,WACvC17B,EAAI,EAAGA,EAAI07B,EAAsBz7B,OAAQD,GAAK,EACrD,GAAI2kB,GAAaE,UAAUC,UAAU1J,QAAQsgB,EAAsB17B,KAAO,EACxE,OAAO,EAGX,OAAO,EAPa,GAUtB,SAAS27B,EAAkB78B,GACzB,IAAI88B,GAAS,EACb,OAAO,WACDA,IAGJA,GAAS,EACTz9B,OAAOqZ,QAAQC,UAAUpS,MAAK,WAC5Bu2B,GAAS,EACT98B,SAKN,SAAS+8B,EAAa/8B,GACpB,IAAIg9B,GAAY,EAChB,OAAO,WACAA,IACHA,GAAY,EACZ11B,YAAW,WACT01B,GAAY,EACZh9B,MACC28B,KAKT,IAAIM,EAAqBpX,GAAaxmB,OAAOqZ,QAWzCwE,EAAW+f,EAAqBJ,EAAoBE,EASxD,SAASG,EAAWC,GAClB,IAAIC,EAAU,GACd,OAAOD,GAA8D,sBAA3CC,EAAQl1B,SAASpI,KAAKq9B,GAUlD,SAASE,EAAyBn6B,EAASyZ,GACzC,GAAyB,IAArBzZ,EAAQF,SACV,MAAO,GAGT,IAAI3D,EAAS6D,EAAQub,cAAc6e,YAC/BlrB,EAAM/S,EAAO+f,iBAAiBlc,EAAS,MAC3C,OAAOyZ,EAAWvK,EAAIuK,GAAYvK,EAUpC,SAASmrB,EAAcr6B,GACrB,MAAyB,SAArBA,EAAQs6B,SACHt6B,EAEFA,EAAQH,YAAcG,EAAQu6B,KAUvC,SAASC,EAAgBx6B,GAEvB,IAAKA,EACH,OAAOP,SAAS+L,KAGlB,OAAQxL,EAAQs6B,UACd,IAAK,OACL,IAAK,OACH,OAAOt6B,EAAQub,cAAc/P,KAC/B,IAAK,YACH,OAAOxL,EAAQwL,KAKnB,IAAIivB,EAAwBN,EAAyBn6B,GACjDw2B,EAAWiE,EAAsBjE,SACjCC,EAAYgE,EAAsBhE,UAClCC,EAAY+D,EAAsB/D,UAEtC,MAAI,wBAAwB1T,KAAKwT,EAAWE,EAAYD,GAC/Cz2B,EAGFw6B,EAAgBH,EAAcr6B,IAUvC,SAAS06B,EAAiBniB,GACxB,OAAOA,GAAaA,EAAUoiB,cAAgBpiB,EAAUoiB,cAAgBpiB,EAG1E,IAAIqiB,EAASjY,MAAgBxmB,OAAO0+B,uBAAwBp7B,SAASq7B,cACjEC,EAASpY,GAAa,UAAUK,KAAKH,UAAUC,WASnD,SAASC,EAAK/K,GACZ,OAAgB,KAAZA,EACK4iB,EAEO,KAAZ5iB,EACK+iB,EAEFH,GAAUG,EAUnB,SAASC,EAAgBh7B,GACvB,IAAKA,EACH,OAAOP,SAASC,gBAGlB,IAAIu7B,EAAiBlY,EAAK,IAAMtjB,SAAS+L,KAAO,KAG5CH,EAAerL,EAAQqL,cAAgB,KAE3C,MAAOA,IAAiB4vB,GAAkBj7B,EAAQk7B,mBAChD7vB,GAAgBrL,EAAUA,EAAQk7B,oBAAoB7vB,aAGxD,IAAIivB,EAAWjvB,GAAgBA,EAAaivB,SAE5C,OAAKA,GAAyB,SAAbA,GAAoC,SAAbA,GAMsB,IAA1D,CAAC,KAAM,KAAM,SAASlhB,QAAQ/N,EAAaivB,WAA2E,WAAvDH,EAAyB9uB,EAAc,YACjG2vB,EAAgB3vB,GAGlBA,EATErL,EAAUA,EAAQub,cAAc7b,gBAAkBD,SAASC,gBAYtE,SAASy7B,EAAkBn7B,GACzB,IAAIs6B,EAAWt6B,EAAQs6B,SAEvB,MAAiB,SAAbA,IAGgB,SAAbA,GAAuBU,EAAgBh7B,EAAQo7B,qBAAuBp7B,GAU/E,SAASq7B,EAAQrS,GACf,OAAwB,OAApBA,EAAKnpB,WACAw7B,EAAQrS,EAAKnpB,YAGfmpB,EAWT,SAASsS,EAAuBC,EAAUC,GAExC,IAAKD,IAAaA,EAASz7B,WAAa07B,IAAaA,EAAS17B,SAC5D,OAAOL,SAASC,gBAIlB,IAAI0rB,EAAQmQ,EAASE,wBAAwBD,GAAYE,KAAKC,4BAC1DC,EAAQxQ,EAAQmQ,EAAWC,EAC3BK,EAAMzQ,EAAQoQ,EAAWD,EAGzBO,EAAQr8B,SAASs8B,cACrBD,EAAME,SAASJ,EAAO,GACtBE,EAAMG,OAAOJ,EAAK,GAClB,IAAI7E,EAA0B8E,EAAM9E,wBAIpC,GAAIuE,IAAavE,GAA2BwE,IAAaxE,GAA2B4E,EAAMj8B,SAASk8B,GACjG,OAAIV,EAAkBnE,GACbA,EAGFgE,EAAgBhE,GAIzB,IAAIkF,EAAeb,EAAQE,GAC3B,OAAIW,EAAa3B,KACRe,EAAuBY,EAAa3B,KAAMiB,GAE1CF,EAAuBC,EAAUF,EAAQG,GAAUjB,MAY9D,SAAS4B,EAAUn8B,GACjB,IAAIo8B,EAAOl8B,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,MAE3Em8B,EAAqB,QAATD,EAAiB,YAAc,aAC3C9B,EAAWt6B,EAAQs6B,SAEvB,GAAiB,SAAbA,GAAoC,SAAbA,EAAqB,CAC9C,IAAIliB,EAAOpY,EAAQub,cAAc7b,gBAC7B48B,EAAmBt8B,EAAQub,cAAc+gB,kBAAoBlkB,EACjE,OAAOkkB,EAAiBD,GAG1B,OAAOr8B,EAAQq8B,GAYjB,SAASE,EAAcC,EAAMx8B,GAC3B,IAAIy8B,EAAWv8B,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GAE1EmyB,EAAY8J,EAAUn8B,EAAS,OAC/BiwB,EAAakM,EAAUn8B,EAAS,QAChC08B,EAAWD,GAAY,EAAI,EAK/B,OAJAD,EAAKvxB,KAAOonB,EAAYqK,EACxBF,EAAK9f,QAAU2V,EAAYqK,EAC3BF,EAAKtxB,MAAQ+kB,EAAayM,EAC1BF,EAAKrwB,OAAS8jB,EAAayM,EACpBF,EAaT,SAASG,EAAeC,EAAQC,GAC9B,IAAIC,EAAiB,MAATD,EAAe,OAAS,MAChCE,EAAkB,SAAVD,EAAmB,QAAU,SAEzC,OAAOjhB,WAAW+gB,EAAO,SAAWE,EAAQ,UAAYjhB,WAAW+gB,EAAO,SAAWG,EAAQ,UAG/F,SAASC,EAAQH,EAAMrxB,EAAM4M,EAAM6kB,GACjC,OAAOjvB,KAAKsX,IAAI9Z,EAAK,SAAWqxB,GAAOrxB,EAAK,SAAWqxB,GAAOzkB,EAAK,SAAWykB,GAAOzkB,EAAK,SAAWykB,GAAOzkB,EAAK,SAAWykB,GAAO9Z,EAAK,IAAMhiB,SAASqX,EAAK,SAAWykB,IAAS97B,SAASk8B,EAAc,UAAqB,WAATJ,EAAoB,MAAQ,UAAY97B,SAASk8B,EAAc,UAAqB,WAATJ,EAAoB,SAAW,WAAa,GAG5U,SAASK,EAAez9B,GACtB,IAAI+L,EAAO/L,EAAS+L,KAChB4M,EAAO3Y,EAASC,gBAChBu9B,EAAgBla,EAAK,KAAO7G,iBAAiB9D,GAEjD,MAAO,CACLka,OAAQ0K,EAAQ,SAAUxxB,EAAM4M,EAAM6kB,GACtC7K,MAAO4K,EAAQ,QAASxxB,EAAM4M,EAAM6kB,IAIxC,IAAIE,EAAiB,SAAUz/B,EAAUC,GACvC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,sCAIpBw/B,EAAc,WAChB,SAASC,EAAiBv/B,EAAQC,GAChC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjD5B,OAAO6B,eAAeR,EAAQI,EAAWK,IAAKL,IAIlD,OAAO,SAAUP,EAAac,EAAYC,GAGxC,OAFID,GAAY4+B,EAAiB1/B,EAAYjB,UAAW+B,GACpDC,GAAa2+B,EAAiB1/B,EAAae,GACxCf,GAdO,GAsBdW,EAAiB,SAAUjB,EAAKkB,EAAKK,GAYvC,OAXIL,KAAOlB,EACTZ,OAAO6B,eAAejB,EAAKkB,EAAK,CAC9BK,MAAOA,EACPT,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZhB,EAAIkB,GAAOK,EAGNvB,GAGLwa,EAAWpb,OAAOwY,QAAU,SAAUnX,GACxC,IAAK,IAAIE,EAAI,EAAGA,EAAIkC,UAAUjC,OAAQD,IAAK,CACzC,IAAI8Z,EAAS5X,UAAUlC,GAEvB,IAAK,IAAIO,KAAOuZ,EACVrb,OAAOC,UAAUC,eAAeC,KAAKkb,EAAQvZ,KAC/CT,EAAOS,GAAOuZ,EAAOvZ,IAK3B,OAAOT,GAUT,SAASw/B,EAAcC,GACrB,OAAO1lB,EAAS,GAAI0lB,EAAS,CAC3BpxB,MAAOoxB,EAAQryB,KAAOqyB,EAAQnL,MAC9B1V,OAAQ6gB,EAAQtyB,IAAMsyB,EAAQjL,SAWlC,SAASlmB,EAAsBpM,GAC7B,IAAIw8B,EAAO,GAKX,IACE,GAAIzZ,EAAK,IAAK,CACZyZ,EAAOx8B,EAAQoM,wBACf,IAAIimB,EAAY8J,EAAUn8B,EAAS,OAC/BiwB,EAAakM,EAAUn8B,EAAS,QACpCw8B,EAAKvxB,KAAOonB,EACZmK,EAAKtxB,MAAQ+kB,EACbuM,EAAK9f,QAAU2V,EACfmK,EAAKrwB,OAAS8jB,OAEduM,EAAOx8B,EAAQoM,wBAEjB,MAAOjD,IAET,IAAI/F,EAAS,CACX8H,KAAMsxB,EAAKtxB,KACXD,IAAKuxB,EAAKvxB,IACVmnB,MAAOoK,EAAKrwB,MAAQqwB,EAAKtxB,KACzBonB,OAAQkK,EAAK9f,OAAS8f,EAAKvxB,KAIzBuyB,EAA6B,SAArBx9B,EAAQs6B,SAAsB4C,EAAel9B,EAAQub,eAAiB,GAC9E6W,EAAQoL,EAAMpL,OAASpyB,EAAQowB,aAAehtB,EAAOgvB,MACrDE,EAASkL,EAAMlL,QAAUtyB,EAAQuyB,cAAgBnvB,EAAOkvB,OAExDmL,EAAiBz9B,EAAQ4K,YAAcwnB,EACvCsL,EAAgB19B,EAAQkY,aAAeoa,EAI3C,GAAImL,GAAkBC,EAAe,CACnC,IAAId,EAASzC,EAAyBn6B,GACtCy9B,GAAkBd,EAAeC,EAAQ,KACzCc,GAAiBf,EAAeC,EAAQ,KAExCx5B,EAAOgvB,OAASqL,EAChBr6B,EAAOkvB,QAAUoL,EAGnB,OAAOJ,EAAcl6B,GAGvB,SAASu6B,EAAqC3xB,EAAUvD,GACtD,IAAIm1B,EAAgB19B,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GAE/E66B,EAAShY,EAAK,IACd8a,EAA6B,SAApBp1B,EAAO6xB,SAChBwD,EAAe1xB,EAAsBJ,GACrC+xB,EAAa3xB,EAAsB3D,GACnCu1B,EAAexD,EAAgBxuB,GAE/B4wB,EAASzC,EAAyB1xB,GAClCw1B,EAAiBpiB,WAAW+gB,EAAOqB,gBACnCC,EAAkBriB,WAAW+gB,EAAOsB,iBAGpCN,GAAiBC,IACnBE,EAAW9yB,IAAM+C,KAAKsX,IAAIyY,EAAW9yB,IAAK,GAC1C8yB,EAAW7yB,KAAO8C,KAAKsX,IAAIyY,EAAW7yB,KAAM,IAE9C,IAAIqyB,EAAUD,EAAc,CAC1BryB,IAAK6yB,EAAa7yB,IAAM8yB,EAAW9yB,IAAMgzB,EACzC/yB,KAAM4yB,EAAa5yB,KAAO6yB,EAAW7yB,KAAOgzB,EAC5C9L,MAAO0L,EAAa1L,MACpBE,OAAQwL,EAAaxL,SASvB,GAPAiL,EAAQY,UAAY,EACpBZ,EAAQl0B,WAAa,GAMhB0xB,GAAU8C,EAAQ,CACrB,IAAIM,EAAYtiB,WAAW+gB,EAAOuB,WAC9B90B,EAAawS,WAAW+gB,EAAOvzB,YAEnCk0B,EAAQtyB,KAAOgzB,EAAiBE,EAChCZ,EAAQ7gB,QAAUuhB,EAAiBE,EACnCZ,EAAQryB,MAAQgzB,EAAkB70B,EAClCk0B,EAAQpxB,OAAS+xB,EAAkB70B,EAGnCk0B,EAAQY,UAAYA,EACpBZ,EAAQl0B,WAAaA,EAOvB,OAJI0xB,IAAW6C,EAAgBn1B,EAAO9I,SAASq+B,GAAgBv1B,IAAWu1B,GAA0C,SAA1BA,EAAa1D,YACrGiD,EAAUhB,EAAcgB,EAAS90B,IAG5B80B,EAGT,SAASa,EAA8Cp+B,GACrD,IAAIq+B,EAAgBn+B,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GAE/EkY,EAAOpY,EAAQub,cAAc7b,gBAC7B4+B,EAAiBX,EAAqC39B,EAASoY,GAC/Dga,EAAQpkB,KAAKsX,IAAIlN,EAAKgY,YAAaj0B,OAAOoiC,YAAc,GACxDjM,EAAStkB,KAAKsX,IAAIlN,EAAKma,aAAcp2B,OAAOqiC,aAAe,GAE3DnM,EAAagM,EAAkC,EAAlBlC,EAAU/jB,GACvC6X,EAAcoO,EAA0C,EAA1BlC,EAAU/jB,EAAM,QAE9CqG,EAAS,CACXxT,IAAKonB,EAAYiM,EAAerzB,IAAMqzB,EAAeH,UACrDjzB,KAAM+kB,EAAaqO,EAAepzB,KAAOozB,EAAej1B,WACxD+oB,MAAOA,EACPE,OAAQA,GAGV,OAAOgL,EAAc7e,GAWvB,SAASggB,EAAQz+B,GACf,IAAIs6B,EAAWt6B,EAAQs6B,SACvB,GAAiB,SAAbA,GAAoC,SAAbA,EACzB,OAAO,EAET,GAAsD,UAAlDH,EAAyBn6B,EAAS,YACpC,OAAO,EAET,IAAIH,EAAaw6B,EAAcr6B,GAC/B,QAAKH,GAGE4+B,EAAQ5+B,GAWjB,SAAS6+B,EAA6B1+B,GAEpC,IAAKA,IAAYA,EAAQJ,eAAiBmjB,IACxC,OAAOtjB,SAASC,gBAElB,IAAIF,EAAKQ,EAAQJ,cACjB,MAAOJ,GAAoD,SAA9C26B,EAAyB36B,EAAI,aACxCA,EAAKA,EAAGI,cAEV,OAAOJ,GAAMC,SAASC,gBAcxB,SAASi/B,EAAc5a,EAAQxL,EAAWgE,EAASkP,GACjD,IAAImS,EAAgB19B,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GAI/E0+B,EAAa,CAAE3zB,IAAK,EAAGC,KAAM,GAC7BG,EAAeuyB,EAAgBc,EAA6B3a,GAAUuX,EAAuBvX,EAAQ2W,EAAiBniB,IAG1H,GAA0B,aAAtBkT,EACFmT,EAAaR,EAA8C/yB,EAAcuyB,OACpE,CAEL,IAAIiB,OAAiB,EACK,iBAAtBpT,GACFoT,EAAiBrE,EAAgBH,EAAc9hB,IACf,SAA5BsmB,EAAevE,WACjBuE,EAAiB9a,EAAOxI,cAAc7b,kBAGxCm/B,EAD+B,WAAtBpT,EACQ1H,EAAOxI,cAAc7b,gBAErB+rB,EAGnB,IAAI8R,EAAUI,EAAqCkB,EAAgBxzB,EAAcuyB,GAGjF,GAAgC,SAA5BiB,EAAevE,UAAwBmE,EAAQpzB,GAWjDuzB,EAAarB,MAXmD,CAChE,IAAIuB,EAAkB5B,EAAenZ,EAAOxI,eACxC+W,EAASwM,EAAgBxM,OACzBF,EAAQ0M,EAAgB1M,MAE5BwM,EAAW3zB,KAAOsyB,EAAQtyB,IAAMsyB,EAAQY,UACxCS,EAAWliB,OAAS4V,EAASiL,EAAQtyB,IACrC2zB,EAAW1zB,MAAQqyB,EAAQryB,KAAOqyB,EAAQl0B,WAC1Cu1B,EAAWzyB,MAAQimB,EAAQmL,EAAQryB,MAQvCqR,EAAUA,GAAW,EACrB,IAAIwiB,EAAqC,kBAAZxiB,EAM7B,OALAqiB,EAAW1zB,MAAQ6zB,EAAkBxiB,EAAUA,EAAQrR,MAAQ,EAC/D0zB,EAAW3zB,KAAO8zB,EAAkBxiB,EAAUA,EAAQtR,KAAO,EAC7D2zB,EAAWzyB,OAAS4yB,EAAkBxiB,EAAUA,EAAQpQ,OAAS,EACjEyyB,EAAWliB,QAAUqiB,EAAkBxiB,EAAUA,EAAQG,QAAU,EAE5DkiB,EAGT,SAASI,EAAQ/Z,GACf,IAAImN,EAAQnN,EAAKmN,MACbE,EAASrN,EAAKqN,OAElB,OAAOF,EAAQE,EAYjB,SAAS2M,EAAqB5f,EAAW6f,EAASnb,EAAQxL,EAAWkT,GACnE,IAAIlP,EAAUrc,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAElF,IAAmC,IAA/Bmf,EAAUjG,QAAQ,QACpB,OAAOiG,EAGT,IAAIuf,EAAaD,EAAc5a,EAAQxL,EAAWgE,EAASkP,GAEvD0T,EAAQ,CACVl0B,IAAK,CACHmnB,MAAOwM,EAAWxM,MAClBE,OAAQ4M,EAAQj0B,IAAM2zB,EAAW3zB,KAEnCkB,MAAO,CACLimB,MAAOwM,EAAWzyB,MAAQ+yB,EAAQ/yB,MAClCmmB,OAAQsM,EAAWtM,QAErB5V,OAAQ,CACN0V,MAAOwM,EAAWxM,MAClBE,OAAQsM,EAAWliB,OAASwiB,EAAQxiB,QAEtCxR,KAAM,CACJknB,MAAO8M,EAAQh0B,KAAO0zB,EAAW1zB,KACjConB,OAAQsM,EAAWtM,SAInB8M,EAAc3iC,OAAOkgB,KAAKwiB,GAAOtX,KAAI,SAAUtpB,GACjD,OAAOsZ,EAAS,CACdtZ,IAAKA,GACJ4gC,EAAM5gC,GAAM,CACb8gC,KAAML,EAAQG,EAAM5gC,SAErB+gC,MAAK,SAAU3kB,EAAGC,GACnB,OAAOA,EAAEykB,KAAO1kB,EAAE0kB,QAGhBE,EAAgBH,EAAY1lB,QAAO,SAAU8lB,GAC/C,IAAIpN,EAAQoN,EAAMpN,MACdE,EAASkN,EAAMlN,OACnB,OAAOF,GAASrO,EAAOqM,aAAekC,GAAUvO,EAAOwO,gBAGrDkN,EAAoBF,EAActhC,OAAS,EAAIshC,EAAc,GAAGhhC,IAAM6gC,EAAY,GAAG7gC,IAErFmhC,EAAYrgB,EAAUvE,MAAM,KAAK,GAErC,OAAO2kB,GAAqBC,EAAY,IAAMA,EAAY,IAa5D,SAASC,EAAoBnrB,EAAOuP,EAAQxL,GAC1C,IAAIqlB,EAAgB19B,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,KAEpF0/B,EAAqBhC,EAAgBc,EAA6B3a,GAAUuX,EAAuBvX,EAAQ2W,EAAiBniB,IAChI,OAAOolB,EAAqCplB,EAAWqnB,EAAoBhC,GAU7E,SAASiC,EAAc7/B,GACrB,IAAI7D,EAAS6D,EAAQub,cAAc6e,YAC/BwC,EAASzgC,EAAO+f,iBAAiBlc,GACjCzD,EAAIsf,WAAW+gB,EAAOuB,WAAa,GAAKtiB,WAAW+gB,EAAOkD,cAAgB,GAC1E7I,EAAIpb,WAAW+gB,EAAOvzB,YAAc,GAAKwS,WAAW+gB,EAAOmD,aAAe,GAC1E38B,EAAS,CACXgvB,MAAOpyB,EAAQ4K,YAAcqsB,EAC7B3E,OAAQtyB,EAAQkY,aAAe3b,GAEjC,OAAO6G,EAUT,SAAS48B,EAAqB3gB,GAC5B,IAAI4gB,EAAO,CAAE/0B,KAAM,QAASiB,MAAO,OAAQuQ,OAAQ,MAAOzR,IAAK,UAC/D,OAAOoU,EAAU4J,QAAQ,0BAA0B,SAAUiX,GAC3D,OAAOD,EAAKC,MAchB,SAASC,EAAiBpc,EAAQqc,EAAkB/gB,GAClDA,EAAYA,EAAUvE,MAAM,KAAK,GAGjC,IAAIoK,EAAa2a,EAAc9b,GAG3Bsc,EAAgB,CAClBjO,MAAOlN,EAAWkN,MAClBE,OAAQpN,EAAWoN,QAIjBgO,GAAoD,IAA1C,CAAC,QAAS,QAAQlnB,QAAQiG,GACpCkhB,EAAWD,EAAU,MAAQ,OAC7BE,EAAgBF,EAAU,OAAS,MACnCG,EAAcH,EAAU,SAAW,QACnCI,EAAwBJ,EAAqB,QAAX,SAStC,OAPAD,EAAcE,GAAYH,EAAiBG,GAAYH,EAAiBK,GAAe,EAAIvb,EAAWub,GAAe,EAEnHJ,EAAcG,GADZnhB,IAAcmhB,EACeJ,EAAiBI,GAAiBtb,EAAWwb,GAE7CN,EAAiBJ,EAAqBQ,IAGhEH,EAYT,SAASM,EAAKllB,EAAKmlB,GAEjB,OAAI/+B,MAAMnF,UAAUikC,KACXllB,EAAIklB,KAAKC,GAIXnlB,EAAI/B,OAAOknB,GAAO,GAY3B,SAAS9rB,EAAU2G,EAAKwQ,EAAMrtB,GAE5B,GAAIiD,MAAMnF,UAAUoY,UAClB,OAAO2G,EAAI3G,WAAU,SAAU+rB,GAC7B,OAAOA,EAAI5U,KAAUrtB,KAKzB,IAAI+3B,EAAQgK,EAAKllB,GAAK,SAAUpe,GAC9B,OAAOA,EAAI4uB,KAAUrtB,KAEvB,OAAO6c,EAAIrC,QAAQud,GAarB,SAASmK,EAAa7nB,EAAWpJ,EAAMkxB,GACrC,IAAIC,OAA0B7gC,IAAT4gC,EAAqB9nB,EAAYA,EAAUuB,MAAM,EAAG1F,EAAUmE,EAAW,OAAQ8nB,IAmBtG,OAjBAC,EAAeliC,SAAQ,SAAU49B,GAC3BA,EAAS,aAEXuE,QAAQC,KAAK,yDAEf,IAAIpkC,EAAK4/B,EAAS,aAAeA,EAAS5/B,GACtC4/B,EAASvR,SAAW6O,EAAWl9B,KAIjC+S,EAAK0tB,QAAQxZ,OAASuZ,EAAcztB,EAAK0tB,QAAQxZ,QACjDlU,EAAK0tB,QAAQhlB,UAAY+kB,EAAcztB,EAAK0tB,QAAQhlB,WAEpD1I,EAAO/S,EAAG+S,EAAM6sB,OAIb7sB,EAUT,SAASkb,IAEP,IAAI9rB,KAAKuV,MAAMyS,YAAf,CAIA,IAAIpX,EAAO,CACTnS,SAAUuB,KACV29B,OAAQ,GACRuE,YAAa,GACbvW,WAAY,GACZD,SAAS,EACT4S,QAAS,IAIX1tB,EAAK0tB,QAAQhlB,UAAYonB,EAAoB1gC,KAAKuV,MAAOvV,KAAK8kB,OAAQ9kB,KAAKsZ,UAAWtZ,KAAKgB,QAAQmhC,eAKnGvxB,EAAKwP,UAAY4f,EAAqBhgC,KAAKgB,QAAQof,UAAWxP,EAAK0tB,QAAQhlB,UAAWtZ,KAAK8kB,OAAQ9kB,KAAKsZ,UAAWtZ,KAAKgB,QAAQgZ,UAAU4E,KAAK4N,kBAAmBxsB,KAAKgB,QAAQgZ,UAAU4E,KAAKtB,SAG9L1M,EAAKwxB,kBAAoBxxB,EAAKwP,UAE9BxP,EAAKuxB,cAAgBniC,KAAKgB,QAAQmhC,cAGlCvxB,EAAK0tB,QAAQxZ,OAASoc,EAAiBlhC,KAAK8kB,OAAQlU,EAAK0tB,QAAQhlB,UAAW1I,EAAKwP,WAEjFxP,EAAK0tB,QAAQxZ,OAAO9X,SAAWhN,KAAKgB,QAAQmhC,cAAgB,QAAU,WAGtEvxB,EAAOixB,EAAa7hC,KAAKga,UAAWpJ,GAI/B5Q,KAAKuV,MAAM8sB,UAIdriC,KAAKgB,QAAQ2rB,SAAS/b,IAHtB5Q,KAAKuV,MAAM8sB,WAAY,EACvBriC,KAAKgB,QAAQ2e,SAAS/O,KAY1B,SAAS0xB,EAAkBtoB,EAAWuoB,GACpC,OAAOvoB,EAAU7K,MAAK,SAAU6W,GAC9B,IAAIpZ,EAAOoZ,EAAKpZ,KACZsf,EAAUlG,EAAKkG,QACnB,OAAOA,GAAWtf,IAAS21B,KAW/B,SAASC,EAAyBhoB,GAIhC,IAHA,IAAIioB,EAAW,EAAC,EAAO,KAAM,SAAU,MAAO,KAC1CC,EAAYloB,EAASmoB,OAAO,GAAGC,cAAgBpoB,EAASe,MAAM,GAEzDxc,EAAI,EAAGA,EAAI0jC,EAASzjC,OAAQD,IAAK,CACxC,IAAI8jC,EAASJ,EAAS1jC,GAClB+jC,EAAUD,EAAS,GAAKA,EAASH,EAAYloB,EACjD,GAA4C,qBAAjCha,SAAS+L,KAAKtJ,MAAM6/B,GAC7B,OAAOA,EAGX,OAAO,KAQT,SAASpa,IAsBP,OArBA1oB,KAAKuV,MAAMyS,aAAc,EAGrBsa,EAAkBtiC,KAAKga,UAAW,gBACpCha,KAAK8kB,OAAOL,gBAAgB,eAC5BzkB,KAAK8kB,OAAO7hB,MAAM+J,SAAW,GAC7BhN,KAAK8kB,OAAO7hB,MAAM+I,IAAM,GACxBhM,KAAK8kB,OAAO7hB,MAAMgJ,KAAO,GACzBjM,KAAK8kB,OAAO7hB,MAAMiK,MAAQ,GAC1BlN,KAAK8kB,OAAO7hB,MAAMwa,OAAS,GAC3Bzd,KAAK8kB,OAAO7hB,MAAM8/B,WAAa,GAC/B/iC,KAAK8kB,OAAO7hB,MAAMu/B,EAAyB,cAAgB,IAG7DxiC,KAAKstB,wBAIDttB,KAAKgB,QAAQgiC,iBACfhjC,KAAK8kB,OAAOlkB,WAAW6D,YAAYzE,KAAK8kB,QAEnC9kB,KAQT,SAASijC,EAAUliC,GACjB,IAAIub,EAAgBvb,EAAQub,cAC5B,OAAOA,EAAgBA,EAAc6e,YAAcj+B,OAGrD,SAASgmC,EAAsBnE,EAAczxB,EAAOxN,EAAUqjC,GAC5D,IAAIC,EAAmC,SAA1BrE,EAAa1D,SACtBx8B,EAASukC,EAASrE,EAAaziB,cAAc6e,YAAc4D,EAC/DlgC,EAAO8E,iBAAiB2J,EAAOxN,EAAU,CAAEmiB,SAAS,IAE/CmhB,GACHF,EAAsB3H,EAAgB18B,EAAO+B,YAAa0M,EAAOxN,EAAUqjC,GAE7EA,EAAcl6B,KAAKpK,GASrB,SAASwkC,EAAoB/pB,EAAWtY,EAASuU,EAAO+tB,GAEtD/tB,EAAM+tB,YAAcA,EACpBL,EAAU3pB,GAAW3V,iBAAiB,SAAU4R,EAAM+tB,YAAa,CAAErhB,SAAS,IAG9E,IAAIshB,EAAgBhI,EAAgBjiB,GAKpC,OAJA4pB,EAAsBK,EAAe,SAAUhuB,EAAM+tB,YAAa/tB,EAAM4tB,eACxE5tB,EAAMguB,cAAgBA,EACtBhuB,EAAMyW,eAAgB,EAEfzW,EAST,SAASsX,IACF7sB,KAAKuV,MAAMyW,gBACdhsB,KAAKuV,MAAQ8tB,EAAoBrjC,KAAKsZ,UAAWtZ,KAAKgB,QAAShB,KAAKuV,MAAOvV,KAAKwjC,iBAUpF,SAASC,EAAqBnqB,EAAW/D,GAcvC,OAZA0tB,EAAU3pB,GAAW9L,oBAAoB,SAAU+H,EAAM+tB,aAGzD/tB,EAAM4tB,cAActjC,SAAQ,SAAUhB,GACpCA,EAAO2O,oBAAoB,SAAU+H,EAAM+tB,gBAI7C/tB,EAAM+tB,YAAc,KACpB/tB,EAAM4tB,cAAgB,GACtB5tB,EAAMguB,cAAgB,KACtBhuB,EAAMyW,eAAgB,EACfzW,EAUT,SAAS+X,KACHttB,KAAKuV,MAAMyW,gBACbe,qBAAqB/sB,KAAKwjC,gBAC1BxjC,KAAKuV,MAAQkuB,EAAqBzjC,KAAKsZ,UAAWtZ,KAAKuV,QAW3D,SAASmuB,GAAUnT,GACjB,MAAa,KAANA,IAAa1uB,MAAM+a,WAAW2T,KAAOoT,SAASpT,GAWvD,SAASqT,GAAU7iC,EAAS48B,GAC1BngC,OAAOkgB,KAAKigB,GAAQ99B,SAAQ,SAAUmtB,GACpC,IAAI6W,EAAO,IAEkE,IAAzE,CAAC,QAAS,SAAU,MAAO,QAAS,SAAU,QAAQ1pB,QAAQ6S,IAAgB0W,GAAU/F,EAAO3Q,MACjG6W,EAAO,MAET9iC,EAAQkC,MAAM+pB,GAAQ2Q,EAAO3Q,GAAQ6W,KAYzC,SAASC,GAAc/iC,EAAS4qB,GAC9BnuB,OAAOkgB,KAAKiO,GAAY9rB,SAAQ,SAAUmtB,GACxC,IAAIrtB,EAAQgsB,EAAWqB,IACT,IAAVrtB,EACFoB,EAAQmG,aAAa8lB,EAAMrB,EAAWqB,IAEtCjsB,EAAQ0jB,gBAAgBuI,MAc9B,SAAS+W,GAAWnzB,GAgBlB,OAXAgzB,GAAUhzB,EAAKnS,SAASqmB,OAAQlU,EAAK+sB,QAIrCmG,GAAclzB,EAAKnS,SAASqmB,OAAQlU,EAAK+a,YAGrC/a,EAAKoU,cAAgBxnB,OAAOkgB,KAAK9M,EAAKsxB,aAAaljC,QACrD4kC,GAAUhzB,EAAKoU,aAAcpU,EAAKsxB,aAG7BtxB,EAaT,SAASozB,GAAiB1qB,EAAWwL,EAAQ9jB,EAASijC,EAAiB1uB,GAErE,IAAI4rB,EAAmBT,EAAoBnrB,EAAOuP,EAAQxL,EAAWtY,EAAQmhC,eAKzE/hB,EAAY4f,EAAqBh/B,EAAQof,UAAW+gB,EAAkBrc,EAAQxL,EAAWtY,EAAQgZ,UAAU4E,KAAK4N,kBAAmBxrB,EAAQgZ,UAAU4E,KAAKtB,SAQ9J,OANAwH,EAAO5d,aAAa,cAAekZ,GAInCwjB,GAAU9e,EAAQ,CAAE9X,SAAUhM,EAAQmhC,cAAgB,QAAU,aAEzDnhC,EAsBT,SAASkjC,GAAkBtzB,EAAMuzB,GAC/B,IAAIC,EAAgBxzB,EAAK0tB,QACrBxZ,EAASsf,EAActf,OACvBxL,EAAY8qB,EAAc9qB,UAC1BtK,EAAQD,KAAKC,MACb4mB,EAAQ7mB,KAAK6mB,MAEbyO,EAAU,SAAiBvqB,GAC7B,OAAOA,GAGLwqB,EAAiBt1B,EAAMsK,EAAU6Z,OACjCoR,EAAcv1B,EAAM8V,EAAOqO,OAE3BqR,GAA4D,IAA/C,CAAC,OAAQ,SAASrqB,QAAQvJ,EAAKwP,WAC5CqkB,GAA+C,IAAjC7zB,EAAKwP,UAAUjG,QAAQ,KACrCuqB,EAAkBJ,EAAiB,IAAMC,EAAc,EACvDI,EAAeL,EAAiB,IAAM,GAAKC,EAAc,IAAM,EAE/DK,EAAuBT,EAAwBK,GAAcC,GAAeC,EAAkB11B,EAAQ4mB,EAAjEyO,EACrCQ,EAAqBV,EAAwBn1B,EAAVq1B,EAEvC,MAAO,CACLp4B,KAAM24B,EAAoBD,IAAiBF,GAAeN,EAAcrf,EAAO7Y,KAAO,EAAI6Y,EAAO7Y,MACjGD,IAAK64B,EAAkB/f,EAAO9Y,KAC9ByR,OAAQonB,EAAkB/f,EAAOrH,QACjCvQ,MAAO03B,EAAoB9f,EAAO5X,QAItC,IAAI43B,GAAYphB,GAAa,WAAWK,KAAKH,UAAUC,WASvD,SAASkhB,GAAan0B,EAAM5P,GAC1B,IAAI1D,EAAI0D,EAAQ1D,EACZ06B,EAAIh3B,EAAQg3B,EACZlT,EAASlU,EAAK0tB,QAAQxZ,OAItBkgB,EAA8BtD,EAAK9wB,EAAKnS,SAASub,WAAW,SAAUyjB,GACxE,MAAyB,eAAlBA,EAAS7wB,QACfq4B,qBACiC/jC,IAAhC8jC,GACFhD,QAAQC,KAAK,iIAEf,IAAIgD,OAAkD/jC,IAAhC8jC,EAA4CA,EAA8BhkC,EAAQikC,gBAEpG74B,EAAe2vB,EAAgBnrB,EAAKnS,SAASqmB,QAC7CogB,EAAmB/3B,EAAsBf,GAGzCuxB,EAAS,CACX3wB,SAAU8X,EAAO9X,UAGfsxB,EAAU4F,GAAkBtzB,EAAM1T,OAAOioC,iBAAmB,IAAML,IAElEjH,EAAc,WAANvgC,EAAiB,MAAQ,SACjCwgC,EAAc,UAAN9F,EAAgB,OAAS,QAKjCoN,EAAmB5C,EAAyB,aAW5Cv2B,OAAO,EACPD,OAAM,EAqBV,GAhBIA,EAJU,WAAV6xB,EAG4B,SAA1BzxB,EAAaivB,UACRjvB,EAAaknB,aAAegL,EAAQ7gB,QAEpCynB,EAAiB7R,OAASiL,EAAQ7gB,OAGrC6gB,EAAQtyB,IAIZC,EAFU,UAAV6xB,EAC4B,SAA1B1xB,EAAaivB,UACPjvB,EAAa+kB,YAAcmN,EAAQpxB,OAEnCg4B,EAAiB/R,MAAQmL,EAAQpxB,MAGpCoxB,EAAQryB,KAEbg5B,GAAmBG,EACrBzH,EAAOyH,GAAoB,eAAiBn5B,EAAO,OAASD,EAAM,SAClE2xB,EAAOE,GAAS,EAChBF,EAAOG,GAAS,EAChBH,EAAOoF,WAAa,gBACf,CAEL,IAAIsC,EAAsB,WAAVxH,GAAsB,EAAI,EACtCyH,EAAuB,UAAVxH,GAAqB,EAAI,EAC1CH,EAAOE,GAAS7xB,EAAMq5B,EACtB1H,EAAOG,GAAS7xB,EAAOq5B,EACvB3H,EAAOoF,WAAalF,EAAQ,KAAOC,EAIrC,IAAInS,EAAa,CACf,cAAe/a,EAAKwP,WAQtB,OAJAxP,EAAK+a,WAAa/S,EAAS,GAAI+S,EAAY/a,EAAK+a,YAChD/a,EAAK+sB,OAAS/kB,EAAS,GAAI+kB,EAAQ/sB,EAAK+sB,QACxC/sB,EAAKsxB,YAActpB,EAAS,GAAIhI,EAAK0tB,QAAQhgB,MAAO1N,EAAKsxB,aAElDtxB,EAaT,SAAS20B,GAAmBvrB,EAAWwrB,EAAgBC,GACrD,IAAIC,EAAahE,EAAK1nB,GAAW,SAAUgM,GACzC,IAAIpZ,EAAOoZ,EAAKpZ,KAChB,OAAOA,IAAS44B,KAGdG,IAAeD,GAAc1rB,EAAU7K,MAAK,SAAUsuB,GACxD,OAAOA,EAAS7wB,OAAS64B,GAAiBhI,EAASvR,SAAWuR,EAAStR,MAAQuZ,EAAWvZ,SAG5F,IAAKwZ,EAAY,CACf,IAAIC,EAAc,IAAMJ,EAAiB,IACrCK,EAAY,IAAMJ,EAAgB,IACtCzD,QAAQC,KAAK4D,EAAY,4BAA8BD,EAAc,4DAA8DA,EAAc,KAEnJ,OAAOD,EAUT,SAASrnB,GAAM1N,EAAM5P,GACnB,IAAI8kC,EAGJ,IAAKP,GAAmB30B,EAAKnS,SAASub,UAAW,QAAS,gBACxD,OAAOpJ,EAGT,IAAIoU,EAAehkB,EAAQD,QAG3B,GAA4B,kBAAjBikB,GAIT,GAHAA,EAAepU,EAAKnS,SAASqmB,OAAOzjB,cAAc2jB,IAG7CA,EACH,OAAOpU,OAKT,IAAKA,EAAKnS,SAASqmB,OAAOpkB,SAASskB,GAEjC,OADAgd,QAAQC,KAAK,iEACNrxB,EAIX,IAAIwP,EAAYxP,EAAKwP,UAAUvE,MAAM,KAAK,GACtCuoB,EAAgBxzB,EAAK0tB,QACrBxZ,EAASsf,EAActf,OACvBxL,EAAY8qB,EAAc9qB,UAE1BkrB,GAAuD,IAA1C,CAAC,OAAQ,SAASrqB,QAAQiG,GAEvC2lB,EAAMvB,EAAa,SAAW,QAC9BwB,EAAkBxB,EAAa,MAAQ,OACvCrH,EAAO6I,EAAgBnM,cACvBoM,EAAUzB,EAAa,OAAS,MAChC0B,EAAS1B,EAAa,SAAW,QACjC2B,EAAmBvF,EAAc5b,GAAc+gB,GAQ/CzsB,EAAU4sB,GAAUC,EAAmBrhB,EAAOqY,KAChDvsB,EAAK0tB,QAAQxZ,OAAOqY,IAASrY,EAAOqY,IAAS7jB,EAAU4sB,GAAUC,IAG/D7sB,EAAU6jB,GAAQgJ,EAAmBrhB,EAAOohB,KAC9Ct1B,EAAK0tB,QAAQxZ,OAAOqY,IAAS7jB,EAAU6jB,GAAQgJ,EAAmBrhB,EAAOohB,IAE3Et1B,EAAK0tB,QAAQxZ,OAASuZ,EAAcztB,EAAK0tB,QAAQxZ,QAGjD,IAAIshB,EAAS9sB,EAAU6jB,GAAQ7jB,EAAUysB,GAAO,EAAII,EAAmB,EAInEl2B,EAAMirB,EAAyBtqB,EAAKnS,SAASqmB,QAC7CuhB,EAAmBzpB,WAAW3M,EAAI,SAAW+1B,IAC7CM,EAAmB1pB,WAAW3M,EAAI,SAAW+1B,EAAkB,UAC/DO,EAAYH,EAASx1B,EAAK0tB,QAAQxZ,OAAOqY,GAAQkJ,EAAmBC,EAQxE,OALAC,EAAYx3B,KAAKsX,IAAItX,KAAKqX,IAAItB,EAAOihB,GAAOI,EAAkBI,GAAY,GAE1E31B,EAAKoU,aAAeA,EACpBpU,EAAK0tB,QAAQhgB,OAASwnB,EAAsB,GAAIzmC,EAAeymC,EAAqB3I,EAAMpuB,KAAKC,MAAMu3B,IAAalnC,EAAeymC,EAAqBG,EAAS,IAAKH,GAE7Jl1B,EAUT,SAAS41B,GAAqB/F,GAC5B,MAAkB,QAAdA,EACK,QACgB,UAAdA,EACF,MAEFA,EAkCT,IAAIgG,GAAa,CAAC,aAAc,OAAQ,WAAY,YAAa,MAAO,UAAW,cAAe,QAAS,YAAa,aAAc,SAAU,eAAgB,WAAY,OAAQ,cAGhLC,GAAkBD,GAAWlrB,MAAM,GAYvC,SAASorB,GAAUvmB,GACjB,IAAIwmB,EAAU3lC,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,IAAmBA,UAAU,GAEzE+M,EAAQ04B,GAAgBvsB,QAAQiG,GAChC5D,EAAMkqB,GAAgBnrB,MAAMvN,EAAQ,GAAGpH,OAAO8/B,GAAgBnrB,MAAM,EAAGvN,IAC3E,OAAO44B,EAAUpqB,EAAIqqB,UAAYrqB,EAGnC,IAAIsqB,GAAY,CACdC,KAAM,OACNC,UAAW,YACXC,iBAAkB,oBAUpB,SAASroB,GAAKhO,EAAM5P,GAElB,GAAIshC,EAAkB1xB,EAAKnS,SAASub,UAAW,SAC7C,OAAOpJ,EAGT,GAAIA,EAAK8a,SAAW9a,EAAKwP,YAAcxP,EAAKwxB,kBAE1C,OAAOxxB,EAGT,IAAI+uB,EAAaD,EAAc9uB,EAAKnS,SAASqmB,OAAQlU,EAAKnS,SAAS6a,UAAWtY,EAAQsc,QAAStc,EAAQwrB,kBAAmB5b,EAAKuxB,eAE3H/hB,EAAYxP,EAAKwP,UAAUvE,MAAM,KAAK,GACtCqrB,EAAoBnG,EAAqB3gB,GACzCqgB,EAAY7vB,EAAKwP,UAAUvE,MAAM,KAAK,IAAM,GAE5CsrB,EAAY,GAEhB,OAAQnmC,EAAQyrB,UACd,KAAKqa,GAAUC,KACbI,EAAY,CAAC/mB,EAAW8mB,GACxB,MACF,KAAKJ,GAAUE,UACbG,EAAYR,GAAUvmB,GACtB,MACF,KAAK0mB,GAAUG,iBACbE,EAAYR,GAAUvmB,GAAW,GACjC,MACF,QACE+mB,EAAYnmC,EAAQyrB,SAyDxB,OAtDA0a,EAAUtnC,SAAQ,SAAUunC,EAAMp5B,GAChC,GAAIoS,IAAcgnB,GAAQD,EAAUnoC,SAAWgP,EAAQ,EACrD,OAAO4C,EAGTwP,EAAYxP,EAAKwP,UAAUvE,MAAM,KAAK,GACtCqrB,EAAoBnG,EAAqB3gB,GAEzC,IAAIghB,EAAgBxwB,EAAK0tB,QAAQxZ,OAC7BuiB,EAAaz2B,EAAK0tB,QAAQhlB,UAG1Bsc,EAAQ7mB,KAAK6mB,MACb0R,EAA4B,SAAdlnB,GAAwBwV,EAAMwL,EAAcl0B,OAAS0oB,EAAMyR,EAAWp7B,OAAuB,UAAdmU,GAAyBwV,EAAMwL,EAAcn1B,MAAQ2pB,EAAMyR,EAAWn6B,QAAwB,QAAdkT,GAAuBwV,EAAMwL,EAAc3jB,QAAUmY,EAAMyR,EAAWr7B,MAAsB,WAAdoU,GAA0BwV,EAAMwL,EAAcp1B,KAAO4pB,EAAMyR,EAAW5pB,QAEjU8pB,EAAgB3R,EAAMwL,EAAcn1B,MAAQ2pB,EAAM+J,EAAW1zB,MAC7Du7B,EAAiB5R,EAAMwL,EAAcl0B,OAAS0oB,EAAM+J,EAAWzyB,OAC/Du6B,EAAe7R,EAAMwL,EAAcp1B,KAAO4pB,EAAM+J,EAAW3zB,KAC3D07B,EAAkB9R,EAAMwL,EAAc3jB,QAAUmY,EAAM+J,EAAWliB,QAEjEkqB,EAAoC,SAAdvnB,GAAwBmnB,GAA+B,UAAdnnB,GAAyBonB,GAAgC,QAAdpnB,GAAuBqnB,GAA8B,WAAdrnB,GAA0BsnB,EAG3KlD,GAAuD,IAA1C,CAAC,MAAO,UAAUrqB,QAAQiG,GAGvCwnB,IAA0B5mC,EAAQ6mC,iBAAmBrD,GAA4B,UAAd/D,GAAyB8G,GAAiB/C,GAA4B,QAAd/D,GAAuB+G,IAAmBhD,GAA4B,UAAd/D,GAAyBgH,IAAiBjD,GAA4B,QAAd/D,GAAuBiH,GAGlQI,IAA8B9mC,EAAQ+mC,0BAA4BvD,GAA4B,UAAd/D,GAAyB+G,GAAkBhD,GAA4B,QAAd/D,GAAuB8G,IAAkB/C,GAA4B,UAAd/D,GAAyBiH,IAAoBlD,GAA4B,QAAd/D,GAAuBgH,GAElRO,EAAmBJ,GAAyBE,GAE5CR,GAAeK,GAAuBK,KAExCp3B,EAAK8a,SAAU,GAEX4b,GAAeK,KACjBvnB,EAAY+mB,EAAUn5B,EAAQ,IAG5Bg6B,IACFvH,EAAY+F,GAAqB/F,IAGnC7vB,EAAKwP,UAAYA,GAAaqgB,EAAY,IAAMA,EAAY,IAI5D7vB,EAAK0tB,QAAQxZ,OAASlM,EAAS,GAAIhI,EAAK0tB,QAAQxZ,OAAQoc,EAAiBtwB,EAAKnS,SAASqmB,OAAQlU,EAAK0tB,QAAQhlB,UAAW1I,EAAKwP,YAE5HxP,EAAOixB,EAAajxB,EAAKnS,SAASub,UAAWpJ,EAAM,YAGhDA,EAUT,SAASq3B,GAAar3B,GACpB,IAAIwzB,EAAgBxzB,EAAK0tB,QACrBxZ,EAASsf,EAActf,OACvBxL,EAAY8qB,EAAc9qB,UAE1B8G,EAAYxP,EAAKwP,UAAUvE,MAAM,KAAK,GACtC+Z,EAAQ7mB,KAAK6mB,MACb4O,GAAuD,IAA1C,CAAC,MAAO,UAAUrqB,QAAQiG,GACvC+c,EAAOqH,EAAa,QAAU,SAC9B0B,EAAS1B,EAAa,OAAS,MAC/BhD,EAAcgD,EAAa,QAAU,SASzC,OAPI1f,EAAOqY,GAAQvH,EAAMtc,EAAU4sB,MACjCt1B,EAAK0tB,QAAQxZ,OAAOohB,GAAUtQ,EAAMtc,EAAU4sB,IAAWphB,EAAO0c,IAE9D1c,EAAOohB,GAAUtQ,EAAMtc,EAAU6jB,MACnCvsB,EAAK0tB,QAAQxZ,OAAOohB,GAAUtQ,EAAMtc,EAAU6jB,KAGzCvsB,EAeT,SAASs3B,GAAQhuB,EAAKsnB,EAAaJ,EAAeD,GAEhD,IAAItlB,EAAQ3B,EAAIwd,MAAM,6BAClB/3B,GAASkc,EAAM,GACfgoB,EAAOhoB,EAAM,GAGjB,IAAKlc,EACH,OAAOua,EAGT,GAA0B,IAAtB2pB,EAAK1pB,QAAQ,KAAY,CAC3B,IAAIpZ,OAAU,EACd,OAAQ8iC,GACN,IAAK,KACH9iC,EAAUqgC,EACV,MACF,IAAK,IACL,IAAK,KACL,QACErgC,EAAUogC,EAGd,IAAI5D,EAAOc,EAAct9B,GACzB,OAAOw8B,EAAKiE,GAAe,IAAM7hC,EAC5B,GAAa,OAATkkC,GAA0B,OAATA,EAAe,CAEzC,IAAIsE,OAAO,EAMX,OAJEA,EADW,OAATtE,EACK90B,KAAKsX,IAAI7lB,SAASC,gBAAgB6yB,aAAcp2B,OAAOqiC,aAAe,GAEtExwB,KAAKsX,IAAI7lB,SAASC,gBAAgB0wB,YAAaj0B,OAAOoiC,YAAc,GAEtE6I,EAAO,IAAMxoC,EAIpB,OAAOA,EAeX,SAASyoC,GAAY5oB,EAAQ4hB,EAAeD,EAAkB9jB,GAC5D,IAAIihB,EAAU,CAAC,EAAG,GAKd+J,GAA0D,IAA9C,CAAC,QAAS,QAAQluB,QAAQkD,GAItCirB,EAAY9oB,EAAO3D,MAAM,WAAW+M,KAAI,SAAU2f,GACpD,OAAOA,EAAK5mB,UAKV6mB,EAAUF,EAAUnuB,QAAQunB,EAAK4G,GAAW,SAAUC,GACxD,OAAgC,IAAzBA,EAAKrwB,OAAO,YAGjBowB,EAAUE,KAAiD,IAArCF,EAAUE,GAASruB,QAAQ,MACnD6nB,QAAQC,KAAK,gFAKf,IAAIwG,EAAa,cACbC,GAAmB,IAAbF,EAAiB,CAACF,EAAU/sB,MAAM,EAAGitB,GAAS5hC,OAAO,CAAC0hC,EAAUE,GAAS3sB,MAAM4sB,GAAY,KAAM,CAACH,EAAUE,GAAS3sB,MAAM4sB,GAAY,IAAI7hC,OAAO0hC,EAAU/sB,MAAMitB,EAAU,KAAO,CAACF,GAqC9L,OAlCAI,EAAMA,EAAI9f,KAAI,SAAU+f,EAAI36B,GAE1B,IAAIwzB,GAAyB,IAAVxzB,GAAeq6B,EAAYA,GAAa,SAAW,QAClEO,GAAoB,EACxB,OAAOD,EAGNhrB,QAAO,SAAUjC,EAAGC,GACnB,MAAwB,KAApBD,EAAEA,EAAE1c,OAAS,KAAwC,IAA3B,CAAC,IAAK,KAAKmb,QAAQwB,IAC/CD,EAAEA,EAAE1c,OAAS,GAAK2c,EAClBitB,GAAoB,EACbltB,GACEktB,GACTltB,EAAEA,EAAE1c,OAAS,IAAM2c,EACnBitB,GAAoB,EACbltB,GAEAA,EAAE9U,OAAO+U,KAEjB,IAEFiN,KAAI,SAAU1O,GACb,OAAOguB,GAAQhuB,EAAKsnB,EAAaJ,EAAeD,SAKpDuH,EAAI7oC,SAAQ,SAAU8oC,EAAI36B,GACxB26B,EAAG9oC,SAAQ,SAAU0oC,EAAMM,GACrBnF,GAAU6E,KACZjK,EAAQtwB,IAAUu6B,GAA2B,MAAnBI,EAAGE,EAAS,IAAc,EAAI,UAIvDvK,EAYT,SAAS9e,GAAO5O,EAAMoV,GACpB,IAAIxG,EAASwG,EAAKxG,OACdY,EAAYxP,EAAKwP,UACjBgkB,EAAgBxzB,EAAK0tB,QACrBxZ,EAASsf,EAActf,OACvBxL,EAAY8qB,EAAc9qB,UAE1B+D,EAAgB+C,EAAUvE,MAAM,KAAK,GAErCyiB,OAAU,EAsBd,OApBEA,EADEoF,IAAWlkB,GACH,EAAEA,EAAQ,GAEV4oB,GAAY5oB,EAAQsF,EAAQxL,EAAW+D,GAG7B,SAAlBA,GACFyH,EAAO9Y,KAAOsyB,EAAQ,GACtBxZ,EAAO7Y,MAAQqyB,EAAQ,IACI,UAAlBjhB,GACTyH,EAAO9Y,KAAOsyB,EAAQ,GACtBxZ,EAAO7Y,MAAQqyB,EAAQ,IACI,QAAlBjhB,GACTyH,EAAO7Y,MAAQqyB,EAAQ,GACvBxZ,EAAO9Y,KAAOsyB,EAAQ,IACK,WAAlBjhB,IACTyH,EAAO7Y,MAAQqyB,EAAQ,GACvBxZ,EAAO9Y,KAAOsyB,EAAQ,IAGxB1tB,EAAKkU,OAASA,EACPlU,EAUT,SAAS2b,GAAgB3b,EAAM5P,GAC7B,IAAIwrB,EAAoBxrB,EAAQwrB,mBAAqBuP,EAAgBnrB,EAAKnS,SAASqmB,QAK/ElU,EAAKnS,SAAS6a,YAAckT,IAC9BA,EAAoBuP,EAAgBvP,IAMtC,IAAIsc,EAAgBtG,EAAyB,aACzCuG,EAAen4B,EAAKnS,SAASqmB,OAAO7hB,MACpC+I,EAAM+8B,EAAa/8B,IACnBC,EAAO88B,EAAa98B,KACpB+8B,EAAYD,EAAaD,GAE7BC,EAAa/8B,IAAM,GACnB+8B,EAAa98B,KAAO,GACpB88B,EAAaD,GAAiB,GAE9B,IAAInJ,EAAaD,EAAc9uB,EAAKnS,SAASqmB,OAAQlU,EAAKnS,SAAS6a,UAAWtY,EAAQsc,QAASkP,EAAmB5b,EAAKuxB,eAIvH4G,EAAa/8B,IAAMA,EACnB+8B,EAAa98B,KAAOA,EACpB88B,EAAaD,GAAiBE,EAE9BhoC,EAAQ2+B,WAAaA,EAErB,IAAIxT,EAAQnrB,EAAQioC,SAChBnkB,EAASlU,EAAK0tB,QAAQxZ,OAEtB6c,EAAQ,CACVuH,QAAS,SAAiB9oB,GACxB,IAAIzgB,EAAQmlB,EAAO1E,GAInB,OAHI0E,EAAO1E,GAAauf,EAAWvf,KAAepf,EAAQmoC,sBACxDxpC,EAAQoP,KAAKsX,IAAIvB,EAAO1E,GAAYuf,EAAWvf,KAE1C/gB,EAAe,GAAI+gB,EAAWzgB,IAEvCypC,UAAW,SAAmBhpB,GAC5B,IAAIkhB,EAAyB,UAAdlhB,EAAwB,OAAS,MAC5CzgB,EAAQmlB,EAAOwc,GAInB,OAHIxc,EAAO1E,GAAauf,EAAWvf,KAAepf,EAAQmoC,sBACxDxpC,EAAQoP,KAAKqX,IAAItB,EAAOwc,GAAW3B,EAAWvf,IAA4B,UAAdA,EAAwB0E,EAAOqO,MAAQrO,EAAOuO,UAErGh0B,EAAe,GAAIiiC,EAAU3hC,KAWxC,OAPAwsB,EAAMtsB,SAAQ,SAAUugB,GACtB,IAAI+c,GAA+C,IAAxC,CAAC,OAAQ,OAAOhjB,QAAQiG,GAAoB,UAAY,YACnE0E,EAASlM,EAAS,GAAIkM,EAAQ6c,EAAMxE,GAAM/c,OAG5CxP,EAAK0tB,QAAQxZ,OAASA,EAEflU,EAUT,SAASy4B,GAAMz4B,GACb,IAAIwP,EAAYxP,EAAKwP,UACjB/C,EAAgB+C,EAAUvE,MAAM,KAAK,GACrCytB,EAAiBlpB,EAAUvE,MAAM,KAAK,GAG1C,GAAIytB,EAAgB,CAClB,IAAIlF,EAAgBxzB,EAAK0tB,QACrBhlB,EAAY8qB,EAAc9qB,UAC1BwL,EAASsf,EAActf,OAEvB0f,GAA2D,IAA9C,CAAC,SAAU,OAAOrqB,QAAQkD,GACvC8f,EAAOqH,EAAa,OAAS,MAC7BhD,EAAcgD,EAAa,QAAU,SAErC+E,EAAe,CACjB5M,MAAOt9B,EAAe,GAAI89B,EAAM7jB,EAAU6jB,IAC1CP,IAAKv9B,EAAe,GAAI89B,EAAM7jB,EAAU6jB,GAAQ7jB,EAAUkoB,GAAe1c,EAAO0c,KAGlF5wB,EAAK0tB,QAAQxZ,OAASlM,EAAS,GAAIkM,EAAQykB,EAAaD,IAG1D,OAAO14B,EAUT,SAAS2X,GAAK3X,GACZ,IAAK20B,GAAmB30B,EAAKnS,SAASub,UAAW,OAAQ,mBACvD,OAAOpJ,EAGT,IAAIqvB,EAAUrvB,EAAK0tB,QAAQhlB,UACvBkwB,EAAQ9H,EAAK9wB,EAAKnS,SAASub,WAAW,SAAUyjB,GAClD,MAAyB,oBAAlBA,EAAS7wB,QACf+yB,WAEH,GAAIM,EAAQxiB,OAAS+rB,EAAMx9B,KAAOi0B,EAAQh0B,KAAOu9B,EAAMt8B,OAAS+yB,EAAQj0B,IAAMw9B,EAAM/rB,QAAUwiB,EAAQ/yB,MAAQs8B,EAAMv9B,KAAM,CAExH,IAAkB,IAAd2E,EAAK2X,KACP,OAAO3X,EAGTA,EAAK2X,MAAO,EACZ3X,EAAK+a,WAAW,uBAAyB,OACpC,CAEL,IAAkB,IAAd/a,EAAK2X,KACP,OAAO3X,EAGTA,EAAK2X,MAAO,EACZ3X,EAAK+a,WAAW,wBAAyB,EAG3C,OAAO/a,EAUT,SAAS64B,GAAM74B,GACb,IAAIwP,EAAYxP,EAAKwP,UACjB/C,EAAgB+C,EAAUvE,MAAM,KAAK,GACrCuoB,EAAgBxzB,EAAK0tB,QACrBxZ,EAASsf,EAActf,OACvBxL,EAAY8qB,EAAc9qB,UAE1B+nB,GAAwD,IAA9C,CAAC,OAAQ,SAASlnB,QAAQkD,GAEpCqsB,GAA6D,IAA5C,CAAC,MAAO,QAAQvvB,QAAQkD,GAO7C,OALAyH,EAAOuc,EAAU,OAAS,OAAS/nB,EAAU+D,IAAkBqsB,EAAiB5kB,EAAOuc,EAAU,QAAU,UAAY,GAEvHzwB,EAAKwP,UAAY2gB,EAAqB3gB,GACtCxP,EAAK0tB,QAAQxZ,OAASuZ,EAAcvZ,GAE7BlU,EAwBT,IAAIoJ,GAAY,CASdqvB,MAAO,CAELld,MAAO,IAEPD,SAAS,EAETruB,GAAIwrC,IAyCN7pB,OAAQ,CAEN2M,MAAO,IAEPD,SAAS,EAETruB,GAAI2hB,GAIJA,OAAQ,GAoBV+M,gBAAiB,CAEfJ,MAAO,IAEPD,SAAS,EAETruB,GAAI0uB,GAMJ0c,SAAU,CAAC,OAAQ,QAAS,MAAO,UAOnC3rB,QAAS,EAMTkP,kBAAmB,gBAYrByb,aAAc,CAEZ9b,MAAO,IAEPD,SAAS,EAETruB,GAAIoqC,IAaN3pB,MAAO,CAEL6N,MAAO,IAEPD,SAAS,EAETruB,GAAIygB,GAEJvd,QAAS,aAcX6d,KAAM,CAEJuN,MAAO,IAEPD,SAAS,EAETruB,GAAI+gB,GAOJ6N,SAAU,OAKVnP,QAAS,EAOTkP,kBAAmB,WAQnBqb,gBAAgB,EAQhBE,yBAAyB,GAU3B0B,MAAO,CAELtd,MAAO,IAEPD,SAAS,EAETruB,GAAI4rC,IAaNlhB,KAAM,CAEJ4D,MAAO,IAEPD,SAAS,EAETruB,GAAI0qB,IAkBNwc,aAAc,CAEZ5Y,MAAO,IAEPD,SAAS,EAETruB,GAAIknC,GAMJE,iBAAiB,EAMjB3nC,EAAG,SAMH06B,EAAG,SAkBL+L,WAAY,CAEV5X,MAAO,IAEPD,SAAS,EAETruB,GAAIkmC,GAEJ4F,OAAQ3F,GAORiB,qBAAiB/jC,IAuCjB0oC,GAAW,CAKbxpB,UAAW,SAMX+hB,eAAe,EAMfnW,eAAe,EAOfgX,iBAAiB,EAQjBrjB,SAAU,aAUVgN,SAAU,aAOV3S,UAAWA,IAeT6vB,GAAS,WASX,SAASA,EAAOvwB,EAAWwL,GACzB,IAAInc,EAAQ3I,KAERgB,EAAUC,UAAUjC,OAAS,QAAsBkC,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAClFi9B,EAAel+B,KAAM6pC,GAErB7pC,KAAKwjC,eAAiB,WACpB,OAAO1W,sBAAsBnkB,EAAMmjB,SAIrC9rB,KAAK8rB,OAAS/Q,EAAS/a,KAAK8rB,OAAO0F,KAAKxxB,OAGxCA,KAAKgB,QAAU4X,EAAS,GAAIixB,EAAOD,SAAU5oC,GAG7ChB,KAAKuV,MAAQ,CACXyS,aAAa,EACbqa,WAAW,EACXc,cAAe,IAIjBnjC,KAAKsZ,UAAYA,GAAaA,EAAUwwB,OAASxwB,EAAU,GAAKA,EAChEtZ,KAAK8kB,OAASA,GAAUA,EAAOglB,OAAShlB,EAAO,GAAKA,EAGpD9kB,KAAKgB,QAAQgZ,UAAY,GACzBxc,OAAOkgB,KAAK9E,EAAS,GAAIixB,EAAOD,SAAS5vB,UAAWhZ,EAAQgZ,YAAYna,SAAQ,SAAU+M,GACxFjE,EAAM3H,QAAQgZ,UAAUpN,GAAQgM,EAAS,GAAIixB,EAAOD,SAAS5vB,UAAUpN,IAAS,GAAI5L,EAAQgZ,UAAYhZ,EAAQgZ,UAAUpN,GAAQ,OAIpI5M,KAAKga,UAAYxc,OAAOkgB,KAAK1d,KAAKgB,QAAQgZ,WAAW4O,KAAI,SAAUhc,GACjE,OAAOgM,EAAS,CACdhM,KAAMA,GACLjE,EAAM3H,QAAQgZ,UAAUpN,OAG5ByzB,MAAK,SAAU3kB,EAAGC,GACjB,OAAOD,EAAEyQ,MAAQxQ,EAAEwQ,SAOrBnsB,KAAKga,UAAUna,SAAQ,SAAUokC,GAC3BA,EAAgB/X,SAAW6O,EAAWkJ,EAAgB0F,SACxD1F,EAAgB0F,OAAOhhC,EAAM2Q,UAAW3Q,EAAMmc,OAAQnc,EAAM3H,QAASijC,EAAiBt7B,EAAM4M,UAKhGvV,KAAK8rB,SAEL,IAAIE,EAAgBhsB,KAAKgB,QAAQgrB,cAC7BA,GAEFhsB,KAAK6sB,uBAGP7sB,KAAKuV,MAAMyW,cAAgBA,EAqD7B,OA9CAmS,EAAY0L,EAAQ,CAAC,CACnBvqC,IAAK,SACLK,MAAO,WACL,OAAOmsB,EAAOnuB,KAAKqC,QAEpB,CACDV,IAAK,UACLK,MAAO,WACL,OAAO+oB,EAAQ/qB,KAAKqC,QAErB,CACDV,IAAK,uBACLK,MAAO,WACL,OAAOktB,EAAqBlvB,KAAKqC,QAElC,CACDV,IAAK,wBACLK,MAAO,WACL,OAAO2tB,GAAsB3vB,KAAKqC,UA4B/B6pC,EA7HI,GAqJbA,GAAOE,OAA2B,qBAAX7sC,OAAyBA,OAASC,GAAQ6sC,YACjEH,GAAOpD,WAAaA,GACpBoD,GAAOD,SAAWA,GAEH,Y","file":"js/chunk-11a8c572.1ead4e8f.js","sourcesContent":["'use strict';\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction unwrapExports (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar jsYearCalendar = createCommonjsModule(function (module, exports) {\n(function (global, factory) {\n {\n factory(exports);\n }\n})(typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : commonjsGlobal, function (_exports) {\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports[\"default\"] = void 0;\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\n function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n /* =========================================================\r\n * JS year calendar v1.0.0\r\n * Repo: https://github.com/year-calendar/js-year-calendar\r\n * =========================================================\r\n * Created by Paul David-Sivelle\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ========================================================= */\n // NodeList forEach() polyfill\n if (typeof NodeList !== \"undefined\" && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = function (callback, thisArg) {\n thisArg = thisArg || window;\n\n for (var i = 0; i < this.length; i++) {\n callback.call(thisArg, this[i], i, this);\n }\n };\n } // Element closest() polyfill\n\n\n if (typeof Element !== \"undefined\" && !Element.prototype.matches) {\n var prototype = Element.prototype;\n Element.prototype.matches = prototype.msMatchesSelector || prototype.webkitMatchesSelector;\n }\n\n if (typeof Element !== \"undefined\" && !Element.prototype.closest) {\n Element.prototype.closest = function (s) {\n var el = this;\n if (!document.documentElement.contains(el)) return null;\n\n do {\n if (el.matches(s)) return el;\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType == 1);\n\n return null;\n };\n }\n /**\r\n * Calendar instance.\r\n */\n\n\n var Calendar = /*#__PURE__*/function () {\n /**\r\n * Fired when a day is clicked.\r\n * @event\r\n * @example\r\n * ```\r\n * \r\n * document.querySelector('.calendar').addEventListener('clickDay', function(e) {\r\n * console.log(\"Click on day: \" + e.date + \" (\" + e.events.length + \" events)\");\r\n * })\r\n * ```\r\n */\n\n /**\r\n * Fired when a day is right clicked.\r\n * @event\r\n * @example\r\n * ```\r\n * \r\n * document.querySelector('.calendar').addEventListener('clickDay', function(e) {\r\n * console.log(\"Right click on day: \" + e.date + \" (\" + e.events.length + \" events)\");\r\n * })\r\n * ```\r\n */\n\n /**\r\n * Fired when the mouse enter in a day.\r\n * @event\r\n * @example\r\n * ```\r\n * \r\n * document.querySelector('.calendar').addEventListener('mouseOnDay', function(e) {\r\n * console.log(\"Mouse enter in a day: \" + e.date + \" (\" + e.events.length + \" events)\");\r\n * })\r\n * ```\r\n */\n\n /**\r\n * Fired when the mouse leave a day.\r\n * @event\r\n * @example\r\n * ```\r\n * \r\n * document.querySelector('.calendar').addEventListener('mouseOutDay', function(e) {\r\n * console.log(\"Mouse leave a day: \" + e.date + \" (\" + e.events.length + \" events)\");\r\n * })\r\n * ```\r\n */\n\n /**\r\n * Fired when the calendar rendering is ended.\r\n * @event\r\n * @example\r\n * ```\r\n * \r\n * document.querySelector('.calendar').addEventListener('renderEnd', function(e) {\r\n * console.log(\"Render end for year: \" + e.currentYear);\r\n * })\r\n * ```\r\n */\n\n /**\r\n * Fired when a date range is selected.\r\n * \r\n * Don't forget to enable the `enableRangeSelection` option to be able to use the range selection functionality.\r\n * @event\r\n * @example\r\n * ```\r\n * \r\n * document.querySelector('.calendar').addEventListener('selectRange', function(e) {\r\n * console.log(\"Select the range: \" + e.startDate + \" - \" + e.endDate);\r\n * })\r\n * ```\r\n */\n\n /**\r\n * Triggered after the changing the current year.\r\n * @event\r\n * @example\r\n * ```\r\n * \r\n * document.querySelector('.calendar').addEventListener('yearChanged', function(e) {\r\n * console.log(\"New year selected: \" + e.currentYear);\r\n * })\r\n * ```\r\n */\n\n /**\r\n * Create a new calendar.\r\n * @param element The element (or the selector to an element) in which the calendar should be created.\r\n * @param options [Optional] The options used to customize the calendar\r\n */\n function Calendar(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, Calendar);\n\n _defineProperty(this, \"element\", void 0);\n\n _defineProperty(this, \"options\", void 0);\n\n _defineProperty(this, \"_dataSource\", void 0);\n\n _defineProperty(this, \"_mouseDown\", void 0);\n\n _defineProperty(this, \"_rangeStart\", void 0);\n\n _defineProperty(this, \"_rangeEnd\", void 0);\n\n _defineProperty(this, \"_responsiveInterval\", void 0);\n\n _defineProperty(this, \"_nbCols\", void 0);\n\n _defineProperty(this, \"clickDay\", void 0);\n\n _defineProperty(this, \"dayContextMenu\", void 0);\n\n _defineProperty(this, \"mouseOnDay\", void 0);\n\n _defineProperty(this, \"mouseOutDay\", void 0);\n\n _defineProperty(this, \"renderEnd\", void 0);\n\n _defineProperty(this, \"selectRange\", void 0);\n\n _defineProperty(this, \"yearChanged\", void 0);\n\n if (element instanceof HTMLElement) {\n this.element = element;\n } else if (typeof element === \"string\") {\n this.element = document.querySelector(element);\n } else {\n throw new Error(\"The element parameter should be a DOM node or a selector\");\n }\n\n this.element.classList.add('calendar');\n\n this._initializeEvents(options);\n\n this._initializeOptions(options);\n\n this.setYear(this.options.startYear);\n }\n\n _createClass(Calendar, [{\n key: \"_initializeOptions\",\n value: function _initializeOptions(opt) {\n if (opt == null) {\n opt = {};\n }\n\n this.options = {\n startYear: !isNaN(parseInt(opt.startYear)) ? parseInt(opt.startYear) : new Date().getFullYear(),\n minDate: opt.minDate instanceof Date ? opt.minDate : null,\n maxDate: opt.maxDate instanceof Date ? opt.maxDate : null,\n language: opt.language != null && Calendar.locales[opt.language] != null ? opt.language : 'en',\n allowOverlap: opt.allowOverlap != null ? opt.allowOverlap : true,\n displayWeekNumber: opt.displayWeekNumber != null ? opt.displayWeekNumber : false,\n displayDisabledDataSource: opt.displayDisabledDataSource != null ? opt.displayDisabledDataSource : false,\n displayHeader: opt.displayHeader != null ? opt.displayHeader : true,\n alwaysHalfDay: opt.alwaysHalfDay != null ? opt.alwaysHalfDay : false,\n enableRangeSelection: opt.enableRangeSelection != null ? opt.enableRangeSelection : false,\n disabledDays: opt.disabledDays instanceof Array ? opt.disabledDays : [],\n disabledWeekDays: opt.disabledWeekDays instanceof Array ? opt.disabledWeekDays : [],\n hiddenWeekDays: opt.hiddenWeekDays instanceof Array ? opt.hiddenWeekDays : [],\n roundRangeLimits: opt.roundRangeLimits != null ? opt.roundRangeLimits : false,\n dataSource: opt.dataSource instanceof Array || typeof opt.dataSource === \"function\" ? opt.dataSource : [],\n style: opt.style == 'background' || opt.style == 'border' || opt.style == 'custom' ? opt.style : 'border',\n enableContextMenu: opt.enableContextMenu != null ? opt.enableContextMenu : false,\n contextMenuItems: opt.contextMenuItems instanceof Array ? opt.contextMenuItems : [],\n customDayRenderer: typeof opt.customDayRenderer === \"function\" ? opt.customDayRenderer : null,\n customDataSourceRenderer: typeof opt.customDataSourceRenderer === \"function\" ? opt.customDataSourceRenderer : null,\n weekStart: !isNaN(parseInt(opt.weekStart)) ? parseInt(opt.weekStart) : null,\n loadingTemplate: typeof opt.loadingTemplate === \"string\" || opt.loadingTemplate instanceof HTMLElement ? opt.loadingTemplate : null\n };\n\n if (this.options.dataSource instanceof Array) {\n this._dataSource = this.options.dataSource;\n\n this._initializeDatasourceColors();\n }\n }\n }, {\n key: \"_initializeEvents\",\n value: function _initializeEvents(opt) {\n if (opt == null) {\n opt = [];\n }\n\n if (opt.yearChanged) {\n this.element.addEventListener('yearChanged', opt.yearChanged);\n }\n\n if (opt.renderEnd) {\n this.element.addEventListener('renderEnd', opt.renderEnd);\n }\n\n if (opt.clickDay) {\n this.element.addEventListener('clickDay', opt.clickDay);\n }\n\n if (opt.dayContextMenu) {\n this.element.addEventListener('dayContextMenu', opt.dayContextMenu);\n }\n\n if (opt.selectRange) {\n this.element.addEventListener('selectRange', opt.selectRange);\n }\n\n if (opt.mouseOnDay) {\n this.element.addEventListener('mouseOnDay', opt.mouseOnDay);\n }\n\n if (opt.mouseOutDay) {\n this.element.addEventListener('mouseOutDay', opt.mouseOutDay);\n }\n }\n }, {\n key: \"_fetchDataSource\",\n value: function _fetchDataSource(callback) {\n if (typeof this.options.dataSource === \"function\") {\n var getDataSource = this.options.dataSource;\n\n if (getDataSource.length == 2) {\n // 2 parameters, means callback method\n getDataSource(this.options.startYear, callback);\n } else {\n // 1 parameter, means synchronous or promise method\n var result = getDataSource(this.options.startYear);\n\n if (result instanceof Array) {\n callback(result);\n } else {\n result.then(callback);\n }\n }\n } else {\n callback(this.options.dataSource);\n }\n }\n }, {\n key: \"_initializeDatasourceColors\",\n value: function _initializeDatasourceColors() {\n for (var i = 0; i < this._dataSource.length; i++) {\n if (this._dataSource[i].color == null) {\n this._dataSource[i].color = Calendar.colors[i % Calendar.colors.length];\n }\n }\n }\n /**\r\n * Renders the calendar.\r\n */\n\n }, {\n key: \"render\",\n value: function render() {\n var isLoading = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n // Clear the calendar (faster method)\n while (this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n\n if (this.options.displayHeader) {\n this._renderHeader();\n }\n\n if (isLoading) {\n this._renderLoading();\n } else {\n this._renderBody();\n\n this._renderDataSource();\n\n this._applyEvents(); // Fade animation\n\n\n var months = this.element.querySelector('.months-container');\n months.style.opacity = '0';\n months.style.display = 'block';\n months.style.transition = 'opacity 0.5s';\n setTimeout(function () {\n months.style.opacity = '1';\n setTimeout(function () {\n return months.style.transition = '';\n }, 500);\n }, 0);\n\n this._triggerEvent('renderEnd', {\n currentYear: this.options.startYear\n });\n }\n }\n }, {\n key: \"_renderHeader\",\n value: function _renderHeader() {\n var header = document.createElement('div');\n header.classList.add('calendar-header');\n var headerTable = document.createElement('table');\n var prevDiv = document.createElement('th');\n prevDiv.classList.add('prev');\n\n if (this.options.minDate != null && this.options.minDate > new Date(this.options.startYear - 1, 11, 31)) {\n prevDiv.classList.add('disabled');\n }\n\n var prevIcon = document.createElement('span');\n prevIcon.innerHTML = \"‹\";\n prevDiv.appendChild(prevIcon);\n headerTable.appendChild(prevDiv);\n var prev2YearDiv = document.createElement('th');\n prev2YearDiv.classList.add('year-title');\n prev2YearDiv.classList.add('year-neighbor2');\n prev2YearDiv.textContent = (this.options.startYear - 2).toString();\n\n if (this.options.minDate != null && this.options.minDate > new Date(this.options.startYear - 2, 11, 31)) {\n prev2YearDiv.classList.add('disabled');\n }\n\n headerTable.appendChild(prev2YearDiv);\n var prevYearDiv = document.createElement('th');\n prevYearDiv.classList.add('year-title');\n prevYearDiv.classList.add('year-neighbor');\n prevYearDiv.textContent = (this.options.startYear - 1).toString();\n\n if (this.options.minDate != null && this.options.minDate > new Date(this.options.startYear - 1, 11, 31)) {\n prevYearDiv.classList.add('disabled');\n }\n\n headerTable.appendChild(prevYearDiv);\n var yearDiv = document.createElement('th');\n yearDiv.classList.add('year-title');\n yearDiv.textContent = this.options.startYear.toString();\n headerTable.appendChild(yearDiv);\n var nextYearDiv = document.createElement('th');\n nextYearDiv.classList.add('year-title');\n nextYearDiv.classList.add('year-neighbor');\n nextYearDiv.textContent = (this.options.startYear + 1).toString();\n\n if (this.options.maxDate != null && this.options.maxDate < new Date(this.options.startYear + 1, 0, 1)) {\n nextYearDiv.classList.add('disabled');\n }\n\n headerTable.appendChild(nextYearDiv);\n var next2YearDiv = document.createElement('th');\n next2YearDiv.classList.add('year-title');\n next2YearDiv.classList.add('year-neighbor2');\n next2YearDiv.textContent = (this.options.startYear + 2).toString();\n\n if (this.options.maxDate != null && this.options.maxDate < new Date(this.options.startYear + 2, 0, 1)) {\n next2YearDiv.classList.add('disabled');\n }\n\n headerTable.appendChild(next2YearDiv);\n var nextDiv = document.createElement('th');\n nextDiv.classList.add('next');\n\n if (this.options.maxDate != null && this.options.maxDate < new Date(this.options.startYear + 1, 0, 1)) {\n nextDiv.classList.add('disabled');\n }\n\n var nextIcon = document.createElement('span');\n nextIcon.innerHTML = \"›\";\n nextDiv.appendChild(nextIcon);\n headerTable.appendChild(nextDiv);\n header.appendChild(headerTable);\n this.element.appendChild(header);\n }\n }, {\n key: \"_renderBody\",\n value: function _renderBody() {\n var monthsDiv = document.createElement('div');\n monthsDiv.classList.add('months-container');\n\n for (var m = 0; m < 12; m++) {\n /* Container */\n var monthDiv = document.createElement('div');\n monthDiv.classList.add('month-container');\n monthDiv.dataset.monthId = m.toString();\n\n if (this._nbCols) {\n monthDiv.classList.add(\"month-\".concat(this._nbCols));\n }\n\n var firstDate = new Date(this.options.startYear, m, 1);\n var table = document.createElement('table');\n table.classList.add('month');\n /* Month header */\n\n var thead = document.createElement('thead');\n var titleRow = document.createElement('tr');\n var titleCell = document.createElement('th');\n titleCell.classList.add('month-title');\n titleCell.setAttribute('colspan', this.options.displayWeekNumber ? '8' : '7');\n titleCell.textContent = Calendar.locales[this.options.language].months[m];\n titleRow.appendChild(titleCell);\n thead.appendChild(titleRow);\n var headerRow = document.createElement('tr');\n\n if (this.options.displayWeekNumber) {\n var weekNumberCell = document.createElement('th');\n weekNumberCell.classList.add('week-number');\n weekNumberCell.textContent = Calendar.locales[this.options.language].weekShort;\n headerRow.appendChild(weekNumberCell);\n }\n\n var weekStart = this.options.weekStart ? this.options.weekStart : Calendar.locales[this.options.language].weekStart;\n var d = weekStart;\n\n do {\n var headerCell = document.createElement('th');\n headerCell.classList.add('day-header');\n headerCell.textContent = Calendar.locales[this.options.language].daysMin[d];\n\n if (this._isHidden(d)) {\n headerCell.classList.add('hidden');\n }\n\n headerRow.appendChild(headerCell);\n d++;\n if (d >= 7) d = 0;\n } while (d != weekStart);\n\n thead.appendChild(headerRow);\n table.appendChild(thead);\n /* Days */\n\n var currentDate = new Date(firstDate.getTime());\n var lastDate = new Date(this.options.startYear, m + 1, 0);\n\n while (currentDate.getDay() != weekStart) {\n currentDate.setDate(currentDate.getDate() - 1);\n }\n\n while (currentDate <= lastDate) {\n var row = document.createElement('tr');\n\n if (this.options.displayWeekNumber) {\n var weekNumberCell = document.createElement('td');\n var currentThursday = new Date(currentDate.getTime()); // Week number is computed based on the thursday\n\n currentThursday.setDate(currentThursday.getDate() - weekStart + 4);\n weekNumberCell.classList.add('week-number');\n weekNumberCell.textContent = this.getWeekNumber(currentThursday).toString();\n row.appendChild(weekNumberCell);\n }\n\n do {\n var cell = document.createElement('td');\n cell.classList.add('day');\n\n if (this._isHidden(currentDate.getDay())) {\n cell.classList.add('hidden');\n }\n\n if (currentDate < firstDate) {\n cell.classList.add('old');\n } else if (currentDate > lastDate) {\n cell.classList.add('new');\n } else {\n if (this._isDisabled(currentDate)) {\n cell.classList.add('disabled');\n }\n\n var cellContent = document.createElement('div');\n cellContent.classList.add('day-content');\n cellContent.textContent = currentDate.getDate().toString();\n cell.appendChild(cellContent);\n\n if (this.options.customDayRenderer) {\n this.options.customDayRenderer(cellContent, currentDate);\n }\n }\n\n row.appendChild(cell);\n currentDate.setDate(currentDate.getDate() + 1);\n } while (currentDate.getDay() != weekStart);\n\n table.appendChild(row);\n }\n\n monthDiv.appendChild(table);\n monthsDiv.appendChild(monthDiv);\n }\n\n this.element.appendChild(monthsDiv);\n }\n }, {\n key: \"_renderLoading\",\n value: function _renderLoading() {\n var container = document.createElement('div');\n container.classList.add('calendar-loading-container');\n container.style.minHeight = this._nbCols * 200 + 'px';\n var loading = document.createElement('div');\n loading.classList.add('calendar-loading');\n\n if (this.options.loadingTemplate) {\n if (typeof this.options.loadingTemplate === \"string\") {\n loading.innerHTML = this.options.loadingTemplate;\n } else if (this.options.loadingTemplate instanceof HTMLElement) {\n loading.appendChild(this.options.loadingTemplate);\n }\n } else {\n var spinner = document.createElement('div');\n spinner.classList.add('calendar-spinner');\n\n for (var i = 1; i <= 3; i++) {\n var bounce = document.createElement('div');\n bounce.classList.add(\"bounce\".concat(i));\n spinner.appendChild(bounce);\n }\n\n loading.appendChild(spinner);\n }\n\n container.appendChild(loading);\n this.element.appendChild(container);\n }\n }, {\n key: \"_renderDataSource\",\n value: function _renderDataSource() {\n var _this = this;\n\n if (this._dataSource != null && this._dataSource.length > 0) {\n this.element.querySelectorAll('.month-container').forEach(function (month) {\n var monthId = parseInt(month.dataset.monthId);\n var firstDate = new Date(_this.options.startYear, monthId, 1);\n var lastDate = new Date(_this.options.startYear, monthId + 1, 1);\n\n if ((_this.options.minDate == null || lastDate > _this.options.minDate) && (_this.options.maxDate == null || firstDate <= _this.options.maxDate)) {\n var monthData = [];\n\n for (var i = 0; i < _this._dataSource.length; i++) {\n if (!(_this._dataSource[i].startDate >= lastDate) || _this._dataSource[i].endDate < firstDate) {\n monthData.push(_this._dataSource[i]);\n }\n }\n\n if (monthData.length > 0) {\n month.querySelectorAll('.day-content').forEach(function (day) {\n var currentDate = new Date(_this.options.startYear, monthId, parseInt(day.textContent));\n var nextDate = new Date(_this.options.startYear, monthId, currentDate.getDate() + 1);\n var dayData = [];\n\n if ((_this.options.minDate == null || currentDate >= _this.options.minDate) && (_this.options.maxDate == null || currentDate <= _this.options.maxDate)) {\n for (var i = 0; i < monthData.length; i++) {\n if (monthData[i].startDate < nextDate && monthData[i].endDate >= currentDate) {\n dayData.push(monthData[i]);\n }\n }\n\n if (dayData.length > 0 && (_this.options.displayDisabledDataSource || !_this._isDisabled(currentDate))) {\n _this._renderDataSourceDay(day, currentDate, dayData);\n }\n }\n });\n }\n }\n });\n }\n }\n }, {\n key: \"_renderDataSourceDay\",\n value: function _renderDataSourceDay(elt, currentDate, events) {\n var parent = elt.parentElement;\n\n switch (this.options.style) {\n case 'border':\n var weight = 0;\n\n if (events.length == 1) {\n weight = 4;\n } else if (events.length <= 3) {\n weight = 2;\n } else {\n parent.style.boxShadow = 'inset 0 -4px 0 0 black';\n }\n\n if (weight > 0) {\n var boxShadow = '';\n\n for (var i = 0; i < events.length; i++) {\n if (boxShadow != '') {\n boxShadow += \",\";\n }\n\n boxShadow += \"inset 0 -\".concat((i + 1) * weight, \"px 0 0 \").concat(events[i].color);\n }\n\n parent.style.boxShadow = boxShadow;\n }\n\n break;\n\n case 'background':\n parent.style.backgroundColor = events[events.length - 1].color;\n var currentTime = currentDate.getTime();\n\n if (events[events.length - 1].startDate.getTime() == currentTime) {\n parent.classList.add('day-start');\n\n if (events[events.length - 1].startHalfDay || this.options.alwaysHalfDay) {\n parent.classList.add('day-half'); // Find color for other half\n\n var otherColor = 'transparent';\n\n for (var i = events.length - 2; i >= 0; i--) {\n if (events[i].startDate.getTime() != currentTime || !events[i].startHalfDay && !this.options.alwaysHalfDay) {\n otherColor = events[i].color;\n break;\n }\n }\n\n parent.style.background = \"linear-gradient(-45deg, \".concat(events[events.length - 1].color, \", \").concat(events[events.length - 1].color, \" 49%, \").concat(otherColor, \" 51%, \").concat(otherColor, \")\");\n } else if (this.options.roundRangeLimits) {\n parent.classList.add('round-left');\n }\n } else if (events[events.length - 1].endDate.getTime() == currentTime) {\n parent.classList.add('day-end');\n\n if (events[events.length - 1].endHalfDay || this.options.alwaysHalfDay) {\n parent.classList.add('day-half'); // Find color for other half\n\n var otherColor = 'transparent';\n\n for (var i = events.length - 2; i >= 0; i--) {\n if (events[i].endDate.getTime() != currentTime || !events[i].endHalfDay && !this.options.alwaysHalfDay) {\n otherColor = events[i].color;\n break;\n }\n }\n\n parent.style.background = \"linear-gradient(135deg, \".concat(events[events.length - 1].color, \", \").concat(events[events.length - 1].color, \" 49%, \").concat(otherColor, \" 51%, \").concat(otherColor, \")\");\n } else if (this.options.roundRangeLimits) {\n parent.classList.add('round-right');\n }\n }\n\n break;\n\n case 'custom':\n if (this.options.customDataSourceRenderer) {\n this.options.customDataSourceRenderer.call(this, elt, currentDate, events);\n }\n\n break;\n }\n }\n }, {\n key: \"_applyEvents\",\n value: function _applyEvents() {\n var _this2 = this;\n\n if (this.options.displayHeader) {\n /* Header buttons */\n this.element.querySelectorAll('.year-neighbor, .year-neighbor2').forEach(function (element) {\n element.addEventListener('click', function (e) {\n if (!e.currentTarget.classList.contains('disabled')) {\n _this2.setYear(parseInt(e.currentTarget.textContent));\n }\n });\n });\n this.element.querySelector('.calendar-header .prev').addEventListener('click', function (e) {\n if (!e.currentTarget.classList.contains('disabled')) {\n var months = _this2.element.querySelector('.months-container');\n\n months.style.transition = 'margin-left 0.1s';\n months.style.marginLeft = '100%';\n setTimeout(function () {\n months.style.visibility = 'hidden';\n months.style.transition = '';\n months.style.marginLeft = '0';\n setTimeout(function () {\n _this2.setYear(_this2.options.startYear - 1);\n }, 50);\n }, 100);\n }\n });\n this.element.querySelector('.calendar-header .next').addEventListener('click', function (e) {\n if (!e.currentTarget.classList.contains('disabled')) {\n var months = _this2.element.querySelector('.months-container');\n\n months.style.transition = 'margin-left 0.1s';\n months.style.marginLeft = '-100%';\n setTimeout(function () {\n months.style.visibility = 'hidden';\n months.style.transition = '';\n months.style.marginLeft = '0';\n setTimeout(function () {\n _this2.setYear(_this2.options.startYear + 1);\n }, 50);\n }, 100);\n }\n });\n }\n\n var cells = this.element.querySelectorAll('.day:not(.old):not(.new):not(.disabled)');\n cells.forEach(function (cell) {\n /* Click on date */\n cell.addEventListener('click', function (e) {\n e.stopPropagation();\n\n var date = _this2._getDate(e.currentTarget);\n\n _this2._triggerEvent('clickDay', {\n element: e.currentTarget,\n date: date,\n events: _this2.getEvents(date)\n });\n });\n /* Click right on date */\n\n cell.addEventListener('contextmenu', function (e) {\n if (_this2.options.enableContextMenu) {\n e.preventDefault();\n\n if (_this2.options.contextMenuItems.length > 0) {\n _this2._openContextMenu(e.currentTarget);\n }\n }\n\n var date = _this2._getDate(e.currentTarget);\n\n _this2._triggerEvent('dayContextMenu', {\n element: e.currentTarget,\n date: date,\n events: _this2.getEvents(date)\n });\n });\n /* Range selection */\n\n if (_this2.options.enableRangeSelection) {\n cell.addEventListener('mousedown', function (e) {\n if (e.which == 1) {\n var currentDate = _this2._getDate(e.currentTarget);\n\n if (_this2.options.allowOverlap || _this2.isThereFreeSlot(currentDate)) {\n _this2._mouseDown = true;\n _this2._rangeStart = _this2._rangeEnd = currentDate;\n\n _this2._refreshRange();\n }\n }\n });\n cell.addEventListener('mouseenter', function (e) {\n if (_this2._mouseDown) {\n var currentDate = _this2._getDate(e.currentTarget);\n\n if (!_this2.options.allowOverlap) {\n var newDate = new Date(_this2._rangeStart.getTime());\n\n if (newDate < currentDate) {\n var nextDate = new Date(newDate.getFullYear(), newDate.getMonth(), newDate.getDate() + 1);\n\n while (newDate < currentDate) {\n if (!_this2.isThereFreeSlot(nextDate, false)) {\n break;\n }\n\n newDate.setDate(newDate.getDate() + 1);\n nextDate.setDate(nextDate.getDate() + 1);\n }\n } else {\n var nextDate = new Date(newDate.getFullYear(), newDate.getMonth(), newDate.getDate() - 1);\n\n while (newDate > currentDate) {\n if (!_this2.isThereFreeSlot(nextDate, true)) {\n break;\n }\n\n newDate.setDate(newDate.getDate() - 1);\n nextDate.setDate(nextDate.getDate() - 1);\n }\n }\n\n currentDate = newDate;\n }\n\n var oldValue = _this2._rangeEnd;\n _this2._rangeEnd = currentDate;\n\n if (oldValue.getTime() != _this2._rangeEnd.getTime()) {\n _this2._refreshRange();\n }\n }\n });\n }\n /* Hover date */\n\n\n cell.addEventListener('mouseenter', function (e) {\n if (!_this2._mouseDown) {\n var date = _this2._getDate(e.currentTarget);\n\n _this2._triggerEvent('mouseOnDay', {\n element: e.currentTarget,\n date: date,\n events: _this2.getEvents(date)\n });\n }\n });\n cell.addEventListener('mouseleave', function (e) {\n var date = _this2._getDate(e.currentTarget);\n\n _this2._triggerEvent('mouseOutDay', {\n element: e.currentTarget,\n date: date,\n events: _this2.getEvents(date)\n });\n });\n });\n\n if (this.options.enableRangeSelection) {\n // Release range selection\n window.addEventListener('mouseup', function (e) {\n if (_this2._mouseDown) {\n _this2._mouseDown = false;\n\n _this2._refreshRange();\n\n var minDate = _this2._rangeStart < _this2._rangeEnd ? _this2._rangeStart : _this2._rangeEnd;\n var maxDate = _this2._rangeEnd > _this2._rangeStart ? _this2._rangeEnd : _this2._rangeStart;\n\n _this2._triggerEvent('selectRange', {\n startDate: minDate,\n endDate: maxDate,\n events: _this2.getEventsOnRange(minDate, new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate() + 1))\n });\n }\n });\n }\n /* Responsive management */\n\n\n if (this._responsiveInterval) {\n clearInterval(this._responsiveInterval);\n this._responsiveInterval = null;\n }\n\n this._responsiveInterval = setInterval(function () {\n if (_this2.element.querySelector('.month') == null) {\n return;\n }\n\n var calendarSize = _this2.element.offsetWidth;\n var monthSize = _this2.element.querySelector('.month').offsetWidth + 10;\n _this2._nbCols = null;\n\n if (monthSize * 6 < calendarSize) {\n _this2._nbCols = 2;\n } else if (monthSize * 4 < calendarSize) {\n _this2._nbCols = 3;\n } else if (monthSize * 3 < calendarSize) {\n _this2._nbCols = 4;\n } else if (monthSize * 2 < calendarSize) {\n _this2._nbCols = 6;\n } else {\n _this2._nbCols = 12;\n }\n\n _this2.element.querySelectorAll('.month-container').forEach(function (month) {\n if (!month.classList.contains(\"month-\".concat(_this2._nbCols))) {\n ['month-2', 'month-3', 'month-4', 'month-6', 'month-12'].forEach(function (className) {\n month.classList.remove(className);\n });\n month.classList.add(\"month-\".concat(_this2._nbCols));\n }\n });\n }, 300);\n }\n }, {\n key: \"_refreshRange\",\n value: function _refreshRange() {\n var _this3 = this;\n\n this.element.querySelectorAll('td.day.range').forEach(function (day) {\n return day.classList.remove('range');\n });\n this.element.querySelectorAll('td.day.range-start').forEach(function (day) {\n return day.classList.remove('range-start');\n });\n this.element.querySelectorAll('td.day.range-end').forEach(function (day) {\n return day.classList.remove('range-end');\n });\n\n if (this._mouseDown) {\n var minDate = this._rangeStart < this._rangeEnd ? this._rangeStart : this._rangeEnd;\n var maxDate = this._rangeEnd > this._rangeStart ? this._rangeEnd : this._rangeStart;\n this.element.querySelectorAll('.month-container').forEach(function (month) {\n var monthId = parseInt(month.dataset.monthId);\n\n if (minDate.getMonth() <= monthId && maxDate.getMonth() >= monthId) {\n month.querySelectorAll('td.day:not(.old):not(.new)').forEach(function (day) {\n var date = _this3._getDate(day);\n\n if (date >= minDate && date <= maxDate) {\n day.classList.add('range');\n\n if (date.getTime() == minDate.getTime()) {\n day.classList.add('range-start');\n }\n\n if (date.getTime() == maxDate.getTime()) {\n day.classList.add('range-end');\n }\n }\n });\n }\n });\n }\n }\n }, {\n key: \"_getElementPosition\",\n value: function _getElementPosition(element) {\n var top = 0,\n left = 0;\n\n do {\n top += element.offsetTop || 0;\n left += element.offsetLeft || 0;\n element = element.offsetParent;\n } while (element);\n\n return {\n top: top,\n left: left\n };\n }\n }, {\n key: \"_openContextMenu\",\n value: function _openContextMenu(elt) {\n var _this4 = this;\n\n var contextMenu = document.querySelector('.calendar-context-menu');\n\n if (contextMenu !== null) {\n contextMenu.style.display = 'none'; // Clear the context menu (faster method)\n\n while (contextMenu.firstChild) {\n contextMenu.removeChild(contextMenu.firstChild);\n }\n } else {\n contextMenu = document.createElement('div');\n contextMenu.classList.add('calendar-context-menu');\n document.body.appendChild(contextMenu);\n }\n\n var date = this._getDate(elt);\n\n var events = this.getEvents(date);\n\n for (var i = 0; i < events.length; i++) {\n var eventItem = document.createElement('div');\n eventItem.classList.add('item');\n eventItem.style.paddingLeft = '4px';\n eventItem.style.boxShadow = \"inset 4px 0 0 0 \".concat(events[i].color);\n var eventItemContent = document.createElement('div');\n eventItemContent.classList.add('content');\n var text = document.createElement('span');\n text.classList.add('text');\n text.textContent = events[i].name;\n eventItemContent.appendChild(text);\n var icon = document.createElement('span');\n icon.classList.add('arrow');\n icon.innerHTML = \"›\";\n eventItemContent.appendChild(icon);\n eventItem.appendChild(eventItemContent);\n\n this._renderContextMenuItems(eventItem, this.options.contextMenuItems, events[i]);\n\n contextMenu.appendChild(eventItem);\n }\n\n if (contextMenu.children.length > 0) {\n var position = this._getElementPosition(elt);\n\n contextMenu.style.left = position.left + 25 + 'px';\n contextMenu.style.right = '';\n contextMenu.style.top = position.top + 25 + 'px';\n contextMenu.style.display = 'block';\n\n if (contextMenu.getBoundingClientRect().right > document.body.offsetWidth) {\n contextMenu.style.left = '';\n contextMenu.style.right = '0';\n } // Launch the position check once the whole context menu tree will be rendered\n\n\n setTimeout(function () {\n return _this4._checkContextMenuItemsPosition();\n }, 0);\n\n var closeContextMenu = function closeContextMenu(event) {\n if (event.type !== 'click' || !contextMenu.contains(event.target)) {\n contextMenu.style.display = 'none';\n window.removeEventListener('click', closeContextMenu);\n window.removeEventListener('resize', closeContextMenu);\n window.removeEventListener('scroll', closeContextMenu);\n }\n };\n\n window.addEventListener('click', closeContextMenu);\n window.addEventListener('resize', closeContextMenu);\n window.addEventListener('scroll', closeContextMenu);\n }\n }\n }, {\n key: \"_renderContextMenuItems\",\n value: function _renderContextMenuItems(parent, items, evt) {\n var subMenu = document.createElement('div');\n subMenu.classList.add('submenu');\n\n for (var i = 0; i < items.length; i++) {\n if (items[i].visible === false || typeof items[i].visible === \"function\" && !items[i].visible(evt)) {\n continue;\n }\n\n var menuItem = document.createElement('div');\n menuItem.classList.add('item');\n var menuItemContent = document.createElement('div');\n menuItemContent.classList.add('content');\n var text = document.createElement('span');\n text.classList.add('text');\n text.textContent = items[i].text;\n menuItemContent.appendChild(text);\n\n if (items[i].click) {\n (function (index) {\n menuItemContent.addEventListener('click', function () {\n document.querySelector('.calendar-context-menu').style.display = 'none';\n items[index].click(evt);\n });\n })(i);\n }\n\n menuItem.appendChild(menuItemContent);\n\n if (items[i].items && items[i].items.length > 0) {\n var icon = document.createElement('span');\n icon.classList.add('arrow');\n icon.innerHTML = \"›\";\n menuItemContent.appendChild(icon);\n\n this._renderContextMenuItems(menuItem, items[i].items, evt);\n }\n\n subMenu.appendChild(menuItem);\n }\n\n if (subMenu.children.length > 0) {\n parent.appendChild(subMenu);\n }\n }\n }, {\n key: \"_checkContextMenuItemsPosition\",\n value: function _checkContextMenuItemsPosition() {\n var menus = document.querySelectorAll('.calendar-context-menu .submenu');\n menus.forEach(function (menu) {\n var htmlMenu = menu;\n htmlMenu.style.display = 'block';\n htmlMenu.style.visibility = 'hidden';\n });\n menus.forEach(function (menu) {\n var htmlMenu = menu;\n\n if (htmlMenu.getBoundingClientRect().right > document.body.offsetWidth) {\n htmlMenu.classList.add('open-left');\n } else {\n htmlMenu.classList.remove('open-left');\n }\n });\n menus.forEach(function (menu) {\n var htmlMenu = menu;\n htmlMenu.style.display = '';\n htmlMenu.style.visibility = '';\n });\n }\n }, {\n key: \"_getDate\",\n value: function _getDate(elt) {\n var day = elt.querySelector('.day-content').textContent;\n var month = elt.closest('.month-container').dataset.monthId;\n var year = this.options.startYear;\n return new Date(year, month, day);\n }\n }, {\n key: \"_triggerEvent\",\n value: function _triggerEvent(eventName, parameters) {\n var event = null;\n\n if (typeof Event === \"function\") {\n event = new Event(eventName);\n } else {\n event = document.createEvent('Event');\n event.initEvent(eventName, false, false);\n }\n\n event.calendar = this;\n\n for (var i in parameters) {\n event[i] = parameters[i];\n }\n\n this.element.dispatchEvent(event);\n return event;\n }\n }, {\n key: \"_isDisabled\",\n value: function _isDisabled(date) {\n if (this.options.minDate != null && date < this.options.minDate || this.options.maxDate != null && date > this.options.maxDate) {\n return true;\n }\n\n if (this.options.disabledWeekDays.length > 0) {\n for (var d = 0; d < this.options.disabledWeekDays.length; d++) {\n if (date.getDay() == this.options.disabledWeekDays[d]) {\n return true;\n }\n }\n }\n\n if (this.options.disabledDays.length > 0) {\n for (var d = 0; d < this.options.disabledDays.length; d++) {\n if (date.getTime() == this.options.disabledDays[d].getTime()) {\n return true;\n }\n }\n }\n\n return false;\n }\n }, {\n key: \"_isHidden\",\n value: function _isHidden(day) {\n if (this.options.hiddenWeekDays.length > 0) {\n for (var d = 0; d < this.options.hiddenWeekDays.length; d++) {\n if (day == this.options.hiddenWeekDays[d]) {\n return true;\n }\n }\n }\n\n return false;\n }\n /**\r\n * Gets the week number for a specified date.\r\n *\r\n * @param date The specified date.\r\n */\n\n }, {\n key: \"getWeekNumber\",\n value: function getWeekNumber(date) {\n // Algorithm from https://weeknumber.net/how-to/javascript\n var workingDate = new Date(date.getTime());\n workingDate.setHours(0, 0, 0, 0); // Thursday in current week decides the year.\n\n workingDate.setDate(workingDate.getDate() + 3 - (workingDate.getDay() + 6) % 7); // January 4 is always in week 1.\n\n var week1 = new Date(workingDate.getFullYear(), 0, 4); // Adjust to Thursday in week 1 and count number of weeks from date to week1.\n\n return 1 + Math.round(((workingDate.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);\n }\n /**\r\n * Gets the data source elements for a specified day.\r\n *\r\n * @param date The specified day.\r\n */\n\n }, {\n key: \"getEvents\",\n value: function getEvents(date) {\n return this.getEventsOnRange(date, new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1));\n }\n /**\r\n * Gets the data source elements for a specified range of days.\r\n *\r\n * @param startDate The beginning of the day range (inclusive).\r\n * @param endDate The end of the day range (non inclusive).\r\n */\n\n }, {\n key: \"getEventsOnRange\",\n value: function getEventsOnRange(startDate, endDate) {\n var events = [];\n\n if (this._dataSource && startDate && endDate) {\n for (var i = 0; i < this._dataSource.length; i++) {\n if (this._dataSource[i].startDate < endDate && this._dataSource[i].endDate >= startDate) {\n events.push(this._dataSource[i]);\n }\n }\n }\n\n return events;\n }\n /**\r\n * Check if there is no event on the first part, last part or on the whole specified day.\r\n *\r\n * @param date The specified day.\r\n * @param after Whether to check for a free slot on the first part (if `false`) or the last part (if `true`) of the day. If `null`, this will check on the whole day.\r\n * \r\n * Usefull only if using the `alwaysHalfDay` option of the calendar, or the `startHalfDay` or `endHalfDay` option of the datasource.\r\n */\n\n }, {\n key: \"isThereFreeSlot\",\n value: function isThereFreeSlot(date) {\n var _this5 = this;\n\n var after = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var events = this.getEvents(date);\n\n if (after === true) {\n return !events.some(function (evt) {\n return !_this5.options.alwaysHalfDay && !evt.endHalfDay || evt.endDate > date;\n });\n } else if (after === false) {\n return !events.some(function (evt) {\n return !_this5.options.alwaysHalfDay && !evt.startHalfDay || evt.startDate < date;\n });\n } else {\n return this.isThereFreeSlot(date, false) || this.isThereFreeSlot(date, true);\n }\n }\n /**\r\n * Gets the year displayed on the calendar.\r\n */\n\n }, {\n key: \"getYear\",\n value: function getYear() {\n return this.options.startYear;\n }\n /**\r\n * Sets the year displayed on the calendar.\r\n *\r\n * @param year The year to displayed on the calendar.\r\n */\n\n }, {\n key: \"setYear\",\n value: function setYear(year) {\n var _this6 = this;\n\n var parsedYear = parseInt(year);\n\n if (!isNaN(parsedYear)) {\n this.options.startYear = parsedYear; // Clear the calendar (faster method)\n\n while (this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n\n if (this.options.displayHeader) {\n this._renderHeader();\n }\n\n var eventResult = this._triggerEvent('yearChanged', {\n currentYear: this.options.startYear,\n preventRendering: false\n });\n\n if (typeof this.options.dataSource === \"function\") {\n this.render(true);\n\n this._fetchDataSource(function (dataSource) {\n _this6._dataSource = dataSource;\n\n _this6._initializeDatasourceColors();\n\n _this6.render(false);\n });\n } else {\n if (!eventResult.preventRendering) {\n this.render();\n }\n }\n }\n }\n /**\r\n * Gets the minimum date of the calendar.\r\n */\n\n }, {\n key: \"getMinDate\",\n value: function getMinDate() {\n return this.options.minDate;\n }\n /**\r\n * Sets the minimum date of the calendar.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param minDate The minimum date to set.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setMinDate\",\n value: function setMinDate(date) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (date instanceof Date || date === null) {\n this.options.minDate = date;\n\n if (!preventRendering) {\n this.render();\n }\n }\n }\n /**\r\n * Gets the maximum date of the calendar.\r\n */\n\n }, {\n key: \"getMaxDate\",\n value: function getMaxDate() {\n return this.options.maxDate;\n }\n /**\r\n * Sets the maximum date of the calendar. \r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param maxDate The maximum date to set.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setMaxDate\",\n value: function setMaxDate(date) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (date instanceof Date || date === null) {\n this.options.maxDate = date;\n\n if (!preventRendering) {\n this.render();\n }\n }\n }\n /**\r\n * Gets the current style used for displaying data source.\r\n */\n\n }, {\n key: \"getStyle\",\n value: function getStyle() {\n return this.options.style;\n }\n /**\r\n * Sets the style to use for displaying data source. \r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param style The style to use for displaying data source (\"background\", \"border\" or \"custom\").\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setStyle\",\n value: function setStyle(style) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.style = style == 'background' || style == 'border' || style == 'custom' ? style : 'border';\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets a value indicating whether the user can select a range which overlapping an other element present in the datasource.\r\n */\n\n }, {\n key: \"getAllowOverlap\",\n value: function getAllowOverlap() {\n return this.options.allowOverlap;\n }\n /**\r\n * Sets a value indicating whether the user can select a range which overlapping an other element present in the datasource.\r\n *\r\n * @param allowOverlap Indicates whether the user can select a range which overlapping an other element present in the datasource.\r\n */\n\n }, {\n key: \"setAllowOverlap\",\n value: function setAllowOverlap(allowOverlap) {\n this.options.allowOverlap = allowOverlap;\n }\n /**\r\n * Gets a value indicating whether the weeks number are displayed.\r\n */\n\n }, {\n key: \"getDisplayWeekNumber\",\n value: function getDisplayWeekNumber() {\n return this.options.displayWeekNumber;\n }\n /**\r\n * Sets a value indicating whether the weeks number are displayed.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param displayWeekNumber Indicates whether the weeks number are displayed.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setDisplayWeekNumber\",\n value: function setDisplayWeekNumber(displayWeekNumber) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.displayWeekNumber = displayWeekNumber;\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets a value indicating whether the calendar header is displayed.\r\n */\n\n }, {\n key: \"getDisplayHeader\",\n value: function getDisplayHeader() {\n return this.options.displayHeader;\n }\n /**\r\n * Sets a value indicating whether the calendar header is displayed.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param displayHeader Indicates whether the calendar header is displayed.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setDisplayHeader\",\n value: function setDisplayHeader(displayHeader) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.displayHeader = displayHeader;\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets a value indicating whether the data source must be rendered on disabled days.\r\n */\n\n }, {\n key: \"getDisplayDisabledDataSource\",\n value: function getDisplayDisabledDataSource() {\n return this.options.displayDisabledDataSource;\n }\n /**\r\n * Sets a value indicating whether the data source must be rendered on disabled days.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param displayDisabledDataSource Indicates whether the data source must be rendered on disabled days.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setDisplayDisabledDataSource\",\n value: function setDisplayDisabledDataSource(displayDisabledDataSource) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.displayDisabledDataSource = displayDisabledDataSource;\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets a value indicating whether the beginning and the end of each range should be displayed as half selected day.\r\n */\n\n }, {\n key: \"getAlwaysHalfDay\",\n value: function getAlwaysHalfDay() {\n return this.options.alwaysHalfDay;\n }\n /**\r\n * Sets a value indicating whether the beginning and the end of each range should be displayed as half selected day.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param alwaysHalfDay Indicates whether the beginning and the end of each range should be displayed as half selected day.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setAlwaysHalfDay\",\n value: function setAlwaysHalfDay(alwaysHalfDay) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.alwaysHalfDay = alwaysHalfDay;\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets a value indicating whether the user can make range selection.\r\n */\n\n }, {\n key: \"getEnableRangeSelection\",\n value: function getEnableRangeSelection() {\n return this.options.enableRangeSelection;\n }\n /**\r\n * Sets a value indicating whether the user can make range selection.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param enableRangeSelection Indicates whether the user can make range selection.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setEnableRangeSelection\",\n value: function setEnableRangeSelection(enableRangeSelection) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.enableRangeSelection = enableRangeSelection;\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets the disabled days.\r\n */\n\n }, {\n key: \"getDisabledDays\",\n value: function getDisabledDays() {\n return this.options.disabledDays;\n }\n /**\r\n * Sets the disabled days.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param disableDays The disabled days to set.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setDisabledDays\",\n value: function setDisabledDays(disabledDays) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.disabledDays = disabledDays instanceof Array ? disabledDays : [];\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets the disabled days of the week.\r\n */\n\n }, {\n key: \"getDisabledWeekDays\",\n value: function getDisabledWeekDays() {\n return this.options.disabledWeekDays;\n }\n /**\r\n * Sets the disabled days of the week.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param disabledWeekDays The disabled days of the week to set.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setDisabledWeekDays\",\n value: function setDisabledWeekDays(disabledWeekDays) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.disabledWeekDays = disabledWeekDays instanceof Array ? disabledWeekDays : [];\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets the hidden days of the week.\r\n */\n\n }, {\n key: \"getHiddenWeekDays\",\n value: function getHiddenWeekDays() {\n return this.options.hiddenWeekDays;\n }\n /**\r\n * Sets the hidden days of the week.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param hiddenWeekDays The hidden days of the week to set.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setHiddenWeekDays\",\n value: function setHiddenWeekDays(hiddenWeekDays) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.hiddenWeekDays = hiddenWeekDays instanceof Array ? hiddenWeekDays : [];\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets a value indicating whether the beginning and the end of each range should be displayed as rounded cells.\r\n */\n\n }, {\n key: \"getRoundRangeLimits\",\n value: function getRoundRangeLimits() {\n return this.options.roundRangeLimits;\n }\n /**\r\n * Sets a value indicating whether the beginning and the end of each range should be displayed as rounded cells.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param roundRangeLimits Indicates whether the beginning and the end of each range should be displayed as rounded cells. \r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setRoundRangeLimits\",\n value: function setRoundRangeLimits(roundRangeLimits) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.roundRangeLimits = roundRangeLimits;\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets a value indicating whether the default context menu must be displayed when right clicking on a day.\r\n */\n\n }, {\n key: \"getEnableContextMenu\",\n value: function getEnableContextMenu() {\n return this.options.enableContextMenu;\n }\n /**\r\n * Sets a value indicating whether the default context menu must be displayed when right clicking on a day. \r\n * \r\n * This method causes a refresh of the calendar.\r\n * \r\n * @param enableContextMenu Indicates whether the default context menu must be displayed when right clicking on a day.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setEnableContextMenu\",\n value: function setEnableContextMenu(enableContextMenu) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.enableContextMenu = enableContextMenu;\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets the context menu items.\r\n */\n\n }, {\n key: \"getContextMenuItems\",\n value: function getContextMenuItems() {\n return this.options.contextMenuItems;\n }\n /**\r\n * Sets new context menu items.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param contextMenuItems The new context menu items.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setContextMenuItems\",\n value: function setContextMenuItems(contextMenuItems) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.contextMenuItems = contextMenuItems instanceof Array ? contextMenuItems : [];\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets the custom day renderer.\r\n */\n\n }, {\n key: \"getCustomDayRenderer\",\n value: function getCustomDayRenderer() {\n return this.options.customDayRenderer;\n }\n /**\r\n * Sets the custom day renderer.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param handler The function used to render the days. This function is called during render for each day.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setCustomDayRenderer\",\n value: function setCustomDayRenderer(customDayRenderer) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.customDayRenderer = typeof customDayRenderer === \"function\" ? customDayRenderer : null;\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets the custom data source renderer.\r\n */\n\n }, {\n key: \"getCustomDataSourceRenderer\",\n value: function getCustomDataSourceRenderer() {\n return this.options.customDataSourceRenderer;\n }\n /**\r\n * Sets the custom data source renderer. Works only with the style set to \"custom\".\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param handler The function used to render the data source. This function is called during render for each day containing at least one event.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setCustomDataSourceRenderer\",\n value: function setCustomDataSourceRenderer(customDataSourceRenderer) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.customDataSourceRenderer = typeof customDataSourceRenderer === \"function\" ? customDataSourceRenderer : null;\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets the language used for calendar rendering.\r\n */\n\n }, {\n key: \"getLanguage\",\n value: function getLanguage() {\n return this.options.language;\n }\n /**\r\n * Sets the language used for calendar rendering.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param language The language to use for calendar redering.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setLanguage\",\n value: function setLanguage(language) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (language != null && Calendar.locales[language] != null) {\n this.options.language = language;\n\n if (!preventRendering) {\n this.render();\n }\n }\n }\n /**\r\n * Gets the current data source.\r\n */\n\n }, {\n key: \"getDataSource\",\n value: function getDataSource() {\n return this.options.dataSource;\n }\n /**\r\n * Sets a new data source.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param dataSource The new data source.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setDataSource\",\n value: function setDataSource(dataSource) {\n var _this7 = this;\n\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.dataSource = dataSource instanceof Array || typeof dataSource === \"function\" ? dataSource : [];\n\n if (typeof this.options.dataSource === \"function\") {\n this.render(true);\n\n this._fetchDataSource(function (dataSource) {\n _this7._dataSource = dataSource;\n\n _this7._initializeDatasourceColors();\n\n _this7.render(false);\n });\n } else {\n this._dataSource = this.options.dataSource;\n\n this._initializeDatasourceColors();\n\n if (!preventRendering) {\n this.render();\n }\n }\n }\n /**\r\n * Gets the starting day of the week.\r\n */\n\n }, {\n key: \"getWeekStart\",\n value: function getWeekStart() {\n return this.options.weekStart ? this.options.weekStart : Calendar.locales[this.options.language].weekStart;\n }\n /**\r\n * Sets the starting day of the week.\r\n * \r\n * This method causes a refresh of the calendar.\r\n *\r\n * @param weekStart The starting day of the week. This option overrides the parameter define in the language file.\r\n * @param preventRedering Indicates whether the rendering should be prevented after the property update.\r\n */\n\n }, {\n key: \"setWeekStart\",\n value: function setWeekStart(weekStart) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.options.weekStart = !isNaN(parseInt(weekStart)) ? parseInt(weekStart) : null;\n\n if (!preventRendering) {\n this.render();\n }\n }\n /**\r\n * Gets the loading template.\r\n */\n\n }, {\n key: \"getLoadingTemplate\",\n value: function getLoadingTemplate() {\n return this.options.loadingTemplate;\n }\n /**\r\n * Sets the loading template.\r\n *\r\n * @param loadingTemplate The loading template.\r\n */\n\n }, {\n key: \"setLoadingTemplate\",\n value: function setLoadingTemplate(loadingTemplate) {\n this.options.loadingTemplate = typeof loadingTemplate === \"string\" || loadingTemplate instanceof HTMLElement ? loadingTemplate : null;\n }\n /**\r\n * \r\n * Add a new element to the data source.\r\n * \r\n * This method causes a refresh of the calendar.\r\n * \r\n * @param element The element to add.\r\n * @param preventRendering Indicates whether the calendar shouldn't be refreshed once the event added.\r\n */\n\n }, {\n key: \"addEvent\",\n value: function addEvent(evt) {\n var preventRendering = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n this._dataSource.push(evt);\n\n if (!preventRendering) {\n this.render();\n }\n }\n }]);\n\n return Calendar;\n }();\n\n _exports[\"default\"] = Calendar;\n\n _defineProperty(Calendar, \"locales\", {\n en: {\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n daysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n daysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n monthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n weekShort: 'W',\n weekStart: 0\n }\n });\n\n _defineProperty(Calendar, \"colors\", ['#2C8FC9', '#9CB703', '#F5BB00', '#FF4A32', '#B56CE2', '#45A597']);\n\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") {\n window.Calendar = Calendar;\n document.addEventListener(\"DOMContentLoaded\", function () {\n document.querySelectorAll('[data-provide=\"calendar\"]').forEach(function (element) {\n return new Calendar(element);\n });\n });\n }\n});\n});\n\nvar JsCalendar = unwrapExports(jsYearCalendar);\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \"/* =========================================================\\n * JS year calendar v0.1.0\\n * Repo: https://github.com/year-calendar/js-year-calendar\\n * =========================================================\\n * Created by Paul David-Sivelle\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n * ========================================================= */\\n/* Main */\\n.calendar {\\n padding: 4px;\\n -webkit-border-radius: 4px;\\n -moz-border-radius: 4px;\\n border-radius: 4px;\\n direction: ltr;\\n overflow-x: hidden;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -khtml-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n /* Header */\\n /* Months */\\n /* Loading */\\n}\\n.calendar:after {\\n /* Apply the right height on the calendar div, even if the months elements are floating */\\n clear: both;\\n content: \\\"\\\";\\n display: block;\\n}\\n.calendar .calendar-rtl {\\n direction: rtl;\\n}\\n.calendar .calendar-rtl .calendar-rtl table tr td span {\\n float: right;\\n}\\n.calendar table {\\n margin: auto;\\n border-spacing: 0;\\n}\\n.calendar table td,\\n.calendar table th {\\n text-align: center;\\n width: 20px;\\n height: 20px;\\n border: none;\\n padding: 4px 5px;\\n font-size: 12px;\\n}\\n.calendar .calendar-header {\\n width: 100%;\\n margin-bottom: 20px;\\n border: 1px solid #ddd;\\n}\\n.calendar .calendar-header table {\\n width: 100%;\\n}\\n.calendar .calendar-header table th {\\n font-size: 22px;\\n padding: 5px 10px;\\n cursor: pointer;\\n}\\n.calendar .calendar-header table th:hover {\\n background: #eeeeee;\\n}\\n.calendar .calendar-header table th.disabled,\\n.calendar .calendar-header table th.disabled:hover {\\n background: none;\\n cursor: default;\\n color: white;\\n}\\n.calendar .calendar-header table th.prev,\\n.calendar .calendar-header table th.next {\\n width: 20px;\\n}\\n.calendar .calendar-header .year-title {\\n font-weight: bold;\\n text-align: center;\\n height: 20px;\\n width: auto;\\n}\\n.calendar .calendar-header .year-neighbor {\\n opacity: 0.4;\\n}\\n@media (max-width: 991px) {\\n .calendar .calendar-header .year-neighbor {\\n display: none;\\n }\\n}\\n.calendar .calendar-header .year-neighbor2 {\\n opacity: 0.2;\\n}\\n@media (max-width: 767px) {\\n .calendar .calendar-header .year-neighbor2 {\\n display: none;\\n }\\n}\\n.calendar .months-container {\\n width: 100%;\\n display: none;\\n}\\n.calendar .months-container .month-container {\\n float: left;\\n text-align: center;\\n height: 200px;\\n padding: 0;\\n}\\n.calendar .months-container .month-container.month-2 {\\n width: 16.66666667%;\\n}\\n.calendar .months-container .month-container.month-3 {\\n width: 25%;\\n}\\n.calendar .months-container .month-container.month-4 {\\n width: 33.33333333%;\\n}\\n.calendar .months-container .month-container.month-6 {\\n width: 50%;\\n}\\n.calendar .months-container .month-container.month-12 {\\n width: 100%;\\n}\\n.calendar table.month th.month-title {\\n font-size: 16px;\\n padding-bottom: 5px;\\n}\\n.calendar table.month th.day-header {\\n font-size: 14px;\\n}\\n.calendar table.month tr td,\\n.calendar table.month tr th {\\n padding: 0;\\n}\\n.calendar table.month tr td.hidden,\\n.calendar table.month tr th.hidden {\\n display: none;\\n}\\n.calendar table.month td.week-number {\\n cursor: default;\\n font-weight: bold;\\n border-right: 1px solid #eee;\\n padding: 5px;\\n}\\n.calendar table.month td.day.round-left {\\n -webkit-border-radius: 8px 0 0 8px;\\n -moz-border-radius: 8px 0 0 8px;\\n border-radius: 8px 0 0 8px;\\n}\\n.calendar table.month td.day.round-right {\\n webkit-border-radius: 0 8px 8px 0 ;\\n -moz-border-radius: 0 8px 8px 0;\\n border-radius: 0 8px 8px 0;\\n}\\n.calendar table.month td.day .day-content {\\n -webkit-border-radius: 4px;\\n -moz-border-radius: 4px;\\n border-radius: 4px;\\n padding: 5px 6px;\\n}\\n.calendar table.month td.old,\\n.calendar table.month td.new,\\n.calendar table.month td.old:hover,\\n.calendar table.month td.new:hover {\\n background: none;\\n cursor: default;\\n}\\n.calendar table.month td.disabled,\\n.calendar table.month td.disabled:hover {\\n color: #dddddd;\\n}\\n.calendar table.month td.disabled .day-content:hover,\\n.calendar table.month td.disabled:hover .day-content:hover {\\n background: none;\\n cursor: default;\\n}\\n.calendar table.month td.range .day-content {\\n background: rgba(0, 0, 0, 0.2);\\n -webkit-border-radius: 0;\\n -moz-border-radius: 0;\\n border-radius: 0;\\n}\\n.calendar table.month td.range.range-start .day-content {\\n border-top-left-radius: 4px;\\n border-bottom-left-radius: 4px;\\n}\\n.calendar table.month td.range.range-end .day-content {\\n border-top-right-radius: 4px;\\n border-bottom-right-radius: 4px;\\n}\\n.calendar .calendar-loading-container {\\n position: relative;\\n text-align: center;\\n min-height: 200px;\\n}\\n.calendar .calendar-loading-container .calendar-loading {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translateX(-50%) translateY(-50%);\\n}\\n.calendar .calendar-spinner {\\n margin: 20px auto;\\n width: 80px;\\n text-align: center;\\n}\\n.calendar .calendar-spinner > div {\\n width: 16px;\\n height: 16px;\\n margin: 5px;\\n background-color: #333;\\n border-radius: 100%;\\n display: inline-block;\\n -webkit-animation: sk-bouncedelay 1s infinite ease-in-out both;\\n animation: sk-bouncedelay 1s infinite ease-in-out both;\\n}\\n.calendar .calendar-spinner > div.bounce1 {\\n -webkit-animation-delay: -0.32s;\\n animation-delay: -0.32s;\\n}\\n.calendar .calendar-spinner > div.bounce2 {\\n -webkit-animation-delay: -0.16s;\\n animation-delay: -0.16s;\\n}\\n/* Context menu */\\n.calendar-context-menu,\\n.calendar-context-menu .submenu {\\n border: 1px solid #ddd;\\n background-color: white;\\n box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);\\n -webkit-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);\\n position: absolute;\\n display: none;\\n}\\n.calendar-context-menu .item {\\n position: relative;\\n}\\n.calendar-context-menu .item .content {\\n padding: 5px 10px;\\n cursor: pointer;\\n display: table;\\n width: 100%;\\n white-space: nowrap;\\n}\\n.calendar-context-menu .item .content:hover {\\n background: #eee;\\n}\\n.calendar-context-menu .item .content .text {\\n display: table-cell;\\n}\\n.calendar-context-menu .item .content .arrow {\\n display: table-cell;\\n padding-left: 10px;\\n text-align: right;\\n}\\n.calendar-context-menu .item .submenu {\\n top: -1px;\\n /* Compensate for the border */\\n}\\n.calendar-context-menu .item .submenu:not(.open-left) {\\n left: 100%;\\n}\\n.calendar-context-menu .item .submenu.open-left {\\n right: 100%;\\n}\\n.calendar-context-menu .item:hover > .submenu {\\n display: block;\\n}\\n.table-striped .calendar table.month tr td,\\n.table-striped .calendar table.month tr th {\\n background-color: transparent;\\n}\\ntable.month td.day .day-content:hover {\\n background: rgba(0, 0, 0, 0.2);\\n cursor: pointer;\\n}\\n@-webkit-keyframes sk-bouncedelay {\\n 0%,\\n 80%,\\n 100% {\\n -webkit-transform: scale(0);\\n }\\n 40% {\\n -webkit-transform: scale(1);\\n }\\n}\\n@keyframes sk-bouncedelay {\\n 0%,\\n 80%,\\n 100% {\\n -webkit-transform: scale(0);\\n transform: scale(0);\\n }\\n 40% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n}\\n\";\nstyleInject(css_248z);\n\n//\nvar script = {\n name: 'Calendar',\n props: ['allowOverlap', 'alwaysHalfDay', 'contextMenuItems', 'customDayRenderer', 'customDataSourceRenderer', 'dataSource', 'disabledDays', 'disabledWeekDays', 'displayDisabledDataSource', 'displayHeader', 'displayWeekNumber', 'enableContextMenu', 'enableRangeSelection', 'hiddenWeekDays', 'language', 'loadingTemplate', 'maxDate', 'minDate', 'roundRangeLimits', 'renderStyle', 'weekStart', 'year'],\n data: function data() {\n return {\n shouldRender: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.calendar = new JsCalendar(this.$el, {\n // Options\n allowOverlap: this.allowOverlap,\n alwaysHalfDay: this.alwaysHalfDay,\n contextMenuItems: this.contextMenuItems,\n customDayRenderer: this.customDayRenderer,\n customDataSourceRenderer: this.customDataSourceRenderer,\n dataSource: this.dataSource,\n disabledDays: this.disabledDays,\n disabledWeekDays: this.disabledWeekDays,\n displayDisabledDataSource: this.displayDisabledDataSource,\n displayHeader: this.displayHeader,\n displayWeekNumber: this.displayWeekNumber,\n enableContextMenu: this.enableContextMenu,\n enableRangeSelection: this.enableRangeSelection,\n hiddenWeekDays: this.hiddenWeekDays,\n language: this.language,\n loadingTemplate: this.loadingTemplate,\n maxDate: this.maxDate,\n minDate: this.minDate,\n roundRangeLimits: this.roundRangeLimits,\n style: this.renderStyle,\n weekStart: this.weekStart,\n startYear: this.year,\n // Events\n clickDay: function clickDay(e) {\n return _this.$emit('click-day', e);\n },\n dayContextMenu: function dayContextMenu(e) {\n return _this.$emit('day-context-menu', e);\n },\n mouseOnDay: function mouseOnDay(e) {\n return _this.$emit('mouse-on-day', e);\n },\n mouseOutDay: function mouseOutDay(e) {\n return _this.$emit('mouse-out-day', e);\n },\n renderEnd: function renderEnd(e) {\n return _this.$emit('render-end', e);\n },\n selectRange: function selectRange(e) {\n return _this.$emit('select-range', e);\n },\n yearChanged: function yearChanged(e) {\n return _this.$emit('year-changed', e);\n }\n });\n },\n computed: {\n allProps: function allProps() {\n return \"\\n \".concat(this.allowOverlap, \"\\n \").concat(this.alwaysHalfDay, \"\\n \").concat(this.contextMenuItems, \"\\n \").concat(this.customDayRenderer, \"\\n \").concat(this.customDataSourceRenderer, \"\\n \").concat(this.dataSource, \"\\n \").concat(this.disabledDays, \"\\n \").concat(this.disabledWeekDays, \"\\n \").concat(this.displayDisabledDataSource, \"\\n \").concat(this.displayHeader, \"\\n \").concat(this.displayWeekNumber, \"\\n \").concat(this.enableContextMenu, \"\\n \").concat(this.enableRangeSelection, \"\\n \").concat(this.hiddenWeekDays, \"\\n \").concat(this.language, \"\\n \").concat(this.loadingTemplate, \"\\n \").concat(this.maxDate, \"\\n \").concat(this.minDate, \"\\n \").concat(this.roundRangeLimits, \"\\n \").concat(this.renderStyle, \"\\n \").concat(this.weekStart, \"\\n \").concat(this.year, \"\\n \");\n }\n },\n watch: {\n allowOverlap: function allowOverlap(val) {\n this.calendar.setAllowOverlap(val);\n },\n alwaysHalfDay: function alwaysHalfDay(val) {\n this.calendar.setAlwaysHalfDay(val, true);\n this.shouldRender = true;\n },\n contextMenuItems: function contextMenuItems(val) {\n this.calendar.setContextMenuItems(val, true);\n this.shouldRender = true;\n },\n customDayRenderer: function customDayRenderer(val) {\n this.calendar.setCustomDayRenderer(val, true);\n this.shouldRender = true;\n },\n customDataSourceRenderer: function customDataSourceRenderer(val) {\n this.calendar.setCustomDataSourceRenderer(val, true);\n this.shouldRender = true;\n },\n dataSource: function dataSource(val) {\n this.calendar.setDataSource(val, true);\n this.shouldRender = true;\n },\n disabledDays: function disabledDays(val) {\n this.calendar.setDisabledDays(val, true);\n this.shouldRender = true;\n },\n disabledWeekDays: function disabledWeekDays(val) {\n this.calendar.setDisabledWeekDays(val, true);\n this.shouldRender = true;\n },\n displayDisabledDataSource: function displayDisabledDataSource(val) {\n this.calendar.setDisplayDisabledDataSource(val, true);\n this.shouldRender = true;\n },\n displayHeader: function displayHeader(val) {\n this.calendar.setDisplayHeader(val, true);\n this.shouldRender = true;\n },\n displayWeekNumber: function displayWeekNumber(val) {\n this.calendar.setDisplayWeekNumber(val, true);\n this.shouldRender = true;\n },\n enableContextMenu: function enableContextMenu(val) {\n this.calendar.setEnableContextMenu(val, true);\n this.shouldRender = true;\n },\n enableRangeSelection: function enableRangeSelection(val) {\n this.calendar.setEnableRangeSelection(val, true);\n this.shouldRender = true;\n },\n hiddenWeekDays: function hiddenWeekDays(val) {\n this.calendar.setHiddenWeekDays(val, true);\n this.shouldRender = true;\n },\n language: function language(val) {\n this.calendar.setLanguage(val, true);\n this.shouldRender = true;\n },\n loadingTemplate: function loadingTemplate(val) {\n this.calendar.setLoadingTemplate(val, true);\n },\n maxDate: function maxDate(val) {\n this.calendar.setMaxDate(val, true);\n this.shouldRender = true;\n },\n minDate: function minDate(val) {\n this.calendar.setMinDate(val, true);\n this.shouldRender = true;\n },\n roundRangeLimits: function roundRangeLimits(val) {\n this.calendar.setRoundRangeLimits(val, true);\n this.shouldRender = true;\n },\n renderStyle: function renderStyle(val) {\n this.calendar.setStyle(val, true);\n this.shouldRender = true;\n },\n weekStart: function weekStart(val) {\n this.calendar.setWeekStart(val, true);\n this.shouldRender = true;\n },\n year: function year(val) {\n this.calendar.setYear(val);\n },\n allProps: function allProps(val) {\n if (this.shouldRender) {\n this.calendar.render();\n this.shouldRender = false;\n }\n }\n },\n locales: JsCalendar.locales // Map the \"locales\" property to the js-year-calendar \"locales\" property, in order to make the locale files compatible\n\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nvar normalizeComponent_1 = normalizeComponent;\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\");\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\nvar vYearCalendar = normalizeComponent_1({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, undefined, undefined);\n\nmodule.exports = vYearCalendar;\n","/*=========================================================================================\r\n File Name: moduleLanguageState.js\r\n Description: Language Module State\r\n ----------------------------------------------------------------------------------------\r\n Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template\r\n Author: Pixinvent\r\n Author URL: http://www.themeforest.net/user/pixinvent\r\n==========================================================================================*/\r\n\r\n\r\nexport default {\r\n languages:[]\r\n}\r\n","/*=========================================================================================\r\n File Name: moduleLanguageMutations.js\r\n Description: Language Module Mutations\r\n ----------------------------------------------------------------------------------------\r\n Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template\r\n Author: Pixinvent\r\n Author URL: http://www.themeforest.net/user/pixinvent\r\n==========================================================================================*/\r\n\r\nexport default {\r\n ADD_ITEM(state, item) {\r\n state.languages.unshift(item)\r\n },\r\n SET_Languages(state, languages) {\r\n state.languages = languages\r\n },\r\n UPDATE_Language(state, language) {\r\n const languageIndex = state.languages.findIndex((p) => p.ID == language.ID)\r\n Object.assign(state.languages[languageIndex], language)\r\n},\r\nREMOVE_ITEM(state, itemId) {\r\n const ItemIndex = state.languages.findIndex((p) => p.ID == itemId)\r\n state.languages.splice(ItemIndex, 1)\r\n},\r\n}\r\n","/*=========================================================================================\r\n File Name: moduleLanguageActions.js\r\n Description: Language Module Actions\r\n ----------------------------------------------------------------------------------------\r\n Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template\r\n Author: Pixinvent\r\n Author URL: http://www.themeforest.net/user/pixinvent\r\n==========================================================================================*/\r\n\r\nimport axios from \"@/axios.js\"\r\n\r\nexport default {\r\n addItem({ commit }, item) {\r\n return new Promise((resolve, reject) => {\r\n axios.post(\"api/Language/AddLanguage\", item)\r\n .then((response) => {\r\n commit('ADD_ITEM', Object.assign(item, { ID: response.data.ID }))\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n\r\n fetchDataListItems({ commit }) {\r\n return new Promise((resolve, reject) => {\r\n axios.get(\"api/Language/GetAll\")\r\n .then((response) => {\r\n commit('SET_Languages', response.data)\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n\r\n updateItem({ commit }, item) {\r\n return new Promise((resolve, reject) => {\r\n axios.put(\"api/Language/UpdateLanguage?ID=\"+item.ID, item)\r\n .then((response) => {\r\n commit('UPDATE_Language', item)\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n\r\n GetItemByID({ commit }, itemid) {\r\n return new Promise((resolve, reject) => {\r\n axios.post(\"api/Language/GetLanguage\", itemid)\r\n .then((response) => {\r\n commit('UPDATE_Language', response.data)\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n\r\n removeItem({ commit }, item) {\r\n return new Promise((resolve, reject) => {\r\n axios.delete(\"api/Language/DeleteLanguage?ID=\"+item.ID)\r\n .then((response) => {\r\n commit('REMOVE_ITEM', item.ID)\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n}\r\n","/*=========================================================================================\r\n File Name: moduleLanguageGetters.js\r\n Description: Language Module Getters\r\n ----------------------------------------------------------------------------------------\r\n Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template\r\n Author: Pixinvent\r\n Author URL: http://www.themeforest.net/user/pixinvent\r\n==========================================================================================*/\r\n\r\n\r\nexport default {\r\n \r\n}\r\n","/*=========================================================================================\r\n File Name: moduleLanguage.js\r\n Description: Language Module\r\n ----------------------------------------------------------------------------------------\r\n Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template\r\n Author: Pixinvent\r\n Author URL: http://www.themeforest.net/user/pixinvent\r\n==========================================================================================*/\r\n\r\n\r\nimport state from './moduleLanguageState.js'\r\nimport mutations from './moduleLanguageMutations.js'\r\nimport actions from './moduleLanguageActions.js'\r\nimport getters from './moduleLanguageGetters.js'\r\n\r\nexport default {\r\n\tnamespaced: true,\r\n state: state,\r\n mutations: mutations,\r\n actions: actions,\r\n getters: getters\r\n}\r\n","/*=========================================================================================\r\n File Name: moduleindustrySectorState.js\r\n Description: industrySector Module State\r\n ----------------------------------------------------------------------------------------\r\n Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template\r\n Author: Pixinvent\r\n Author URL: http://www.themeforest.net/user/pixinvent\r\n==========================================================================================*/\r\n\r\n\r\nexport default {\r\n industrySectors:[]\r\n}\r\n","/*=========================================================================================\r\n File Name: moduleIndustrySectorMutations.js\r\n Description: IndustrySector Module Mutations\r\n ----------------------------------------------------------------------------------------\r\n Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template\r\n Author: Pixinvent\r\n Author URL: http://www.themeforest.net/user/pixinvent\r\n==========================================================================================*/\r\n\r\nexport default {\r\n ADD_ITEM(state, item) {\r\n state.industrySectors.unshift(item)\r\n },\r\n SET_IndustrySectors(state, industrySectors) {\r\n state.industrySectors = industrySectors\r\n },\r\n UPDATE_IndustrySector(state, industrySector) {\r\n const industrySectorIndex = state.industrySectors.findIndex((p) => p.ID == industrySector.ID)\r\n Object.assign(state.industrySectors[industrySectorIndex], industrySector)\r\n},\r\nREMOVE_ITEM(state, itemId) {\r\n const ItemIndex = state.industrySectors.findIndex((p) => p.ID == itemId)\r\n state.industrySectors.splice(ItemIndex, 1)\r\n},\r\n}\r\n","/*=========================================================================================\r\n File Name: moduleIndustrySectorActions.js\r\n Description: IndustrySector Module Actions\r\n ----------------------------------------------------------------------------------------\r\n Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template\r\n Author: Pixinvent\r\n Author URL: http://www.themeforest.net/user/pixinvent\r\n==========================================================================================*/\r\n\r\nimport axios from \"@/axios.js\"\r\n\r\nexport default {\r\n addItem({ commit }, item) {\r\n return new Promise((resolve, reject) => {\r\n axios.post(\"api/IndustrySector/AddIndustrySector\", item)\r\n .then((response) => {\r\n commit('ADD_ITEM', Object.assign(item, { ID: response.data.ID }))\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n\r\n fetchDataListItems({ commit }) {\r\n return new Promise((resolve, reject) => {\r\n axios.get(\"api/IndustrySector/GetAll\")\r\n .then((response) => {\r\n commit('SET_IndustrySectors', response.data)\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n\r\n updateItem({ commit }, item) {\r\n return new Promise((resolve, reject) => {\r\n axios.put(\"api/IndustrySector/UpdateIndustrySector?ID=\"+item.ID, item)\r\n .then((response) => {\r\n commit('UPDATE_IndustrySector', item)\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n\r\n GetItemByID({ commit }, itemid) {\r\n return new Promise((resolve, reject) => {\r\n axios.post(\"api/IndustrySector/GetIndustrySector\", itemid)\r\n .then((response) => {\r\n commit('UPDATE_IndustrySector', response.data)\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n\r\n removeItem({ commit }, item) {\r\n return new Promise((resolve, reject) => {\r\n axios.delete(\"api/IndustrySector/DeleteIndustrySector?ID=\"+item.ID)\r\n .then((response) => {\r\n commit('REMOVE_ITEM', item.ID)\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n}\r\n","/*=========================================================================================\r\n File Name: moduleLanguageGetters.js\r\n Description: Language Module Getters\r\n ----------------------------------------------------------------------------------------\r\n Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template\r\n Author: Pixinvent\r\n Author URL: http://www.themeforest.net/user/pixinvent\r\n==========================================================================================*/\r\n\r\n\r\nexport default {\r\n \r\n}\r\n","/*=========================================================================================\r\n File Name: moduleIndustrySector.js\r\n Description: IndustrySector Module\r\n ----------------------------------------------------------------------------------------\r\n Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template\r\n Author: Pixinvent\r\n Author URL: http://www.themeforest.net/user/pixinvent\r\n==========================================================================================*/\r\n\r\n\r\nimport state from './moduleIndustrySectorState.js'\r\nimport mutations from './moduleIndustrySectorMutations.js'\r\nimport actions from './moduleIndustrySectorActions.js'\r\nimport getters from './moduleIndustrySectorGetters.js'\r\n\r\nexport default {\r\n\tnamespaced: true,\r\n state: state,\r\n mutations: mutations,\r\n actions: actions,\r\n getters: getters\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('YearSummarySearchSidebar',{attrs:{\"isSidebarActive\":_vm.showSearchSidebar,\"search\":_vm.search},on:{\"closeSidebar\":_vm.closeSidebar}}),_c('vs-button',{attrs:{\"type\":\"border\",\"icon-pack\":\"feather\",\"icon\":\"icon-search\"},on:{\"click\":function($event){return _vm.toggleDataSidebar(true)}}},[_vm._v(_vm._s(_vm.$t('Search')))]),_c('div',{staticClass:\"vx-card \"},[_c('Calendar',{attrs:{\"display-week-number\":true,\"data-source\":_vm.courses},on:{\"year-changed\":_vm.yearChanged,\"mouse-on-day\":_vm.mouseOnDay,\"mouse-out-day\":_vm.mouseOutDay}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**!\n* tippy.js v5.2.1\n* (c) 2017-2020 atomiks\n* MIT License\n*/\nimport Popper from 'popper.js';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar version = \"5.2.1\";\n\n/**\n * Triggers reflow\n */\nfunction reflow(element) {\n void element.offsetHeight;\n}\n/**\n * Sets the innerHTML of an element\n */\n\nfunction setInnerHTML(element, html) {\n element[innerHTML()] = html;\n}\n/**\n * Determines if the value is a reference element\n */\n\nfunction isReferenceElement(value) {\n return !!(value && value._tippy && value._tippy.reference === value);\n}\n/**\n * Safe .hasOwnProperty check, for prototype-less objects\n */\n\nfunction hasOwnProperty(obj, key) {\n return {}.hasOwnProperty.call(obj, key);\n}\n/**\n * Returns an array of elements based on the value\n */\n\nfunction getArrayOfElements(value) {\n if (isElement(value)) {\n return [value];\n }\n\n if (isNodeList(value)) {\n return arrayFrom(value);\n }\n\n if (Array.isArray(value)) {\n return value;\n }\n\n return arrayFrom(document.querySelectorAll(value));\n}\n/**\n * Returns a value at a given index depending on if it's an array or number\n */\n\nfunction getValueAtIndexOrReturn(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;\n }\n\n return value;\n}\n/**\n * Prevents errors from being thrown while accessing nested modifier objects\n * in `popperOptions`\n */\n\nfunction getModifier(obj, key) {\n return obj && obj.modifiers && obj.modifiers[key];\n}\n/**\n * Determines if the value is of type\n */\n\nfunction isType(value, type) {\n var str = {}.toString.call(value);\n return str.indexOf('[object') === 0 && str.indexOf(type + \"]\") > -1;\n}\n/**\n * Determines if the value is of type Element\n */\n\nfunction isElement(value) {\n return isType(value, 'Element');\n}\n/**\n * Determines if the value is of type NodeList\n */\n\nfunction isNodeList(value) {\n return isType(value, 'NodeList');\n}\n/**\n * Determines if the value is of type MouseEvent\n */\n\nfunction isMouseEvent(value) {\n return isType(value, 'MouseEvent');\n}\n/**\n * Firefox extensions don't allow setting .innerHTML directly, this will trick\n * it\n */\n\nfunction innerHTML() {\n return 'innerHTML';\n}\n/**\n * Evaluates a function if one, or returns the value\n */\n\nfunction invokeWithArgsOrReturn(value, args) {\n return typeof value === 'function' ? value.apply(void 0, args) : value;\n}\n/**\n * Sets a popperInstance modifier's property to a value\n */\n\nfunction setModifierValue(modifiers, name, property, value) {\n modifiers.filter(function (m) {\n return m.name === name;\n })[0][property] = value;\n}\n/**\n * Returns a new `div` element\n */\n\nfunction div() {\n return document.createElement('div');\n}\n/**\n * Applies a transition duration to a list of elements\n */\n\nfunction setTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = value + \"ms\";\n }\n });\n}\n/**\n * Sets the visibility state to elements so they can begin to transition\n */\n\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\n/**\n * Debounce utility. To avoid bloating bundle size, we're only passing 1\n * argument here, a more generic function would pass all arguments. Only\n * `onMouseMove` uses this which takes the event object for now.\n */\n\nfunction debounce(fn, ms) {\n // Avoid wrapping in `setTimeout` if ms is 0 anyway\n if (ms === 0) {\n return fn;\n }\n\n var timeout;\n return function (arg) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n fn(arg);\n }, ms);\n };\n}\n/**\n * Preserves the original function invocation when another function replaces it\n */\n\nfunction preserveInvocation(originalFn, currentFn, args) {\n if (originalFn && originalFn !== currentFn) {\n originalFn.apply(void 0, args);\n }\n}\n/**\n * Deletes properties from an object (pure)\n */\n\nfunction removeProperties(obj, keys) {\n var clone = _extends({}, obj);\n\n keys.forEach(function (key) {\n delete clone[key];\n });\n return clone;\n}\n/**\n * Ponyfill for Array.from - converts iterable values to an array\n */\n\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\n/**\n * Works like Element.prototype.closest, but uses a callback instead\n */\n\nfunction closestCallback(element, callback) {\n while (element) {\n if (callback(element)) {\n return element;\n }\n\n element = element.parentElement;\n }\n\n return null;\n}\n/**\n * Determines if an array or string includes a string\n */\n\nfunction includes(a, b) {\n return a.indexOf(b) > -1;\n}\n/**\n * Creates an array from string of values separated by whitespace\n */\n\nfunction splitBySpaces(value) {\n return value.split(/\\s+/).filter(Boolean);\n}\n/**\n * Returns the `nextValue` if `nextValue` is not `undefined`, otherwise returns\n * `currentValue`\n */\n\nfunction useIfDefined(nextValue, currentValue) {\n return nextValue !== undefined ? nextValue : currentValue;\n}\n/**\n * Converts a value that's an array or single value to an array\n */\n\nfunction normalizeToArray(value) {\n return [].concat(value);\n}\n/**\n * Returns the ownerDocument of the first available element, otherwise global\n * document\n */\n\nfunction getOwnerDocument(elementOrElements) {\n var _normalizeToArray = normalizeToArray(elementOrElements),\n element = _normalizeToArray[0];\n\n return element ? element.ownerDocument || document : document;\n}\n/**\n * Adds item to array if array does not contain it\n */\n\nfunction pushIfUnique(arr, value) {\n if (arr.indexOf(value) === -1) {\n arr.push(value);\n }\n}\n/**\n * Adds `px` if value is a number, or returns it directly\n */\n\nfunction appendPxIfNumber(value) {\n return typeof value === 'number' ? value + \"px\" : value;\n}\n/**\n * Filters out duplicate elements in an array\n */\n\nfunction unique(arr) {\n return arr.filter(function (item, index) {\n return arr.indexOf(item) === index;\n });\n}\n/**\n * Returns number from number or CSS units string\n */\n\nfunction getNumber(value) {\n return typeof value === 'number' ? value : parseFloat(value);\n}\n/**\n * Gets number or CSS string units in pixels (e.g. `1rem` -> 16)\n */\n\nfunction getUnitsInPx(doc, value) {\n var isRem = typeof value === 'string' && includes(value, 'rem');\n var html = doc.documentElement;\n var rootFontSize = 16;\n\n if (html && isRem) {\n return parseFloat(getComputedStyle(html).fontSize || String(rootFontSize)) * getNumber(value);\n }\n\n return getNumber(value);\n}\n/**\n * Adds the `distancePx` value to the placement of a Popper.Padding object\n */\n\nfunction getComputedPadding(basePlacement, padding, distancePx) {\n if (padding === void 0) {\n padding = 5;\n }\n\n var freshPaddingObject = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n var keys = Object.keys(freshPaddingObject);\n return keys.reduce(function (obj, key) {\n obj[key] = typeof padding === 'number' ? padding : padding[key];\n\n if (basePlacement === key) {\n obj[key] = typeof padding === 'number' ? padding + distancePx : padding[basePlacement] + distancePx;\n }\n\n return obj;\n }, freshPaddingObject);\n}\n\nfunction createMemoryLeakWarning(method) {\n var txt = method === 'destroy' ? 'n already-' : ' ';\n return \"\\n \" + method + \"() was called on a\" + txt + \"destroyed instance. This is a no-op but\\n indicates a potential memory leak.\\n \";\n}\nfunction clean(value) {\n var spacesAndTabs = /[ \\t]{2,}/g;\n var lineStartWithSpaces = /^[ \\t]*/gm;\n return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();\n}\n\nfunction getDevMessage(message) {\n return clean(\"\\n %ctippy.js\\n\\n %c\" + clean(message) + \"\\n\\n %c\\uD83D\\uDC77\\u200D This is a development-only message. It will be removed in production.\\n \");\n}\n\nfunction getFormattedMessage(message) {\n return [getDevMessage(message), // title\n 'color: #00C584; font-size: 1.3em; font-weight: bold;', // message\n 'line-height: 1.5', // footer\n 'color: #a6a095;'];\n}\n/**\n * Helpful wrapper around `console.warn()`.\n * TODO: Should we use a cache so it only warns a single time and not spam the\n * console? (Need to consider hot reloading and invalidation though). Chrome\n * already batches warnings as well.\n */\n\nfunction warnWhen(condition, message) {\n if (condition) {\n var _console;\n\n (_console = console).warn.apply(_console, getFormattedMessage(message));\n }\n}\n/**\n * Helpful wrapper around `console.error()`\n */\n\nfunction errorWhen(condition, message) {\n if (condition) {\n var _console2;\n\n (_console2 = console).error.apply(_console2, getFormattedMessage(message));\n }\n}\n/**\n * Validates the `targets` value passed to `tippy()`\n */\n\nfunction validateTargets(targets) {\n var didPassFalsyValue = !targets;\n var didPassPlainObject = Object.prototype.toString.call(targets) === '[object Object]' && !targets.addEventListener;\n errorWhen(didPassFalsyValue, ['tippy() was passed', '`' + String(targets) + '`', 'as its targets (first) argument. Valid types are: String, Element, Element[],', 'or NodeList.'].join(' '));\n errorWhen(didPassPlainObject, ['tippy() was passed a plain object which is no longer supported as an argument.', 'See: https://atomiks.github.io/tippyjs/misc/#custom-position'].join(' '));\n}\n\nvar pluginProps = {\n animateFill: false,\n followCursor: false,\n inlinePositioning: false,\n sticky: false\n};\nvar defaultProps = _extends({\n allowHTML: true,\n animation: 'fade',\n appendTo: function appendTo() {\n return document.body;\n },\n aria: 'describedby',\n arrow: true,\n boundary: 'scrollParent',\n content: '',\n delay: 0,\n distance: 10,\n duration: [300, 250],\n flip: true,\n flipBehavior: 'flip',\n flipOnUpdate: false,\n hideOnClick: true,\n ignoreAttributes: false,\n inertia: false,\n interactive: false,\n interactiveBorder: 2,\n interactiveDebounce: 0,\n lazy: true,\n maxWidth: 350,\n multiple: false,\n offset: 0,\n onAfterUpdate: function onAfterUpdate() {},\n onBeforeUpdate: function onBeforeUpdate() {},\n onCreate: function onCreate() {},\n onDestroy: function onDestroy() {},\n onHidden: function onHidden() {},\n onHide: function onHide() {},\n onMount: function onMount() {},\n onShow: function onShow() {},\n onShown: function onShown() {},\n onTrigger: function onTrigger() {},\n onUntrigger: function onUntrigger() {},\n placement: 'top',\n plugins: [],\n popperOptions: {},\n role: 'tooltip',\n showOnCreate: false,\n theme: '',\n touch: true,\n trigger: 'mouseenter focus',\n triggerTarget: null,\n updateDuration: 0,\n zIndex: 9999\n}, pluginProps);\nvar defaultKeys = Object.keys(defaultProps);\n/**\n * If the setProps() method encounters one of these, the popperInstance must be\n * recreated\n */\n\nvar POPPER_INSTANCE_DEPENDENCIES = ['arrow', 'boundary', 'distance', 'flip', 'flipBehavior', 'flipOnUpdate', 'offset', 'placement', 'popperOptions'];\n/**\n * Mutates the defaultProps object by setting the props specified\n */\n\nvar setDefaultProps = function setDefaultProps(partialProps) {\n if (process.env.NODE_ENV !== \"production\") {\n validateProps(partialProps, []);\n }\n\n var keys = Object.keys(partialProps);\n keys.forEach(function (key) {\n defaultProps[key] = partialProps[key];\n });\n};\n/**\n * Returns an extended props object including plugin props\n */\n\nfunction getExtendedPassedProps(passedProps) {\n var plugins = passedProps.plugins || [];\n var pluginProps = plugins.reduce(function (acc, plugin) {\n var name = plugin.name,\n defaultValue = plugin.defaultValue;\n\n if (name) {\n acc[name] = passedProps[name] !== undefined ? passedProps[name] : defaultValue;\n }\n\n return acc;\n }, {});\n return _extends({}, passedProps, {}, pluginProps);\n}\n/**\n * Returns an object of optional props from data-tippy-* attributes\n */\n\nfunction getDataAttributeProps(reference, plugins) {\n var propKeys = plugins ? Object.keys(getExtendedPassedProps(_extends({}, defaultProps, {\n plugins: plugins\n }))) : defaultKeys;\n var props = propKeys.reduce(function (acc, key) {\n var valueAsString = (reference.getAttribute(\"data-tippy-\" + key) || '').trim();\n\n if (!valueAsString) {\n return acc;\n }\n\n if (key === 'content') {\n acc[key] = valueAsString;\n } else {\n try {\n acc[key] = JSON.parse(valueAsString);\n } catch (e) {\n acc[key] = valueAsString;\n }\n }\n\n return acc;\n }, {});\n return props;\n}\n/**\n * Evaluates the props object by merging data attributes and disabling\n * conflicting props where necessary\n */\n\nfunction evaluateProps(reference, props) {\n var out = _extends({}, props, {\n content: invokeWithArgsOrReturn(props.content, [reference])\n }, props.ignoreAttributes ? {} : getDataAttributeProps(reference, props.plugins));\n\n if (out.interactive) {\n out.aria = null;\n }\n\n return out;\n}\n/**\n * Validates props with the valid `defaultProps` object\n */\n\nfunction validateProps(partialProps, plugins) {\n if (partialProps === void 0) {\n partialProps = {};\n }\n\n if (plugins === void 0) {\n plugins = [];\n }\n\n var keys = Object.keys(partialProps);\n keys.forEach(function (prop) {\n var value = partialProps[prop];\n var didSpecifyPlacementInPopperOptions = prop === 'popperOptions' && value !== null && typeof value === 'object' && hasOwnProperty(value, 'placement');\n var nonPluginProps = removeProperties(defaultProps, ['animateFill', 'followCursor', 'inlinePositioning', 'sticky']); // These props have custom warnings\n\n var customWarningProps = ['a11y', 'arrowType', 'showOnInit', 'size', 'target', 'touchHold'];\n var didPassUnknownProp = !hasOwnProperty(nonPluginProps, prop) && !includes(customWarningProps, prop); // Check if the prop exists in `plugins`\n\n if (didPassUnknownProp) {\n didPassUnknownProp = plugins.filter(function (plugin) {\n return plugin.name === prop;\n }).length === 0;\n }\n\n warnWhen(prop === 'target', ['The `target` prop was removed in v5 and replaced with the delegate() addon', 'in order to conserve bundle size.', 'See: https://atomiks.github.io/tippyjs/addons/#event-delegation'].join(' '));\n warnWhen(prop === 'a11y', ['The `a11y` prop was removed in v5. Make sure the element you are giving a', 'tippy to is natively focusable, such as