{"version":3,"sources":["webpack://foundation/webpack/bootstrap","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/utils.js","webpack://foundation/(webpack)/buildin/global.js","webpack://foundation//home/vsts/work/1/s/node_modules/js-cookie/src/js.cookie.js","webpack://foundation//home/vsts/work/1/s/node_modules/bootstrap/js/dist/util.js","webpack://foundation/external \"jQuery\"","webpack://foundation//home/vsts/work/1/s/node_modules/axios/index.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/helpers/bind.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/helpers/buildURL.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/cancel/isCancel.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/defaults.js","webpack://foundation//home/vsts/work/1/s/node_modules/process/browser.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/adapters/xhr.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/core/createError.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/core/mergeConfig.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/cancel/Cancel.js","webpack://foundation//home/vsts/work/1/s/node_modules/swiper/js/swiper.js","webpack://foundation//home/vsts/work/1/s/node_modules/popper.js/dist/esm/popper.js","webpack://foundation//home/vsts/work/1/s/node_modules/vue/dist/vue.esm.js","webpack://foundation//home/vsts/work/1/s/node_modules/vuex/dist/vuex.esm.js","webpack://foundation//home/vsts/work/1/s/node_modules/object-fit-images/dist/ofi.common-js.js","webpack://foundation//home/vsts/work/1/s/node_modules/svg4everybody/dist/svg4everybody.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/axios.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/core/Axios.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/core/InterceptorManager.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/core/dispatchRequest.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/core/transformData.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/core/settle.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/core/enhanceError.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/core/buildFullPath.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/helpers/combineURLs.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/helpers/parseHeaders.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/helpers/cookies.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/cancel/CancelToken.js","webpack://foundation//home/vsts/work/1/s/node_modules/axios/lib/helpers/spread.js","webpack://foundation//home/vsts/work/1/s/node_modules/bootstrap/js/dist/collapse.js","webpack://foundation//home/vsts/work/1/s/node_modules/bootstrap/js/dist/modal.js","webpack://foundation//home/vsts/work/1/s/node_modules/bootstrap/js/dist/dropdown.js","webpack://foundation//home/vsts/work/1/s/node_modules/timers-browserify/main.js","webpack://foundation//home/vsts/work/1/s/node_modules/setimmediate/setImmediate.js","webpack://foundation//home/vsts/work/1/s/node_modules/@glidejs/glide/dist/glide.esm.js","webpack://foundation/../@valtech/responsive-bootstrap-toolkit/src/js/responsive-bootstrap-toolkit.js","webpack://foundation/./src/js/lib/sitecore-utils.js","webpack://foundation/./src/js/lib/cookies/cookie-handler.js","webpack://foundation/./src/js/lib/cookies/cookie-config.js","webpack://foundation/./src/js/lib/cookies/cookie-consent.js","webpack://foundation/./src/js/lib/cookies/required-cookie.mixin.js","webpack://foundation/./src/js/foundation.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","toString","isArray","val","isUndefined","isObject","isFunction","forEach","obj","fn","length","isArrayBuffer","isBuffer","constructor","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","arguments","deepMerge","extend","a","b","thisArg","trim","str","replace","g","this","Function","e","factory","OldCookies","Cookies","api","noConflict","attributes","decode","decodeURIComponent","init","converter","set","path","defaults","expires","Date","toUTCString","JSON","stringify","test","write","encodeURIComponent","String","escape","stringifiedAttributes","attributeName","split","cookie","json","jar","cookies","parts","slice","join","charAt","read","parse","getJSON","remove","withConverter","$","_interopDefaultLegacy","$__default","transitionEndEmulator","duration","_this","called","one","Util","TRANSITION_END","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","querySelector","_","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","match","toLowerCase","RegExp","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","jquery","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","jQuery","args","Array","utils","encode","url","params","paramsSerializer","serializedParams","v","toISOString","push","hashmarkIndex","indexOf","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","XMLHttpRequest","process","transformRequest","data","transformResponse","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","method","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","len","run","marker","runClearTimeout","Item","array","noop","nextTick","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","Promise","resolve","reject","requestData","requestHeaders","request","auth","username","password","Authorization","btoa","fullPath","baseURL","open","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","undefined","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","enhanceError","message","code","error","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","prop","axiosKeys","otherKeys","keys","filter","Cancel","src","doc","ssrDocument","body","removeEventListener","activeElement","blur","nodeName","querySelectorAll","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","win","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","matchMedia","Dom7","arr","context","els","tempParent","html","toCreate","innerHTML","unique","uniqueArray","Class","Methods","addClass","className","classes","j","classList","add","removeClass","hasClass","contains","toggleClass","toggle","attr","attrs","arguments$1","attrName","removeAttr","removeAttribute","el","dom7ElementDataStorage","dataKey","transform","elStyle","webkitTransform","transition","webkitTransitionDuration","assign","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","parents","k","handleEvent","events","event$1","dom7LiveListeners","proxyListener","dom7Listeners","handlers","dom7proxy","splice","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","callback","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","outerHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","props","each","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","index","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","closest","find","foundElements","found","matchedItems","removeChild","toAdd","methodName","Utils","deleteProps","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","map","MozTransform","OTransform","MsTransform","msTransform","m41","m42","parseUrlQuery","param","query","urlToParse","paramsPart","len$1","to","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","Support","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","gestures","SwiperClass","self","eventsListeners","eventName","staticAccessors","components","configurable","priority","onceHandler","f7proxy","eventHandler","eventsArray","useModulesParams","instanceParams","instance","moduleName","useModules","modulesParams","moduleParams","modulePropName","moduleProp","moduleEventName","use","installModule","proto","static","install","defineProperties","platform","ua","device","screenWidth","screenHeight","android","ipad","ipod","iphone","ie","edge","firefox","windows","electron","macos","update","updateSize","width","height","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","size","updateSlides","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","slidesForMargin","slideIndex","cssMode","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","floor","ceil","slidesPerView","slidesPerColumnFill","max","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","boxSizing$1","swiperSlideSize","centeredSlides","abs","slidesPerGroupSkip","effect","setWrapperSize","i$1","slidesGridItem","i$2","slidesGridItem$1","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesSize$1","allSlidesOffset","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","loop","slideDuplicateClass","slideDuplicateActiveClass","nextSlide","slideNextClass","prevSlide","slidePrevClass","slideDuplicateNextClass","slideDuplicatePrevClass","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","wrapperEl","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","swiper","animating","preventInteractionOnTransition","newTranslate","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","destroyed","transition$1","transitionStart","direction","slideTo","initialSlide","allowSlideNext","allowSlidePrev","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","increment","loopFix","_clientLeft","slidePrev","normalize","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","threshold","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","diff","loopDestroy","grabCursor","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","Device","ios","androidChrome","desktop","cordova","phonegap","os","osVersion","webView","standalone","webview","pixelRatio","devicePixelRatio","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","type","which","button","isTouched","isMoved","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","preventDefault","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","touchAngle","diffX","diffY","sqrt","pow","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","position","time","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","increment$1","ratio","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","autoplay","running","paused","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","updateOnWindowResize","uniqueNavElements","preloadImages","updateOnImagesReady","noSwipingClass","passiveListeners","containerModifierClass","slideClass","slideBlankClass","wrapperClass","prototypes","attachEvents","touchEvents","start","move","end","passive","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","innerHeight","sort","ref","innerWidth","wasLocked","lastSlidePosition","addClasses","classNames","suffixes","suffix","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","prototypeGroup","protoMethod","moduleParamName","swiperParams","passedParams","swipers","containerEl","newParams","shadowRoot","options","touchEventsTouch","touchEventsDesktop","clickTimeout","__proto__","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","slideEl","destroy","deleteInstance","cleanStyles","extendDefaults","newDefaults","Device$1","Support$1","support","Browser","isEdge","isSafari","isWebView","Browser$1","Resize","resize","resizeHandler","orientationChangeHandler","Observer","func","MutationObserver","WebkitMutationObserver","attach","ObserverFunc","mutations","observerUpdate","requestAnimationFrame","observe","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","Observer$1","Virtual","force","ref$1","addSlidesBefore","addSlidesAfter","ref$2","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","slidesToRender","prependIndexes","appendIndexes","cache","$slideEl","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","enable","disable","Keyboard$1","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","isSupported","implementation","hasFeature","isEventSupported","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","eventsTarged","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","newEvent$1","sign","ignoreWheelEvents","sensitivity","recentWheelEvents$1","shift","prevEvent$1","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","newEvent","raw","prevEvent","animateSlider","releaseScroll","getTime","Navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","Pagination","pagination","current","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bullet","$bullet","bulletIndex","bulletActiveClass","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","formatFractionCurrent","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","renderCustom","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","renderFraction","currentClass","totalClass","renderProgressbar","progressbarFillClass","clickable","clickableClass","modifierClass","progressbarOppositeClass","hiddenClass","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","dragStartPos","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragEl","draggable","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","in","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","activeListenerWithCapture","slideSelector","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","$pictureEl","sourceIndex","sourceEl","$source","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","Controller","LinearSpline","guess","i1","i3","binarySearch","interpolate","getInterpolateFunction","controller","spline","setTranslate$1","controlledTranslate","controlled","control","setControlledTranslate","by","inverse","setControlledTransition","Controller$1","a11y","makeElFocusable","makeElNotFocusable","addElRole","role","addElLabel","label","disableEl","enableEl","onEnterKey","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","click","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","pathArray","part","setHistory","slugify","includes","currentState","state","HashNavigation","onHashCange","newHash","setHash","watchState","Autoplay","$activeSlideEl","reverseDirection","stopOnLastSlide","pause","waitForTransition","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","$cubeShadowEl","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","shadow","slideAngle","round","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowAngle","sin","cos","scale1","shadowScale","scale2","zFactor","Flip","flipEffect","limitRotation","rotateY","rotateX","zIndex","Coverflow","coverflowEffect","center","rotate","depth","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","prefixedPointerEvents","perspectiveOrigin","Thumbs","thumbsParams","thumbs","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","initial","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","hideOnClick","toEdge","fromEdge","isHidden","bulletElement","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","dragClass","containerClass","zoomedSlideClass","touchStart","touchEnd","doubleTap","slideChange","loadOnTransitionStart","preloaderClass","scroll","scrollbarDragMove","notificationClass","paginationUpdate","disableOnInteraction","onVisibilityChange","visibilityState","beforeTransitionStart","sliderFirstMove","beforeDestroy","isBrowser","timeoutDuration","longerTimeoutBrowsers","debounce","scheduled","functionToCheck","getStyleComputedProperty","ownerDocument","defaultView","getParentNode","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","getRoot","node","findCommonOffsetParent","element1","element2","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","bottom","right","getBordersSize","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","Constructor","createClass","descriptor","writable","protoProps","staticProps","_extends","source","getClientRect","offsets","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","check","runModifiers","modifiers","ends","findIndex","cur","console","warn","isDestroyed","arrowStyles","flipped","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","setupEventListeners","updateBound","scrollElement","attachToScrollParents","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","isNumeric","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","splitRegex","ops","op","mergeWithPrevious","reduce","toValue","index2","Defaults","shiftvariation","_data$offsets","shiftOffsets","preventOverflow","transformProp","popperStyles","primary","escapeWithReference","secondary","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","applyStyle","onLoad","modifierOptions","Popper","global","PopperUtils","emptyObject","freeze","isUndef","isDef","isTrue","isPrimitive","_toString","isPlainObject","isRegExp","isValidArrayIndex","isPromise","catch","replacer","_key","__v_isRef","toNumber","makeMap","expectsLowerCase","list","isBuiltInTag","isReservedAttribute","remove$2","item","hasOwn","cached","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","bind$1","ctx","boundFn","_length","toArray","ret","_from","toObject","res","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","keysA","keysB","looseIndexOf","hasChanged","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","charCodeAt","def","bailRE","hasProto","inBrowser","UA","isIE9","isIOS","_isServer","isFF","nativeWatch","watch","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","Set","has","clear","currentInstance","setCurrentInstance","vm","_scope","VNode","tag","elm","componentOptions","asyncFactory","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","SuppressedError","uid$2","pendingCleanupDeps","Dep","_pending","id","subs","addSub","sub","removeSub","depend","info","addDep","targetStack","pushTarget","popTarget","arrayProto","arrayMethods","original","_i","inserted","ob","__ob__","observeArray","dep","arrayKeys","getOwnPropertyNames","NO_INITIAL_VALUE","shouldObserve","toggleObserving","mockDep","shallow","mock","vmCount","defineReactive","ssrMockReactivity","isExtensible","__v_skip","isRef","customSetter","observeEvenIfShallow","setter","childOb","dependArray","newVal","isReadonly","_isVue","del","shallowReactive","makeReactive","__v_isReadonly","proxyWithRefUnwrap","oldValue","normalizeEvent","createFnInvoker","fns","invoker","invokeWithErrorHandling","updateListeners","oldOn","createOnceHandler","old","mergeVNodeHook","hookKey","hook","oldHook","wrappedHook","merged","checkProp","preserve","normalizeChildren","normalizeArrayChildren","nestedIndex","last","isTextNode","_isVList","createElement$1","normalizationType","alwaysNormalize","scopedSlots","default","simpleNormalizeChildren","$vnode","pre","resolveAsset","$options","createComponent","applyNS","traverse","class","registerDeepBindings","_createElement","renderList","iterator","done","renderSlot","fallbackRender","bindObject","nodes","scopedSlotFn","$scopedSlots","$slots","slot","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","_loop_1","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","markStatic$1","staticRenderFns","_renderProxy","_c","markOnce","markStaticNode","bindObjectListeners","existing","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","$stable","proxy","$key","bindDynamicKeys","baseObj","values","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_m","_f","_k","_b","_v","_e","_u","_g","_d","_p","resolveSlots","slots","name_1","name_2","isWhitespace","normalizeScopedSlots","ownerVm","normalSlots","prevScopedSlots","hasNormalSlots","isStable","_normalized","$hasNormal","key_1","normalizeScopedSlot","key_2","proxyNormalSlot","normalized","createSetupContext","_attrsProxy","syncSetupProxy","$attrs","_listenersProxy","$listeners","_slotsProxy","syncSetupSlots","initSlotsProxy","$emit","expose","exposed","changed","defineProxyAttr","target$1","activeEffectScope","currentRenderingInstance","ensureCtor","comp","base","getFirstComponentChild","add$1","$on","remove$1","$off","createOnceHandler$1","_target","updateComponentListeners","oldListeners","EffectScope","detached","active","effects","cleanups","scopes","currentEffectScope","fromParent","teardown","activeInstance","setActiveInstance","prevActiveInstance","isInInactiveTree","$parent","_inactive","activateChildComponent","direct","_directInactive","$children","callHook$1","setContext","prevInst","prevScope","_hasHookEvent","activatedChildren","waiting","flushing","index$1","currentFlushTimestamp","getNow","performance_1","timeStamp","sortCompareFn","post","flushSchedulerQueue","watcher","before","activatedQueue","updatedQueue","callActivatedHooks","_watcher","_isMounted","_isDestroyed","callUpdatedHooks","cleanupDeps","queueWatcher","noRecurse","resolveProvided","_provided","parentProvides","handleError","err","hooks","errorCaptured","globalHandleError","_handled","logError","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","p_1","setImmediate","counter_1","textNode_1","createTextNode","cb","_resolve","createLifeCycle","hookName","mergeLifecycleHook","injectHook","seenObjects","_traverse","seen","isA","isFrozen","depId","uid$1","Watcher","expOrFn","isRenderWatcher","scope","_vm","deep","user","sync","dirty","deps","newDeps","depIds","newDepIds","expression","segments","parsePath","tmp","evaluate","_isBeingDestroyed","onStop","sharedPropertyDefinition","sourceKey","initState","propsOptions","propsData","_props","_propKeys","validateProp","initProps$1","setup","_setupContext","setupResult","_setupState","__sfc","_setupProxy","initSetup","methods","initMethods","_data","getData","initData","computed","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","defineComputed","initComputed$1","createWatcher","initWatch","shouldCache","createComputedGetter","createGetterInvoker","$watch","resolveInject","inject","provideKey","provideDefault","uid","resolveConstructorOptions","super","superOptions","modifiedOptions","modified","latest","sealed","sealedOptions","resolveModifiedOptions","extendOptions","mergeOptions","FunctionalRenderContext","contextVm","_original","isCompiled","_compiled","needNormalization","injections","_scopeId","cloneAndMarkFunctionalResult","renderContext","clone","mergeProps","getComponentName","__name","_componentTag","componentVNodeHooks","hydrating","keepAlive","mountedNode","prepatch","_isComponent","_parentVnode","inlineTemplate","createComponentInstanceForVnode","$mount","oldVnode","parentVnode","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","_renderChildren","prevVNode","_vnode","prevListeners","_parentListeners","propKeys","propOptions","$forceUpdate","updateChildComponent","insert","deactivateChildComponent","$destroy","hooksToMerge","baseCtor","_base","cid","errorComp","resolved","owner","owners","loading","loadingComp","owners_1","sync_1","timerLoading_1","timerTimeout_1","forceRender_1","renderCompleted","reject_1","reason","res_1","component","resolveAsyncComponent","createAsyncPlaceholder","model","transformModel","extractPropsFromVNodeData","functional","vnodes","createFunctionalComponent","nativeOn","abstract","toMerge","_merged","mergeHook","installComponentHooks","f1","f2","warn$2","strats","mergeData","recursive","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","dedupeHooks","mergeAssets","parent_1","provide","defaultStrat","normalizeProps","normalizeInject","dirs","directives","normalizeDirectives$1","extends","mixins","mergeField","strat","warnMissing","assets","camelizedId","PascalCaseId","absent","booleanIndex","getTypeIndex","stringIndex","getType","getPropDefaultValue","prevShouldObserve","functionTypeCheckRE","isSameType","Vue","_init","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","Comp","initProps","initComputed","mixin","_getComponentName","pattern","pruneCache","keepAliveInstance","entry","pruneCacheEntry","_uid","vnodeComponentOptions","initInternalComponent","_self","$root","$refs","initLifecycle","_events","initEvents","parentData","initRender","initInjections","provideOption","provided","initProvide","initMixin$1","dataDef","propsDef","$set","$delete","immediate","stateMixin","hookRE","$once","i_1","cbs","eventsMixin","_update","prevVnode","restoreActiveInstance","__patch__","__vue__","wrapper","lifecycleMixin","$nextTick","_render","_a","prevRenderInst","renderMixin","patternTypes","builtInComponents","KeepAlive","include","exclude","Number","cacheVNode","vnodeToCache","keyToCache","created","mounted","updated","configDef","util","delete","observable","plugin","installedPlugins","_installedPlugins","initUse","initMixin","definition","initAssetRegisters","initGlobalAPI","ssrContext","acceptValue","isEnumeratedAttr","isValidContentEditableValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","isFalsyAttrValue","genClassForVnode","childNode","mergeClassData","staticClass","dynamicClass","stringifyClass","renderClass","stringified","stringifyArray","stringifyObject","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","isTextInputType","selected","nodeOps","tagName","multiple","namespace","createComment","newNode","nextSibling","setTextContent","setStyleScope","scopeId","registerRef","isRemoval","refValue","$refsValue","isFor","refInFor","_isString","_isRef","refs","setSetupRef","emptyNode","sameVnode","typeA","typeB","sameInputType","createKeyToOldIdx","beginIdx","endIdx","directives$1","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","arg","callHook","componentUpdated","callInsert","emptyModifiers","getRawDirName","setupDef","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","_v_attr_proxy","setAttr","removeAttributeNS","isInPre","baseSetAttr","convertEnumeratedValue","setAttributeNS","__ieph","blocker_1","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","chr","expressionPos","expressionEndPos","klass$1","validDivisionCharRE","parseFilters","exp","filters","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","pushFilter","wrapFilter","baseWarn","msg","pluckModuleFunction","addProp","dynamic","rangeSetItem","plain","addAttr","dynamicAttrs","addRawAttr","attrsMap","attrsList","addDirective","isDynamicArg","prependModifierMarker","addHandler","important","middle","native","nativeEvents","newHandler","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","removeFromMap","getAndRemoveAttrByRegex","genComponentModel","valueExpression","assignment","genAssignmentCode","lastIndexOf","eof","isStringStart","parseString","parseBracket","parseModel","inBracket","stringQuote","useMicrotaskFix","attachedTimestamp_1","original_1","_wrapper","currentTarget","updateDOMListeners","event_1","change","normalizeEvents","svgContainer","updateDOMProps","oldProps","_value","strCur","shouldUpdateValue","checkVal","composing","notInFocus","isNotInFocusAndDirty","_vModifiers","isDirtyWithModifiers","parseStyleText","cssText","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","checkChild","styleData","getStyle","style$1","whitespaceRE$1","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","_leaveCb","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","isValidDuration","leave","rm","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","patch","backend","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","ownerArray","isReactivated","initComponent","innerNode","activate","reactivateComponent","setScope","createChildren","invokeCreateHooks","pendingInsert","isPatchable","i_2","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","i_3","childElm","createRmCb","findIdxInOld","oldCh","i_5","patchVnode","removeOnly","hydrate","newCh","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","updateChildren","postpatch","invokeInsertHook","i_6","isRenderedModule","inVPre","hasChildNodes","childrenMatch","i_7","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","patchable","i_8","i_9","insert_1","i_10","createPatchFunction","vmodel","directive","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions_1","curOptions_1","hasNoMatchingOption","actuallySetSelected","isMultiple","option","selectedIndex","locateNode","platformDirectives","originalDisplay","__vOriginalDisplay","unbind","transitionProps","getRealChild","compOptions","extractTransitionData","placeholder","h","rawChild","isNotTextNode","isVShowDirective","Transition","hasParentTransition","_leaving","oldRawChild","oldChild","isSameChild","delayedLeave_1","moveClass","callPendingCbs","_moveCb","recordPosition","applyTranslation","oldPos","pos","dx","dy","moved","WebkitTransform","platformComponents","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","hasMove","_reflow","el_1","propertyName","_hasMove","HTMLUnknownElement","HTMLElement","updateComponent","preWatchers","_preWatchers","mountComponent","defaultTagRE","regexEscapeRE","buildRegex","delimiters","close","klass","staticKeys","transformNode","classBinding","genData","decoder","styleBinding","he","isUnaryTag","canBeLeftOpenTag","isNonPhrasingTag","attribute","dynamicArgAttribute","ncname","qnameCapture","startTagOpen","startTagClose","endTag","doctype","comment","conditionalComment","isPlainTextElement","reCache","decodingMap","encodedAttr","encodedAttrWithNewLines","isIgnoreNewlineTag","shouldIgnoreFirstNewline","decodeAttr","shouldDecodeNewlines","re","parseHTML","lastTag","stack","expectHTML","endTagLength_1","stackedTag_1","reStackedTag","rest","all","chars","parseEndTag","textEnd","commentEnd","shouldKeepComment","substring","advance","conditionalEnd","doctypeMatch","endTagMatch","curIndex","startTagMatch","unarySlash","parseStartTag","unary","shouldDecodeNewlinesForHref","lowerCasedTag","handleStartTag","lowerCasedTagName","transforms","preTransforms","postTransforms","platformIsPreTag","platformMustUseProp","platformGetTagNamespace","onRE","dirRE","forAliasRE","forIteratorRE","stripParensRE","dynamicArgRE","argRE","bindRE","modifierRE","slotRE","lineBreakRE","whitespaceRE","decodeHTMLCached","createASTElement","makeAttrsMap","rawAttrsMap","template","isPreTag","currentParent","preserveWhitespace","whitespaceOption","whitespace","inPre","closeElement","trimEndingWhitespace","processed","processElement","if","elseif","else","addIfCondition","block","forbidden","findPrevElement","slotScope","slotTarget","lastNode","comments","outputSourceRange","ieNSBug","ieNSPrefix","guardIESVGBug","processPre","processRawAttrs","processFor","processIf","processOnce","tagRE","tokenValue","tokens","rawTokens","exec","parseText","processKey","for","checkInFor","processRef","slotTargetDynamic","getRawBindingAttr","slotBinding","getSlotName","name_3","slotContainer_1","processSlotContent","slotName","processComponent","syncGen","isDynamic","hasBindings","parseModifiers","camel","argMatch","processAttrs","inMatch","alias","iteratorMatch","iterator1","iterator2","parseFor","condition","ifConditions","ret_1","cloneASTElement","preTransformNode","typeBinding","ifCondition","ifConditionExtra","hasElse","elseIfCondition","branch0","branch1","branch2","isStaticKey","isPlatformReservedTag","baseOptions","_warn","selectedVal","genSelect","valueBinding","trueValueBinding","falseValueBinding","genCheckboxModel","genRadioModel","needCompositionGuard","genDefaultModel","genStaticKeys$1","genStaticKeysCached","optimize","markStatic","isDirectChildOfTemplateFor","markStaticRoots","staticInFor","staticRoot","fnExpRE","fnInvokeRE","simplePathRE","esc","tab","space","up","down","keyNames","genGuard","modifierCode","prevent","ctrl","alt","meta","genHandlers","staticHandlers","dynamicHandlers","handlerCode","genHandler","isMethodPath","isFunctionExpression","isFunctionInvocation","genModifierCode","modifiers_1","keyModifier","genFilterCode","genKeyFilter","keyVal","keyName","baseDirectives","wrapListeners","wrapData","cloak","CodegenState","dataGenFns","maybeComponent","onceId","generate","ast","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","genFor","ifProcessed","genIf","genChildren","genProps","genSlot","genComponent","bindings","__isScriptSetup","camelName","PascalName","checkType","fromConst","fromMaybeRef","checkBindingType","originalPreState","altGen","altEmpty","genIfConditions","conditions","genTernaryExp","altHelper","needRuntime","hasRuntime","gen","genDirectives","containsSlotChild","needsKey","parent_2","generatedSlots","genScopedSlot","genScopedSlots","inlineRenderFns","genInlineTemplate","isLegacySyntax","reverseProxy","checkSkip","altGenElement","altGenNode","normalizationType_1","needsNormalization","getNormalizationType","gen_1","genNode","genComment","transformSpecialNewlines","genText","dynamicProps","createFunction","errors","createCompileToFunctionFn","compile","compiled","fnGenErrors","baseCompile","div","compileToFunctions","finalOptions","tips","tip","getShouldDecode","idToTemplate","mount","outerHTML","container","getOuterHTML","devtoolHook","deepCopy","f","hit","copy","forEachValue","Module","rawModule","runtime","_children","_rawModule","rawState","prototypeAccessors","namespaced","addChild","getChild","hasChild","actions","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","register","getNamespace","targetModule","newModule","this$1","rawChildModule","unregister","isRegistered","Store","plugins","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","store","dispatch","commit","payload","resetStoreVM","_devtoolHook","targetState","subscribe","mutation","subscribeAction","action","devtoolPlugin","prototypeAccessors$1","genericSubscribe","resetStore","hot","oldVm","wrappedGetters","partial","$$state","enableStrictMode","_withCommit","rootState","isRoot","parentState","getNestedState","local","noNamespace","_type","_payload","_options","unifyObjectStyle","gettersProxy","splitPos","localType","makeLocalGetters","makeLocalContext","registerMutation","rootGetters","registerAction","rawGetter","registerGetter","_Vue","beforeCreate","vuexInit","$store","applyMixin","after","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","isValidMap","helper","startMessage","logger","collapsed","groupCollapsed","group","log","endMessage","groupEnd","getFormattedTime","pad","getHours","getMinutes","getSeconds","getMilliseconds","num","maxLength","times","createNamespacedHelpers","createLogger","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","prevState","nextState","formattedTime","formattedMutation","formattedAction","OFI","propRegex","testImg","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","nativeGetAttribute","nativeSetAttribute","autoModeEnabled","setPlaceholder","img","onImageReady","naturalWidth","fixOne","parsed","fontFamily","ofi","skipTest","naturalHeight","descriptors","ss","keepSrcUsable","picturefill","pf","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundImage","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","fix","imgs","startAutoMode","watchMQ","getOfiImageMaybe","HTMLImageElement","hijackAttributes","svg4everybody","embed","fragment","createDocumentFragment","viewBox","loadreadystatechange","xhr","cachedDocument","_cachedDocument","createHTMLDocument","_cachedTarget","_embeds","getSVGAncestor","rawopts","polyfill","inIframe","requests","uses","numberOfSvgUseElementsToBypass","oninterval","validate","srcSplit","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","promises","spread","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","eject","transformData","throwIfCancellationRequested","throwIfRequested","isAxiosError","toJSON","description","fileName","lineNumber","columnNumber","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","line","originURL","msie","urlParsingNode","resolveURL","port","requestURL","domain","secure","toGMTString","executor","resolvePromise","token","Util__default","_defineProperties","NAME","DATA_KEY","JQUERY_NO_CONFLICT","Default","DefaultType","Collapse","_isTransitioning","_element","_config","_getConfig","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","_proto","actives","activesData","not","startEvent","Event","isDefaultPrevented","_jQueryInterface","dimension","_getDimension","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","_this2","triggerArrayLength","isTransitioning","dispose","removeData","_this3","_getTargetFromElement","triggerArray","isOpen","$element","$trigger","selectors","$target","EVENT_KEY","backdrop","focus","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","relatedTarget","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","modalTransitionDuration","_this4","modalBody","ELEMENT_NODE","_enforceFocus","shownEvent","transitionComplete","_this5","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","animate","appendTo","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","elements","margin","scrollDiv","scrollbarWidth","_this11","Popper__default","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","boundary","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","disabled","isActive","_clearMenus","usePopper","_getParentFromElement","referenceElement","_getPopperConfig","_getPlacement","$parentDropdown","_getOffset","toggles","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","EVENT_CLICK_DATA_API","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","getPrototypeOf","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","script","attachEvent","task","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","_typeof","_classCallCheck","_createClass","_getPrototypeOf","setPrototypeOf","_setPrototypeOf","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","valueOf","_isNativeReflectConstruct","NewTarget","_superPropBase","_get","receiver","startAt","perView","focusAt","gap","hoverpause","swipeThreshold","dragThreshold","perSwipe","animationDuration","rewind","rewindDuration","animationTimingFunc","throttle","peek","cloningRatio","swipeable","dragging","ltr","slider","carousel","nav","toInt","glide","extensions","_name","define","settings","EventsBus","hop","Glide$1","Glide","transformers","Run","make","Move","interval","wait","previous","later","leading","throttled","at","remaining","trailing","MARGIN_TYPE","siblings","nodeList","EventsBinder","closure","VALID_DIRECTIONS","FLIPED_MOVEMENTS","Rtl","Components","modify","Direction","Gap","Sizes","Gaps","Grow","Clones","grow","Peeking","Peek","Focusing","supportsPassive$1","START_EVENTS","MOVE_EVENTS","END_EVENTS","MOUSE_EVENTS","PREVIOUS_CONTROLS_SELECTOR","NEXT_CONTROLS_SELECTOR","sortBreakpoints","COMPONENTS","Html","Events","track","collectSlides","_r","Translate","TRANSFORMERS","mutate","mutator","translate3d","mozTransform","getStartIndex","isOffset","getTravelDistance","travelDistance","isType","movement","startWidth","compose","setupSlides","setupWrapper","wrapperSize","reductor","collect","_Glide$settings","peekIncrementer","cloneCount","_clone","_Components$Html","half","_i2","_i3","Binder","Build","typeClass","sibling","_Glide$settings$class","calculate","isStart","steps","viewSize","calculateForwardIndex","isBound","normalizeForwardIndex","_index","calculateBackwardIndex","normalizeBackwardIndex","Swipe","swipeSin","swipeStartX","swipeStartY","bindSwipeStart","swipe","bindSwipeMove","bindSwipeEnd","subExSx","subEySy","powEX","powEY","swipeHypotenuse","swipeCathetus","asin","_Glide$settings2","swipeDistance","swipeDeg","unbindSwipeMove","unbindSwipeEnd","_Glide$settings3","unbindSwipeStart","Images","dragstart","Anchors","prevented","detach","Controls","_arrowControls","addBindings","setActive","removeActive","controls","setArrowState","resetArrowState","disableArrow","_len","lists","_len2","_key2","removeBindings","press","ArrowRight","ArrowLeft","Breakpoints","_Core","subClass","superClass","_inherits","_super","ResponsiveBootstrapToolkit","framework","detectionDivs","bootstrap","xs","createDiv","sm","md","lg","xl","foundation","small","medium","large","xlarge","getClientRects","isAnExpression","isMatchingExpression","isVisible","isAnyActive","frameworkName","applyDetectionDivs","ms","timer","operator","orEqual","breakpointName","splitExpression","breakpointList","acceptedBreakpoints","sitecoreUtils","getSitecoreMode","currentMode","defaultOptions","CookieHandler","getCookie","setCookie","ApiUrl","Choice","ChoiceMade","Levels","0","1","2","isConsentGiven","CookieConfig","setGdprLevel","level","cookieLevel","getGdprLevel","getGdprName","getGdprLevelFromName","requiredCookie","required","validator","$_requiredCookieAccepted","gdpr","getGdpr","CookieConsent","$_acceptCookie","Success","viewport","scUtils","objectFitImages"],"mappings":"2BACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,I,+BChFrD,IAAIP,EAAO,EAAQ,GAMfQ,EAAWtB,OAAOkB,UAAUI,SAQhC,SAASC,EAAQC,GACf,MAA8B,mBAAvBF,EAAS7B,KAAK+B,GASvB,SAASC,EAAYD,GACnB,YAAsB,IAARA,EA4EhB,SAASE,EAASF,GAChB,OAAe,OAARA,GAA+B,iBAARA,EAuChC,SAASG,EAAWH,GAClB,MAA8B,sBAAvBF,EAAS7B,KAAK+B,GAwEvB,SAASI,EAAQC,EAAKC,GAEpB,GAAID,QAUJ,GALmB,iBAARA,IAETA,EAAM,CAACA,IAGLN,EAAQM,GAEV,IAAK,IAAIvC,EAAI,EAAGC,EAAIsC,EAAIE,OAAQzC,EAAIC,EAAGD,IACrCwC,EAAGrC,KAAK,KAAMoC,EAAIvC,GAAIA,EAAGuC,QAI3B,IAAK,IAAIhB,KAAOgB,EACV7B,OAAOkB,UAAUC,eAAe1B,KAAKoC,EAAKhB,IAC5CiB,EAAGrC,KAAK,KAAMoC,EAAIhB,GAAMA,EAAKgB,GAoFrCxC,EAAOD,QAAU,CACfmC,QAASA,EACTS,cApRF,SAAuBR,GACrB,MAA8B,yBAAvBF,EAAS7B,KAAK+B,IAoRrBS,SAhSF,SAAkBT,GAChB,OAAe,OAARA,IAAiBC,EAAYD,IAA4B,OAApBA,EAAIU,cAAyBT,EAAYD,EAAIU,cAChD,mBAA7BV,EAAIU,YAAYD,UAA2BT,EAAIU,YAAYD,SAAST,IA+RhFW,WA5QF,SAAoBX,GAClB,MAA4B,oBAAbY,UAA8BZ,aAAeY,UA4Q5DC,kBAnQF,SAA2Bb,GAOzB,MAL4B,oBAAhBc,aAAiCA,YAAkB,OACpDA,YAAYC,OAAOf,GAEnB,GAAUA,EAAU,QAAMA,EAAIgB,kBAAkBF,aA+P3DG,SApPF,SAAkBjB,GAChB,MAAsB,iBAARA,GAoPdkB,SA3OF,SAAkBlB,GAChB,MAAsB,iBAARA,GA2OdE,SAAUA,EACVD,YAAaA,EACbkB,OA1NF,SAAgBnB,GACd,MAA8B,kBAAvBF,EAAS7B,KAAK+B,IA0NrBoB,OAjNF,SAAgBpB,GACd,MAA8B,kBAAvBF,EAAS7B,KAAK+B,IAiNrBqB,OAxMF,SAAgBrB,GACd,MAA8B,kBAAvBF,EAAS7B,KAAK+B,IAwMrBG,WAAYA,EACZmB,SAtLF,SAAkBtB,GAChB,OAAOE,EAASF,IAAQG,EAAWH,EAAIuB,OAsLvCC,kBA7KF,SAA2BxB,GACzB,MAAkC,oBAApByB,iBAAmCzB,aAAeyB,iBA6KhEC,qBAjJF,WACE,OAAyB,oBAAdC,WAAoD,gBAAtBA,UAAUC,SACY,iBAAtBD,UAAUC,SACY,OAAtBD,UAAUC,WAI/B,oBAAXC,QACa,oBAAbC,WA0IT1B,QAASA,EACT2B,MA/EF,SAASA,IACP,IAAIC,EAAS,GACb,SAASC,EAAYjC,EAAKX,GACG,iBAAhB2C,EAAO3C,IAAoC,iBAARW,EAC5CgC,EAAO3C,GAAO0C,EAAMC,EAAO3C,GAAMW,GAEjCgC,EAAO3C,GAAOW,EAIlB,IAAK,IAAIlC,EAAI,EAAGC,EAAImE,UAAU3B,OAAQzC,EAAIC,EAAGD,IAC3CsC,EAAQ8B,UAAUpE,GAAImE,GAExB,OAAOD,GAmEPG,UAxDF,SAASA,IACP,IAAIH,EAAS,GACb,SAASC,EAAYjC,EAAKX,GACG,iBAAhB2C,EAAO3C,IAAoC,iBAARW,EAC5CgC,EAAO3C,GAAO8C,EAAUH,EAAO3C,GAAMW,GAErCgC,EAAO3C,GADiB,iBAARW,EACFmC,EAAU,GAAInC,GAEdA,EAIlB,IAAK,IAAIlC,EAAI,EAAGC,EAAImE,UAAU3B,OAAQzC,EAAIC,EAAGD,IAC3CsC,EAAQ8B,UAAUpE,GAAImE,GAExB,OAAOD,GA0CPI,OA/BF,SAAgBC,EAAGC,EAAGC,GAQpB,OAPAnC,EAAQkC,GAAG,SAAqBtC,EAAKX,GAEjCgD,EAAEhD,GADAkD,GAA0B,mBAARvC,EACXV,EAAKU,EAAKuC,GAEVvC,KAGNqC,GAwBPG,KAzKF,SAAcC,GACZ,OAAOA,EAAIC,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,O,cC9KjD,IAAIC,EAGJA,EAAI,WACH,OAAOC,KADJ,GAIJ,IAECD,EAAIA,GAAK,IAAIE,SAAS,cAAb,GACR,MAAOC,GAEc,iBAAXjB,SAAqBc,EAAId,QAOrChE,EAAOD,QAAU+E,G,gBCnBjB;;;;;;;IAOE,SAAUI,GAUX,QAPe,0BAAd,KAAc,mCACa,EAG3BlF,EAAOD,QAAUmF,MACU,EAEG,CAC9B,IAAIC,EAAanB,OAAOoB,QACpBC,EAAMrB,OAAOoB,QAAUF,IAC3BG,EAAIC,WAAa,WAEhB,OADAtB,OAAOoB,QAAUD,EACVE,IAfT,EAkBC,WACD,SAASd,IAGR,IAFA,IAAItE,EAAI,EACJkE,EAAS,GACNlE,EAAIoE,UAAU3B,OAAQzC,IAAK,CACjC,IAAIsF,EAAalB,UAAWpE,GAC5B,IAAK,IAAIuB,KAAO+D,EACfpB,EAAO3C,GAAO+D,EAAW/D,GAG3B,OAAO2C,EAGR,SAASqB,EAAQxD,GAChB,OAAOA,EAAE6C,QAAQ,mBAAoBY,oBA0HtC,OAvHA,SAASC,EAAMC,GACd,SAASN,KAET,SAASO,EAAKpE,EAAKN,EAAOqE,GACzB,GAAwB,oBAAbtB,SAAX,CAQkC,iBAJlCsB,EAAahB,EAAO,CACnBsB,KAAM,KACJR,EAAIS,SAAUP,IAEKQ,UACrBR,EAAWQ,QAAU,IAAIC,KAAkB,EAAb,IAAIA,KAAkC,MAArBT,EAAWQ,UAI3DR,EAAWQ,QAAUR,EAAWQ,QAAUR,EAAWQ,QAAQE,cAAgB,GAE7E,IACC,IAAI9B,EAAS+B,KAAKC,UAAUjF,GACxB,UAAUkF,KAAKjC,KAClBjD,EAAQiD,GAER,MAAOc,IAET/D,EAAQyE,EAAUU,MACjBV,EAAUU,MAAMnF,EAAOM,GACvB8E,mBAAmBC,OAAOrF,IACxB2D,QAAQ,4DAA6DY,oBAExEjE,EAAM8E,mBAAmBC,OAAO/E,IAC9BqD,QAAQ,2BAA4BY,oBACpCZ,QAAQ,UAAW2B,QAErB,IAAIC,EAAwB,GAC5B,IAAK,IAAIC,KAAiBnB,EACpBA,EAAWmB,KAGhBD,GAAyB,KAAOC,GACE,IAA9BnB,EAAWmB,KAWfD,GAAyB,IAAMlB,EAAWmB,GAAeC,MAAM,KAAK,KAGrE,OAAQ1C,SAAS2C,OAASpF,EAAM,IAAMN,EAAQuF,GAG/C,SAAS3F,EAAKU,EAAKqF,GAClB,GAAwB,oBAAb5C,SAAX,CAUA,IANA,IAAI6C,EAAM,GAGNC,EAAU9C,SAAS2C,OAAS3C,SAAS2C,OAAOD,MAAM,MAAQ,GAC1D1G,EAAI,EAEDA,EAAI8G,EAAQrE,OAAQzC,IAAK,CAC/B,IAAI+G,EAAQD,EAAQ9G,GAAG0G,MAAM,KACzBC,EAASI,EAAMC,MAAM,GAAGC,KAAK,KAE5BL,GAA6B,MAArBD,EAAOO,OAAO,KAC1BP,EAASA,EAAOK,MAAM,GAAI,IAG3B,IACC,IAAIzG,EAAOgF,EAAOwB,EAAM,IAIxB,GAHAJ,GAAUjB,EAAUyB,MAAQzB,GAAWiB,EAAQpG,IAC9CgF,EAAOoB,GAEJC,EACH,IACCD,EAASV,KAAKmB,MAAMT,GACnB,MAAO3B,IAKV,GAFA6B,EAAItG,GAAQoG,EAERpF,IAAQhB,EACX,MAEA,MAAOyE,KAGV,OAAOzD,EAAMsF,EAAItF,GAAOsF,GAoBzB,OAjBAzB,EAAIO,IAAMA,EACVP,EAAIvE,IAAM,SAAUU,GACnB,OAAOV,EAAIU,GAAK,IAEjB6D,EAAIiC,QAAU,SAAU9F,GACvB,OAAOV,EAAIU,GAAK,IAEjB6D,EAAIkC,OAAS,SAAU/F,EAAK+D,GAC3BK,EAAIpE,EAAK,GAAI+C,EAAOgB,EAAY,CAC/BQ,SAAU,MAIZV,EAAIS,SAAW,GAEfT,EAAImC,cAAgB9B,EAEbL,EAGDK,EAAK,mB;;;;;;AC3JoD1F,EAAOD,QAG/D,SAAW0H,GAAK,aAEvB,SAASC,EAAuBzC,GAAK,OAAOA,GAAkB,iBAANA,GAAkB,YAAaA,EAAIA,EAAI,CAAE,QAAWA,GAE5G,IAAI0C,EAA0BD,EAAsBD,GAsCpD,SAASG,EAAsBC,GAC7B,IAAIC,EAAQ/C,KAERgD,GAAS,EASb,OARAJ,EAAoB,QAAE5C,MAAMiD,IAAIC,EAAKC,gBAAgB,WACnDH,GAAS,KAEXI,YAAW,WACJJ,GACHE,EAAKG,qBAAqBN,KAE3BD,GACI9C,KAYT,IAAIkD,EAAO,CACTC,eAAgB,kBAChBG,OAAQ,SAAgBC,GACtB,GAEEA,MAtDQ,IAsDKC,KAAKC,gBACXvE,SAASwE,eAAeH,IAEjC,OAAOA,GAETI,uBAAwB,SAAgCC,GACtD,IAAIC,EAAWD,EAAQE,aAAa,eAEpC,IAAKD,GAAyB,MAAbA,EAAkB,CACjC,IAAIE,EAAWH,EAAQE,aAAa,QACpCD,EAAWE,GAAyB,MAAbA,EAAmBA,EAASnE,OAAS,GAG9D,IACE,OAAOV,SAAS8E,cAAcH,GAAYA,EAAW,KACrD,MAAOI,GACP,OAAO,OAGXC,iCAAkC,SAA0CN,GAC1E,IAAKA,EACH,OAAO,EAIT,IAAIO,EAAqBvB,EAAoB,QAAEgB,GAASQ,IAAI,uBACxDC,EAAkBzB,EAAoB,QAAEgB,GAASQ,IAAI,oBACrDE,EAA0BC,WAAWJ,GACrCK,EAAuBD,WAAWF,GAEtC,OAAKC,GAA4BE,GAKjCL,EAAqBA,EAAmBvC,MAAM,KAAK,GACnDyC,EAAkBA,EAAgBzC,MAAM,KAAK,GAzFnB,KA0FlB2C,WAAWJ,GAAsBI,WAAWF,KAN3C,GAQXI,OAAQ,SAAgBb,GACtB,OAAOA,EAAQc,cAEjBrB,qBAAsB,SAA8BO,GAClDhB,EAAoB,QAAEgB,GAASe,QAlGd,kBAoGnBC,sBAAuB,WACrB,OAAOC,QArGU,kBAuGnBC,UAAW,SAAmBrH,GAC5B,OAAQA,EAAI,IAAMA,GAAKsH,UAEzBC,gBAAiB,SAAyBC,EAAeC,EAAQC,GAC/D,IAAK,IAAItI,KAAYsI,EACnB,GAAIvJ,OAAOkB,UAAUC,eAAe1B,KAAK8J,EAAatI,GAAW,CAC/D,IAAIuI,EAAgBD,EAAYtI,GAC5BV,EAAQ+I,EAAOrI,GACfwI,EAAYlJ,GAAS+G,EAAK4B,UAAU3I,GAAS,UA1GnDsB,OADUA,EA2G4DtB,GAzGjE,GAAKsB,EAGP,GAAGP,SAAS7B,KAAKoC,GAAK6H,MAAM,eAAe,GAAGC,cAwG/C,IAAK,IAAIC,OAAOJ,GAAe/D,KAAKgE,GAClC,MAAM,IAAII,MAAMR,EAAcS,cAAdT,aAAoDpI,EAAW,oBAAwBwI,EAAvFJ,wBAAsIG,EAAgB,MA9GhL,IAAgB3H,GAmHdkI,eAAgB,SAAwB/B,GACtC,IAAK1E,SAAS0G,gBAAgBC,aAC5B,OAAO,KAIT,GAAmC,mBAAxBjC,EAAQkC,YAA4B,CAC7C,IAAIC,EAAOnC,EAAQkC,cACnB,OAAOC,aAAgBC,WAAaD,EAAO,KAG7C,OAAInC,aAAmBoC,WACdpC,EAIJA,EAAQqC,WAIN/C,EAAKyC,eAAe/B,EAAQqC,YAH1B,MAKXC,gBAAiB,WACf,QAAqC,IAA1BtD,EAAoB,QAC7B,MAAM,IAAIuD,UAAU,kGAGtB,IAAIC,EAAUxD,EAAoB,QAAElF,GAAG2I,OAAOzE,MAAM,KAAK,GAAGA,MAAM,KAOlE,GAAIwE,EAAQ,GALE,GAKcA,EAAQ,GAJrB,GAFA,IAMsCA,EAAQ,IAJ9C,IAIiEA,EAAQ,IAAmBA,EAAQ,GAHpG,GAGqHA,EAAQ,IAF7H,EAGb,MAAM,IAAIX,MAAM,iFAOtB,OAHAvC,EAAKgD,kBApHHtD,EAAoB,QAAElF,GAAG4I,qBAAuBzD,EAChDD,EAAoB,QAAE2D,MAAMC,QAAQtD,EAAKC,gBA9BlC,CACLsD,SAdiB,gBAejBC,aAfiB,gBAgBjBC,OAAQ,SAAgBJ,GACtB,GAAI3D,EAAoB,QAAE2D,EAAMK,QAAQC,GAAG7G,MACzC,OAAOuG,EAAMO,UAAUC,QAAQC,MAAMhH,KAAMV,aA+I5C4D,EApLyE/C,CAAQ,EAAQ,K,cCNlGlF,EAAOD,QAAUiM,Q,gBCAjBhM,EAAOD,QAAU,EAAQ,K,6BCEzBC,EAAOD,QAAU,SAAc0C,EAAIiC,GACjC,OAAO,WAEL,IADA,IAAIuH,EAAO,IAAIC,MAAM7H,UAAU3B,QACtBzC,EAAI,EAAGA,EAAIgM,EAAKvJ,OAAQzC,IAC/BgM,EAAKhM,GAAKoE,UAAUpE,GAEtB,OAAOwC,EAAGsJ,MAAMrH,EAASuH,M,6BCN7B,IAAIE,EAAQ,EAAQ,GAEpB,SAASC,EAAOjK,GACd,OAAOmE,mBAAmBnE,GACxB0C,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KAUrB7E,EAAOD,QAAU,SAAkBsM,EAAKC,EAAQC,GAE9C,IAAKD,EACH,OAAOD,EAGT,IAAIG,EACJ,GAAID,EACFC,EAAmBD,EAAiBD,QAC/B,GAAIH,EAAMxI,kBAAkB2I,GACjCE,EAAmBF,EAAOrK,eACrB,CACL,IAAI+E,EAAQ,GAEZmF,EAAM5J,QAAQ+J,GAAQ,SAAmBnK,EAAKX,GACxCW,UAIAgK,EAAMjK,QAAQC,GAChBX,GAAY,KAEZW,EAAM,CAACA,GAGTgK,EAAM5J,QAAQJ,GAAK,SAAoBsK,GACjCN,EAAM7I,OAAOmJ,GACfA,EAAIA,EAAEC,cACGP,EAAM9J,SAASoK,KACxBA,EAAIvG,KAAKC,UAAUsG,IAErBzF,EAAM2F,KAAKP,EAAO5K,GAAO,IAAM4K,EAAOK,WAI1CD,EAAmBxF,EAAME,KAAK,KAGhC,GAAIsF,EAAkB,CACpB,IAAII,EAAgBP,EAAIQ,QAAQ,MACT,IAAnBD,IACFP,EAAMA,EAAIpF,MAAM,EAAG2F,IAGrBP,KAA8B,IAAtBA,EAAIQ,QAAQ,KAAc,IAAM,KAAOL,EAGjD,OAAOH,I,6BCnETrM,EAAOD,QAAU,SAAkBmB,GACjC,SAAUA,IAASA,EAAM4L,c,8BCH3B,YAEA,IAAIX,EAAQ,EAAQ,GAChBY,EAAsB,EAAQ,IAE9BC,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsBC,EAAShM,IACjCiL,EAAM/J,YAAY8K,IAAYf,EAAM/J,YAAY8K,EAAQ,mBAC3DA,EAAQ,gBAAkBhM,GAgB9B,IAXMiM,EAWFrH,EAAW,CACbqH,UAX8B,oBAAnBC,qBAGmB,IAAZC,GAAuE,qBAA5C1M,OAAOkB,UAAUI,SAAS7B,KAAKiN,MAD1EF,EAAU,EAAQ,KAKbA,GAMPG,iBAAkB,CAAC,SAA0BC,EAAML,GAGjD,OAFAH,EAAoBG,EAAS,UAC7BH,EAAoBG,EAAS,gBACzBf,EAAMrJ,WAAWyK,IACnBpB,EAAMxJ,cAAc4K,IACpBpB,EAAMvJ,SAAS2K,IACfpB,EAAM1I,SAAS8J,IACfpB,EAAM5I,OAAOgK,IACbpB,EAAM3I,OAAO+J,GAENA,EAELpB,EAAMnJ,kBAAkBuK,GACnBA,EAAKpK,OAEVgJ,EAAMxI,kBAAkB4J,IAC1BN,EAAsBC,EAAS,mDACxBK,EAAKtL,YAEVkK,EAAM9J,SAASkL,IACjBN,EAAsBC,EAAS,kCACxBhH,KAAKC,UAAUoH,IAEjBA,IAGTC,kBAAmB,CAAC,SAA2BD,GAE7C,GAAoB,iBAATA,EACT,IACEA,EAAOrH,KAAKmB,MAAMkG,GAClB,MAAOtI,IAEX,OAAOsI,IAOTE,QAAS,EAETC,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EAEnBC,eAAgB,SAAwBC,GACtC,OAAOA,GAAU,KAAOA,EAAS,MAIrChI,EAASoH,QAAU,CACjBa,OAAQ,CACN,OAAU,sCAId5B,EAAM5J,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6ByL,GACpElI,EAASoH,QAAQc,GAAU,MAG7B7B,EAAM5J,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+ByL,GACrElI,EAASoH,QAAQc,GAAU7B,EAAMjI,MAAM8I,MAGzChN,EAAOD,QAAU+F,I,gCC/FjB,IAOImI,EACAC,EARAb,EAAUrN,EAAOD,QAAU,GAU/B,SAASoO,IACL,MAAM,IAAI3D,MAAM,mCAEpB,SAAS4D,IACL,MAAM,IAAI5D,MAAM,qCAsBpB,SAAS6D,EAAWC,GAChB,GAAIL,IAAqB9F,WAErB,OAAOA,WAAWmG,EAAK,GAG3B,IAAKL,IAAqBE,IAAqBF,IAAqB9F,WAEhE,OADA8F,EAAmB9F,WACZA,WAAWmG,EAAK,GAE3B,IAEI,OAAOL,EAAiBK,EAAK,GAC/B,MAAMrJ,GACJ,IAEI,OAAOgJ,EAAiB7N,KAAK,KAAMkO,EAAK,GAC1C,MAAMrJ,GAEJ,OAAOgJ,EAAiB7N,KAAK2E,KAAMuJ,EAAK,MAvCnD,WACG,IAEQL,EADsB,mBAAf9F,WACYA,WAEAgG,EAEzB,MAAOlJ,GACLgJ,EAAmBE,EAEvB,IAEQD,EADwB,mBAAjBK,aACcA,aAEAH,EAE3B,MAAOnJ,GACLiJ,EAAqBE,GAjB7B,GAwEA,IAEII,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaF,IAGlBE,GAAW,EACPF,EAAa9L,OACb+L,EAAQD,EAAaK,OAAOJ,GAE5BE,GAAc,EAEdF,EAAM/L,QACNoM,KAIR,SAASA,IACL,IAAIJ,EAAJ,CAGA,IAAIjB,EAAUY,EAAWO,GACzBF,GAAW,EAGX,IADA,IAAIK,EAAMN,EAAM/L,OACVqM,GAAK,CAGP,IAFAP,EAAeC,EACfA,EAAQ,KACCE,EAAaI,GACdP,GACAA,EAAaG,GAAYK,MAGjCL,GAAc,EACdI,EAAMN,EAAM/L,OAEhB8L,EAAe,KACfE,GAAW,EAnEf,SAAyBO,GACrB,GAAIf,IAAuBK,aAEvB,OAAOA,aAAaU,GAGxB,IAAKf,IAAuBE,IAAwBF,IAAuBK,aAEvE,OADAL,EAAqBK,aACdA,aAAaU,GAExB,IAEWf,EAAmBe,GAC5B,MAAOhK,GACL,IAEI,OAAOiJ,EAAmB9N,KAAK,KAAM6O,GACvC,MAAOhK,GAGL,OAAOiJ,EAAmB9N,KAAK2E,KAAMkK,KAgD7CC,CAAgBzB,IAiBpB,SAAS0B,EAAKb,EAAKc,GACfrK,KAAKuJ,IAAMA,EACXvJ,KAAKqK,MAAQA,EAYjB,SAASC,KA5BThC,EAAQiC,SAAW,SAAUhB,GACzB,IAAIrC,EAAO,IAAIC,MAAM7H,UAAU3B,OAAS,GACxC,GAAI2B,UAAU3B,OAAS,EACnB,IAAK,IAAIzC,EAAI,EAAGA,EAAIoE,UAAU3B,OAAQzC,IAClCgM,EAAKhM,EAAI,GAAKoE,UAAUpE,GAGhCwO,EAAM9B,KAAK,IAAIwC,EAAKb,EAAKrC,IACJ,IAAjBwC,EAAM/L,QAAiBgM,GACvBL,EAAWS,IASnBK,EAAKtN,UAAUmN,IAAM,WACjBjK,KAAKuJ,IAAIvC,MAAM,KAAMhH,KAAKqK,QAE9B/B,EAAQkC,MAAQ,UAChBlC,EAAQmC,SAAU,EAClBnC,EAAQoC,IAAM,GACdpC,EAAQqC,KAAO,GACfrC,EAAQlC,QAAU,GAClBkC,EAAQsC,SAAW,GAInBtC,EAAQuC,GAAKP,EACbhC,EAAQwC,YAAcR,EACtBhC,EAAQyC,KAAOT,EACfhC,EAAQ0C,IAAMV,EACdhC,EAAQ2C,eAAiBX,EACzBhC,EAAQ4C,mBAAqBZ,EAC7BhC,EAAQ6C,KAAOb,EACfhC,EAAQ8C,gBAAkBd,EAC1BhC,EAAQ+C,oBAAsBf,EAE9BhC,EAAQgD,UAAY,SAAU7P,GAAQ,MAAO,IAE7C6M,EAAQiD,QAAU,SAAU9P,GACxB,MAAM,IAAIgK,MAAM,qCAGpB6C,EAAQkD,IAAM,WAAc,MAAO,KACnClD,EAAQmD,MAAQ,SAAUC,GACtB,MAAM,IAAIjG,MAAM,mCAEpB6C,EAAQqD,MAAQ,WAAa,OAAO,I,6BCrLpC,IAAIvE,EAAQ,EAAQ,GAChBwE,EAAS,EAAQ,IACjBC,EAAW,EAAQ,GACnBC,EAAgB,EAAQ,IACxBC,EAAe,EAAQ,IACvBC,EAAkB,EAAQ,IAC1BC,EAAc,EAAQ,IAE1BhR,EAAOD,QAAU,SAAoBkK,GACnC,OAAO,IAAIgH,SAAQ,SAA4BC,EAASC,GACtD,IAAIC,EAAcnH,EAAOsD,KACrB8D,EAAiBpH,EAAOiD,QAExBf,EAAMrJ,WAAWsO,WACZC,EAAe,gBAGxB,IAAIC,EAAU,IAAIlE,eAGlB,GAAInD,EAAOsH,KAAM,CACf,IAAIC,EAAWvH,EAAOsH,KAAKC,UAAY,GACnCC,EAAWxH,EAAOsH,KAAKE,UAAY,GACvCJ,EAAeK,cAAgB,SAAWC,KAAKH,EAAW,IAAMC,GAGlE,IAAIG,EAAWf,EAAc5G,EAAO4H,QAAS5H,EAAOoC,KA4EpD,GA3EAiF,EAAQQ,KAAK7H,EAAO+D,OAAOvD,cAAemG,EAASgB,EAAU3H,EAAOqC,OAAQrC,EAAOsC,mBAAmB,GAGtG+E,EAAQ7D,QAAUxD,EAAOwD,QAGzB6D,EAAQS,mBAAqB,WAC3B,GAAKT,GAAkC,IAAvBA,EAAQU,aAQD,IAAnBV,EAAQxD,QAAkBwD,EAAQW,aAAwD,IAAzCX,EAAQW,YAAYpF,QAAQ,UAAjF,CAKA,IAAIqF,EAAkB,0BAA2BZ,EAAUR,EAAaQ,EAAQa,yBAA2B,KAEvGC,EAAW,CACb7E,KAFkBtD,EAAOoI,cAAwC,SAAxBpI,EAAOoI,aAAiDf,EAAQc,SAA/Bd,EAAQgB,aAGlFxE,OAAQwD,EAAQxD,OAChByE,WAAYjB,EAAQiB,WACpBrF,QAASgF,EACTjI,OAAQA,EACRqH,QAASA,GAGXX,EAAOO,EAASC,EAAQiB,GAGxBd,EAAU,OAIZA,EAAQkB,QAAU,WACXlB,IAILH,EAAOH,EAAY,kBAAmB/G,EAAQ,eAAgBqH,IAG9DA,EAAU,OAIZA,EAAQmB,QAAU,WAGhBtB,EAAOH,EAAY,gBAAiB/G,EAAQ,KAAMqH,IAGlDA,EAAU,MAIZA,EAAQoB,UAAY,WAClB,IAAIC,EAAsB,cAAgB1I,EAAOwD,QAAU,cACvDxD,EAAO0I,sBACTA,EAAsB1I,EAAO0I,qBAE/BxB,EAAOH,EAAY2B,EAAqB1I,EAAQ,eAC9CqH,IAGFA,EAAU,MAMRnF,EAAMtI,uBAAwB,CAChC,IAAIkD,EAAU,EAAQ,IAGlB6L,GAAa3I,EAAO4I,iBAAmB9B,EAAgBa,KAAc3H,EAAOyD,eAC9E3G,EAAQK,KAAK6C,EAAOyD,qBACpBoF,EAEEF,IACFvB,EAAepH,EAAO0D,gBAAkBiF,GAuB5C,GAlBI,qBAAsBtB,GACxBnF,EAAM5J,QAAQ8O,GAAgB,SAA0BlP,EAAKX,QAChC,IAAhB4P,GAAqD,iBAAtB5P,EAAI8I,qBAErC+G,EAAe7P,GAGtB8P,EAAQyB,iBAAiBvR,EAAKW,MAM/BgK,EAAM/J,YAAY6H,EAAO4I,mBAC5BvB,EAAQuB,kBAAoB5I,EAAO4I,iBAIjC5I,EAAOoI,aACT,IACEf,EAAQe,aAAepI,EAAOoI,aAC9B,MAAOpN,GAGP,GAA4B,SAAxBgF,EAAOoI,aACT,MAAMpN,EAM6B,mBAA9BgF,EAAO+I,oBAChB1B,EAAQ2B,iBAAiB,WAAYhJ,EAAO+I,oBAIP,mBAA5B/I,EAAOiJ,kBAAmC5B,EAAQ6B,QAC3D7B,EAAQ6B,OAAOF,iBAAiB,WAAYhJ,EAAOiJ,kBAGjDjJ,EAAOmJ,aAETnJ,EAAOmJ,YAAYC,QAAQC,MAAK,SAAoBC,GAC7CjC,IAILA,EAAQkC,QACRrC,EAAOoC,GAEPjC,EAAU,cAIMwB,IAAhB1B,IACFA,EAAc,MAIhBE,EAAQmC,KAAKrC,Q,6BC/KjB,IAAIsC,EAAe,EAAQ,IAY3B1T,EAAOD,QAAU,SAAqB4T,EAAS1J,EAAQ2J,EAAMtC,EAASc,GACpE,IAAIyB,EAAQ,IAAIrJ,MAAMmJ,GACtB,OAAOD,EAAaG,EAAO5J,EAAQ2J,EAAMtC,EAASc,K,6BCdpD,IAAIjG,EAAQ,EAAQ,GAUpBnM,EAAOD,QAAU,SAAqB+T,EAASC,GAE7CA,EAAUA,GAAW,GACrB,IAAI9J,EAAS,GAET+J,EAAuB,CAAC,MAAO,SAAU,SAAU,QACnDC,EAA0B,CAAC,UAAW,OAAQ,SAC9CC,EAAuB,CACzB,UAAW,MAAO,mBAAoB,oBAAqB,mBAC3D,UAAW,kBAAmB,UAAW,eAAgB,iBACzD,iBAAkB,mBAAoB,qBACtC,mBAAoB,iBAAkB,eAAgB,YACtD,aAAc,cAAe,cAG/B/H,EAAM5J,QAAQyR,GAAsB,SAA0BG,QAC/B,IAAlBJ,EAAQI,KACjBlK,EAAOkK,GAAQJ,EAAQI,OAI3BhI,EAAM5J,QAAQ0R,GAAyB,SAA6BE,GAC9DhI,EAAM9J,SAAS0R,EAAQI,IACzBlK,EAAOkK,GAAQhI,EAAM7H,UAAUwP,EAAQK,GAAOJ,EAAQI,SACpB,IAAlBJ,EAAQI,GACxBlK,EAAOkK,GAAQJ,EAAQI,GACdhI,EAAM9J,SAASyR,EAAQK,IAChClK,EAAOkK,GAAQhI,EAAM7H,UAAUwP,EAAQK,SACL,IAAlBL,EAAQK,KACxBlK,EAAOkK,GAAQL,EAAQK,OAI3BhI,EAAM5J,QAAQ2R,GAAsB,SAA0BC,QAC/B,IAAlBJ,EAAQI,GACjBlK,EAAOkK,GAAQJ,EAAQI,QACW,IAAlBL,EAAQK,KACxBlK,EAAOkK,GAAQL,EAAQK,OAI3B,IAAIC,EAAYJ,EACbnF,OAAOoF,GACPpF,OAAOqF,GAENG,EAAY1T,OACb2T,KAAKP,GACLQ,QAAO,SAAyB/S,GAC/B,OAAmC,IAA5B4S,EAAUvH,QAAQrL,MAW7B,OARA2K,EAAM5J,QAAQ8R,GAAW,SAAmCF,QAC7B,IAAlBJ,EAAQI,GACjBlK,EAAOkK,GAAQJ,EAAQI,QACW,IAAlBL,EAAQK,KACxBlK,EAAOkK,GAAQL,EAAQK,OAIpBlK,I,6BC/DT,SAASuK,EAAOb,GACd5O,KAAK4O,QAAUA,EAGjBa,EAAO3S,UAAUI,SAAW,WAC1B,MAAO,UAAY8C,KAAK4O,QAAU,KAAO5O,KAAK4O,QAAU,KAG1Da,EAAO3S,UAAUiL,YAAa,EAE9B9M,EAAOD,QAAUyU,G,gBCLkDxU,EAAOD,QAGlE,WAAe,aAcnB,SAASsC,EAASG,GACd,OAAgB,OAARA,GACW,iBAARA,GACP,gBAAiBA,GACjBA,EAAIK,cAAgBlC,OAE5B,SAAS4D,EAAOoH,EAAQ8I,QACL,IAAX9I,IAAqBA,EAAS,SACtB,IAAR8I,IAAkBA,EAAM,IAC5B9T,OAAO2T,KAAKG,GAAKlS,SAAQ,SAAUf,QACJ,IAAhBmK,EAAOnK,GACZmK,EAAOnK,GAAOiT,EAAIjT,GACfa,EAASoS,EAAIjT,KAClBa,EAASsJ,EAAOnK,KAChBb,OAAO2T,KAAKG,EAAIjT,IAAMkB,OAAS,GAC/B6B,EAAOoH,EAAOnK,GAAMiT,EAAIjT,OAKpC,IAAIkT,EAA0B,oBAAbzQ,SAA2BA,SAAW,GACnD0Q,EAAc,CACdC,KAAM,GACN3B,iBAAkB,aAClB4B,oBAAqB,aACrBC,cAAe,CACXC,KAAM,aACNC,SAAU,IAEdjM,cAAe,WACX,OAAO,MAEXkM,iBAAkB,WACd,MAAO,IAEXxM,eAAgB,WACZ,OAAO,MAEXyM,YAAa,WACT,MAAO,CACHC,UAAW,eAGnBC,cAAe,WACX,MAAO,CACHC,SAAU,GACVC,WAAY,GACZC,MAAO,GACPC,aAAc,aACdC,qBAAsB,WAClB,MAAO,MAInBC,gBAAiB,WACb,MAAO,IAEXC,WAAY,WACR,OAAO,MAEXC,SAAU,CACNC,KAAM,GACNC,KAAM,GACNC,SAAU,GACVC,KAAM,GACNC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,KAGhB7R,EAAOmQ,EAAKC,GAEZ,IAAI0B,EAAwB,oBAAXrS,OAAyBA,OAAS,GA2CnDO,EAAO8R,EA1CS,CACZpS,SAAU0Q,EACV7Q,UAAW,CACPwS,UAAW,IAEfV,SAAU,CACNC,KAAM,GACNC,KAAM,GACNC,SAAU,GACVC,KAAM,GACNC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,IAEZG,QAAS,CACLC,aAAc,aACdC,UAAW,aACXC,GAAI,aACJC,KAAM,cAEVC,YAAa,WACT,OAAO7R,MAEXkO,iBAAkB,aAClB4B,oBAAqB,aACrBgC,iBAAkB,WACd,MAAO,CACHC,iBAAkB,WACd,MAAO,MAInBC,MAAO,aACP/Q,KAAM,aACNgR,OAAQ,GACR7O,WAAY,aACZoG,aAAc,aACd0I,WAAY,WACR,MAAO,MAmBf,IAAIC,EAAO,SAAcC,GAGvB,IAFA,IAESlX,EAAI,EAAGA,EAAIkX,EAAIzU,OAAQzC,GAAK,EAF1B8E,KAGJ9E,GAAKkX,EAAIlX,GAIhB,OAPW8E,KAKNrC,OAASyU,EAAIzU,OAEXqC,MAGT,SAAS0C,EAAEmB,EAAUwO,GACnB,IAAID,EAAM,GACNlX,EAAI,EACR,GAAI2I,IAAawO,GACXxO,aAAoBsO,EACtB,OAAOtO,EAGX,GAAIA,EAEF,GAAwB,iBAAbA,EAAuB,CAChC,IAAIyO,EACAC,EACAC,EAAO3O,EAASjE,OACpB,GAAI4S,EAAK1K,QAAQ,MAAQ,GAAK0K,EAAK1K,QAAQ,MAAQ,EAAG,CACpD,IAAI2K,EAAW,MAQf,IAP4B,IAAxBD,EAAK1K,QAAQ,SAAgB2K,EAAW,MAChB,IAAxBD,EAAK1K,QAAQ,SAAgB2K,EAAW,SAChB,IAAxBD,EAAK1K,QAAQ,QAAwC,IAAxB0K,EAAK1K,QAAQ,SAAgB2K,EAAW,MAC1C,IAA3BD,EAAK1K,QAAQ,YAAmB2K,EAAW,SACf,IAA5BD,EAAK1K,QAAQ,aAAoB2K,EAAW,WAChDF,EAAa5C,EAAIU,cAAcoC,IACpBC,UAAYF,EAClBtX,EAAI,EAAGA,EAAIqX,EAAWhC,WAAW5S,OAAQzC,GAAK,EACjDkX,EAAIxK,KAAK2K,EAAWhC,WAAWrV,SAUjC,IAFEoX,EALGD,GAA2B,MAAhBxO,EAAS,IAAeA,EAASyB,MAAM,aAK9C+M,GAAW1C,GAAKO,iBAAiBrM,EAASjE,QAH3C,CAAC+P,EAAIjM,eAAeG,EAASjE,OAAOgC,MAAM,KAAK,KAKlD1G,EAAI,EAAGA,EAAIoX,EAAI3U,OAAQzC,GAAK,EAC3BoX,EAAIpX,IAAMkX,EAAIxK,KAAK0K,EAAIpX,SAG1B,GAAI2I,EAASkB,UAAYlB,IAAayN,GAAOzN,IAAa8L,EAE/DyC,EAAIxK,KAAK/D,QACJ,GAAIA,EAASlG,OAAS,GAAKkG,EAAS,GAAGkB,SAE5C,IAAK7J,EAAI,EAAGA,EAAI2I,EAASlG,OAAQzC,GAAK,EACpCkX,EAAIxK,KAAK/D,EAAS3I,IAIxB,OAAO,IAAIiX,EAAKC,GAOlB,SAASO,EAAOP,GAEd,IADA,IAAIQ,EAAc,GACT1X,EAAI,EAAGA,EAAIkX,EAAIzU,OAAQzC,GAAK,GACE,IAAjC0X,EAAY9K,QAAQsK,EAAIlX,KAAc0X,EAAYhL,KAAKwK,EAAIlX,IAEjE,OAAO0X,EATTlQ,EAAEhF,GAAKyU,EAAKrV,UACZ4F,EAAEmQ,MAAQV,EACVzP,EAAEyP,KAAOA,EAsoBT,IAAIW,EAAU,CACZC,SA5nBF,SAAkBC,GAChB,QAAyB,IAAdA,EACT,OAAOhT,KAGT,IADA,IAAIiT,EAAUD,EAAUpR,MAAM,KACrB1G,EAAI,EAAGA,EAAI+X,EAAQtV,OAAQzC,GAAK,EACvC,IAAK,IAAIgY,EAAI,EAAGA,EAAIlT,KAAKrC,OAAQuV,GAAK,OACb,IAAZlT,KAAKkT,SAAmD,IAAtBlT,KAAKkT,GAAGC,WAA6BnT,KAAKkT,GAAGC,UAAUC,IAAIH,EAAQ/X,IAGpH,OAAO8E,MAmnBPqT,YAjnBF,SAAqBL,GAEnB,IADA,IAAIC,EAAUD,EAAUpR,MAAM,KACrB1G,EAAI,EAAGA,EAAI+X,EAAQtV,OAAQzC,GAAK,EACvC,IAAK,IAAIgY,EAAI,EAAGA,EAAIlT,KAAKrC,OAAQuV,GAAK,OACb,IAAZlT,KAAKkT,SAAmD,IAAtBlT,KAAKkT,GAAGC,WAA6BnT,KAAKkT,GAAGC,UAAU3Q,OAAOyQ,EAAQ/X,IAGvH,OAAO8E,MA2mBPsT,SAzmBF,SAAkBN,GAChB,QAAKhT,KAAK,IACHA,KAAK,GAAGmT,UAAUI,SAASP,IAwmBlCQ,YAtmBF,SAAqBR,GAEnB,IADA,IAAIC,EAAUD,EAAUpR,MAAM,KACrB1G,EAAI,EAAGA,EAAI+X,EAAQtV,OAAQzC,GAAK,EACvC,IAAK,IAAIgY,EAAI,EAAGA,EAAIlT,KAAKrC,OAAQuV,GAAK,OACb,IAAZlT,KAAKkT,SAAmD,IAAtBlT,KAAKkT,GAAGC,WAA6BnT,KAAKkT,GAAGC,UAAUM,OAAOR,EAAQ/X,IAGvH,OAAO8E,MAgmBP0T,KA9lBF,SAAcC,EAAOxX,GACnB,IAAIyX,EAActU,UAElB,GAAyB,IAArBA,UAAU3B,QAAiC,iBAAVgW,EAEnC,OAAI3T,KAAK,GAAaA,KAAK,GAAG8D,aAAa6P,QAC3C,EAIF,IAAK,IAAIzY,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EACpC,GAA2B,IAAvB0Y,EAAYjW,OAEdqC,KAAK9E,GAAGuV,aAAakD,EAAOxX,QAI5B,IAAK,IAAI0X,KAAYF,EACnB3T,KAAK9E,GAAG2Y,GAAYF,EAAME,GAC1B7T,KAAK9E,GAAGuV,aAAaoD,EAAUF,EAAME,IAI3C,OAAO7T,MAwkBP8T,WArkBF,SAAoBJ,GAClB,IAAK,IAAIxY,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EACpC8E,KAAK9E,GAAG6Y,gBAAgBL,GAE1B,OAAO1T,MAkkBPwI,KAhkBF,SAAc/L,EAAKN,GACjB,IAAI6X,EACJ,QAAqB,IAAV7X,EAAX,CAkBA,IAAK,IAAIjB,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,GACpC8Y,EAAKhU,KAAK9E,IACF+Y,yBAA0BD,EAAGC,uBAAyB,IAC9DD,EAAGC,uBAAuBxX,GAAON,EAEnC,OAAO6D,KApBL,GAFAgU,EAAKhU,KAAK,GAEF,CACN,GAAIgU,EAAGC,wBAA2BxX,KAAOuX,EAAGC,uBAC1C,OAAOD,EAAGC,uBAAuBxX,GAGnC,IAAIyX,EAAUF,EAAGlQ,aAAc,QAAUrH,GACzC,OAAIyX,QAGJ,IAmjBJC,UApiBF,SAAmBA,GACjB,IAAK,IAAIjZ,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EAAG,CACvC,IAAIkZ,EAAUpU,KAAK9E,GAAGsV,MACtB4D,EAAQC,gBAAkBF,EAC1BC,EAAQD,UAAYA,EAEtB,OAAOnU,MA+hBPsU,WA7hBF,SAAoBxR,GACM,iBAAbA,IACTA,GAAsB,MAExB,IAAK,IAAI5H,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EAAG,CACvC,IAAIkZ,EAAUpU,KAAK9E,GAAGsV,MACtB4D,EAAQG,yBAA2BzR,EACnCsR,EAAQjQ,mBAAqBrB,EAE/B,OAAO9C,MAqhBP6K,GAlhBF,WAIE,IAHA,IAAI2J,EAEAtN,EAAO,GAAI8C,EAAM1K,UAAU3B,OACvBqM,KAAQ9C,EAAM8C,GAAQ1K,UAAW0K,GACzC,IAAIyK,EAAYvN,EAAK,GACjBwN,EAAiBxN,EAAK,GACtByN,EAAWzN,EAAK,GAChB0N,EAAU1N,EAAK,GAOnB,SAAS2N,EAAgB3U,GACvB,IAAI0G,EAAS1G,EAAE0G,OACf,GAAKA,EAAL,CACA,IAAIkO,EAAY5U,EAAE0G,OAAOmO,eAAiB,GAI1C,GAHID,EAAUhN,QAAQ5H,GAAK,GACzB4U,EAAUE,QAAQ9U,GAEhBwC,EAAEkE,GAAQC,GAAG6N,GAAmBC,EAAS3N,MAAMJ,EAAQkO,QAGzD,IADA,IAAIG,EAAUvS,EAAEkE,GAAQqO,UACfC,EAAI,EAAGA,EAAID,EAAQtX,OAAQuX,GAAK,EACnCxS,EAAEuS,EAAQC,IAAIrO,GAAG6N,IAAmBC,EAAS3N,MAAMiO,EAAQC,GAAIJ,IAIzE,SAASK,EAAYjV,GACnB,IAAI4U,EAAY5U,GAAKA,EAAE0G,QAAS1G,EAAE0G,OAAOmO,eAAsB,GAC3DD,EAAUhN,QAAQ5H,GAAK,GACzB4U,EAAUE,QAAQ9U,GAEpByU,EAAS3N,MAAMhH,KAAM8U,GA1BA,mBAAZ5N,EAAK,KACEuN,GAAfD,EAAStN,GAAyB,GAAIyN,EAAWH,EAAO,GAAII,EAAUJ,EAAO,GAC9EE,OAAiB3G,GAEd6G,IAAWA,GAAU,GA0B1B,IAFA,IACI1B,EADAkC,EAASX,EAAU7S,MAAM,KAEpB1G,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EAAG,CACvC,IAAI8Y,EAAKhU,KAAK9E,GACd,GAAKwZ,EAaH,IAAKxB,EAAI,EAAGA,EAAIkC,EAAOzX,OAAQuV,GAAK,EAAG,CACrC,IAAImC,EAAUD,EAAOlC,GAChBc,EAAGsB,oBAAqBtB,EAAGsB,kBAAoB,IAC/CtB,EAAGsB,kBAAkBD,KAAYrB,EAAGsB,kBAAkBD,GAAW,IACtErB,EAAGsB,kBAAkBD,GAASzN,KAAK,CACjC+M,SAAUA,EACVY,cAAeV,IAEjBb,EAAG9F,iBAAiBmH,EAASR,EAAiBD,QApBhD,IAAK1B,EAAI,EAAGA,EAAIkC,EAAOzX,OAAQuV,GAAK,EAAG,CACrC,IAAI3M,EAAQ6O,EAAOlC,GACdc,EAAGwB,gBAAiBxB,EAAGwB,cAAgB,IACvCxB,EAAGwB,cAAcjP,KAAUyN,EAAGwB,cAAcjP,GAAS,IAC1DyN,EAAGwB,cAAcjP,GAAOqB,KAAK,CAC3B+M,SAAUA,EACVY,cAAeJ,IAEjBnB,EAAG9F,iBAAiB3H,EAAO4O,EAAaP,IAgB9C,OAAO5U,MAidPgL,IA/cF,WAIE,IAHA,IAAIwJ,EAEAtN,EAAO,GAAI8C,EAAM1K,UAAU3B,OACvBqM,KAAQ9C,EAAM8C,GAAQ1K,UAAW0K,GACzC,IAAIyK,EAAYvN,EAAK,GACjBwN,EAAiBxN,EAAK,GACtByN,EAAWzN,EAAK,GAChB0N,EAAU1N,EAAK,GACI,mBAAZA,EAAK,KACEuN,GAAfD,EAAStN,GAAyB,GAAIyN,EAAWH,EAAO,GAAII,EAAUJ,EAAO,GAC9EE,OAAiB3G,GAEd6G,IAAWA,GAAU,GAG1B,IADA,IAAIQ,EAASX,EAAU7S,MAAM,KACpB1G,EAAI,EAAGA,EAAIka,EAAOzX,OAAQzC,GAAK,EAEtC,IADA,IAAIqL,EAAQ6O,EAAOla,GACVgY,EAAI,EAAGA,EAAIlT,KAAKrC,OAAQuV,GAAK,EAAG,CACvC,IAAIc,EAAKhU,KAAKkT,GACVuC,OAAW,EAMf,IALKf,GAAkBV,EAAGwB,cACxBC,EAAWzB,EAAGwB,cAAcjP,GACnBmO,GAAkBV,EAAGsB,oBAC9BG,EAAWzB,EAAGsB,kBAAkB/O,IAE9BkP,GAAYA,EAAS9X,OACvB,IAAK,IAAIuX,EAAIO,EAAS9X,OAAS,EAAGuX,GAAK,EAAGA,GAAK,EAAG,CAChD,IAAInO,EAAU0O,EAASP,GACnBP,GAAY5N,EAAQ4N,WAAaA,GAG1BA,GAAY5N,EAAQ4N,UAAY5N,EAAQ4N,SAASe,WAAa3O,EAAQ4N,SAASe,YAAcf,GAFtGX,EAAGlE,oBAAoBvJ,EAAOQ,EAAQwO,cAAeX,GACrDa,EAASE,OAAOT,EAAG,IAITP,IACVX,EAAGlE,oBAAoBvJ,EAAOQ,EAAQwO,cAAeX,GACrDa,EAASE,OAAOT,EAAG,KAM7B,OAAOlV,MAqaP2E,QAnaF,WAEE,IADA,IAAIuC,EAAO,GAAI8C,EAAM1K,UAAU3B,OACvBqM,KAAQ9C,EAAM8C,GAAQ1K,UAAW0K,GAIzC,IAFA,IAAIoL,EAASlO,EAAK,GAAGtF,MAAM,KACvBkT,EAAY5N,EAAK,GACZhM,EAAI,EAAGA,EAAIka,EAAOzX,OAAQzC,GAAK,EAEtC,IADA,IAAIqL,EAAQ6O,EAAOla,GACVgY,EAAI,EAAGA,EAAIlT,KAAKrC,OAAQuV,GAAK,EAAG,CACvC,IAAIc,EAAKhU,KAAKkT,GACV0C,OAAM,EACV,IACEA,EAAM,IAAItE,EAAIO,YAAYtL,EAAO,CAC/BsP,OAAQf,EACRgB,SAAS,EACTC,YAAY,IAEd,MAAO7V,IACP0V,EAAMjG,EAAIQ,YAAY,UAClBC,UAAU7J,GAAO,GAAM,GAC3BqP,EAAIC,OAASf,EAGfd,EAAGe,cAAgB7N,EAAKsI,QAAO,SAAUhH,EAAMwN,GAAa,OAAOA,EAAY,KAC/EhC,EAAGiC,cAAcL,GACjB5B,EAAGe,cAAgB,UACZf,EAAGe,cAGd,OAAO/U,MAuYPkW,cArYF,SAAuBC,GACrB,IAEIjb,EAFAka,EAAS,CAAC,sBAAuB,iBACjCgB,EAAMpW,KAEV,SAASqW,EAAanW,GAEpB,GAAIA,EAAE0G,SAAW5G,KAEjB,IADAmW,EAAS9a,KAAK2E,KAAME,GACfhF,EAAI,EAAGA,EAAIka,EAAOzX,OAAQzC,GAAK,EAClCkb,EAAIpL,IAAIoK,EAAOla,GAAImb,GAGvB,GAAIF,EACF,IAAKjb,EAAI,EAAGA,EAAIka,EAAOzX,OAAQzC,GAAK,EAClCkb,EAAIvL,GAAGuK,EAAOla,GAAImb,GAGtB,OAAOrW,MAqXPsW,WAnXF,SAAoBC,GAClB,GAAIvW,KAAKrC,OAAS,EAAG,CACnB,GAAI4Y,EAAgB,CAElB,IAAIC,EAASxW,KAAKwW,SAClB,OAAOxW,KAAK,GAAGyW,YAAclS,WAAWiS,EAAOzE,iBAAiB,iBAAmBxN,WAAWiS,EAAOzE,iBAAiB,gBAExH,OAAO/R,KAAK,GAAGyW,YAEjB,OAAO,MA2WPC,YAzWF,SAAqBH,GACnB,GAAIvW,KAAKrC,OAAS,EAAG,CACnB,GAAI4Y,EAAgB,CAElB,IAAIC,EAASxW,KAAKwW,SAClB,OAAOxW,KAAK,GAAG0E,aAAeH,WAAWiS,EAAOzE,iBAAiB,eAAiBxN,WAAWiS,EAAOzE,iBAAiB,kBAEvH,OAAO/R,KAAK,GAAG0E,aAEjB,OAAO,MAiWPiS,OA/VF,WACE,GAAI3W,KAAKrC,OAAS,EAAG,CACnB,IAAIqW,EAAKhU,KAAK,GACV4W,EAAM5C,EAAG6C,wBACThH,EAAOF,EAAIE,KACXiH,EAAY9C,EAAG8C,WAAajH,EAAKiH,WAAa,EAC9CC,EAAa/C,EAAG+C,YAAclH,EAAKkH,YAAc,EACjDC,EAAYhD,IAAO1C,EAAMA,EAAI2F,QAAUjD,EAAGgD,UAC1CE,EAAalD,IAAO1C,EAAMA,EAAI6F,QAAUnD,EAAGkD,WAC/C,MAAO,CACLE,IAAMR,EAAIQ,IAAMJ,EAAaF,EAC7BO,KAAOT,EAAIS,KAAOH,EAAcH,GAIpC,OAAO,MAiVP3S,IA3UF,SAAakT,EAAOnb,GAClB,IAAIjB,EACJ,GAAyB,IAArBoE,UAAU3B,OAAc,CAC1B,GAAqB,iBAAV2Z,EAEJ,CACL,IAAKpc,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EAEhC,IAAK,IAAIkU,KAAQkI,EACftX,KAAK9E,GAAGsV,MAAMpB,GAAQkI,EAAMlI,GAGhC,OAAOpP,KARP,GAAIA,KAAK,GAAM,OAAOsR,EAAIQ,iBAAiB9R,KAAK,GAAI,MAAM+R,iBAAiBuF,GAW/E,GAAyB,IAArBhY,UAAU3B,QAAiC,iBAAV2Z,EAAoB,CACvD,IAAKpc,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EAChC8E,KAAK9E,GAAGsV,MAAM8G,GAASnb,EAEzB,OAAO6D,KAET,OAAOA,MAuTPuX,KApTF,SAAcpB,GAEZ,IAAKA,EAAY,OAAOnW,KAExB,IAAK,IAAI9E,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EAEpC,IAA2C,IAAvCib,EAAS9a,KAAK2E,KAAK9E,GAAIA,EAAG8E,KAAK9E,IAEjC,OAAO8E,KAIX,OAAOA,MAySPwS,KA9RF,SAAcA,GACZ,QAAoB,IAATA,EACT,OAAOxS,KAAK,GAAKA,KAAK,GAAG0S,eAAY3E,EAGvC,IAAK,IAAI7S,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EACpC8E,KAAK9E,GAAGwX,UAAYF,EAEtB,OAAOxS,MAuRPwX,KApRF,SAAcA,GACZ,QAAoB,IAATA,EACT,OAAIxX,KAAK,GACAA,KAAK,GAAGyX,YAAY7X,OAEtB,KAGT,IAAK,IAAI1E,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EACpC8E,KAAK9E,GAAGuc,YAAcD,EAExB,OAAOxX,MA0QP6G,GAxQF,SAAYhD,GACV,IACI6T,EACAxc,EAFA8Y,EAAKhU,KAAK,GAGd,IAAKgU,QAA0B,IAAbnQ,EAA4B,OAAO,EACrD,GAAwB,iBAAbA,EAAuB,CAChC,GAAImQ,EAAG2D,QAAW,OAAO3D,EAAG2D,QAAQ9T,GAC/B,GAAImQ,EAAG4D,sBAAyB,OAAO5D,EAAG4D,sBAAsB/T,GAChE,GAAImQ,EAAG6D,kBAAqB,OAAO7D,EAAG6D,kBAAkBhU,GAG7D,IADA6T,EAAchV,EAAEmB,GACX3I,EAAI,EAAGA,EAAIwc,EAAY/Z,OAAQzC,GAAK,EACvC,GAAIwc,EAAYxc,KAAO8Y,EAAM,OAAO,EAEtC,OAAO,EACF,GAAInQ,IAAa8L,EAAO,OAAOqE,IAAOrE,EACxC,GAAI9L,IAAayN,EAAO,OAAO0C,IAAO1C,EAE3C,GAAIzN,EAASkB,UAAYlB,aAAoBsO,EAAM,CAEjD,IADAuF,EAAc7T,EAASkB,SAAW,CAAClB,GAAYA,EAC1C3I,EAAI,EAAGA,EAAIwc,EAAY/Z,OAAQzC,GAAK,EACvC,GAAIwc,EAAYxc,KAAO8Y,EAAM,OAAO,EAEtC,OAAO,EAET,OAAO,GAgPP8D,MA9OF,WACE,IACI5c,EADA6c,EAAQ/X,KAAK,GAEjB,GAAI+X,EAAO,CAGT,IAFA7c,EAAI,EAEuC,QAAnC6c,EAAQA,EAAMC,kBACG,IAAnBD,EAAMhT,WAAkB7J,GAAK,GAEnC,OAAOA,IAsOT+c,GAjOF,SAAYH,GACV,QAAqB,IAAVA,EAAyB,OAAO9X,KAC3C,IACIkY,EADAva,EAASqC,KAAKrC,OAElB,OACS,IAAIwU,EADT2F,EAAQna,EAAS,EACH,GAEdma,EAAQ,GACVI,EAAcva,EAASma,GACL,EAAqB,GACvB,CAAC9X,KAAKkY,IAER,CAAClY,KAAK8X,MAsNtBK,OApNF,WAEE,IADA,IAGIC,EAHAlR,EAAO,GAAI8C,EAAM1K,UAAU3B,OACvBqM,KAAQ9C,EAAM8C,GAAQ1K,UAAW0K,GAIzC,IAAK,IAAIkL,EAAI,EAAGA,EAAIhO,EAAKvJ,OAAQuX,GAAK,EAAG,CACvCkD,EAAWlR,EAAKgO,GAChB,IAAK,IAAIha,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EACpC,GAAwB,iBAAbkd,EAAuB,CAChC,IAAIC,EAAU1I,EAAIU,cAAc,OAEhC,IADAgI,EAAQ3F,UAAY0F,EACbC,EAAQC,YACbtY,KAAK9E,GAAGqd,YAAYF,EAAQC,iBAEzB,GAAIF,aAAoBjG,EAC7B,IAAK,IAAIe,EAAI,EAAGA,EAAIkF,EAASza,OAAQuV,GAAK,EACxClT,KAAK9E,GAAGqd,YAAYH,EAASlF,SAG/BlT,KAAK9E,GAAGqd,YAAYH,GAK1B,OAAOpY,MA4LPwY,QA1LF,SAAiBJ,GACf,IAAIld,EACAgY,EACJ,IAAKhY,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EAChC,GAAwB,iBAAbkd,EAAuB,CAChC,IAAIC,EAAU1I,EAAIU,cAAc,OAEhC,IADAgI,EAAQ3F,UAAY0F,EACflF,EAAImF,EAAQ9H,WAAW5S,OAAS,EAAGuV,GAAK,EAAGA,GAAK,EACnDlT,KAAK9E,GAAGud,aAAaJ,EAAQ9H,WAAW2C,GAAIlT,KAAK9E,GAAGqV,WAAW,SAE5D,GAAI6H,aAAoBjG,EAC7B,IAAKe,EAAI,EAAGA,EAAIkF,EAASza,OAAQuV,GAAK,EACpClT,KAAK9E,GAAGud,aAAaL,EAASlF,GAAIlT,KAAK9E,GAAGqV,WAAW,SAGvDvQ,KAAK9E,GAAGud,aAAaL,EAAUpY,KAAK9E,GAAGqV,WAAW,IAGtD,OAAOvQ,MAyKP0Y,KAvKF,SAAc7U,GACZ,OAAI7D,KAAKrC,OAAS,EACZkG,EACE7D,KAAK,GAAG2Y,oBAAsBjW,EAAE1C,KAAK,GAAG2Y,oBAAoB9R,GAAGhD,GAC1D,IAAIsO,EAAK,CAACnS,KAAK,GAAG2Y,qBAEpB,IAAIxG,EAAK,IAGdnS,KAAK,GAAG2Y,mBAA6B,IAAIxG,EAAK,CAACnS,KAAK,GAAG2Y,qBACpD,IAAIxG,EAAK,IAEX,IAAIA,EAAK,KA4JhByG,QA1JF,SAAiB/U,GACf,IAAIgV,EAAU,GACV7E,EAAKhU,KAAK,GACd,IAAKgU,EAAM,OAAO,IAAI7B,EAAK,IAC3B,KAAO6B,EAAG2E,oBAAoB,CAC5B,IAAID,EAAO1E,EAAG2E,mBACV9U,EACEnB,EAAEgW,GAAM7R,GAAGhD,IAAagV,EAAQjR,KAAK8Q,GAClCG,EAAQjR,KAAK8Q,GACtB1E,EAAK0E,EAEP,OAAO,IAAIvG,EAAK0G,IAgJhBC,KA9IF,SAAcjV,GACZ,GAAI7D,KAAKrC,OAAS,EAAG,CACnB,IAAIqW,EAAKhU,KAAK,GACd,OAAI6D,EACEmQ,EAAG+E,wBAA0BrW,EAAEsR,EAAG+E,wBAAwBlS,GAAGhD,GACxD,IAAIsO,EAAK,CAAC6B,EAAG+E,yBAEf,IAAI5G,EAAK,IAGd6B,EAAG+E,uBAAiC,IAAI5G,EAAK,CAAC6B,EAAG+E,yBAC9C,IAAI5G,EAAK,IAElB,OAAO,IAAIA,EAAK,KAkIhB6G,QAhIF,SAAiBnV,GACf,IAAIoV,EAAU,GACVjF,EAAKhU,KAAK,GACd,IAAKgU,EAAM,OAAO,IAAI7B,EAAK,IAC3B,KAAO6B,EAAG+E,wBAAwB,CAChC,IAAID,EAAO9E,EAAG+E,uBACVlV,EACEnB,EAAEoW,GAAMjS,GAAGhD,IAAaoV,EAAQrR,KAAKkR,GAClCG,EAAQrR,KAAKkR,GACtB9E,EAAK8E,EAEP,OAAO,IAAI3G,EAAK8G,IAsHhBC,OApHF,SAAgBrV,GAEd,IADA,IAAIoR,EAAU,GACL/Z,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EACT,OAAvB8E,KAAK9E,GAAG+K,aACNpC,EACEnB,EAAE1C,KAAK9E,GAAG+K,YAAYY,GAAGhD,IAAaoR,EAAQrN,KAAK5H,KAAK9E,GAAG+K,YAE/DgP,EAAQrN,KAAK5H,KAAK9E,GAAG+K,aAI3B,OAAOvD,EAAEiQ,EAAOsC,KA0GhBA,QAxGF,SAAiBpR,GAEf,IADA,IAAIoR,EAAU,GACL/Z,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EAEpC,IADA,IAAIge,EAASlZ,KAAK9E,GAAG+K,WACdiT,GACDrV,EACEnB,EAAEwW,GAAQrS,GAAGhD,IAAaoR,EAAQrN,KAAKsR,GAE3CjE,EAAQrN,KAAKsR,GAEfA,EAASA,EAAOjT,WAGpB,OAAOvD,EAAEiQ,EAAOsC,KA4FhBkE,QA1FF,SAAiBtV,GACf,IAAIsV,EAAUnZ,KACd,YAAwB,IAAb6D,EACF,IAAIsO,EAAK,KAEbgH,EAAQtS,GAAGhD,KACdsV,EAAUA,EAAQlE,QAAQpR,GAAUoU,GAAG,IAElCkB,IAmFPC,KAjFF,SAAcvV,GAEZ,IADA,IAAIwV,EAAgB,GACXne,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EAEpC,IADA,IAAIoe,EAAQtZ,KAAK9E,GAAGgV,iBAAiBrM,GAC5BqP,EAAI,EAAGA,EAAIoG,EAAM3b,OAAQuV,GAAK,EACrCmG,EAAczR,KAAK0R,EAAMpG,IAG7B,OAAO,IAAIf,EAAKkH,IA0EhB/I,SAxEF,SAAkBzM,GAEhB,IADA,IAAIyM,EAAW,GACNpV,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EAGpC,IAFA,IAAIqV,EAAavQ,KAAK9E,GAAGqV,WAEhB2C,EAAI,EAAGA,EAAI3C,EAAW5S,OAAQuV,GAAK,EACrCrP,EAEiC,IAA3B0M,EAAW2C,GAAGnO,UAAkBrC,EAAE6N,EAAW2C,IAAIrM,GAAGhD,IAC7DyM,EAAS1I,KAAK2I,EAAW2C,IAFM,IAA3B3C,EAAW2C,GAAGnO,UAAkBuL,EAAS1I,KAAK2I,EAAW2C,IAMnE,OAAO,IAAIf,EAAKQ,EAAOrC,KA4DvBd,OAvTF,SAAgB2G,GAGd,IAFA,IAAIoD,EAAe,GAEVre,EAAI,EAAGA,EADN8E,KACcrC,OAAQzC,GAAK,EAC/Bib,EAAS9a,KAFL2E,KAEc9E,GAAIA,EAFlB8E,KAEyB9E,KAAOqe,EAAa3R,KAF7C5H,KAEsD9E,IAEhE,OAAO,IAAIiX,EAAKoH,IAkThB/W,OA3DF,WACE,IAAK,IAAItH,EAAI,EAAGA,EAAI8E,KAAKrC,OAAQzC,GAAK,EAChC8E,KAAK9E,GAAG+K,YAAcjG,KAAK9E,GAAG+K,WAAWuT,YAAYxZ,KAAK9E,IAEhE,OAAO8E,MAwDPoT,IAtDF,WAEE,IADA,IAAIlM,EAAO,GAAI8C,EAAM1K,UAAU3B,OACvBqM,KAAQ9C,EAAM8C,GAAQ1K,UAAW0K,GAEzC,IACI9O,EACAgY,EAFAkD,EAAMpW,KAGV,IAAK9E,EAAI,EAAGA,EAAIgM,EAAKvJ,OAAQzC,GAAK,EAAG,CACnC,IAAIue,EAAQ/W,EAAEwE,EAAKhM,IACnB,IAAKgY,EAAI,EAAGA,EAAIuG,EAAM9b,OAAQuV,GAAK,EACjCkD,EAAIA,EAAIzY,QAAU8b,EAAMvG,GACxBkD,EAAIzY,QAAU,EAGlB,OAAOyY,GAyCPI,OApWF,WACE,OAAIxW,KAAK,GAAasR,EAAIQ,iBAAiB9R,KAAK,GAAI,MAC7C,KAqWTpE,OAAO2T,KAAKuD,GAAStV,SAAQ,SAAUkc,GACrChX,EAAEhF,GAAGgc,GAAchX,EAAEhF,GAAGgc,IAAe5G,EAAQ4G,MAGjD,IAAIC,EAAQ,CACVC,YAAa,SAAqBnc,GAChC,IAAIb,EAASa,EACb7B,OAAO2T,KAAK3S,GAAQY,SAAQ,SAAUf,GACpC,IACEG,EAAOH,GAAO,KACd,MAAOyD,IAGT,WACStD,EAAOH,GACd,MAAOyD,SAKbqK,SAAU,SAAkB4L,EAAU0D,GAGpC,YAFe,IAAVA,IAAmBA,EAAQ,GAEzBzW,WAAW+S,EAAU0D,IAE9BC,IAAK,WACH,OAAO7Y,KAAK6Y,OAEdC,aAAc,SAAsB/F,EAAIgG,GAGtC,IAAIC,EACAC,EACAC,OAJU,IAATH,IAAkBA,EAAO,KAM9B,IAAII,EAAW9I,EAAIQ,iBAAiBkC,EAAI,MA+BxC,OA7BI1C,EAAI+I,kBACNH,EAAeE,EAASjG,WAAaiG,EAAS/F,iBAC7BzS,MAAM,KAAKjE,OAAS,IACnCuc,EAAeA,EAAatY,MAAM,MAAM0Y,KAAI,SAAU7a,GAAK,OAAOA,EAAEK,QAAQ,IAAK,QAASqC,KAAK,OAIjGgY,EAAkB,IAAI7I,EAAI+I,gBAAiC,SAAjBH,EAA0B,GAAKA,IAGzED,GADAE,EAAkBC,EAASG,cAAgBH,EAASI,YAAcJ,EAASK,aAAeL,EAASM,aAAeN,EAASjG,WAAaiG,EAASrI,iBAAiB,aAAajS,QAAQ,aAAc,uBAC5K5C,WAAW0E,MAAM,KAG/B,MAAToY,IAEyBE,EAAvB5I,EAAI+I,gBAAkCF,EAAgBQ,IAE/B,KAAlBV,EAAOtc,OAAgC4G,WAAW0V,EAAO,KAE5C1V,WAAW0V,EAAO,KAE7B,MAATD,IAEyBE,EAAvB5I,EAAI+I,gBAAkCF,EAAgBS,IAE/B,KAAlBX,EAAOtc,OAAgC4G,WAAW0V,EAAO,KAE5C1V,WAAW0V,EAAO,KAEnCC,GAAgB,GAEzBW,cAAe,SAAuBvT,GACpC,IAEIpM,EACAqM,EACAuT,EACAnd,EALAod,EAAQ,GACRC,EAAa1T,GAAOgK,EAAIT,SAASI,KAKrC,GAA0B,iBAAf+J,GAA2BA,EAAWrd,OAK/C,IAFAA,GADA4J,GADAyT,EAAaA,EAAWlT,QAAQ,MAAQ,EAAIkT,EAAWlb,QAAQ,QAAS,IAAM,IAC1D8B,MAAM,KAAK4N,QAAO,SAAUyL,GAAc,MAAsB,KAAfA,MACrDtd,OAEXzC,EAAI,EAAGA,EAAIyC,EAAQzC,GAAK,EAC3B4f,EAAQvT,EAAOrM,GAAG4E,QAAQ,QAAS,IAAI8B,MAAM,KAC7CmZ,EAAMra,mBAAmBoa,EAAM,UAA2B,IAAbA,EAAM,QAAqB/M,EAAYrN,mBAAmBoa,EAAM,KAAO,GAGxH,OAAOC,GAETzd,SAAU,SAAkB3B,GAC1B,MAAoB,iBAANA,GAAwB,OAANA,GAAcA,EAAEmC,aAAenC,EAAEmC,cAAgBlC,QAEnF4D,OAAQ,WAEN,IADA,IAAI0H,EAAO,GAAIgU,EAAQ5b,UAAU3B,OACzBud,KAAUhU,EAAMgU,GAAU5b,UAAW4b,GAG7C,IADA,IAAIC,EAAKvf,OAAOsL,EAAK,IACZhM,EAAI,EAAGA,EAAIgM,EAAKvJ,OAAQzC,GAAK,EAAG,CACvC,IAAIkgB,EAAalU,EAAKhM,GACtB,GAAIkgB,QAEF,IADA,IAAIC,EAAYzf,OAAO2T,KAAK3T,OAAOwf,IAC1BE,EAAY,EAAGtR,EAAMqR,EAAU1d,OAAQ2d,EAAYtR,EAAKsR,GAAa,EAAG,CAC/E,IAAIC,EAAUF,EAAUC,GACpBE,EAAO5f,OAAO6f,yBAAyBL,EAAYG,QAC1CxN,IAATyN,GAAsBA,EAAK1f,aACzB6d,EAAMrc,SAAS6d,EAAGI,KAAa5B,EAAMrc,SAAS8d,EAAWG,IAC3D5B,EAAMna,OAAO2b,EAAGI,GAAUH,EAAWG,KAC3B5B,EAAMrc,SAAS6d,EAAGI,KAAa5B,EAAMrc,SAAS8d,EAAWG,KACnEJ,EAAGI,GAAW,GACd5B,EAAMna,OAAO2b,EAAGI,GAAUH,EAAWG,KAErCJ,EAAGI,GAAWH,EAAWG,KAMnC,OAAOJ,IAIPO,EACK,CACLC,SAAW,iBAAkBrK,GAASA,EAAIsK,eAAiBjM,aAAe2B,EAAIsK,eAE9EC,gBAAiBvK,EAAIwK,cAAiB,mBAAoBxK,EAAIvS,WAAcuS,EAAIvS,UAAUgd,gBAAkB,EAE5GC,SACU,qBAAsB1K,GAAO,2BAA4BA,EAGnE2K,gBAAkB,WAChB,IAAIC,GAAkB,EACtB,IACE,IAAIC,EAAOvgB,OAAOC,eAAe,GAAI,UAAW,CAE9CE,IAAK,WACHmgB,GAAkB,KAGtB5K,EAAIpD,iBAAiB,sBAAuB,KAAMiO,GAClD,MAAOjc,IAGT,OAAOgc,EAbQ,GAgBjBE,SACS,mBAAoB9K,GAK7B+K,EAAc,SAAqB9U,QACrB,IAAXA,IAAoBA,EAAS,IAElC,IAAI+U,EAAOtc,KACXsc,EAAK/U,OAASA,EAGd+U,EAAKC,gBAAkB,GAEnBD,EAAK/U,QAAU+U,EAAK/U,OAAOsD,IAC7BjP,OAAO2T,KAAK+M,EAAK/U,OAAOsD,IAAIrN,SAAQ,SAAUgf,GAC5CF,EAAKzR,GAAG2R,EAAWF,EAAK/U,OAAOsD,GAAG2R,QAKpCC,EAAkB,CAAEC,WAAY,CAAEC,cAAc,IAEpDN,EAAYvf,UAAU+N,GAAK,SAAauK,EAAQrO,EAAS6V,GACvD,IAAIN,EAAOtc,KACX,GAAuB,mBAAZ+G,EAA0B,OAAOuV,EAC5C,IAAIrT,EAAS2T,EAAW,UAAY,OAKpC,OAJAxH,EAAOxT,MAAM,KAAKpE,SAAQ,SAAU+I,GAC7B+V,EAAKC,gBAAgBhW,KAAU+V,EAAKC,gBAAgBhW,GAAS,IAClE+V,EAAKC,gBAAgBhW,GAAO0C,GAAQlC,MAE/BuV,GAGTD,EAAYvf,UAAUiO,KAAO,SAAeqK,EAAQrO,EAAS6V,GAC3D,IAAIN,EAAOtc,KACX,GAAuB,mBAAZ+G,EAA0B,OAAOuV,EAC5C,SAASO,IAEL,IADA,IAAI3V,EAAO,GAAI8C,EAAM1K,UAAU3B,OACvBqM,KAAQ9C,EAAM8C,GAAQ1K,UAAW0K,GAE3CsS,EAAKtR,IAAIoK,EAAQyH,GACbA,EAAYC,gBACPD,EAAYC,QAErB/V,EAAQC,MAAMsV,EAAMpV,GAGtB,OADA2V,EAAYC,QAAU/V,EACfuV,EAAKzR,GAAGuK,EAAQyH,EAAaD,IAGtCP,EAAYvf,UAAUkO,IAAM,SAAcoK,EAAQrO,GAChD,IAAIuV,EAAOtc,KACX,OAAKsc,EAAKC,iBACVnH,EAAOxT,MAAM,KAAKpE,SAAQ,SAAU+I,QACX,IAAZQ,EACTuV,EAAKC,gBAAgBhW,GAAS,GACrB+V,EAAKC,gBAAgBhW,IAAU+V,EAAKC,gBAAgBhW,GAAO5I,QACpE2e,EAAKC,gBAAgBhW,GAAO/I,SAAQ,SAAUuf,EAAcjF,IACtDiF,IAAiBhW,GAAYgW,EAAaD,SAAWC,EAAaD,UAAY/V,IAChFuV,EAAKC,gBAAgBhW,GAAOoP,OAAOmC,EAAO,SAK3CwE,GAZ6BA,GAetCD,EAAYvf,UAAUqO,KAAO,WAEzB,IADA,IAAIjE,EAAO,GAAI8C,EAAM1K,UAAU3B,OACvBqM,KAAQ9C,EAAM8C,GAAQ1K,UAAW0K,GAE3C,IAEIoL,EACA5M,EACA6J,EAJAiK,EAAOtc,KACX,IAAKsc,EAAKC,gBAAmB,OAAOD,EAIb,iBAAZpV,EAAK,IAAmBC,MAAMhK,QAAQ+J,EAAK,KACpDkO,EAASlO,EAAK,GACdsB,EAAOtB,EAAKhF,MAAM,EAAGgF,EAAKvJ,QAC1B0U,EAAUiK,IAEVlH,EAASlO,EAAK,GAAGkO,OACjB5M,EAAOtB,EAAK,GAAGsB,KACf6J,EAAUnL,EAAK,GAAGmL,SAAWiK,GAE/B,IAAIU,EAAc7V,MAAMhK,QAAQiY,GAAUA,EAASA,EAAOxT,MAAM,KAYhE,OAXAob,EAAYxf,SAAQ,SAAU+I,GAC5B,GAAI+V,EAAKC,iBAAmBD,EAAKC,gBAAgBhW,GAAQ,CACvD,IAAIkP,EAAW,GACf6G,EAAKC,gBAAgBhW,GAAO/I,SAAQ,SAAUuf,GAC5CtH,EAAS7N,KAAKmV,MAEhBtH,EAASjY,SAAQ,SAAUuf,GACzBA,EAAa/V,MAAMqL,EAAS7J,UAI3B8T,GAGTD,EAAYvf,UAAUmgB,iBAAmB,SAA2BC,GAClE,IAAIC,EAAWnd,KACVmd,EAAS/hB,SACdQ,OAAO2T,KAAK4N,EAAS/hB,SAASoC,SAAQ,SAAU4f,GAC9C,IAAIniB,EAASkiB,EAAS/hB,QAAQgiB,GAE1BniB,EAAOsM,QACToS,EAAMna,OAAO0d,EAAgBjiB,EAAOsM,YAK1C8U,EAAYvf,UAAUugB,WAAa,SAAqBC,QAC7B,IAAlBA,IAA2BA,EAAgB,IAElD,IAAIH,EAAWnd,KACVmd,EAAS/hB,SACdQ,OAAO2T,KAAK4N,EAAS/hB,SAASoC,SAAQ,SAAU4f,GAC9C,IAAIniB,EAASkiB,EAAS/hB,QAAQgiB,GAC1BG,EAAeD,EAAcF,IAAe,GAE5CniB,EAAOkiB,UACTvhB,OAAO2T,KAAKtU,EAAOkiB,UAAU3f,SAAQ,SAAUggB,GAC7C,IAAIC,EAAaxiB,EAAOkiB,SAASK,GAE/BL,EAASK,GADe,mBAAfC,EACkBA,EAAW/gB,KAAKygB,GAEhBM,KAK7BxiB,EAAO4P,IAAMsS,EAAStS,IACxBjP,OAAO2T,KAAKtU,EAAO4P,IAAIrN,SAAQ,SAAUkgB,GACvCP,EAAStS,GAAG6S,EAAiBziB,EAAO4P,GAAG6S,OAKvCziB,EAAOuB,QACTvB,EAAOuB,OAAOE,KAAKygB,EAAnBliB,CAA6BsiB,OAKnCd,EAAgBC,WAAW7b,IAAM,SAAU6b,GAC7B1c,KACD2d,KADC3d,KAEN2d,IAAIjB,IAGZL,EAAYuB,cAAgB,SAAwB3iB,GAEhD,IADA,IAAIsM,EAAS,GAAIyC,EAAM1K,UAAU3B,OAAS,EAClCqM,KAAQ,GAAIzC,EAAQyC,GAAQ1K,UAAW0K,EAAM,GAEvD,IAAI6I,EAAQ7S,KACP6S,EAAM/V,UAAU1B,UAAWyX,EAAM/V,UAAU1B,QAAU,IAC1D,IAAIK,EAAOR,EAAOQ,MAAWG,OAAO2T,KAAKsD,EAAM/V,UAAU1B,SAAe,OAAI,IAAOue,EAAMG,MAkBzF,OAjBAjH,EAAM/V,UAAU1B,QAAQK,GAAQR,EAE5BA,EAAO4iB,OACTjiB,OAAO2T,KAAKtU,EAAO4iB,OAAOrgB,SAAQ,SAAUf,GAC1CoW,EAAM/V,UAAUL,GAAOxB,EAAO4iB,MAAMphB,MAIpCxB,EAAO6iB,QACTliB,OAAO2T,KAAKtU,EAAO6iB,QAAQtgB,SAAQ,SAAUf,GAC3CoW,EAAMpW,GAAOxB,EAAO6iB,OAAOrhB,MAI3BxB,EAAO8iB,SACT9iB,EAAO8iB,QAAQ/W,MAAM6L,EAAOtL,GAEvBsL,GAGTwJ,EAAYsB,IAAM,SAAc1iB,GAE5B,IADA,IAAIsM,EAAS,GAAIyC,EAAM1K,UAAU3B,OAAS,EAClCqM,KAAQ,GAAIzC,EAAQyC,GAAQ1K,UAAW0K,EAAM,GAEvD,IAAI6I,EAAQ7S,KACZ,OAAImH,MAAMhK,QAAQlC,IAChBA,EAAOuC,SAAQ,SAAUlC,GAAK,OAAOuX,EAAM+K,cAActiB,MAClDuX,GAEFA,EAAM+K,cAAc5W,MAAM6L,EAAO,CAAE5X,GAAS6O,OAAQvC,KAG7D3L,OAAOoiB,iBAAkB3B,EAAaI,GA6nBtC,IAo1BMwB,EACAC,EAEAC,EAkBAC,EACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAr3BFC,EAAS,CACXC,WA5nBF,WACE,IACIC,EACAC,EACAC,EAHSpf,KAGIof,IAEfF,OADiC,IAJtBlf,KAIKuH,OAAO2X,MAJZlf,KAKIuH,OAAO2X,MAEdE,EAAI,GAAGC,YAGfF,OADkC,IATvBnf,KASKuH,OAAO4X,OATZnf,KAUKuH,OAAO4X,OAEdC,EAAI,GAAGE,aAEH,IAAVJ,GAdQlf,KAccuf,gBAA+B,IAAXJ,GAdlCnf,KAcyDwf,eAKtEN,EAAQA,EAAQO,SAASL,EAAIhb,IAAI,gBAAiB,IAAMqb,SAASL,EAAIhb,IAAI,iBAAkB,IAC3F+a,EAASA,EAASM,SAASL,EAAIhb,IAAI,eAAgB,IAAMqb,SAASL,EAAIhb,IAAI,kBAAmB,IAE7FuV,EAAMna,OAtBOQ,KAsBQ,CACnBkf,MAAOA,EACPC,OAAQA,EACRO,KAzBW1f,KAyBEuf,eAAiBL,EAAQC,MAmmBxCQ,aA/lBF,WACE,IACIpY,EADSvH,KACOuH,OAEhBqY,EAHS5f,KAGW4f,WACpBC,EAJS7f,KAIW0f,KACpBI,EALS9f,KAKI+f,aACbC,EANShgB,KAMSggB,SAClBC,EAPSjgB,KAOUkgB,SAAW3Y,EAAO2Y,QAAQC,QAC7CC,EAAuBH,EARdjgB,KAQiCkgB,QAAQG,OAAO1iB,OARhDqC,KAQgEqgB,OAAO1iB,OAChF0iB,EAAST,EAAWtP,SAAU,IATrBtQ,KASmCuH,OAAiB,YAC7D+Y,EAAeL,EAVNjgB,KAUyBkgB,QAAQG,OAAO1iB,OAAS0iB,EAAO1iB,OACjE4iB,EAAW,GACXC,EAAa,GACbC,EAAkB,GAEtB,SAASC,EAAgBC,GACvB,OAAKpZ,EAAOqZ,SACRD,IAAeN,EAAO1iB,OAAS,EAMrC,IAAIkjB,EAAetZ,EAAOuZ,mBACE,mBAAjBD,IACTA,EAAetZ,EAAOuZ,mBAAmBzlB,KAzB9B2E,OA4Bb,IAAI+gB,EAAcxZ,EAAOyZ,kBACE,mBAAhBD,IACTA,EAAcxZ,EAAOyZ,kBAAkB3lB,KA9B5B2E,OAiCb,IAAIihB,EAjCSjhB,KAiCuBugB,SAAS5iB,OACzCujB,EAlCSlhB,KAkCyBugB,SAAS5iB,OAE3CwjB,EAAe5Z,EAAO4Z,aACtBC,GAAiBP,EACjBQ,EAAgB,EAChBvJ,EAAQ,EACZ,QAA0B,IAAf+H,EAAX,CAaA,IAAIyB,EAaAC,EAvBwB,iBAAjBJ,GAA6BA,EAAarZ,QAAQ,MAAQ,IACnEqZ,EAAgB5c,WAAW4c,EAAarhB,QAAQ,IAAK,KAAO,IAAO+f,GA5CxD7f,KA+CNwhB,aAAeL,EAGlBrB,EAAOO,EAAOjc,IAAI,CAAEqd,WAAY,GAAIC,UAAW,KAC5CrB,EAAOjc,IAAI,CAAEud,YAAa,GAAIC,aAAc,KAG/Cra,EAAOsa,gBAAkB,IAEzBP,EADE9d,KAAKse,MAAMxB,EAAe/Y,EAAOsa,mBAAqBvB,EAvD/CtgB,KAuDqEuH,OAAOsa,gBAC5DvB,EAEA9c,KAAKue,KAAKzB,EAAe/Y,EAAOsa,iBAAmBta,EAAOsa,gBAExD,SAAzBta,EAAOya,eAA2D,QAA/Bza,EAAO0a,sBAC5CX,EAAyB9d,KAAK0e,IAAIZ,EAAwB/Z,EAAOya,cAAgBza,EAAOsa,mBAS5F,IAHA,IA2IIM,EA3IAN,EAAkBta,EAAOsa,gBACzBO,EAAed,EAAyBO,EACxCQ,EAAiB7e,KAAKse,MAAMxB,EAAe/Y,EAAOsa,iBAC7C3mB,EAAI,EAAGA,EAAIolB,EAAcplB,GAAK,EAAG,CACxCqmB,EAAY,EACZ,IAAIe,EAAQjC,EAAOpI,GAAG/c,GACtB,GAAIqM,EAAOsa,gBAAkB,EAAG,CAE9B,IAAIU,OAAqB,EACrBC,OAAS,EACTC,OAAM,EACV,GAAmC,QAA/Blb,EAAO0a,qBAAiC1a,EAAOmb,eAAiB,EAAG,CACrE,IAAIC,EAAanf,KAAKse,MAAM5mB,GAAKqM,EAAOmb,eAAiBnb,EAAOsa,kBAC5De,EAAoB1nB,EAAIqM,EAAOsa,gBAAkBta,EAAOmb,eAAiBC,EACzEE,EAAgC,IAAfF,EACjBpb,EAAOmb,eACPlf,KAAKsf,IAAItf,KAAKue,MAAMzB,EAAeqC,EAAad,EAAkBta,EAAOmb,gBAAkBb,GAAkBta,EAAOmb,gBAIxHH,GAFAC,EAAUI,GADVH,EAAMjf,KAAKse,MAAMc,EAAoBC,IACDA,EAAkBF,EAAapb,EAAOmb,gBAE1CD,EAAMnB,EAA0BO,EAChES,EACGle,IAAI,CACH,4BAA6Bme,EAC7B,yBAA0BA,EAC1B,iBAAkBA,EAClB,gBAAiBA,EACjBQ,MAAOR,QAE6B,WAA/Bhb,EAAO0a,qBAEhBQ,EAAMvnB,GADNsnB,EAAShf,KAAKse,MAAM5mB,EAAI2mB,IACJA,GAChBW,EAASH,GAAmBG,IAAWH,GAAkBI,IAAQZ,EAAkB,KACrFY,GAAO,IACIZ,IACTY,EAAM,EACND,GAAU,IAKdA,EAAStnB,GADTunB,EAAMjf,KAAKse,MAAM5mB,EAAIknB,IACDA,EAEtBE,EAAMle,IACH,WA/GMpE,KA+Gcuf,eAAiB,MAAQ,QACrC,IAARkD,GAAalb,EAAO4Z,cAAoB5Z,EAAmB,aAAI,MAGpE,GAA6B,SAAzB+a,EAAMle,IAAI,WAAd,CAEA,GAA6B,SAAzBmD,EAAOya,cAA0B,CACnC,IAAIgB,EAAc1R,EAAIQ,iBAAiBwQ,EAAM,GAAI,MAC7CW,EAAmBX,EAAM,GAAG9R,MAAM2D,UAClC+O,EAAyBZ,EAAM,GAAG9R,MAAM6D,gBAO5C,GANI4O,IACFX,EAAM,GAAG9R,MAAM2D,UAAY,QAEzB+O,IACFZ,EAAM,GAAG9R,MAAM6D,gBAAkB,QAE/B9M,EAAO4b,aACT5B,EAhIOvhB,KAgIYuf,eACf+C,EAAMhM,YAAW,GACjBgM,EAAM5L,aAAY,QAGtB,GArIO1W,KAqIIuf,eAAgB,CACzB,IAAIL,EAAQ3a,WAAWye,EAAYjR,iBAAiB,UAChDqR,EAAc7e,WAAWye,EAAYjR,iBAAiB,iBACtDsR,EAAe9e,WAAWye,EAAYjR,iBAAiB,kBACvD0P,EAAald,WAAWye,EAAYjR,iBAAiB,gBACrD4P,EAAcpd,WAAWye,EAAYjR,iBAAiB,iBACtDuR,EAAYN,EAAYjR,iBAAiB,cAE3CwP,EADE+B,GAA2B,eAAdA,EACHpE,EAAQuC,EAAaE,EAErBzC,EAAQkE,EAAcC,EAAe5B,EAAaE,MAE3D,CACL,IAAIxC,EAAS5a,WAAWye,EAAYjR,iBAAiB,WACjDwR,EAAahf,WAAWye,EAAYjR,iBAAiB,gBACrDyR,EAAgBjf,WAAWye,EAAYjR,iBAAiB,mBACxD2P,EAAYnd,WAAWye,EAAYjR,iBAAiB,eACpD6P,EAAerd,WAAWye,EAAYjR,iBAAiB,kBACvD0R,EAAcT,EAAYjR,iBAAiB,cAE7CwP,EADEkC,GAA+B,eAAhBA,EACLtE,EAASuC,EAAYE,EAErBzC,EAASoE,EAAaC,EAAgB9B,EAAYE,EAIhEqB,IACFX,EAAM,GAAG9R,MAAM2D,UAAY8O,GAEzBC,IACFZ,EAAM,GAAG9R,MAAM6D,gBAAkB6O,GAE/B3b,EAAO4b,eAAgB5B,EAAY/d,KAAKse,MAAMP,SAElDA,GAAa1B,GAAetY,EAAOya,cAAgB,GAAKb,GAAiB5Z,EAAOya,cAC5Eza,EAAO4b,eAAgB5B,EAAY/d,KAAKse,MAAMP,IAE9ClB,EAAOnlB,KA1KF8E,KA2KIuf,eACTc,EAAOnlB,GAAGsV,MAAM0O,MAAQqC,EAAY,KAEpClB,EAAOnlB,GAAGsV,MAAM2O,OAASoC,EAAY,MAIvClB,EAAOnlB,KACTmlB,EAAOnlB,GAAGwoB,gBAAkBnC,GAE9Bd,EAAgB7Y,KAAK2Z,GAGjBha,EAAOoc,gBACTvC,EAAgBA,EAAiBG,EAAY,EAAMF,EAAgB,EAAKF,EAClD,IAAlBE,GAA6B,IAANnmB,IAAWkmB,EAAgBA,EAAiBvB,EAAa,EAAKsB,GAC/E,IAANjmB,IAAWkmB,EAAgBA,EAAiBvB,EAAa,EAAKsB,GAC9D3d,KAAKogB,IAAIxC,GAAiB,OAAYA,EAAgB,GACtD7Z,EAAO4b,eAAgB/B,EAAgB5d,KAAKse,MAAMV,IAClD,EAAU7Z,EAAOmb,gBAAmB,GAAKnC,EAAS3Y,KAAKwZ,GAC3DZ,EAAW5Y,KAAKwZ,KAEZ7Z,EAAO4b,eAAgB/B,EAAgB5d,KAAKse,MAAMV,KACjDtJ,EAAQtU,KAAKsf,IAlMT9iB,KAkMoBuH,OAAOsc,mBAAoB/L,IAlM/C9X,KAkMgEuH,OAAOmb,gBAAmB,GAAKnC,EAAS3Y,KAAKwZ,GACtHZ,EAAW5Y,KAAKwZ,GAChBA,EAAgBA,EAAgBG,EAAYJ,GApMnCnhB,KAuMJwhB,aAAeD,EAAYJ,EAElCE,EAAgBE,EAEhBzJ,GAAS,GAcX,GAzNa9X,KA6MNwhB,YAAche,KAAK0e,IA7MbliB,KA6MwBwhB,YAAa3B,GAAckB,EAI9DjB,GAAOE,IAA+B,UAAlBzY,EAAOuc,QAAwC,cAAlBvc,EAAOuc,SACxDlE,EAAWxb,IAAI,CAAE8a,MAlNNlf,KAkNsBwhB,YAAcja,EAAO4Z,aAAgB,OAEpE5Z,EAAOwc,iBApNE/jB,KAqNAuf,eAAkBK,EAAWxb,IAAI,CAAE8a,MArNnClf,KAqNmDwhB,YAAcja,EAAO4Z,aAAgB,OAC5FvB,EAAWxb,IAAI,CAAE+a,OAtNbnf,KAsN8BwhB,YAAcja,EAAO4Z,aAAgB,QAG5E5Z,EAAOsa,gBAAkB,IAzNhB7hB,KA0NJwhB,aAAeD,EAAYha,EAAO4Z,cAAgBG,EA1N9CthB,KA2NJwhB,YAAche,KAAKue,KA3Nf/hB,KA2N2BwhB,YAAcja,EAAOsa,iBAAmBta,EAAO4Z,aA3N1EnhB,KA4NAuf,eAAkBK,EAAWxb,IAAI,CAAE8a,MA5NnClf,KA4NmDwhB,YAAcja,EAAO4Z,aAAgB,OAC5FvB,EAAWxb,IAAI,CAAE+a,OA7Nbnf,KA6N8BwhB,YAAcja,EAAO4Z,aAAgB,OAC1E5Z,EAAOoc,gBAAgB,CACzBxB,EAAgB,GAChB,IAAK,IAAI6B,EAAM,EAAGA,EAAMzD,EAAS5iB,OAAQqmB,GAAO,EAAG,CACjD,IAAIC,EAAiB1D,EAASyD,GAC1Bzc,EAAO4b,eAAgBc,EAAiBzgB,KAAKse,MAAMmC,IACnD1D,EAASyD,GAnONhkB,KAmOoBwhB,YAAcjB,EAAS,IAAM4B,EAAcva,KAAKqc,GAE7E1D,EAAW4B,EAKf,IAAK5a,EAAOoc,eAAgB,CAC1BxB,EAAgB,GAChB,IAAK,IAAI+B,GAAM,EAAGA,GAAM3D,EAAS5iB,OAAQumB,IAAO,EAAG,CACjD,IAAIC,GAAmB5D,EAAS2D,IAC5B3c,EAAO4b,eAAgBgB,GAAmB3gB,KAAKse,MAAMqC,KACrD5D,EAAS2D,KA/OJlkB,KA+OmBwhB,YAAc3B,GACxCsC,EAAcva,KAAKuc,IAGvB5D,EAAW4B,EACP3e,KAAKse,MApPE9hB,KAoPWwhB,YAAc3B,GAAcrc,KAAKse,MAAMvB,EAASA,EAAS5iB,OAAS,IAAM,GAC5F4iB,EAAS3Y,KArPA5H,KAqPYwhB,YAAc3B,GAYvC,GATwB,IAApBU,EAAS5iB,SAAgB4iB,EAAW,CAAC,IAEb,IAAxBhZ,EAAO4Z,eA1PEnhB,KA2PAuf,eACLO,EAAOO,EAAO7Q,OAAOkR,GAAiBtc,IAAI,CAAEqd,WAAaN,EAAe,OACrEd,EAAO7Q,OAAOkR,GAAiBtc,IAAI,CAAEud,YAAcR,EAAe,OAClEd,EAAO7Q,OAAOkR,GAAiBtc,IAAI,CAAEwd,aAAeT,EAAe,QAG1E5Z,EAAOoc,gBAAkBpc,EAAO6c,qBAAsB,CACxD,IAAIC,GAAgB,EACpB5D,EAAgBjjB,SAAQ,SAAU8mB,GAChCD,IAAiBC,GAAkB/c,EAAO4Z,aAAe5Z,EAAO4Z,aAAe,MAGjF,IAAIoD,IADJF,IAAiB9c,EAAO4Z,cACMtB,EAC9BU,EAAWA,EAASjG,KAAI,SAAUkK,GAChC,OAAIA,EAAO,GAAa3D,EACpB2D,EAAOD,GAAkBA,GAAUxD,EAChCyD,KAIX,GAAIjd,EAAOkd,yBAA0B,CACnC,IAAIC,GAAkB,EAKtB,GAJAjE,EAAgBjjB,SAAQ,SAAU8mB,GAChCI,IAAmBJ,GAAkB/c,EAAO4Z,aAAe5Z,EAAO4Z,aAAe,OAEnFuD,IAAmBnd,EAAO4Z,cACJtB,EAAY,CAChC,IAAI8E,IAAmB9E,EAAa6E,IAAmB,EACvDnE,EAAS/iB,SAAQ,SAAUgnB,EAAMI,GAC/BrE,EAASqE,GAAaJ,EAAOG,MAE/BnE,EAAWhjB,SAAQ,SAAUgnB,EAAMI,GACjCpE,EAAWoE,GAAaJ,EAAOG,OAKrChL,EAAMna,OAhSOQ,KAgSQ,CACnBqgB,OAAQA,EACRE,SAAUA,EACVC,WAAYA,EACZC,gBAAiBA,IAGfH,IAAiBF,GAvSRpgB,KAwSJmL,KAAK,sBAEVoV,EAAS5iB,SAAWsjB,IA1SXjhB,KA2SAuH,OAAOsd,eA3SP7kB,KA2S+B8kB,gBA3S/B9kB,KA4SJmL,KAAK,yBAEVqV,EAAW7iB,SAAWujB,GA9SblhB,KA+SJmL,KAAK,2BAGV5D,EAAOwd,qBAAuBxd,EAAOyd,wBAlT5BhlB,KAmTJilB,uBA4STC,iBAxSF,SAA2BC,GACzB,IAGIjqB,EAFAkqB,EAAe,GACfC,EAAY,EAQhB,GANqB,iBAAVF,EAJEnlB,KAKJslB,cAAcH,IACF,IAAVA,GANEnlB,KAOJslB,cAPItlB,KAOiBuH,OAAO4d,OAGD,SAVvBnlB,KAUFuH,OAAOya,eAVLhiB,KAUwCuH,OAAOya,cAAgB,EAC1E,GAXWhiB,KAWAuH,OAAOoc,eAXP3jB,KAYFulB,cAAchO,MAAK,SAAUO,EAAOwK,GACzC8C,EAAaxd,KAAK0a,WAGpB,IAAKpnB,EAAI,EAAGA,EAAIsI,KAAKue,KAhBZ/hB,KAgBwBuH,OAAOya,eAAgB9mB,GAAK,EAAG,CAC9D,IAAI4c,EAjBG9X,KAiBYwlB,YAActqB,EACjC,GAAI4c,EAlBG9X,KAkBYqgB,OAAO1iB,OAAU,MACpCynB,EAAaxd,KAnBN5H,KAmBkBqgB,OAAOpI,GAAGH,GAAO,SAI9CsN,EAAaxd,KAvBF5H,KAuBcqgB,OAAOpI,GAvBrBjY,KAuB+BwlB,aAAa,IAIzD,IAAKtqB,EAAI,EAAGA,EAAIkqB,EAAaznB,OAAQzC,GAAK,EACxC,QAA+B,IAApBkqB,EAAalqB,GAAoB,CAC1C,IAAIikB,EAASiG,EAAalqB,GAAGwJ,aAC7B2gB,EAAYlG,EAASkG,EAAYlG,EAASkG,EAK1CA,GAnCSrlB,KAmCW4f,WAAWxb,IAAI,SAAWihB,EAAY,OAqQ9DJ,mBAlQF,WAGE,IAFA,IACI5E,EADSrgB,KACOqgB,OACXnlB,EAAI,EAAGA,EAAImlB,EAAO1iB,OAAQzC,GAAK,EACtCmlB,EAAOnlB,GAAGuqB,kBAHCzlB,KAG0Buf,eAAiBc,EAAOnlB,GAAGwqB,WAAarF,EAAOnlB,GAAGyqB,WA+PzFC,qBA3PF,SAA+BC,QACV,IAAdA,IAAuBA,EAAa7lB,MAAQA,KAAK6lB,WAAc,GAEpE,IACIte,EADSvH,KACOuH,OAEhB8Y,EAHSrgB,KAGOqgB,OAChBP,EAJS9f,KAII+f,aAEjB,GAAsB,IAAlBM,EAAO1iB,OAAX,MAC2C,IAAhC0iB,EAAO,GAAGoF,mBAPRzlB,KAOoDilB,qBAEjE,IAAIa,GAAgBD,EAChB/F,IAAOgG,EAAeD,GAG1BxF,EAAOhN,YAAY9L,EAAOwe,mBAbb/lB,KAeNgmB,qBAAuB,GAfjBhmB,KAgBNulB,cAAgB,GAEvB,IAAK,IAAIrqB,EAAI,EAAGA,EAAImlB,EAAO1iB,OAAQzC,GAAK,EAAG,CACzC,IAAIonB,EAAQjC,EAAOnlB,GACf+qB,GACDH,GAAgBve,EAAOoc,eArBf3jB,KAqBuCkmB,eAAiB,GAAM5D,EAAMmD,oBAC1EnD,EAAMoB,gBAAkBnc,EAAO4Z,cACpC,GAAI5Z,EAAOyd,uBAA0Bzd,EAAOoc,gBAAkBpc,EAAO4e,WAAa,CAChF,IAAIC,IAAgBN,EAAexD,EAAMmD,mBACrCY,EAAaD,EAzBRpmB,KAyB6BygB,gBAAgBvlB,IACrCkrB,GAAe,GAAKA,EA1B5BpmB,KA0BiD0f,KAAO,GACnD2G,EAAa,GAAKA,GA3BvBrmB,KA2B4C0f,MACvC0G,GAAe,GAAKC,GA5BzBrmB,KA4B8C0f,QA5B9C1f,KA8BAulB,cAAc3d,KAAK0a,GA9BnBtiB,KA+BAgmB,qBAAqBpe,KAAK1M,GACjCmlB,EAAOpI,GAAG/c,GAAG6X,SAASxL,EAAOwe,oBAGjCzD,EAAMgE,SAAWxG,GAAOmG,EAAgBA,EAnC7BjmB,KAqCNulB,cAAgB7iB,EArCV1C,KAqCmBulB,iBAoNhCgB,eAjNF,SAAyBV,GAEvB,QAAyB,IAAdA,EAA2B,CACpC,IAAIW,EAFOxmB,KAEa+f,cAAgB,EAAI,EAE5C8F,EAJW7lB,WAImB6lB,WAJnB7lB,KAIwC6lB,UAAYW,GAAgB,EAEjF,IAAIjf,EANSvH,KAMOuH,OAChBkf,EAPSzmB,KAOe0mB,eAPf1mB,KAOuCkmB,eAChDI,EARStmB,KAQSsmB,SAClBK,EATS3mB,KASY2mB,YACrBC,EAVS5mB,KAUM4mB,MACfC,EAAeF,EACfG,EAASF,EACU,IAAnBH,GACFH,EAAW,EACXK,GAAc,EACdC,GAAQ,IAGRD,GADAL,GAAYT,EAlBD7lB,KAkBoBkmB,gBAAkB,IACvB,EAC1BU,EAAQN,GAAY,GAEtB3M,EAAMna,OAtBOQ,KAsBQ,CACnBsmB,SAAUA,EACVK,YAAaA,EACbC,MAAOA,KAGLrf,EAAOwd,qBAAuBxd,EAAOyd,uBAA0Bzd,EAAOoc,gBAAkBpc,EAAO4e,aA5BtFnmB,KA4B4G4lB,qBAAqBC,GAE1Ic,IAAgBE,GA9BP7mB,KA+BJmL,KAAK,yBAEVyb,IAAUE,GAjCD9mB,KAkCJmL,KAAK,oBAET0b,IAAiBF,GAAiBG,IAAWF,IApCrC5mB,KAqCJmL,KAAK,YArCDnL,KAwCNmL,KAAK,WAAYmb,IAyKxBS,oBAtKF,WACE,IAWIC,EATA3G,EAFSrgB,KAEOqgB,OAChB9Y,EAHSvH,KAGOuH,OAChBqY,EAJS5f,KAIW4f,WACpB4F,EALSxlB,KAKYwlB,YACrByB,EANSjnB,KAMUinB,UACnBhH,EAPSjgB,KAOUkgB,SAAW3Y,EAAO2Y,QAAQC,QAEjDE,EAAOhN,YAAc9L,EAAuB,iBAAI,IAAOA,EAAqB,eAAI,IAAOA,EAAqB,eAAI,IAAOA,EAAgC,0BAAI,IAAOA,EAA8B,wBAAI,IAAOA,EAA8B,0BAIvOyf,EADE/G,EAZSjgB,KAaU4f,WAAWxG,KAAM,IAAO7R,EAAiB,WAAI,6BAAgCie,EAAc,MAElGnF,EAAOpI,GAAGuN,IAIdzS,SAASxL,EAAO2f,kBAExB3f,EAAO4f,OAELH,EAAY1T,SAAS/L,EAAO6f,qBAC9BxH,EACGtP,SAAU,IAAO/I,EAAiB,WAAI,SAAYA,EAA0B,oBAAI,8BAAiC0f,EAAY,MAC7HlU,SAASxL,EAAO8f,2BAEnBzH,EACGtP,SAAU,IAAO/I,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,6BAAgC0f,EAAY,MACvHlU,SAASxL,EAAO8f,4BAIvB,IAAIC,EAAYN,EAAYpO,QAAS,IAAOrR,EAAiB,YAAI0Q,GAAG,GAAGlF,SAASxL,EAAOggB,gBACnFhgB,EAAO4f,MAA6B,IAArBG,EAAU3pB,SAC3B2pB,EAAYjH,EAAOpI,GAAG,IACZlF,SAASxL,EAAOggB,gBAG5B,IAAIC,EAAYR,EAAYhO,QAAS,IAAOzR,EAAiB,YAAI0Q,GAAG,GAAGlF,SAASxL,EAAOkgB,gBACnFlgB,EAAO4f,MAA6B,IAArBK,EAAU7pB,SAC3B6pB,EAAYnH,EAAOpI,IAAI,IACblF,SAASxL,EAAOkgB,gBAExBlgB,EAAO4f,OAELG,EAAUhU,SAAS/L,EAAO6f,qBAC5BxH,EACGtP,SAAU,IAAO/I,EAAiB,WAAI,SAAYA,EAA0B,oBAAI,8BAAkC+f,EAAU5T,KAAK,2BAA8B,MAC/JX,SAASxL,EAAOmgB,yBAEnB9H,EACGtP,SAAU,IAAO/I,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,6BAAiC+f,EAAU5T,KAAK,2BAA8B,MACzJX,SAASxL,EAAOmgB,yBAEjBF,EAAUlU,SAAS/L,EAAO6f,qBAC5BxH,EACGtP,SAAU,IAAO/I,EAAiB,WAAI,SAAYA,EAA0B,oBAAI,8BAAkCigB,EAAU9T,KAAK,2BAA8B,MAC/JX,SAASxL,EAAOogB,yBAEnB/H,EACGtP,SAAU,IAAO/I,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,6BAAiCigB,EAAU9T,KAAK,2BAA8B,MACzJX,SAASxL,EAAOogB,2BAuGvBC,kBAlGF,SAA4BC,GAC1B,IASIjD,EARAiB,EADS7lB,KACU+f,aADV/f,KACgC6lB,WADhC7lB,KACoD6lB,UAC7DrF,EAFSxgB,KAEWwgB,WACpBD,EAHSvgB,KAGSugB,SAClBhZ,EAJSvH,KAIOuH,OAChBugB,EALS9nB,KAKcwlB,YACvBuC,EANS/nB,KAMkBinB,UAC3Be,EAPShoB,KAOkB4kB,UAC3BY,EAAcqC,EAElB,QAA2B,IAAhBrC,EAA6B,CACtC,IAAK,IAAItqB,EAAI,EAAGA,EAAIslB,EAAW7iB,OAAQzC,GAAK,OACT,IAAtBslB,EAAWtlB,EAAI,GACpB2qB,GAAarF,EAAWtlB,IAAM2qB,EAAYrF,EAAWtlB,EAAI,IAAOslB,EAAWtlB,EAAI,GAAKslB,EAAWtlB,IAAM,EACvGsqB,EAActqB,EACL2qB,GAAarF,EAAWtlB,IAAM2qB,EAAYrF,EAAWtlB,EAAI,KAClEsqB,EAActqB,EAAI,GAEX2qB,GAAarF,EAAWtlB,KACjCsqB,EAActqB,GAIdqM,EAAO0gB,sBACLzC,EAAc,QAA4B,IAAhBA,KAA+BA,EAAc,GAG/E,GAAIjF,EAASzY,QAAQ+d,IAAc,EACjCjB,EAAYrE,EAASzY,QAAQ+d,OACxB,CACL,IAAIqC,EAAO1kB,KAAKsf,IAAIvb,EAAOsc,mBAAoB2B,GAC/CZ,EAAYsD,EAAO1kB,KAAKse,OAAO0D,EAAc0C,GAAQ3gB,EAAOmb,gBAG9D,GADIkC,GAAarE,EAAS5iB,SAAUinB,EAAYrE,EAAS5iB,OAAS,GAC9D6nB,IAAgBsC,EAApB,CASA,IAAIb,EAAYxH,SA3CHzf,KA2CmBqgB,OAAOpI,GAAGuN,GAAa9R,KAAK,4BAA8B8R,EAAa,IAEvG7L,EAAMna,OA7COQ,KA6CQ,CACnB4kB,UAAWA,EACXqC,UAAWA,EACXa,cAAeA,EACftC,YAAaA,IAjDFxlB,KAmDNmL,KAAK,qBAnDCnL,KAoDNmL,KAAK,mBACR4c,IAAsBd,GArDbjnB,KAsDJmL,KAAK,oBAtDDnL,KAwDFmoB,aAxDEnoB,KAwDoBuH,OAAO6gB,qBAxD3BpoB,KAyDJmL,KAAK,oBAtBRyZ,IAAcoD,IAnCPhoB,KAoCF4kB,UAAYA,EApCV5kB,KAqCFmL,KAAK,qBA6DhBkd,mBArCF,SAA6BnoB,GAC3B,IACIqH,EADSvH,KACOuH,OAChB+a,EAAQ5f,EAAExC,EAAE0G,QAAQuS,QAAS,IAAO5R,EAAiB,YAAI,GACzD+gB,GAAa,EACjB,GAAIhG,EACF,IAAK,IAAIpnB,EAAI,EAAGA,EALL8E,KAKgBqgB,OAAO1iB,OAAQzC,GAAK,EALpC8E,KAMEqgB,OAAOnlB,KAAOonB,IAASgG,GAAa,GAInD,IAAIhG,IAASgG,EAUX,OApBWtoB,KAkBJuoB,kBAAexa,OAlBX/N,KAmBJwoB,kBAAeza,GAnBX/N,KAWJuoB,aAAejG,EAXXtiB,KAYAkgB,SAZAlgB,KAYkBuH,OAAO2Y,QAAQC,QAZjCngB,KAaFwoB,aAAe/I,SAAS/c,EAAE4f,GAAO5O,KAAK,2BAA4B,IAbhE1T,KAeFwoB,aAAe9lB,EAAE4f,GAAOxK,QAO/BvQ,EAAOkhB,0BAA+C1a,IAtB7C/N,KAsB4BwoB,cAtB5BxoB,KAsBiEwoB,eAtBjExoB,KAsByFwlB,aAtBzFxlB,KAuBJyoB,wBA0KP5C,EAAY,CACd9L,aA3JF,SAAuBC,QACP,IAATA,IAAkBA,EAAOha,KAAKuf,eAAiB,IAAM,KAE1D,IAEIhY,EAFSvH,KAEOuH,OAChBuY,EAHS9f,KAGI+f,aACb8F,EAJS7lB,KAIU6lB,UACnBjG,EALS5f,KAKW4f,WAExB,GAAIrY,EAAOmhB,iBACT,OAAO5I,GAAO+F,EAAYA,EAE5B,GAAIte,EAAOqZ,QACT,OAAOiF,EAGT,IAAI8C,EAAmBhP,EAAMI,aAAa6F,EAAW,GAAI5F,GAGzD,OAFI8F,IAAO6I,GAAoBA,GAExBA,GAAoB,GAwI3BC,aArIF,SAAuB/C,EAAWgD,GAChC,IACI/I,EADS9f,KACI+f,aACbxY,EAFSvH,KAEOuH,OAChBqY,EAHS5f,KAGW4f,WACpBkJ,EAJS9oB,KAIU8oB,UACnBxC,EALStmB,KAKSsmB,SAClByC,EAAI,EACJC,EAAI,EAPKhpB,KAUFuf,eACTwJ,EAAIjJ,GAAO+F,EAAYA,EAEvBmD,EAAInD,EAGFte,EAAO4b,eACT4F,EAAIvlB,KAAKse,MAAMiH,GACfC,EAAIxlB,KAAKse,MAAMkH,IAGbzhB,EAAOqZ,QACTkI,EAtBW9oB,KAsBMuf,eAAiB,aAAe,aAtBtCvf,KAsB4Duf,gBAAkBwJ,GAAKC,EACpFzhB,EAAOmhB,kBACjB9I,EAAWzL,UAAW,eAAiB4U,EAAI,OAASC,EAA/B,YAxBVhpB,KA0BNipB,kBA1BMjpB,KA0BqB6lB,UA1BrB7lB,KA2BN6lB,UA3BM7lB,KA2Bauf,eAAiBwJ,EAAIC,EAI/C,IAAIvC,EA/BSzmB,KA+Be0mB,eA/Bf1mB,KA+BuCkmB,gBAC7B,IAAnBO,EACY,GAECZ,EAnCJ7lB,KAmCuBkmB,gBAAkB,KAElCI,GArCPtmB,KAsCJumB,eAAeV,GAtCX7lB,KAyCNmL,KAAK,eAzCCnL,KAyCsB6lB,UAAWgD,IA4F9C3C,aAzFF,WACE,OAASlmB,KAAKugB,SAAS,IAyFvBmG,aAtFF,WACE,OAAS1mB,KAAKugB,SAASvgB,KAAKugB,SAAS5iB,OAAS,IAsF9CurB,YAnFF,SAAsBrD,EAAWV,EAAOgE,EAAcC,EAAiBC,GACrE,IAAI5rB,OAEe,IAAdooB,IAAuBA,EAAY,QACzB,IAAVV,IAAmBA,EAAQnlB,KAAKuH,OAAO4d,YACtB,IAAjBgE,IAA0BA,GAAe,QACrB,IAApBC,IAA6BA,GAAkB,GACpD,IAAIE,EAAStpB,KAETuH,EAAS+hB,EAAO/hB,OAChBuhB,EAAYQ,EAAOR,UAEvB,GAAIQ,EAAOC,WAAahiB,EAAOiiB,+BAC7B,OAAO,EAGT,IAEIC,EAFAvD,EAAeoD,EAAOpD,eACtBQ,EAAe4C,EAAO5C,eAS1B,GAPmD+C,EAA/CL,GAAmBvD,EAAYK,EAA+BA,EACzDkD,GAAmBvD,EAAYa,EAA+BA,EACjDb,EAGtByD,EAAO/C,eAAekD,GAElBliB,EAAOqZ,QAAS,CAClB,IAAI8I,EAAMJ,EAAO/J,eAWjB,OAVc,IAAV4F,EACF2D,EAAUY,EAAM,aAAe,cAAgBD,EAG3CX,EAAUa,SACZb,EAAUa,WAAWlsB,EAAM,IAAQisB,EAAM,OAAS,QAAUD,EAAchsB,EAAImsB,SAAW,SAAUnsB,IAEnGqrB,EAAUY,EAAM,aAAe,cAAgBD,GAG5C,EAqCT,OAlCc,IAAVtE,GACFmE,EAAOhE,cAAc,GACrBgE,EAAOV,aAAaa,GAChBN,IACFG,EAAOne,KAAK,wBAAyBga,EAAOkE,GAC5CC,EAAOne,KAAK,oBAGdme,EAAOhE,cAAcH,GACrBmE,EAAOV,aAAaa,GAChBN,IACFG,EAAOne,KAAK,wBAAyBga,EAAOkE,GAC5CC,EAAOne,KAAK,oBAETme,EAAOC,YACVD,EAAOC,WAAY,EACdD,EAAOO,oCACVP,EAAOO,kCAAoC,SAAuB3pB,GAC3DopB,IAAUA,EAAOQ,WAClB5pB,EAAE0G,SAAW5G,OACjBspB,EAAO1J,WAAW,GAAG9P,oBAAoB,gBAAiBwZ,EAAOO,mCACjEP,EAAO1J,WAAW,GAAG9P,oBAAoB,sBAAuBwZ,EAAOO,mCACvEP,EAAOO,kCAAoC,YACpCP,EAAOO,kCACVV,GACFG,EAAOne,KAAK,oBAIlBme,EAAO1J,WAAW,GAAG1R,iBAAiB,gBAAiBob,EAAOO,mCAC9DP,EAAO1J,WAAW,GAAG1R,iBAAiB,sBAAuBob,EAAOO,sCAIjE,IA0FLE,EAAe,CACjBzE,cAhFF,SAAwBxiB,EAAU+lB,GACnB7oB,KAEDuH,OAAOqZ,SAFN5gB,KAGJ4f,WAAWtL,WAAWxR,GAHlB9C,KAMNmL,KAAK,gBAAiBrI,EAAU+lB,IA0EvCmB,gBAvEF,SAA0Bb,EAAcc,QAChB,IAAjBd,IAA0BA,GAAe,GAE9C,IACI3D,EADSxlB,KACYwlB,YACrBje,EAFSvH,KAEOuH,OAChBugB,EAHS9nB,KAGc8nB,cAC3B,IAAIvgB,EAAOqZ,QAAX,CACIrZ,EAAO4e,YALEnmB,KAMJklB,mBAGT,IAAIxZ,EAAMue,EASV,GARKve,IACgCA,EAA/B8Z,EAAcsC,EAAuB,OAChCtC,EAAcsC,EAAuB,OACjC,SAbF9nB,KAgBNmL,KAAK,mBAERge,GAAgB3D,IAAgBsC,EAAe,CACjD,GAAY,UAARpc,EAEF,YArBS1L,KAoBFmL,KAAK,6BApBHnL,KAuBJmL,KAAK,8BACA,SAARO,EAxBO1L,KAyBFmL,KAAK,4BAzBHnL,KA2BFmL,KAAK,+BA0ChB+K,cArCF,SAA0BiT,EAAcc,QAChB,IAAjBd,IAA0BA,GAAe,GAE9C,IACI3D,EADSxlB,KACYwlB,YACrBsC,EAFS9nB,KAEc8nB,cACvBvgB,EAHSvH,KAGOuH,OAEpB,GALavH,KAINupB,WAAY,GACfhiB,EAAOqZ,QAAX,CALa5gB,KAMNslB,cAAc,GAErB,IAAI5Z,EAAMue,EASV,GARKve,IACgCA,EAA/B8Z,EAAcsC,EAAuB,OAChCtC,EAAcsC,EAAuB,OACjC,SAZF9nB,KAeNmL,KAAK,iBAERge,GAAgB3D,IAAgBsC,EAAe,CACjD,GAAY,UAARpc,EAEF,YApBS1L,KAmBFmL,KAAK,2BAnBHnL,KAsBJmL,KAAK,4BACA,SAARO,EAvBO1L,KAwBFmL,KAAK,0BAxBHnL,KA0BFmL,KAAK,8BAkTdmX,EAAQ,CACV4H,QAxSF,SAAkBpS,EAAOqN,EAAOgE,EAAcE,GAC5C,IAAI5rB,OAEW,IAAVqa,IAAmBA,EAAQ,QACjB,IAAVqN,IAAmBA,EAAQnlB,KAAKuH,OAAO4d,YACtB,IAAjBgE,IAA0BA,GAAe,GAC9C,IAAIG,EAAStpB,KACT2gB,EAAa7I,EACb6I,EAAa,IAAKA,EAAa,GAEnC,IAAIpZ,EAAS+hB,EAAO/hB,OAChBgZ,EAAW+I,EAAO/I,SAClBC,EAAa8I,EAAO9I,WACpBsH,EAAgBwB,EAAOxB,cACvBtC,EAAc8D,EAAO9D,YACrB1F,EAAMwJ,EAAOvJ,aACb+I,EAAYQ,EAAOR,UACvB,GAAIQ,EAAOC,WAAahiB,EAAOiiB,+BAC7B,OAAO,EAGT,IAAItB,EAAO1kB,KAAKsf,IAAIwG,EAAO/hB,OAAOsc,mBAAoBlD,GAClDiE,EAAYsD,EAAO1kB,KAAKse,OAAOnB,EAAauH,GAAQoB,EAAO/hB,OAAOmb,gBAClEkC,GAAarE,EAAS5iB,SAAUinB,EAAYrE,EAAS5iB,OAAS,IAE7D6nB,GAAeje,EAAO4iB,cAAgB,MAAQrC,GAAiB,IAAMqB,GACxEG,EAAOne,KAAK,0BAGd,IAuBI8e,EAvBApE,GAAatF,EAASqE,GAM1B,GAHA0E,EAAO/C,eAAeV,GAGlBte,EAAO0gB,oBACT,IAAK,IAAI/sB,EAAI,EAAGA,EAAIslB,EAAW7iB,OAAQzC,GAAK,GACrCsI,KAAKse,MAAkB,IAAZ+D,IAAoBriB,KAAKse,MAAsB,IAAhBtB,EAAWtlB,MACxDylB,EAAazlB,GAKnB,GAAIouB,EAAOnB,aAAexH,IAAe6E,EAAa,CACpD,IAAK8D,EAAOc,gBAAkBvE,EAAYyD,EAAOzD,WAAaA,EAAYyD,EAAOpD,eAC/E,OAAO,EAET,IAAKoD,EAAOe,gBAAkBxE,EAAYyD,EAAOzD,WAAaA,EAAYyD,EAAO5C,iBAC1ElB,GAAe,KAAO7E,EAAc,OAAO,EAWpD,GANgCsJ,EAA5BtJ,EAAa6E,EAA2B,OACnC7E,EAAa6E,EAA2B,OAC9B,QAId1F,IAAQ+F,IAAcyD,EAAOzD,YAAgB/F,GAAO+F,IAAcyD,EAAOzD,UAc5E,OAbAyD,EAAO1B,kBAAkBjH,GAErBpZ,EAAO4e,YACTmD,EAAOpE,mBAEToE,EAAOvC,sBACe,UAAlBxf,EAAOuc,QACTwF,EAAOV,aAAa/C,GAEJ,UAAdoE,IACFX,EAAOU,gBAAgBb,EAAcc,GACrCX,EAAOpT,cAAciT,EAAcc,KAE9B,EAET,GAAI1iB,EAAOqZ,QAAS,CAClB,IAAI8I,EAAMJ,EAAO/J,eACbnjB,GAAKypB,EAcT,OAbI/F,IACF1jB,EAAI0sB,EAAUwB,YAAcxB,EAAUrS,YAAcra,GAExC,IAAV+oB,EACF2D,EAAUY,EAAM,aAAe,aAAettB,EAG1C0sB,EAAUa,SACZb,EAAUa,WAAWlsB,EAAM,IAAQisB,EAAM,OAAS,OAASttB,EAAGqB,EAAImsB,SAAW,SAAUnsB,IAEvFqrB,EAAUY,EAAM,aAAe,aAAettB,GAG3C,EAoCT,OAjCc,IAAV+oB,GACFmE,EAAOhE,cAAc,GACrBgE,EAAOV,aAAa/C,GACpByD,EAAO1B,kBAAkBjH,GACzB2I,EAAOvC,sBACPuC,EAAOne,KAAK,wBAAyBga,EAAOkE,GAC5CC,EAAOU,gBAAgBb,EAAcc,GACrCX,EAAOpT,cAAciT,EAAcc,KAEnCX,EAAOhE,cAAcH,GACrBmE,EAAOV,aAAa/C,GACpByD,EAAO1B,kBAAkBjH,GACzB2I,EAAOvC,sBACPuC,EAAOne,KAAK,wBAAyBga,EAAOkE,GAC5CC,EAAOU,gBAAgBb,EAAcc,GAChCX,EAAOC,YACVD,EAAOC,WAAY,EACdD,EAAOiB,gCACVjB,EAAOiB,8BAAgC,SAAuBrqB,GACvDopB,IAAUA,EAAOQ,WAClB5pB,EAAE0G,SAAW5G,OACjBspB,EAAO1J,WAAW,GAAG9P,oBAAoB,gBAAiBwZ,EAAOiB,+BACjEjB,EAAO1J,WAAW,GAAG9P,oBAAoB,sBAAuBwZ,EAAOiB,+BACvEjB,EAAOiB,8BAAgC,YAChCjB,EAAOiB,8BACdjB,EAAOpT,cAAciT,EAAcc,MAGvCX,EAAO1J,WAAW,GAAG1R,iBAAiB,gBAAiBob,EAAOiB,+BAC9DjB,EAAO1J,WAAW,GAAG1R,iBAAiB,sBAAuBob,EAAOiB,kCAIjE,GA0KPC,YAvKF,SAAsB1S,EAAOqN,EAAOgE,EAAcE,QACjC,IAAVvR,IAAmBA,EAAQ,QACjB,IAAVqN,IAAmBA,EAAQnlB,KAAKuH,OAAO4d,YACtB,IAAjBgE,IAA0BA,GAAe,GAE9C,IACIsB,EAAW3S,EAKf,OANa9X,KAEFuH,OAAO4f,OAChBsD,GAHWzqB,KAGQ0qB,cAHR1qB,KAMCkqB,QAAQO,EAAUtF,EAAOgE,EAAcE,IA6JrDsB,UAzJF,SAAoBxF,EAAOgE,EAAcE,QACxB,IAAVlE,IAAmBA,EAAQnlB,KAAKuH,OAAO4d,YACtB,IAAjBgE,IAA0BA,GAAe,GAE9C,IACI5hB,EADSvH,KACOuH,OAChBgiB,EAFSvpB,KAEUupB,UACnBqB,EAHS5qB,KAGUwlB,YAAcje,EAAOsc,mBAAqB,EAAItc,EAAOmb,eAC5E,GAAInb,EAAO4f,KAAM,CACf,GAAIoC,EAAa,OAAO,EALbvpB,KAMJ6qB,UANI7qB,KAQJ8qB,YARI9qB,KAQiB4f,WAAW,GAAG7I,WAE5C,OAVa/W,KAUCkqB,QAVDlqB,KAUgBwlB,YAAcoF,EAAWzF,EAAOgE,EAAcE,IA4I3E0B,UAxIF,SAAoB5F,EAAOgE,EAAcE,QACxB,IAAVlE,IAAmBA,EAAQnlB,KAAKuH,OAAO4d,YACtB,IAAjBgE,IAA0BA,GAAe,GAE9C,IACI5hB,EADSvH,KACOuH,OAChBgiB,EAFSvpB,KAEUupB,UACnBhJ,EAHSvgB,KAGSugB,SAClBC,EAJSxgB,KAIWwgB,WACpBT,EALS/f,KAKa+f,aAE1B,GAAIxY,EAAO4f,KAAM,CACf,GAAIoC,EAAa,OAAO,EARbvpB,KASJ6qB,UATI7qB,KAWJ8qB,YAXI9qB,KAWiB4f,WAAW,GAAG7I,WAG5C,SAASiU,EAAU5tB,GACjB,OAAIA,EAAM,GAAaoG,KAAKse,MAAMte,KAAKogB,IAAIxmB,IACpCoG,KAAKse,MAAM1kB,GAEpB,IAWI6tB,EAXAC,EAAsBF,EALVjL,EAbH/f,KAayB6lB,WAbzB7lB,KAa6C6lB,WAMtDsF,EAAqB5K,EAASjG,KAAI,SAAUld,GAAO,OAAO4tB,EAAU5tB,MAIpEguB,GAHuB5K,EAAWlG,KAAI,SAAUld,GAAO,OAAO4tB,EAAU5tB,MAE1DmjB,EAAS4K,EAAmBrjB,QAAQojB,IACvC3K,EAAS4K,EAAmBrjB,QAAQojB,GAAuB,IAW1E,YAVwB,IAAbE,GAA4B7jB,EAAOqZ,SAC5CL,EAAS/iB,SAAQ,SAAUgnB,IACpB4G,GAAYF,GAAuB1G,IAAQ4G,EAAW5G,WAIvC,IAAb4G,IACTH,EAAYzK,EAAW1Y,QAAQsjB,IACf,IAAKH,EAhCVjrB,KAgC6BwlB,YAAc,GAhC3CxlB,KAkCCkqB,QAAQe,EAAW9F,EAAOgE,EAAcE,IAmGtDgC,WA/FF,SAAqBlG,EAAOgE,EAAcE,GAKxC,YAJe,IAAVlE,IAAmBA,EAAQnlB,KAAKuH,OAAO4d,YACtB,IAAjBgE,IAA0BA,GAAe,GAEjCnpB,KACCkqB,QADDlqB,KACgBwlB,YAAaL,EAAOgE,EAAcE,IA2F/DiC,eAvFF,SAAyBnG,EAAOgE,EAAcE,EAAUkC,QACvC,IAAVpG,IAAmBA,EAAQnlB,KAAKuH,OAAO4d,YACtB,IAAjBgE,IAA0BA,GAAe,QAC3B,IAAdoC,IAAuBA,EAAY,IAExC,IACIzT,EADS9X,KACMwlB,YACf0C,EAAO1kB,KAAKsf,IAFH9iB,KAEcuH,OAAOsc,mBAAoB/L,GAClD8M,EAAYsD,EAAO1kB,KAAKse,OAAOhK,EAAQoQ,GAH9BloB,KAG6CuH,OAAOmb,gBAE7DmD,EALS7lB,KAKU+f,aALV/f,KAKgC6lB,WALhC7lB,KAKoD6lB,UAEjE,GAAIA,GAPS7lB,KAOWugB,SAASqE,GAAY,CAG3C,IAAI4G,EAVOxrB,KAUcugB,SAASqE,GAE7BiB,EAAY2F,GAZNxrB,KAWWugB,SAASqE,EAAY,GACC4G,GAAeD,IACzDzT,GAbS9X,KAaOuH,OAAOmb,oBAEpB,CAGL,IAAI0I,EAlBOprB,KAkBWugB,SAASqE,EAAY,GAEtCiB,EAAYuF,IApBNprB,KAmBgBugB,SAASqE,GACWwG,GAAYG,IACzDzT,GArBS9X,KAqBOuH,OAAOmb,gBAM3B,OAHA5K,EAAQtU,KAAK0e,IAAIpK,EAAO,GACxBA,EAAQtU,KAAKsf,IAAIhL,EAzBJ9X,KAyBkBwgB,WAAW7iB,OAAS,GAzBtCqC,KA2BCkqB,QAAQpS,EAAOqN,EAAOgE,EAAcE,IAwDlDZ,oBArDF,WACE,IAMIxB,EANAqC,EAAStpB,KACTuH,EAAS+hB,EAAO/hB,OAChBqY,EAAa0J,EAAO1J,WAEpBoC,EAAyC,SAAzBza,EAAOya,cAA2BsH,EAAOmC,uBAAyBlkB,EAAOya,cACzF0J,EAAepC,EAAOd,aAE1B,GAAIjhB,EAAO4f,KAAM,CACf,GAAImC,EAAOC,UAAa,OACxBtC,EAAYxH,SAAS/c,EAAE4mB,EAAOf,cAAc7U,KAAK,2BAA4B,IACzEnM,EAAOoc,eAEN+H,EAAepC,EAAOoB,aAAgB1I,EAAgB,GACnD0J,EAAgBpC,EAAOjJ,OAAO1iB,OAAS2rB,EAAOoB,aAAiB1I,EAAgB,GAEnFsH,EAAOuB,UACPa,EAAe9L,EACZtP,SAAU,IAAO/I,EAAiB,WAAI,6BAAgC0f,EAAY,WAAe1f,EAA0B,oBAAI,KAC/H0Q,GAAG,GACHH,QAEH6B,EAAMpP,UAAS,WACb+e,EAAOY,QAAQwB,OAGjBpC,EAAOY,QAAQwB,GAERA,EAAepC,EAAOjJ,OAAO1iB,OAASqkB,GAC/CsH,EAAOuB,UACPa,EAAe9L,EACZtP,SAAU,IAAO/I,EAAiB,WAAI,6BAAgC0f,EAAY,WAAe1f,EAA0B,oBAAI,KAC/H0Q,GAAG,GACHH,QAEH6B,EAAMpP,UAAS,WACb+e,EAAOY,QAAQwB,OAGjBpC,EAAOY,QAAQwB,QAGjBpC,EAAOY,QAAQwB,KA6GfvE,EAAO,CACTwE,WAhGF,WACE,IAAIrC,EAAStpB,KACTuH,EAAS+hB,EAAO/hB,OAChBqY,EAAa0J,EAAO1J,WAExBA,EAAWtP,SAAU,IAAO/I,EAAiB,WAAI,IAAOA,EAA0B,qBAAI/E,SAEtF,IAAI6d,EAAST,EAAWtP,SAAU,IAAO/I,EAAiB,YAE1D,GAAIA,EAAOqkB,uBAAwB,CACjC,IAAIC,EAAiBtkB,EAAOmb,eAAkBrC,EAAO1iB,OAAS4J,EAAOmb,eACrE,GAAImJ,IAAmBtkB,EAAOmb,eAAgB,CAC5C,IAAK,IAAIxnB,EAAI,EAAGA,EAAI2wB,EAAgB3wB,GAAK,EAAG,CAC1C,IAAI4wB,EAAYppB,EAAEiN,EAAIU,cAAc,QAAQ0C,SAAWxL,EAAiB,WAAI,IAAOA,EAAsB,iBACzGqY,EAAWzH,OAAO2T,GAEpBzL,EAAST,EAAWtP,SAAU,IAAO/I,EAAiB,aAI7B,SAAzBA,EAAOya,eAA6Bza,EAAOmjB,eAAgBnjB,EAAOmjB,aAAerK,EAAO1iB,QAE5F2rB,EAAOoB,aAAelnB,KAAKue,KAAKxd,WAAWgD,EAAOmjB,cAAgBnjB,EAAOya,cAAe,KACxFsH,EAAOoB,cAAgBnjB,EAAOwkB,qBAC1BzC,EAAOoB,aAAerK,EAAO1iB,SAC/B2rB,EAAOoB,aAAerK,EAAO1iB,QAG/B,IAAIquB,EAAgB,GAChBC,EAAe,GACnB5L,EAAO9I,MAAK,SAAUO,EAAO9D,GAC3B,IAAIsO,EAAQ5f,EAAEsR,GACV8D,EAAQwR,EAAOoB,cAAgBuB,EAAarkB,KAAKoM,GACjD8D,EAAQuI,EAAO1iB,QAAUma,GAASuI,EAAO1iB,OAAS2rB,EAAOoB,cAAgBsB,EAAcpkB,KAAKoM,GAChGsO,EAAM5O,KAAK,0BAA2BoE,MAExC,IAAK,IAAIkM,EAAM,EAAGA,EAAMiI,EAAatuB,OAAQqmB,GAAO,EAClDpE,EAAWzH,OAAOzV,EAAEupB,EAAajI,GAAKkI,WAAU,IAAOnZ,SAASxL,EAAO6f,sBAEzE,IAAK,IAAIlD,EAAM8H,EAAcruB,OAAS,EAAGumB,GAAO,EAAGA,GAAO,EACxDtE,EAAWpH,QAAQ9V,EAAEspB,EAAc9H,GAAKgI,WAAU,IAAOnZ,SAASxL,EAAO6f,uBAyD3EyD,QArDF,WACe7qB,KAENmL,KAAK,iBAEZ,IAOIsf,EAPAjF,EAJSxlB,KAIYwlB,YACrBnF,EALSrgB,KAKOqgB,OAChBqK,EANS1qB,KAMa0qB,aACtBL,EAPSrqB,KAOeqqB,eACxBD,EARSpqB,KAQeoqB,eACxB7J,EATSvgB,KASSugB,SAClBT,EAVS9f,KAUI+f,aAVJ/f,KAYNqqB,gBAAiB,EAZXrqB,KAaNoqB,gBAAiB,EAExB,IACI+B,GADiB5L,EAASiF,GAfjBxlB,KAgBqB+Z,eAG9ByL,EAAckF,GAChBD,EAAYpK,EAAO1iB,OAAyB,EAAf+sB,EAAqBlF,EAClDiF,GAAYC,EArBD1qB,KAsBekqB,QAAQO,EAAU,GAAG,GAAO,IACzB,IAAT0B,GAvBTnsB,KAwBF4oB,cAAc9I,GAxBZ9f,KAwB0B6lB,UAxB1B7lB,KAwB6C6lB,WAAasG,IAE5D3G,GAAenF,EAAO1iB,OAAS+sB,IAExCD,GAAYpK,EAAO1iB,OAAS6nB,EAAckF,EAC1CD,GAAYC,EA7BD1qB,KA8BiBkqB,QAAQO,EAAU,GAAG,GAAO,IACzB,IAAT0B,GA/BXnsB,KAgCF4oB,cAAc9I,GAhCZ9f,KAgC0B6lB,UAhC1B7lB,KAgC6C6lB,WAAasG,IAhC1DnsB,KAmCNqqB,eAAiBA,EAnCXrqB,KAoCNoqB,eAAiBA,EApCXpqB,KAsCNmL,KAAK,YAeZihB,YAZF,WACE,IACIxM,EADS5f,KACW4f,WACpBrY,EAFSvH,KAEOuH,OAChB8Y,EAHSrgB,KAGOqgB,OACpBT,EAAWtP,SAAU,IAAO/I,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,KAAQA,EAAiB,WAAI,IAAOA,EAAsB,iBAAI/E,SACpJ6d,EAAOvM,WAAW,6BAyBhBuY,EAAa,CACfC,cAjBF,SAAwBC,GAEtB,KAAI7Q,EAAQC,QADC3b,KACgBuH,OAAOilB,eADvBxsB,KACgDuH,OAAOsd,eADvD7kB,KAC+EysB,UAD/EzsB,KACmGuH,OAAOqZ,SAAvH,CACA,IAAI5M,EAFShU,KAEGgU,GAChBA,EAAGxD,MAAMkc,OAAS,OAClB1Y,EAAGxD,MAAMkc,OAASH,EAAS,mBAAqB,eAChDvY,EAAGxD,MAAMkc,OAASH,EAAS,eAAiB,YAC5CvY,EAAGxD,MAAMkc,OAASH,EAAS,WAAa,SAWxCI,gBARF,WAEMjR,EAAQC,OADC3b,KACgBuH,OAAOsd,eADvB7kB,KAC+CysB,UAD/CzsB,KACmEuH,OAAOqZ,UAD1E5gB,KAENgU,GAAGxD,MAAMkc,OAAS,MAqKvBE,EAAe,CACjBC,YA9JF,SAAsBxM,GACpB,IACIT,EADS5f,KACW4f,WACpBrY,EAFSvH,KAEOuH,OAIpB,GAHIA,EAAO4f,MAHEnnB,KAIJosB,cAEa,iBAAX/L,GAAuB,WAAYA,EAC5C,IAAK,IAAInlB,EAAI,EAAGA,EAAImlB,EAAO1iB,OAAQzC,GAAK,EAClCmlB,EAAOnlB,IAAM0kB,EAAWzH,OAAOkI,EAAOnlB,SAG5C0kB,EAAWzH,OAAOkI,GAEhB9Y,EAAO4f,MAbEnnB,KAcJ2rB,aAEHpkB,EAAOyU,UAAYN,EAAQM,UAhBpBhc,KAiBJgf,UA6IT8N,aAzIF,SAAuBzM,GACrB,IACI9Y,EADSvH,KACOuH,OAChBqY,EAFS5f,KAEW4f,WACpB4F,EAHSxlB,KAGYwlB,YAErBje,EAAO4f,MALEnnB,KAMJosB,cAET,IAAIvE,EAAiBrC,EAAc,EACnC,GAAsB,iBAAXnF,GAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAInlB,EAAI,EAAGA,EAAImlB,EAAO1iB,OAAQzC,GAAK,EAClCmlB,EAAOnlB,IAAM0kB,EAAWpH,QAAQ6H,EAAOnlB,IAE7C2sB,EAAiBrC,EAAcnF,EAAO1iB,YAEtCiiB,EAAWpH,QAAQ6H,GAEjB9Y,EAAO4f,MAjBEnnB,KAkBJ2rB,aAEHpkB,EAAOyU,UAAYN,EAAQM,UApBpBhc,KAqBJgf,SArBIhf,KAuBNkqB,QAAQrC,EAAgB,GAAG,IAkHlCkF,SA/GF,SAAmBjV,EAAOuI,GACxB,IACIT,EADS5f,KACW4f,WACpBrY,EAFSvH,KAEOuH,OAEhBylB,EAJShtB,KAGYwlB,YAErBje,EAAO4f,OACT6F,GANWhtB,KAMiB0qB,aANjB1qB,KAOJosB,cAPIpsB,KAQJqgB,OAAST,EAAWtP,SAAU,IAAO/I,EAAiB,aAE/D,IAAI0lB,EAVSjtB,KAUWqgB,OAAO1iB,OAC/B,GAAIma,GAAS,EAXA9X,KAYJ8sB,aAAazM,QAGtB,GAAIvI,GAASmV,EAfAjtB,KAgBJ6sB,YAAYxM,OADrB,CAOA,IAHA,IAAIwH,EAAiBmF,EAAoBlV,EAAQkV,EAAoB,EAAIA,EAErEE,EAAe,GACVhyB,EAAI+xB,EAAa,EAAG/xB,GAAK4c,EAAO5c,GAAK,EAAG,CAC/C,IAAIiyB,EAvBOntB,KAuBeqgB,OAAOpI,GAAG/c,GACpCiyB,EAAa3qB,SACb0qB,EAAalY,QAAQmY,GAGvB,GAAsB,iBAAX9M,GAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAI2D,EAAM,EAAGA,EAAM3D,EAAO1iB,OAAQqmB,GAAO,EACxC3D,EAAO2D,IAAQpE,EAAWzH,OAAOkI,EAAO2D,IAE9C6D,EAAiBmF,EAAoBlV,EAAQkV,EAAoB3M,EAAO1iB,OAASqvB,OAEjFpN,EAAWzH,OAAOkI,GAGpB,IAAK,IAAI6D,EAAM,EAAGA,EAAMgJ,EAAavvB,OAAQumB,GAAO,EAClDtE,EAAWzH,OAAO+U,EAAahJ,IAG7B3c,EAAO4f,MAzCEnnB,KA0CJ2rB,aAEHpkB,EAAOyU,UAAYN,EAAQM,UA5CpBhc,KA6CJgf,SAELzX,EAAO4f,KA/CEnnB,KAgDJkqB,QAAQrC,EAhDJ7nB,KAgD4B0qB,aAAc,GAAG,GAhD7C1qB,KAkDJkqB,QAAQrC,EAAgB,GAAG,KA6DpCuF,YAzDF,SAAsBC,GACpB,IACI9lB,EADSvH,KACOuH,OAChBqY,EAFS5f,KAEW4f,WAGpBoN,EALShtB,KAGYwlB,YAGrBje,EAAO4f,OACT6F,GAPWhtB,KAOiB0qB,aAPjB1qB,KAQJosB,cARIpsB,KASJqgB,OAAST,EAAWtP,SAAU,IAAO/I,EAAiB,aAE/D,IACI+lB,EADAzF,EAAiBmF,EAGrB,GAA6B,iBAAlBK,GAA8B,WAAYA,EAAe,CAClE,IAAK,IAAInyB,EAAI,EAAGA,EAAImyB,EAAc1vB,OAAQzC,GAAK,EAC7CoyB,EAAgBD,EAAcnyB,GAhBrB8E,KAiBEqgB,OAAOiN,IAjBTttB,KAiBkCqgB,OAAOpI,GAAGqV,GAAe9qB,SAChE8qB,EAAgBzF,IAAkBA,GAAkB,GAE1DA,EAAiBrkB,KAAK0e,IAAI2F,EAAgB,QAE1CyF,EAAgBD,EAtBLrtB,KAuBAqgB,OAAOiN,IAvBPttB,KAuBgCqgB,OAAOpI,GAAGqV,GAAe9qB,SAChE8qB,EAAgBzF,IAAkBA,GAAkB,GACxDA,EAAiBrkB,KAAK0e,IAAI2F,EAAgB,GAGxCtgB,EAAO4f,MA5BEnnB,KA6BJ2rB,aAGHpkB,EAAOyU,UAAYN,EAAQM,UAhCpBhc,KAiCJgf,SAELzX,EAAO4f,KAnCEnnB,KAoCJkqB,QAAQrC,EApCJ7nB,KAoC4B0qB,aAAc,GAAG,GApC7C1qB,KAsCJkqB,QAAQrC,EAAgB,GAAG,IAmBpC0F,gBAfF,WAIE,IAHA,IAEIF,EAAgB,GACXnyB,EAAI,EAAGA,EAHH8E,KAGcqgB,OAAO1iB,OAAQzC,GAAK,EAC7CmyB,EAAczlB,KAAK1M,GAJR8E,KAMNotB,YAAYC,KAWjBG,GACEvP,EAAW3M,EAAIvS,UAAUkf,SACzBC,EAAK5M,EAAIvS,UAAUwS,UAEnB4M,EAAS,CACXsP,KAAK,EACLnP,SAAS,EACToP,eAAe,EACfC,SAAS,EACTlP,QAAQ,EACRD,MAAM,EACND,MAAM,EACNI,MAAM,EACND,IAAI,EACJE,SAAS,EACTG,OAAO,EACPF,SAAS,EACT+O,WAAYtc,EAAIsc,UAAWtc,EAAIuc,UAC/BA,YAAavc,EAAIsc,UAAWtc,EAAIuc,UAChC/O,UAAU,GAGRV,EAAc9M,EAAIW,OAAOiN,MACzBb,EAAe/M,EAAIW,OAAOkN,OAE1Bb,EAAUJ,EAAG5Y,MAAM,+BACnBiZ,EAAOL,EAAG5Y,MAAM,wBAChBkZ,EAAON,EAAG5Y,MAAM,2BAChBmZ,GAAUF,GAAQL,EAAG5Y,MAAM,8BAC3BoZ,EAAKR,EAAGpW,QAAQ,UAAY,GAAKoW,EAAGpW,QAAQ,aAAe,EAC3D6W,EAAOT,EAAGpW,QAAQ,UAAY,EAC9B8W,EAAUV,EAAGpW,QAAQ,WAAa,GAAKoW,EAAGpW,QAAQ,aAAe,EACjE+W,EAAuB,UAAbZ,EACVa,EAAWZ,EAAG3Y,cAAcuC,QAAQ,aAAe,EACnDiX,EAAqB,aAAbd,GAGPM,GACAQ,GACArD,EAAQC,QAEQ,OAAhByC,GAAyC,OAAjBC,GACL,MAAhBD,GAAwC,OAAjBC,GACP,MAAhBD,GAAwC,OAAjBC,GACP,MAAhBD,GAAwC,OAAjBC,KAG7BE,EAAOL,EAAG5Y,MAAM,uBAChByZ,GAAQ,GAGVZ,EAAOO,GAAKA,EACZP,EAAOQ,KAAOA,EACdR,EAAOS,QAAUA,EAGbN,IAAYO,IACdV,EAAO2P,GAAK,UACZ3P,EAAO4P,UAAYzP,EAAQ,GAC3BH,EAAOG,SAAU,EACjBH,EAAOuP,cAAgBxP,EAAG3Y,cAAcuC,QAAQ,WAAa,IAE3DyW,GAAQE,GAAUD,KACpBL,EAAO2P,GAAK,MACZ3P,EAAOsP,KAAM,GAGXhP,IAAWD,IACbL,EAAO4P,UAAYtP,EAAO,GAAG3e,QAAQ,KAAM,KAC3Cqe,EAAOM,QAAS,GAEdF,IACFJ,EAAO4P,UAAYxP,EAAK,GAAGze,QAAQ,KAAM,KACzCqe,EAAOI,MAAO,GAEZC,IACFL,EAAO4P,UAAYvP,EAAK,GAAKA,EAAK,GAAG1e,QAAQ,KAAM,KAAO,KAC1Dqe,EAAOK,MAAO,GAGZL,EAAOsP,KAAOtP,EAAO4P,WAAa7P,EAAGpW,QAAQ,aAAe,GACvB,OAAnCqW,EAAO4P,UAAUnsB,MAAM,KAAK,KAC9Buc,EAAO4P,UAAY7P,EAAG3Y,cAAc3D,MAAM,YAAY,GAAGA,MAAM,KAAK,IAKxEuc,EAAO6P,YAAcvP,GAAUF,GAAQC,KAAUN,EAAG5Y,MAAM,gCAAiCgM,EAAIvS,UAAUkvB,aACnG3c,EAAIY,YAAcZ,EAAIY,WAAW,8BAA8ByF,QACrEwG,EAAO+P,QAAU/P,EAAO6P,QACxB7P,EAAO8P,WAAa9P,EAAO6P,QAG3B7P,EAAOwP,UAAYxP,EAAOsP,KAAOtP,EAAOG,UAAYQ,EAChDX,EAAOwP,UACTxP,EAAOW,SAAWA,EAClBX,EAAOY,MAAQA,EACfZ,EAAOU,QAAUA,EACbV,EAAOY,QACTZ,EAAO2P,GAAK,SAEV3P,EAAOU,UACTV,EAAO2P,GAAK,YAKhB3P,EAAOgQ,WAAa7c,EAAI8c,kBAAoB,EAGrCjQ,GAGT,SAASkQ,EAAc9nB,GACrB,IACIiC,EADSxI,KACKsuB,gBACd/mB,EAFSvH,KAEOuH,OAChBgnB,EAHSvuB,KAGQuuB,QAErB,IALavuB,KAKFupB,YAAahiB,EAAOiiB,+BAA/B,CAGA,IAAItpB,EAAIqG,EACJrG,EAAEsuB,gBAAiBtuB,EAAIA,EAAEsuB,eAC7B,IAAIC,EAAY/rB,EAAExC,EAAE0G,QAEpB,IAAiC,YAA7BW,EAAOmnB,mBACJD,EAAUtV,QAbJnZ,KAamB8oB,WAAWnrB,UAE3C6K,EAAKmmB,aAA0B,eAAXzuB,EAAE0uB,MACjBpmB,EAAKmmB,gBAAgB,UAAWzuB,IAAiB,IAAZA,EAAE2uB,WACvCrmB,EAAKmmB,cAAgB,WAAYzuB,GAAKA,EAAE4uB,OAAS,GAClDtmB,EAAKumB,WAAavmB,EAAKwmB,UAC3B,GAAIznB,EAAO0nB,WAAaR,EAAUtV,QAAQ5R,EAAO2nB,kBAAoB3nB,EAAO2nB,kBAAqB,IAAO3nB,EAAqB,gBAAI,GAnBpHvH,KAoBJmvB,YAAa,OAGtB,IAAI5nB,EAAO6nB,cACJX,EAAUtV,QAAQ5R,EAAO6nB,cAAc,GAD9C,CAIAb,EAAQc,SAAsB,eAAXnvB,EAAE0uB,KAAwB1uB,EAAEovB,cAAc,GAAGC,MAAQrvB,EAAEqvB,MAC1EhB,EAAQiB,SAAsB,eAAXtvB,EAAE0uB,KAAwB1uB,EAAEovB,cAAc,GAAGG,MAAQvvB,EAAEuvB,MAC1E,IAAIC,EAASnB,EAAQc,SACjBM,EAASpB,EAAQiB,SAIjBI,EAAqBroB,EAAOqoB,oBAAsBroB,EAAOsoB,sBACzDC,EAAqBvoB,EAAOuoB,oBAAsBvoB,EAAOwoB,sBAC7D,IACEH,KACKF,GAAUI,GACXJ,GAAUpe,EAAIW,OAAOiN,MAAQ4Q,GAHnC,CAuBA,GAfAnW,EAAMna,OAAOgJ,EAAM,CACjBumB,WAAW,EACXC,SAAS,EACTgB,qBAAqB,EACrBC,iBAAaliB,EACbmiB,iBAAaniB,IAGfwgB,EAAQmB,OAASA,EACjBnB,EAAQoB,OAASA,EACjBnnB,EAAK2nB,eAAiBxW,EAAMG,MAtDf9Z,KAuDNmvB,YAAa,EAvDPnvB,KAwDNif,aAxDMjf,KAyDNowB,oBAAiBriB,EACpBxG,EAAOgkB,UAAY,IAAK/iB,EAAK6nB,oBAAqB,GACvC,eAAXnwB,EAAE0uB,KAAuB,CAC3B,IAAI0B,GAAiB,EACjB7B,EAAU5nB,GAAG2B,EAAK+nB,gBAAiBD,GAAiB,GAEtD3gB,EAAII,eACDrN,EAAEiN,EAAII,eAAelJ,GAAG2B,EAAK+nB,eAC7B5gB,EAAII,gBAAkB0e,EAAU,IAEnC9e,EAAII,cAAcC,OAGpB,IAAIwgB,EAAuBF,GAtEhBtwB,KAsEyCywB,gBAAkBlpB,EAAOmpB,0BACzEnpB,EAAOopB,+BAAiCH,IAC1CtwB,EAAEowB,iBAxEOtwB,KA2ENmL,KAAK,aAAcjL,MAG5B,SAAS0wB,EAAarqB,GACpB,IACIiC,EADSxI,KACKsuB,gBACd/mB,EAFSvH,KAEOuH,OAChBgnB,EAHSvuB,KAGQuuB,QACjBzO,EAJS9f,KAII+f,aACb7f,EAAIqG,EAER,GADIrG,EAAEsuB,gBAAiBtuB,EAAIA,EAAEsuB,eACxBhmB,EAAKumB,WAMV,IAAIvmB,EAAKmmB,cAA2B,cAAXzuB,EAAE0uB,KAA3B,CACA,IAAIiC,EAAyB,cAAX3wB,EAAE0uB,MAAwB1uB,EAAEovB,gBAAkBpvB,EAAEovB,cAAc,IAAMpvB,EAAE4wB,eAAe,IACnGvB,EAAmB,cAAXrvB,EAAE0uB,KAAuBiC,EAAYtB,MAAQrvB,EAAEqvB,MACvDE,EAAmB,cAAXvvB,EAAE0uB,KAAuBiC,EAAYpB,MAAQvvB,EAAEuvB,MAC3D,GAAIvvB,EAAE6wB,wBAGJ,OAFAxC,EAAQmB,OAASH,OACjBhB,EAAQoB,OAASF,GAGnB,IAtBazvB,KAsBDywB,eAYV,OAlCWzwB,KAwBJmvB,YAAa,OAChB3mB,EAAKumB,YACPpV,EAAMna,OAAO+uB,EAAS,CACpBmB,OAAQH,EACRI,OAAQF,EACRJ,SAAUE,EACVC,SAAUC,IAEZjnB,EAAK2nB,eAAiBxW,EAAMG,QAIhC,GAAItR,EAAKmmB,cAAgBpnB,EAAOypB,sBAAwBzpB,EAAO4f,KAC7D,GArCWnnB,KAqCAwf,cAET,GACGiQ,EAAQlB,EAAQoB,QAxCV3vB,KAwC2B6lB,WAxC3B7lB,KAwC+C0mB,gBAClD+I,EAAQlB,EAAQoB,QAzCb3vB,KAyC8B6lB,WAzC9B7lB,KAyCkDkmB,eAIzD,OAFA1d,EAAKumB,WAAY,OACjBvmB,EAAKwmB,SAAU,QAGZ,GACJO,EAAQhB,EAAQmB,QAhDR1vB,KAgDyB6lB,WAhDzB7lB,KAgD6C0mB,gBAClD6I,EAAQhB,EAAQmB,QAjDX1vB,KAiD4B6lB,WAjD5B7lB,KAiDgDkmB,eAEzD,OAGJ,GAAI1d,EAAKmmB,cAAgBhf,EAAII,eACvB7P,EAAE0G,SAAW+I,EAAII,eAAiBrN,EAAExC,EAAE0G,QAAQC,GAAG2B,EAAK+nB,cAGxD,OAFA/nB,EAAKwmB,SAAU,OAxDNhvB,KAyDFmvB,YAAa,GAOxB,GAHI3mB,EAAKwnB,qBA7DIhwB,KA8DJmL,KAAK,YAAajL,KAEvBA,EAAEovB,eAAiBpvB,EAAEovB,cAAc3xB,OAAS,GAAhD,CAEA4wB,EAAQc,SAAWE,EACnBhB,EAAQiB,SAAWC,EAEnB,IAKMwB,EALFC,EAAQ3C,EAAQc,SAAWd,EAAQmB,OACnCyB,EAAQ5C,EAAQiB,SAAWjB,EAAQoB,OACvC,KAvEa3vB,KAuEFuH,OAAOgkB,WAAa/nB,KAAK4tB,KAAM5tB,KAAK6tB,IAAKH,EAAO,GAAQ1tB,KAAK6tB,IAAKF,EAAO,IAvEvEnxB,KAuEsFuH,OAAOgkB,WAsB1G,QApBgC,IAArB/iB,EAAKynB,cAzEHjwB,KA2ECuf,gBAAkBgP,EAAQiB,WAAajB,EAAQoB,QA3EhD3vB,KA2EmEwf,cAAgB+O,EAAQc,WAAad,EAAQmB,OACzHlnB,EAAKynB,aAAc,EAGdiB,EAAQA,EAAUC,EAAQA,GAAU,KACvCF,EAA6D,IAA/CztB,KAAK8tB,MAAM9tB,KAAKogB,IAAIuN,GAAQ3tB,KAAKogB,IAAIsN,IAAiB1tB,KAAK+tB,GACzE/oB,EAAKynB,YAjFEjwB,KAiFmBuf,eAAiB0R,EAAa1pB,EAAO0pB,WAAc,GAAKA,EAAa1pB,EAAO0pB,aAIxGzoB,EAAKynB,aArFIjwB,KAsFJmL,KAAK,oBAAqBjL,QAEH,IAArBsI,EAAK0nB,cACV3B,EAAQc,WAAad,EAAQmB,QAAUnB,EAAQiB,WAAajB,EAAQoB,SACtEnnB,EAAK0nB,aAAc,IAGnB1nB,EAAKynB,YACPznB,EAAKumB,WAAY,OAGnB,GAAKvmB,EAAK0nB,YAAV,CAjGalwB,KAoGNmvB,YAAa,GACf5nB,EAAOqZ,SAAW1gB,EAAE6V,YACvB7V,EAAEowB,iBAEA/oB,EAAOiqB,2BAA6BjqB,EAAOkqB,QAC7CvxB,EAAEwxB,kBAGClpB,EAAKwmB,UACJznB,EAAO4f,MA7GAnnB,KA8GF6qB,UAETriB,EAAKmpB,eAhHM3xB,KAgHkB+Z,eAhHlB/Z,KAiHJslB,cAAc,GAjHVtlB,KAkHAupB,WAlHAvpB,KAmHF4f,WAAWjb,QAAQ,qCAE5B6D,EAAKopB,qBAAsB,GAEvBrqB,EAAO8kB,aAAyC,IAvHzCrsB,KAuHsBoqB,iBAAqD,IAvH3EpqB,KAuHwDqqB,gBAvHxDrqB,KAwHFssB,eAAc,GAxHZtsB,KA0HJmL,KAAK,kBAAmBjL,IA1HpBF,KA4HNmL,KAAK,aAAcjL,GAC1BsI,EAAKwmB,SAAU,EAEf,IAAI7C,EA/HSnsB,KA+HKuf,eAAiB2R,EAAQC,EAC3C5C,EAAQpC,KAAOA,EAEfA,GAAQ5kB,EAAOsqB,WACX/R,IAAOqM,GAAQA,GAnINnsB,KAqINowB,eAAiBjE,EAAO,EAAI,OAAS,OAC5C3jB,EAAKmgB,iBAAmBwD,EAAO3jB,EAAKmpB,eAEpC,IAAIG,GAAsB,EACtBC,EAAkBxqB,EAAOwqB,gBA0B7B,GAzBIxqB,EAAOypB,sBACTe,EAAkB,GAEf5F,EAAO,GAAK3jB,EAAKmgB,iBA7IT3oB,KA6ImCkmB,gBAC9C4L,GAAsB,EAClBvqB,EAAOyqB,aAAcxpB,EAAKmgB,iBA/InB3oB,KA+I8CkmB,eAAiB,EAAM1iB,KAAK6tB,KA/I1ErxB,KA+IwFkmB,eAAiB1d,EAAKmpB,eAAiBxF,EAAO4F,KACxI5F,EAAO,GAAK3jB,EAAKmgB,iBAhJf3oB,KAgJyC0mB,iBACpDoL,GAAsB,EAClBvqB,EAAOyqB,aAAcxpB,EAAKmgB,iBAlJnB3oB,KAkJ8C0mB,eAAiB,EAAMljB,KAAK6tB,IAlJ1ErxB,KAkJuF0mB,eAAiBle,EAAKmpB,eAAiBxF,EAAO4F,KAG9ID,IACF5xB,EAAE6wB,yBAA0B,IAtJjB/wB,KA0JDoqB,gBAA4C,SA1J3CpqB,KA0JwBowB,gBAA6B5nB,EAAKmgB,iBAAmBngB,EAAKmpB,iBAC7FnpB,EAAKmgB,iBAAmBngB,EAAKmpB,iBA3JlB3xB,KA6JDqqB,gBAA4C,SA7J3CrqB,KA6JwBowB,gBAA6B5nB,EAAKmgB,iBAAmBngB,EAAKmpB,iBAC7FnpB,EAAKmgB,iBAAmBngB,EAAKmpB,gBAK3BpqB,EAAOgkB,UAAY,EAAG,CACxB,KAAI/nB,KAAKogB,IAAIuI,GAAQ5kB,EAAOgkB,WAAa/iB,EAAK6nB,oBAW5C,YADA7nB,EAAKmgB,iBAAmBngB,EAAKmpB,gBAT7B,IAAKnpB,EAAK6nB,mBAMR,OALA7nB,EAAK6nB,oBAAqB,EAC1B9B,EAAQmB,OAASnB,EAAQc,SACzBd,EAAQoB,OAASpB,EAAQiB,SACzBhnB,EAAKmgB,iBAAmBngB,EAAKmpB,oBAC7BpD,EAAQpC,KA1KDnsB,KA0Keuf,eAAiBgP,EAAQc,SAAWd,EAAQmB,OAASnB,EAAQiB,SAAWjB,EAAQoB,QASvGpoB,EAAO0qB,eAAgB1qB,EAAOqZ,WAG/BrZ,EAAO2qB,UAAY3qB,EAAOwd,qBAAuBxd,EAAOyd,yBAtL/ChlB,KAuLJ4nB,oBAvLI5nB,KAwLJ+mB,uBAELxf,EAAO2qB,WAEsB,IAA3B1pB,EAAK2pB,WAAWx0B,QAClB6K,EAAK2pB,WAAWvqB,KAAK,CACnBwqB,SAAU7D,EA9LHvuB,KA8LkBuf,eAAiB,SAAW,UACrD8S,KAAM7pB,EAAK2nB,iBAGf3nB,EAAK2pB,WAAWvqB,KAAK,CACnBwqB,SAAU7D,EAnMDvuB,KAmMgBuf,eAAiB,WAAa,YACvD8S,KAAM1Y,EAAMG,SApMH9Z,KAwMNumB,eAAe/d,EAAKmgB,kBAxMd3oB,KA0MN4oB,aAAapgB,EAAKmgB,2BAlMnBngB,EAAK0nB,aAAe1nB,EAAKynB,aARlBjwB,KASFmL,KAAK,oBAAqBjL,GAoMvC,SAASoyB,EAAY/rB,GACnB,IAAI+iB,EAAStpB,KACTwI,EAAO8gB,EAAOgF,gBAEd/mB,EAAS+hB,EAAO/hB,OAChBgnB,EAAUjF,EAAOiF,QACjBzO,EAAMwJ,EAAOvJ,aACbH,EAAa0J,EAAO1J,WACpBY,EAAa8I,EAAO9I,WACpBD,EAAW+I,EAAO/I,SAClBrgB,EAAIqG,EAMR,GALIrG,EAAEsuB,gBAAiBtuB,EAAIA,EAAEsuB,eACzBhmB,EAAKwnB,qBACP1G,EAAOne,KAAK,WAAYjL,GAE1BsI,EAAKwnB,qBAAsB,GACtBxnB,EAAKumB,UAMR,OALIvmB,EAAKwmB,SAAWznB,EAAO8kB,YACzB/C,EAAOgD,eAAc,GAEvB9jB,EAAKwmB,SAAU,OACfxmB,EAAK0nB,aAAc,GAIjB3oB,EAAO8kB,YAAc7jB,EAAKwmB,SAAWxmB,EAAKumB,aAAwC,IAA1BzF,EAAOc,iBAAqD,IAA1Bd,EAAOe,iBACnGf,EAAOgD,eAAc,GAIvB,IA2BIiG,EA3BAC,EAAe7Y,EAAMG,MACrB2Y,EAAWD,EAAehqB,EAAK2nB,eAgBnC,GAbI7G,EAAO6F,aACT7F,EAAOjB,mBAAmBnoB,GAC1BopB,EAAOne,KAAK,YAAajL,GACrBuyB,EAAW,KAAQD,EAAehqB,EAAKkqB,cAAiB,KAC1DpJ,EAAOne,KAAK,wBAAyBjL,IAIzCsI,EAAKkqB,cAAgB/Y,EAAMG,MAC3BH,EAAMpP,UAAS,WACR+e,EAAOQ,YAAaR,EAAO6F,YAAa,OAG1C3mB,EAAKumB,YAAcvmB,EAAKwmB,UAAY1F,EAAO8G,gBAAmC,IAAjB7B,EAAQpC,MAAc3jB,EAAKmgB,mBAAqBngB,EAAKmpB,eAIrH,OAHAnpB,EAAKumB,WAAY,EACjBvmB,EAAKwmB,SAAU,OACfxmB,EAAK0nB,aAAc,GAcrB,GAXA1nB,EAAKumB,WAAY,EACjBvmB,EAAKwmB,SAAU,EACfxmB,EAAK0nB,aAAc,EAIjBqC,EADEhrB,EAAO0qB,aACInS,EAAMwJ,EAAOzD,WAAayD,EAAOzD,WAEhCrd,EAAKmgB,kBAGjBphB,EAAOqZ,QAIX,GAAIrZ,EAAO2qB,SAAX,CACE,GAAIK,GAAcjJ,EAAOpD,eAEvB,YADAoD,EAAOY,QAAQZ,EAAO9D,aAGxB,GAAI+M,GAAcjJ,EAAO5C,eAMvB,YALI4C,EAAOjJ,OAAO1iB,OAAS4iB,EAAS5iB,OAClC2rB,EAAOY,QAAQ3J,EAAS5iB,OAAS,GAEjC2rB,EAAOY,QAAQZ,EAAOjJ,OAAO1iB,OAAS,IAK1C,GAAI4J,EAAOorB,iBAAkB,CAC3B,GAAInqB,EAAK2pB,WAAWx0B,OAAS,EAAG,CAC9B,IAAIi1B,EAAgBpqB,EAAK2pB,WAAWU,MAChCC,EAAgBtqB,EAAK2pB,WAAWU,MAEhCE,EAAWH,EAAcR,SAAWU,EAAcV,SAClDC,EAAOO,EAAcP,KAAOS,EAAcT,KAC9C/I,EAAO0J,SAAWD,EAAWV,EAC7B/I,EAAO0J,UAAY,EACfxvB,KAAKogB,IAAI0F,EAAO0J,UAAYzrB,EAAO0rB,0BACrC3J,EAAO0J,SAAW,IAIhBX,EAAO,KAAQ1Y,EAAMG,MAAQ8Y,EAAcP,KAAQ,OACrD/I,EAAO0J,SAAW,QAGpB1J,EAAO0J,SAAW,EAEpB1J,EAAO0J,UAAYzrB,EAAO2rB,8BAE1B1qB,EAAK2pB,WAAWx0B,OAAS,EACzB,IAAIw1B,EAAmB,IAAO5rB,EAAO6rB,sBACjCC,EAAmB/J,EAAO0J,SAAWG,EAErCG,EAAchK,EAAOzD,UAAYwN,EACjCvT,IAAOwT,GAAeA,GAE1B,IACIC,EAEAC,EAHAC,GAAW,EAEXC,EAA2C,GAA5BlwB,KAAKogB,IAAI0F,EAAO0J,UAAiBzrB,EAAOosB,4BAE3D,GAAIL,EAAchK,EAAO5C,eACnBnf,EAAOqsB,wBACLN,EAAchK,EAAO5C,gBAAkBgN,IACzCJ,EAAchK,EAAO5C,eAAiBgN,GAExCH,EAAsBjK,EAAO5C,eAC7B+M,GAAW,EACXjrB,EAAKopB,qBAAsB,GAE3B0B,EAAchK,EAAO5C,eAEnBnf,EAAO4f,MAAQ5f,EAAOoc,iBAAkB6P,GAAe,QACtD,GAAIF,EAAchK,EAAOpD,eAC1B3e,EAAOqsB,wBACLN,EAAchK,EAAOpD,eAAiBwN,IACxCJ,EAAchK,EAAOpD,eAAiBwN,GAExCH,EAAsBjK,EAAOpD,eAC7BuN,GAAW,EACXjrB,EAAKopB,qBAAsB,GAE3B0B,EAAchK,EAAOpD,eAEnB3e,EAAO4f,MAAQ5f,EAAOoc,iBAAkB6P,GAAe,QACtD,GAAIjsB,EAAOssB,eAAgB,CAEhC,IADA,IAAIvM,EACKpU,EAAI,EAAGA,EAAIqN,EAAS5iB,OAAQuV,GAAK,EACxC,GAAIqN,EAASrN,IAAMogB,EAAa,CAC9BhM,EAAYpU,EACZ,MASJogB,IAJEA,EADE9vB,KAAKogB,IAAIrD,EAAS+G,GAAagM,GAAe9vB,KAAKogB,IAAIrD,EAAS+G,EAAY,GAAKgM,IAA0C,SAA1BhK,EAAO8G,eAC5F7P,EAAS+G,GAET/G,EAAS+G,EAAY,IAUvC,GANIkM,GACFlK,EAAOve,KAAK,iBAAiB,WAC3Bue,EAAOuB,aAIa,IAApBvB,EAAO0J,UAMT,GAJEG,EADErT,EACiBtc,KAAKogB,MAAM0P,EAAchK,EAAOzD,WAAayD,EAAO0J,UAEpDxvB,KAAKogB,KAAK0P,EAAchK,EAAOzD,WAAayD,EAAO0J,UAEpEzrB,EAAOssB,eAAgB,CAQzB,IAAIC,EAAetwB,KAAKogB,KAAK9D,GAAOwT,EAAcA,GAAehK,EAAOzD,WACpEkO,EAAmBzK,EAAO7I,gBAAgB6I,EAAO9D,aAEnD2N,EADEW,EAAeC,EACExsB,EAAO4d,MACjB2O,EAAe,EAAIC,EACM,IAAfxsB,EAAO4d,MAEQ,IAAf5d,EAAO4d,YAGzB,GAAI5d,EAAOssB,eAEhB,YADAvK,EAAOgC,iBAIL/jB,EAAOqsB,wBAA0BH,GACnCnK,EAAO/C,eAAegN,GACtBjK,EAAOhE,cAAc6N,GACrB7J,EAAOV,aAAa0K,GACpBhK,EAAOU,iBAAgB,EAAMV,EAAO8G,gBACpC9G,EAAOC,WAAY,EACnB3J,EAAW1J,eAAc,WAClBoT,IAAUA,EAAOQ,WAActhB,EAAKopB,sBACzCtI,EAAOne,KAAK,kBACZme,EAAOhE,cAAc/d,EAAO4d,OAC5B/hB,YAAW,WACTkmB,EAAOV,aAAa2K,GACpB3T,EAAW1J,eAAc,WAClBoT,IAAUA,EAAOQ,WACtBR,EAAOpT,qBAER,QAEIoT,EAAO0J,UAChB1J,EAAO/C,eAAe+M,GACtBhK,EAAOhE,cAAc6N,GACrB7J,EAAOV,aAAa0K,GACpBhK,EAAOU,iBAAgB,EAAMV,EAAO8G,gBAC/B9G,EAAOC,YACVD,EAAOC,WAAY,EACnB3J,EAAW1J,eAAc,WAClBoT,IAAUA,EAAOQ,WACtBR,EAAOpT,qBAIXoT,EAAO/C,eAAe+M,GAGxBhK,EAAO1B,oBACP0B,EAAOvC,2BACF,GAAIxf,EAAOssB,eAEhB,YADAvK,EAAOgC,mBAIJ/jB,EAAOorB,kBAAoBF,GAAYlrB,EAAOysB,gBACjD1K,EAAO/C,iBACP+C,EAAO1B,oBACP0B,EAAOvC,2BAtKX,CA8KA,IAFA,IAAIkN,EAAY,EACZC,EAAY5K,EAAO7I,gBAAgB,GAC9BvlB,EAAI,EAAGA,EAAIslB,EAAW7iB,OAAQzC,GAAMA,EAAIqM,EAAOsc,mBAAqB,EAAItc,EAAOmb,eAAiB,CACvG,IAAIyR,EAAej5B,EAAIqM,EAAOsc,mBAAqB,EAAI,EAAItc,EAAOmb,oBACvB,IAAhClC,EAAWtlB,EAAIi5B,GACpB5B,GAAc/R,EAAWtlB,IAAMq3B,EAAa/R,EAAWtlB,EAAIi5B,KAC7DF,EAAY/4B,EACZg5B,EAAY1T,EAAWtlB,EAAIi5B,GAAe3T,EAAWtlB,IAE9Cq3B,GAAc/R,EAAWtlB,KAClC+4B,EAAY/4B,EACZg5B,EAAY1T,EAAWA,EAAW7iB,OAAS,GAAK6iB,EAAWA,EAAW7iB,OAAS,IAKnF,IAAIy2B,GAAS7B,EAAa/R,EAAWyT,IAAcC,EAC/CtJ,EAAaqJ,EAAY1sB,EAAOsc,mBAAqB,EAAI,EAAItc,EAAOmb,eAExE,GAAI+P,EAAWlrB,EAAOysB,aAAc,CAElC,IAAKzsB,EAAO8sB,WAEV,YADA/K,EAAOY,QAAQZ,EAAO9D,aAGM,SAA1B8D,EAAO8G,iBACLgE,GAAS7sB,EAAO+sB,gBAAmBhL,EAAOY,QAAQ+J,EAAYrJ,GAC3DtB,EAAOY,QAAQ+J,IAEM,SAA1B3K,EAAO8G,iBACLgE,EAAS,EAAI7sB,EAAO+sB,gBAAoBhL,EAAOY,QAAQ+J,EAAYrJ,GAChEtB,EAAOY,QAAQ+J,QAEnB,CAEL,IAAK1sB,EAAOgtB,YAEV,YADAjL,EAAOY,QAAQZ,EAAO9D,cAGA8D,EAAOkL,YAAet0B,EAAE0G,SAAW0iB,EAAOkL,WAAWC,QAAUv0B,EAAE0G,SAAW0iB,EAAOkL,WAAWE,QAEtF,SAA1BpL,EAAO8G,gBACT9G,EAAOY,QAAQ+J,EAAYrJ,GAEC,SAA1BtB,EAAO8G,gBACT9G,EAAOY,QAAQ+J,IAER/zB,EAAE0G,SAAW0iB,EAAOkL,WAAWC,OACxCnL,EAAOY,QAAQ+J,EAAYrJ,GAE3BtB,EAAOY,QAAQ+J,KAKrB,SAASU,IACP,IAEIptB,EAFSvH,KAEOuH,OAChByM,EAHShU,KAGGgU,GAEhB,IAAIA,GAAyB,IAAnBA,EAAGyC,YAAb,CAGIlP,EAAOqtB,aARE50B,KASJ60B,gBAIT,IAAIzK,EAbSpqB,KAaeoqB,eACxBC,EAdSrqB,KAceqqB,eACxB9J,EAfSvgB,KAeSugB,SAfTvgB,KAkBNoqB,gBAAiB,EAlBXpqB,KAmBNqqB,gBAAiB,EAnBXrqB,KAqBNif,aArBMjf,KAsBN2f,eAtBM3f,KAwBN+mB,uBACuB,SAAzBxf,EAAOya,eAA4Bza,EAAOya,cAAgB,IAzBlDhiB,KAyB+D4mB,QAzB/D5mB,KAyBgF2mB,cAzBhF3mB,KAyBuGuH,OAAOoc,eAzB9G3jB,KA0BJkqB,QA1BIlqB,KA0BWqgB,OAAO1iB,OAAS,EAAG,GAAG,GAAO,GA1BxCqC,KA4BJkqB,QA5BIlqB,KA4BWwlB,YAAa,GAAG,GAAO,GA5BlCxlB,KA+BF80B,UA/BE90B,KA+BiB80B,SAASC,SA/B1B/0B,KA+B4C80B,SAASE,QA/BrDh1B,KAgCJ80B,SAAS7qB,MAhCLjK,KAmCNqqB,eAAiBA,EAnCXrqB,KAoCNoqB,eAAiBA,EApCXpqB,KAsCFuH,OAAOsd,eAAiBtE,IAtCtBvgB,KAsC0CugB,UAtC1CvgB,KAuCJ8kB,iBAIX,SAASmQ,EAAS/0B,GACHF,KACDmvB,aADCnvB,KAEAuH,OAAO2tB,eAAiBh1B,EAAEowB,iBAF1BtwB,KAGAuH,OAAO4tB,0BAHPn1B,KAG0CupB,YACnDrpB,EAAEwxB,kBACFxxB,EAAEk1B,6BAKR,SAASC,IACP,IACIvM,EADS9oB,KACU8oB,UACnB/I,EAFS/f,KAEa+f,aAFb/f,KAGNipB,kBAHMjpB,KAGqB6lB,UAHrB7lB,KAIFuf,eAJEvf,KAMF6lB,UADL9F,EACmB+I,EAAUwB,YAAcxB,EAAUrS,YAAeqS,EAAU5R,YAE5D4R,EAAU5R,WARrBlX,KAWJ6lB,WAAaiD,EAAU9R,WAGN,IAdbhX,KAcF6lB,YAdE7lB,KAcyB6lB,UAAY,GAdrC7lB,KAgBN4nB,oBAhBM5nB,KAiBN+mB,sBAGP,IAAIN,EApBSzmB,KAoBe0mB,eApBf1mB,KAoBuCkmB,gBAC7B,IAAnBO,EACY,GAtBHzmB,KAwBW6lB,UAxBX7lB,KAwB8BkmB,gBAAkB,KAxBhDlmB,KA0BcsmB,UA1BdtmB,KA2BJumB,eAAexG,GA3BX/f,KA2BkC6lB,UA3BlC7lB,KA2BqD6lB,WA3BrD7lB,KA8BNmL,KAAK,eA9BCnL,KA8BsB6lB,WAAW,GAGhD,IAAIyP,GAAqB,EACzB,SAASC,KAwVT,IAEIx0B,EAAW,CACbJ,MAAM,EACNspB,UAAW,aACXyE,kBAAmB,YACnBvE,aAAc,EACdhF,MAAO,IACPvE,SAAS,EACT4U,sBAAsB,EAEtBhM,gCAAgC,EAGhCoG,oBAAoB,EACpBE,mBAAoB,GAGpBoC,UAAU,EACVS,kBAAkB,EAClBS,sBAAuB,EACvBQ,wBAAwB,EACxBD,4BAA6B,EAC7BT,8BAA+B,EAC/BW,gBAAgB,EAChBZ,wBAAyB,IAGzB9M,YAAY,EAGZpC,gBAAgB,EAGhB2E,kBAAkB,EAGlB5E,OAAQ,QAGR8Q,iBAAa7mB,EAGboT,aAAc,EACda,cAAe,EACfH,gBAAiB,EACjBI,oBAAqB,SACrBS,eAAgB,EAChBmB,mBAAoB,EACpBF,gBAAgB,EAChBS,sBAAsB,EACtBtD,mBAAoB,EACpBE,kBAAmB,EACnBiH,qBAAqB,EACrBxD,0BAA0B,EAG1BI,eAAe,EAGf1B,cAAc,EAGd0O,WAAY,EACZZ,WAAY,GACZzE,eAAe,EACf+H,aAAa,EACbF,YAAY,EACZC,gBAAiB,GACjBN,aAAc,IACd/B,cAAc,EACdxB,gBAAgB,EAChBlF,UAAW,EACXiG,0BAA0B,EAC1Bd,0BAA0B,EAC1BC,+BAA+B,EAC/BK,qBAAqB,EAGrByE,mBAAmB,EAGnBzD,YAAY,EACZD,gBAAiB,IAGjBhN,qBAAqB,EACrBC,uBAAuB,EAGvBqH,YAAY,EAGZ6I,eAAe,EACfC,0BAA0B,EAC1B1M,qBAAqB,EAGrBiN,eAAe,EACfC,qBAAqB,EAGrBxO,MAAM,EACN4E,qBAAsB,EACtBrB,aAAc,KACdkB,wBAAwB,EAGxBvB,gBAAgB,EAChBD,gBAAgB,EAChBgF,aAAc,KACdH,WAAW,EACX2G,eAAgB,oBAChB1G,kBAAmB,KAGnB2G,kBAAkB,EAGlBC,uBAAwB,oBACxBC,WAAY,eACZC,gBAAiB,+BACjB9O,iBAAkB,sBAClBG,0BAA2B,gCAC3BtB,kBAAmB,uBACnBqB,oBAAqB,yBACrBG,eAAgB,oBAChBG,wBAAyB,8BACzBD,eAAgB,oBAChBE,wBAAyB,8BACzBsO,aAAc,iBAGd7N,oBAAoB,GAKlB8N,EAAa,CACflX,OAAQA,EACR6G,UAAWA,EACXvR,WAAYyV,EACZzH,MAAOA,EACP6E,KAAMA,EACNkF,WAAYA,EACZO,aAAcA,EACdxX,OAjYW,CACX+gB,aAxGF,WACE,IACI5uB,EADSvH,KACOuH,OAChB6uB,EAFSp2B,KAEYo2B,YACrBpiB,EAHShU,KAGGgU,GACZ8U,EAJS9oB,KAIU8oB,UAJV9oB,KAMNquB,aAAeA,EAAa3xB,KANtBsD,WAON4wB,YAAcA,EAAYl0B,KAPpBsD,WAQNsyB,WAAaA,EAAW51B,KARlBsD,MASTuH,EAAOqZ,UATE5gB,KAUJq1B,SAAWA,EAAS34B,KAVhBsD,YAaNi1B,QAAUA,EAAQv4B,KAbZsD,MAeb,IAAI4U,IAAYrN,EAAOkqB,OAGvB,IAAK/V,EAAQC,OAASD,EAAQG,cAC5B7H,EAAG9F,iBAAiBkoB,EAAYC,MAnBrBr2B,KAmBmCquB,cAAc,GAC5D1e,EAAIzB,iBAAiBkoB,EAAYE,KApBtBt2B,KAoBmC4wB,YAAahc,GAC3DjF,EAAIzB,iBAAiBkoB,EAAYG,IArBtBv2B,KAqBkCsyB,YAAY,OACpD,CACL,GAAI5W,EAAQC,MAAO,CACjB,IAAIM,IAAwC,eAAtBma,EAAYC,QAA0B3a,EAAQO,kBAAmB1U,EAAOsuB,mBAAmB,CAAEW,SAAS,EAAM5hB,SAAS,GAC3IZ,EAAG9F,iBAAiBkoB,EAAYC,MAzBvBr2B,KAyBqCquB,aAAcpS,GAC5DjI,EAAG9F,iBAAiBkoB,EAAYE,KA1BvBt2B,KA0BoC4wB,YAAalV,EAAQO,gBAAkB,CAAEua,SAAS,EAAO5hB,QAASA,GAAYA,GAC3HZ,EAAG9F,iBAAiBkoB,EAAYG,IA3BvBv2B,KA2BmCsyB,WAAYrW,GACpDma,EAAY5nB,QACdwF,EAAG9F,iBAAiBkoB,EAAY5nB,OA7BzBxO,KA6BwCsyB,WAAYrW,GAExDqZ,IACH3lB,EAAIzB,iBAAiB,aAAcqnB,GACnCD,GAAqB,IAGpB/tB,EAAOilB,gBAAkBgB,EAAOC,MAAQD,EAAOlP,SAAa/W,EAAOilB,gBAAkB9Q,EAAQC,OAAS6R,EAAOC,OAChHzZ,EAAG9F,iBAAiB,YArCXlO,KAqC+BquB,cAAc,GACtD1e,EAAIzB,iBAAiB,YAtCZlO,KAsCgC4wB,YAAahc,GACtDjF,EAAIzB,iBAAiB,UAvCZlO,KAuC8BsyB,YAAY,KAInD/qB,EAAO2tB,eAAiB3tB,EAAO4tB,2BACjCnhB,EAAG9F,iBAAiB,QA5CTlO,KA4CyBi1B,SAAS,GAE3C1tB,EAAOqZ,SACTkI,EAAU5a,iBAAiB,SA/ChBlO,KA+CiCq1B,UAI1C9tB,EAAOiuB,qBAnDEx1B,KAoDJ6K,GAAI2iB,EAAOC,KAAOD,EAAOlP,QAAU,0CAA4C,wBAA0BqW,GAAU,GApD/G30B,KAsDJ6K,GAAG,iBAAkB8pB,GAAU,IAkDxC8B,aA9CF,WACE,IAEIlvB,EAFSvH,KAEOuH,OAChB6uB,EAHSp2B,KAGYo2B,YACrBpiB,EAJShU,KAIGgU,GACZ8U,EALS9oB,KAKU8oB,UAEnBlU,IAAYrN,EAAOkqB,OAGvB,IAAK/V,EAAQC,OAASD,EAAQG,cAC5B7H,EAAGlE,oBAAoBsmB,EAAYC,MAXxBr2B,KAWsCquB,cAAc,GAC/D1e,EAAIG,oBAAoBsmB,EAAYE,KAZzBt2B,KAYsC4wB,YAAahc,GAC9DjF,EAAIG,oBAAoBsmB,EAAYG,IAbzBv2B,KAaqCsyB,YAAY,OACvD,CACL,GAAI5W,EAAQC,MAAO,CACjB,IAAIM,IAAwC,iBAAtBma,EAAYC,QAA4B3a,EAAQO,kBAAmB1U,EAAOsuB,mBAAmB,CAAEW,SAAS,EAAM5hB,SAAS,GAC7IZ,EAAGlE,oBAAoBsmB,EAAYC,MAjB1Br2B,KAiBwCquB,aAAcpS,GAC/DjI,EAAGlE,oBAAoBsmB,EAAYE,KAlB1Bt2B,KAkBuC4wB,YAAahc,GAC7DZ,EAAGlE,oBAAoBsmB,EAAYG,IAnB1Bv2B,KAmBsCsyB,WAAYrW,GACvDma,EAAY5nB,QACdwF,EAAGlE,oBAAoBsmB,EAAY5nB,OArB5BxO,KAqB2CsyB,WAAYrW,IAG7D1U,EAAOilB,gBAAkBgB,EAAOC,MAAQD,EAAOlP,SAAa/W,EAAOilB,gBAAkB9Q,EAAQC,OAAS6R,EAAOC,OAChHzZ,EAAGlE,oBAAoB,YAzBd9P,KAyBkCquB,cAAc,GACzD1e,EAAIG,oBAAoB,YA1Bf9P,KA0BmC4wB,YAAahc,GACzDjF,EAAIG,oBAAoB,UA3Bf9P,KA2BiCsyB,YAAY,KAItD/qB,EAAO2tB,eAAiB3tB,EAAO4tB,2BACjCnhB,EAAGlE,oBAAoB,QAhCZ9P,KAgC4Bi1B,SAAS,GAG9C1tB,EAAOqZ,SACTkI,EAAUhZ,oBAAoB,SApCnB9P,KAoCoCq1B,UApCpCr1B,KAwCNgL,IAAKwiB,EAAOC,KAAOD,EAAOlP,QAAU,0CAA4C,wBAA0BqW,KAqYjHC,YA9RgB,CAAEC,cA/FpB,WACE,IACIrP,EADSxlB,KACYwlB,YACrB2C,EAFSnoB,KAEYmoB,YACrBuC,EAHS1qB,KAGa0qB,kBAAoC,IAAjBA,IAA0BA,EAAe,GACtF,IAAInjB,EAJSvH,KAIOuH,OAChB6X,EALSpf,KAKIof,IACbwV,EAAcrtB,EAAOqtB,YACzB,GAAKA,KAAgBA,GAAmD,IAApCh5B,OAAO2T,KAAKqlB,GAAaj3B,QAA7D,CAGA,IAAI+4B,EAVS12B,KAUW22B,cAAc/B,GAEtC,GAAI8B,GAZS12B,KAYY42B,oBAAsBF,EAAY,CACzD,IAAIG,EAAuBH,KAAc9B,EAAcA,EAAY8B,QAAc3oB,EAC7E8oB,GACF,CAAC,gBAAiB,eAAgB,iBAAkB,qBAAsB,mBAAmBr5B,SAAQ,SAAUsd,GAC7G,IAAIgc,EAAaD,EAAqB/b,QACZ,IAAfgc,IAITD,EAAqB/b,GAHT,kBAAVA,GAA6C,SAAfgc,GAAwC,SAAfA,EAEtC,kBAAVhc,EACqBvW,WAAWuyB,GAEXrX,SAASqX,EAAY,IAJrB,WASpC,IAAIC,EAAmBF,GA5BZ72B,KA4B2Cg3B,eAClDC,EAAc1vB,EAAOsa,gBAAkB,EACvCqV,EAAaH,EAAiBlV,gBAAkB,EAChDoV,IAAgBC,EAClB9X,EAAI/L,YAAc9L,EAA6B,uBAAI,YAAeA,EAA6B,uBAAI,oBACzF0vB,GAAeC,IACzB9X,EAAIrM,SAAWxL,EAA6B,uBAAI,YACH,WAAzCwvB,EAAiB9U,qBACnB7C,EAAIrM,SAAWxL,EAA6B,uBAAI,oBAIpD,IAAI4vB,EAAmBJ,EAAiB9M,WAAa8M,EAAiB9M,YAAc1iB,EAAO0iB,UACvFmN,EAAc7vB,EAAO4f,OAAS4P,EAAiB/U,gBAAkBza,EAAOya,eAAiBmV,GAEzFA,GAAoBhP,GA3CbnoB,KA4CFq3B,kBAGT1d,EAAMna,OA/CKQ,KA+CSuH,OAAQwvB,GAE5Bpd,EAAMna,OAjDKQ,KAiDU,CACnBywB,eAlDSzwB,KAkDcuH,OAAOkpB,eAC9BrG,eAnDSpqB,KAmDcuH,OAAO6iB,eAC9BC,eApDSrqB,KAoDcuH,OAAO8iB,iBApDrBrqB,KAuDJ42B,kBAAoBF,EAEvBU,GAAejP,IAzDRnoB,KA0DFosB,cA1DEpsB,KA2DF2rB,aA3DE3rB,KA4DF2f,eA5DE3f,KA6DFkqB,QAAS1E,EAAckF,EA7DrB1qB,KA6D4C0qB,aAAc,GAAG,IA7D7D1qB,KAgEJmL,KAAK,aAAc4rB,MA8BoBJ,cA1BlD,SAAwB/B,GAEtB,GAAKA,EAAL,CACA,IAAI8B,GAAa,EAEbY,EAAS17B,OAAO2T,KAAKqlB,GAAata,KAAI,SAAUid,GAClD,GAAqB,iBAAVA,GAA6C,IAAvBA,EAAMzvB,QAAQ,KAAY,CACzD,IAAI0vB,EAAWjzB,WAAWgzB,EAAME,OAAO,IAEvC,MAAO,CAAEt7B,MADGmV,EAAIomB,YAAcF,EACPD,MAAOA,GAEhC,MAAO,CAAEp7B,MAAOo7B,EAAOA,MAAOA,MAGhCD,EAAOK,MAAK,SAAUl4B,EAAGC,GAAK,OAAO+f,SAAShgB,EAAEtD,MAAO,IAAMsjB,SAAS/f,EAAEvD,MAAO,OAC/E,IAAK,IAAIjB,EAAI,EAAGA,EAAIo8B,EAAO35B,OAAQzC,GAAK,EAAG,CACzC,IAAI08B,EAAMN,EAAOp8B,GACbq8B,EAAQK,EAAIL,MACJK,EAAIz7B,OACHmV,EAAIumB,aACfnB,EAAaa,GAGjB,OAAOb,GAAc,SAkSrB5R,cApJoB,CAAEA,cAxBxB,WACE,IACIvd,EADSvH,KACOuH,OAChBuwB,EAFS93B,KAEUysB,SACnBsL,EAHS/3B,KAGkBqgB,OAAO1iB,OAAS,GAAM4J,EAAOuZ,mBAAsBvZ,EAAO4Z,cAH5EnhB,KAGmGqgB,OAAO1iB,OAAS,GAHnHqC,KAGkIqgB,OAAO,GAAe,YAHxJrgB,KAGmKqgB,OAAO1iB,OAEnL4J,EAAOuZ,oBAAsBvZ,EAAOyZ,mBAAqB+W,EALhD/3B,KAMJysB,SAAWsL,GANP/3B,KAMmC0f,KANnC1f,KAQJysB,SAAsC,IARlCzsB,KAQcugB,SAAS5iB,OARvBqC,KAWNoqB,gBAXMpqB,KAWmBysB,SAXnBzsB,KAYNqqB,gBAZMrqB,KAYmBysB,SAG5BqL,IAfS93B,KAeYysB,UAfZzsB,KAe+BmL,KAf/BnL,KAe2CysB,SAAW,OAAS,UAExEqL,GAAaA,IAjBJ93B,KAiByBysB,WAjBzBzsB,KAkBJ4mB,OAAQ,EAlBJ5mB,KAmBAw0B,YAnBAx0B,KAmBqBw0B,WAAWxV,YAyJ7C/L,QA1OY,CAAE+kB,WApDhB,WACE,IACIC,EADSj4B,KACWi4B,WACpB1wB,EAFSvH,KAEOuH,OAChBuY,EAHS9f,KAGI8f,IACbV,EAJSpf,KAIIof,IACb8Y,EAAW,GAEfA,EAAStwB,KAAK,eACdswB,EAAStwB,KAAKL,EAAO0iB,WAEjB1iB,EAAO2qB,UACTgG,EAAStwB,KAAK,aAEZL,EAAO4e,YACT+R,EAAStwB,KAAK,cAEZkY,GACFoY,EAAStwB,KAAK,OAEZL,EAAOsa,gBAAkB,IAC3BqW,EAAStwB,KAAK,YACqB,WAA/BL,EAAO0a,qBACTiW,EAAStwB,KAAK,oBAGd4lB,EAAOlP,SACT4Z,EAAStwB,KAAK,WAEZ4lB,EAAOC,KACTyK,EAAStwB,KAAK,OAGZL,EAAOqZ,SACTsX,EAAStwB,KAAK,YAGhBswB,EAAS16B,SAAQ,SAAU26B,GACzBF,EAAWrwB,KAAKL,EAAOuuB,uBAAyBqC,MAGlD/Y,EAAIrM,SAASklB,EAAW91B,KAAK,OAWSi2B,cARxC,WACE,IACIhZ,EADSpf,KACIof,IACb6Y,EAFSj4B,KAEWi4B,WAExB7Y,EAAI/L,YAAY4kB,EAAW91B,KAAK,QA8OhCk2B,OAnLW,CACXC,UAvDF,SAAoBC,EAAS7oB,EAAK8oB,EAAQC,EAAOC,EAAkBviB,GACjE,IAAIwiB,EACJ,SAASC,IACHziB,GAAYA,IAEFzT,EAAE61B,GAASrf,OAAO,WAAW,IAEzBqf,EAAQM,UAAaH,EAmBvCE,IAlBIlpB,IACFipB,EAAQ,IAAIrnB,EAAIU,OACV8mB,OAASF,EACfD,EAAMjrB,QAAUkrB,EACZH,IACFE,EAAMF,MAAQA,GAEZD,IACFG,EAAMH,OAASA,GAEb9oB,IACFipB,EAAMjpB,IAAMA,IAGdkpB,KAkCJlD,cA1BF,WACE,IAAIpM,EAAStpB,KAEb,SAAS44B,IACH,MAAOtP,GAA8CA,IAAUA,EAAOQ,iBAC9C/b,IAAxBub,EAAOyP,eAA8BzP,EAAOyP,cAAgB,GAC5DzP,EAAOyP,eAAiBzP,EAAO0P,aAAar7B,SAC1C2rB,EAAO/hB,OAAOouB,qBAAuBrM,EAAOtK,SAChDsK,EAAOne,KAAK,iBANhBme,EAAO0P,aAAe1P,EAAOlK,IAAIhG,KAAK,OAStC,IAAK,IAAIle,EAAI,EAAGA,EAAIouB,EAAO0P,aAAar7B,OAAQzC,GAAK,EAAG,CACtD,IAAIq9B,EAAUjP,EAAO0P,aAAa99B,GAClCouB,EAAOgP,UACLC,EACAA,EAAQU,YAAcV,EAAQz0B,aAAa,OAC3Cy0B,EAAQC,QAAUD,EAAQz0B,aAAa,UACvCy0B,EAAQE,OAASF,EAAQz0B,aAAa,UACtC,EACA80B,OA2LFM,EAAmB,GAEnBC,EAAuB,SAAU9c,GACnC,SAAS8c,IAIP,IAHA,IAAI3kB,EAIAR,EACAzM,EAHAL,EAAO,GAAI8C,EAAM1K,UAAU3B,OACvBqM,KAAQ9C,EAAM8C,GAAQ1K,UAAW0K,GAGrB,IAAhB9C,EAAKvJ,QAAgBuJ,EAAK,GAAGpJ,aAAeoJ,EAAK,GAAGpJ,cAAgBlC,OACtE2L,EAASL,EAAK,IAEE8M,GAAfQ,EAAStN,GAAkB,GAAIK,EAASiN,EAAO,IAE7CjN,IAAUA,EAAS,IAExBA,EAASoS,EAAMna,OAAO,GAAI+H,GACtByM,IAAOzM,EAAOyM,KAAMzM,EAAOyM,GAAKA,GAEpCqI,EAAYhhB,KAAK2E,KAAMuH,GAEvB3L,OAAO2T,KAAK2mB,GAAY14B,SAAQ,SAAU47B,GACxCx9B,OAAO2T,KAAK2mB,EAAWkD,IAAiB57B,SAAQ,SAAU67B,GACnDF,EAAOr8B,UAAUu8B,KACpBF,EAAOr8B,UAAUu8B,GAAenD,EAAWkD,GAAgBC,UAMjE,IAAI/P,EAAStpB,UACiB,IAAnBspB,EAAOluB,UAChBkuB,EAAOluB,QAAU,IAEnBQ,OAAO2T,KAAK+Z,EAAOluB,SAASoC,SAAQ,SAAU4f,GAC5C,IAAIniB,EAASquB,EAAOluB,QAAQgiB,GAC5B,GAAIniB,EAAOsM,OAAQ,CACjB,IAAI+xB,EAAkB19B,OAAO2T,KAAKtU,EAAOsM,QAAQ,GAC7CgW,EAAetiB,EAAOsM,OAAO+xB,GACjC,GAA4B,iBAAjB/b,GAA8C,OAAjBA,EAAyB,OACjE,KAAM+b,KAAmB/xB,MAAU,YAAagW,GAAiB,QACjC,IAA5BhW,EAAO+xB,KACT/xB,EAAO+xB,GAAmB,CAAEnZ,SAAS,IAGF,iBAA5B5Y,EAAO+xB,IACT,YAAa/xB,EAAO+xB,KAEzB/xB,EAAO+xB,GAAiBnZ,SAAU,GAE/B5Y,EAAO+xB,KAAoB/xB,EAAO+xB,GAAmB,CAAEnZ,SAAS,QAKzE,IAAIoZ,EAAe5f,EAAMna,OAAO,GAAIuB,GACpCuoB,EAAOrM,iBAAiBsc,GAGxBjQ,EAAO/hB,OAASoS,EAAMna,OAAO,GAAI+5B,EAAcL,EAAkB3xB,GACjE+hB,EAAO0N,eAAiBrd,EAAMna,OAAO,GAAI8pB,EAAO/hB,QAChD+hB,EAAOkQ,aAAe7f,EAAMna,OAAO,GAAI+H,GAGvC+hB,EAAO5mB,EAAIA,EAGX,IAAI0c,EAAM1c,EAAE4mB,EAAO/hB,OAAOyM,IAG1B,GAFAA,EAAKoL,EAAI,GAET,CAIA,GAAIA,EAAIzhB,OAAS,EAAG,CAClB,IAAI87B,EAAU,GAKd,OAJAra,EAAI7H,MAAK,SAAUO,EAAO4hB,GACxB,IAAIC,EAAYhgB,EAAMna,OAAO,GAAI+H,EAAQ,CAAEyM,GAAI0lB,IAC/CD,EAAQ7xB,KAAK,IAAIuxB,EAAOQ,OAEnBF,EAOT,IAAI7Z,EAyDIjE,EACAgS,EAmER,OAjIA3Z,EAAGsV,OAASA,EACZlK,EAAI5W,KAAK,SAAU8gB,GAIftV,GAAMA,EAAG4lB,YAAc5lB,EAAG4lB,WAAW51B,eACvC4b,EAAald,EAAEsR,EAAG4lB,WAAW51B,cAAe,IAAOslB,EAAO/hB,OAAmB,gBAElE+I,SAAW,SAAUupB,GAAW,OAAOza,EAAI9O,SAASupB,IAE/Dja,EAAaR,EAAI9O,SAAU,IAAOgZ,EAAO/hB,OAAmB,cAG9DoS,EAAMna,OAAO8pB,EAAQ,CACnBlK,IAAKA,EACLpL,GAAIA,EACJ4L,WAAYA,EACZkJ,UAAWlJ,EAAW,GAGtBqY,WAAY,GAGZ5X,OAAQ3d,IACR8d,WAAY,GACZD,SAAU,GACVE,gBAAiB,GAGjBlB,aAAc,WACZ,MAAmC,eAA5B+J,EAAO/hB,OAAO0iB,WAEvBzK,WAAY,WACV,MAAmC,aAA5B8J,EAAO/hB,OAAO0iB,WAGvBnK,IAA+B,QAAzB9L,EAAGtI,IAAInG,eAAoD,QAAzB6Z,EAAIhb,IAAI,aAChD2b,aAA0C,eAA5BuJ,EAAO/hB,OAAO0iB,YAAwD,QAAzBjW,EAAGtI,IAAInG,eAAoD,QAAzB6Z,EAAIhb,IAAI,cACrG4b,SAAwC,gBAA9BJ,EAAWxb,IAAI,WAGzBohB,YAAa,EACbyB,UAAW,EAGXN,aAAa,EACbC,OAAO,EAGPf,UAAW,EACXoD,kBAAmB,EACnB3C,SAAU,EACV0M,SAAU,EACVzJ,WAAW,EAGXa,eAAgBd,EAAO/hB,OAAO6iB,eAC9BC,eAAgBf,EAAO/hB,OAAO8iB,eAG9B+L,aACMza,EAAQ,CAAC,aAAc,YAAa,WAAY,eAChDgS,EAAU,CAAC,YAAa,YAAa,WACrCjS,EAAQG,gBACV8R,EAAU,CAAC,cAAe,cAAe,cAE3CrE,EAAOwQ,iBAAmB,CACxBzD,MAAO1a,EAAM,GACb2a,KAAM3a,EAAM,GACZ4a,IAAK5a,EAAM,GACXnN,OAAQmN,EAAM,IAEhB2N,EAAOyQ,mBAAqB,CAC1B1D,MAAO1I,EAAQ,GACf2I,KAAM3I,EAAQ,GACd4I,IAAK5I,EAAQ,IAERjS,EAAQC,QAAU2N,EAAO/hB,OAAOilB,cAAgBlD,EAAOwQ,iBAAmBxQ,EAAOyQ,oBAE1FzL,gBAAiB,CACfS,eAAWhhB,EACXihB,aAASjhB,EACTiiB,yBAAqBjiB,EACrBoiB,oBAAgBpiB,EAChBkiB,iBAAaliB,EACb4a,sBAAkB5a,EAClB4jB,oBAAgB5jB,EAChBsiB,wBAAoBtiB,EAEpBwiB,aAAc,wDAEdmC,cAAe/Y,EAAMG,MACrBkgB,kBAAcjsB,EAEdokB,WAAY,GACZP,yBAAqB7jB,EACrB4gB,kBAAc5gB,EACdmiB,iBAAaniB,GAIfohB,YAAY,EAGZsB,eAAgBnH,EAAO/hB,OAAOkpB,eAE9BlC,QAAS,CACPmB,OAAQ,EACRC,OAAQ,EACRN,SAAU,EACVG,SAAU,EACVrD,KAAM,GAIR6M,aAAc,GACdD,aAAc,IAKhBzP,EAAOjM,aAGHiM,EAAO/hB,OAAO5G,MAChB2oB,EAAO3oB,OAIF2oB,GAGJjN,IAAc8c,EAAOc,UAAY5d,GACtC8c,EAAOr8B,UAAYlB,OAAOY,OAAQ6f,GAAeA,EAAYvf,WAC7Dq8B,EAAOr8B,UAAUgB,YAAcq7B,EAE/B,IAAI1c,EAAkB,CAAEyc,iBAAkB,CAAEvc,cAAc,GAAO5b,SAAU,CAAE4b,cAAc,GAAO9J,MAAO,CAAE8J,cAAc,GAAOja,EAAG,CAAEia,cAAc,IA2PnJ,OAzPAwc,EAAOr8B,UAAU2uB,qBAAuB,WACtC,IACIlkB,EADSvH,KACOuH,OAChB8Y,EAFSrgB,KAEOqgB,OAChBG,EAHSxgB,KAGWwgB,WACpBX,EAJS7f,KAIW0f,KACpB8F,EALSxlB,KAKYwlB,YACrB0U,EAAM,EACV,GAAI3yB,EAAOoc,eAAgB,CAGzB,IAFA,IACIwW,EADA5Y,EAAYlB,EAAOmF,GAAa9B,gBAE3BxoB,EAAIsqB,EAAc,EAAGtqB,EAAImlB,EAAO1iB,OAAQzC,GAAK,EAChDmlB,EAAOnlB,KAAOi/B,IAEhBD,GAAO,GADP3Y,GAAalB,EAAOnlB,GAAGwoB,iBAEP7D,IAAcsa,GAAY,IAG9C,IAAK,IAAInW,EAAMwB,EAAc,EAAGxB,GAAO,EAAGA,GAAO,EAC3C3D,EAAO2D,KAASmW,IAElBD,GAAO,GADP3Y,GAAalB,EAAO2D,GAAKN,iBAET7D,IAAcsa,GAAY,SAI9C,IAAK,IAAIjW,EAAMsB,EAAc,EAAGtB,EAAM7D,EAAO1iB,OAAQumB,GAAO,EACtD1D,EAAW0D,GAAO1D,EAAWgF,GAAe3F,IAC9Cqa,GAAO,GAIb,OAAOA,GAGTf,EAAOr8B,UAAUkiB,OAAS,WACxB,IAAIsK,EAAStpB,KACb,GAAKspB,IAAUA,EAAOQ,UAAtB,CACA,IAAIvJ,EAAW+I,EAAO/I,SAClBhZ,EAAS+hB,EAAO/hB,OAEhBA,EAAOqtB,aACTtL,EAAOuL,gBAETvL,EAAOrK,aACPqK,EAAO3J,eACP2J,EAAO/C,iBACP+C,EAAOvC,sBAUHuC,EAAO/hB,OAAO2qB,UAChBtJ,IACIU,EAAO/hB,OAAO4e,YAChBmD,EAAOpE,sBAG4B,SAAhCoE,EAAO/hB,OAAOya,eAA4BsH,EAAO/hB,OAAOya,cAAgB,IAAMsH,EAAO1C,QAAU0C,EAAO/hB,OAAOoc,eACnG2F,EAAOY,QAAQZ,EAAOjJ,OAAO1iB,OAAS,EAAG,GAAG,GAAO,GAEnD2rB,EAAOY,QAAQZ,EAAO9D,YAAa,GAAG,GAAO,KAG1DoD,IAGArhB,EAAOsd,eAAiBtE,IAAa+I,EAAO/I,UAC9C+I,EAAOxE,gBAETwE,EAAOne,KAAK,UA1BZ,SAASyd,IACP,IAAIwR,EAAiB9Q,EAAOvJ,cAAmC,EAApBuJ,EAAOzD,UAAiByD,EAAOzD,UACtE4D,EAAejmB,KAAKsf,IAAItf,KAAK0e,IAAIkY,EAAgB9Q,EAAO5C,gBAAiB4C,EAAOpD,gBACpFoD,EAAOV,aAAaa,GACpBH,EAAO1B,oBACP0B,EAAOvC,wBAwBXoS,EAAOr8B,UAAUu6B,gBAAkB,SAA0BgD,EAAcC,QACrD,IAAfA,IAAwBA,GAAa,GAE1C,IACIC,EADSv6B,KACiBuH,OAAO0iB,UAKrC,OAJKoQ,IAEHA,EAAoC,eAArBE,EAAoC,WAAa,cAE7DF,IAAiBE,GAAuC,eAAjBF,GAAkD,aAAjBA,IANhEr6B,KAUNof,IACJ/L,YAAa,GAXHrT,KAWgBuH,OAA6B,uBAAIgzB,GAC3DxnB,SAAU,GAZA/S,KAYauH,OAA6B,uBAAI8yB,GAZ9Cr6B,KAcNuH,OAAO0iB,UAAYoQ,EAdbr6B,KAgBNqgB,OAAO9I,MAAK,SAAUoJ,EAAY6Z,GAClB,aAAjBH,EACFG,EAAQhqB,MAAM0O,MAAQ,GAEtBsb,EAAQhqB,MAAM2O,OAAS,MApBdnf,KAwBNmL,KAAK,mBACRmvB,GAzBSt6B,KAyBYgf,UAzBZhf,MA8Bfm5B,EAAOr8B,UAAU6D,KAAO,WACTX,KACFmoB,cADEnoB,KAGNmL,KAAK,cAHCnL,KAMFuH,OAAOqtB,aANL50B,KAOJ60B,gBAPI70B,KAWNg4B,aAXMh4B,KAcFuH,OAAO4f,MAdLnnB,KAeJ2rB,aAfI3rB,KAmBNif,aAnBMjf,KAsBN2f,eAtBM3f,KAwBFuH,OAAOsd,eAxBL7kB,KAyBJ8kB,gBAzBI9kB,KA6BFuH,OAAO8kB,YA7BLrsB,KA8BJssB,gBA9BItsB,KAiCFuH,OAAOmuB,eAjCL11B,KAkCJ01B,gBAlCI11B,KAsCFuH,OAAO4f,KAtCLnnB,KAuCJkqB,QAvCIlqB,KAuCWuH,OAAO4iB,aAvClBnqB,KAuCwC0qB,aAAc,EAvCtD1qB,KAuCgEuH,OAAO6gB,oBAvCvEpoB,KAyCJkqB,QAzCIlqB,KAyCWuH,OAAO4iB,aAAc,EAzChCnqB,KAyC0CuH,OAAO6gB,oBAzCjDpoB,KA6CNm2B,eA7CMn2B,KAgDNmoB,aAAc,EAhDRnoB,KAmDNmL,KAAK,UAGdguB,EAAOr8B,UAAU29B,QAAU,SAAkBC,EAAgBC,QACnC,IAAnBD,IAA4BA,GAAiB,QAC7B,IAAhBC,IAAyBA,GAAc,GAE5C,IAAIrR,EAAStpB,KACTuH,EAAS+hB,EAAO/hB,OAChB6X,EAAMkK,EAAOlK,IACbQ,EAAa0J,EAAO1J,WACpBS,EAASiJ,EAAOjJ,OAEpB,YAA6B,IAAlBiJ,EAAO/hB,QAA0B+hB,EAAOQ,YAInDR,EAAOne,KAAK,iBAGZme,EAAOnB,aAAc,EAGrBmB,EAAOmN,eAGHlvB,EAAO4f,MACTmC,EAAO8C,cAILuO,IACFrR,EAAO8O,gBACPhZ,EAAItL,WAAW,SACf8L,EAAW9L,WAAW,SAClBuM,GAAUA,EAAO1iB,QACnB0iB,EACGhN,YAAY,CACX9L,EAAOwe,kBACPxe,EAAO2f,iBACP3f,EAAOggB,eACPhgB,EAAOkgB,gBAAiBtlB,KAAK,MAC9B2R,WAAW,SACXA,WAAW,4BAIlBwV,EAAOne,KAAK,WAGZvP,OAAO2T,KAAK+Z,EAAO/M,iBAAiB/e,SAAQ,SAAUgf,GACpD8M,EAAOte,IAAIwR,OAGU,IAAnBke,IACFpR,EAAOlK,IAAI,GAAGkK,OAAS,KACvBA,EAAOlK,IAAI5W,KAAK,SAAU,MAC1BmR,EAAMC,YAAY0P,IAEpBA,EAAOQ,WAAY,GA7CV,MAkDXqP,EAAOyB,eAAiB,SAAyBC,GAC/ClhB,EAAMna,OAAO05B,EAAkB2B,IAGjCpe,EAAgByc,iBAAiBn9B,IAAM,WACrC,OAAOm9B,GAGTzc,EAAgB1b,SAAShF,IAAM,WAC7B,OAAOgF,GAGT0b,EAAgB5J,MAAM9W,IAAM,WAC1B,OAAOsgB,GAGTI,EAAgB/Z,EAAE3G,IAAM,WACtB,OAAO2G,GAGT9G,OAAOoiB,iBAAkBmb,EAAQ1c,GAE1B0c,EArdiB,CAsdxB9c,GAEEye,EAAW,CACbr/B,KAAM,SACNoiB,MAAO,CACLM,OAAQqP,GAEV1P,OAAQ,CACNK,OAAQqP,IAIRuN,EAAY,CACdt/B,KAAM,UACNoiB,MAAO,CACLmd,QAAStf,GAEXoC,OAAQ,CACNkd,QAAStf,IAITuf,EAKK,CACLC,SAAU5pB,EAAIvS,UAAUwS,UAAUjM,MAAM,SACxC61B,SANF,WACE,IAAIjd,EAAK5M,EAAIvS,UAAUwS,UAAUhM,cACjC,OAAQ2Y,EAAGpW,QAAQ,WAAa,GAAKoW,EAAGpW,QAAQ,UAAY,GAAKoW,EAAGpW,QAAQ,WAAa,EAI/EqzB,GACVC,UAAW,+CAA+C/5B,KAAKiQ,EAAIvS,UAAUwS,YAI7E8pB,EAAY,CACd5/B,KAAM,UACNoiB,MAAO,CACLpT,QAASwwB,GAEXnd,OAAQ,CACNrT,QAASwwB,IAITK,EAAS,CACX7/B,KAAM,SACNe,OAAQ,WACN,IAAI8sB,EAAStpB,KACb2Z,EAAMna,OAAO8pB,EAAQ,CACnBiS,OAAQ,CACNC,cAAe,WACRlS,IAAUA,EAAOQ,WAAcR,EAAOnB,cAC3CmB,EAAOne,KAAK,gBACZme,EAAOne,KAAK,YAEdswB,yBAA0B,WACnBnS,IAAUA,EAAOQ,WAAcR,EAAOnB,aAC3CmB,EAAOne,KAAK,0BAKpBN,GAAI,CACFlK,KAAM,WAGJ2Q,EAAIpD,iBAAiB,SAFRlO,KAEyBu7B,OAAOC,eAG7ClqB,EAAIpD,iBAAiB,oBALRlO,KAKoCu7B,OAAOE,2BAE1DhB,QAAS,WAEPnpB,EAAIxB,oBAAoB,SADX9P,KAC4Bu7B,OAAOC,eAChDlqB,EAAIxB,oBAAoB,oBAFX9P,KAEuCu7B,OAAOE,6BAK7DC,EAAW,CACbC,KAAMrqB,EAAIsqB,kBAAoBtqB,EAAIuqB,uBAClCC,OAAQ,SAAgBl1B,EAAQizB,QACb,IAAZA,IAAqBA,EAAU,IAEpC,IAAIvQ,EAAStpB,KAGTgc,EAAW,IAAI+f,EADAL,EAASC,OACI,SAAUK,GAIxC,GAAyB,IAArBA,EAAUr+B,OAAd,CAIA,IAAIs+B,EAAiB,WACnB3S,EAAOne,KAAK,iBAAkB6wB,EAAU,KAGtC1qB,EAAI4qB,sBACN5qB,EAAI4qB,sBAAsBD,GAE1B3qB,EAAIlO,WAAW64B,EAAgB,QAV/B3S,EAAOne,KAAK,iBAAkB6wB,EAAU,OAc5ChgB,EAASmgB,QAAQv1B,EAAQ,CACvBpG,gBAA0C,IAAvBq5B,EAAQr5B,YAAoCq5B,EAAQr5B,WACvE47B,eAAwC,IAAtBvC,EAAQuC,WAAmCvC,EAAQuC,UACrEC,mBAAgD,IAA1BxC,EAAQwC,eAAuCxC,EAAQwC,gBAG/E/S,EAAOtN,SAASsgB,UAAU10B,KAAKoU,IAEjCrb,KAAM,WAEJ,GAAK+a,EAAQM,UADAhc,KACoBuH,OAAOyU,SAAxC,CACA,GAFahc,KAEFuH,OAAOg1B,eAEhB,IADA,IAAIC,EAHOx8B,KAGmBof,IAAInK,UACzB/Z,EAAI,EAAGA,EAAIshC,EAAiB7+B,OAAQzC,GAAK,EAJvC8E,KAKFgc,SAAS8f,OAAOU,EAAiBthC,IAL/B8E,KASNgc,SAAS8f,OATH97B,KASiBof,IAAI,GAAI,CAAEgd,UAT3Bp8B,KAS6CuH,OAAOk1B,uBATpDz8B,KAYNgc,SAAS8f,OAZH97B,KAYiB4f,WAAW,GAAI,CAAEpf,YAAY,MAE7Di6B,QAAS,WACMz6B,KACNgc,SAASsgB,UAAU9+B,SAAQ,SAAUwe,GAC1CA,EAAS0gB,gBAFE18B,KAINgc,SAASsgB,UAAY,KAI5BK,GAAa,CACflhC,KAAM,WACN8L,OAAQ,CACNyU,UAAU,EACVugB,gBAAgB,EAChBE,sBAAsB,GAExBjgC,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnBgc,SAAU,CACRrb,KAAM+6B,EAAS/6B,KAAKjE,KAHXsD,MAIT87B,OAAQJ,EAASI,OAAOp/B,KAJfsD,MAKTy6B,QAASiB,EAASjB,QAAQ/9B,KALjBsD,MAMTs8B,UAAW,OAIjBzxB,GAAI,CACFlK,KAAM,WACSX,KACNgc,SAASrb,QAElB85B,QAAS,WACMz6B,KACNgc,SAASye,aAKlBmC,GAAU,CACZ5d,OAAQ,SAAgB6d,GACtB,IAAIvT,EAAStpB,KACT43B,EAAMtO,EAAO/hB,OACbya,EAAgB4V,EAAI5V,cACpBU,EAAiBkV,EAAIlV,eACrBiB,EAAiBiU,EAAIjU,eACrBmZ,EAAQxT,EAAO/hB,OAAO2Y,QACtB6c,EAAkBD,EAAMC,gBACxBC,EAAiBF,EAAME,eACvBC,EAAQ3T,EAAOpJ,QACfgd,EAAeD,EAAME,KACrBC,EAAaH,EAAM9hB,GACnBkF,EAAS4c,EAAM5c,OACfgd,EAAqBJ,EAAMzc,WAC3B8c,EAAcL,EAAMK,YACpBC,EAAiBN,EAAMtmB,OAC3B2S,EAAO1B,oBACP,IAEI4V,EAIAC,EACAC,EAPAlY,EAAc8D,EAAO9D,aAAe,EAGbgY,EAAvBlU,EAAOvJ,aAA6B,QACpBuJ,EAAO/J,eAAiB,OAAS,MAIjDoE,GACF8Z,EAAcj6B,KAAKse,MAAME,EAAgB,GAAKU,EAAiBqa,EAC/DW,EAAel6B,KAAKse,MAAME,EAAgB,GAAKU,EAAiBsa,IAEhES,EAAczb,GAAiBU,EAAiB,GAAKqa,EACrDW,EAAehb,EAAiBsa,GAElC,IAAIG,EAAO35B,KAAK0e,KAAKsD,GAAe,GAAKkY,EAAc,GACnDviB,EAAK3X,KAAKsf,KAAK0C,GAAe,GAAKiY,EAAapd,EAAO1iB,OAAS,GAChEgZ,GAAU2S,EAAO9I,WAAW2c,IAAS,IAAM7T,EAAO9I,WAAW,IAAM,GASvE,SAASmd,IACPrU,EAAO3J,eACP2J,EAAO/C,iBACP+C,EAAOvC,sBACHuC,EAAOsU,MAAQtU,EAAO/hB,OAAOq2B,KAAKzd,SACpCmJ,EAAOsU,KAAKC,OAIhB,GAhBAlkB,EAAMna,OAAO8pB,EAAOpJ,QAAS,CAC3Bid,KAAMA,EACNhiB,GAAIA,EACJxE,OAAQA,EACR6J,WAAY8I,EAAO9I,aAYjB0c,IAAiBC,GAAQC,IAAejiB,IAAO0hB,EAKjD,OAJIvT,EAAO9I,aAAe6c,GAAsB1mB,IAAW4mB,GACzDjU,EAAOjJ,OAAOjc,IAAIo5B,EAAa7mB,EAAS,WAE1C2S,EAAO/C,iBAGT,GAAI+C,EAAO/hB,OAAO2Y,QAAQ4d,eAcxB,OAbAxU,EAAO/hB,OAAO2Y,QAAQ4d,eAAeziC,KAAKiuB,EAAQ,CAChD3S,OAAQA,EACRwmB,KAAMA,EACNhiB,GAAIA,EACJkF,OAAS,WAEP,IADA,IAAI0d,EAAiB,GACZ7iC,EAAIiiC,EAAMjiC,GAAKigB,EAAIjgB,GAAK,EAC/B6iC,EAAen2B,KAAKyY,EAAOnlB,IAE7B,OAAO6iC,EALD,UAQVJ,IAGF,IAAIK,EAAiB,GACjBC,EAAgB,GACpB,GAAIpB,EACFvT,EAAO1J,WAAWxG,KAAM,IAAOkQ,EAAO/hB,OAAiB,YAAI/E,cAE3D,IAAK,IAAItH,EAAIgiC,EAAchiC,GAAKkiC,EAAYliC,GAAK,GAC3CA,EAAIiiC,GAAQjiC,EAAIigB,IAClBmO,EAAO1J,WAAWxG,KAAM,IAAOkQ,EAAO/hB,OAAiB,WAAI,6BAAgCrM,EAAI,MAAQsH,SAI7G,IAAK,IAAIwhB,EAAM,EAAGA,EAAM3D,EAAO1iB,OAAQqmB,GAAO,EACxCA,GAAOmZ,GAAQnZ,GAAO7I,SACE,IAAfiiB,GAA8BP,EACvCoB,EAAcr2B,KAAKoc,IAEfA,EAAMoZ,GAAca,EAAcr2B,KAAKoc,GACvCA,EAAMkZ,GAAgBc,EAAep2B,KAAKoc,KAIpDia,EAAczgC,SAAQ,SAAUsa,GAC9BwR,EAAO1J,WAAWzH,OAAOmlB,EAAYjd,EAAOvI,GAAQA,OAEtDkmB,EAAerG,MAAK,SAAUl4B,EAAGC,GAAK,OAAOA,EAAID,KAAMjC,SAAQ,SAAUsa,GACvEwR,EAAO1J,WAAWpH,QAAQ8kB,EAAYjd,EAAOvI,GAAQA,OAEvDwR,EAAO1J,WAAWtP,SAAS,iBAAiBlM,IAAIo5B,EAAa7mB,EAAS,MACtEgnB,KAEFL,YAAa,SAAqBhb,EAAOxK,GACvC,IACIvQ,EADSvH,KACOuH,OAAO2Y,QAC3B,GAAI3Y,EAAO22B,OAFEl+B,KAEckgB,QAAQge,MAAMpmB,GACvC,OAHW9X,KAGGkgB,QAAQge,MAAMpmB,GAE9B,IAAIqmB,EAAW52B,EAAO+1B,YAClB56B,EAAE6E,EAAO+1B,YAAYjiC,KANZ2E,KAMyBsiB,EAAOxK,IACzCpV,EAAG,eAPM1C,KAOoBuH,OAAiB,WAAI,8BAAkCuQ,EAAQ,KAAQwK,EAAQ,UAGhH,OAFK6b,EAASzqB,KAAK,4BAA8ByqB,EAASzqB,KAAK,0BAA2BoE,GACtFvQ,EAAO22B,QATEl+B,KASckgB,QAAQge,MAAMpmB,GAASqmB,GAC3CA,GAETtR,YAAa,SAAqBxM,GAEhC,GAAsB,iBAAXA,GAAuB,WAAYA,EAC5C,IAAK,IAAInlB,EAAI,EAAGA,EAAImlB,EAAO1iB,OAAQzC,GAAK,EAClCmlB,EAAOnlB,IAHF8E,KAGekgB,QAAQG,OAAOzY,KAAKyY,EAAOnlB,SAH1C8E,KAMJkgB,QAAQG,OAAOzY,KAAKyY,GANhBrgB,KAQNkgB,QAAQlB,QAAO,IAExB8N,aAAc,SAAsBzM,GAClC,IACImF,EADSxlB,KACYwlB,YACrBqC,EAAiBrC,EAAc,EAC/B4Y,EAAoB,EAExB,GAAIj3B,MAAMhK,QAAQkjB,GAAS,CACzB,IAAK,IAAInlB,EAAI,EAAGA,EAAImlB,EAAO1iB,OAAQzC,GAAK,EAClCmlB,EAAOnlB,IAPF8E,KAOekgB,QAAQG,OAAOrL,QAAQqL,EAAOnlB,IAExD2sB,EAAiBrC,EAAcnF,EAAO1iB,OACtCygC,EAAoB/d,EAAO1iB,YAVhBqC,KAYJkgB,QAAQG,OAAOrL,QAAQqL,GAEhC,GAdargB,KAcFuH,OAAO2Y,QAAQge,MAAO,CAC/B,IAAIA,EAfOl+B,KAeQkgB,QAAQge,MACvBG,EAAW,GACfziC,OAAO2T,KAAK2uB,GAAO1gC,SAAQ,SAAU8gC,GACnC,IAAIC,EAAYL,EAAMI,GAClBE,EAAgBD,EAAU7qB,KAAK,2BAC/B8qB,GACFD,EAAU7qB,KAAK,0BAA2B+L,SAAS+e,EAAe,IAAM,GAE1EH,EAAS5e,SAAS6e,EAAa,IAAMF,GAAqBG,KAvBjDv+B,KAyBJkgB,QAAQge,MAAQG,EAzBZr+B,KA2BNkgB,QAAQlB,QAAO,GA3BThf,KA4BNkqB,QAAQrC,EAAgB,IAEjCuF,YAAa,SAAqBC,GAEhC,GAAI,MAAOA,EAAX,CACA,IAAI7H,EAFSxlB,KAEYwlB,YACzB,GAAIre,MAAMhK,QAAQkwB,GAChB,IAAK,IAAInyB,EAAImyB,EAAc1vB,OAAS,EAAGzC,GAAK,EAAGA,GAAK,EAJzC8E,KAKFkgB,QAAQG,OAAO1K,OAAO0X,EAAcnyB,GAAI,GALtC8E,KAMEuH,OAAO2Y,QAAQge,cANjBl+B,KAOOkgB,QAAQge,MAAM7Q,EAAcnyB,IAExCmyB,EAAcnyB,GAAKsqB,IAAeA,GAAe,GACrDA,EAAchiB,KAAK0e,IAAIsD,EAAa,QAV3BxlB,KAaJkgB,QAAQG,OAAO1K,OAAO0X,EAAe,GAbjCrtB,KAcAuH,OAAO2Y,QAAQge,cAdfl+B,KAeKkgB,QAAQge,MAAM7Q,GAE1BA,EAAgB7H,IAAeA,GAAe,GAClDA,EAAchiB,KAAK0e,IAAIsD,EAAa,GAlBzBxlB,KAoBNkgB,QAAQlB,QAAO,GApBThf,KAqBNkqB,QAAQ1E,EAAa,KAE9B+H,gBAAiB,WACFvtB,KACNkgB,QAAQG,OAAS,GADXrgB,KAEFuH,OAAO2Y,QAAQge,QAFbl+B,KAGJkgB,QAAQge,MAAQ,IAHZl+B,KAKNkgB,QAAQlB,QAAO,GALThf,KAMNkqB,QAAQ,EAAG,KAIlBuU,GAAY,CACdhjC,KAAM,UACN8L,OAAQ,CACN2Y,QAAS,CACPC,SAAS,EACTE,OAAQ,GACR6d,OAAO,EACPZ,YAAa,KACbQ,eAAgB,KAChBf,gBAAiB,EACjBC,eAAgB,IAGpBxgC,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnBkgB,QAAS,CACPlB,OAAQ4d,GAAQ5d,OAAOtiB,KAHdsD,MAIT6sB,YAAa+P,GAAQ/P,YAAYnwB,KAJxBsD,MAKT8sB,aAAc8P,GAAQ9P,aAAapwB,KAL1BsD,MAMTotB,YAAawP,GAAQxP,YAAY1wB,KANxBsD,MAOTutB,gBAAiBqP,GAAQrP,gBAAgB7wB,KAPhCsD,MAQTs9B,YAAaV,GAAQU,YAAY5gC,KARxBsD,MASTqgB,OATSrgB,KASMuH,OAAO2Y,QAAQG,OAC9B6d,MAAO,OAIbrzB,GAAI,CACF6zB,WAAY,WAEV,GADa1+B,KACDuH,OAAO2Y,QAAQC,QAA3B,CADangB,KAENi4B,WAAWrwB,KAFL5H,KAEmBuH,OAA6B,uBAAI,WACjE,IAAIo3B,EAAkB,CACpB5Z,qBAAqB,GAEvBpL,EAAMna,OANOQ,KAMOuH,OAAQo3B,GAC5BhlB,EAAMna,OAPOQ,KAOOg3B,eAAgB2H,GAPvB3+B,KASDuH,OAAO4iB,cATNnqB,KAUJkgB,QAAQlB,WAGnB4J,aAAc,WACC5oB,KACDuH,OAAO2Y,QAAQC,SADdngB,KAENkgB,QAAQlB,YAKjB4f,GAAW,CACbj4B,OAAQ,SAAgBJ,GACtB,IACIuZ,EADS9f,KACI+f,aACb7f,EAAIqG,EACJrG,EAAEsuB,gBAAiBtuB,EAAIA,EAAEsuB,eAC7B,IAAIqQ,EAAK3+B,EAAE4+B,SAAW5+B,EAAE6+B,SACpBC,EALSh/B,KAKWuH,OAAO03B,SAASD,WACpCE,EAAWF,GAAqB,KAAPH,EACzBM,EAAaH,GAAqB,KAAPH,EAC3BO,EAAqB,KAAPP,EACdQ,EAAsB,KAAPR,EACfS,EAAmB,KAAPT,EACZU,EAAqB,KAAPV,EAElB,IAba7+B,KAaDoqB,iBAbCpqB,KAa0Buf,gBAAkB8f,GAb5Cr/B,KAaqEwf,cAAgB+f,GAAgBJ,GAChH,OAAO,EAET,IAhBan/B,KAgBDqqB,iBAhBCrqB,KAgB0Buf,gBAAkB6f,GAhB5Cp/B,KAgBoEwf,cAAgB8f,GAAcJ,GAC7G,OAAO,EAET,KAAIh/B,EAAEs/B,UAAYt/B,EAAEu/B,QAAUv/B,EAAEw/B,SAAWx/B,EAAEy/B,SAGzChwB,EAAII,eAAiBJ,EAAII,cAAcE,WAA0D,UAA7CN,EAAII,cAAcE,SAAS1K,eAA0E,aAA7CoK,EAAII,cAAcE,SAAS1K,gBAA3I,CAGA,GAzBavF,KAyBFuH,OAAO03B,SAASW,iBAAmBV,GAAYC,GAAcC,GAAeC,GAAgBC,GAAaC,GAAc,CAChI,IAAIM,GAAS,EAEb,GA5BW7/B,KA4BAof,IAAInK,QAAS,IA5BbjV,KA4B2BuH,OAAiB,YAAI5J,OAAS,GAA6E,IA5BtIqC,KA4BqEof,IAAInK,QAAS,IA5BlFjV,KA4BgGuH,OAAuB,kBAAI5J,OACpI,OAEF,IAAImiC,EAAcxuB,EAAIumB,WAClBkI,EAAezuB,EAAIomB,YACnBsI,EAjCOhgC,KAiCeof,IAAIzI,SAC1BmJ,IAAOkgB,EAAa3oB,MAlCbrX,KAkC4Bof,IAAI,GAAGlI,YAM9C,IALA,IAAI+oB,EAAc,CAChB,CAACD,EAAa3oB,KAAM2oB,EAAa5oB,KACjC,CAAC4oB,EAAa3oB,KArCLrX,KAqCmBkf,MAAO8gB,EAAa5oB,KAChD,CAAC4oB,EAAa3oB,KAAM2oB,EAAa5oB,IAtCxBpX,KAsCqCmf,QAC9C,CAAC6gB,EAAa3oB,KAvCLrX,KAuCmBkf,MAAO8gB,EAAa5oB,IAvCvCpX,KAuCoDmf,SACtDjkB,EAAI,EAAGA,EAAI+kC,EAAYtiC,OAAQzC,GAAK,EAAG,CAC9C,IAAIq8B,EAAQ0I,EAAY/kC,GAEtBq8B,EAAM,IAAM,GAAKA,EAAM,IAAMuI,GAC1BvI,EAAM,IAAM,GAAKA,EAAM,IAAMwI,IAEhCF,GAAS,GAGb,IAAKA,EAAU,OAjDJ7/B,KAmDFuf,iBACL2f,GAAYC,GAAcC,GAAeC,KACvCn/B,EAAEowB,eAAkBpwB,EAAEowB,iBACnBpwB,EAAEggC,aAAc,KAEnBf,GAAcE,KAAkBvf,IAAUof,GAAYE,IAAgBtf,IAxDjE9f,KAwDgF2qB,cACrFuU,GAAYE,KAAiBtf,IAAUqf,GAAcE,IAAiBvf,IAzDjE9f,KAyDgF+qB,eAEvFmU,GAAYC,GAAcG,GAAaC,KACrCr/B,EAAEowB,eAAkBpwB,EAAEowB,iBACnBpwB,EAAEggC,aAAc,IAErBf,GAAcI,IA/DPv/B,KA+D6B2qB,aACpCuU,GAAYI,IAhELt/B,KAgEyB+qB,aAhEzB/qB,KAkENmL,KAAK,WAAY0zB,KAG1BsB,OAAQ,WACOngC,KACFi/B,SAAS9e,UACpBzd,EAAEiN,GAAK9E,GAAG,UAFG7K,KAEei/B,SAASt4B,QAFxB3G,KAGNi/B,SAAS9e,SAAU,IAE5BigB,QAAS,WACMpgC,KACDi/B,SAAS9e,UACrBzd,EAAEiN,GAAK3E,IAAI,UAFEhL,KAEgBi/B,SAASt4B,QAFzB3G,KAGNi/B,SAAS9e,SAAU,KAI1BkgB,GAAa,CACf5kC,KAAM,WACN8L,OAAQ,CACN03B,SAAU,CACR9e,SAAS,EACTyf,gBAAgB,EAChBZ,YAAY,IAGhBxiC,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnBi/B,SAAU,CACR9e,SAAS,EACTggB,OAAQvB,GAASuB,OAAOzjC,KAJfsD,MAKTogC,QAASxB,GAASwB,QAAQ1jC,KALjBsD,MAMT2G,OAAQi4B,GAASj4B,OAAOjK,KANfsD,UAUf6K,GAAI,CACFlK,KAAM,WACSX,KACFuH,OAAO03B,SAAS9e,SADdngB,KAEJi/B,SAASkB,UAGpB1F,QAAS,WACMz6B,KACFi/B,SAAS9e,SADPngB,KAEJi/B,SAASmB,aA6BpBE,GAAa,CACfC,eAAgB5mB,EAAMG,MACtB0mB,yBAAqBzyB,EACrB0yB,kBAAmB,GACnBl6B,MAAO,WACL,OAAI+K,EAAIvS,UAAUwS,UAAUzJ,QAAQ,YAAc,EAAY,iBA5BlE,WACE,IACI44B,EADY,YACe/wB,EAE/B,IAAK+wB,EAAa,CAChB,IAAI98B,EAAU+L,EAAIU,cAAc,OAChCzM,EAAQ6M,aALM,UAKkB,WAChCiwB,EAA4C,mBAAvB98B,EAAiB,QAcxC,OAXK88B,GACA/wB,EAAIgxB,gBACJhxB,EAAIgxB,eAAeC,aAGuB,IAA1CjxB,EAAIgxB,eAAeC,WAAW,GAAI,MAGrCF,EAAc/wB,EAAIgxB,eAAeC,WAAW,eAAgB,QAGvDF,EAQEG,GAAqB,QAAU,cAExC7V,UAAW,SAAmB9qB,GAE5B,IAII4gC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EAuDT,MApDI,WAAY/gC,IACd6gC,EAAK7gC,EAAE2V,QAEL,eAAgB3V,IAClB6gC,GAAM7gC,EAAEghC,WAAa,KAEnB,gBAAiBhhC,IACnB6gC,GAAM7gC,EAAEihC,YAAc,KAEpB,gBAAiBjhC,IACnB4gC,GAAM5gC,EAAEkhC,YAAc,KAIpB,SAAUlhC,GAAKA,EAAE8Z,OAAS9Z,EAAEmhC,kBAC9BP,EAAKC,EACLA,EAAK,GAGPC,EA7BiB,GA6BZF,EACLG,EA9BiB,GA8BZF,EAED,WAAY7gC,IACd+gC,EAAK/gC,EAAEohC,QAEL,WAAYphC,IACd8gC,EAAK9gC,EAAEqhC,QAGLrhC,EAAEs/B,WAAawB,IACjBA,EAAKC,EACLA,EAAK,IAGFD,GAAMC,IAAO/gC,EAAEshC,YACE,IAAhBthC,EAAEshC,WACJR,GA7Cc,GA8CdC,GA9Cc,KAgDdD,GA/Cc,IAgDdC,GAhDc,MAqDdD,IAAOF,IACTA,EAAME,EAAK,GAAM,EAAI,GAEnBC,IAAOF,IACTA,EAAME,EAAK,GAAM,EAAI,GAGhB,CACLQ,MAAOX,EACPY,MAAOX,EACPY,OAAQX,EACRY,OAAQX,IAGZY,iBAAkB,WACH7hC,KACN8hC,cAAe,GAExBC,iBAAkB,WACH/hC,KACN8hC,cAAe,GAExBn7B,OAAQ,SAAgBJ,GACtB,IAAIrG,EAAIqG,EACJ+iB,EAAStpB,KACTuH,EAAS+hB,EAAO/hB,OAAOy6B,WAEvB1Y,EAAO/hB,OAAOqZ,SAChB1gB,EAAEowB,iBAGJ,IAAI1pB,EAAS0iB,EAAOlK,IAIpB,GAH8C,cAA1CkK,EAAO/hB,OAAOy6B,WAAWC,eAC3Br7B,EAASlE,EAAE4mB,EAAO/hB,OAAOy6B,WAAWC,gBAEjC3Y,EAAOwY,eAAiBl7B,EAAO,GAAG2M,SAASrT,EAAE0G,UAAYW,EAAO26B,eAAkB,OAAO,EAE1FhiC,EAAEsuB,gBAAiBtuB,EAAIA,EAAEsuB,eAC7B,IAAI2T,EAAQ,EACRC,EAAY9Y,EAAOvJ,cAAgB,EAAI,EAEvCvX,EAAO83B,GAAWtV,UAAU9qB,GAEhC,GAAIqH,EAAO86B,YACT,GAAI/Y,EAAO/J,eAAgB,CACzB,KAAI/b,KAAKogB,IAAIpb,EAAKm5B,QAAUn+B,KAAKogB,IAAIpb,EAAKo5B,SACnC,OAAO,EADuCO,GAAS35B,EAAKm5B,OAASS,MAEvE,MAAI5+B,KAAKogB,IAAIpb,EAAKo5B,QAAUp+B,KAAKogB,IAAIpb,EAAKm5B,SAC1C,OAAO,EAD8CQ,GAAS35B,EAAKo5B,YAG1EO,EAAQ3+B,KAAKogB,IAAIpb,EAAKm5B,QAAUn+B,KAAKogB,IAAIpb,EAAKo5B,SAAWp5B,EAAKm5B,OAASS,GAAa55B,EAAKo5B,OAG3F,GAAc,IAAVO,EAAe,OAAO,EAI1B,GAFI56B,EAAO+6B,SAAUH,GAASA,GAEzB7Y,EAAO/hB,OAAO2qB,SAoCZ,CAOL,IAAIqQ,EAAa,CAAElQ,KAAM1Y,EAAMG,MAAOqoB,MAAO3+B,KAAKogB,IAAIue,GAAQlY,UAAWzmB,KAAKg/B,KAAKL,IAE/E3B,EADMlX,EAAO0Y,WACaxB,oBAC1BiC,EAAoBjC,GACnB+B,EAAWlQ,KAAOmO,EAAoBnO,KAAO,KAC7CkQ,EAAWJ,OAAS3B,EAAoB2B,OACxCI,EAAWtY,YAAcuW,EAAoBvW,UAClD,IAAKwY,EAAmB,CACtBnZ,EAAO0Y,WAAWxB,yBAAsBzyB,EAEpCub,EAAO/hB,OAAO4f,MAChBmC,EAAOuB,UAET,IAAIuH,EAAW9I,EAAOvP,eAAkBooB,EAAQ56B,EAAOm7B,YACnD7b,EAAeyC,EAAO3C,YACtBG,EAASwC,EAAO1C,MAepB,GAbIwL,GAAY9I,EAAOpD,iBAAkBkM,EAAW9I,EAAOpD,gBACvDkM,GAAY9I,EAAO5C,iBAAkB0L,EAAW9I,EAAO5C,gBAE3D4C,EAAOhE,cAAc,GACrBgE,EAAOV,aAAawJ,GACpB9I,EAAO/C,iBACP+C,EAAO1B,oBACP0B,EAAOvC,wBAEDF,GAAgByC,EAAO3C,cAAkBG,GAAUwC,EAAO1C,QAC9D0C,EAAOvC,sBAGLuC,EAAO/hB,OAAOssB,eAAgB,CAYhCrqB,aAAa8f,EAAO0Y,WAAWt5B,SAC/B4gB,EAAO0Y,WAAWt5B,aAAUqF,EAC5B,IAAI40B,EAAsBrZ,EAAO0Y,WAAWvB,kBACxCkC,EAAoBhlC,QAAU,IAChCglC,EAAoBC,QAEtB,IAAIC,EAAcF,EAAoBhlC,OAASglC,EAAoBA,EAAoBhlC,OAAS,QAAKoQ,EACjG+0B,EAAaH,EAAoB,GAErC,GADAA,EAAoB/6B,KAAK26B,GACrBM,IAAgBN,EAAWJ,MAAQU,EAAYV,OAASI,EAAWtY,YAAc4Y,EAAY5Y,WAE/F0Y,EAAoBhtB,OAAO,QACtB,GAAIgtB,EAAoBhlC,QAAU,IAClC4kC,EAAWlQ,KAAOyQ,EAAWzQ,KAAO,KACpCyQ,EAAWX,MAAQI,EAAWJ,OAAS,GACvCI,EAAWJ,OAAS,EACzB,CAOA,IAAIY,EAAkBZ,EAAQ,EAAI,GAAM,GACxC7Y,EAAO0Y,WAAWxB,oBAAsB+B,EACxCI,EAAoBhtB,OAAO,GAC3B2T,EAAO0Y,WAAWt5B,QAAUiR,EAAMpP,UAAS,WACzC+e,EAAOgC,eAAehC,EAAO/hB,OAAO4d,OAAO,OAAMpX,EAAWg1B,KAC3D,GAEAzZ,EAAO0Y,WAAWt5B,UAIrB4gB,EAAO0Y,WAAWt5B,QAAUiR,EAAMpP,UAAS,WAEzC+e,EAAO0Y,WAAWxB,oBAAsB+B,EACxCI,EAAoBhtB,OAAO,GAC3B2T,EAAOgC,eAAehC,EAAO/hB,OAAO4d,OAAO,OAAMpX,EAH3B,MAIrB,MAUP,GALK00B,GAAqBnZ,EAAOne,KAAK,SAAUjL,GAG5CopB,EAAO/hB,OAAOutB,UAAYxL,EAAO/hB,OAAOy7B,8BAAgC1Z,EAAOwL,SAASmO,OAExF7Q,IAAa9I,EAAOpD,gBAAkBkM,IAAa9I,EAAO5C,eAAkB,OAAO,OAtI9D,CAE3B,IAAIwc,EAAW,CACb7Q,KAAM1Y,EAAMG,MACZqoB,MAAO3+B,KAAKogB,IAAIue,GAChBlY,UAAWzmB,KAAKg/B,KAAKL,GACrBgB,IAAK58B,GAIHk6B,EAAoBnX,EAAO0Y,WAAWvB,kBACtCA,EAAkB9iC,QAAU,GAC9B8iC,EAAkBmC,QAEpB,IAAIQ,EAAY3C,EAAkB9iC,OAAS8iC,EAAkBA,EAAkB9iC,OAAS,QAAKoQ,EAmB7F,GAlBA0yB,EAAkB74B,KAAKs7B,GAQnBE,GACEF,EAASjZ,YAAcmZ,EAAUnZ,WAAaiZ,EAASf,MAAQiB,EAAUjB,OAASe,EAAS7Q,KAAO+Q,EAAU/Q,KAAO,MACrH/I,EAAO0Y,WAAWqB,cAAcH,GAGlC5Z,EAAO0Y,WAAWqB,cAAcH,GAK9B5Z,EAAO0Y,WAAWsB,cAAcJ,GAClC,OAAO,EA0GX,OAFIhjC,EAAEowB,eAAkBpwB,EAAEowB,iBACnBpwB,EAAEggC,aAAc,GAChB,GAETmD,cAAe,SAAuBH,GAKpC,OAAIA,EAASf,OAAS,GAAKxoB,EAAMG,MAJpB9Z,KAImCgiC,WAAWzB,eAAiB,KAgBxE2C,EAASjZ,UAAY,EApBZjqB,KAqBE4mB,QArBF5mB,KAqBkBuH,OAAO4f,MArBzBnnB,KAqB0CupB,YArB1CvpB,KAsBF2qB,YAtBE3qB,KAuBFmL,KAAK,SAAU+3B,EAASC,MAvBtBnjC,KAyBO2mB,cAzBP3mB,KAyB6BuH,OAAO4f,MAzBpCnnB,KAyBqDupB,YAzBrDvpB,KA0BJ+qB,YA1BI/qB,KA2BJmL,KAAK,SAAU+3B,EAASC,MA3BpBnjC,KA8BNgiC,WAAWzB,gBAAiB,IAAKjvB,EAAIrQ,MAAQsiC,WAE7C,IAETD,cAAe,SAAuBJ,GACpC,IACI37B,EADSvH,KACOuH,OAAOy6B,WAC3B,GAAIkB,EAASjZ,UAAY,GACvB,GAHWjqB,KAGA4mB,QAHA5mB,KAGiBuH,OAAO4f,MAAQ5f,EAAO26B,eAEhD,OAAO,OAEJ,GAPMliC,KAOK2mB,cAPL3mB,KAO4BuH,OAAO4f,MAAQ5f,EAAO26B,eAE7D,OAAO,EAET,OAAO,GAET/B,OAAQ,WACN,IACI55B,EAAQ+5B,GAAW/5B,QACvB,GAFavG,KAEFuH,OAAOqZ,QAEhB,OAJW5gB,KAGJ8oB,UAAUhZ,oBAAoBvJ,EAH1BvG,KAGwCgiC,WAAWr7B,SACvD,EAET,IAAKJ,EAAS,OAAO,EACrB,GAPavG,KAOFgiC,WAAW7hB,QAAW,OAAO,EACxC,IAAIvZ,EARS5G,KAQOof,IAQpB,MAP8C,cATjCpf,KASFuH,OAAOy6B,WAAWC,eAC3Br7B,EAASlE,EAVE1C,KAUOuH,OAAOy6B,WAAWC,eAEtCr7B,EAAOiE,GAAG,aAZG7K,KAYkBgiC,WAAWH,kBAC1Cj7B,EAAOiE,GAAG,aAbG7K,KAakBgiC,WAAWD,kBAC1Cn7B,EAAOiE,GAAGtE,EAdGvG,KAcWgiC,WAAWr7B,QAdtB3G,KAeNgiC,WAAW7hB,SAAU,GACrB,GAETigB,QAAS,WACP,IACI75B,EAAQ+5B,GAAW/5B,QACvB,GAFavG,KAEFuH,OAAOqZ,QAEhB,OAJW5gB,KAGJ8oB,UAAU5a,iBAAiB3H,EAHvBvG,KAGqCgiC,WAAWr7B,SACpD,EAET,IAAKJ,EAAS,OAAO,EACrB,IAPavG,KAODgiC,WAAW7hB,QAAW,OAAO,EACzC,IAAIvZ,EARS5G,KAQOof,IAMpB,MAL8C,cATjCpf,KASFuH,OAAOy6B,WAAWC,eAC3Br7B,EAASlE,EAVE1C,KAUOuH,OAAOy6B,WAAWC,eAEtCr7B,EAAOoE,IAAIzE,EAZEvG,KAYYgiC,WAAWr7B,QAZvB3G,KAaNgiC,WAAW7hB,SAAU,GACrB,IAoDPqjB,GAAa,CACfxkB,OAAQ,WAEN,IACIzX,EADSvH,KACOuH,OAAOitB,WAE3B,IAHax0B,KAGFuH,OAAO4f,KAAlB,CACA,IAAIyQ,EAJS53B,KAIIw0B,WACbiP,EAAU7L,EAAI6L,QACdC,EAAU9L,EAAI8L,QAEdA,GAAWA,EAAQ/lC,OAAS,IARnBqC,KASA2mB,YACT+c,EAAQ3wB,SAASxL,EAAOo8B,eAExBD,EAAQrwB,YAAY9L,EAAOo8B,eAE7BD,EAdW1jC,KAcIuH,OAAOsd,eAdX7kB,KAcmCysB,SAAW,WAAa,eAAellB,EAAOq8B,YAE1FH,GAAWA,EAAQ9lC,OAAS,IAhBnBqC,KAiBA4mB,MACT6c,EAAQ1wB,SAASxL,EAAOo8B,eAExBF,EAAQpwB,YAAY9L,EAAOo8B,eAE7BF,EAtBWzjC,KAsBIuH,OAAOsd,eAtBX7kB,KAsBmCysB,SAAW,WAAa,eAAellB,EAAOq8B,cAGhGC,YAAa,SAAqB3jC,GAEhCA,EAAEowB,iBADWtwB,KAEF2mB,cAFE3mB,KAEqBuH,OAAO4f,MAF5BnnB,KAGN+qB,aAET+Y,YAAa,SAAqB5jC,GAEhCA,EAAEowB,iBADWtwB,KAEF4mB,QAFE5mB,KAEeuH,OAAO4f,MAFtBnnB,KAGN2qB,aAEThqB,KAAM,WACJ,IAII8iC,EACAC,EAJAn8B,EADSvH,KACOuH,OAAOitB,YACrBjtB,EAAOktB,QAAUltB,EAAOmtB,UAI1BntB,EAAOktB,SACTgP,EAAU/gC,EAAE6E,EAAOktB,QAPRz0B,KASFuH,OAAOkuB,mBACc,iBAAlBluB,EAAOktB,QACdgP,EAAQ9lC,OAAS,GACyB,IAZpCqC,KAYCof,IAAIhG,KAAK7R,EAAOktB,QAAQ92B,SAElC8lC,EAdSzjC,KAcQof,IAAIhG,KAAK7R,EAAOktB,UAGjCltB,EAAOmtB,SACTgP,EAAUhhC,EAAE6E,EAAOmtB,QAlBR10B,KAoBFuH,OAAOkuB,mBACc,iBAAlBluB,EAAOmtB,QACdgP,EAAQ/lC,OAAS,GACyB,IAvBpCqC,KAuBCof,IAAIhG,KAAK7R,EAAOmtB,QAAQ/2B,SAElC+lC,EAzBS1jC,KAyBQof,IAAIhG,KAAK7R,EAAOmtB,UAIjC+O,GAAWA,EAAQ9lC,OAAS,GAC9B8lC,EAAQ54B,GAAG,QA9BA7K,KA8BgBw0B,WAAWsP,aAEpCJ,GAAWA,EAAQ/lC,OAAS,GAC9B+lC,EAAQ74B,GAAG,QAjCA7K,KAiCgBw0B,WAAWqP,aAGxClqB,EAAMna,OApCOQ,KAoCOw0B,WAAY,CAC9BiP,QAASA,EACThP,OAAQgP,GAAWA,EAAQ,GAC3BC,QAASA,EACThP,OAAQgP,GAAWA,EAAQ,OAG/BjJ,QAAS,WACP,IACI7C,EADS53B,KACIw0B,WACbiP,EAAU7L,EAAI6L,QACdC,EAAU9L,EAAI8L,QACdD,GAAWA,EAAQ9lC,SACrB8lC,EAAQz4B,IAAI,QALDhL,KAKiBw0B,WAAWsP,aACvCL,EAAQpwB,YANGrT,KAMgBuH,OAAOitB,WAAWmP,gBAE3CD,GAAWA,EAAQ/lC,SACrB+lC,EAAQ14B,IAAI,QATDhL,KASiBw0B,WAAWqP,aACvCH,EAAQrwB,YAVGrT,KAUgBuH,OAAOitB,WAAWmP,kBAgF/CI,GAAa,CACf/kB,OAAQ,WAEN,IACIc,EADS9f,KACI8f,IACbvY,EAFSvH,KAEOuH,OAAOy8B,WAC3B,GAAKz8B,EAAOyM,IAHChU,KAGagkC,WAAWhwB,IAHxBhU,KAGsCgkC,WAAW5kB,KAAwC,IAHzFpf,KAG+DgkC,WAAW5kB,IAAIzhB,OAA3F,CACA,IAGIsmC,EAHA3jB,EAJStgB,KAIakgB,SAJblgB,KAI+BuH,OAAO2Y,QAAQC,QAJ9CngB,KAI+DkgB,QAAQG,OAAO1iB,OAJ9EqC,KAI8FqgB,OAAO1iB,OAC9GyhB,EALSpf,KAKIgkC,WAAW5kB,IAGxB8kB,EARSlkC,KAQMuH,OAAO4f,KAAO3jB,KAAKue,MAAMzB,EAAsC,EARrEtgB,KAQsD0qB,cARtD1qB,KAQkFuH,OAAOmb,gBARzF1iB,KAQkHugB,SAAS5iB,OAcxI,GAtBaqC,KASFuH,OAAO4f,OAChB8c,EAAUzgC,KAAKue,MAVJ/hB,KAUiBwlB,YAVjBxlB,KAUsC0qB,cAVtC1qB,KAU6DuH,OAAOmb,iBACjEpC,EAAe,EAA2B,EAX7CtgB,KAW8B0qB,eACvCuZ,GAAY3jB,EAAsC,EAZzCtgB,KAY0B0qB,cAEjCuZ,EAAUC,EAAQ,IAAKD,GAAWC,GAClCD,EAAU,GAAsC,YAfzCjkC,KAeeuH,OAAO48B,iBAAgCF,EAAUC,EAAQD,IAEnFA,OADqC,IAhB1BjkC,KAgBY4kB,UAhBZ5kB,KAiBM4kB,UAjBN5kB,KAmBMwlB,aAAe,EAGd,YAAhBje,EAAOqnB,MAtBE5uB,KAsB2BgkC,WAAWI,SAtBtCpkC,KAsBwDgkC,WAAWI,QAAQzmC,OAAS,EAAG,CAClG,IACI0mC,EACAC,EACAC,EAHAH,EAvBOpkC,KAuBUgkC,WAAWI,QAoBhC,GAhBI78B,EAAOi9B,iBA3BAxkC,KA4BFgkC,WAAWS,WAAaL,EAAQnsB,GAAG,GA5BjCjY,KA4B2Cuf,eAAiB,aAAe,gBAAe,GACnGH,EAAIhb,IA7BKpE,KA6BMuf,eAAiB,QAAU,SA7BjCvf,KA6BoDgkC,WAAWS,YAAcl9B,EAAOm9B,mBAAqB,GAAM,MACpHn9B,EAAOm9B,mBAAqB,QAA8B32B,IA9BrD/N,KA8BmC8nB,gBA9BnC9nB,KA+BAgkC,WAAWW,oBAAuBV,EA/BlCjkC,KA+BmD8nB,cA/BnD9nB,KAgCIgkC,WAAWW,mBAAsBp9B,EAAOm9B,mBAAqB,EAhCjE1kC,KAiCEgkC,WAAWW,mBAAqBp9B,EAAOm9B,mBAAqB,EAjC9D1kC,KAkCWgkC,WAAWW,mBAAqB,IAlC3C3kC,KAmCEgkC,WAAWW,mBAAqB,IAG3CN,EAAaJ,EAtCJjkC,KAsCqBgkC,WAAWW,mBAEzCJ,IADAD,EAAYD,GAAc7gC,KAAKsf,IAAIshB,EAAQzmC,OAAQ4J,EAAOm9B,oBAAsB,IACxDL,GAAc,GAExCD,EAAQ/wB,YAAc9L,EAAwB,kBAAI,IAAOA,EAAwB,kBAAI,SAAYA,EAAwB,kBAAI,cAAiBA,EAAwB,kBAAI,SAAYA,EAAwB,kBAAI,cAAiBA,EAAwB,kBAAI,SAC3P6X,EAAIzhB,OAAS,EACfymC,EAAQ7sB,MAAK,SAAUO,EAAO8sB,GAC5B,IAAIC,EAAUniC,EAAEkiC,GACZE,EAAcD,EAAQ/sB,QACtBgtB,IAAgBb,GAClBY,EAAQ9xB,SAASxL,EAAOw9B,mBAEtBx9B,EAAOi9B,iBACLM,GAAeT,GAAcS,GAAeR,GAC9CO,EAAQ9xB,SAAWxL,EAAwB,kBAAI,SAE7Cu9B,IAAgBT,GAClBQ,EACG/rB,OACA/F,SAAWxL,EAAwB,kBAAI,SACvCuR,OACA/F,SAAWxL,EAAwB,kBAAI,cAExCu9B,IAAgBR,GAClBO,EACGnsB,OACA3F,SAAWxL,EAAwB,kBAAI,SACvCmR,OACA3F,SAAWxL,EAAwB,kBAAI,sBAI3C,CACL,IAAIs9B,EAAUT,EAAQnsB,GAAGgsB,GACrBa,EAAcD,EAAQ/sB,QAE1B,GADA+sB,EAAQ9xB,SAASxL,EAAOw9B,mBACpBx9B,EAAOi9B,eAAgB,CAGzB,IAFA,IAAIQ,EAAwBZ,EAAQnsB,GAAGosB,GACnCY,EAAuBb,EAAQnsB,GAAGqsB,GAC7BppC,EAAImpC,EAAYnpC,GAAKopC,EAAWppC,GAAK,EAC5CkpC,EAAQnsB,GAAG/c,GAAG6X,SAAWxL,EAAwB,kBAAI,SAEvD,GAhFOvH,KAgFIuH,OAAO4f,KAChB,GAAI2d,GAAeV,EAAQzmC,OAAS4J,EAAOm9B,mBAAoB,CAC7D,IAAK,IAAI1gB,EAAMzc,EAAOm9B,mBAAoB1gB,GAAO,EAAGA,GAAO,EACzDogB,EAAQnsB,GAAGmsB,EAAQzmC,OAASqmB,GAAKjR,SAAWxL,EAAwB,kBAAI,SAE1E68B,EAAQnsB,GAAGmsB,EAAQzmC,OAAS4J,EAAOm9B,mBAAqB,GAAG3xB,SAAWxL,EAAwB,kBAAI,cAElGy9B,EACGlsB,OACA/F,SAAWxL,EAAwB,kBAAI,SACvCuR,OACA/F,SAAWxL,EAAwB,kBAAI,cAC1C09B,EACGvsB,OACA3F,SAAWxL,EAAwB,kBAAI,SACvCmR,OACA3F,SAAWxL,EAAwB,kBAAI,mBAG5Cy9B,EACGlsB,OACA/F,SAAWxL,EAAwB,kBAAI,SACvCuR,OACA/F,SAAWxL,EAAwB,kBAAI,cAC1C09B,EACGvsB,OACA3F,SAAWxL,EAAwB,kBAAI,SACvCmR,OACA3F,SAAWxL,EAAwB,kBAAI,eAIhD,GAAIA,EAAOi9B,eAAgB,CACzB,IAAIU,EAAuB1hC,KAAKsf,IAAIshB,EAAQzmC,OAAQ4J,EAAOm9B,mBAAqB,GAC5ES,GAlHKnlC,KAkHqBgkC,WAAWS,WAAaS,EAlH7CllC,KAkH6EgkC,WAAqB,YAAK,EAAMO,EAlH7GvkC,KAkH+HgkC,WAAWS,WAC/IjH,EAAa1d,EAAM,QAAU,OACjCskB,EAAQhgC,IApHCpE,KAoHUuf,eAAiBie,EAAa,MAAQ2H,EAAgB,OAO7E,GAJoB,aAAhB59B,EAAOqnB,OACTxP,EAAIhG,KAAM,IAAO7R,EAAmB,cAAIiQ,KAAKjQ,EAAO69B,sBAAsBnB,EAAU,IACpF7kB,EAAIhG,KAAM,IAAO7R,EAAiB,YAAIiQ,KAAKjQ,EAAO89B,oBAAoBnB,KAEpD,gBAAhB38B,EAAOqnB,KAAwB,CACjC,IAAI0W,EAEFA,EADE/9B,EAAOg+B,oBA7HAvlC,KA8HqBuf,eAAiB,WAAa,aA9HnDvf,KAgIqBuf,eAAiB,aAAe,WAEhE,IAAIimB,GAASvB,EAAU,GAAKC,EACxBuB,EAAS,EACTC,EAAS,EACgB,eAAzBJ,EACFG,EAASD,EAETE,EAASF,EAEXpmB,EAAIhG,KAAM,IAAO7R,EAA2B,sBAAI4M,UAAW,6BAA+BsxB,EAAS,YAAcC,EAAS,KAAMpxB,WA1IrHtU,KA0IuIuH,OAAO4d,OAEvI,WAAhB5d,EAAOqnB,MAAqBrnB,EAAOo+B,cACrCvmB,EAAI5M,KAAKjL,EAAOo+B,aA7IL3lC,KA6I0BikC,EAAU,EAAGC,IA7IvClkC,KA8IJmL,KAAK,mBA9IDnL,KA8I6Bof,EAAI,KA9IjCpf,KAgJJmL,KAAK,mBAhJDnL,KAgJ6Bof,EAAI,IAE9CA,EAlJapf,KAkJFuH,OAAOsd,eAlJL7kB,KAkJ6BysB,SAAW,WAAa,eAAellB,EAAOq8B,aAE1FgC,OAAQ,WAEN,IACIr+B,EADSvH,KACOuH,OAAOy8B,WAC3B,GAAKz8B,EAAOyM,IAFChU,KAEagkC,WAAWhwB,IAFxBhU,KAEsCgkC,WAAW5kB,KAAwC,IAFzFpf,KAE+DgkC,WAAW5kB,IAAIzhB,OAA3F,CACA,IAAI2iB,EAHStgB,KAGakgB,SAHblgB,KAG+BuH,OAAO2Y,QAAQC,QAH9CngB,KAG+DkgB,QAAQG,OAAO1iB,OAH9EqC,KAG8FqgB,OAAO1iB,OAE9GyhB,EALSpf,KAKIgkC,WAAW5kB,IACxBymB,EAAiB,GACrB,GAAoB,YAAhBt+B,EAAOqnB,KAAoB,CAE7B,IADA,IAAIkX,EARO9lC,KAQkBuH,OAAO4f,KAAO3jB,KAAKue,MAAMzB,EAAsC,EARjFtgB,KAQkE0qB,cARlE1qB,KAQ8FuH,OAAOmb,gBARrG1iB,KAQ8HugB,SAAS5iB,OACzIzC,EAAI,EAAGA,EAAI4qC,EAAiB5qC,GAAK,EACpCqM,EAAOw+B,aACTF,GAAkBt+B,EAAOw+B,aAAa1qC,KAX/B2E,KAW4C9E,EAAGqM,EAAOy+B,aAE7DH,GAAkB,IAAOt+B,EAAoB,cAAI,WAAeA,EAAkB,YAAI,OAAWA,EAAoB,cAAI,IAG7H6X,EAAI5M,KAAKqzB,GAhBE7lC,KAiBJgkC,WAAWI,QAAUhlB,EAAIhG,KAAM,IAAO7R,EAAkB,aAE7C,aAAhBA,EAAOqnB,OAEPiX,EADEt+B,EAAO0+B,eACQ1+B,EAAO0+B,eAAe5qC,KArB9B2E,KAqB2CuH,EAAO2+B,aAAc3+B,EAAO4+B,YAE/D,gBAAoB5+B,EAAmB,aAAvC,4BAEKA,EAAiB,WAAI,YAE7C6X,EAAI5M,KAAKqzB,IAES,gBAAhBt+B,EAAOqnB,OAEPiX,EADEt+B,EAAO6+B,kBACQ7+B,EAAO6+B,kBAAkB/qC,KA/BjC2E,KA+B8CuH,EAAO8+B,sBAE7C,gBAAoB9+B,EAA2B,qBAAI,YAEtE6X,EAAI5M,KAAKqzB,IAES,WAAhBt+B,EAAOqnB,MArCE5uB,KAsCJmL,KAAK,mBAtCDnL,KAsC4BgkC,WAAW5kB,IAAI,MAG1Dze,KAAM,WACJ,IAAI2oB,EAAStpB,KACTuH,EAAS+hB,EAAO/hB,OAAOy8B,WAC3B,GAAKz8B,EAAOyM,GAAZ,CAEA,IAAIoL,EAAM1c,EAAE6E,EAAOyM,IACA,IAAfoL,EAAIzhB,SAGN2rB,EAAO/hB,OAAOkuB,mBACU,iBAAdluB,EAAOyM,IACdoL,EAAIzhB,OAAS,IAEhByhB,EAAMkK,EAAOlK,IAAIhG,KAAK7R,EAAOyM,KAGX,YAAhBzM,EAAOqnB,MAAsBrnB,EAAO++B,WACtClnB,EAAIrM,SAASxL,EAAOg/B,gBAGtBnnB,EAAIrM,SAASxL,EAAOi/B,cAAgBj/B,EAAOqnB,MAEvB,YAAhBrnB,EAAOqnB,MAAsBrnB,EAAOi9B,iBACtCplB,EAAIrM,SAAU,GAAMxL,EAAoB,cAAKA,EAAW,KAAI,YAC5D+hB,EAAO0a,WAAWW,mBAAqB,EACnCp9B,EAAOm9B,mBAAqB,IAC9Bn9B,EAAOm9B,mBAAqB,IAGZ,gBAAhBn9B,EAAOqnB,MAA0BrnB,EAAOg+B,qBAC1CnmB,EAAIrM,SAASxL,EAAOk/B,0BAGlBl/B,EAAO++B,WACTlnB,EAAIvU,GAAG,QAAU,IAAOtD,EAAkB,aAAI,SAAiBrH,GAC7DA,EAAEowB,iBACF,IAAIxY,EAAQpV,EAAE1C,MAAM8X,QAAUwR,EAAO/hB,OAAOmb,eACxC4G,EAAO/hB,OAAO4f,OAAQrP,GAASwR,EAAOoB,cAC1CpB,EAAOY,QAAQpS,MAInB6B,EAAMna,OAAO8pB,EAAO0a,WAAY,CAC9B5kB,IAAKA,EACLpL,GAAIoL,EAAI,QAGZqb,QAAS,WACP,IACIlzB,EADSvH,KACOuH,OAAOy8B,WAC3B,GAAKz8B,EAAOyM,IAFChU,KAEagkC,WAAWhwB,IAFxBhU,KAEsCgkC,WAAW5kB,KAAwC,IAFzFpf,KAE+DgkC,WAAW5kB,IAAIzhB,OAA3F,CACA,IAAIyhB,EAHSpf,KAGIgkC,WAAW5kB,IAE5BA,EAAI/L,YAAY9L,EAAOm/B,aACvBtnB,EAAI/L,YAAY9L,EAAOi/B,cAAgBj/B,EAAOqnB,MANjC5uB,KAOFgkC,WAAWI,SAPTpkC,KAO2BgkC,WAAWI,QAAQ/wB,YAAY9L,EAAOw9B,mBAC1Ex9B,EAAO++B,WACTlnB,EAAIpU,IAAI,QAAU,IAAOzD,EAAkB,gBA0G7Co/B,GAAY,CACd/d,aAAc,WAEZ,GADa5oB,KACDuH,OAAOq/B,UAAU5yB,IADhBhU,KAC8B4mC,UAAU5yB,GAArD,CACA,IAAI4yB,EAFS5mC,KAEU4mC,UACnB9mB,EAHS9f,KAGI+f,aACbuG,EAJStmB,KAISsmB,SAClBugB,EAAWD,EAAUC,SACrBC,EAAYF,EAAUE,UACtBC,EAAUH,EAAUG,QACpB3nB,EAAMwnB,EAAUxnB,IAChB7X,EATSvH,KASOuH,OAAOq/B,UAEvBI,EAAUH,EACVI,GAAUH,EAAYD,GAAYvgB,EAClCxG,GACFmnB,GAAUA,GACG,GACXD,EAAUH,EAAWI,EACrBA,EAAS,IACCA,EAASJ,EAAWC,IAC9BE,EAAUF,EAAYG,GAEfA,EAAS,GAClBD,EAAUH,EAAWI,EACrBA,EAAS,GACAA,EAASJ,EAAWC,IAC7BE,EAAUF,EAAYG,GAzBXjnC,KA2BFuf,gBACTwnB,EAAQ5yB,UAAW,eAAiB8yB,EAAS,aAC7CF,EAAQ,GAAGv2B,MAAM0O,MAAQ8nB,EAAU,OAEnCD,EAAQ5yB,UAAW,oBAAsB8yB,EAAS,UAClDF,EAAQ,GAAGv2B,MAAM2O,OAAS6nB,EAAU,MAElCz/B,EAAO2/B,OACT19B,aAnCWxJ,KAmCS4mC,UAAUl+B,SAC9B0W,EAAI,GAAG5O,MAAM22B,QAAU,EApCZnnC,KAqCJ4mC,UAAUl+B,QAAUtF,YAAW,WACpCgc,EAAI,GAAG5O,MAAM22B,QAAU,EACvB/nB,EAAI9K,WAAW,OACd,QAGPgR,cAAe,SAAuBxiB,GACvB9C,KACDuH,OAAOq/B,UAAU5yB,IADhBhU,KAC8B4mC,UAAU5yB,IADxChU,KAEN4mC,UAAUG,QAAQzyB,WAAWxR,IAEtCmc,WAAY,WAEV,GADajf,KACDuH,OAAOq/B,UAAU5yB,IADhBhU,KAC8B4mC,UAAU5yB,GAArD,CAEA,IAAI4yB,EAHS5mC,KAGU4mC,UACnBG,EAAUH,EAAUG,QACpB3nB,EAAMwnB,EAAUxnB,IAEpB2nB,EAAQ,GAAGv2B,MAAM0O,MAAQ,GACzB6nB,EAAQ,GAAGv2B,MAAM2O,OAAS,GAC1B,IAII0nB,EAJAC,EATS9mC,KASUuf,eAAiBH,EAAI,GAAG3I,YAAc2I,EAAI,GAAG1a,aAEhE0iC,EAXSpnC,KAWQ0f,KAXR1f,KAWsBwhB,YAC/B6lB,EAAcD,GAAWN,EAZhB9mC,KAYmC0f,MAG9CmnB,EADuC,SAd5B7mC,KAcFuH,OAAOq/B,UAAUC,SACfC,EAAYM,EAEZ3nB,SAjBAzf,KAiBgBuH,OAAOq/B,UAAUC,SAAU,IAjB3C7mC,KAoBFuf,eACTwnB,EAAQ,GAAGv2B,MAAM0O,MAAQ2nB,EAAW,KAEpCE,EAAQ,GAAGv2B,MAAM2O,OAAS0nB,EAAW,KAIrCznB,EAAI,GAAG5O,MAAM82B,QADXF,GAAW,EACU,OAEA,GA7BZpnC,KA+BFuH,OAAOq/B,UAAUM,OAC1B9nB,EAAI,GAAG5O,MAAM22B,QAAU,GAEzBxtB,EAAMna,OAAOonC,EAAW,CACtBE,UAAWA,EACXM,QAASA,EACTC,YAAaA,EACbR,SAAUA,IAEZD,EAAUxnB,IAxCGpf,KAwCQuH,OAAOsd,eAxCf7kB,KAwCuCysB,SAAW,WAAa,eAxC/DzsB,KAwCqFuH,OAAOq/B,UAAUhD,aAErH2D,mBAAoB,SAA4BrnC,GAE9C,OADaF,KACFuf,eACW,eAAXrf,EAAE0uB,MAAoC,cAAX1uB,EAAE0uB,KAAwB1uB,EAAEovB,cAAc,GAAGkY,QAAUtnC,EAAEsnC,QAE3E,eAAXtnC,EAAE0uB,MAAoC,cAAX1uB,EAAE0uB,KAAwB1uB,EAAEovB,cAAc,GAAGmY,QAAUvnC,EAAEunC,SAE/FC,gBAAiB,SAAyBxnC,GACxC,IAQIynC,EAPAf,EADS5mC,KACU4mC,UACnB9mB,EAFS9f,KAEI+f,aACbX,EAAMwnB,EAAUxnB,IAChBynB,EAAWD,EAAUC,SACrBC,EAAYF,EAAUE,UACtBc,EAAehB,EAAUgB,aAG7BD,GAAkBf,EAAUW,mBAAmBrnC,GAAMkf,EAAIzI,SAT5C3W,KAS4Duf,eAAiB,OAAS,QAC7E,OAAjBqoB,EAAwBA,EAAef,EAAW,KAAOC,EAAYD,GAC1Ec,EAAgBnkC,KAAK0e,IAAI1e,KAAKsf,IAAI6kB,EAAe,GAAI,GACjD7nB,IACF6nB,EAAgB,EAAIA,GAGtB,IAAIvV,EAhBSpyB,KAgBSkmB,gBAhBTlmB,KAgBmC0mB,eAhBnC1mB,KAgB2DkmB,gBAAkByhB,EAhB7E3nC,KAkBNumB,eAAe6L,GAlBTpyB,KAmBN4oB,aAAawJ,GAnBPpyB,KAoBN4nB,oBApBM5nB,KAqBN+mB,uBAET8gB,YAAa,SAAqB3nC,GAChC,IACIqH,EADSvH,KACOuH,OAAOq/B,UACvBA,EAFS5mC,KAEU4mC,UACnBhnB,EAHS5f,KAGW4f,WACpBR,EAAMwnB,EAAUxnB,IAChB2nB,EAAUH,EAAUG,QALX/mC,KAMN4mC,UAAU7X,WAAY,EANhB/uB,KAON4mC,UAAUgB,aAAgB1nC,EAAE0G,SAAWmgC,EAAQ,IAAM7mC,EAAE0G,SAAWmgC,EACrEH,EAAUW,mBAAmBrnC,GAAKA,EAAE0G,OAAOiQ,wBARlC7W,KAQiEuf,eAAiB,OAAS,OAAS,KACjHrf,EAAEowB,iBACFpwB,EAAEwxB,kBAEF9R,EAAWtL,WAAW,KACtByyB,EAAQzyB,WAAW,KACnBsyB,EAAUc,gBAAgBxnC,GAE1BsJ,aAhBaxJ,KAgBO4mC,UAAUkB,aAE9B1oB,EAAI9K,WAAW,GACX/M,EAAO2/B,MACT9nB,EAAIhb,IAAI,UAAW,GApBRpE,KAsBFuH,OAAOqZ,SAtBL5gB,KAuBJ4f,WAAWxb,IAAI,mBAAoB,QAvB/BpE,KAyBNmL,KAAK,qBAAsBjL,IAEpC6nC,WAAY,SAAoB7nC,GAC9B,IACI0mC,EADS5mC,KACU4mC,UACnBhnB,EAFS5f,KAEW4f,WACpBR,EAAMwnB,EAAUxnB,IAChB2nB,EAAUH,EAAUG,QAJX/mC,KAMD4mC,UAAU7X,YAClB7uB,EAAEowB,eAAkBpwB,EAAEowB,iBACnBpwB,EAAEggC,aAAc,EACvB0G,EAAUc,gBAAgBxnC,GAC1B0f,EAAWtL,WAAW,GACtB8K,EAAI9K,WAAW,GACfyyB,EAAQzyB,WAAW,GAZNtU,KAaNmL,KAAK,oBAAqBjL,KAEnC8nC,UAAW,SAAmB9nC,GAC5B,IAEIqH,EAFSvH,KAEOuH,OAAOq/B,UACvBA,EAHS5mC,KAGU4mC,UACnBhnB,EAJS5f,KAIW4f,WACpBR,EAAMwnB,EAAUxnB,IALPpf,KAOD4mC,UAAU7X,YAPT/uB,KAQN4mC,UAAU7X,WAAY,EARhB/uB,KASFuH,OAAOqZ,UATL5gB,KAUJ4f,WAAWxb,IAAI,mBAAoB,IAC1Cwb,EAAWtL,WAAW,KAEpB/M,EAAO2/B,OACT19B,aAdWxJ,KAcS4mC,UAAUkB,aAdnB9nC,KAeJ4mC,UAAUkB,YAAcnuB,EAAMpP,UAAS,WAC5C6U,EAAIhb,IAAI,UAAW,GACnBgb,EAAI9K,WAAW,OACd,MAlBQtU,KAoBNmL,KAAK,mBAAoBjL,GAC5BqH,EAAO0gC,eArBEjoC,KAsBJsrB,mBAGX4c,gBAAiB,WAEf,GADaloC,KACDuH,OAAOq/B,UAAU5yB,GAA7B,CACA,IAAI4yB,EAFS5mC,KAEU4mC,UACnB9M,EAHS95B,KAGiB85B,iBAC1BC,EAJS/5B,KAImB+5B,mBAC5BxyB,EALSvH,KAKOuH,OAEhBX,EADMggC,EAAUxnB,IACH,GACb+oB,KAAiBzsB,EAAQO,kBAAmB1U,EAAOsuB,mBAAmB,CAAEW,SAAS,EAAO5hB,SAAS,GACjGqH,KAAkBP,EAAQO,kBAAmB1U,EAAOsuB,mBAAmB,CAAEW,SAAS,EAAM5hB,SAAS,GAChG8G,EAAQC,OAKX/U,EAAOsH,iBAAiB4rB,EAAiBzD,MAf9Br2B,KAe4C4mC,UAAUiB,YAAaM,GAC9EvhC,EAAOsH,iBAAiB4rB,EAAiBxD,KAhB9Bt2B,KAgB2C4mC,UAAUmB,WAAYI,GAC5EvhC,EAAOsH,iBAAiB4rB,EAAiBvD,IAjB9Bv2B,KAiB0C4mC,UAAUoB,UAAW/rB,KAN1ErV,EAAOsH,iBAAiB6rB,EAAmB1D,MAXhCr2B,KAW8C4mC,UAAUiB,YAAaM,GAChFx4B,EAAIzB,iBAAiB6rB,EAAmBzD,KAZ7Bt2B,KAY0C4mC,UAAUmB,WAAYI,GAC3Ex4B,EAAIzB,iBAAiB6rB,EAAmBxD,IAb7Bv2B,KAayC4mC,UAAUoB,UAAW/rB,MAO7EmsB,iBAAkB,WAEhB,GADapoC,KACDuH,OAAOq/B,UAAU5yB,GAA7B,CACA,IAAI4yB,EAFS5mC,KAEU4mC,UACnB9M,EAHS95B,KAGiB85B,iBAC1BC,EAJS/5B,KAImB+5B,mBAC5BxyB,EALSvH,KAKOuH,OAEhBX,EADMggC,EAAUxnB,IACH,GACb+oB,KAAiBzsB,EAAQO,kBAAmB1U,EAAOsuB,mBAAmB,CAAEW,SAAS,EAAO5hB,SAAS,GACjGqH,KAAkBP,EAAQO,kBAAmB1U,EAAOsuB,mBAAmB,CAAEW,SAAS,EAAM5hB,SAAS,GAChG8G,EAAQC,OAKX/U,EAAOkJ,oBAAoBgqB,EAAiBzD,MAfjCr2B,KAe+C4mC,UAAUiB,YAAaM,GACjFvhC,EAAOkJ,oBAAoBgqB,EAAiBxD,KAhBjCt2B,KAgB8C4mC,UAAUmB,WAAYI,GAC/EvhC,EAAOkJ,oBAAoBgqB,EAAiBvD,IAjBjCv2B,KAiB6C4mC,UAAUoB,UAAW/rB,KAN7ErV,EAAOkJ,oBAAoBiqB,EAAmB1D,MAXnCr2B,KAWiD4mC,UAAUiB,YAAaM,GACnFx4B,EAAIG,oBAAoBiqB,EAAmBzD,KAZhCt2B,KAY6C4mC,UAAUmB,WAAYI,GAC9Ex4B,EAAIG,oBAAoBiqB,EAAmBxD,IAbhCv2B,KAa4C4mC,UAAUoB,UAAW/rB,MAOhFtb,KAAM,WAEJ,GADaX,KACDuH,OAAOq/B,UAAU5yB,GAA7B,CACA,IAAI4yB,EAFS5mC,KAEU4mC,UACnByB,EAHSroC,KAGUof,IACnB7X,EAJSvH,KAIOuH,OAAOq/B,UAEvBxnB,EAAM1c,EAAE6E,EAAOyM,IANNhU,KAOFuH,OAAOkuB,mBAA0C,iBAAdluB,EAAOyM,IAAmBoL,EAAIzhB,OAAS,GAA0C,IAArC0qC,EAAUjvB,KAAK7R,EAAOyM,IAAIrW,SAClHyhB,EAAMipB,EAAUjvB,KAAK7R,EAAOyM,KAG9B,IAAI+yB,EAAU3nB,EAAIhG,KAAM,IAXXpZ,KAWyBuH,OAAOq/B,UAAmB,WACzC,IAAnBG,EAAQppC,SACVopC,EAAUrkC,EAAG,eAbF1C,KAa4BuH,OAAOq/B,UAAmB,UAAI,YACrExnB,EAAIjH,OAAO4uB,IAGbptB,EAAMna,OAAOonC,EAAW,CACtBxnB,IAAKA,EACLpL,GAAIoL,EAAI,GACR2nB,QAASA,EACTuB,OAAQvB,EAAQ,KAGdx/B,EAAOghC,WACT3B,EAAUsB,oBAGdzN,QAAS,WACMz6B,KACN4mC,UAAUwB,qBAyEjBI,GAAW,CACbC,aAAc,SAAsBz0B,EAAIsS,GACtC,IACIxG,EADS9f,KACI8f,IAEbV,EAAM1c,EAAEsR,GACRouB,EAAYtiB,GAAO,EAAI,EAEvB9iB,EAAIoiB,EAAI1L,KAAK,yBAA2B,IACxCqV,EAAI3J,EAAI1L,KAAK,0BACbsV,EAAI5J,EAAI1L,KAAK,0BACb8xB,EAAQpmB,EAAI1L,KAAK,8BACjByzB,EAAU/nB,EAAI1L,KAAK,gCAwBvB,GAtBIqV,GAAKC,GACPD,EAAIA,GAAK,IACTC,EAAIA,GAAK,KAdEhpB,KAeKuf,gBAChBwJ,EAAI/rB,EACJgsB,EAAI,MAEJA,EAAIhsB,EACJ+rB,EAAI,KAIJA,EADE,EAAIjhB,QAAQ,MAAQ,EACjB2X,SAASsJ,EAAG,IAAMzC,EAAW8b,EAAa,IAE1CrZ,EAAIzC,EAAW8b,EAAa,KAGjCpZ,EADE,EAAIlhB,QAAQ,MAAQ,EACjB2X,SAASuJ,EAAG,IAAM1C,EAAY,IAE9B0C,EAAI1C,EAAY,KAGnB,MAAO6gB,EAA6C,CACtD,IAAIuB,EAAiBvB,GAAYA,EAAU,IAAM,EAAI3jC,KAAKogB,IAAI0C,IAC9DlH,EAAI,GAAG5O,MAAM22B,QAAUuB,EAEzB,GAAI,MAAOlD,EACTpmB,EAAIjL,UAAW,eAAiB4U,EAAI,KAAOC,EAAI,cAC1C,CACL,IAAI2f,EAAenD,GAAUA,EAAQ,IAAM,EAAIhiC,KAAKogB,IAAI0C,IACxDlH,EAAIjL,UAAW,eAAiB4U,EAAI,KAAOC,EAAI,gBAAkB2f,EAAe,OAGpF/f,aAAc,WACZ,IAAIU,EAAStpB,KACTof,EAAMkK,EAAOlK,IACbiB,EAASiJ,EAAOjJ,OAChBiG,EAAWgD,EAAOhD,SAClB/F,EAAW+I,EAAO/I,SACtBnB,EAAI9O,SAAS,4IACViH,MAAK,SAAUO,EAAO9D,GACrBsV,EAAOsf,SAASH,aAAaz0B,EAAIsS,MAErCjG,EAAO9I,MAAK,SAAUoJ,EAAY6Z,GAChC,IAAIvU,EAAgBuU,EAAQlU,SACxBgD,EAAO/hB,OAAOmb,eAAiB,GAAqC,SAAhC4G,EAAO/hB,OAAOya,gBACpDiE,GAAiBziB,KAAKue,KAAKpB,EAAa,GAAM2F,GAAY/F,EAAS5iB,OAAS,IAE9EsoB,EAAgBziB,KAAKsf,IAAItf,KAAK0e,IAAI+D,GAAgB,GAAI,GACtDvjB,EAAE83B,GAASphB,KAAK,4IACb7B,MAAK,SAAUO,EAAO9D,GACrBsV,EAAOsf,SAASH,aAAaz0B,EAAIiS,UAIzCX,cAAe,SAAuBxiB,QAClB,IAAbA,IAAsBA,EAAW9C,KAAKuH,OAAO4d,OAErCnlB,KACIof,IACbhG,KAAK,4IACN7B,MAAK,SAAUO,EAAO+wB,GACrB,IAAIC,EAAcpmC,EAAEmmC,GAChBE,EAAmBtpB,SAASqpB,EAAYp1B,KAAK,iCAAkC,KAAO5Q,EACzE,IAAbA,IAAkBimC,EAAmB,GACzCD,EAAYx0B,WAAWy0B,QA+C3BC,GAAO,CAETC,0BAA2B,SAAmC/oC,GAC5D,GAAIA,EAAEovB,cAAc3xB,OAAS,EAAK,OAAO,EACzC,IAAIurC,EAAKhpC,EAAEovB,cAAc,GAAGC,MACxB4Z,EAAKjpC,EAAEovB,cAAc,GAAGG,MACxB2Z,EAAKlpC,EAAEovB,cAAc,GAAGC,MACxB8Z,EAAKnpC,EAAEovB,cAAc,GAAGG,MAE5B,OADejsB,KAAK4tB,KAAM5tB,KAAK6tB,IAAM+X,EAAKF,EAAK,GAAQ1lC,KAAK6tB,IAAMgY,EAAKF,EAAK,KAI9EG,eAAgB,SAAwBppC,GACtC,IACIqH,EADSvH,KACOuH,OAAOgiC,KACvBA,EAFSvpC,KAEKupC,KACdC,EAAUD,EAAKC,QAGnB,GAFAD,EAAKE,oBAAqB,EAC1BF,EAAKG,kBAAmB,GACnBhuB,EAAQU,SAAU,CACrB,GAAe,eAAXlc,EAAE0uB,MAAqC,eAAX1uB,EAAE0uB,MAAyB1uB,EAAEovB,cAAc3xB,OAAS,EAClF,OAEF4rC,EAAKE,oBAAqB,EAC1BD,EAAQG,WAAaX,GAAKC,0BAA0B/oC,GAEjDspC,EAAQrL,UAAaqL,EAAQrL,SAASxgC,SACzC6rC,EAAQrL,SAAWz7B,EAAExC,EAAE0G,QAAQuS,QAAS,IAd7BnZ,KAc2CuH,OAAiB,YACvC,IAA5BiiC,EAAQrL,SAASxgC,SAAgB6rC,EAAQrL,SAflCn+B,KAeoDqgB,OAAOpI,GAf3DjY,KAeqEwlB,cAChFgkB,EAAQI,SAAWJ,EAAQrL,SAAS/kB,KAAK,kDACzCowB,EAAQK,aAAeL,EAAQI,SAAS1wB,OAAQ,IAAO3R,EAAqB,gBAC5EiiC,EAAQM,SAAWN,EAAQK,aAAan2B,KAAK,qBAAuBnM,EAAOuiC,SACvC,IAAhCN,EAAQK,aAAalsC,SAKvB6rC,EAAQI,UACVJ,EAAQI,SAASt1B,WAAW,GAzBjBtU,KA2BNupC,KAAKQ,WAAY,GAPpBP,EAAQI,cAAW77B,GASzBi8B,gBAAiB,SAAyB9pC,GACxC,IACIqH,EADSvH,KACOuH,OAAOgiC,KACvBA,EAFSvpC,KAEKupC,KACdC,EAAUD,EAAKC,QACnB,IAAK9tB,EAAQU,SAAU,CACrB,GAAe,cAAXlc,EAAE0uB,MAAoC,cAAX1uB,EAAE0uB,MAAwB1uB,EAAEovB,cAAc3xB,OAAS,EAChF,OAEF4rC,EAAKG,kBAAmB,EACxBF,EAAQS,UAAYjB,GAAKC,0BAA0B/oC,GAEhDspC,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASjsC,SAExC4rC,EAAK/D,MADH9pB,EAAQU,SACGlc,EAAEslC,MAAQ+D,EAAKZ,aAEda,EAAQS,UAAYT,EAAQG,WAAcJ,EAAKZ,aAE3DY,EAAK/D,MAAQgE,EAAQM,WACvBP,EAAK/D,MAASgE,EAAQM,SAAW,EAAMtmC,KAAK6tB,IAAOkY,EAAK/D,MAAQgE,EAAQM,SAAY,EAAI,KAEtFP,EAAK/D,MAAQj+B,EAAOiwB,WACtB+R,EAAK/D,MAASj+B,EAAOiwB,SAAW,EAAMh0B,KAAK6tB,IAAO9pB,EAAOiwB,SAAW+R,EAAK/D,MAAS,EAAI,KAExFgE,EAAQI,SAASz1B,UAAW,4BAA+Bo1B,EAAU,MAAI,OAE3EW,aAAc,SAAsBhqC,GAClC,IACIqH,EADSvH,KACOuH,OAAOgiC,KACvBA,EAFSvpC,KAEKupC,KACdC,EAAUD,EAAKC,QACnB,IAAK9tB,EAAQU,SAAU,CACrB,IAAKmtB,EAAKE,qBAAuBF,EAAKG,iBACpC,OAEF,GAAe,aAAXxpC,EAAE0uB,MAAmC,aAAX1uB,EAAE0uB,MAAuB1uB,EAAE4wB,eAAenzB,OAAS,IAAM6vB,EAAOlP,QAC5F,OAEFirB,EAAKE,oBAAqB,EAC1BF,EAAKG,kBAAmB,EAErBF,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASjsC,SAC1C4rC,EAAK/D,MAAQhiC,KAAK0e,IAAI1e,KAAKsf,IAAIymB,EAAK/D,MAAOgE,EAAQM,UAAWviC,EAAOiwB,UACrEgS,EAAQI,SAASt1B,WAhBJtU,KAgBsBuH,OAAO4d,OAAOhR,UAAW,4BAA+Bo1B,EAAU,MAAI,KACzGA,EAAKZ,aAAeY,EAAK/D,MACzB+D,EAAKQ,WAAY,EACE,IAAfR,EAAK/D,QAAegE,EAAQrL,cAAWpwB,KAE7CsgB,aAAc,SAAsBnuB,GAClC,IACIqpC,EADSvpC,KACKupC,KACdC,EAAUD,EAAKC,QACf7Q,EAAQ4Q,EAAK5Q,MACZ6Q,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASjsC,SACtCg7B,EAAM5J,YACNvB,EAAOlP,SAAWpe,EAAE6V,YAAc7V,EAAEowB,iBACxCqI,EAAM5J,WAAY,EAClB4J,EAAMwR,aAAaphB,EAAe,eAAX7oB,EAAE0uB,KAAwB1uB,EAAEovB,cAAc,GAAGC,MAAQrvB,EAAEqvB,MAC9EoJ,EAAMwR,aAAanhB,EAAe,eAAX9oB,EAAE0uB,KAAwB1uB,EAAEovB,cAAc,GAAGG,MAAQvvB,EAAEuvB,SAEhFmB,YAAa,SAAqB1wB,GAChC,IACIqpC,EADSvpC,KACKupC,KACdC,EAAUD,EAAKC,QACf7Q,EAAQ4Q,EAAK5Q,MACb3F,EAAWuW,EAAKvW,SACpB,GAAKwW,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASjsC,SAL7BqC,KAMNmvB,YAAa,EACfwJ,EAAM5J,WAAcya,EAAQrL,UAAjC,CAEKxF,EAAM3J,UACT2J,EAAMzZ,MAAQsqB,EAAQI,SAAS,GAAGnzB,YAClCkiB,EAAMxZ,OAASqqB,EAAQI,SAAS,GAAGllC,aACnCi0B,EAAMjJ,OAAS/V,EAAMI,aAAayvB,EAAQK,aAAa,GAAI,MAAQ,EACnElR,EAAMhJ,OAAShW,EAAMI,aAAayvB,EAAQK,aAAa,GAAI,MAAQ,EACnEL,EAAQY,WAAaZ,EAAQrL,SAAS,GAAG1nB,YACzC+yB,EAAQa,YAAcb,EAAQrL,SAAS,GAAGz5B,aAC1C8kC,EAAQK,aAAav1B,WAAW,GAhBrBtU,KAiBA8f,MACT6Y,EAAMjJ,QAAUiJ,EAAMjJ,OACtBiJ,EAAMhJ,QAAUgJ,EAAMhJ,SAI1B,IAAI2a,EAAc3R,EAAMzZ,MAAQqqB,EAAK/D,MACjC+E,EAAe5R,EAAMxZ,OAASoqB,EAAK/D,MAEvC,KAAI8E,EAAcd,EAAQY,YAAcG,EAAef,EAAQa,aAA/D,CAUA,GARA1R,EAAM6R,KAAOhnC,KAAKsf,IAAM0mB,EAAQY,WAAa,EAAME,EAAc,EAAK,GACtE3R,EAAM8R,MAAQ9R,EAAM6R,KACpB7R,EAAM+R,KAAOlnC,KAAKsf,IAAM0mB,EAAQa,YAAc,EAAME,EAAe,EAAK,GACxE5R,EAAMgS,MAAQhS,EAAM+R,KAEpB/R,EAAMiS,eAAe7hB,EAAe,cAAX7oB,EAAE0uB,KAAuB1uB,EAAEovB,cAAc,GAAGC,MAAQrvB,EAAEqvB,MAC/EoJ,EAAMiS,eAAe5hB,EAAe,cAAX9oB,EAAE0uB,KAAuB1uB,EAAEovB,cAAc,GAAGG,MAAQvvB,EAAEuvB,OAE1EkJ,EAAM3J,UAAYua,EAAKQ,UAAW,CACrC,GArCW/pC,KAsCFuf,iBAEJ/b,KAAKse,MAAM6W,EAAM6R,QAAUhnC,KAAKse,MAAM6W,EAAMjJ,SAAWiJ,EAAMiS,eAAe7hB,EAAI4P,EAAMwR,aAAaphB,GAChGvlB,KAAKse,MAAM6W,EAAM8R,QAAUjnC,KAAKse,MAAM6W,EAAMjJ,SAAWiJ,EAAMiS,eAAe7hB,EAAI4P,EAAMwR,aAAaphB,GAIzG,YADA4P,EAAM5J,WAAY,GAElB,IA9CS/uB,KA+CDuf,iBAEL/b,KAAKse,MAAM6W,EAAM+R,QAAUlnC,KAAKse,MAAM6W,EAAMhJ,SAAWgJ,EAAMiS,eAAe5hB,EAAI2P,EAAMwR,aAAanhB,GAChGxlB,KAAKse,MAAM6W,EAAMgS,QAAUnnC,KAAKse,MAAM6W,EAAMhJ,SAAWgJ,EAAMiS,eAAe5hB,EAAI2P,EAAMwR,aAAanhB,GAIzG,YADA2P,EAAM5J,WAAY,GAIlB7uB,EAAE6V,YACJ7V,EAAEowB,iBAEJpwB,EAAEwxB,kBAEFiH,EAAM3J,SAAU,EAChB2J,EAAMtJ,SAAYsJ,EAAMiS,eAAe7hB,EAAI4P,EAAMwR,aAAaphB,EAAK4P,EAAMjJ,OACzEiJ,EAAMnJ,SAAYmJ,EAAMiS,eAAe5hB,EAAI2P,EAAMwR,aAAanhB,EAAK2P,EAAMhJ,OAErEgJ,EAAMtJ,SAAWsJ,EAAM6R,OACzB7R,EAAMtJ,SAAYsJ,EAAM6R,KAAO,EAAMhnC,KAAK6tB,IAAOsH,EAAM6R,KAAO7R,EAAMtJ,SAAY,EAAI,KAElFsJ,EAAMtJ,SAAWsJ,EAAM8R,OACzB9R,EAAMtJ,SAAYsJ,EAAM8R,KAAO,EAAMjnC,KAAK6tB,IAAOsH,EAAMtJ,SAAWsJ,EAAM8R,KAAQ,EAAI,KAGlF9R,EAAMnJ,SAAWmJ,EAAM+R,OACzB/R,EAAMnJ,SAAYmJ,EAAM+R,KAAO,EAAMlnC,KAAK6tB,IAAOsH,EAAM+R,KAAO/R,EAAMnJ,SAAY,EAAI,KAElFmJ,EAAMnJ,SAAWmJ,EAAMgS,OACzBhS,EAAMnJ,SAAYmJ,EAAMgS,KAAO,EAAMnnC,KAAK6tB,IAAOsH,EAAMnJ,SAAWmJ,EAAMgS,KAAQ,EAAI,KAIjF3X,EAAS6X,gBAAiB7X,EAAS6X,cAAgBlS,EAAMiS,eAAe7hB,GACxEiK,EAAS8X,gBAAiB9X,EAAS8X,cAAgBnS,EAAMiS,eAAe5hB,GACxEgK,EAAS+X,WAAY/X,EAAS+X,SAAW9pC,KAAK6Y,OACnDkZ,EAASjK,GAAK4P,EAAMiS,eAAe7hB,EAAIiK,EAAS6X,gBAAkB5pC,KAAK6Y,MAAQkZ,EAAS+X,UAAY,EACpG/X,EAAShK,GAAK2P,EAAMiS,eAAe5hB,EAAIgK,EAAS8X,gBAAkB7pC,KAAK6Y,MAAQkZ,EAAS+X,UAAY,EAChGvnC,KAAKogB,IAAI+U,EAAMiS,eAAe7hB,EAAIiK,EAAS6X,eAAiB,IAAK7X,EAASjK,EAAI,GAC9EvlB,KAAKogB,IAAI+U,EAAMiS,eAAe5hB,EAAIgK,EAAS8X,eAAiB,IAAK9X,EAAShK,EAAI,GAClFgK,EAAS6X,cAAgBlS,EAAMiS,eAAe7hB,EAC9CiK,EAAS8X,cAAgBnS,EAAMiS,eAAe5hB,EAC9CgK,EAAS+X,SAAW9pC,KAAK6Y,MAEzB0vB,EAAQK,aAAa11B,UAAW,eAAkBwkB,EAAc,SAAI,OAAUA,EAAc,SAAI,YAElGrG,WAAY,WACV,IACIiX,EADSvpC,KACKupC,KACdC,EAAUD,EAAKC,QACf7Q,EAAQ4Q,EAAK5Q,MACb3F,EAAWuW,EAAKvW,SACpB,GAAKwW,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASjsC,OAA1C,CACA,IAAKg7B,EAAM5J,YAAc4J,EAAM3J,QAG7B,OAFA2J,EAAM5J,WAAY,OAClB4J,EAAM3J,SAAU,GAGlB2J,EAAM5J,WAAY,EAClB4J,EAAM3J,SAAU,EAChB,IAAIgc,EAAoB,IACpBC,EAAoB,IACpBC,EAAoBlY,EAASjK,EAAIiiB,EACjCG,EAAexS,EAAMtJ,SAAW6b,EAChCE,EAAoBpY,EAAShK,EAAIiiB,EACjCI,EAAe1S,EAAMnJ,SAAW4b,EAGjB,IAAfpY,EAASjK,IAAWiiB,EAAoBxnC,KAAKogB,KAAKunB,EAAexS,EAAMtJ,UAAY2D,EAASjK,IAC7E,IAAfiK,EAAShK,IAAWiiB,EAAoBznC,KAAKogB,KAAKynB,EAAe1S,EAAMnJ,UAAYwD,EAAShK,IAChG,IAAImK,EAAmB3vB,KAAK0e,IAAI8oB,EAAmBC,GAEnDtS,EAAMtJ,SAAW8b,EACjBxS,EAAMnJ,SAAW6b,EAGjB,IAAIf,EAAc3R,EAAMzZ,MAAQqqB,EAAK/D,MACjC+E,EAAe5R,EAAMxZ,OAASoqB,EAAK/D,MACvC7M,EAAM6R,KAAOhnC,KAAKsf,IAAM0mB,EAAQY,WAAa,EAAME,EAAc,EAAK,GACtE3R,EAAM8R,MAAQ9R,EAAM6R,KACpB7R,EAAM+R,KAAOlnC,KAAKsf,IAAM0mB,EAAQa,YAAc,EAAME,EAAe,EAAK,GACxE5R,EAAMgS,MAAQhS,EAAM+R,KACpB/R,EAAMtJ,SAAW7rB,KAAK0e,IAAI1e,KAAKsf,IAAI6V,EAAMtJ,SAAUsJ,EAAM8R,MAAO9R,EAAM6R,MACtE7R,EAAMnJ,SAAWhsB,KAAK0e,IAAI1e,KAAKsf,IAAI6V,EAAMnJ,SAAUmJ,EAAMgS,MAAOhS,EAAM+R,MAEtElB,EAAQK,aAAav1B,WAAW6e,GAAkBhf,UAAW,eAAkBwkB,EAAc,SAAI,OAAUA,EAAc,SAAI,WAE/H2S,gBAAiB,WACf,IACI/B,EADSvpC,KACKupC,KACdC,EAAUD,EAAKC,QACfA,EAAQrL,UAHCn+B,KAGkB8nB,gBAHlB9nB,KAG2CwlB,cAClDgkB,EAAQI,UACVJ,EAAQI,SAASz1B,UAAU,+BAEzBq1B,EAAQK,cACVL,EAAQK,aAAa11B,UAAU,sBAGjCo1B,EAAK/D,MAAQ,EACb+D,EAAKZ,aAAe,EAEpBa,EAAQrL,cAAWpwB,EACnBy7B,EAAQI,cAAW77B,EACnBy7B,EAAQK,kBAAe97B,IAI3B0F,OAAQ,SAAgBvT,GACtB,IACIqpC,EADSvpC,KACKupC,KAEdA,EAAK/D,OAAwB,IAAf+D,EAAK/D,MAErB+D,EAAKgC,MAGLhC,EAAKiC,GAAGtrC,IAGZsrC,GAAI,SAActrC,GAChB,IAoBIurC,EACAC,EAGAxa,EACAC,EACAwa,EACAC,EACAC,EACAC,EACAxB,EACAC,EACAwB,EACAC,EACAC,EACAC,EACA9B,EACAC,EAnCAd,EAFSvpC,KAEKupC,KACdhiC,EAHSvH,KAGOuH,OAAOgiC,KACvBC,EAAUD,EAAKC,QACf7Q,EAAQ4Q,EAAK5Q,MAEZ6Q,EAAQrL,WAPAn+B,KAQAuH,OAAO2Y,SARPlgB,KAQyBuH,OAAO2Y,QAAQC,SARxCngB,KAQ0DkgB,QACnEspB,EAAQrL,SATCn+B,KASiB4f,WAAWtP,SAAU,IATtCtQ,KASoDuH,OAAuB,kBAEpFiiC,EAAQrL,SAXCn+B,KAWiBqgB,OAAOpI,GAXxBjY,KAWkCwlB,aAE7CgkB,EAAQI,SAAWJ,EAAQrL,SAAS/kB,KAAK,kDACzCowB,EAAQK,aAAeL,EAAQI,SAAS1wB,OAAQ,IAAO3R,EAAqB,iBAEzEiiC,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASjsC,SAE1C6rC,EAAQrL,SAASprB,SAAU,GAAMxL,EAAuB,uBAqBpB,IAAzBoxB,EAAMwR,aAAaphB,GAAqB7oB,GACjDurC,EAAoB,aAAXvrC,EAAE0uB,KAAsB1uB,EAAE4wB,eAAe,GAAGvB,MAAQrvB,EAAEqvB,MAC/Dmc,EAAoB,aAAXxrC,EAAE0uB,KAAsB1uB,EAAE4wB,eAAe,GAAGrB,MAAQvvB,EAAEuvB,QAE/Dgc,EAAS9S,EAAMwR,aAAaphB,EAC5B2iB,EAAS/S,EAAMwR,aAAanhB,GAG9BugB,EAAK/D,MAAQgE,EAAQK,aAAan2B,KAAK,qBAAuBnM,EAAOuiC,SACrEP,EAAKZ,aAAea,EAAQK,aAAan2B,KAAK,qBAAuBnM,EAAOuiC,SACxE5pC,GACFkqC,EAAaZ,EAAQrL,SAAS,GAAG1nB,YACjC4zB,EAAcb,EAAQrL,SAAS,GAAGz5B,aAGlCwsB,EAFUsY,EAAQrL,SAASxnB,SAASU,KAEhB+yB,EAAa,EAAMqB,EACvCta,EAFUqY,EAAQrL,SAASxnB,SAASS,IAEhBizB,EAAc,EAAMqB,EAExCG,EAAarC,EAAQI,SAAS,GAAGnzB,YACjCq1B,EAActC,EAAQI,SAAS,GAAGllC,aAClC4lC,EAAcuB,EAAatC,EAAK/D,MAChC+E,EAAeuB,EAAcvC,EAAK/D,MAIlCyG,IAFAF,EAAgBvoC,KAAKsf,IAAMsnB,EAAa,EAAME,EAAc,EAAK,IAGjE4B,IAFAF,EAAgBxoC,KAAKsf,IAAMunB,EAAc,EAAME,EAAe,EAAK,KAInEoB,EAAaza,EAAQqY,EAAK/D,OAGTuG,IACfJ,EAAaI,GAEXJ,EAAaM,IACfN,EAAaM,IANfL,EAAaza,EAAQoY,EAAK/D,OASTwG,IACfJ,EAAaI,GAEXJ,EAAaM,IACfN,EAAaM,KAGfP,EAAa,EACbC,EAAa,GAEfpC,EAAQK,aAAav1B,WAAW,KAAKH,UAAW,eAAiBw3B,EAAa,OAASC,EAAa,SACpGpC,EAAQI,SAASt1B,WAAW,KAAKH,UAAW,4BAA+Bo1B,EAAU,MAAI,OAE3FgC,IAAK,WACH,IAEIhC,EAFSvpC,KAEKupC,KACdhiC,EAHSvH,KAGOuH,OAAOgiC,KACvBC,EAAUD,EAAKC,QAEdA,EAAQrL,WANAn+B,KAOAuH,OAAO2Y,SAPPlgB,KAOyBuH,OAAO2Y,QAAQC,SAPxCngB,KAO0DkgB,QACnEspB,EAAQrL,SARCn+B,KAQiB4f,WAAWtP,SAAU,IARtCtQ,KAQoDuH,OAAuB,kBAEpFiiC,EAAQrL,SAVCn+B,KAUiBqgB,OAAOpI,GAVxBjY,KAUkCwlB,aAE7CgkB,EAAQI,SAAWJ,EAAQrL,SAAS/kB,KAAK,kDACzCowB,EAAQK,aAAeL,EAAQI,SAAS1wB,OAAQ,IAAO3R,EAAqB,iBAEzEiiC,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASjsC,SAE1C4rC,EAAK/D,MAAQ,EACb+D,EAAKZ,aAAe,EACpBa,EAAQK,aAAav1B,WAAW,KAAKH,UAAU,sBAC/Cq1B,EAAQI,SAASt1B,WAAW,KAAKH,UAAU,+BAC3Cq1B,EAAQrL,SAAS9qB,YAAa,GAAM9L,EAAuB,kBAC3DiiC,EAAQrL,cAAWpwB,IAGrBoyB,OAAQ,WACN,IACIoJ,EADSvpC,KACKupC,KAClB,IAAIA,EAAKppB,QAAT,CACAopB,EAAKppB,SAAU,EAEf,IAAIlE,IAA+C,eALtCjc,KAKgBo2B,YAAYC,QAA0B3a,EAAQO,kBAL9Djc,KAKwFuH,OAAOsuB,mBAAmB,CAAEW,SAAS,EAAM5hB,SAAS,GACrJu3B,GAA4BzwB,EAAQO,iBAAkB,CAAEua,SAAS,EAAO5hB,SAAS,GAEjFw3B,EAAgB,IARPpsC,KAQqBuH,OAAiB,WAG/CmU,EAAQU,UAXCpc,KAYJ4f,WAAW/U,GAAG,eAAgBuhC,EAAe7C,EAAKD,eAAgBrtB,GAZ9Djc,KAaJ4f,WAAW/U,GAAG,gBAAiBuhC,EAAe7C,EAAKS,gBAAiB/tB,GAbhEjc,KAcJ4f,WAAW/U,GAAG,aAAcuhC,EAAe7C,EAAKW,aAAcjuB,IAC/B,eAf3Bjc,KAeKo2B,YAAYC,QAfjBr2B,KAgBJ4f,WAAW/U,GAhBP7K,KAgBiBo2B,YAAYC,MAAO+V,EAAe7C,EAAKD,eAAgBrtB,GAhBxEjc,KAiBJ4f,WAAW/U,GAjBP7K,KAiBiBo2B,YAAYE,KAAM8V,EAAe7C,EAAKS,gBAAiBmC,GAjBxEnsC,KAkBJ4f,WAAW/U,GAlBP7K,KAkBiBo2B,YAAYG,IAAK6V,EAAe7C,EAAKW,aAAcjuB,GAlBpEjc,KAmBAo2B,YAAY5nB,QAnBZxO,KAoBF4f,WAAW/U,GApBT7K,KAoBmBo2B,YAAY5nB,OAAQ49B,EAAe7C,EAAKW,aAAcjuB,IApBzEjc,KAyBN4f,WAAW/U,GAzBL7K,KAyBeo2B,YAAYE,KAAO,IAzBlCt2B,KAyBgDuH,OAAOgiC,KAAmB,eAAIA,EAAK3Y,YAAaub,KAE/G/L,QAAS,WACP,IACImJ,EADSvpC,KACKupC,KAClB,GAAKA,EAAKppB,QAAV,CAFangB,KAINupC,KAAKppB,SAAU,EAEtB,IAAIlE,IAA+C,eANtCjc,KAMgBo2B,YAAYC,QAA0B3a,EAAQO,kBAN9Djc,KAMwFuH,OAAOsuB,mBAAmB,CAAEW,SAAS,EAAM5hB,SAAS,GACrJu3B,GAA4BzwB,EAAQO,iBAAkB,CAAEua,SAAS,EAAO5hB,SAAS,GAEjFw3B,EAAgB,IATPpsC,KASqBuH,OAAiB,WAG/CmU,EAAQU,UAZCpc,KAaJ4f,WAAW5U,IAAI,eAAgBohC,EAAe7C,EAAKD,eAAgBrtB,GAb/Djc,KAcJ4f,WAAW5U,IAAI,gBAAiBohC,EAAe7C,EAAKS,gBAAiB/tB,GAdjEjc,KAeJ4f,WAAW5U,IAAI,aAAcohC,EAAe7C,EAAKW,aAAcjuB,IAChC,eAhB3Bjc,KAgBKo2B,YAAYC,QAhBjBr2B,KAiBJ4f,WAAW5U,IAjBPhL,KAiBkBo2B,YAAYC,MAAO+V,EAAe7C,EAAKD,eAAgBrtB,GAjBzEjc,KAkBJ4f,WAAW5U,IAlBPhL,KAkBkBo2B,YAAYE,KAAM8V,EAAe7C,EAAKS,gBAAiBmC,GAlBzEnsC,KAmBJ4f,WAAW5U,IAnBPhL,KAmBkBo2B,YAAYG,IAAK6V,EAAe7C,EAAKW,aAAcjuB,GAnBrEjc,KAoBAo2B,YAAY5nB,QApBZxO,KAqBF4f,WAAW5U,IArBThL,KAqBoBo2B,YAAY5nB,OAAQ49B,EAAe7C,EAAKW,aAAcjuB,IArB1Ejc,KA0BN4f,WAAW5U,IA1BLhL,KA0BgBo2B,YAAYE,KAAO,IA1BnCt2B,KA0BiDuH,OAAOgiC,KAAmB,eAAIA,EAAK3Y,YAAaub,MAwH9GE,GAAO,CACTC,YAAa,SAAqBx0B,EAAOy0B,QACd,IAApBA,IAA6BA,GAAkB,GAEpD,IAAIjjB,EAAStpB,KACTuH,EAAS+hB,EAAO/hB,OAAOq2B,KAC3B,QAAqB,IAAV9lB,GACkB,IAAzBwR,EAAOjJ,OAAO1iB,OAAlB,CACA,IAEIwgC,EAFY7U,EAAOpJ,SAAWoJ,EAAO/hB,OAAO2Y,QAAQC,QAGpDmJ,EAAO1J,WAAWtP,SAAU,IAAOgZ,EAAO/hB,OAAiB,WAAI,6BAAgCuQ,EAAQ,MACvGwR,EAAOjJ,OAAOpI,GAAGH,GAEjB00B,EAAUrO,EAAS/kB,KAAM,IAAO7R,EAAmB,aAAI,SAAYA,EAAkB,YAAI,UAAaA,EAAmB,aAAI,MAC7H42B,EAAS7qB,SAAS/L,EAAOklC,eAAkBtO,EAAS7qB,SAAS/L,EAAOmlC,cAAiBvO,EAAS7qB,SAAS/L,EAAOolC,gBAChHH,EAAUA,EAAQp5B,IAAI+qB,EAAS,KAEV,IAAnBqO,EAAQ7uC,QAEZ6uC,EAAQj1B,MAAK,SAAUq1B,EAAYrU,GACjC,IAAIqR,EAAWlnC,EAAE61B,GACjBqR,EAAS72B,SAASxL,EAAOolC,cAEzB,IAAIE,EAAajD,EAASl2B,KAAK,mBAC3BhE,EAAMk6B,EAASl2B,KAAK,YACpB8kB,EAASoR,EAASl2B,KAAK,eACvB+kB,EAAQmR,EAASl2B,KAAK,cACtBo5B,EAAalD,EAAS1wB,OAAO,WAEjCoQ,EAAOgP,UAAUsR,EAAS,GAAKl6B,GAAOm9B,EAAarU,EAAQC,GAAO,GAAO,WACvE,GAAI,MAAOnP,GAA8CA,KAAWA,GAAWA,EAAO/hB,UAAW+hB,EAAOQ,UAAxG,CA+BA,GA9BI+iB,GACFjD,EAASxlC,IAAI,mBAAqB,QAAWyoC,EAAa,MAC1DjD,EAAS91B,WAAW,qBAEhB0kB,IACFoR,EAASl2B,KAAK,SAAU8kB,GACxBoR,EAAS91B,WAAW,gBAElB2kB,IACFmR,EAASl2B,KAAK,QAAS+kB,GACvBmR,EAAS91B,WAAW,eAElBg5B,EAAWnvC,QACbmvC,EAAWx8B,SAAS,UAAUiH,MAAK,SAAUw1B,EAAaC,GACxD,IAAIC,EAAUvqC,EAAEsqC,GAEZC,EAAQv5B,KAAK,iBACfu5B,EAAQv5B,KAAK,SAAUu5B,EAAQv5B,KAAK,gBACpCu5B,EAAQn5B,WAAW,mBAIrBpE,IACFk6B,EAASl2B,KAAK,MAAOhE,GACrBk6B,EAAS91B,WAAW,cAIxB81B,EAAS72B,SAASxL,EAAOmlC,aAAar5B,YAAY9L,EAAOolC,cACzDxO,EAAS/kB,KAAM,IAAO7R,EAAqB,gBAAI/E,SAC3C8mB,EAAO/hB,OAAO4f,MAAQolB,EAAiB,CACzC,IAAIW,EAAqB/O,EAASzqB,KAAK,2BACvC,GAAIyqB,EAAS7qB,SAASgW,EAAO/hB,OAAO6f,qBAAsB,CACxD,IAAI+lB,EAAgB7jB,EAAO1J,WAAWtP,SAAU,6BAAgC48B,EAAqB,WAAe5jB,EAAO/hB,OAA0B,oBAAI,KACzJ+hB,EAAOsU,KAAK0O,YAAYa,EAAcr1B,SAAS,OAC1C,CACL,IAAIs1B,EAAkB9jB,EAAO1J,WAAWtP,SAAU,IAAOgZ,EAAO/hB,OAA0B,oBAAI,6BAAgC2lC,EAAqB,MACnJ5jB,EAAOsU,KAAK0O,YAAYc,EAAgBt1B,SAAS,IAGrDwR,EAAOne,KAAK,iBAAkBgzB,EAAS,GAAIyL,EAAS,IAChDtgB,EAAO/hB,OAAO4e,YAChBmD,EAAOpE,uBAIXoE,EAAOne,KAAK,gBAAiBgzB,EAAS,GAAIyL,EAAS,SAGvD/L,KAAM,WACJ,IAAIvU,EAAStpB,KACT4f,EAAa0J,EAAO1J,WACpB2Z,EAAejQ,EAAO/hB,OACtB8Y,EAASiJ,EAAOjJ,OAChBmF,EAAc8D,EAAO9D,YACrBvF,EAAYqJ,EAAOpJ,SAAWqZ,EAAarZ,QAAQC,QACnD5Y,EAASgyB,EAAaqE,KAEtB5b,EAAgBuX,EAAavX,cAKjC,SAASqrB,EAAWv1B,GAClB,GAAImI,GACF,GAAIL,EAAWtP,SAAU,IAAOipB,EAAuB,WAAI,6BAAgCzhB,EAAQ,MAAQna,OACzG,OAAO,OAEJ,GAAI0iB,EAAOvI,GAAU,OAAO,EACnC,OAAO,EAGT,SAAS6I,EAAW6Z,GAClB,OAAIva,EACKvd,EAAE83B,GAAS9mB,KAAK,2BAElBhR,EAAE83B,GAAS1iB,QAIpB,GArBsB,SAAlBkK,IACFA,EAAgB,GAmBbsH,EAAOsU,KAAK0P,qBAAsBhkB,EAAOsU,KAAK0P,oBAAqB,GACpEhkB,EAAO/hB,OAAOyd,sBAChBpF,EAAWtP,SAAU,IAAOipB,EAA8B,mBAAIhiB,MAAK,SAAUg2B,EAAS/S,GACpF,IAAI1iB,EAAQmI,EAAYvd,EAAE83B,GAAS9mB,KAAK,2BAA6BhR,EAAE83B,GAAS1iB,QAChFwR,EAAOsU,KAAK0O,YAAYx0B,WAErB,GAAIkK,EAAgB,EACzB,IAAK,IAAI9mB,EAAIsqB,EAAatqB,EAAIsqB,EAAcxD,EAAe9mB,GAAK,EAC1DmyC,EAAWnyC,IAAMouB,EAAOsU,KAAK0O,YAAYpxC,QAG/CouB,EAAOsU,KAAK0O,YAAY9mB,GAE1B,GAAIje,EAAOimC,aACT,GAAIxrB,EAAgB,GAAMza,EAAOkmC,oBAAsBlmC,EAAOkmC,mBAAqB,EAAI,CAMrF,IALA,IAAIC,EAASnmC,EAAOkmC,mBAChBvT,EAAMlY,EACN2rB,EAAWnqC,KAAKsf,IAAI0C,EAAc0U,EAAM12B,KAAK0e,IAAIwrB,EAAQxT,GAAM7Z,EAAO1iB,QACtEiwC,EAAWpqC,KAAK0e,IAAIsD,EAAchiB,KAAK0e,IAAIgY,EAAKwT,GAAS,GAEpD1pB,EAAMwB,EAAcxD,EAAegC,EAAM2pB,EAAU3pB,GAAO,EAC7DqpB,EAAWrpB,IAAQsF,EAAOsU,KAAK0O,YAAYtoB,GAGjD,IAAK,IAAIE,EAAM0pB,EAAU1pB,EAAMsB,EAAatB,GAAO,EAC7CmpB,EAAWnpB,IAAQoF,EAAOsU,KAAK0O,YAAYpoB,OAE5C,CACL,IAAIoD,EAAY1H,EAAWtP,SAAU,IAAOipB,EAA2B,gBACnEjS,EAAU3pB,OAAS,GAAK2rB,EAAOsU,KAAK0O,YAAY3rB,EAAW2G,IAE/D,IAAIE,EAAY5H,EAAWtP,SAAU,IAAOipB,EAA2B,gBACnE/R,EAAU7pB,OAAS,GAAK2rB,EAAOsU,KAAK0O,YAAY3rB,EAAW6G,OAuFnEqmB,GAAa,CACfC,aAAc,SAAsB/kB,EAAGC,GACrC,IACM2kB,EACAC,EACAG,EAqBFC,EACAC,EAzBAC,EAIK,SAAU7jC,EAAOjN,GAGtB,IAFAwwC,GAAY,EACZD,EAAWtjC,EAAM1M,OACVgwC,EAAWC,EAAW,GAEvBvjC,EADJ0jC,EAAQJ,EAAWC,GAAY,IACXxwC,EAClBwwC,EAAWG,EAEXJ,EAAWI,EAGf,OAAOJ,GAuBX,OApBA3tC,KAAK+oB,EAAIA,EACT/oB,KAAKgpB,EAAIA,EACThpB,KAAKskC,UAAYvb,EAAEprB,OAAS,EAO5BqC,KAAKmuC,YAAc,SAAqB/E,GACtC,OAAKA,GAGL6E,EAAKC,EAAaluC,KAAK+oB,EAAGqgB,GAC1B4E,EAAKC,EAAK,GAIA7E,EAAKppC,KAAK+oB,EAAEilB,KAAQhuC,KAAKgpB,EAAEilB,GAAMjuC,KAAKgpB,EAAEglB,KAAShuC,KAAK+oB,EAAEklB,GAAMjuC,KAAK+oB,EAAEilB,IAAQhuC,KAAKgpB,EAAEglB,IAR5E,GAUbhuC,MAGTouC,uBAAwB,SAAgC7yC,GACzCyE,KACDquC,WAAWC,SADVtuC,KAEJquC,WAAWC,OAFPtuC,KAEuBuH,OAAO4f,KACrC,IAAI0mB,GAAWC,aAHR9tC,KAG4BwgB,WAAYjlB,EAAEilB,YACjD,IAAIqtB,GAAWC,aAJR9tC,KAI4BugB,SAAUhlB,EAAEglB,YAGvDqI,aAAc,SAAsB2lB,EAAgB1lB,GAClD,IAEIrC,EACAgoB,EAHAllB,EAAStpB,KACTyuC,EAAanlB,EAAO+kB,WAAWK,QAGnC,SAASC,EAAuBpzC,GAK9B,IAAIsqB,EAAYyD,EAAOvJ,cAAgBuJ,EAAOzD,UAAYyD,EAAOzD,UAC7B,UAAhCyD,EAAO/hB,OAAO8mC,WAAWO,KAC3BtlB,EAAO+kB,WAAWD,uBAAuB7yC,GAGzCizC,GAAuBllB,EAAO+kB,WAAWC,OAAOH,aAAatoB,IAG1D2oB,GAAuD,cAAhCllB,EAAO/hB,OAAO8mC,WAAWO,KACnDpoB,GAAcjrB,EAAEmrB,eAAiBnrB,EAAE2qB,iBAAmBoD,EAAO5C,eAAiB4C,EAAOpD,gBACrFsoB,GAAwB3oB,EAAYyD,EAAOpD,gBAAkBM,EAAcjrB,EAAE2qB,gBAG3EoD,EAAO/hB,OAAO8mC,WAAWQ,UAC3BL,EAAsBjzC,EAAEmrB,eAAiB8nB,GAE3CjzC,EAAEgrB,eAAeioB,GACjBjzC,EAAEqtB,aAAa4lB,EAAqBllB,GACpC/tB,EAAEqsB,oBACFrsB,EAAEwrB,sBAEJ,GAAI5f,MAAMhK,QAAQsxC,GAChB,IAAK,IAAIvzC,EAAI,EAAGA,EAAIuzC,EAAW9wC,OAAQzC,GAAK,EACtCuzC,EAAWvzC,KAAO2tB,GAAgB4lB,EAAWvzC,aAAci+B,GAC7DwV,EAAuBF,EAAWvzC,SAG7BuzC,aAAsBtV,GAAUtQ,IAAiB4lB,GAC1DE,EAAuBF,IAG3BnpB,cAAe,SAAuBxiB,EAAU+lB,GAC9C,IAEI3tB,EAFAouB,EAAStpB,KACTyuC,EAAanlB,EAAO+kB,WAAWK,QAEnC,SAASI,EAAwBvzC,GAC/BA,EAAE+pB,cAAcxiB,EAAUwmB,GACT,IAAbxmB,IACFvH,EAAEyuB,kBACEzuB,EAAEgM,OAAO4e,YACXxM,EAAMpP,UAAS,WACbhP,EAAE2pB,sBAGN3pB,EAAEqkB,WAAW1J,eAAc,WACpBu4B,IACDlzC,EAAEgM,OAAO4f,MAAwC,UAAhCmC,EAAO/hB,OAAO8mC,WAAWO,IAC5CrzC,EAAEsvB,UAEJtvB,EAAE2a,qBAIR,GAAI/O,MAAMhK,QAAQsxC,GAChB,IAAKvzC,EAAI,EAAGA,EAAIuzC,EAAW9wC,OAAQzC,GAAK,EAClCuzC,EAAWvzC,KAAO2tB,GAAgB4lB,EAAWvzC,aAAci+B,GAC7D2V,EAAwBL,EAAWvzC,SAG9BuzC,aAAsBtV,GAAUtQ,IAAiB4lB,GAC1DK,EAAwBL,KAI1BM,GAAe,CACjBtzC,KAAM,aACN8L,OAAQ,CACN8mC,WAAY,CACVK,aAAS3gC,EACT8gC,SAAS,EACTD,GAAI,UAGRpyC,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnBquC,WAAY,CACVK,QAHS1uC,KAGOuH,OAAO8mC,WAAWK,QAClCN,uBAAwBP,GAAWO,uBAAuB1xC,KAJjDsD,MAKT4oB,aAAcilB,GAAWjlB,aAAalsB,KAL7BsD,MAMTslB,cAAeuoB,GAAWvoB,cAAc5oB,KAN/BsD,UAUf6K,GAAI,CACFmU,OAAQ,WACOhf,KACDquC,WAAWK,SADV1uC,KAEFquC,WAAWC,SAFTtuC,KAGJquC,WAAWC,YAASvgC,SAHhB/N,KAIGquC,WAAWC,SAG7B/S,OAAQ,WACOv7B,KACDquC,WAAWK,SADV1uC,KAEFquC,WAAWC,SAFTtuC,KAGJquC,WAAWC,YAASvgC,SAHhB/N,KAIGquC,WAAWC,SAG7BrS,eAAgB,WACDj8B,KACDquC,WAAWK,SADV1uC,KAEFquC,WAAWC,SAFTtuC,KAGJquC,WAAWC,YAASvgC,SAHhB/N,KAIGquC,WAAWC,SAG7B1lB,aAAc,SAAsB/C,EAAWgD,GAChC7oB,KACDquC,WAAWK,SADV1uC,KAENquC,WAAWzlB,aAAa/C,EAAWgD,IAE5CvD,cAAe,SAAuBxiB,EAAU+lB,GACjC7oB,KACDquC,WAAWK,SADV1uC,KAENquC,WAAW/oB,cAAcxiB,EAAU+lB,MAK5CmmB,GAAO,CACTC,gBAAiB,SAAyB7vB,GAExC,OADAA,EAAI1L,KAAK,WAAY,KACd0L,GAET8vB,mBAAoB,SAA4B9vB,GAE9C,OADAA,EAAI1L,KAAK,WAAY,MACd0L,GAET+vB,UAAW,SAAmB/vB,EAAKgwB,GAEjC,OADAhwB,EAAI1L,KAAK,OAAQ07B,GACVhwB,GAETiwB,WAAY,SAAoBjwB,EAAKkwB,GAEnC,OADAlwB,EAAI1L,KAAK,aAAc47B,GAChBlwB,GAETmwB,UAAW,SAAmBnwB,GAE5B,OADAA,EAAI1L,KAAK,iBAAiB,GACnB0L,GAETowB,SAAU,SAAkBpwB,GAE1B,OADAA,EAAI1L,KAAK,iBAAiB,GACnB0L,GAETqwB,WAAY,SAAoBvvC,GAC9B,IACIqH,EADSvH,KACOuH,OAAOynC,KAC3B,GAAkB,KAAd9uC,EAAE4+B,QAAN,CACA,IAAIrQ,EAAY/rB,EAAExC,EAAE0G,QAHP5G,KAIFw0B,YAJEx0B,KAImBw0B,WAAWiP,SAAWhV,EAAU5nB,GAJnD7G,KAI6Dw0B,WAAWiP,WAJxEzjC,KAKE4mB,QALF5mB,KAKmBuH,OAAO4f,MAL1BnnB,KAMF2qB,YANE3qB,KAQA4mB,MARA5mB,KASFgvC,KAAKU,OAAOnoC,EAAOooC,kBATjB3vC,KAWFgvC,KAAKU,OAAOnoC,EAAOqoC,mBAXjB5vC,KAcFw0B,YAdEx0B,KAcmBw0B,WAAWkP,SAAWjV,EAAU5nB,GAdnD7G,KAc6Dw0B,WAAWkP,WAdxE1jC,KAeE2mB,cAfF3mB,KAeyBuH,OAAO4f,MAfhCnnB,KAgBF+qB,YAhBE/qB,KAkBA2mB,YAlBA3mB,KAmBFgvC,KAAKU,OAAOnoC,EAAOsoC,mBAnBjB7vC,KAqBFgvC,KAAKU,OAAOnoC,EAAOuoC,mBArBjB9vC,KAwBFgkC,YAAcvV,EAAU5nB,GAAI,IAxB1B7G,KAwBwCuH,OAAOy8B,WAAsB,cAChFvV,EAAU,GAAGshB,UAGjBL,OAAQ,SAAgB9gC,GACtB,IACIohC,EADShwC,KACagvC,KAAKiB,WACH,IAAxBD,EAAaryC,SACjBqyC,EAAax9B,KAAK,IAClBw9B,EAAax9B,KAAK5D,KAEpBshC,iBAAkB,WAGhB,IAFalwC,KAEFuH,OAAO4f,MAFLnnB,KAEqBw0B,WAAlC,CACA,IAAIoD,EAHS53B,KAGIw0B,WACbiP,EAAU7L,EAAI6L,QACdC,EAAU9L,EAAI8L,QAEdA,GAAWA,EAAQ/lC,OAAS,IAPnBqC,KAQA2mB,aARA3mB,KASFgvC,KAAKO,UAAU7L,GATb1jC,KAUFgvC,KAAKE,mBAAmBxL,KAVtB1jC,KAYFgvC,KAAKQ,SAAS9L,GAZZ1jC,KAaFgvC,KAAKC,gBAAgBvL,KAG5BD,GAAWA,EAAQ9lC,OAAS,IAhBnBqC,KAiBA4mB,OAjBA5mB,KAkBFgvC,KAAKO,UAAU9L,GAlBbzjC,KAmBFgvC,KAAKE,mBAAmBzL,KAnBtBzjC,KAqBFgvC,KAAKQ,SAAS/L,GArBZzjC,KAsBFgvC,KAAKC,gBAAgBxL,OAIlC0M,iBAAkB,WAChB,IAAI7mB,EAAStpB,KACTuH,EAAS+hB,EAAO/hB,OAAOynC,KACvB1lB,EAAO0a,YAAc1a,EAAO/hB,OAAOy8B,WAAWsC,WAAahd,EAAO0a,WAAWI,SAAW9a,EAAO0a,WAAWI,QAAQzmC,QACpH2rB,EAAO0a,WAAWI,QAAQ7sB,MAAK,SAAUutB,EAAasL,GACpD,IAAIC,EAAY3tC,EAAE0tC,GAClB9mB,EAAO0lB,KAAKC,gBAAgBoB,GAC5B/mB,EAAO0lB,KAAKG,UAAUkB,EAAW,UACjC/mB,EAAO0lB,KAAKK,WAAWgB,EAAW9oC,EAAO+oC,wBAAwBxwC,QAAQ,gBAAiBuwC,EAAUv4B,QAAU,QAIpHnX,KAAM,WACSX,KAENof,IAAIjH,OAFEnY,KAEYgvC,KAAKiB,YAG9B,IACIxM,EACAC,EAFAn8B,EALSvH,KAKOuH,OAAOynC,KALdhvC,KAQFw0B,YAREx0B,KAQmBw0B,WAAWiP,UACzCA,EATWzjC,KASMw0B,WAAWiP,SATjBzjC,KAWFw0B,YAXEx0B,KAWmBw0B,WAAWkP,UACzCA,EAZW1jC,KAYMw0B,WAAWkP,SAE1BD,IAdSzjC,KAeJgvC,KAAKC,gBAAgBxL,GAfjBzjC,KAgBJgvC,KAAKG,UAAU1L,EAAS,UAhBpBzjC,KAiBJgvC,KAAKK,WAAW5L,EAASl8B,EAAOqoC,kBACvCnM,EAAQ54B,GAAG,UAlBA7K,KAkBkBgvC,KAAKS,aAEhC/L,IApBS1jC,KAqBJgvC,KAAKC,gBAAgBvL,GArBjB1jC,KAsBJgvC,KAAKG,UAAUzL,EAAS,UAtBpB1jC,KAuBJgvC,KAAKK,WAAW3L,EAASn8B,EAAOuoC,kBACvCpM,EAAQ74B,GAAG,UAxBA7K,KAwBkBgvC,KAAKS,aAxBvBzvC,KA4BFgkC,YA5BEhkC,KA4BmBuH,OAAOy8B,WAAWsC,WA5BrCtmC,KA4ByDgkC,WAAWI,SA5BpEpkC,KA4BsFgkC,WAAWI,QAAQzmC,QA5BzGqC,KA6BJgkC,WAAW5kB,IAAIvU,GAAG,UAAY,IA7B1B7K,KA6BwCuH,OAAOy8B,WAAsB,YA7BrEhkC,KA6BgFgvC,KAAKS,aAGpGhV,QAAS,WACP,IAGIgJ,EACAC,EAJS1jC,KACFgvC,KAAKiB,YADHjwC,KACwBgvC,KAAKiB,WAAWtyC,OAAS,GADjDqC,KAC6DgvC,KAAKiB,WAAWztC,SAD7ExC,KAKFw0B,YALEx0B,KAKmBw0B,WAAWiP,UACzCA,EANWzjC,KAMMw0B,WAAWiP,SANjBzjC,KAQFw0B,YAREx0B,KAQmBw0B,WAAWkP,UACzCA,EATW1jC,KASMw0B,WAAWkP,SAE1BD,GACFA,EAAQz4B,IAAI,UAZDhL,KAYmBgvC,KAAKS,YAEjC/L,GACFA,EAAQ14B,IAAI,UAfDhL,KAemBgvC,KAAKS,YAfxBzvC,KAmBFgkC,YAnBEhkC,KAmBmBuH,OAAOy8B,WAAWsC,WAnBrCtmC,KAmByDgkC,WAAWI,SAnBpEpkC,KAmBsFgkC,WAAWI,QAAQzmC,QAnBzGqC,KAoBJgkC,WAAW5kB,IAAIpU,IAAI,UAAY,IApB3BhL,KAoByCuH,OAAOy8B,WAAsB,YApBtEhkC,KAoBiFgvC,KAAKS,cA0DnGc,GAAU,CACZ5vC,KAAM,WAEJ,GADaX,KACDuH,OAAOiK,QAAnB,CACA,IAAKF,EAAIE,UAAYF,EAAIE,QAAQE,UAG/B,OALW1R,KAGJuH,OAAOiK,QAAQ2O,SAAU,OAHrBngB,KAIJuH,OAAOipC,eAAerwB,SAAU,GAGzC,IAAI3O,EAPSxR,KAOQwR,QACrBA,EAAQ2W,aAAc,EACtB3W,EAAQi/B,MAAQF,GAAQG,iBACnBl/B,EAAQi/B,MAAMh0C,KAAQ+U,EAAQi/B,MAAMt0C,SACzCqV,EAAQm/B,cAAc,EAAGn/B,EAAQi/B,MAAMt0C,MAX1B6D,KAWwCuH,OAAO6gB,oBAX/CpoB,KAYDuH,OAAOiK,QAAQC,cACzBH,EAAIpD,iBAAiB,WAbVlO,KAa6BwR,QAAQo/B,uBAGpDnW,QAAS,WACMz6B,KACDuH,OAAOiK,QAAQC,cACzBH,EAAIxB,oBAAoB,WAFb9P,KAEgCwR,QAAQo/B,qBAGvDA,mBAAoB,WACL5wC,KACNwR,QAAQi/B,MAAQF,GAAQG,gBADlB1wC,KAENwR,QAAQm/B,cAFF3wC,KAEuBuH,OAAO4d,MAF9BnlB,KAE4CwR,QAAQi/B,MAAMt0C,OAAO,IAEhFu0C,cAAe,WACb,IAAIG,EAAYv/B,EAAIT,SAASM,SAASjP,MAAM,GAAGN,MAAM,KAAK4N,QAAO,SAAUshC,GAAQ,MAAgB,KAATA,KACtF5M,EAAQ2M,EAAUlzC,OAGtB,MAAO,CAAElB,IAFCo0C,EAAU3M,EAAQ,GAET/nC,MADP00C,EAAU3M,EAAQ,KAGhC6M,WAAY,SAAoBt0C,EAAKqb,GAEnC,GADa9X,KACDwR,QAAQ2W,aADPnoB,KAC8BuH,OAAOiK,QAAQ2O,QAA1D,CACA,IAAImC,EAFStiB,KAEMqgB,OAAOpI,GAAGH,GACzB3b,EAAQo0C,GAAQS,QAAQ1uB,EAAM5O,KAAK,iBAClCpC,EAAIT,SAASM,SAAS8/B,SAASx0C,KAClCN,EAAQM,EAAM,IAAMN,GAEtB,IAAI+0C,EAAe5/B,EAAIE,QAAQ2/B,MAC3BD,GAAgBA,EAAa/0C,QAAUA,IAR9B6D,KAWFuH,OAAOiK,QAAQC,aACxBH,EAAIE,QAAQC,aAAa,CAAEtV,MAAOA,GAAS,KAAMA,GAEjDmV,EAAIE,QAAQE,UAAU,CAAEvV,MAAOA,GAAS,KAAMA,MAGlD60C,QAAS,SAAiBx5B,GACxB,OAAOA,EAAKta,WACT4C,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,IACpBA,QAAQ,OAAQ,KAChBA,QAAQ,MAAO,IACfA,QAAQ,MAAO,KAEpB6wC,cAAe,SAAuBxrB,EAAOhpB,EAAOgtB,GAElD,GAAIhtB,EACF,IAAK,IAAIjB,EAAI,EAAGyC,EAFLqC,KAEqBqgB,OAAO1iB,OAAQzC,EAAIyC,EAAQzC,GAAK,EAAG,CACjE,IAAIonB,EAHKtiB,KAGUqgB,OAAOpI,GAAG/c,GAE7B,GADmBq1C,GAAQS,QAAQ1uB,EAAM5O,KAAK,mBACzBvX,IAAUmmB,EAAMhP,SAL5BtT,KAK4CuH,OAAO6f,qBAAsB,CAChF,IAAItP,EAAQwK,EAAMxK,QANX9X,KAOAkqB,QAAQpS,EAAOqN,EAAOgE,SAPtBnpB,KAWJkqB,QAAQ,EAAG/E,EAAOgE,KAsD3BioB,GAAiB,CACnBC,YAAa,WACErxC,KACNmL,KAAK,cACZ,IAAImmC,EAAU3hC,EAAIkB,SAASC,KAAKhR,QAAQ,IAAK,IAE7C,GAAIwxC,IAJStxC,KAGgBqgB,OAAOpI,GAHvBjY,KAGiCwlB,aAAa9R,KAAK,aAC/B,CAC/B,IAAI+W,EALOzqB,KAKW4f,WAAWtP,SAAU,IALhCtQ,KAK8CuH,OAAiB,WAAI,eAAkB+pC,EAAU,MAAQx5B,QAClH,QAAwB,IAAb2S,EAA4B,OAN5BzqB,KAOJkqB,QAAQO,KAGnB8mB,QAAS,WAEP,GADavxC,KACDwwC,eAAeroB,aADdnoB,KACqCuH,OAAOipC,eAAerwB,QACxE,GAFangB,KAEFuH,OAAOipC,eAAe/+B,cAAgBH,EAAIE,SAAWF,EAAIE,QAAQC,aAC1EH,EAAIE,QAAQC,aAAa,KAAM,KAAQ,IAH5BzR,KAG0CqgB,OAAOpI,GAHjDjY,KAG2DwlB,aAAa9R,KAAK,eAAkB,GAH/F1T,KAIJmL,KAAK,eACP,CACL,IAAImX,EANOtiB,KAMQqgB,OAAOpI,GANfjY,KAMyBwlB,aAChC1U,EAAOwR,EAAM5O,KAAK,cAAgB4O,EAAM5O,KAAK,gBACjD/D,EAAIkB,SAASC,KAAOA,GAAQ,GARjB9Q,KASJmL,KAAK,aAGhBxK,KAAM,WAEJ,MADaX,KACDuH,OAAOipC,eAAerwB,SADrBngB,KACwCuH,OAAOiK,SAD/CxR,KACiEuH,OAAOiK,QAAQ2O,SAA7F,CADangB,KAENwwC,eAAeroB,aAAc,EACpC,IAAIrX,EAAOnB,EAAIkB,SAASC,KAAKhR,QAAQ,IAAK,IAC1C,GAAIgR,EAEF,IADA,IACS5V,EAAI,EAAGyC,EANLqC,KAMqBqgB,OAAO1iB,OAAQzC,EAAIyC,EAAQzC,GAAK,EAAG,CACjE,IAAIonB,EAPKtiB,KAOUqgB,OAAOpI,GAAG/c,GAE7B,IADgBonB,EAAM5O,KAAK,cAAgB4O,EAAM5O,KAAK,mBACpC5C,IAASwR,EAAMhP,SATxBtT,KASwCuH,OAAO6f,qBAAsB,CAC5E,IAAItP,EAAQwK,EAAMxK,QAVX9X,KAWAkqB,QAAQpS,EANP,EALD9X,KAW6BuH,OAAO6gB,oBAAoB,IAXxDpoB,KAeFuH,OAAOipC,eAAegB,YAC/B9uC,EAAE4O,GAAKzG,GAAG,aAhBC7K,KAgBoBwwC,eAAea,eAGlD5W,QAAS,WACMz6B,KACFuH,OAAOipC,eAAegB,YAC/B9uC,EAAE4O,GAAKtG,IAAI,aAFAhL,KAEqBwwC,eAAea,eAuDjDI,GAAW,CACbxnC,IAAK,WACH,IAAIqf,EAAStpB,KACT0xC,EAAiBpoB,EAAOjJ,OAAOpI,GAAGqR,EAAO9D,aACzC3L,EAAQyP,EAAO/hB,OAAOutB,SAASjb,MAC/B63B,EAAeh+B,KAAK,0BACtBmG,EAAQ63B,EAAeh+B,KAAK,yBAA2B4V,EAAO/hB,OAAOutB,SAASjb,OAEhFrQ,aAAa8f,EAAOwL,SAASpsB,SAC7B4gB,EAAOwL,SAASpsB,QAAUiR,EAAMpP,UAAS,WACnC+e,EAAO/hB,OAAOutB,SAAS6c,iBACrBroB,EAAO/hB,OAAO4f,MAChBmC,EAAOuB,UACPvB,EAAOyB,UAAUzB,EAAO/hB,OAAO4d,OAAO,GAAM,GAC5CmE,EAAOne,KAAK,aACFme,EAAO3C,YAGP2C,EAAO/hB,OAAOutB,SAAS8c,gBAIjCtoB,EAAOwL,SAASmO,QAHhB3Z,EAAOY,QAAQZ,EAAOjJ,OAAO1iB,OAAS,EAAG2rB,EAAO/hB,OAAO4d,OAAO,GAAM,GACpEmE,EAAOne,KAAK,cAJZme,EAAOyB,UAAUzB,EAAO/hB,OAAO4d,OAAO,GAAM,GAC5CmE,EAAOne,KAAK,aAOLme,EAAO/hB,OAAO4f,MACvBmC,EAAOuB,UACPvB,EAAOqB,UAAUrB,EAAO/hB,OAAO4d,OAAO,GAAM,GAC5CmE,EAAOne,KAAK,aACFme,EAAO1C,MAGP0C,EAAO/hB,OAAOutB,SAAS8c,gBAIjCtoB,EAAOwL,SAASmO,QAHhB3Z,EAAOY,QAAQ,EAAGZ,EAAO/hB,OAAO4d,OAAO,GAAM,GAC7CmE,EAAOne,KAAK,cAJZme,EAAOqB,UAAUrB,EAAO/hB,OAAO4d,OAAO,GAAM,GAC5CmE,EAAOne,KAAK,aAOVme,EAAO/hB,OAAOqZ,SAAW0I,EAAOwL,SAASC,SAAWzL,EAAOwL,SAAS7qB,QACvE4P,IAELwc,MAAO,WAEL,YAAuC,IAD1Br2B,KACK80B,SAASpsB,UADd1I,KAEF80B,SAASC,UAFP/0B,KAGN80B,SAASC,SAAU,EAHb/0B,KAINmL,KAAK,iBAJCnL,KAKN80B,SAAS7qB,OACT,IAETg5B,KAAM,WAEJ,QADajjC,KACD80B,SAASC,cACkB,IAF1B/0B,KAEK80B,SAASpsB,UAFd1I,KAIF80B,SAASpsB,UAClBc,aALWxJ,KAKS80B,SAASpsB,SALlB1I,KAMJ80B,SAASpsB,aAAUqF,GANf/N,KAQN80B,SAASC,SAAU,EARb/0B,KASNmL,KAAK,iBACL,IAET0mC,MAAO,SAAe1sB,GACPnlB,KACD80B,SAASC,UADR/0B,KAEF80B,SAASE,SAFPh1B,KAGF80B,SAASpsB,SAAWc,aAHlBxJ,KAGsC80B,SAASpsB,SAH/C1I,KAIN80B,SAASE,QAAS,EACX,IAAV7P,GALSnlB,KAKcuH,OAAOutB,SAASgd,mBAL9B9xC,KASJ4f,WAAW,GAAG1R,iBAAiB,gBAT3BlO,KASmD80B,SAASwW,iBAT5DtrC,KAUJ4f,WAAW,GAAG1R,iBAAiB,sBAV3BlO,KAUyD80B,SAASwW,mBAVlEtrC,KAMJ80B,SAASE,QAAS,EANdh1B,KAOJ80B,SAAS7qB,WAkGlB8nC,GAAO,CACTnpB,aAAc,WAGZ,IAFA,IACIvI,EADSrgB,KACOqgB,OACXnlB,EAAI,EAAGA,EAAImlB,EAAO1iB,OAAQzC,GAAK,EAAG,CACzC,IAAIijC,EAHOn+B,KAGWqgB,OAAOpI,GAAG/c,GAE5B82C,GADS7T,EAAS,GAAG1Y,kBAJdzlB,KAMCuH,OAAOmhB,mBAAoBspB,GAN5BhyC,KAMyC6lB,WACpD,IAAIosB,EAAK,EAPEjyC,KAQCuf,iBACV0yB,EAAKD,EACLA,EAAK,GAEP,IAAIE,EAZOlyC,KAYeuH,OAAO4qC,WAAWC,UACxC5uC,KAAK0e,IAAI,EAAI1e,KAAKogB,IAAIua,EAAS,GAAG7X,UAAW,GAC7C,EAAI9iB,KAAKsf,IAAItf,KAAK0e,IAAIic,EAAS,GAAG7X,UAAW,GAAI,GACrD6X,EACG/5B,IAAI,CACH+iC,QAAS+K,IAEV/9B,UAAW,eAAiB69B,EAAK,OAASC,EAAK,cAGtD3sB,cAAe,SAAuBxiB,GACpC,IAAIwmB,EAAStpB,KACTqgB,EAASiJ,EAAOjJ,OAChBT,EAAa0J,EAAO1J,WAExB,GADAS,EAAO/L,WAAWxR,GACdwmB,EAAO/hB,OAAOmhB,kBAAiC,IAAb5lB,EAAgB,CACpD,IAAIuvC,GAAiB,EACrBhyB,EAAOnK,eAAc,WACnB,IAAIm8B,GACC/oB,IAAUA,EAAOQ,UAAtB,CACAuoB,GAAiB,EACjB/oB,EAAOC,WAAY,EAEnB,IADA,IAAI+oB,EAAgB,CAAC,sBAAuB,iBACnCp3C,EAAI,EAAGA,EAAIo3C,EAAc30C,OAAQzC,GAAK,EAC7C0kB,EAAWjb,QAAQ2tC,EAAcp3C,WAoDvCq3C,GAAO,CACT3pB,aAAc,WACZ,IAYI4pB,EAXApzB,EADSpf,KACIof,IACbQ,EAFS5f,KAEW4f,WACpBS,EAHSrgB,KAGOqgB,OAChBoyB,EAJSzyC,KAIYkf,MACrBwzB,EALS1yC,KAKamf,OACtBW,EANS9f,KAMI+f,aACbF,EAPS7f,KAOW0f,KACpBnY,EARSvH,KAQOuH,OAAOorC,WACvBpzB,EATSvf,KASauf,eACtBU,EAVSjgB,KAUUkgB,SAVVlgB,KAU4BuH,OAAO2Y,QAAQC,QACpDyyB,EAAgB,EAEhBrrC,EAAOsrC,SACLtzB,GAE2B,KAD7BizB,EAAgB5yB,EAAWxG,KAAK,wBACdzb,SAChB60C,EAAgB9vC,EAAE,0CAClBkd,EAAWzH,OAAOq6B,IAEpBA,EAAcpuC,IAAI,CAAE+a,OAASszB,EAAc,QAGd,KAD7BD,EAAgBpzB,EAAIhG,KAAK,wBACPzb,SAChB60C,EAAgB9vC,EAAE,0CAClB0c,EAAIjH,OAAOq6B,KAIjB,IAAK,IAAIt3C,EAAI,EAAGA,EAAImlB,EAAO1iB,OAAQzC,GAAK,EAAG,CACzC,IAAIijC,EAAW9d,EAAOpI,GAAG/c,GACrBylB,EAAazlB,EACb+kB,IACFU,EAAalB,SAAS0e,EAASzqB,KAAK,2BAA4B,KAElE,IAAIo/B,EAA0B,GAAbnyB,EACboyB,EAAQvvC,KAAKse,MAAMgxB,EAAa,KAChChzB,IACFgzB,GAAcA,EACdC,EAAQvvC,KAAKse,OAAOgxB,EAAa,MAEnC,IAAIxsB,EAAW9iB,KAAK0e,IAAI1e,KAAKsf,IAAIqb,EAAS,GAAG7X,SAAU,IAAK,GACxD0rB,EAAK,EACLC,EAAK,EACLe,EAAK,EACLryB,EAAa,GAAM,GACrBqxB,EAAc,GAARe,EAAYlzB,EAClBmzB,EAAK,IACKryB,EAAa,GAAK,GAAM,GAClCqxB,EAAK,EACLgB,EAAc,GAARD,EAAYlzB,IACRc,EAAa,GAAK,GAAM,GAClCqxB,EAAKnyB,EAAsB,EAARkzB,EAAYlzB,EAC/BmzB,EAAKnzB,IACKc,EAAa,GAAK,GAAM,IAClCqxB,GAAMnyB,EACNmzB,EAAM,EAAInzB,EAA4B,EAAbA,EAAiBkzB,GAExCjzB,IACFkyB,GAAMA,GAGHzyB,IACH0yB,EAAKD,EACLA,EAAK,GAGP,IAAI79B,EAAY,YAAcoL,EAAe,GAAKuzB,GAAc,iBAAmBvzB,EAAeuzB,EAAa,GAAK,oBAAsBd,EAAK,OAASC,EAAK,OAASe,EAAK,MAM3K,GALI1sB,GAAY,GAAKA,GAAY,IAC/BssB,EAA8B,GAAbjyB,EAA+B,GAAX2F,EACjCxG,IAAO8yB,EAA+B,IAAbjyB,EAA+B,GAAX2F,IAEnD6X,EAAShqB,UAAUA,GACf5M,EAAO0rC,aAAc,CAEvB,IAAIC,EAAe3zB,EAAe4e,EAAS/kB,KAAK,6BAA+B+kB,EAAS/kB,KAAK,4BACzF+5B,EAAc5zB,EAAe4e,EAAS/kB,KAAK,8BAAgC+kB,EAAS/kB,KAAK,+BACjE,IAAxB85B,EAAav1C,SACfu1C,EAAexwC,EAAG,oCAAuC6c,EAAe,OAAS,OAAS,YAC1F4e,EAAShmB,OAAO+6B,IAES,IAAvBC,EAAYx1C,SACdw1C,EAAczwC,EAAG,oCAAuC6c,EAAe,QAAU,UAAY,YAC7F4e,EAAShmB,OAAOg7B,IAEdD,EAAav1C,SAAUu1C,EAAa,GAAG1iC,MAAM22B,QAAU3jC,KAAK0e,KAAKoE,EAAU,IAC3E6sB,EAAYx1C,SAAUw1C,EAAY,GAAG3iC,MAAM22B,QAAU3jC,KAAK0e,IAAIoE,EAAU,KAUhF,GAPA1G,EAAWxb,IAAI,CACb,2BAA6B,YAAeyb,EAAa,EAAK,KAC9D,wBAA0B,YAAeA,EAAa,EAAK,KAC3D,uBAAyB,YAAeA,EAAa,EAAK,KAC1D,mBAAqB,YAAeA,EAAa,EAAK,OAGpDtY,EAAOsrC,OACT,GAAItzB,EACFizB,EAAcr+B,UAAW,qBAAwBs+B,EAAc,EAAKlrC,EAAO6rC,cAAgB,QAAWX,EAAc,EAAK,0CAA6ClrC,EAAkB,YAAI,SACvL,CACL,IAAI8rC,EAAc7vC,KAAKogB,IAAIgvB,GAA6D,GAA3CpvC,KAAKse,MAAMte,KAAKogB,IAAIgvB,GAAiB,IAC9EpsB,EAAa,KACdhjB,KAAK8vC,IAAmB,EAAdD,EAAkB7vC,KAAK+tB,GAAM,KAAO,EAC5C/tB,KAAK+vC,IAAmB,EAAdF,EAAkB7vC,KAAK+tB,GAAM,KAAO,GAE/CiiB,EAASjsC,EAAOksC,YAChBC,EAASnsC,EAAOksC,YAAcjtB,EAC9B7P,EAASpP,EAAO6rC,aACpBZ,EAAcr+B,UAAW,WAAaq/B,EAAS,QAAUE,EAAS,uBAA0BhB,EAAe,EAAK/7B,GAAU,QAAW+7B,EAAe,EAAIgB,EAAU,uBAGtK,IAAIC,EAAW1Y,EAAQE,UAAYF,EAAQG,WAAevb,EAAa,EAAK,EAC5ED,EACGzL,UAAW,qBAAuBw/B,EAAU,gBAjHlC3zC,KAiH2Duf,eAAiB,EAAIqzB,GAAiB,iBAjHjG5yC,KAiH2Huf,gBAAkBqzB,EAAgB,GAAK,SAEjLttB,cAAe,SAAuBxiB,GACpC,IACIsc,EADSpf,KACIof,IADJpf,KAEOqgB,OAEjB/L,WAAWxR,GACXsW,KAAK,gHACL9E,WAAWxR,GAND9C,KAOFuH,OAAOorC,WAAWE,SAPhB7yC,KAOkCuf,gBAC7CH,EAAIhG,KAAK,uBAAuB9E,WAAWxR,KAwD7C8wC,GAAO,CACThrB,aAAc,WAIZ,IAHA,IACIvI,EADSrgB,KACOqgB,OAChBP,EAFS9f,KAEI+f,aACR7kB,EAAI,EAAGA,EAAImlB,EAAO1iB,OAAQzC,GAAK,EAAG,CACzC,IAAIijC,EAAW9d,EAAOpI,GAAG/c,GACrBorB,EAAW6X,EAAS,GAAG7X,SALhBtmB,KAMAuH,OAAOssC,WAAWC,gBAC3BxtB,EAAW9iB,KAAK0e,IAAI1e,KAAKsf,IAAIqb,EAAS,GAAG7X,SAAU,IAAK,IAE1D,IAEIytB,GADU,IAAMztB,EAEhB0tB,EAAU,EACVhC,GAJS7T,EAAS,GAAG1Y,kBAKrBwsB,EAAK,EAYT,GA1BWjyC,KAeCuf,eAKDO,IACTi0B,GAAWA,IALX9B,EAAKD,EACLA,EAAK,EACLgC,GAAWD,EACXA,EAAU,GAKZ5V,EAAS,GAAG3tB,MAAMyjC,QAAUzwC,KAAKogB,IAAIpgB,KAAKuvC,MAAMzsB,IAAajG,EAAO1iB,OAxBzDqC,KA0BAuH,OAAOssC,WAAWZ,aAAc,CAEzC,IAAIC,EA5BKlzC,KA4BiBuf,eAAiB4e,EAAS/kB,KAAK,6BAA+B+kB,EAAS/kB,KAAK,4BAClG+5B,EA7BKnzC,KA6BgBuf,eAAiB4e,EAAS/kB,KAAK,8BAAgC+kB,EAAS/kB,KAAK,+BAC1E,IAAxB85B,EAAav1C,SACfu1C,EAAexwC,EAAG,oCA/BX1C,KA+ByDuf,eAAiB,OAAS,OAAS,YACnG4e,EAAShmB,OAAO+6B,IAES,IAAvBC,EAAYx1C,SACdw1C,EAAczwC,EAAG,oCAnCV1C,KAmCwDuf,eAAiB,QAAU,UAAY,YACtG4e,EAAShmB,OAAOg7B,IAEdD,EAAav1C,SAAUu1C,EAAa,GAAG1iC,MAAM22B,QAAU3jC,KAAK0e,KAAKoE,EAAU,IAC3E6sB,EAAYx1C,SAAUw1C,EAAY,GAAG3iC,MAAM22B,QAAU3jC,KAAK0e,IAAIoE,EAAU,IAE9E6X,EACGhqB,UAAW,eAAiB69B,EAAK,OAASC,EAAK,oBAAsB+B,EAAU,gBAAkBD,EAAU,UAGlHzuB,cAAe,SAAuBxiB,GACpC,IAAIwmB,EAAStpB,KACTqgB,EAASiJ,EAAOjJ,OAChBmF,EAAc8D,EAAO9D,YACrB5F,EAAa0J,EAAO1J,WAKxB,GAJAS,EACG/L,WAAWxR,GACXsW,KAAK,gHACL9E,WAAWxR,GACVwmB,EAAO/hB,OAAOmhB,kBAAiC,IAAb5lB,EAAgB,CACpD,IAAIuvC,GAAiB,EAErBhyB,EAAOpI,GAAGuN,GAAatP,eAAc,WACnC,IAAIm8B,GACC/oB,IAAUA,EAAOQ,UAAtB,CAEAuoB,GAAiB,EACjB/oB,EAAOC,WAAY,EAEnB,IADA,IAAI+oB,EAAgB,CAAC,sBAAuB,iBACnCp3C,EAAI,EAAGA,EAAIo3C,EAAc30C,OAAQzC,GAAK,EAC7C0kB,EAAWjb,QAAQ2tC,EAAcp3C,WAsDvCg5C,GAAY,CACdtrB,aAAc,WAcZ,IAbA,IACI6pB,EADSzyC,KACYkf,MACrBwzB,EAFS1yC,KAEamf,OACtBkB,EAHSrgB,KAGOqgB,OAChBT,EAJS5f,KAIW4f,WACpBa,EALSzgB,KAKgBygB,gBACzBlZ,EANSvH,KAMOuH,OAAO4sC,gBACvB50B,EAPSvf,KAOauf,eACtBpL,EARSnU,KAQU6lB,UACnBuuB,EAAS70B,EAA6BkzB,EAAc,EAA3Bt+B,EAA8Cu+B,EAAe,EAA5Bv+B,EAC1DkgC,EAAS90B,EAAehY,EAAO8sC,QAAU9sC,EAAO8sC,OAChDxuB,EAAYte,EAAO+sC,MAEdp5C,EAAI,EAAGyC,EAAS0iB,EAAO1iB,OAAQzC,EAAIyC,EAAQzC,GAAK,EAAG,CAC1D,IAAIijC,EAAW9d,EAAOpI,GAAG/c,GACrBqmB,EAAYd,EAAgBvlB,GAE5Bq5C,GAAqBH,EADPjW,EAAS,GAAG1Y,kBACmBlE,EAAY,GAAMA,EAAaha,EAAOitC,SAEnFT,EAAUx0B,EAAe80B,EAASE,EAAmB,EACrDP,EAAUz0B,EAAe,EAAI80B,EAASE,EAEtCE,GAAc5uB,EAAYriB,KAAKogB,IAAI2wB,GAEnCG,EAAUntC,EAAOmtC,QAEE,iBAAZA,IAAkD,IAA1BA,EAAQ5sC,QAAQ,OACjD4sC,EAAYnwC,WAAWgD,EAAOmtC,SAAW,IAAOnzB,GAElD,IAAIqqB,EAAarsB,EAAe,EAAIm1B,EAAU,EAC1C/I,EAAapsB,EAAem1B,EAAU,EAAqB,EAE3DlP,EAAQ,GAAK,EAAIj+B,EAAOi+B,OAAShiC,KAAKogB,IAAI2wB,GAG1C/wC,KAAKogB,IAAI+nB,GAAc,OAASA,EAAa,GAC7CnoC,KAAKogB,IAAIgoB,GAAc,OAASA,EAAa,GAC7CpoC,KAAKogB,IAAI6wB,GAAc,OAASA,EAAa,GAC7CjxC,KAAKogB,IAAImwB,GAAW,OAASA,EAAU,GACvCvwC,KAAKogB,IAAIowB,GAAW,OAASA,EAAU,GACvCxwC,KAAKogB,IAAI4hB,GAAS,OAASA,EAAQ,GAEvC,IAAImP,EAAiB,eAAiBhJ,EAAa,MAAQC,EAAa,MAAQ6I,EAAa,gBAAkBT,EAAU,gBAAkBD,EAAU,cAAgBvO,EAAQ,IAI7K,GAFArH,EAAShqB,UAAUwgC,GACnBxW,EAAS,GAAG3tB,MAAMyjC,OAAmD,EAAzCzwC,KAAKogB,IAAIpgB,KAAKuvC,MAAMwB,IAC5ChtC,EAAO0rC,aAAc,CAEvB,IAAI2B,EAAkBr1B,EAAe4e,EAAS/kB,KAAK,6BAA+B+kB,EAAS/kB,KAAK,4BAC5Fy7B,EAAiBt1B,EAAe4e,EAAS/kB,KAAK,8BAAgC+kB,EAAS/kB,KAAK,+BACjE,IAA3Bw7B,EAAgBj3C,SAClBi3C,EAAkBlyC,EAAG,oCAAuC6c,EAAe,OAAS,OAAS,YAC7F4e,EAAShmB,OAAOy8B,IAEY,IAA1BC,EAAel3C,SACjBk3C,EAAiBnyC,EAAG,oCAAuC6c,EAAe,QAAU,UAAY,YAChG4e,EAAShmB,OAAO08B,IAEdD,EAAgBj3C,SAAUi3C,EAAgB,GAAGpkC,MAAM22B,QAAUoN,EAAmB,EAAIA,EAAmB,GACvGM,EAAel3C,SAAUk3C,EAAe,GAAGrkC,MAAM22B,SAAYoN,EAAoB,GAAKA,EAAmB,KAK7G74B,EAAQG,eAAiBH,EAAQo5B,yBAC1Bl1B,EAAW,GAAGpP,MACpBukC,kBAAoBX,EAAS,WAGpC9uB,cAAe,SAAuBxiB,GACvB9C,KACNqgB,OACJ/L,WAAWxR,GACXsW,KAAK,gHACL9E,WAAWxR,KAiDdkyC,GAAS,CACXr0C,KAAM,WACJ,IAEIs0C,EAFSj1C,KACIuH,OACM2tC,OACnB74B,EAHSrc,KAGYlC,YACrBm3C,EAAa3rB,kBAAkBjN,GAJtBrc,KAKJk1C,OAAO5rB,OAAS2rB,EAAa3rB,OACpC3P,EAAMna,OANKQ,KAMSk1C,OAAO5rB,OAAO0N,eAAgB,CAChDjS,qBAAqB,EACrB0D,qBAAqB,IAEvB9O,EAAMna,OAVKQ,KAUSk1C,OAAO5rB,OAAO/hB,OAAQ,CACxCwd,qBAAqB,EACrB0D,qBAAqB,KAEd9O,EAAMrc,SAAS23C,EAAa3rB,UAd1BtpB,KAeJk1C,OAAO5rB,OAAS,IAAIjN,EAAY1C,EAAMna,OAAO,GAAIy1C,EAAa3rB,OAAQ,CAC3EtE,uBAAuB,EACvBD,qBAAqB,EACrB0D,qBAAqB,KAlBZzoB,KAoBJk1C,OAAOC,eAAgB,GApBnBn1C,KAsBNk1C,OAAO5rB,OAAOlK,IAAIrM,SAtBZ/S,KAsB4BuH,OAAO2tC,OAAOE,sBAtB1Cp1C,KAuBNk1C,OAAO5rB,OAAOze,GAAG,MAvBX7K,KAuByBk1C,OAAOG,eAE/CA,aAAc,WACZ,IACIC,EADSt1C,KACak1C,OAAO5rB,OACjC,GAAKgsB,EAAL,CACA,IAAI9sB,EAAe8sB,EAAa9sB,aAC5BD,EAAe+sB,EAAa/sB,aAChC,KAAIA,GAAgB7lB,EAAE6lB,GAAcjV,SALvBtT,KAKuCuH,OAAO2tC,OAAOK,wBAC9D,MAAO/sB,GAAX,CACA,IAAIkD,EAMJ,GAJEA,EADE4pB,EAAa/tC,OAAO4f,KACP1H,SAAS/c,EAAE4yC,EAAa/sB,cAAc7U,KAAK,2BAA4B,IAEvE8U,EAXJxoB,KAaFuH,OAAO4f,KAAM,CACtB,IAAIquB,EAdOx1C,KAcewlB,YAdfxlB,KAeAqgB,OAAOpI,GAAGu9B,GAAcliC,SAfxBtT,KAewCuH,OAAO6f,uBAf/CpnB,KAgBF6qB,UAhBE7qB,KAkBF8qB,YAlBE9qB,KAkBmB4f,WAAW,GAAG7I,WAC1Cy+B,EAnBSx1C,KAmBawlB,aAExB,IAAIyF,EArBOjrB,KAqBYqgB,OAAOpI,GAAGu9B,GAAcx8B,QAAS,6BAAgC0S,EAAe,MAAQzT,GAAG,GAAGH,QACjHwD,EAtBOtb,KAsBYqgB,OAAOpI,GAAGu9B,GAAc58B,QAAS,6BAAgC8S,EAAe,MAAQzT,GAAG,GAAGH,QAC7E4T,OAAf,IAAdT,EAA4C3P,OACzB,IAAdA,EAA4C2P,EACnD3P,EAAYk6B,EAAeA,EAAevqB,EAA4B3P,EACzD2P,EA1BXjrB,KA4BNkqB,QAAQwB,MAEjB1M,OAAQ,SAAgBy2B,GACtB,IACIH,EADSt1C,KACak1C,OAAO5rB,OACjC,GAAKgsB,EAAL,CAEA,IAAItzB,EAAsD,SAAtCszB,EAAa/tC,OAAOya,cACpCszB,EAAa7pB,uBACb6pB,EAAa/tC,OAAOya,cAEpB0zB,EARS11C,KAQiBuH,OAAO2tC,OAAOQ,iBACxCC,EAAYD,IAAqBJ,EAAa/tC,OAAO4f,KACzD,GAVannB,KAUFinB,YAAcquB,EAAaruB,WAAa0uB,EAAW,CAC5D,IACIC,EACA3rB,EAFA4rB,EAAqBP,EAAa9vB,YAGtC,GAAI8vB,EAAa/tC,OAAO4f,KAAM,CACxBmuB,EAAaj1B,OAAOpI,GAAG49B,GAAoBviC,SAASgiC,EAAa/tC,OAAO6f,uBAC1EkuB,EAAazqB,UAEbyqB,EAAaxqB,YAAcwqB,EAAa11B,WAAW,GAAG7I,WACtD8+B,EAAqBP,EAAa9vB,aAGpC,IAAIswB,EAAkBR,EAAaj1B,OAChCpI,GAAG49B,GACH78B,QAAS,6BAxBHhZ,KAwBoD,UAAI,MAAQiY,GAAG,GACzEH,QACCi+B,EAAkBT,EAAaj1B,OAChCpI,GAAG49B,GACHj9B,QAAS,6BA5BH5Y,KA4BoD,UAAI,MAAQiY,GAAG,GACzEH,QAC2C89B,OAAf,IAApBE,EAAoDC,OAC3B,IAApBA,EAAoDD,EAC3DC,EAAkBF,GAAuBA,EAAqBC,EAAoCD,EAClGE,EAAkBF,EAAqBA,EAAqBC,EAAoCC,EACjFD,EACxB7rB,EAnCSjqB,KAmCUwlB,YAnCVxlB,KAmC+B8nB,cAAgB,OAAS,YAGjEmC,GADA2rB,EArCS51C,KAqCeinB,WArCfjnB,KAsC2B8nB,cAAgB,OAAS,OAE3D6tB,IACFC,GAAgC,SAAd3rB,EAAuByrB,GAAoB,EAAIA,GAG/DJ,EAAatvB,sBAAwBsvB,EAAatvB,qBAAqBle,QAAQ8tC,GAAkB,IAC/FN,EAAa/tC,OAAOoc,eAEpBiyB,EADEA,EAAiBC,EACFD,EAAiBpyC,KAAKse,MAAME,EAAgB,GAAK,EAEjD4zB,EAAiBpyC,KAAKse,MAAME,EAAgB,GAAK,EAE3D4zB,EAAiBC,IAC1BD,EAAiBA,EAAiB5zB,EAAgB,GAEpDszB,EAAaprB,QAAQ0rB,EAAgBH,EAAU,OAAI1nC,IAKvD,IAAIioC,EAAmB,EACnBC,EA5DSj2C,KA4DiBuH,OAAO2tC,OAAOK,sBAa5C,GAzEav1C,KA8DFuH,OAAOya,cAAgB,IA9DrBhiB,KA8DkCuH,OAAOoc,iBACpDqyB,EA/DWh2C,KA+DeuH,OAAOya,eA/DtBhiB,KAkEDuH,OAAO2tC,OAAOgB,uBACxBF,EAAmB,GAGrBA,EAAmBxyC,KAAKse,MAAMk0B,GAE9BV,EAAaj1B,OAAOhN,YAAY4iC,GAC5BX,EAAa/tC,OAAO4f,MAASmuB,EAAa/tC,OAAO2Y,SAAWo1B,EAAa/tC,OAAO2Y,QAAQC,QAC1F,IAAK,IAAIjlB,EAAI,EAAGA,EAAI86C,EAAkB96C,GAAK,EACzCo6C,EAAa11B,WAAWtP,SAAU,8BA3EzBtQ,KA2EiEinB,UAAY/rB,GAAK,MAAQ6X,SAASkjC,QAG9G,IAAK,IAAIjyB,EAAM,EAAGA,EAAMgyB,EAAkBhyB,GAAO,EAC/CsxB,EAAaj1B,OAAOpI,GA/EXjY,KA+EqBinB,UAAYjD,GAAKjR,SAASkjC,MA2E5Dv5B,GAAa,CACfoe,EACAC,EACAM,EACAC,EACAqB,GACA8B,GACA4B,GA3yGiB,CACjB5kC,KAAM,aACN8L,OAAQ,CACNy6B,WAAY,CACV7hB,SAAS,EACT+hB,gBAAgB,EAChBI,QAAQ,EACRD,aAAa,EACbK,YAAa,EACbT,aAAc,cAGlBzlC,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnBgiC,WAAY,CACV7hB,SAAS,EACTggB,OAAQG,GAAWH,OAAOzjC,KAJjBsD,MAKTogC,QAASE,GAAWF,QAAQ1jC,KALnBsD,MAMT2G,OAAQ25B,GAAW35B,OAAOjK,KANjBsD,MAOT6hC,iBAAkBvB,GAAWuB,iBAAiBnlC,KAPrCsD,MAQT+hC,iBAAkBzB,GAAWyB,iBAAiBrlC,KARrCsD,MASTqjC,cAAe/C,GAAW+C,cAAc3mC,KAT/BsD,MAUTsjC,cAAehD,GAAWgD,cAAc5mC,KAV/BsD,MAWTugC,eAAgB5mB,EAAMG,MACtB0mB,yBAAqBzyB,EACrB0yB,kBAAmB,OAIzB51B,GAAI,CACFlK,KAAM,YACSX,KACDuH,OAAOy6B,WAAW7hB,SADjBngB,KACmCuH,OAAOqZ,SAD1C5gB,KAEJgiC,WAAW5B,UAFPpgC,KAIFuH,OAAOy6B,WAAW7hB,SAJhBngB,KAIkCgiC,WAAW7B,UAE5D1F,QAAS,WACMz6B,KACFuH,OAAOqZ,SADL5gB,KAEJgiC,WAAW7B,SAFPngC,KAIFgiC,WAAW7hB,SAJTngB,KAI2BgiC,WAAW5B,aAyGtC,CACjB3kC,KAAM,aACN8L,OAAQ,CACNitB,WAAY,CACVC,OAAQ,KACRC,OAAQ,KAERyhB,aAAa,EACbxS,cAAe,yBACf+C,YAAa,uBACb9C,UAAW,uBAGfpnC,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnBw0B,WAAY,CACV7zB,KAAM6iC,GAAW7iC,KAAKjE,KAHbsD,MAITgf,OAAQwkB,GAAWxkB,OAAOtiB,KAJjBsD,MAKTy6B,QAAS+I,GAAW/I,QAAQ/9B,KALnBsD,MAMT8jC,YAAaN,GAAWM,YAAYpnC,KAN3BsD,MAOT6jC,YAAaL,GAAWK,YAAYnnC,KAP3BsD,UAWf6K,GAAI,CACFlK,KAAM,WACSX,KACNw0B,WAAW7zB,OADLX,KAENw0B,WAAWxV,UAEpBo3B,OAAQ,WACOp2C,KACNw0B,WAAWxV,UAEpBq3B,SAAU,WACKr2C,KACNw0B,WAAWxV,UAEpByb,QAAS,WACMz6B,KACNw0B,WAAWiG,WAEpBsV,MAAO,SAAe7vC,GACpB,IASMo2C,EARF1e,EADS53B,KACIw0B,WACbiP,EAAU7L,EAAI6L,QACdC,EAAU9L,EAAI8L,SAHL1jC,KAKJuH,OAAOitB,WAAW2hB,aACrBzzC,EAAExC,EAAE0G,QAAQC,GAAG68B,IACfhhC,EAAExC,EAAE0G,QAAQC,GAAG48B,KAGfA,EACF6S,EAAW7S,EAAQnwB,SAXVtT,KAW0BuH,OAAOitB,WAAWkS,aAC5ChD,IACT4S,EAAW5S,EAAQpwB,SAbVtT,KAa0BuH,OAAOitB,WAAWkS,eAEtC,IAAb4P,EAfOt2C,KAgBFmL,KAAK,iBAhBHnL,WAkBFmL,KAAK,iBAlBHnL,MAoBPyjC,GACFA,EAAQjwB,YArBCxT,KAqBkBuH,OAAOitB,WAAWkS,aAE3ChD,GACFA,EAAQlwB,YAxBCxT,KAwBkBuH,OAAOitB,WAAWkS,iBAuQpC,CACjBjrC,KAAM,aACN8L,OAAQ,CACNy8B,WAAY,CACVhwB,GAAI,KACJuiC,cAAe,OACfjQ,WAAW,EACX6P,aAAa,EACbpQ,aAAc,KACdK,kBAAmB,KACnBH,eAAgB,KAChBN,aAAc,KACdJ,qBAAqB,EACrB3W,KAAM,UACN4V,gBAAgB,EAChBE,mBAAoB,EACpBU,sBAAuB,SAAUoR,GAAU,OAAOA,GAClDnR,oBAAqB,SAAUmR,GAAU,OAAOA,GAChDxQ,YAAa,2BACbjB,kBAAmB,kCACnByB,cAAe,qBACfN,aAAc,4BACdC,WAAY,0BACZO,YAAa,2BACbL,qBAAsB,qCACtBI,yBAA0B,yCAC1BF,eAAgB,8BAChB3C,UAAW,2BAGfpnC,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnBgkC,WAAY,CACVrjC,KAAMojC,GAAWpjC,KAAKjE,KAHbsD,MAIT4lC,OAAQ7B,GAAW6B,OAAOlpC,KAJjBsD,MAKTgf,OAAQ+kB,GAAW/kB,OAAOtiB,KALjBsD,MAMTy6B,QAASsJ,GAAWtJ,QAAQ/9B,KANnBsD,MAOT2kC,mBAAoB,MAI1B95B,GAAI,CACFlK,KAAM,WACSX,KACNgkC,WAAWrjC,OADLX,KAENgkC,WAAW4B,SAFL5lC,KAGNgkC,WAAWhlB,UAEpBy3B,kBAAmB,YACJz2C,KACFuH,OAAO4f,WAEqB,IAH1BnnB,KAGY4kB,YAHZ5kB,KAEJgkC,WAAWhlB,UAKtB03B,gBAAiB,WACF12C,KACDuH,OAAO4f,MADNnnB,KAEJgkC,WAAWhlB,UAGtB23B,mBAAoB,WACL32C,KACFuH,OAAO4f,OADLnnB,KAEJgkC,WAAW4B,SAFP5lC,KAGJgkC,WAAWhlB,WAGtB43B,qBAAsB,WACP52C,KACDuH,OAAO4f,OADNnnB,KAEJgkC,WAAW4B,SAFP5lC,KAGJgkC,WAAWhlB,WAGtByb,QAAS,WACMz6B,KACNgkC,WAAWvJ,WAEpBsV,MAAO,SAAe7vC,GACPF,KAEJuH,OAAOy8B,WAAWhwB,IAFdhU,KAGDuH,OAAOy8B,WAAWmS,aAHjBn2C,KAIDgkC,WAAW5kB,IAAIzhB,OAAS,IAC9B+E,EAAExC,EAAE0G,QAAQ0M,SALLtT,KAKqBuH,OAAOy8B,WAAWgC,gBAGjC,IARNhmC,KAOWgkC,WAAW5kB,IAAI9L,SAP1BtT,KAO0CuH,OAAOy8B,WAAW0C,aAP5D1mC,KASFmL,KAAK,iBATHnL,WAWFmL,KAAK,iBAXHnL,WAaJgkC,WAAW5kB,IAAI5L,YAbXxT,KAa8BuH,OAAOy8B,WAAW0C,iBAqRjD,CAChBjrC,KAAM,YACN8L,OAAQ,CACNq/B,UAAW,CACT5yB,GAAI,KACJ6yB,SAAU,OACVK,MAAM,EACNqB,WAAW,EACXN,eAAe,EACfrE,UAAW,wBACXiT,UAAW,0BAGfr6C,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnB4mC,UAAW,CACTjmC,KAAMgmC,GAAUhmC,KAAKjE,KAHZsD,MAITy6B,QAASkM,GAAUlM,QAAQ/9B,KAJlBsD,MAKTif,WAAY0nB,GAAU1nB,WAAWviB,KALxBsD,MAMT4oB,aAAc+d,GAAU/d,aAAalsB,KAN5BsD,MAOTslB,cAAeqhB,GAAUrhB,cAAc5oB,KAP9BsD,MAQTkoC,gBAAiBvB,GAAUuB,gBAAgBxrC,KARlCsD,MASTooC,iBAAkBzB,GAAUyB,iBAAiB1rC,KATpCsD,MAUT0nC,gBAAiBf,GAAUe,gBAAgBhrC,KAVlCsD,MAWTunC,mBAAoBZ,GAAUY,mBAAmB7qC,KAXxCsD,MAYT6nC,YAAalB,GAAUkB,YAAYnrC,KAZ1BsD,MAaT+nC,WAAYpB,GAAUoB,WAAWrrC,KAbxBsD,MAcTgoC,UAAWrB,GAAUqB,UAAUtrC,KAdtBsD,MAeT+uB,WAAW,EACXrmB,QAAS,KACTo/B,YAAa,SAInBj9B,GAAI,CACFlK,KAAM,WACSX,KACN4mC,UAAUjmC,OADJX,KAEN4mC,UAAU3nB,aAFJjf,KAGN4mC,UAAUhe,gBAEnB5J,OAAQ,WACOhf,KACN4mC,UAAU3nB,cAEnBsc,OAAQ,WACOv7B,KACN4mC,UAAU3nB,cAEnBgd,eAAgB,WACDj8B,KACN4mC,UAAU3nB,cAEnB2J,aAAc,WACC5oB,KACN4mC,UAAUhe,gBAEnBtD,cAAe,SAAuBxiB,GACvB9C,KACN4mC,UAAUthB,cAAcxiB,IAEjC23B,QAAS,WACMz6B,KACN4mC,UAAUnM,aAyFN,CACfh/B,KAAM,WACN8L,OAAQ,CACNqhC,SAAU,CACRzoB,SAAS,IAGb3jB,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnB4oC,SAAU,CACRH,aAAcD,GAASC,aAAa/rC,KAH3BsD,MAIT4oB,aAAc4f,GAAS5f,aAAalsB,KAJ3BsD,MAKTslB,cAAekjB,GAASljB,cAAc5oB,KAL7BsD,UASf6K,GAAI,CACF6zB,WAAY,WACG1+B,KACDuH,OAAOqhC,SAASzoB,UADfngB,KAENuH,OAAOwd,qBAAsB,EAFvB/kB,KAGNg3B,eAAejS,qBAAsB,IAE9CpkB,KAAM,WACSX,KACDuH,OAAOqhC,SAASzoB,SADfngB,KAEN4oC,SAAShgB,gBAElBA,aAAc,WACC5oB,KACDuH,OAAOqhC,SAASzoB,SADfngB,KAEN4oC,SAAShgB,gBAElBtD,cAAe,SAAuBxiB,GACvB9C,KACDuH,OAAOqhC,SAASzoB,SADfngB,KAEN4oC,SAAStjB,cAAcxiB,MAocvB,CACXrH,KAAM,OACN8L,OAAQ,CACNgiC,KAAM,CACJppB,SAAS,EACT2pB,SAAU,EACVtS,SAAU,EACV/jB,QAAQ,EACRqjC,eAAgB,wBAChBC,iBAAkB,wBAGtBv6C,OAAQ,WACN,IAAI8sB,EAAStpB,KACTupC,EAAO,CACTppB,SAAS,EACTqlB,MAAO,EACPmD,aAAc,EACdoB,WAAW,EACXP,QAAS,CACPrL,cAAUpwB,EACVq8B,gBAAYr8B,EACZs8B,iBAAat8B,EACb67B,cAAU77B,EACV87B,kBAAc97B,EACd+7B,SAAU,GAEZnR,MAAO,CACL5J,eAAWhhB,EACXihB,aAASjhB,EACTshB,cAAUthB,EACVyhB,cAAUzhB,EACVy8B,UAAMz8B,EACN28B,UAAM38B,EACN08B,UAAM18B,EACN48B,UAAM58B,EACNmR,WAAOnR,EACPoR,YAAQpR,EACR2hB,YAAQ3hB,EACR4hB,YAAQ5hB,EACRo8B,aAAc,GACdS,eAAgB,IAElB5X,SAAU,CACRjK,OAAGhb,EACHib,OAAGjb,EACH88B,mBAAe98B,EACf+8B,mBAAe/8B,EACfg9B,cAAUh9B,IAId,+HAAiInM,MAAM,KAAKpE,SAAQ,SAAUkc,GAC5J6vB,EAAK7vB,GAAcsvB,GAAKtvB,GAAYhd,KAAK4sB,MAE3C3P,EAAMna,OAAO8pB,EAAQ,CACnBigB,KAAMA,IAGR,IAAI/D,EAAQ,EACZ5pC,OAAOC,eAAeytB,EAAOigB,KAAM,QAAS,CAC1CxtC,IAAK,WACH,OAAOypC,GAET3kC,IAAK,SAAa1E,GAChB,GAAIqpC,IAAUrpC,EAAO,CACnB,IAAIo8B,EAAUjP,EAAOigB,KAAKC,QAAQI,SAAWtgB,EAAOigB,KAAKC,QAAQI,SAAS,QAAK77B,EAC3EysB,EAAUlR,EAAOigB,KAAKC,QAAQrL,SAAW7U,EAAOigB,KAAKC,QAAQrL,SAAS,QAAKpwB,EAC/Eub,EAAOne,KAAK,aAAchP,EAAOo8B,EAASiC,GAE5CgL,EAAQrpC,MAId0O,GAAI,CACFlK,KAAM,WACSX,KACFuH,OAAOgiC,KAAKppB,SADVngB,KAEJupC,KAAKpJ,UAGhB1F,QAAS,WACMz6B,KACNupC,KAAKnJ,WAEd4W,WAAY,SAAoB92C,GACjBF,KACDupC,KAAKppB,SADJngB,KAENupC,KAAKlb,aAAanuB,IAE3B+2C,SAAU,SAAkB/2C,GACbF,KACDupC,KAAKppB,SADJngB,KAENupC,KAAKjX,WAAWpyB,IAEzBg3C,UAAW,SAAmBh3C,GACfF,KACFuH,OAAOgiC,KAAKppB,SADVngB,KAC4BupC,KAAKppB,SADjCngB,KACmDuH,OAAOgiC,KAAK91B,QAD/DzT,KAEJupC,KAAK91B,OAAOvT,IAGvBgW,cAAe,WACAlW,KACFupC,KAAKppB,SADHngB,KACqBuH,OAAOgiC,KAAKppB,SADjCngB,KAEJupC,KAAK+B,mBAGhB6L,YAAa,WACEn3C,KACFupC,KAAKppB,SADHngB,KACqBuH,OAAOgiC,KAAKppB,SADjCngB,KACmDuH,OAAOqZ,SAD1D5gB,KAEJupC,KAAK+B,qBA2JP,CACX7vC,KAAM,OACN8L,OAAQ,CACNq2B,KAAM,CACJzd,SAAS,EACTqtB,cAAc,EACdC,mBAAoB,EACpB2J,uBAAuB,EAEvB3K,aAAc,cACdE,aAAc,sBACdD,YAAa,qBACb2K,eAAgB,0BAGpB76C,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnB49B,KAAM,CACJ0P,oBAAoB,EACpBzP,KAAMwO,GAAKxO,KAAKnhC,KAJPsD,MAKTssC,YAAaD,GAAKC,YAAY5vC,KALrBsD,UASf6K,GAAI,CACF6zB,WAAY,WACG1+B,KACFuH,OAAOq2B,KAAKzd,SADVngB,KAC4BuH,OAAOmuB,gBADnC11B,KAEJuH,OAAOmuB,eAAgB,IAGlC/0B,KAAM,WACSX,KACFuH,OAAOq2B,KAAKzd,UADVngB,KAC6BuH,OAAO4f,MAAuC,IAD3EnnB,KACmDuH,OAAO4iB,cAD1DnqB,KAEJ49B,KAAKC,QAGhByZ,OAAQ,WACOt3C,KACFuH,OAAO2qB,WADLlyB,KACyBuH,OAAOssB,gBADhC7zB,KAEJ49B,KAAKC,QAGhBtC,OAAQ,WACOv7B,KACFuH,OAAOq2B,KAAKzd,SADVngB,KAEJ49B,KAAKC,QAGhB0Z,kBAAmB,WACJv3C,KACFuH,OAAOq2B,KAAKzd,SADVngB,KAEJ49B,KAAKC,QAGhB7T,gBAAiB,WACFhqB,KACFuH,OAAOq2B,KAAKzd,UADVngB,KAEAuH,OAAOq2B,KAAKwZ,wBAFZp3C,KAE8CuH,OAAOq2B,KAAKwZ,wBAF1Dp3C,KAE2F49B,KAAK0P,qBAFhGttC,KAGF49B,KAAKC,QAIlB3nB,cAAe,WACAlW,KACFuH,OAAOq2B,KAAKzd,UADVngB,KAC6BuH,OAAOq2B,KAAKwZ,uBADzCp3C,KAEJ49B,KAAKC,QAGhBsZ,YAAa,WACEn3C,KACFuH,OAAOq2B,KAAKzd,SADVngB,KAC4BuH,OAAOqZ,SADnC5gB,KAEJ49B,KAAKC,UA4gDlBkR,GA/qCS,CACTtzC,KAAM,OACN8L,OAAQ,CACNynC,KAAM,CACJ7uB,SAAS,EACTq3B,kBAAmB,sBACnB1H,iBAAkB,iBAClBF,iBAAkB,aAClBC,kBAAmB,0BACnBF,iBAAkB,yBAClBW,wBAAyB,0BAG7B9zC,OAAQ,WACN,IAAI8sB,EAAStpB,KACb2Z,EAAMna,OAAO8pB,EAAQ,CACnB0lB,KAAM,CACJiB,WAAYvtC,EAAG,gBAAoB4mB,EAAO/hB,OAAOynC,KAAsB,kBAAI,yDAG/EpzC,OAAO2T,KAAKy/B,IAAMxxC,SAAQ,SAAUkc,GAClC4P,EAAO0lB,KAAKt1B,GAAcs1B,GAAKt1B,GAAYhd,KAAK4sB,OAGpDze,GAAI,CACFlK,KAAM,WACSX,KACDuH,OAAOynC,KAAK7uB,UADXngB,KAENgvC,KAAKruC,OAFCX,KAGNgvC,KAAKkB,qBAEdkG,OAAQ,WACOp2C,KACDuH,OAAOynC,KAAK7uB,SADXngB,KAENgvC,KAAKkB,oBAEdmG,SAAU,WACKr2C,KACDuH,OAAOynC,KAAK7uB,SADXngB,KAENgvC,KAAKkB,oBAEduH,iBAAkB,WACHz3C,KACDuH,OAAOynC,KAAK7uB,SADXngB,KAENgvC,KAAKmB,oBAEd1V,QAAS,WACMz6B,KACDuH,OAAOynC,KAAK7uB,SADXngB,KAENgvC,KAAKvU,aAoFF,CACdh/B,KAAM,UACN8L,OAAQ,CACNiK,QAAS,CACP2O,SAAS,EACT1O,cAAc,EACdhV,IAAK,WAGTD,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnBwR,QAAS,CACP7Q,KAAM4vC,GAAQ5vC,KAAKjE,KAHVsD,MAIT+wC,WAAYR,GAAQQ,WAAWr0C,KAJtBsD,MAKT4wC,mBAAoBL,GAAQK,mBAAmBl0C,KALtCsD,MAMT2wC,cAAeJ,GAAQI,cAAcj0C,KAN5BsD,MAOTy6B,QAAS8V,GAAQ9V,QAAQ/9B,KAPhBsD,UAWf6K,GAAI,CACFlK,KAAM,WACSX,KACFuH,OAAOiK,QAAQ2O,SADbngB,KAEJwR,QAAQ7Q,QAGnB85B,QAAS,WACMz6B,KACFuH,OAAOiK,QAAQ2O,SADbngB,KAEJwR,QAAQipB,WAGnBvkB,cAAe,WACAlW,KACFwR,QAAQ2W,aADNnoB,KAEJwR,QAAQu/B,WAFJ/wC,KAEsBuH,OAAOiK,QAAQ/U,IAFrCuD,KAEiDwlB,cAGhE2xB,YAAa,WACEn3C,KACFwR,QAAQ2W,aADNnoB,KAC4BuH,OAAOqZ,SADnC5gB,KAEJwR,QAAQu/B,WAFJ/wC,KAEsBuH,OAAOiK,QAAQ/U,IAFrCuD,KAEiDwlB,gBA0D7C,CACrB/pB,KAAM,kBACN8L,OAAQ,CACNipC,eAAgB,CACdrwB,SAAS,EACT1O,cAAc,EACd+/B,YAAY,IAGhBh1C,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnBwwC,eAAgB,CACdroB,aAAa,EACbxnB,KAAMywC,GAAezwC,KAAKjE,KAJjBsD,MAKTy6B,QAAS2W,GAAe3W,QAAQ/9B,KALvBsD,MAMTuxC,QAASH,GAAeG,QAAQ70C,KANvBsD,MAOTqxC,YAAaD,GAAeC,YAAY30C,KAP/BsD,UAWf6K,GAAI,CACFlK,KAAM,WACSX,KACFuH,OAAOipC,eAAerwB,SADpBngB,KAEJwwC,eAAe7vC,QAG1B85B,QAAS,WACMz6B,KACFuH,OAAOipC,eAAerwB,SADpBngB,KAEJwwC,eAAe/V,WAG1BvkB,cAAe,WACAlW,KACFwwC,eAAeroB,aADbnoB,KAEJwwC,eAAee,WAG1B4F,YAAa,WACEn3C,KACFwwC,eAAeroB,aADbnoB,KACmCuH,OAAOqZ,SAD1C5gB,KAEJwwC,eAAee,aAsFb,CACf91C,KAAM,WACN8L,OAAQ,CACNutB,SAAU,CACR3U,SAAS,EACTtG,MAAO,IACPi4B,mBAAmB,EACnB4F,sBAAsB,EACtB9F,iBAAiB,EACjBD,kBAAkB,IAGtBn1C,OAAQ,WACN,IAAI8sB,EAAStpB,KACb2Z,EAAMna,OAAO8pB,EAAQ,CACnBwL,SAAU,CACRC,SAAS,EACTC,QAAQ,EACR/qB,IAAKwnC,GAASxnC,IAAIvN,KAAK4sB,GACvB+M,MAAOob,GAASpb,MAAM35B,KAAK4sB,GAC3B2Z,KAAMwO,GAASxO,KAAKvmC,KAAK4sB,GACzBuoB,MAAOJ,GAASI,MAAMn1C,KAAK4sB,GAC3BquB,mBAAoB,WACe,WAA7Bz4C,SAAS04C,iBAAgCtuB,EAAOwL,SAASC,SAC3DzL,EAAOwL,SAAS+c,QAEe,YAA7B3yC,SAAS04C,iBAAiCtuB,EAAOwL,SAASE,SAC5D1L,EAAOwL,SAAS7qB,MAChBqf,EAAOwL,SAASE,QAAS,IAG7BsW,gBAAiB,SAAyBprC,GACnCopB,IAAUA,EAAOQ,WAAcR,EAAO1J,YACvC1f,EAAE0G,SAAW5G,OACjBspB,EAAO1J,WAAW,GAAG9P,oBAAoB,gBAAiBwZ,EAAOwL,SAASwW,iBAC1EhiB,EAAO1J,WAAW,GAAG9P,oBAAoB,sBAAuBwZ,EAAOwL,SAASwW,iBAChFhiB,EAAOwL,SAASE,QAAS,EACpB1L,EAAOwL,SAASC,QAGnBzL,EAAOwL,SAAS7qB,MAFhBqf,EAAOwL,SAASmO,aAQ1Bp4B,GAAI,CACFlK,KAAM,WACSX,KACFuH,OAAOutB,SAAS3U,UADdngB,KAEJ80B,SAASuB,QAChBn3B,SAASgP,iBAAiB,mBAHflO,KAG0C80B,SAAS6iB,sBAGlEE,sBAAuB,SAA+B1yB,EAAOkE,GAC9CrpB,KACF80B,SAASC,UACd1L,IAFOrpB,KAEauH,OAAOutB,SAAS4iB,qBAF7B13C,KAGF80B,SAAS+c,MAAM1sB,GAHbnlB,KAKF80B,SAASmO,SAItB6U,gBAAiB,WACF93C,KACF80B,SAASC,UADP/0B,KAEAuH,OAAOutB,SAAS4iB,qBAFhB13C,KAGF80B,SAASmO,OAHPjjC,KAKF80B,SAAS+c,UAItBoF,SAAU,WACKj3C,KACFuH,OAAOqZ,SADL5gB,KACuB80B,SAASE,SADhCh1B,KACkDuH,OAAOutB,SAAS4iB,sBADlE13C,KAEJ80B,SAAS7qB,OAGpBwwB,QAAS,WACMz6B,KACF80B,SAASC,SADP/0B,KAEJ80B,SAASmO,OAElB/jC,SAAS4Q,oBAAoB,mBAJhB9P,KAI2C80B,SAAS6iB,uBAkDtD,CACfl8C,KAAM,cACN8L,OAAQ,CACN4qC,WAAY,CACVC,WAAW,IAGf51C,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnBmyC,WAAY,CACVvpB,aAAcmpB,GAAKnpB,aAAalsB,KAHvBsD,MAITslB,cAAeysB,GAAKzsB,cAAc5oB,KAJzBsD,UAQf6K,GAAI,CACF6zB,WAAY,WAEV,GAA6B,SADhB1+B,KACFuH,OAAOuc,OAAlB,CADa9jB,KAENi4B,WAAWrwB,KAFL5H,KAEmBuH,OAA6B,uBAAI,QACjE,IAAIo3B,EAAkB,CACpB3c,cAAe,EACfH,gBAAiB,EACjBa,eAAgB,EAChBqC,qBAAqB,EACrB5D,aAAc,EACduH,kBAAkB,GAEpB/O,EAAMna,OAXOQ,KAWOuH,OAAQo3B,GAC5BhlB,EAAMna,OAZOQ,KAYOg3B,eAAgB2H,KAEtC/V,aAAc,WAEiB,SADhB5oB,KACFuH,OAAOuc,QADL9jB,KAENmyC,WAAWvpB,gBAEpBtD,cAAe,SAAuBxiB,GAEP,SADhB9C,KACFuH,OAAOuc,QADL9jB,KAENmyC,WAAW7sB,cAAcxiB,MAwIrB,CACfrH,KAAM,cACN8L,OAAQ,CACNorC,WAAY,CACVM,cAAc,EACdJ,QAAQ,EACRO,aAAc,GACdK,YAAa,MAGjBj3C,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnB2yC,WAAY,CACV/pB,aAAc2pB,GAAK3pB,aAAalsB,KAHvBsD,MAITslB,cAAeitB,GAAKjtB,cAAc5oB,KAJzBsD,UAQf6K,GAAI,CACF6zB,WAAY,WAEV,GAA6B,SADhB1+B,KACFuH,OAAOuc,OAAlB,CADa9jB,KAENi4B,WAAWrwB,KAFL5H,KAEmBuH,OAA6B,uBAAI,QAFpDvH,KAGNi4B,WAAWrwB,KAHL5H,KAGmBuH,OAA6B,uBAAI,MACjE,IAAIo3B,EAAkB,CACpB3c,cAAe,EACfH,gBAAiB,EACjBa,eAAgB,EAChBqC,qBAAqB,EACrBgN,gBAAiB,EACjB5Q,aAAc,EACdwC,gBAAgB,EAChB+E,kBAAkB,GAEpB/O,EAAMna,OAdOQ,KAcOuH,OAAQo3B,GAC5BhlB,EAAMna,OAfOQ,KAeOg3B,eAAgB2H,KAEtC/V,aAAc,WAEiB,SADhB5oB,KACFuH,OAAOuc,QADL9jB,KAEN2yC,WAAW/pB,gBAEpBtD,cAAe,SAAuBxiB,GAEP,SADhB9C,KACFuH,OAAOuc,QADL9jB,KAEN2yC,WAAWrtB,cAAcxiB,MA+ErB,CACfrH,KAAM,cACN8L,OAAQ,CACNssC,WAAY,CACVZ,cAAc,EACda,eAAe,IAGnBt3C,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnB6zC,WAAY,CACVjrB,aAAcgrB,GAAKhrB,aAAalsB,KAHvBsD,MAITslB,cAAesuB,GAAKtuB,cAAc5oB,KAJzBsD,UAQf6K,GAAI,CACF6zB,WAAY,WAEV,GAA6B,SADhB1+B,KACFuH,OAAOuc,OAAlB,CADa9jB,KAENi4B,WAAWrwB,KAFL5H,KAEmBuH,OAA6B,uBAAI,QAFpDvH,KAGNi4B,WAAWrwB,KAHL5H,KAGmBuH,OAA6B,uBAAI,MACjE,IAAIo3B,EAAkB,CACpB3c,cAAe,EACfH,gBAAiB,EACjBa,eAAgB,EAChBqC,qBAAqB,EACrB5D,aAAc,EACduH,kBAAkB,GAEpB/O,EAAMna,OAZOQ,KAYOuH,OAAQo3B,GAC5BhlB,EAAMna,OAbOQ,KAaOg3B,eAAgB2H,KAEtC/V,aAAc,WAEiB,SADhB5oB,KACFuH,OAAOuc,QADL9jB,KAEN6zC,WAAWjrB,gBAEpBtD,cAAe,SAAuBxiB,GAEP,SADhB9C,KACFuH,OAAOuc,QADL9jB,KAEN6zC,WAAWvuB,cAAcxiB,MAqFhB,CACpBrH,KAAM,mBACN8L,OAAQ,CACN4sC,gBAAiB,CACfE,OAAQ,GACRK,QAAS,EACTJ,MAAO,IACP9O,MAAO,EACPgP,SAAU,EACVvB,cAAc,IAGlBz2C,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnBm0C,gBAAiB,CACfvrB,aAAcsrB,GAAUtrB,aAAalsB,KAH5BsD,MAITslB,cAAe4uB,GAAU5uB,cAAc5oB,KAJ9BsD,UAQf6K,GAAI,CACF6zB,WAAY,WAEmB,cADhB1+B,KACFuH,OAAOuc,SADL9jB,KAGNi4B,WAAWrwB,KAHL5H,KAGmBuH,OAA6B,uBAAI,aAHpDvH,KAINi4B,WAAWrwB,KAJL5H,KAImBuH,OAA6B,uBAAI,MAJpDvH,KAMNuH,OAAOwd,qBAAsB,EANvB/kB,KAONg3B,eAAejS,qBAAsB,IAE9C6D,aAAc,WAEiB,cADhB5oB,KACFuH,OAAOuc,QADL9jB,KAENm0C,gBAAgBvrB,gBAEzBtD,cAAe,SAAuBxiB,GAEP,cADhB9C,KACFuH,OAAOuc,QADL9jB,KAENm0C,gBAAgB7uB,cAAcxiB,MAoJ5B,CACbrH,KAAM,SACN8L,OAAQ,CACN2tC,OAAQ,CACN5rB,OAAQ,KACR4sB,sBAAsB,EACtBR,iBAAkB,EAClBH,sBAAuB,4BACvBH,qBAAsB,4BAG1B54C,OAAQ,WAENmd,EAAMna,OADOQ,KACQ,CACnBk1C,OAAQ,CACN5rB,OAAQ,KACR3oB,KAAMq0C,GAAOr0C,KAAKjE,KAJTsD,MAKTgf,OAAQg2B,GAAOh2B,OAAOtiB,KALbsD,MAMTq1C,aAAcL,GAAOK,aAAa34C,KANzBsD,UAUf6K,GAAI,CACF6zB,WAAY,WACV,IAEIwW,EAFSl1C,KACIuH,OACA2tC,OACZA,GAAWA,EAAO5rB,SAHVtpB,KAINk1C,OAAOv0C,OAJDX,KAKNk1C,OAAOl2B,QAAO,KAEvBm4B,YAAa,WACEn3C,KACDk1C,OAAO5rB,QADNtpB,KAENk1C,OAAOl2B,UAEhBA,OAAQ,WACOhf,KACDk1C,OAAO5rB,QADNtpB,KAENk1C,OAAOl2B,UAEhBuc,OAAQ,WACOv7B,KACDk1C,OAAO5rB,QADNtpB,KAENk1C,OAAOl2B,UAEhBid,eAAgB,WACDj8B,KACDk1C,OAAO5rB,QADNtpB,KAENk1C,OAAOl2B,UAEhBsG,cAAe,SAAuBxiB,GACpC,IACIwyC,EADSt1C,KACak1C,OAAO5rB,OAC5BgsB,GACLA,EAAahwB,cAAcxiB,IAE7Bi1C,cAAe,WACb,IACIzC,EADSt1C,KACak1C,OAAO5rB,OAC5BgsB,GAFQt1C,KAGFk1C,OAAOC,eAAiBG,GACjCA,EAAa7a,cA0CrB,YAP0B,IAAftB,EAAOxb,MAChBwb,EAAOxb,IAAMwb,EAAOtmB,MAAM8K,IAC1Bwb,EAAOvb,cAAgBub,EAAOtmB,MAAM+K,eAGtCub,EAAOxb,IAAIjB,IAEJyc,EAjlRyEh5B,I,6BCbpF;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAI63C,EAA8B,oBAAX/4C,QAA8C,oBAAbC,UAAiD,oBAAdH,UAEvFk5C,EAAkB,WAEpB,IADA,IAAIC,EAAwB,CAAC,OAAQ,UAAW,WACvCh9C,EAAI,EAAGA,EAAIg9C,EAAsBv6C,OAAQzC,GAAK,EACrD,GAAI88C,GAAaj5C,UAAUwS,UAAUzJ,QAAQowC,EAAsBh9C,KAAO,EACxE,OAAO,EAGX,OAAO,EAPa,GAqCtB,IAWIi9C,EAXqBH,GAAa/4C,OAAOiN,QA3B7C,SAA2BxO,GACzB,IAAIsF,GAAS,EACb,OAAO,WACDA,IAGJA,GAAS,EACT/D,OAAOiN,QAAQC,UAAUoC,MAAK,WAC5BvL,GAAS,EACTtF,UAKN,SAAsBA,GACpB,IAAI06C,GAAY,EAChB,OAAO,WACAA,IACHA,GAAY,EACZh1C,YAAW,WACTg1C,GAAY,EACZ16C,MACCu6C,MAyBT,SAAS16C,EAAW86C,GAElB,OAAOA,GAA8D,sBADvD,GACoBn7C,SAAS7B,KAAKg9C,GAUlD,SAASC,EAAyB10C,EAAS/G,GACzC,GAAyB,IAArB+G,EAAQmB,SACV,MAAO,GAGT,IACIX,EADSR,EAAQ20C,cAAcC,YAClB1mC,iBAAiBlO,EAAS,MAC3C,OAAO/G,EAAWuH,EAAIvH,GAAYuH,EAUpC,SAASq0C,EAAc70C,GACrB,MAAyB,SAArBA,EAAQqM,SACHrM,EAEFA,EAAQqC,YAAcrC,EAAQmN,KAUvC,SAAS2nC,EAAgB90C,GAEvB,IAAKA,EACH,OAAO1E,SAAS2Q,KAGlB,OAAQjM,EAAQqM,UACd,IAAK,OACL,IAAK,OACH,OAAOrM,EAAQ20C,cAAc1oC,KAC/B,IAAK,YACH,OAAOjM,EAAQiM,KAKnB,IAAI8oC,EAAwBL,EAAyB10C,GACjDg1C,EAAWD,EAAsBC,SACjCC,EAAYF,EAAsBE,UAClCC,EAAYH,EAAsBG,UAEtC,MAAI,wBAAwBz3C,KAAKu3C,EAAWE,EAAYD,GAC/Cj1C,EAGF80C,EAAgBD,EAAc70C,IAUvC,SAASm1C,EAAiBC,GACxB,OAAOA,GAAaA,EAAUC,cAAgBD,EAAUC,cAAgBD,EAG1E,IAAIE,EAASlB,MAAgB/4C,OAAOk6C,uBAAwBj6C,SAASk6C,cACjEC,EAASrB,GAAa,UAAU32C,KAAKtC,UAAUwS,WASnD,SAAS+nC,EAAKlzC,GACZ,OAAgB,KAAZA,EACK8yC,EAEO,KAAZ9yC,EACKizC,EAEFH,GAAUG,EAUnB,SAASE,EAAgB31C,GACvB,IAAKA,EACH,OAAO1E,SAAS0G,gBAQlB,IALA,IAAI4zC,EAAiBF,EAAK,IAAMp6C,SAAS2Q,KAAO,KAG5C4pC,EAAe71C,EAAQ61C,cAAgB,KAEpCA,IAAiBD,GAAkB51C,EAAQ+U,oBAChD8gC,GAAgB71C,EAAUA,EAAQ+U,oBAAoB8gC,aAGxD,IAAIxpC,EAAWwpC,GAAgBA,EAAaxpC,SAE5C,OAAKA,GAAyB,SAAbA,GAAoC,SAAbA,GAMsB,IAA1D,CAAC,KAAM,KAAM,SAASnI,QAAQ2xC,EAAaxpC,WAA2E,WAAvDqoC,EAAyBmB,EAAc,YACjGF,EAAgBE,GAGlBA,EATE71C,EAAUA,EAAQ20C,cAAc3yC,gBAAkB1G,SAAS0G,gBA4BtE,SAAS8zC,EAAQC,GACf,OAAwB,OAApBA,EAAK1zC,WACAyzC,EAAQC,EAAK1zC,YAGf0zC,EAWT,SAASC,EAAuBC,EAAUC,GAExC,KAAKD,GAAaA,EAAS90C,UAAa+0C,GAAaA,EAAS/0C,UAC5D,OAAO7F,SAAS0G,gBAIlB,IAAImd,EAAQ82B,EAASE,wBAAwBD,GAAYE,KAAKC,4BAC1D5jB,EAAQtT,EAAQ82B,EAAWC,EAC3BvjB,EAAMxT,EAAQ+2B,EAAWD,EAGzBK,EAAQh7C,SAASi7C,cACrBD,EAAME,SAAS/jB,EAAO,GACtB6jB,EAAMG,OAAO9jB,EAAK,GAClB,IA/CyB3yB,EACrBqM,EA8CAqqC,EAA0BJ,EAAMI,wBAIpC,GAAIT,IAAaS,GAA2BR,IAAaQ,GAA2BjkB,EAAM9iB,SAASgjB,GACjG,MAjDe,UAFbtmB,GADqBrM,EAoDD02C,GAnDDrqC,WAKH,SAAbA,GAAuBspC,EAAgB31C,EAAQ22C,qBAAuB32C,EAkDpE21C,EAAgBe,GAHdA,EAOX,IAAIE,EAAed,EAAQG,GAC3B,OAAIW,EAAazpC,KACR6oC,EAAuBY,EAAazpC,KAAM+oC,GAE1CF,EAAuBC,EAAUH,EAAQI,GAAU/oC,MAY9D,SAAS0pC,EAAU72C,GACjB,IAAI82C,EAAOp7C,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,MAE3Eq7C,EAAqB,QAATD,EAAiB,YAAc,aAC3CzqC,EAAWrM,EAAQqM,SAEvB,GAAiB,SAAbA,GAAoC,SAAbA,EAAqB,CAC9C,IAAIuC,EAAO5O,EAAQ20C,cAAc3yC,gBAC7Bg1C,EAAmBh3C,EAAQ20C,cAAcqC,kBAAoBpoC,EACjE,OAAOooC,EAAiBD,GAG1B,OAAO/2C,EAAQ+2C,GAYjB,SAASE,EAAcC,EAAMl3C,GAC3B,IAAIm3C,EAAWz7C,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,IAAmBA,UAAU,GAE1E0X,EAAYyjC,EAAU72C,EAAS,OAC/BsT,EAAaujC,EAAU72C,EAAS,QAChC4wC,EAAWuG,GAAY,EAAI,EAK/B,OAJAD,EAAK1jC,KAAOJ,EAAYw9B,EACxBsG,EAAKE,QAAUhkC,EAAYw9B,EAC3BsG,EAAKzjC,MAAQH,EAAas9B,EAC1BsG,EAAKG,OAAS/jC,EAAas9B,EACpBsG,EAaT,SAASI,EAAe1kC,EAAQwD,GAC9B,IAAImhC,EAAiB,MAATnhC,EAAe,OAAS,MAChCohC,EAAkB,SAAVD,EAAmB,QAAU,SAEzC,OAAO52C,WAAWiS,EAAO,SAAW2kC,EAAQ,UAAY52C,WAAWiS,EAAO,SAAW4kC,EAAQ,UAG/F,SAASC,EAAQrhC,EAAMnK,EAAM2C,EAAM8oC,GACjC,OAAO93C,KAAK0e,IAAIrS,EAAK,SAAWmK,GAAOnK,EAAK,SAAWmK,GAAOxH,EAAK,SAAWwH,GAAOxH,EAAK,SAAWwH,GAAOxH,EAAK,SAAWwH,GAAOs/B,EAAK,IAAM75B,SAASjN,EAAK,SAAWwH,IAASyF,SAAS67B,EAAc,UAAqB,WAATthC,EAAoB,MAAQ,UAAYyF,SAAS67B,EAAc,UAAqB,WAATthC,EAAoB,SAAW,WAAa,GAG5U,SAASuhC,EAAer8C,GACtB,IAAI2Q,EAAO3Q,EAAS2Q,KAChB2C,EAAOtT,EAAS0G,gBAChB01C,EAAgBhC,EAAK,KAAOxnC,iBAAiBU,GAEjD,MAAO,CACL2M,OAAQk8B,EAAQ,SAAUxrC,EAAM2C,EAAM8oC,GACtCp8B,MAAOm8B,EAAQ,QAASxrC,EAAM2C,EAAM8oC,IAIxC,IAAIE,EAAiB,SAAUr+B,EAAUs+B,GACvC,KAAMt+B,aAAoBs+B,GACxB,MAAM,IAAIt1C,UAAU,sCAIpBu1C,EAAc,WAChB,SAAS19B,EAAiBpX,EAAQ0Q,GAChC,IAAK,IAAIpc,EAAI,EAAGA,EAAIoc,EAAM3Z,OAAQzC,IAAK,CACrC,IAAIygD,EAAarkC,EAAMpc,GACvBygD,EAAW7/C,WAAa6/C,EAAW7/C,aAAc,EACjD6/C,EAAWh/B,cAAe,EACtB,UAAWg/B,IAAYA,EAAWC,UAAW,GACjDhgD,OAAOC,eAAe+K,EAAQ+0C,EAAWl/C,IAAKk/C,IAIlD,OAAO,SAAUF,EAAaI,EAAYC,GAGxC,OAFID,GAAY79B,EAAiBy9B,EAAY3+C,UAAW++C,GACpDC,GAAa99B,EAAiBy9B,EAAaK,GACxCL,GAdO,GAsBd5/C,EAAiB,SAAU4B,EAAKhB,EAAKN,GAYvC,OAXIM,KAAOgB,EACT7B,OAAOC,eAAe4B,EAAKhB,EAAK,CAC9BN,MAAOA,EACPL,YAAY,EACZ6gB,cAAc,EACdi/B,UAAU,IAGZn+C,EAAIhB,GAAON,EAGNsB,GAGLs+C,EAAWngD,OAAO4Y,QAAU,SAAU5N,GACxC,IAAK,IAAI1L,EAAI,EAAGA,EAAIoE,UAAU3B,OAAQzC,IAAK,CACzC,IAAI8gD,EAAS18C,UAAUpE,GAEvB,IAAK,IAAIuB,KAAOu/C,EACVpgD,OAAOkB,UAAUC,eAAe1B,KAAK2gD,EAAQv/C,KAC/CmK,EAAOnK,GAAOu/C,EAAOv/C,IAK3B,OAAOmK,GAUT,SAASq1C,EAAcC,GACrB,OAAOH,EAAS,GAAIG,EAAS,CAC3BjB,MAAOiB,EAAQ7kC,KAAO6kC,EAAQh9B,MAC9B87B,OAAQkB,EAAQ9kC,IAAM8kC,EAAQ/8B,SAWlC,SAAStI,EAAsBjT,GAC7B,IAAIk3C,EAAO,GAKX,IACE,GAAIxB,EAAK,IAAK,CACZwB,EAAOl3C,EAAQiT,wBACf,IAAIG,EAAYyjC,EAAU72C,EAAS,OAC/BsT,EAAaujC,EAAU72C,EAAS,QACpCk3C,EAAK1jC,KAAOJ,EACZ8jC,EAAKzjC,MAAQH,EACb4jC,EAAKE,QAAUhkC,EACf8jC,EAAKG,OAAS/jC,OAEd4jC,EAAOl3C,EAAQiT,wBAEjB,MAAO3W,IAET,IAAId,EAAS,CACXiY,KAAMyjC,EAAKzjC,KACXD,IAAK0jC,EAAK1jC,IACV8H,MAAO47B,EAAKG,MAAQH,EAAKzjC,KACzB8H,OAAQ27B,EAAKE,OAASF,EAAK1jC,KAIzBqhB,EAA6B,SAArB70B,EAAQqM,SAAsBsrC,EAAe33C,EAAQ20C,eAAiB,GAC9Er5B,EAAQuZ,EAAMvZ,OAAStb,EAAQyb,aAAejgB,EAAO8f,MACrDC,EAASsZ,EAAMtZ,QAAUvb,EAAQ0b,cAAgBlgB,EAAO+f,OAExDg9B,EAAiBv4C,EAAQ6S,YAAcyI,EACvCk9B,EAAgBx4C,EAAQc,aAAeya,EAI3C,GAAIg9B,GAAkBC,EAAe,CACnC,IAAI5lC,EAAS8hC,EAAyB10C,GACtCu4C,GAAkBjB,EAAe1kC,EAAQ,KACzC4lC,GAAiBlB,EAAe1kC,EAAQ,KAExCpX,EAAO8f,OAASi9B,EAChB/8C,EAAO+f,QAAUi9B,EAGnB,OAAOH,EAAc78C,GAGvB,SAASi9C,EAAqC/rC,EAAU4I,GACtD,IAAIojC,EAAgBh9C,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,IAAmBA,UAAU,GAE/E+5C,EAASC,EAAK,IACdiD,EAA6B,SAApBrjC,EAAOjJ,SAChBusC,EAAe3lC,EAAsBvG,GACrCmsC,EAAa5lC,EAAsBqC,GACnCwjC,EAAehE,EAAgBpoC,GAE/BkG,EAAS8hC,EAAyBp/B,GAClCyjC,EAAiBp4C,WAAWiS,EAAOmmC,gBACnCC,EAAkBr4C,WAAWiS,EAAOomC,iBAGpCN,GAAiBC,IACnBE,EAAWrlC,IAAM5T,KAAK0e,IAAIu6B,EAAWrlC,IAAK,GAC1CqlC,EAAWplC,KAAO7T,KAAK0e,IAAIu6B,EAAWplC,KAAM,IAE9C,IAAI6kC,EAAUD,EAAc,CAC1B7kC,IAAKolC,EAAaplC,IAAMqlC,EAAWrlC,IAAMulC,EACzCtlC,KAAMmlC,EAAanlC,KAAOolC,EAAWplC,KAAOulC,EAC5C19B,MAAOs9B,EAAat9B,MACpBC,OAAQq9B,EAAar9B,SASvB,GAPA+8B,EAAQx6B,UAAY,EACpBw6B,EAAQz6B,WAAa,GAMhB43B,GAAUkD,EAAQ,CACrB,IAAI76B,EAAYnd,WAAWiS,EAAOkL,WAC9BD,EAAald,WAAWiS,EAAOiL,YAEnCy6B,EAAQ9kC,KAAOulC,EAAiBj7B,EAChCw6B,EAAQlB,QAAU2B,EAAiBj7B,EACnCw6B,EAAQ7kC,MAAQulC,EAAkBn7B,EAClCy6B,EAAQjB,OAAS2B,EAAkBn7B,EAGnCy6B,EAAQx6B,UAAYA,EACpBw6B,EAAQz6B,WAAaA,EAOvB,OAJI43B,IAAWiD,EAAgBpjC,EAAO3F,SAASmpC,GAAgBxjC,IAAWwjC,GAA0C,SAA1BA,EAAazsC,YACrGisC,EAAUrB,EAAcqB,EAAShjC,IAG5BgjC,EAGT,SAASW,EAA8Cj5C,GACrD,IAAIk5C,EAAgBx9C,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,IAAmBA,UAAU,GAE/EkT,EAAO5O,EAAQ20C,cAAc3yC,gBAC7Bm3C,EAAiBV,EAAqCz4C,EAAS4O,GAC/D0M,EAAQ1b,KAAK0e,IAAI1P,EAAK6M,YAAapgB,OAAO44B,YAAc,GACxD1Y,EAAS3b,KAAK0e,IAAI1P,EAAK8M,aAAcrgB,OAAOy4B,aAAe,GAE3D1gB,EAAa8lC,EAAkC,EAAlBrC,EAAUjoC,GACvC0E,EAAc4lC,EAA0C,EAA1BrC,EAAUjoC,EAAM,QAE9CmE,EAAS,CACXS,IAAKJ,EAAY+lC,EAAe3lC,IAAM2lC,EAAer7B,UACrDrK,KAAMH,EAAa6lC,EAAe1lC,KAAO0lC,EAAet7B,WACxDvC,MAAOA,EACPC,OAAQA,GAGV,OAAO88B,EAActlC,GAWvB,SAASqmC,EAAQp5C,GACf,IAAIqM,EAAWrM,EAAQqM,SACvB,GAAiB,SAAbA,GAAoC,SAAbA,EACzB,OAAO,EAET,GAAsD,UAAlDqoC,EAAyB10C,EAAS,YACpC,OAAO,EAET,IAAIqC,EAAawyC,EAAc70C,GAC/B,QAAKqC,GAGE+2C,EAAQ/2C,GAWjB,SAASg3C,EAA6Br5C,GAEpC,IAAKA,IAAYA,EAAQs5C,eAAiB5D,IACxC,OAAOp6C,SAAS0G,gBAGlB,IADA,IAAIoO,EAAKpQ,EAAQs5C,cACVlpC,GAAoD,SAA9CskC,EAAyBtkC,EAAI,cACxCA,EAAKA,EAAGkpC,cAEV,OAAOlpC,GAAM9U,SAAS0G,gBAcxB,SAASu3C,EAAcC,EAAQpE,EAAWqE,EAASC,GACjD,IAAIhB,EAAgBh9C,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,IAAmBA,UAAU,GAI/Ei+C,EAAa,CAAEnmC,IAAK,EAAGC,KAAM,GAC7BoiC,EAAe6C,EAAgBW,EAA6BG,GAAUxD,EAAuBwD,EAAQrE,EAAiBC,IAG1H,GAA0B,aAAtBsE,EACFC,EAAaV,EAA8CpD,EAAc6C,OACpE,CAEL,IAAIkB,OAAiB,EACK,iBAAtBF,EAE8B,UADhCE,EAAiB9E,EAAgBD,EAAcO,KAC5B/oC,WACjButC,EAAiBJ,EAAO7E,cAAc3yC,iBAGxC43C,EAD+B,WAAtBF,EACQF,EAAO7E,cAAc3yC,gBAErB03C,EAGnB,IAAIpB,EAAUG,EAAqCmB,EAAgB/D,EAAc6C,GAGjF,GAAgC,SAA5BkB,EAAevtC,UAAwB+sC,EAAQvD,GAWjD8D,EAAarB,MAXmD,CAChE,IAAIuB,EAAkBlC,EAAe6B,EAAO7E,eACxCp5B,EAASs+B,EAAgBt+B,OACzBD,EAAQu+B,EAAgBv+B,MAE5Bq+B,EAAWnmC,KAAO8kC,EAAQ9kC,IAAM8kC,EAAQx6B,UACxC67B,EAAWvC,OAAS77B,EAAS+8B,EAAQ9kC,IACrCmmC,EAAWlmC,MAAQ6kC,EAAQ7kC,KAAO6kC,EAAQz6B,WAC1C87B,EAAWtC,MAAQ/7B,EAAQg9B,EAAQ7kC,MASvC,IAAIqmC,EAAqC,iBADzCL,EAAUA,GAAW,GAOrB,OALAE,EAAWlmC,MAAQqmC,EAAkBL,EAAUA,EAAQhmC,MAAQ,EAC/DkmC,EAAWnmC,KAAOsmC,EAAkBL,EAAUA,EAAQjmC,KAAO,EAC7DmmC,EAAWtC,OAASyC,EAAkBL,EAAUA,EAAQpC,OAAS,EACjEsC,EAAWvC,QAAU0C,EAAkBL,EAAUA,EAAQrC,QAAU,EAE5DuC,EAGT,SAASI,EAAQC,GAIf,OAHYA,EAAK1+B,MACJ0+B,EAAKz+B,OAcpB,SAAS0+B,EAAqBC,EAAWC,EAASX,EAAQpE,EAAWsE,GACnE,IAAID,EAAU/9C,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,EAElF,IAAmC,IAA/Bw+C,EAAUh2C,QAAQ,QACpB,OAAOg2C,EAGT,IAAIP,EAAaJ,EAAcC,EAAQpE,EAAWqE,EAASC,GAEvDU,EAAQ,CACV5mC,IAAK,CACH8H,MAAOq+B,EAAWr+B,MAClBC,OAAQ4+B,EAAQ3mC,IAAMmmC,EAAWnmC,KAEnC6jC,MAAO,CACL/7B,MAAOq+B,EAAWtC,MAAQ8C,EAAQ9C,MAClC97B,OAAQo+B,EAAWp+B,QAErB67B,OAAQ,CACN97B,MAAOq+B,EAAWr+B,MAClBC,OAAQo+B,EAAWvC,OAAS+C,EAAQ/C,QAEtC3jC,KAAM,CACJ6H,MAAO6+B,EAAQ1mC,KAAOkmC,EAAWlmC,KACjC8H,OAAQo+B,EAAWp+B,SAInB8+B,EAAcriD,OAAO2T,KAAKyuC,GAAO1jC,KAAI,SAAU7d,GACjD,OAAOs/C,EAAS,CACdt/C,IAAKA,GACJuhD,EAAMvhD,GAAM,CACbyhD,KAAMP,EAAQK,EAAMvhD,SAErBk7B,MAAK,SAAUl4B,EAAGC,GACnB,OAAOA,EAAEw+C,KAAOz+C,EAAEy+C,QAGhBC,EAAgBF,EAAYzuC,QAAO,SAAU4uC,GAC/C,IAAIl/B,EAAQk/B,EAAMl/B,MACdC,EAASi/B,EAAMj/B,OACnB,OAAOD,GAASk+B,EAAO/9B,aAAeF,GAAUi+B,EAAO99B,gBAGrD++B,EAAoBF,EAAcxgD,OAAS,EAAIwgD,EAAc,GAAG1hD,IAAMwhD,EAAY,GAAGxhD,IAErF6hD,EAAYR,EAAUl8C,MAAM,KAAK,GAErC,OAAOy8C,GAAqBC,EAAY,IAAMA,EAAY,IAa5D,SAASC,EAAoBpN,EAAOiM,EAAQpE,GAC1C,IAAIsD,EAAgBh9C,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,KAEpFk/C,EAAqBlC,EAAgBW,EAA6BG,GAAUxD,EAAuBwD,EAAQrE,EAAiBC,IAChI,OAAOqD,EAAqCrD,EAAWwF,EAAoBlC,GAU7E,SAASmC,EAAc76C,GACrB,IACI4S,EADS5S,EAAQ20C,cAAcC,YACf1mC,iBAAiBlO,GACjCmlB,EAAIxkB,WAAWiS,EAAOkL,WAAa,GAAKnd,WAAWiS,EAAOoL,cAAgB,GAC1EoH,EAAIzkB,WAAWiS,EAAOiL,YAAc,GAAKld,WAAWiS,EAAOmL,aAAe,GAK9E,MAJa,CACXzC,MAAOtb,EAAQ6S,YAAcuS,EAC7B7J,OAAQvb,EAAQc,aAAeqkB,GAYnC,SAAS21B,EAAqBZ,GAC5B,IAAIhtC,EAAO,CAAEuG,KAAM,QAAS4jC,MAAO,OAAQD,OAAQ,MAAO5jC,IAAK,UAC/D,OAAO0mC,EAAUh+C,QAAQ,0BAA0B,SAAU6+C,GAC3D,OAAO7tC,EAAK6tC,MAchB,SAASC,EAAiBxB,EAAQyB,EAAkBf,GAClDA,EAAYA,EAAUl8C,MAAM,KAAK,GAGjC,IAAIk9C,EAAaL,EAAcrB,GAG3B2B,EAAgB,CAClB7/B,MAAO4/B,EAAW5/B,MAClBC,OAAQ2/B,EAAW3/B,QAIjB6/B,GAAoD,IAA1C,CAAC,QAAS,QAAQl3C,QAAQg2C,GACpCmB,EAAWD,EAAU,MAAQ,OAC7BE,EAAgBF,EAAU,OAAS,MACnCG,EAAcH,EAAU,SAAW,QACnCI,EAAwBJ,EAAqB,QAAX,SAStC,OAPAD,EAAcE,GAAYJ,EAAiBI,GAAYJ,EAAiBM,GAAe,EAAIL,EAAWK,GAAe,EAEnHJ,EAAcG,GADZpB,IAAcoB,EACeL,EAAiBK,GAAiBJ,EAAWM,GAE7CP,EAAiBH,EAAqBQ,IAGhEH,EAYT,SAAS3lC,EAAKhH,EAAKitC,GAEjB,OAAIl4C,MAAMrK,UAAUsc,KACXhH,EAAIgH,KAAKimC,GAIXjtC,EAAI5C,OAAO6vC,GAAO,GAqC3B,SAASC,EAAaC,EAAW/2C,EAAMg3C,GAoBrC,YAnB8BzxC,IAATyxC,EAAqBD,EAAYA,EAAUr9C,MAAM,EA1BxE,SAAmBkQ,EAAKhD,EAAMjT,GAE5B,GAAIgL,MAAMrK,UAAU2iD,UAClB,OAAOrtC,EAAIqtC,WAAU,SAAUC,GAC7B,OAAOA,EAAItwC,KAAUjT,KAKzB,IAAImJ,EAAQ8T,EAAKhH,GAAK,SAAU3U,GAC9B,OAAOA,EAAI2R,KAAUjT,KAEvB,OAAOiW,EAAItK,QAAQxC,GAcsDm6C,CAAUF,EAAW,OAAQC,KAEvFhiD,SAAQ,SAAUg3C,GAC3BA,EAAmB,UAErBmL,QAAQC,KAAK,yDAEf,IAAIliD,EAAK82C,EAAmB,UAAKA,EAAS92C,GACtC82C,EAASr0B,SAAW5iB,EAAWG,KAIjC8K,EAAK0zC,QAAQkB,OAASnB,EAAczzC,EAAK0zC,QAAQkB,QACjD50C,EAAK0zC,QAAQlD,UAAYiD,EAAczzC,EAAK0zC,QAAQlD,WAEpDxwC,EAAO9K,EAAG8K,EAAMgsC,OAIbhsC,EAUT,SAASwW,IAEP,IAAIhf,KAAKmxC,MAAM0O,YAAf,CAIA,IAAIr3C,EAAO,CACT2U,SAAUnd,KACVwW,OAAQ,GACRspC,YAAa,GACbt/C,WAAY,GACZu/C,SAAS,EACT7D,QAAS,IAIX1zC,EAAK0zC,QAAQlD,UAAYuF,EAAoBv+C,KAAKmxC,MAAOnxC,KAAKo9C,OAAQp9C,KAAKg5C,UAAWh5C,KAAK65B,QAAQmmB,eAKnGx3C,EAAKs1C,UAAYD,EAAqB79C,KAAK65B,QAAQikB,UAAWt1C,EAAK0zC,QAAQlD,UAAWh5C,KAAKo9C,OAAQp9C,KAAKg5C,UAAWh5C,KAAK65B,QAAQ0lB,UAAUU,KAAK3C,kBAAmBt9C,KAAK65B,QAAQ0lB,UAAUU,KAAK5C,SAG9L70C,EAAK03C,kBAAoB13C,EAAKs1C,UAE9Bt1C,EAAKw3C,cAAgBhgD,KAAK65B,QAAQmmB,cAGlCx3C,EAAK0zC,QAAQkB,OAASwB,EAAiB5+C,KAAKo9C,OAAQ50C,EAAK0zC,QAAQlD,UAAWxwC,EAAKs1C,WAEjFt1C,EAAK0zC,QAAQkB,OAAOhrB,SAAWpyB,KAAK65B,QAAQmmB,cAAgB,QAAU,WAGtEx3C,EAAO82C,EAAat/C,KAAKu/C,UAAW/2C,GAI/BxI,KAAKmxC,MAAMgP,UAIdngD,KAAK65B,QAAQumB,SAAS53C,IAHtBxI,KAAKmxC,MAAMgP,WAAY,EACvBngD,KAAK65B,QAAQwmB,SAAS73C,KAY1B,SAAS83C,EAAkBf,EAAWgB,GACpC,OAAOhB,EAAUiB,MAAK,SAAU5C,GAC9B,IAAIniD,EAAOmiD,EAAKniD,KAEhB,OADcmiD,EAAKz9B,SACD1kB,IAAS8kD,KAW/B,SAASE,EAAyB5jD,GAIhC,IAHA,IAAI6jD,EAAW,EAAC,EAAO,KAAM,SAAU,MAAO,KAC1CC,EAAY9jD,EAASuF,OAAO,GAAGsD,cAAgB7I,EAASqF,MAAM,GAEzDhH,EAAI,EAAGA,EAAIwlD,EAAS/iD,OAAQzC,IAAK,CACxC,IAAIqI,EAASm9C,EAASxlD,GAClB0lD,EAAUr9C,EAAS,GAAKA,EAASo9C,EAAY9jD,EACjD,QAA4C,IAAjCqC,SAAS2Q,KAAKW,MAAMowC,GAC7B,OAAOA,EAGX,OAAO,KAQT,SAASnmB,IAsBP,OArBAz6B,KAAKmxC,MAAM0O,aAAc,EAGrBS,EAAkBtgD,KAAKu/C,UAAW,gBACpCv/C,KAAKo9C,OAAOrpC,gBAAgB,eAC5B/T,KAAKo9C,OAAO5sC,MAAM4hB,SAAW,GAC7BpyB,KAAKo9C,OAAO5sC,MAAM4G,IAAM,GACxBpX,KAAKo9C,OAAO5sC,MAAM6G,KAAO,GACzBrX,KAAKo9C,OAAO5sC,MAAMyqC,MAAQ,GAC1Bj7C,KAAKo9C,OAAO5sC,MAAMwqC,OAAS,GAC3Bh7C,KAAKo9C,OAAO5sC,MAAMqwC,WAAa,GAC/B7gD,KAAKo9C,OAAO5sC,MAAMiwC,EAAyB,cAAgB,IAG7DzgD,KAAK8gD,wBAID9gD,KAAK65B,QAAQknB,iBACf/gD,KAAKo9C,OAAOn3C,WAAWuT,YAAYxZ,KAAKo9C,QAEnCp9C,KAQT,SAASghD,EAAUp9C,GACjB,IAAI20C,EAAgB30C,EAAQ20C,cAC5B,OAAOA,EAAgBA,EAAcC,YAAcv5C,OAoBrD,SAASgiD,EAAoBjI,EAAWnf,EAASsX,EAAO+P,GAEtD/P,EAAM+P,YAAcA,EACpBF,EAAUhI,GAAW9qC,iBAAiB,SAAUijC,EAAM+P,YAAa,CAAE1qB,SAAS,IAG9E,IAAI2qB,EAAgBzI,EAAgBM,GAKpC,OA5BF,SAASoI,EAAsB1E,EAAcn2C,EAAO4P,EAAUkrC,GAC5D,IAAIC,EAAmC,SAA1B5E,EAAazsC,SACtBrJ,EAAS06C,EAAS5E,EAAanE,cAAcC,YAAckE,EAC/D91C,EAAOsH,iBAAiB3H,EAAO4P,EAAU,CAAEqgB,SAAS,IAE/C8qB,GACHF,EAAsB1I,EAAgB9xC,EAAOX,YAAaM,EAAO4P,EAAUkrC,GAE7EA,EAAcz5C,KAAKhB,GAgBnBw6C,CAAsBD,EAAe,SAAUhQ,EAAM+P,YAAa/P,EAAMkQ,eACxElQ,EAAMgQ,cAAgBA,EACtBhQ,EAAMoQ,eAAgB,EAEfpQ,EAST,SAASqQ,IACFxhD,KAAKmxC,MAAMoQ,gBACdvhD,KAAKmxC,MAAQ8P,EAAoBjhD,KAAKg5C,UAAWh5C,KAAK65B,QAAS75B,KAAKmxC,MAAOnxC,KAAKyhD,iBAkCpF,SAASX,IAxBT,IAA8B9H,EAAW7H,EAyBnCnxC,KAAKmxC,MAAMoQ,gBACbG,qBAAqB1hD,KAAKyhD,gBAC1BzhD,KAAKmxC,OA3BqB6H,EA2BQh5C,KAAKg5C,UA3BF7H,EA2BanxC,KAAKmxC,MAzBzD6P,EAAUhI,GAAWlpC,oBAAoB,SAAUqhC,EAAM+P,aAGzD/P,EAAMkQ,cAAc7jD,SAAQ,SAAUoJ,GACpCA,EAAOkJ,oBAAoB,SAAUqhC,EAAM+P,gBAI7C/P,EAAM+P,YAAc,KACpB/P,EAAMkQ,cAAgB,GACtBlQ,EAAMgQ,cAAgB,KACtBhQ,EAAMoQ,eAAgB,EACfpQ,IAwBT,SAASwQ,EAAUhlD,GACjB,MAAa,KAANA,IAAailD,MAAMr9C,WAAW5H,KAAOklD,SAASllD,GAWvD,SAASmlD,EAAUl+C,EAAS4S,GAC1B5a,OAAO2T,KAAKiH,GAAQhZ,SAAQ,SAAU4R,GACpC,IAAI2yC,EAAO,IAEkE,IAAzE,CAAC,QAAS,SAAU,MAAO,QAAS,SAAU,QAAQj6C,QAAQsH,IAAgBuyC,EAAUnrC,EAAOpH,MACjG2yC,EAAO,MAETn+C,EAAQ4M,MAAMpB,GAAQoH,EAAOpH,GAAQ2yC,KAgIzC,IAAIC,EAAYhK,GAAa,WAAW32C,KAAKtC,UAAUwS,WA8GvD,SAAS0wC,EAAmB1C,EAAW2C,EAAgBC,GACrD,IAAIC,EAAahpC,EAAKmmC,GAAW,SAAU3B,GAEzC,OADWA,EAAKniD,OACAymD,KAGdG,IAAeD,GAAc7C,EAAUiB,MAAK,SAAUhM,GACxD,OAAOA,EAAS/4C,OAAS0mD,GAAiB3N,EAASr0B,SAAWq0B,EAASzxB,MAAQq/B,EAAWr/B,SAG5F,IAAKs/B,EAAY,CACf,IAAIC,EAAc,IAAMJ,EAAiB,IACrCK,EAAY,IAAMJ,EAAgB,IACtCxC,QAAQC,KAAK2C,EAAY,4BAA8BD,EAAc,4DAA8DA,EAAc,KAEnJ,OAAOD,EAoIT,IAAIG,EAAa,CAAC,aAAc,OAAQ,WAAY,YAAa,MAAO,UAAW,cAAe,QAAS,YAAa,aAAc,SAAU,eAAgB,WAAY,OAAQ,cAGhLC,EAAkBD,EAAWtgD,MAAM,GAYvC,SAASwgD,GAAU5E,GACjB,IAAI6E,EAAUrjD,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,IAAmBA,UAAU,GAEzEwY,EAAQ2qC,EAAgB36C,QAAQg2C,GAChC1rC,EAAMqwC,EAAgBvgD,MAAM4V,EAAQ,GAAGhO,OAAO24C,EAAgBvgD,MAAM,EAAG4V,IAC3E,OAAO6qC,EAAUvwC,EAAIwwC,UAAYxwC,EAGnC,IAAIywC,GACI,OADJA,GAES,YAFTA,GAGgB,mBAiMpB,SAASC,GAAYnsC,EAAQooC,EAAeF,EAAkBkE,GAC5D,IAAI7G,EAAU,CAAC,EAAG,GAKd8G,GAA0D,IAA9C,CAAC,QAAS,QAAQl7C,QAAQi7C,GAItCE,EAAYtsC,EAAO/U,MAAM,WAAW0Y,KAAI,SAAU4oC,GACpD,OAAOA,EAAKtjD,UAKVwnC,EAAU6b,EAAUn7C,QAAQsR,EAAK6pC,GAAW,SAAUC,GACxD,OAAgC,IAAzBA,EAAK7xC,OAAO,YAGjB4xC,EAAU7b,KAAiD,IAArC6b,EAAU7b,GAASt/B,QAAQ,MACnD63C,QAAQC,KAAK,gFAKf,IAAIuD,EAAa,cACbC,GAAmB,IAAbhc,EAAiB,CAAC6b,EAAU/gD,MAAM,EAAGklC,GAASt9B,OAAO,CAACm5C,EAAU7b,GAASxlC,MAAMuhD,GAAY,KAAM,CAACF,EAAU7b,GAASxlC,MAAMuhD,GAAY,IAAIr5C,OAAOm5C,EAAU/gD,MAAMklC,EAAU,KAAO,CAAC6b,GAqC9L,OAlCAG,EAAMA,EAAI9oC,KAAI,SAAU+oC,EAAIvrC,GAE1B,IAAIqnC,GAAyB,IAAVrnC,GAAekrC,EAAYA,GAAa,SAAW,QAClEM,GAAoB,EACxB,OAAOD,EAGNE,QAAO,SAAU9jD,EAAGC,GACnB,MAAwB,KAApBD,EAAEA,EAAE9B,OAAS,KAAwC,IAA3B,CAAC,IAAK,KAAKmK,QAAQpI,IAC/CD,EAAEA,EAAE9B,OAAS,GAAK+B,EAClB4jD,GAAoB,EACb7jD,GACE6jD,GACT7jD,EAAEA,EAAE9B,OAAS,IAAM+B,EACnB4jD,GAAoB,EACb7jD,GAEAA,EAAEqK,OAAOpK,KAEjB,IAEF4a,KAAI,SAAUza,GACb,OAxGN,SAAiBA,EAAKs/C,EAAaJ,EAAeF,GAEhD,IAAIj9C,EAAQ/B,EAAIyF,MAAM,6BAClBnJ,GAASyF,EAAM,GACfmgD,EAAOngD,EAAM,GAGjB,IAAKzF,EACH,OAAO0D,EAGT,GAA0B,IAAtBkiD,EAAKj6C,QAAQ,KAAY,CAC3B,IAAIlE,OAAU,EACd,OAAQm+C,GACN,IAAK,KACHn+C,EAAUm7C,EACV,MACF,IAAK,IACL,IAAK,KACL,QACEn7C,EAAUi7C,EAId,OADW5C,EAAcr4C,GACbu7C,GAAe,IAAMhjD,EAC5B,GAAa,OAAT4lD,GAA0B,OAATA,EAAe,CAQzC,OALa,OAATA,EACKv+C,KAAK0e,IAAIhjB,SAAS0G,gBAAgB0Z,aAAcrgB,OAAOy4B,aAAe,GAEtEl0B,KAAK0e,IAAIhjB,SAAS0G,gBAAgByZ,YAAapgB,OAAO44B,YAAc,IAE/D,IAAM17B,EAIpB,OAAOA,EAmEEqnD,CAAQ3jD,EAAKs/C,EAAaJ,EAAeF,UAKhDrhD,SAAQ,SAAU6lD,EAAIvrC,GACxBurC,EAAG7lD,SAAQ,SAAU0lD,EAAMO,GACrB9B,EAAUuB,KACZhH,EAAQpkC,IAAUorC,GAA2B,MAAnBG,EAAGI,EAAS,IAAc,EAAI,UAIvDvH,EA2OT,IAkWIwH,GAAW,CAKb5F,UAAW,SAMXkC,eAAe,EAMfuB,eAAe,EAOfR,iBAAiB,EAQjBV,SAAU,aAUVD,SAAU,aAOVb,UAnZc,CASd3c,MAAO,CAEL7f,MAAO,IAEP5C,SAAS,EAETziB,GA9HJ,SAAe8K,GACb,IAAIs1C,EAAYt1C,EAAKs1C,UACjBiF,EAAgBjF,EAAUl8C,MAAM,KAAK,GACrC+hD,EAAiB7F,EAAUl8C,MAAM,KAAK,GAG1C,GAAI+hD,EAAgB,CAClB,IAAIC,EAAgBp7C,EAAK0zC,QACrBlD,EAAY4K,EAAc5K,UAC1BoE,EAASwG,EAAcxG,OAEvB59B,GAA2D,IAA9C,CAAC,SAAU,OAAO1X,QAAQi7C,GACvCrI,EAAOl7B,EAAa,OAAS,MAC7B2/B,EAAc3/B,EAAa,QAAU,SAErCqkC,EAAe,CACjBxtB,MAAOx6B,EAAe,GAAI6+C,EAAM1B,EAAU0B,IAC1CnkB,IAAK16B,EAAe,GAAI6+C,EAAM1B,EAAU0B,GAAQ1B,EAAUmG,GAAe/B,EAAO+B,KAGlF32C,EAAK0zC,QAAQkB,OAASrB,EAAS,GAAIqB,EAAQyG,EAAaF,IAG1D,OAAOn7C,IAgJPmO,OAAQ,CAENoM,MAAO,IAEP5C,SAAS,EAETziB,GA7RJ,SAAgB8K,EAAMo1C,GACpB,IAAIjnC,EAASinC,EAAKjnC,OACdmnC,EAAYt1C,EAAKs1C,UACjB8F,EAAgBp7C,EAAK0zC,QACrBkB,EAASwG,EAAcxG,OACvBpE,EAAY4K,EAAc5K,UAE1B+J,EAAgBjF,EAAUl8C,MAAM,KAAK,GAErCs6C,OAAU,EAsBd,OApBEA,EADEyF,GAAWhrC,GACH,EAAEA,EAAQ,GAEVmsC,GAAYnsC,EAAQymC,EAAQpE,EAAW+J,GAG7B,SAAlBA,GACF3F,EAAOhmC,KAAO8kC,EAAQ,GACtBkB,EAAO/lC,MAAQ6kC,EAAQ,IACI,UAAlB6G,GACT3F,EAAOhmC,KAAO8kC,EAAQ,GACtBkB,EAAO/lC,MAAQ6kC,EAAQ,IACI,QAAlB6G,GACT3F,EAAO/lC,MAAQ6kC,EAAQ,GACvBkB,EAAOhmC,KAAO8kC,EAAQ,IACK,WAAlB6G,IACT3F,EAAO/lC,MAAQ6kC,EAAQ,GACvBkB,EAAOhmC,KAAO8kC,EAAQ,IAGxB1zC,EAAK40C,OAASA,EACP50C,GAkQLmO,OAAQ,GAoBVmtC,gBAAiB,CAEf/gC,MAAO,IAEP5C,SAAS,EAETziB,GAlRJ,SAAyB8K,EAAMqxB,GAC7B,IAAIyjB,EAAoBzjB,EAAQyjB,mBAAqB/D,EAAgB/wC,EAAK2U,SAASigC,QAK/E50C,EAAK2U,SAAS67B,YAAcsE,IAC9BA,EAAoB/D,EAAgB+D,IAMtC,IAAIyG,EAAgBtD,EAAyB,aACzCuD,EAAex7C,EAAK2U,SAASigC,OAAO5sC,MACpC4G,EAAM4sC,EAAa5sC,IACnBC,EAAO2sC,EAAa3sC,KACpBlD,EAAY6vC,EAAaD,GAE7BC,EAAa5sC,IAAM,GACnB4sC,EAAa3sC,KAAO,GACpB2sC,EAAaD,GAAiB,GAE9B,IAAIxG,EAAaJ,EAAc30C,EAAK2U,SAASigC,OAAQ50C,EAAK2U,SAAS67B,UAAWnf,EAAQwjB,QAASC,EAAmB90C,EAAKw3C,eAIvHgE,EAAa5sC,IAAMA,EACnB4sC,EAAa3sC,KAAOA,EACpB2sC,EAAaD,GAAiB5vC,EAE9B0lB,EAAQ0jB,WAAaA,EAErB,IAAIx6B,EAAQ8W,EAAQjd,SAChBwgC,EAAS50C,EAAK0zC,QAAQkB,OAEtBiC,EAAQ,CACV4E,QAAS,SAAiBnG,GACxB,IAAI3hD,EAAQihD,EAAOU,GAInB,OAHIV,EAAOU,GAAaP,EAAWO,KAAejkB,EAAQqqB,sBACxD/nD,EAAQqH,KAAK0e,IAAIk7B,EAAOU,GAAYP,EAAWO,KAE1CjiD,EAAe,GAAIiiD,EAAW3hD,IAEvCgoD,UAAW,SAAmBrG,GAC5B,IAAImB,EAAyB,UAAdnB,EAAwB,OAAS,MAC5C3hD,EAAQihD,EAAO6B,GAInB,OAHI7B,EAAOU,GAAaP,EAAWO,KAAejkB,EAAQqqB,sBACxD/nD,EAAQqH,KAAKsf,IAAIs6B,EAAO6B,GAAW1B,EAAWO,IAA4B,UAAdA,EAAwBV,EAAOl+B,MAAQk+B,EAAOj+B,UAErGtjB,EAAe,GAAIojD,EAAU9iD,KAWxC,OAPA4mB,EAAMvlB,SAAQ,SAAUsgD,GACtB,IAAIpD,GAA+C,IAAxC,CAAC,OAAQ,OAAO5yC,QAAQg2C,GAAoB,UAAY,YACnEV,EAASrB,EAAS,GAAIqB,EAAQiC,EAAM3E,GAAMoD,OAG5Ct1C,EAAK0zC,QAAQkB,OAASA,EAEf50C,GA2NLoU,SAAU,CAAC,OAAQ,QAAS,MAAO,UAOnCygC,QAAS,EAMTC,kBAAmB,gBAYrB8G,aAAc,CAEZrhC,MAAO,IAEP5C,SAAS,EAETziB,GAlgBJ,SAAsB8K,GACpB,IAAIo7C,EAAgBp7C,EAAK0zC,QACrBkB,EAASwG,EAAcxG,OACvBpE,EAAY4K,EAAc5K,UAE1B8E,EAAYt1C,EAAKs1C,UAAUl8C,MAAM,KAAK,GACtCkgB,EAAQte,KAAKse,MACbtC,GAAuD,IAA1C,CAAC,MAAO,UAAU1X,QAAQg2C,GACvCpD,EAAOl7B,EAAa,QAAU,SAC9B6kC,EAAS7kC,EAAa,OAAS,MAC/B2/B,EAAc3/B,EAAa,QAAU,SASzC,OAPI49B,EAAO1C,GAAQ54B,EAAMk3B,EAAUqL,MACjC77C,EAAK0zC,QAAQkB,OAAOiH,GAAUviC,EAAMk3B,EAAUqL,IAAWjH,EAAO+B,IAE9D/B,EAAOiH,GAAUviC,EAAMk3B,EAAU0B,MACnClyC,EAAK0zC,QAAQkB,OAAOiH,GAAUviC,EAAMk3B,EAAU0B,KAGzClyC,IA4fP87C,MAAO,CAELvhC,MAAO,IAEP5C,SAAS,EAETziB,GApxBJ,SAAe8K,EAAMqxB,GACnB,IAAI0qB,EAGJ,IAAKtC,EAAmBz5C,EAAK2U,SAASoiC,UAAW,QAAS,gBACxD,OAAO/2C,EAGT,IAAIg8C,EAAe3qB,EAAQj2B,QAG3B,GAA4B,iBAAjB4gD,GAIT,KAHAA,EAAeh8C,EAAK2U,SAASigC,OAAOp5C,cAAcwgD,IAIhD,OAAOh8C,OAKT,IAAKA,EAAK2U,SAASigC,OAAO7pC,SAASixC,GAEjC,OADA7E,QAAQC,KAAK,iEACNp3C,EAIX,IAAIs1C,EAAYt1C,EAAKs1C,UAAUl8C,MAAM,KAAK,GACtCgiD,EAAgBp7C,EAAK0zC,QACrBkB,EAASwG,EAAcxG,OACvBpE,EAAY4K,EAAc5K,UAE1Bx5B,GAAuD,IAA1C,CAAC,OAAQ,SAAS1X,QAAQg2C,GAEvC9zC,EAAMwV,EAAa,SAAW,QAC9BilC,EAAkBjlC,EAAa,MAAQ,OACvCk7B,EAAO+J,EAAgBl/C,cACvBm/C,EAAUllC,EAAa,OAAS,MAChC6kC,EAAS7kC,EAAa,SAAW,QACjCmlC,EAAmBlG,EAAc+F,GAAcx6C,GAQ/CgvC,EAAUqL,GAAUM,EAAmBvH,EAAO1C,KAChDlyC,EAAK0zC,QAAQkB,OAAO1C,IAAS0C,EAAO1C,IAAS1B,EAAUqL,GAAUM,IAG/D3L,EAAU0B,GAAQiK,EAAmBvH,EAAOiH,KAC9C77C,EAAK0zC,QAAQkB,OAAO1C,IAAS1B,EAAU0B,GAAQiK,EAAmBvH,EAAOiH,IAE3E77C,EAAK0zC,QAAQkB,OAASnB,EAAczzC,EAAK0zC,QAAQkB,QAGjD,IAAIhJ,EAAS4E,EAAU0B,GAAQ1B,EAAUhvC,GAAO,EAAI26C,EAAmB,EAInEvgD,EAAMk0C,EAAyB9vC,EAAK2U,SAASigC,QAC7CwH,EAAmBrgD,WAAWH,EAAI,SAAWqgD,IAC7CI,EAAmBtgD,WAAWH,EAAI,SAAWqgD,EAAkB,UAC/DK,EAAY1Q,EAAS5rC,EAAK0zC,QAAQkB,OAAO1C,GAAQkK,EAAmBC,EAQxE,OALAC,EAAYthD,KAAK0e,IAAI1e,KAAKsf,IAAIs6B,EAAOpzC,GAAO26C,EAAkBG,GAAY,GAE1Et8C,EAAKg8C,aAAeA,EACpBh8C,EAAK0zC,QAAQoI,OAAmCzoD,EAA1B0oD,EAAsB,GAAwC7J,EAAMl3C,KAAKuvC,MAAM+R,IAAajpD,EAAe0oD,EAAqBG,EAAS,IAAKH,GAE7J/7C,GA8sBL5E,QAAS,aAcXq8C,KAAM,CAEJl9B,MAAO,IAEP5C,SAAS,EAETziB,GA5oBJ,SAAc8K,EAAMqxB,GAElB,GAAIymB,EAAkB93C,EAAK2U,SAASoiC,UAAW,SAC7C,OAAO/2C,EAGT,GAAIA,EAAKu3C,SAAWv3C,EAAKs1C,YAAct1C,EAAK03C,kBAE1C,OAAO13C,EAGT,IAAI+0C,EAAaJ,EAAc30C,EAAK2U,SAASigC,OAAQ50C,EAAK2U,SAAS67B,UAAWnf,EAAQwjB,QAASxjB,EAAQyjB,kBAAmB90C,EAAKw3C,eAE3HlC,EAAYt1C,EAAKs1C,UAAUl8C,MAAM,KAAK,GACtCmjD,EAAoBrG,EAAqBZ,GACzCQ,EAAY91C,EAAKs1C,UAAUl8C,MAAM,KAAK,IAAM,GAE5CojD,EAAY,GAEhB,OAAQnrB,EAAQjQ,UACd,KAAKi5B,GACHmC,EAAY,CAAClH,EAAWiH,GACxB,MACF,KAAKlC,GACHmC,EAAYtC,GAAU5E,GACtB,MACF,KAAK+E,GACHmC,EAAYtC,GAAU5E,GAAW,GACjC,MACF,QACEkH,EAAYnrB,EAAQjQ,SAyDxB,OAtDAo7B,EAAUxnD,SAAQ,SAAUynD,EAAMntC,GAChC,GAAIgmC,IAAcmH,GAAQD,EAAUrnD,SAAWma,EAAQ,EACrD,OAAOtP,EAGTs1C,EAAYt1C,EAAKs1C,UAAUl8C,MAAM,KAAK,GACtCmjD,EAAoBrG,EAAqBZ,GAEzC,IAAIiB,EAAgBv2C,EAAK0zC,QAAQkB,OAC7B8H,EAAa18C,EAAK0zC,QAAQlD,UAG1Bl3B,EAAQte,KAAKse,MACbqjC,EAA4B,SAAdrH,GAAwBh8B,EAAMi9B,EAAc9D,OAASn5B,EAAMojC,EAAW7tC,OAAuB,UAAdymC,GAAyBh8B,EAAMi9B,EAAc1nC,MAAQyK,EAAMojC,EAAWjK,QAAwB,QAAd6C,GAAuBh8B,EAAMi9B,EAAc/D,QAAUl5B,EAAMojC,EAAW9tC,MAAsB,WAAd0mC,GAA0Bh8B,EAAMi9B,EAAc3nC,KAAO0K,EAAMojC,EAAWlK,QAEjUoK,EAAgBtjC,EAAMi9B,EAAc1nC,MAAQyK,EAAMy7B,EAAWlmC,MAC7DguC,EAAiBvjC,EAAMi9B,EAAc9D,OAASn5B,EAAMy7B,EAAWtC,OAC/DqK,EAAexjC,EAAMi9B,EAAc3nC,KAAO0K,EAAMy7B,EAAWnmC,KAC3DmuC,EAAkBzjC,EAAMi9B,EAAc/D,QAAUl5B,EAAMy7B,EAAWvC,QAEjEwK,EAAoC,SAAd1H,GAAwBsH,GAA+B,UAAdtH,GAAyBuH,GAAgC,QAAdvH,GAAuBwH,GAA8B,WAAdxH,GAA0ByH,EAG3K/lC,GAAuD,IAA1C,CAAC,MAAO,UAAU1X,QAAQg2C,GAGvC2H,IAA0B5rB,EAAQ6rB,iBAAmBlmC,GAA4B,UAAd8+B,GAAyB8G,GAAiB5lC,GAA4B,QAAd8+B,GAAuB+G,IAAmB7lC,GAA4B,UAAd8+B,GAAyBgH,IAAiB9lC,GAA4B,QAAd8+B,GAAuBiH,GAGlQI,IAA8B9rB,EAAQ+rB,0BAA4BpmC,GAA4B,UAAd8+B,GAAyB+G,GAAkB7lC,GAA4B,QAAd8+B,GAAuB8G,IAAkB5lC,GAA4B,UAAd8+B,GAAyBiH,IAAoB/lC,GAA4B,QAAd8+B,GAAuBgH,GAElRO,EAAmBJ,GAAyBE,GAE5CR,GAAeK,GAAuBK,KAExCr9C,EAAKu3C,SAAU,GAEXoF,GAAeK,KACjB1H,EAAYkH,EAAUltC,EAAQ,IAG5B+tC,IACFvH,EAvJR,SAA8BA,GAC5B,MAAkB,QAAdA,EACK,QACgB,UAAdA,EACF,MAEFA,EAiJWwH,CAAqBxH,IAGnC91C,EAAKs1C,UAAYA,GAAaQ,EAAY,IAAMA,EAAY,IAI5D91C,EAAK0zC,QAAQkB,OAASrB,EAAS,GAAIvzC,EAAK0zC,QAAQkB,OAAQwB,EAAiBp2C,EAAK2U,SAASigC,OAAQ50C,EAAK0zC,QAAQlD,UAAWxwC,EAAKs1C,YAE5Ht1C,EAAO82C,EAAa92C,EAAK2U,SAASoiC,UAAW/2C,EAAM,YAGhDA,GA4jBLohB,SAAU,OAKVyzB,QAAS,EAOTC,kBAAmB,WAQnBoI,gBAAgB,EAQhBE,yBAAyB,GAU3BG,MAAO,CAELhjC,MAAO,IAEP5C,SAAS,EAETziB,GArQJ,SAAe8K,GACb,IAAIs1C,EAAYt1C,EAAKs1C,UACjBiF,EAAgBjF,EAAUl8C,MAAM,KAAK,GACrCgiD,EAAgBp7C,EAAK0zC,QACrBkB,EAASwG,EAAcxG,OACvBpE,EAAY4K,EAAc5K,UAE1BgG,GAAwD,IAA9C,CAAC,OAAQ,SAASl3C,QAAQi7C,GAEpCiD,GAA6D,IAA5C,CAAC,MAAO,QAAQl+C,QAAQi7C,GAO7C,OALA3F,EAAO4B,EAAU,OAAS,OAAShG,EAAU+J,IAAkBiD,EAAiB5I,EAAO4B,EAAU,QAAU,UAAY,GAEvHx2C,EAAKs1C,UAAYY,EAAqBZ,GACtCt1C,EAAK0zC,QAAQkB,OAASnB,EAAcmB,GAE7B50C,IAkQP0+B,KAAM,CAEJnkB,MAAO,IAEP5C,SAAS,EAETziB,GA9TJ,SAAc8K,GACZ,IAAKy5C,EAAmBz5C,EAAK2U,SAASoiC,UAAW,OAAQ,mBACvD,OAAO/2C,EAGT,IAAIu1C,EAAUv1C,EAAK0zC,QAAQlD,UACvBiN,EAAQ7sC,EAAK5Q,EAAK2U,SAASoiC,WAAW,SAAU/K,GAClD,MAAyB,oBAAlBA,EAAS/4C,QACf8hD,WAEH,GAAIQ,EAAQ/C,OAASiL,EAAM7uC,KAAO2mC,EAAQ1mC,KAAO4uC,EAAMhL,OAAS8C,EAAQ3mC,IAAM6uC,EAAMjL,QAAU+C,EAAQ9C,MAAQgL,EAAM5uC,KAAM,CAExH,IAAkB,IAAd7O,EAAK0+B,KACP,OAAO1+B,EAGTA,EAAK0+B,MAAO,EACZ1+B,EAAKhI,WAAW,uBAAyB,OACpC,CAEL,IAAkB,IAAdgI,EAAK0+B,KACP,OAAO1+B,EAGTA,EAAK0+B,MAAO,EACZ1+B,EAAKhI,WAAW,wBAAyB,EAG3C,OAAOgI,IAoTP09C,aAAc,CAEZnjC,MAAO,IAEP5C,SAAS,EAETziB,GAtgCJ,SAAsB8K,EAAMqxB,GAC1B,IAAI9Q,EAAI8Q,EAAQ9Q,EACZC,EAAI6Q,EAAQ7Q,EACZo0B,EAAS50C,EAAK0zC,QAAQkB,OAItB+I,EAA8B/sC,EAAK5Q,EAAK2U,SAASoiC,WAAW,SAAU/K,GACxE,MAAyB,eAAlBA,EAAS/4C,QACf2qD,qBACiCr4C,IAAhCo4C,GACFxG,QAAQC,KAAK,iIAEf,IAAIwG,OAAkDr4C,IAAhCo4C,EAA4CA,EAA8BtsB,EAAQusB,gBAEpG3M,EAAeF,EAAgB/wC,EAAK2U,SAASigC,QAC7CiJ,EAAmBxvC,EAAsB4iC,GAGzCjjC,EAAS,CACX4b,SAAUgrB,EAAOhrB,UAGf8pB,EA9DN,SAA2B1zC,EAAM89C,GAC/B,IAAI1C,EAAgBp7C,EAAK0zC,QACrBkB,EAASwG,EAAcxG,OACvBpE,EAAY4K,EAAc5K,UAC1BjG,EAAQvvC,KAAKuvC,MACbjxB,EAAQte,KAAKse,MAEbykC,EAAU,SAAiB7+C,GAC7B,OAAOA,GAGL8+C,EAAiBzT,EAAMiG,EAAU95B,OACjCunC,EAAc1T,EAAMqK,EAAOl+B,OAE3BM,GAA4D,IAA/C,CAAC,OAAQ,SAAS1X,QAAQU,EAAKs1C,WAC5C4I,GAA+C,IAAjCl+C,EAAKs1C,UAAUh2C,QAAQ,KAIrC6+C,EAAuBL,EAAwB9mC,GAAcknC,GAH3CF,EAAiB,GAAMC,EAAc,EAGuC1T,EAAQjxB,EAAjEykC,EACrCK,EAAqBN,EAAwBvT,EAAVwT,EAEvC,MAAO,CACLlvC,KAAMsvC,EANWH,EAAiB,GAAM,GAAKC,EAAc,GAAM,IAMtBC,GAAeJ,EAAclJ,EAAO/lC,KAAO,EAAI+lC,EAAO/lC,MACjGD,IAAKwvC,EAAkBxJ,EAAOhmC,KAC9B4jC,OAAQ4L,EAAkBxJ,EAAOpC,QACjCC,MAAO0L,EAAoBvJ,EAAOnC,QAoCtB4L,CAAkBr+C,EAAMvJ,OAAOmvB,iBAAmB,IAAM4zB,GAElE7G,EAAc,WAANpyB,EAAiB,MAAQ,SACjCqyB,EAAc,UAANpyB,EAAgB,OAAS,QAKjC89B,EAAmBrG,EAAyB,aAW5CppC,OAAO,EACPD,OAAM,EAqBV,GAhBIA,EAJU,WAAV+jC,EAG4B,SAA1B1B,EAAaxpC,UACRwpC,EAAan6B,aAAe48B,EAAQlB,QAEpCqL,EAAiBlnC,OAAS+8B,EAAQlB,OAGrCkB,EAAQ9kC,IAIZC,EAFU,UAAV+jC,EAC4B,SAA1B3B,EAAaxpC,UACPwpC,EAAap6B,YAAc68B,EAAQjB,OAEnCoL,EAAiBnnC,MAAQg9B,EAAQjB,MAGpCiB,EAAQ7kC,KAEb+uC,GAAmBU,EACrBtwC,EAAOswC,GAAoB,eAAiBzvC,EAAO,OAASD,EAAM,SAClEZ,EAAO2kC,GAAS,EAChB3kC,EAAO4kC,GAAS,EAChB5kC,EAAOqqC,WAAa,gBACf,CAEL,IAAIkG,EAAsB,WAAV5L,GAAsB,EAAI,EACtC6L,EAAuB,UAAV5L,GAAqB,EAAI,EAC1C5kC,EAAO2kC,GAAS/jC,EAAM2vC,EACtBvwC,EAAO4kC,GAAS/jC,EAAO2vC,EACvBxwC,EAAOqqC,WAAa1F,EAAQ,KAAOC,EAIrC,IAAI56C,EAAa,CACf,cAAegI,EAAKs1C,WAQtB,OAJAt1C,EAAKhI,WAAau7C,EAAS,GAAIv7C,EAAYgI,EAAKhI,YAChDgI,EAAKgO,OAASulC,EAAS,GAAIvlC,EAAQhO,EAAKgO,QACxChO,EAAKs3C,YAAc/D,EAAS,GAAIvzC,EAAK0zC,QAAQoI,MAAO97C,EAAKs3C,aAElDt3C,GAo7BL49C,iBAAiB,EAMjBr9B,EAAG,SAMHC,EAAG,SAkBLi+B,WAAY,CAEVlkC,MAAO,IAEP5C,SAAS,EAETziB,GAzpCJ,SAAoB8K,GApBpB,IAAuB5E,EAASpD,EAoC9B,OAXAshD,EAAUt5C,EAAK2U,SAASigC,OAAQ50C,EAAKgO,QAzBhB5S,EA6BP4E,EAAK2U,SAASigC,OA7BE58C,EA6BMgI,EAAKhI,WA5BzC5E,OAAO2T,KAAK/O,GAAYhD,SAAQ,SAAU4R,IAE1B,IADF5O,EAAW4O,GAErBxL,EAAQ6M,aAAarB,EAAM5O,EAAW4O,IAEtCxL,EAAQmQ,gBAAgB3E,MA0BxB5G,EAAKg8C,cAAgB5oD,OAAO2T,KAAK/G,EAAKs3C,aAAaniD,QACrDmkD,EAAUt5C,EAAKg8C,aAAch8C,EAAKs3C,aAG7Bt3C,GA2oCL0+C,OA9nCJ,SAA0BlO,EAAWoE,EAAQvjB,EAASstB,EAAiBhW,GAErE,IAAI0N,EAAmBN,EAAoBpN,EAAOiM,EAAQpE,EAAWnf,EAAQmmB,eAKzElC,EAAYD,EAAqBhkB,EAAQikB,UAAWe,EAAkBzB,EAAQpE,EAAWnf,EAAQ0lB,UAAUU,KAAK3C,kBAAmBzjB,EAAQ0lB,UAAUU,KAAK5C,SAQ9J,OANAD,EAAO3sC,aAAa,cAAeqtC,GAInCgE,EAAU1E,EAAQ,CAAEhrB,SAAUyH,EAAQmmB,cAAgB,QAAU,aAEzDnmB,GAsnCLusB,qBAAiBr4C,KAuGjBq5C,GAAS,WASX,SAASA,EAAOpO,EAAWoE,GACzB,IAAIr6C,EAAQ/C,KAER65B,EAAUv6B,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,GAClFk8C,EAAex7C,KAAMonD,GAErBpnD,KAAKyhD,eAAiB,WACpB,OAAOvlB,sBAAsBn5B,EAAMic,SAIrChf,KAAKgf,OAASm5B,EAASn4C,KAAKgf,OAAOtiB,KAAKsD,OAGxCA,KAAK65B,QAAUkiB,EAAS,GAAIqL,EAAO1D,SAAU7pB,GAG7C75B,KAAKmxC,MAAQ,CACX0O,aAAa,EACbM,WAAW,EACXkB,cAAe,IAIjBrhD,KAAKg5C,UAAYA,GAAaA,EAAU3yC,OAAS2yC,EAAU,GAAKA,EAChEh5C,KAAKo9C,OAASA,GAAUA,EAAO/2C,OAAS+2C,EAAO,GAAKA,EAGpDp9C,KAAK65B,QAAQ0lB,UAAY,GACzB3jD,OAAO2T,KAAKwsC,EAAS,GAAIqL,EAAO1D,SAASnE,UAAW1lB,EAAQ0lB,YAAY/hD,SAAQ,SAAU/B,GACxFsH,EAAM82B,QAAQ0lB,UAAU9jD,GAAQsgD,EAAS,GAAIqL,EAAO1D,SAASnE,UAAU9jD,IAAS,GAAIo+B,EAAQ0lB,UAAY1lB,EAAQ0lB,UAAU9jD,GAAQ,OAIpIuE,KAAKu/C,UAAY3jD,OAAO2T,KAAKvP,KAAK65B,QAAQ0lB,WAAWjlC,KAAI,SAAU7e,GACjE,OAAOsgD,EAAS,CACdtgD,KAAMA,GACLsH,EAAM82B,QAAQ0lB,UAAU9jD,OAG5Bk8B,MAAK,SAAUl4B,EAAGC,GACjB,OAAOD,EAAEsjB,MAAQrjB,EAAEqjB,SAOrB/iB,KAAKu/C,UAAU/hD,SAAQ,SAAU2pD,GAC3BA,EAAgBhnC,SAAW5iB,EAAW4pD,EAAgBD,SACxDC,EAAgBD,OAAOnkD,EAAMi2C,UAAWj2C,EAAMq6C,OAAQr6C,EAAM82B,QAASstB,EAAiBpkD,EAAMouC,UAKhGnxC,KAAKgf,SAEL,IAAIuiC,EAAgBvhD,KAAK65B,QAAQ0nB,cAC7BA,GAEFvhD,KAAKwhD,uBAGPxhD,KAAKmxC,MAAMoQ,cAAgBA,EAqD7B,OA9CA7F,EAAY0L,EAAQ,CAAC,CACnB3qD,IAAK,SACLN,MAAO,WACL,OAAO6iB,EAAO3jB,KAAK2E,QAEpB,CACDvD,IAAK,UACLN,MAAO,WACL,OAAOs+B,EAAQp/B,KAAK2E,QAErB,CACDvD,IAAK,uBACLN,MAAO,WACL,OAAOqlD,EAAqBnmD,KAAK2E,QAElC,CACDvD,IAAK,wBACLN,MAAO,WACL,OAAO2kD,EAAsBzlD,KAAK2E,UA4B/BonD,EA7HI,GAqJbA,GAAOztC,OAA2B,oBAAX1a,OAAyBA,OAASooD,GAAQC,YACjEF,GAAO5E,WAAaA,EACpB4E,GAAO1D,SAAWA,GAEH,c,+CCtjFf;;;;;;AAKA,IAAI6D,EAAc3rD,OAAO4rD,OAAO,IAC5BrqD,EAAUgK,MAAMhK,QAGpB,SAASsqD,EAAQ//C,GACb,OAAOA,QAEX,SAASggD,EAAMhgD,GACX,OAAOA,QAEX,SAASigD,EAAOjgD,GACZ,OAAa,IAANA,EAQX,SAASkgD,EAAYzrD,GACjB,MAAyB,iBAAVA,GACM,iBAAVA,GAEU,iBAAVA,GACU,kBAAVA,EAEf,SAASoB,EAAWpB,GAChB,MAAwB,mBAAVA,EAOlB,SAASmB,EAASG,GACd,OAAe,OAARA,GAA+B,iBAARA,EAKlC,IAAIoqD,EAAYjsD,OAAOkB,UAAUI,SAQjC,SAAS4qD,EAAcrqD,GACnB,MAA+B,oBAAxBoqD,EAAUxsD,KAAKoC,GAE1B,SAASsqD,EAASrgD,GACd,MAA6B,oBAAtBmgD,EAAUxsD,KAAKqM,GAK1B,SAASsgD,EAAkB5qD,GACvB,IAAIT,EAAI4H,WAAW/C,OAAOpE,IAC1B,OAAOT,GAAK,GAAK6G,KAAKse,MAAMnlB,KAAOA,GAAKklD,SAASzkD,GAErD,SAAS6qD,EAAU7qD,GACf,OAAQsqD,EAAMtqD,IACU,mBAAbA,EAAImR,MACU,mBAAdnR,EAAI8qD,MAKnB,SAAShrD,EAASE,GACd,OAAc,MAAPA,EACD,GACA+J,MAAMhK,QAAQC,IAAS0qD,EAAc1qD,IAAQA,EAAIF,WAAa2qD,EAC1D1mD,KAAKC,UAAUhE,EAAK+qD,EAAU,GAC9B3mD,OAAOpE,GAErB,SAAS+qD,EAASC,EAAMhrD,GAEpB,OAAIA,GAAOA,EAAIirD,UACJjrD,EAAIjB,MAERiB,EAMX,SAASkrD,EAASlrD,GACd,IAAIT,EAAI4H,WAAWnH,GACnB,OAAOwkD,MAAMjlD,GAAKS,EAAMT,EAM5B,SAAS4rD,EAAQ1oD,EAAK2oD,GAGlB,IAFA,IAAIluC,EAAM1e,OAAOY,OAAO,MACpBisD,EAAO5oD,EAAI+B,MAAM,KACZ1G,EAAI,EAAGA,EAAIutD,EAAK9qD,OAAQzC,IAC7Bof,EAAImuC,EAAKvtD,KAAM,EAEnB,OAAOstD,EAAmB,SAAUprD,GAAO,OAAOkd,EAAIld,EAAImI,gBAAoB,SAAUnI,GAAO,OAAOkd,EAAIld,IAK9G,IAAIsrD,EAAeH,EAAQ,kBAAkB,GAIzCI,EAAsBJ,EAAQ,8BAIlC,SAASK,EAASx2C,EAAKy2C,GACnB,IAAI7+C,EAAMoI,EAAIzU,OACd,GAAIqM,EAAK,CAEL,GAAI6+C,IAASz2C,EAAIpI,EAAM,GAEnB,YADAoI,EAAIzU,OAASqM,EAAM,GAGvB,IAAI8N,EAAQ1F,EAAItK,QAAQ+gD,GACxB,GAAI/wC,GAAS,EACT,OAAO1F,EAAIuD,OAAOmC,EAAO,IAOrC,IAAI/a,EAAiBnB,OAAOkB,UAAUC,eACtC,SAAS+rD,EAAOrrD,EAAKhB,GACjB,OAAOM,EAAe1B,KAAKoC,EAAKhB,GAKpC,SAASssD,EAAOrrD,GACZ,IAAIwgC,EAAQtiC,OAAOY,OAAO,MAC1B,OAAO,SAAkBqD,GAErB,OADUq+B,EAAMr+B,KACDq+B,EAAMr+B,GAAOnC,EAAGmC,KAMvC,IAAImpD,EAAa,SACbC,EAAWF,GAAO,SAAUlpD,GAC5B,OAAOA,EAAIC,QAAQkpD,GAAY,SAAU/kD,EAAG1I,GAAK,OAAQA,EAAIA,EAAEmK,cAAgB,SAK/EwjD,EAAaH,GAAO,SAAUlpD,GAC9B,OAAOA,EAAIuC,OAAO,GAAGsD,cAAgB7F,EAAIqC,MAAM,MAK/CinD,EAAc,aACdC,EAAYL,GAAO,SAAUlpD,GAC7B,OAAOA,EAAIC,QAAQqpD,EAAa,OAAO5jD,iBA0B3C,IAAI8jD,EAASppD,SAASnD,UAAUJ,KAJhC,SAAoBgB,EAAI4rD,GACpB,OAAO5rD,EAAGhB,KAAK4sD,IAbnB,SAAsB5rD,EAAI4rD,GACtB,SAASC,EAAQ9pD,GACb,IAAItE,EAAImE,UAAU3B,OAClB,OAAOxC,EACDA,EAAI,EACAuC,EAAGsJ,MAAMsiD,EAAKhqD,WACd5B,EAAGrC,KAAKiuD,EAAK7pD,GACjB/B,EAAGrC,KAAKiuD,GAGlB,OADAC,EAAQC,QAAU9rD,EAAGC,OACd4rD,GAUX,SAASE,EAAQhB,EAAMpyB,GACnBA,EAAQA,GAAS,EAGjB,IAFA,IAAIn7B,EAAIutD,EAAK9qD,OAAS04B,EAClBqzB,EAAM,IAAIviD,MAAMjM,GACbA,KACHwuD,EAAIxuD,GAAKutD,EAAKvtD,EAAIm7B,GAEtB,OAAOqzB,EAKX,SAASlqD,EAAO2b,EAAIwuC,GAChB,IAAK,IAAIltD,KAAOktD,EACZxuC,EAAG1e,GAAOktD,EAAMltD,GAEpB,OAAO0e,EAKX,SAASyuC,EAASx3C,GAEd,IADA,IAAIy3C,EAAM,GACD3uD,EAAI,EAAGA,EAAIkX,EAAIzU,OAAQzC,IACxBkX,EAAIlX,IACJsE,EAAOqqD,EAAKz3C,EAAIlX,IAGxB,OAAO2uD,EAQX,SAASv/C,EAAK7K,EAAGC,EAAGnE,IAIpB,IAAIuuD,EAAK,SAAUrqD,EAAGC,EAAGnE,GAAK,OAAO,GAKjCwuD,EAAW,SAAU9lD,GAAK,OAAOA,GAarC,SAAS+lD,EAAWvqD,EAAGC,GACnB,GAAID,IAAMC,EACN,OAAO,EACX,IAAIuqD,EAAY3sD,EAASmC,GACrByqD,EAAY5sD,EAASoC,GACzB,IAAIuqD,IAAaC,EA+BZ,OAAKD,IAAcC,GACb1oD,OAAO/B,KAAO+B,OAAO9B,GA/B5B,IACI,IAAIyqD,EAAWhjD,MAAMhK,QAAQsC,GACzB2qD,EAAWjjD,MAAMhK,QAAQuC,GAC7B,GAAIyqD,GAAYC,EACZ,OAAQ3qD,EAAE9B,SAAW+B,EAAE/B,QACnB8B,EAAE4qD,OAAM,SAAUnqD,EAAGhF,GACjB,OAAO8uD,EAAW9pD,EAAGR,EAAExE,OAG9B,GAAIuE,aAAawB,MAAQvB,aAAauB,KACvC,OAAOxB,EAAE8jC,YAAc7jC,EAAE6jC,UAExB,GAAK4mB,GAAaC,EAUnB,OAAO,EATP,IAAIE,EAAQ1uD,OAAO2T,KAAK9P,GACpB8qD,EAAQ3uD,OAAO2T,KAAK7P,GACxB,OAAQ4qD,EAAM3sD,SAAW4sD,EAAM5sD,QAC3B2sD,EAAMD,OAAM,SAAU5tD,GAClB,OAAOutD,EAAWvqD,EAAEhD,GAAMiD,EAAEjD,OAQ5C,MAAOyD,GAEH,OAAO,GAenB,SAASsqD,EAAap4C,EAAKhV,GACvB,IAAK,IAAIlC,EAAI,EAAGA,EAAIkX,EAAIzU,OAAQzC,IAC5B,GAAI8uD,EAAW53C,EAAIlX,GAAIkC,GACnB,OAAOlC,EAEf,OAAQ,EAKZ,SAAS6P,EAAKrN,GACV,IAAIsF,GAAS,EACb,OAAO,WACEA,IACDA,GAAS,EACTtF,EAAGsJ,MAAMhH,KAAMV,aAK3B,SAASmrD,EAAW1hC,EAAGC,GACnB,OAAID,IAAMC,EACO,IAAND,GAAW,EAAIA,GAAM,EAAIC,EAGzBD,GAAMA,GAAKC,GAAMA,EAIhC,IACI0hC,EAAc,CAAC,YAAa,YAAa,UACzCC,EAAkB,CAClB,eACA,UACA,cACA,UACA,eACA,UACA,gBACA,YACA,YACA,cACA,gBACA,iBACA,gBACA,mBAGAzlD,EAAS,CAKT0lD,sBAAuBhvD,OAAOY,OAAO,MAIrCquD,QAAQ,EAIRC,eAAe,EAIfC,UAAU,EAIVC,aAAa,EAIbC,aAAc,KAIdC,YAAa,KAIbC,gBAAiB,GAKjBC,SAAUxvD,OAAOY,OAAO,MAKxB6uD,cAAevB,EAKfwB,eAAgBxB,EAKhByB,iBAAkBzB,EAIlB0B,gBAAiBlhD,EAIjBmhD,qBAAsB1B,EAKtB2B,YAAa5B,EAKb6B,OAAO,EAIPC,gBAAiBjB,GAQjBkB,EAAgB,8JAIpB,SAASC,EAAWjsD,GAChB,IAAItE,GAAKsE,EAAM,IAAIksD,WAAW,GAC9B,OAAa,KAANxwD,GAAoB,KAANA,EAKzB,SAASywD,EAAIvuD,EAAKhB,EAAKW,EAAKtB,GACxBF,OAAOC,eAAe4B,EAAKhB,EAAK,CAC5BN,MAAOiB,EACPtB,aAAcA,EACd8/C,UAAU,EACVj/B,cAAc,IAMtB,IAAIsvC,EAAS,IAAIzmD,OAAO,KAAKsE,OAAO+hD,EAAc7P,OAAQ,YAiB1D,IAAIkQ,EAAW,aAAe,GAE1BC,EAA8B,oBAAXltD,OACnBmtD,EAAKD,GAAaltD,OAAOF,UAAUwS,UAAUhM,cAC7C+zC,EAAO8S,GAAM,eAAe/qD,KAAK+qD,GACjCC,GAAQD,GAAMA,EAAGtkD,QAAQ,YAAc,EACvCozB,GAASkxB,GAAMA,EAAGtkD,QAAQ,SAAW,EACzCskD,GAAMA,EAAGtkD,QAAQ,WACjB,IAAIwkD,GAAQF,GAAM,uBAAuB/qD,KAAK+qD,GAC9CA,GAAM,cAAc/qD,KAAK+qD,GACzBA,GAAM,YAAY/qD,KAAK+qD,GACvB,IAoBIG,GApBAC,GAAOJ,GAAMA,EAAG9mD,MAAM,kBAGtBmnD,GAAc,GAAGC,MACjBxwC,IAAkB,EACtB,GAAIiwC,EACA,IACI,IAAIhwC,GAAO,GACXvgB,OAAOC,eAAesgB,GAAM,UAAW,CACnCpgB,IAAK,WAEDmgB,IAAkB,KAG1Bjd,OAAOiP,iBAAiB,eAAgB,KAAMiO,IAElD,MAAOjc,IAKX,IAAIysD,GAAoB,WAapB,YAZkB5+C,IAAdw+C,KASIA,IAPCJ,QAA+B,IAAX9E,IAIjBA,EAAgB,SAAuC,WAAlCA,EAAgB,QAAE38C,IAAIkiD,UAMhDL,IAGPxB,GAAWoB,GAAaltD,OAAO4tD,6BAEnC,SAASC,GAASC,GACd,MAAuB,mBAATA,GAAuB,cAAc1rD,KAAK0rD,EAAK7vD,YAEjE,IAII8vD,GAJAC,GAA8B,oBAAXhxD,QACnB6wD,GAAS7wD,SACU,oBAAZixD,SACPJ,GAASI,QAAQC,SAIjBH,GAFwC,oBAARI,KAAuBN,GAASM,KAEzDA,IAIe,WAClB,SAASA,IACLptD,KAAKa,IAAMjF,OAAOY,OAAO,MAW7B,OATA4wD,EAAItwD,UAAUuwD,IAAM,SAAU5wD,GAC1B,OAAyB,IAAlBuD,KAAKa,IAAIpE,IAEpB2wD,EAAItwD,UAAUsW,IAAM,SAAU3W,GAC1BuD,KAAKa,IAAIpE,IAAO,GAEpB2wD,EAAItwD,UAAUwwD,MAAQ,WAClBttD,KAAKa,IAAMjF,OAAOY,OAAO,OAEtB4wD,EAbU,GAiBzB,IAAIG,GAAkB,KActB,SAASC,GAAmBC,QACb,IAAPA,IAAiBA,EAAK,MACrBA,GACDF,IAAmBA,GAAgBG,OAAO1iD,MAC9CuiD,GAAkBE,EAClBA,GAAMA,EAAGC,OAAO7iD,KAMpB,IAAI8iD,GAAuB,WACvB,SAASA,EAAMC,EAAKplD,EAAM8H,EAAUkH,EAAMq2C,EAAKx7C,EAASy7C,EAAkBC,GACtE/tD,KAAK4tD,IAAMA,EACX5tD,KAAKwI,KAAOA,EACZxI,KAAKsQ,SAAWA,EAChBtQ,KAAKwX,KAAOA,EACZxX,KAAK6tD,IAAMA,EACX7tD,KAAKzD,QAAKwR,EACV/N,KAAKqS,QAAUA,EACfrS,KAAKguD,eAAYjgD,EACjB/N,KAAKiuD,eAAYlgD,EACjB/N,KAAKkuD,eAAYngD,EACjB/N,KAAKvD,IAAM+L,GAAQA,EAAK/L,IACxBuD,KAAK8tD,iBAAmBA,EACxB9tD,KAAKmuD,uBAAoBpgD,EACzB/N,KAAKkZ,YAASnL,EACd/N,KAAKmjC,KAAM,EACXnjC,KAAKouD,UAAW,EAChBpuD,KAAKquD,cAAe,EACpBruD,KAAKsuD,WAAY,EACjBtuD,KAAKuuD,UAAW,EAChBvuD,KAAKwuD,QAAS,EACdxuD,KAAK+tD,aAAeA,EACpB/tD,KAAKyuD,eAAY1gD,EACjB/N,KAAK0uD,oBAAqB,EAW9B,OATA9yD,OAAOC,eAAe8xD,EAAM7wD,UAAW,QAAS,CAG5Cf,IAAK,WACD,OAAOiE,KAAKmuD,mBAEhBryD,YAAY,EACZ6gB,cAAc,IAEXgxC,EAnCe,GAqCtBgB,GAAmB,SAAUn3C,QAChB,IAATA,IAAmBA,EAAO,IAC9B,IAAImiC,EAAO,IAAIgU,GAGf,OAFAhU,EAAKniC,KAAOA,EACZmiC,EAAK2U,WAAY,EACV3U,GAEX,SAASiV,GAAgBxxD,GACrB,OAAO,IAAIuwD,QAAM5/C,OAAWA,OAAWA,EAAWvM,OAAOpE,IAM7D,SAASyxD,GAAWC,GAChB,IAAIC,EAAS,IAAIpB,GAAMmB,EAAMlB,IAAKkB,EAAMtmD,KAIxCsmD,EAAMx+C,UAAYw+C,EAAMx+C,SAASpO,QAAS4sD,EAAMt3C,KAAMs3C,EAAMjB,IAAKiB,EAAMz8C,QAASy8C,EAAMhB,iBAAkBgB,EAAMf,cAU9G,OATAgB,EAAOxyD,GAAKuyD,EAAMvyD,GAClBwyD,EAAOX,SAAWU,EAAMV,SACxBW,EAAOtyD,IAAMqyD,EAAMryD,IACnBsyD,EAAOT,UAAYQ,EAAMR,UACzBS,EAAOf,UAAYc,EAAMd,UACzBe,EAAOd,UAAYa,EAAMb,UACzBc,EAAOb,UAAYY,EAAMZ,UACzBa,EAAON,UAAYK,EAAML,UACzBM,EAAOR,UAAW,EACXQ,EA0GgB,mBAApBC,iBAAiCA,gBAKxC,IAAIC,GAAQ,EACRC,GAAqB,GAcrBC,GAAqB,WACrB,SAASA,IAELnvD,KAAKovD,UAAW,EAChBpvD,KAAKqvD,GAAKJ,KACVjvD,KAAKsvD,KAAO,GA0ChB,OAxCAH,EAAIryD,UAAUyyD,OAAS,SAAUC,GAC7BxvD,KAAKsvD,KAAK1nD,KAAK4nD,IAEnBL,EAAIryD,UAAU2yD,UAAY,SAAUD,GAKhCxvD,KAAKsvD,KAAKtvD,KAAKsvD,KAAKxnD,QAAQ0nD,IAAQ,KAC/BxvD,KAAKovD,WACNpvD,KAAKovD,UAAW,EAChBF,GAAmBtnD,KAAK5H,QAGhCmvD,EAAIryD,UAAU4yD,OAAS,SAAUC,GACzBR,EAAIvoD,QACJuoD,EAAIvoD,OAAOgpD,OAAO5vD,OAM1BmvD,EAAIryD,UAAU4yC,OAAS,SAAUigB,GAE7B,IAAIL,EAAOtvD,KAAKsvD,KAAK9/C,QAAO,SAAUvS,GAAK,OAAOA,KAOlD,IAAK,IAAI/B,EAAI,EAAGC,EAAIm0D,EAAK3xD,OAAQzC,EAAIC,EAAGD,IAAK,CAErC,EADMo0D,EAAKp0D,GAKX8jB,WAGLmwC,EA/Ca,GAoDxBA,GAAIvoD,OAAS,KACb,IAAIipD,GAAc,GAClB,SAASC,GAAWlpD,GAChBipD,GAAYjoD,KAAKhB,GACjBuoD,GAAIvoD,OAASA,EAEjB,SAASmpD,KACLF,GAAYh9B,MACZs8B,GAAIvoD,OAASipD,GAAYA,GAAYlyD,OAAS,GAOlD,IAAIqyD,GAAa7oD,MAAMrK,UACnBmzD,GAAer0D,OAAOY,OAAOwzD,IACZ,CACjB,OACA,MACA,QACA,UACA,SACA,OACA,WAKWxyD,SAAQ,SAAUyL,GAE7B,IAAIinD,EAAWF,GAAW/mD,GAC1B+iD,EAAIiE,GAAchnD,GAAQ,WAEtB,IADA,IAAI/B,EAAO,GACFipD,EAAK,EAAGA,EAAK7wD,UAAU3B,OAAQwyD,IACpCjpD,EAAKipD,GAAM7wD,UAAU6wD,GAEzB,IAEIC,EAFAhxD,EAAS8wD,EAASlpD,MAAMhH,KAAMkH,GAC9BmpD,EAAKrwD,KAAKswD,OAEd,OAAQrnD,GACJ,IAAK,OACL,IAAK,UACDmnD,EAAWlpD,EACX,MACJ,IAAK,SACDkpD,EAAWlpD,EAAKhF,MAAM,GAgB9B,OAbIkuD,GACAC,EAAGE,aAAaH,GAUhBC,EAAGG,IAAI9gB,SAEJtwC,QAIf,IAAIqxD,GAAY70D,OAAO80D,oBAAoBT,IACvCU,GAAmB,GAKnBC,IAAgB,EACpB,SAASC,GAAgB10D,GACrBy0D,GAAgBz0D,EAGpB,IAAI20D,GAAU,CACVphB,OAAQplC,EACRolD,OAAQplD,EACRilD,OAAQjlD,EACRmlD,UAAWnlD,GAQXoxB,GAA0B,WAC1B,SAASA,EAASv/B,EAAO40D,EAASC,GAU9B,QATgB,IAAZD,IAAsBA,GAAU,QACvB,IAATC,IAAmBA,GAAO,GAC9BhxD,KAAK7D,MAAQA,EACb6D,KAAK+wD,QAAUA,EACf/wD,KAAKgxD,KAAOA,EAEZhxD,KAAKwwD,IAAMQ,EAAOF,GAAU,IAAI3B,GAChCnvD,KAAKixD,QAAU,EACfjF,EAAI7vD,EAAO,SAAU6D,MACjB7C,EAAQhB,GAAQ,CAChB,IAAK60D,EACD,GAAI9E,EACA/vD,EAAM89B,UAAYg2B,QAIlB,IAAK,IAAI/0D,EAAI,EAAGC,EAAIs1D,GAAU9yD,OAAQzC,EAAIC,EAAGD,IAAK,CAE9C8wD,EAAI7vD,EADAM,EAAMg0D,GAAUv1D,GACJ+0D,GAAaxzD,IAIpCs0D,GACD/wD,KAAKuwD,aAAap0D,OAStB,KAAIoT,EAAO3T,OAAO2T,KAAKpT,GACvB,IAASjB,EAAI,EAAGA,EAAIqU,EAAK5R,OAAQzC,IAAK,CAClC,IAAIuB,EACJy0D,GAAe/0D,EADXM,EAAM8S,EAAKrU,GACYy1D,QAAkB5iD,EAAWgjD,EAASC,KAY7E,OALAt1B,EAAS5+B,UAAUyzD,aAAe,SAAUp0D,GACxC,IAAK,IAAIjB,EAAI,EAAGC,EAAIgB,EAAMwB,OAAQzC,EAAIC,EAAGD,IACrCihC,GAAQhgC,EAAMjB,IAAI,EAAO8E,KAAKgxD,OAG/Bt1B,EAjDkB,GAyD7B,SAASS,GAAQhgC,EAAO40D,EAASI,GAC7B,OAAIh1D,GAAS2sD,EAAO3sD,EAAO,WAAaA,EAAMm0D,kBAAkB50B,GACrDv/B,EAAMm0D,QAEbM,KACCO,GAAsBxE,OACtBxvD,EAAQhB,KAAU2rD,EAAc3rD,KACjCP,OAAOw1D,aAAaj1D,IACnBA,EAAMk1D,UACNC,GAAMn1D,IACLA,aAAiBwxD,QANvB,EAOW,IAAIjyB,GAASv/B,EAAO40D,EAASI,GAM5C,SAASD,GAAezzD,EAAKhB,EAAKW,EAAKm0D,EAAcR,EAASC,EAAMQ,QACnC,IAAzBA,IAAmCA,GAAuB,GAC9D,IAAIhB,EAAM,IAAIrB,GACVtyD,EAAWjB,OAAO6f,yBAAyBhe,EAAKhB,GACpD,IAAII,IAAsC,IAA1BA,EAAS8f,aAAzB,CAIA,IAAIjhB,EAASmB,GAAYA,EAASd,IAC9B01D,EAAS50D,GAAYA,EAASgE,IAC5BnF,IAAU+1D,GACXr0D,IAAQuzD,IAAyC,IAArBrxD,UAAU3B,SACvCP,EAAMK,EAAIhB,IAEd,IAAIi1D,EAAUX,EAAU3zD,GAAOA,EAAIkzD,OAASn0B,GAAQ/+B,GAAK,EAAO4zD,GA+DhE,OA9DAp1D,OAAOC,eAAe4B,EAAKhB,EAAK,CAC5BX,YAAY,EACZ6gB,cAAc,EACd5gB,IAAK,WACD,IAAII,EAAQT,EAASA,EAAOL,KAAKoC,GAAOL,EAmBxC,OAlBI+xD,GAAIvoD,SASA4pD,EAAId,SAEJgC,IACAA,EAAQlB,IAAId,SACRvyD,EAAQhB,IACRw1D,GAAYx1D,KAIjBm1D,GAAMn1D,KAAW40D,EAAU50D,EAAMA,MAAQA,GAEpD0E,IAAK,SAAwB+wD,GACzB,IAAIz1D,EAAQT,EAASA,EAAOL,KAAKoC,GAAOL,EACxC,GAAKqtD,EAAWtuD,EAAOy1D,GAAvB,CAMA,GAAIH,EACAA,EAAOp2D,KAAKoC,EAAKm0D,OAEhB,IAAIl2D,EAEL,OAEC,IAAKq1D,GAAWO,GAAMn1D,KAAWm1D,GAAMM,GAExC,YADAz1D,EAAMA,MAAQy1D,GAIdx0D,EAAMw0D,EAEVF,EAAUX,EAAUa,GAAUA,EAAOtB,OAASn0B,GAAQy1B,GAAQ,EAAOZ,GAWjER,EAAI9gB,aAIT8gB,GAEX,SAAS3vD,GAAI+F,EAAQnK,EAAKW,GAItB,IAAIy0D,GAAWjrD,GAAf,CAIA,IAAIypD,EAAKzpD,EAAO0pD,OAChB,OAAInzD,EAAQyJ,IAAWohD,EAAkBvrD,IACrCmK,EAAOjJ,OAAS6F,KAAK0e,IAAItb,EAAOjJ,OAAQlB,GACxCmK,EAAO+O,OAAOlZ,EAAK,EAAGW,GAElBizD,IAAOA,EAAGU,SAAWV,EAAGW,MACxB70B,GAAQ/+B,GAAK,GAAO,GAEjBA,GAEPX,KAAOmK,KAAYnK,KAAOb,OAAOkB,YACjC8J,EAAOnK,GAAOW,EACPA,GAEPwJ,EAAOkrD,QAAWzB,GAAMA,EAAGY,QAIpB7zD,EAENizD,GAILa,GAAeb,EAAGl0D,MAAOM,EAAKW,OAAK2Q,EAAWsiD,EAAGU,QAASV,EAAGW,MAWzDX,EAAGG,IAAI9gB,SAEJtyC,IAhBHwJ,EAAOnK,GAAOW,EACPA,IAiBf,SAAS20D,GAAInrD,EAAQnK,GAIjB,GAAIU,EAAQyJ,IAAWohD,EAAkBvrD,GACrCmK,EAAO+O,OAAOlZ,EAAK,OADvB,CAIA,IAAI4zD,EAAKzpD,EAAO0pD,OACZ1pD,EAAOkrD,QAAWzB,GAAMA,EAAGY,SAM3BY,GAAWjrD,IAKVkiD,EAAOliD,EAAQnK,YAGbmK,EAAOnK,GACT4zD,GAWDA,EAAGG,IAAI9gB,WAOf,SAASiiB,GAAYx1D,GACjB,IAAK,IAAI+D,OAAI,EAAQhF,EAAI,EAAGC,EAAIgB,EAAMwB,OAAQzC,EAAIC,EAAGD,KACjDgF,EAAI/D,EAAMjB,KACDgF,EAAEowD,QACPpwD,EAAEowD,OAAOE,IAAId,SAEbvyD,EAAQ+C,IACRyxD,GAAYzxD,GAcxB,SAAS8xD,GAAgBprD,GAGrB,OAFAqrD,GAAarrD,GAAQ,GACrBolD,EAAIplD,EAAQ,iBAAgD,GACrDA,EAEX,SAASqrD,GAAarrD,EAAQmqD,GAE1B,IAAKc,GAAWjrD,GAAS,CAUZu1B,GAAQv1B,EAAQmqD,EAASpE,MAC9B,GAmBZ,SAASkF,GAAW11D,GAChB,SAAUA,IAASA,EAAM+1D,gBA4B7B,SAASZ,GAAMt1D,GACX,SAAUA,IAAqB,IAAhBA,EAAEqsD,WAgDrB,SAAS8J,GAAmBvrD,EAAQo1C,EAAQv/C,GACxCb,OAAOC,eAAe+K,EAAQnK,EAAK,CAC/BX,YAAY,EACZ6gB,cAAc,EACd5gB,IAAK,WACD,IAAIqB,EAAM4+C,EAAOv/C,GACjB,GAAI60D,GAAMl0D,GACN,OAAOA,EAAIjB,MAGX,IAAIk0D,EAAKjzD,GAAOA,EAAIkzD,OAGpB,OAFID,GACAA,EAAGG,IAAId,SACJtyD,GAGfyD,IAAK,SAAU1E,GACX,IAAIi2D,EAAWpW,EAAOv/C,GAClB60D,GAAMc,KAAcd,GAAMn1D,GAC1Bi2D,EAASj2D,MAAQA,EAGjB6/C,EAAOv/C,GAAON,KAgO9B,IAAIk2D,GAAiBtJ,GAAO,SAAUttD,GAClC,IAAI+6B,EAA6B,MAAnB/6B,EAAK2G,OAAO,GAEtB2I,EAA0B,OAD9BtP,EAAO+6B,EAAU/6B,EAAKyG,MAAM,GAAKzG,GACjB2G,OAAO,GAEnBwS,EAA6B,OADjCnZ,EAAOsP,EAAOtP,EAAKyG,MAAM,GAAKzG,GACX2G,OAAO,GAE1B,MAAO,CACH3G,KAFJA,EAAOmZ,EAAUnZ,EAAKyG,MAAM,GAAKzG,EAG7BsP,KAAMA,EACN6J,QAASA,EACT4hB,QAASA,MAGjB,SAAS87B,GAAgBC,EAAK9E,GAC1B,SAAS+E,IACL,IAAID,EAAMC,EAAQD,IAClB,IAAIp1D,EAAQo1D,GAQR,OAAOE,GAAwBF,EAAK,KAAMjzD,UAAWmuD,EAAI,gBANzD,IADA,IAAIsB,EAASwD,EAAIrwD,QACRhH,EAAI,EAAGA,EAAI6zD,EAAOpxD,OAAQzC,IAC/Bu3D,GAAwB1D,EAAO7zD,GAAI,KAAMoE,UAAWmuD,EAAI,gBASpE,OADA+E,EAAQD,IAAMA,EACPC,EAEX,SAASE,GAAgB7nD,EAAI8nD,EAAOv/C,EAAK5Q,EAAQowD,EAAmBnF,GAChE,IAAIhyD,EAAMikD,EAAKmT,EAAKtsD,EACpB,IAAK9K,KAAQoP,EACT60C,EAAM70C,EAAGpP,GACTo3D,EAAMF,EAAMl3D,GACZ8K,EAAQ8rD,GAAe52D,GACnBgsD,EAAQ/H,KAIH+H,EAAQoL,IACTpL,EAAQ/H,EAAI6S,OACZ7S,EAAM70C,EAAGpP,GAAQ62D,GAAgB5S,EAAK+N,IAEtC9F,EAAOphD,EAAMwE,QACb20C,EAAM70C,EAAGpP,GAAQm3D,EAAkBrsD,EAAM9K,KAAMikD,EAAKn5C,EAAMqO,UAE9DxB,EAAI7M,EAAM9K,KAAMikD,EAAKn5C,EAAMqO,QAASrO,EAAMiwB,QAASjwB,EAAMgB,SAEpDm4C,IAAQmT,IACbA,EAAIN,IAAM7S,EACV70C,EAAGpP,GAAQo3D,IAGnB,IAAKp3D,KAAQk3D,EACLlL,EAAQ58C,EAAGpP,KAEX+G,GADA+D,EAAQ8rD,GAAe52D,IACVA,KAAMk3D,EAAMl3D,GAAO8K,EAAMqO,SAKlD,SAASk+C,GAAe9G,EAAK+G,EAASC,GAIlC,IAAIR,EAHAxG,aAAe2B,KACf3B,EAAMA,EAAIxjD,KAAKwqD,OAAShH,EAAIxjD,KAAKwqD,KAAO,KAG5C,IAAIC,EAAUjH,EAAI+G,GAClB,SAASG,IACLF,EAAKhsD,MAAMhH,KAAMV,WAGjBspD,EAAS4J,EAAQD,IAAKW,GAEtBzL,EAAQwL,GAERT,EAAUF,GAAgB,CAACY,IAIvBxL,EAAMuL,EAAQV,MAAQ5K,EAAOsL,EAAQE,SAErCX,EAAUS,GACFV,IAAI3qD,KAAKsrD,GAIjBV,EAAUF,GAAgB,CAACW,EAASC,IAG5CV,EAAQW,QAAS,EACjBnH,EAAI+G,GAAWP,EAmCnB,SAASY,GAAUvJ,EAAK/4C,EAAMrU,EAAKgjC,EAAQ4zB,GACvC,GAAI3L,EAAM52C,GAAO,CACb,GAAIg4C,EAAOh4C,EAAMrU,GAKb,OAJAotD,EAAIptD,GAAOqU,EAAKrU,GACX42D,UACMviD,EAAKrU,IAET,EAEN,GAAIqsD,EAAOh4C,EAAM2uB,GAKlB,OAJAoqB,EAAIptD,GAAOqU,EAAK2uB,GACX4zB,UACMviD,EAAK2uB,IAET,EAGf,OAAO,EA0BX,SAAS6zB,GAAkBhjD,GACvB,OAAOs3C,EAAYt3C,GACb,CAACs+C,GAAgBt+C,IACjBnT,EAAQmT,GAOlB,SAASijD,EAAuBjjD,EAAUkjD,GACtC,IACIt4D,EAAGK,EAAG+oC,EAAWmvB,EADjB5J,EAAM,GAEV,IAAK3uD,EAAI,EAAGA,EAAIoV,EAAS3S,OAAQzC,IAEzBusD,EADJlsD,EAAI+U,EAASpV,KACkB,kBAANK,IAEzB+oC,EAAYulB,EAAIlsD,OAAS,EACzB81D,EAAO5J,EAAIvlB,GAEPnnC,EAAQ5B,GACJA,EAAEoC,OAAS,IAGP+1D,IAFJn4D,EAAIg4D,EAAuBh4D,EAAG,GAAGuO,OAAO0pD,GAAe,GAAI,KAAK1pD,OAAO5O,KAEtD,KAAOw4D,GAAWD,KAC/B5J,EAAIvlB,GAAasqB,GAAgB6E,EAAKj8C,KAAOjc,EAAE,GAAGic,MAClDjc,EAAEqnC,SAENinB,EAAIjiD,KAAKZ,MAAM6iD,EAAKtuD,IAGnBqsD,EAAYrsD,GACbm4D,GAAWD,GAIX5J,EAAIvlB,GAAasqB,GAAgB6E,EAAKj8C,KAAOjc,GAElC,KAANA,GAELsuD,EAAIjiD,KAAKgnD,GAAgBrzD,IAIzBm4D,GAAWn4D,IAAMm4D,GAAWD,GAE5B5J,EAAIvlB,GAAasqB,GAAgB6E,EAAKj8C,KAAOjc,EAAEic,OAI3CmwC,EAAOr3C,EAASqjD,WAChBjM,EAAMnsD,EAAEqyD,MACRnG,EAAQlsD,EAAEkB,MACVirD,EAAM8L,KACNj4D,EAAEkB,IAAM,UAAUqN,OAAO0pD,EAAa,KAAK1pD,OAAO5O,EAAG,OAEzD2uD,EAAIjiD,KAAKrM,KAIrB,OAAOsuD,EAxDG0J,CAAuBjjD,QACvBvC,EAEd,SAAS2lD,GAAW/Z,GAChB,OAAO+N,EAAM/N,IAAS+N,EAAM/N,EAAKniC,QAhqDpB,IAgqDqCmiC,EAAK2U,UA2D3D,SAASsF,GAAgBvhD,EAASu7C,EAAKplD,EAAM8H,EAAUujD,EAAmBC,GAStE,OARI32D,EAAQqL,IAASo/C,EAAYp/C,MAC7BqrD,EAAoBvjD,EACpBA,EAAW9H,EACXA,OAAOuF,GAEP45C,EAAOmM,KACPD,EAVe,GAcvB,SAAwBxhD,EAASu7C,EAAKplD,EAAM8H,EAAUujD,GAClD,GAAInM,EAAMl/C,IAASk/C,EAAMl/C,EAAK8nD,QAG1B,OAAO3B,KAGPjH,EAAMl/C,IAASk/C,EAAMl/C,EAAK3B,MAC1B+mD,EAAMplD,EAAK3B,IAEf,IAAK+mD,EAED,OAAOe,KAGP,EAKAxxD,EAAQmT,IAAa/S,EAAW+S,EAAS,OACzC9H,EAAOA,GAAQ,IACVurD,YAAc,CAAEC,QAAS1jD,EAAS,IACvCA,EAAS3S,OAAS,GArCH,IAuCfk2D,EACAvjD,EAAWgjD,GAAkBhjD,GAzCd,IA2CVujD,IACLvjD,EAvHR,SAAiCA,GAC7B,IAAK,IAAIpV,EAAI,EAAGA,EAAIoV,EAAS3S,OAAQzC,IACjC,GAAIiC,EAAQmT,EAASpV,IACjB,OAAOiM,MAAMrK,UAAUgN,OAAO9C,MAAM,GAAIsJ,GAGhD,OAAOA,EAiHQ2jD,CAAwB3jD,IAEvC,IAAIw+C,EAAOvyD,EACX,GAAmB,iBAARqxD,EAAkB,CACzB,IAAIb,OAAO,EACXxwD,EAAM8V,EAAQ6hD,QAAU7hD,EAAQ6hD,OAAO33D,IAAO2I,EAAOsmD,gBAAgBoC,GASjEkB,EARA5pD,EAAOmmD,cAAcuC,GAQb,IAAID,GAAMzoD,EAAOumD,qBAAqBmC,GAAMplD,EAAM8H,OAAUvC,OAAWA,EAAWsE,GAEnF7J,GAASA,EAAK2rD,MACrBzM,EAAOqF,EAAOqH,GAAa/hD,EAAQgiD,SAAU,aAAczG,IAQnD,IAAID,GAAMC,EAAKplD,EAAM8H,OAAUvC,OAAWA,EAAWsE,GANrDiiD,GAAgBvH,EAAMvkD,EAAM6J,EAAS/B,EAAUs9C,QAW3DkB,EAAQwF,GAAgB1G,EAAKplD,EAAM6J,EAAS/B,GAEhD,OAAInT,EAAQ2xD,GACDA,EAEFpH,EAAMoH,IACPpH,EAAMnrD,IAUlB,SAASg4D,EAAQzF,EAAOvyD,EAAIsgC,GACxBiyB,EAAMvyD,GAAKA,EACO,kBAAduyD,EAAMlB,MAENrxD,OAAKwR,EACL8uB,GAAQ,GAEZ,GAAI6qB,EAAMoH,EAAMx+C,UACZ,IAAK,IAAIpV,EAAI,EAAGC,EAAI2zD,EAAMx+C,SAAS3S,OAAQzC,EAAIC,EAAGD,IAAK,CACnD,IAAI6c,EAAQ+2C,EAAMx+C,SAASpV,GACvBwsD,EAAM3vC,EAAM61C,OACXnG,EAAQ1vC,EAAMxb,KAAQorD,EAAO9qB,IAAwB,QAAd9kB,EAAM61C,MAC9C2G,EAAQx8C,EAAOxb,EAAIsgC,IArBvB03B,CAAQzF,EAAOvyD,GACfmrD,EAAMl/C,IA4BlB,SAA8BA,GACtBlL,EAASkL,EAAKgI,QACdgkD,GAAShsD,EAAKgI,OAEdlT,EAASkL,EAAKisD,QACdD,GAAShsD,EAAKisD,OAhCVC,CAAqBlsD,GAClBsmD,GAGAH,KA1EJgG,CAAetiD,EAASu7C,EAAKplD,EAAM8H,EAAUujD,GA6GxD,SAASe,GAAWx3D,EAAKwoC,GACrB,IAAgB1qC,EAAGC,EAAGoU,EAAM9S,EAAxBitD,EAAM,KACV,GAAIvsD,EAAQC,IAAuB,iBAARA,EAEvB,IADAssD,EAAM,IAAIviD,MAAM/J,EAAIO,QACfzC,EAAI,EAAGC,EAAIiC,EAAIO,OAAQzC,EAAIC,EAAGD,IAC/BwuD,EAAIxuD,GAAK0qC,EAAOxoC,EAAIlC,GAAIA,QAG3B,GAAmB,iBAARkC,EAEZ,IADAssD,EAAM,IAAIviD,MAAM/J,GACXlC,EAAI,EAAGA,EAAIkC,EAAKlC,IACjBwuD,EAAIxuD,GAAK0qC,EAAO1qC,EAAI,EAAGA,QAG1B,GAAIoC,EAASF,GACd,GAAI6vD,IAAa7vD,EAAInB,OAAO44D,UAAW,CACnCnL,EAAM,GAGN,IAFA,IAAImL,EAAWz3D,EAAInB,OAAO44D,YACtBz1D,EAASy1D,EAASn8C,QACdtZ,EAAO01D,MACXpL,EAAI9hD,KAAKg+B,EAAOxmC,EAAOjD,MAAOutD,EAAI/rD,SAClCyB,EAASy1D,EAASn8C,YAMtB,IAFAnJ,EAAO3T,OAAO2T,KAAKnS,GACnBssD,EAAM,IAAIviD,MAAMoI,EAAK5R,QAChBzC,EAAI,EAAGC,EAAIoU,EAAK5R,OAAQzC,EAAIC,EAAGD,IAChCuB,EAAM8S,EAAKrU,GACXwuD,EAAIxuD,GAAK0qC,EAAOxoC,EAAIX,GAAMA,EAAKvB,GAQ3C,OAJKwsD,EAAMgC,KACPA,EAAM,IAEVA,EAAIiK,UAAW,EACRjK,EAMX,SAASqL,GAAWt5D,EAAMu5D,EAAgB19C,EAAO29C,GAC7C,IACIC,EADAC,EAAen1D,KAAKo1D,aAAa35D,GAEjC05D,GAEA79C,EAAQA,GAAS,GACb29C,IAIA39C,EAAQ9X,EAAOA,EAAO,GAAIy1D,GAAa39C,IAE3C49C,EACIC,EAAa79C,KACR/Z,EAAWy3D,GAAkBA,IAAmBA,IAGzDE,EACIl1D,KAAKq1D,OAAO55D,KACP8B,EAAWy3D,GAAkBA,IAAmBA,GAE7D,IAAIpuD,EAAS0Q,GAASA,EAAMg+C,KAC5B,OAAI1uD,EACO5G,KAAKu1D,eAAe,WAAY,CAAED,KAAM1uD,GAAUsuD,GAGlDA,EAOf,SAASM,GAAcnG,GACnB,OAAO+E,GAAap0D,KAAKq0D,SAAU,UAAWhF,GAAI,IAAStF,EAG/D,SAAS0L,GAAcC,EAAQC,GAC3B,OAAIx4D,EAAQu4D,IAC2B,IAA5BA,EAAO5tD,QAAQ6tD,GAGfD,IAAWC,EAQ1B,SAASC,GAAcC,EAAcp5D,EAAKq5D,EAAgBC,EAAcC,GACpE,IAAIC,EAAgB/wD,EAAOkmD,SAAS3uD,IAAQq5D,EAC5C,OAAIE,GAAkBD,IAAiB7wD,EAAOkmD,SAAS3uD,GAC5Cg5D,GAAcO,EAAgBD,GAEhCE,EACER,GAAcQ,EAAeJ,GAE/BE,EACE3M,EAAU2M,KAAkBt5D,OAEfsR,IAAjB8nD,EAMX,SAASK,GAAgB1tD,EAAMolD,EAAKzxD,EAAOg6D,EAAQC,GAC/C,GAAIj6D,EACA,GAAKmB,EAASnB,GAIT,CACGgB,EAAQhB,KACRA,EAAQytD,EAASztD,IAErB,IAAI2U,OAAO,EACPulD,EAAU,SAAU55D,GACpB,GAAY,UAARA,GAA2B,UAARA,GAAmBksD,EAAoBlsD,GAC1DqU,EAAOtI,MAEN,CACD,IAAIomB,EAAOpmB,EAAKmL,OAASnL,EAAKmL,MAAMib,KACpC9d,EACIqlD,GAAUjxD,EAAOwmD,YAAYkC,EAAKh/B,EAAMnyB,GAClC+L,EAAK8tD,WAAa9tD,EAAK8tD,SAAW,IAClC9tD,EAAKmL,QAAUnL,EAAKmL,MAAQ,IAE1C,IAAI4iD,EAAetN,EAASxsD,GACxB+5D,EAAgBpN,EAAU3sD,GACxB85D,KAAgBzlD,GAAW0lD,KAAiB1lD,IAC9CA,EAAKrU,GAAON,EAAMM,GACd25D,KACS5tD,EAAKqC,KAAOrC,EAAKqC,GAAK,KAC5B,UAAUf,OAAOrN,IAAQ,SAAUg6D,GAClCt6D,EAAMM,GAAOg6D,MAK7B,IAAK,IAAIh6D,KAAON,EACZk6D,EAAQ55D,QAIpB,OAAO+L,EAMX,SAASkuD,GAAa5+C,EAAO6+C,GACzB,IAAI5N,EAAS/oD,KAAK42D,eAAiB52D,KAAK42D,aAAe,IACnDC,EAAO9N,EAAOjxC,GAGlB,OAAI++C,IAASF,GAMbG,GAFAD,EAAO9N,EAAOjxC,GAAS9X,KAAKq0D,SAAS0C,gBAAgBj/C,GAAOzc,KAAK2E,KAAKg3D,aAAch3D,KAAKi3D,GAAIj3D,MAE1E,aAAa8J,OAAOgO,IAAQ,GALpC++C,EAYf,SAASK,GAASL,EAAM/+C,EAAOrb,GAE3B,OADAq6D,GAAaD,EAAM,WAAW/sD,OAAOgO,GAAOhO,OAAOrN,EAAM,IAAIqN,OAAOrN,GAAO,KAAK,GACzEo6D,EAEX,SAASC,GAAaD,EAAMp6D,EAAK+xD,GAC7B,GAAIrxD,EAAQ05D,GACR,IAAK,IAAI37D,EAAI,EAAGA,EAAI27D,EAAKl5D,OAAQzC,IACzB27D,EAAK37D,IAAyB,iBAAZ27D,EAAK37D,IACvBi8D,GAAeN,EAAK37D,GAAI,GAAG4O,OAAOrN,EAAK,KAAKqN,OAAO5O,GAAIszD,QAK/D2I,GAAeN,EAAMp6D,EAAK+xD,GAGlC,SAAS2I,GAAexd,EAAMl9C,EAAK+xD,GAC/B7U,EAAKyU,UAAW,EAChBzU,EAAKl9C,IAAMA,EACXk9C,EAAK6U,OAASA,EAGlB,SAAS4I,GAAoB5uD,EAAMrM,GAC/B,GAAIA,EACA,GAAK2rD,EAAc3rD,GAGd,CACD,IAAI0O,EAAMrC,EAAKqC,GAAKrC,EAAKqC,GAAKrL,EAAO,GAAIgJ,EAAKqC,IAAM,GACpD,IAAK,IAAIpO,KAAON,EAAO,CACnB,IAAIk7D,EAAWxsD,EAAGpO,GACd66D,EAAOn7D,EAAMM,GACjBoO,EAAGpO,GAAO46D,EAAW,GAAGvtD,OAAOutD,EAAUC,GAAQA,QAI7D,OAAO9uD,EAGX,SAAS+uD,GAAmBhF,EAAK1I,EAEjC2N,EAAgBC,GACZ5N,EAAMA,GAAO,CAAE6N,SAAUF,GACzB,IAAK,IAAIt8D,EAAI,EAAGA,EAAIq3D,EAAI50D,OAAQzC,IAAK,CACjC,IAAIo6D,EAAO/C,EAAIr3D,GACXiC,EAAQm4D,GACRiC,GAAmBjC,EAAMzL,EAAK2N,GAEzBlC,IAGDA,EAAKqC,QAELrC,EAAK53D,GAAGi6D,OAAQ,GAEpB9N,EAAIyL,EAAK74D,KAAO64D,EAAK53D,IAM7B,OAHI+5D,IACA5N,EAAI+N,KAAOH,GAER5N,EAIX,SAASgO,GAAgBC,EAASC,GAC9B,IAAK,IAAI78D,EAAI,EAAGA,EAAI68D,EAAOp6D,OAAQzC,GAAK,EAAG,CACvC,IAAIuB,EAAMs7D,EAAO78D,GACE,iBAARuB,GAAoBA,IAC3Bq7D,EAAQC,EAAO78D,IAAM68D,EAAO78D,EAAI,IAOxC,OAAO48D,EAKX,SAASE,GAAgB77D,EAAO87D,GAC5B,MAAwB,iBAAV97D,EAAqB87D,EAAS97D,EAAQA,EAGxD,SAAS+7D,GAAqBtxD,GAC1BA,EAAOuxD,GAAKjB,GACZtwD,EAAOwxD,GAAK9P,EACZ1hD,EAAOyxD,GAAKn7D,EACZ0J,EAAO0xD,GAAK1D,GACZhuD,EAAO2xD,GAAKxD,GACZnuD,EAAO4xD,GAAKxO,EACZpjD,EAAOupD,GAAK3F,EACZ5jD,EAAO6xD,GAAK/B,GACZ9vD,EAAO8xD,GAAKlD,GACZ5uD,EAAO+xD,GAAK/C,GACZhvD,EAAOgyD,GAAK1C,GACZtvD,EAAOiyD,GAAKjK,GACZhoD,EAAOkyD,GAAKnK,GACZ/nD,EAAOmyD,GAAKxB,GACZ3wD,EAAOoyD,GAAK5B,GACZxwD,EAAOqyD,GAAKpB,GACZjxD,EAAOsyD,GAAKlB,GAMhB,SAASmB,GAAa7oD,EAAU+B,GAC5B,IAAK/B,IAAaA,EAAS3S,OACvB,MAAO,GAGX,IADA,IAAIy7D,EAAQ,GACHl+D,EAAI,EAAGC,EAAImV,EAAS3S,OAAQzC,EAAIC,EAAGD,IAAK,CAC7C,IAAI6c,EAAQzH,EAASpV,GACjBsN,EAAOuP,EAAMvP,KAOjB,GALIA,GAAQA,EAAKmL,OAASnL,EAAKmL,MAAM2hD,aAC1B9sD,EAAKmL,MAAM2hD,KAIjBv9C,EAAM1F,UAAYA,GAAW0F,EAAMi2C,YAAc37C,IAClD7J,GACa,MAAbA,EAAK8sD,MAWJ8D,EAAMpF,UAAYoF,EAAMpF,QAAU,KAAKpsD,KAAKmQ,OAX1B,CACnB,IAAIshD,EAAS7wD,EAAK8sD,KACdA,EAAO8D,EAAMC,KAAYD,EAAMC,GAAU,IAC3B,aAAdthD,EAAM61C,IACN0H,EAAK1tD,KAAKZ,MAAMsuD,EAAMv9C,EAAMzH,UAAY,IAGxCglD,EAAK1tD,KAAKmQ,IAQtB,IAAK,IAAIuhD,KAAUF,EACXA,EAAME,GAAQjP,MAAMkP,YACbH,EAAME,GAGrB,OAAOF,EAEX,SAASG,GAAa5f,GAClB,OAAQA,EAAK2U,YAAc3U,EAAKoU,cAA+B,MAAdpU,EAAKniC,KAG1D,SAASk3C,GAAmB/U,GAExB,OAAOA,EAAK2U,WAAa3U,EAAKoU,aAGlC,SAASyL,GAAqBC,EAAS1F,EAAa2F,EAAaC,GAC7D,IAAI9P,EACA+P,EAAiBh+D,OAAO2T,KAAKmqD,GAAa/7D,OAAS,EACnDk8D,EAAW9F,IAAgBA,EAAY2D,SAAWkC,EAClDn9D,EAAMs3D,GAAeA,EAAY6D,KACrC,GAAK7D,EAGA,IAAIA,EAAY+F,YAEjB,OAAO/F,EAAY+F,YAElB,GAAID,GACLF,GACAA,IAAoBpS,GACpB9qD,IAAQk9D,EAAgB/B,OACvBgC,IACAD,EAAgBI,WAGjB,OAAOJ,EAIP,IAAK,IAAIK,KADTnQ,EAAM,GACYkK,EACVA,EAAYiG,IAAuB,MAAbA,EAAM,KAC5BnQ,EAAImQ,GAASC,GAAoBR,EAASC,EAAaM,EAAOjG,EAAYiG,UApBlFnQ,EAAM,GAyBV,IAAK,IAAIqQ,KAASR,EACRQ,KAASrQ,IACXA,EAAIqQ,GAASC,GAAgBT,EAAaQ,IAWlD,OANInG,GAAen4D,OAAOw1D,aAAa2C,KACnCA,EAAY+F,YAAcjQ,GAE9BmC,EAAInC,EAAK,UAAWgQ,GACpB7N,EAAInC,EAAK,OAAQptD,GACjBuvD,EAAInC,EAAK,aAAc+P,GAChB/P,EAEX,SAASoQ,GAAoBxM,EAAIiM,EAAaj9D,EAAKiB,GAC/C,IAAI08D,EAAa,WACb,IAAI1a,EAAM6N,GACVC,GAAmBC,GACnB,IAAI5D,EAAMvqD,UAAU3B,OAASD,EAAGsJ,MAAM,KAAM1H,WAAa5B,EAAG,IAKxDoxD,GAJJjF,EACIA,GAAsB,iBAARA,IAAqB1sD,EAAQ0sD,GACrC,CAACA,GACDyJ,GAAkBzJ,KACTA,EAAI,GAEvB,OADA2D,GAAmB9N,GACZmK,KACDiF,GACkB,IAAfjF,EAAIlsD,QAAgBmxD,EAAMR,YAAcI,GAAmBI,SAC9D/gD,EACA87C,GAYV,OAPInsD,EAAGi6D,OACH/7D,OAAOC,eAAe69D,EAAaj9D,EAAK,CACpCV,IAAKq+D,EACLt+D,YAAY,EACZ6gB,cAAc,IAGfy9C,EAEX,SAASD,GAAgBf,EAAO38D,GAC5B,OAAO,WAAc,OAAO28D,EAAM38D,IAmDtC,SAAS49D,GAAmB5M,GAExB,MAAO,CACH,YACI,IAAKA,EAAG6M,YAAa,CACjB,IAAI3C,EAASlK,EAAG6M,YAAc,GAC9BtO,EAAI2L,EAAO,iBAAiB,GAC5B4C,GAAe5C,EAAOlK,EAAG+M,OAAQjT,EAAakG,EAAI,UAEtD,OAAOA,EAAG6M,aAEd,gBACS7M,EAAGgN,iBAEJF,GADa9M,EAAGgN,gBAAkB,GACZhN,EAAGiN,WAAYnT,EAAakG,EAAI,cAE1D,OAAOA,EAAGgN,iBAEd,YACI,OA8CZ,SAAwBhN,GACfA,EAAGkN,aACJC,GAAgBnN,EAAGkN,YAAc,GAAKlN,EAAG2H,cAE7C,OAAO3H,EAAGkN,YAlDKE,CAAepN,IAE1BtiD,KAAMk+C,EAAOoE,EAAGqN,MAAOrN,GACvBsN,OAAQ,SAAUC,GAOVA,GACAp/D,OAAO2T,KAAKyrD,GAASx9D,SAAQ,SAAUf,GACnC,OAAO01D,GAAmB1E,EAAIuN,EAASv+D,QAM3D,SAAS89D,GAAep/C,EAAIgiB,EAAMrkB,EAAMqE,EAAUyR,GAC9C,IAAIqsC,GAAU,EACd,IAAK,IAAIx+D,KAAO0gC,EACN1gC,KAAO0e,EAIJgiB,EAAK1gC,KAASqc,EAAKrc,KACxBw+D,GAAU,IAJVA,GAAU,EACVC,GAAgB//C,EAAI1e,EAAK0gB,EAAUyR,IAM3C,IAAK,IAAInyB,KAAO0e,EACN1e,KAAO0gC,IACT89B,GAAU,SACH9/C,EAAG1e,IAGlB,OAAOw+D,EAEX,SAASC,GAAgBvD,EAAOl7D,EAAK0gB,EAAUyR,GAC3ChzB,OAAOC,eAAe87D,EAAOl7D,EAAK,CAC9BX,YAAY,EACZ6gB,cAAc,EACd5gB,IAAK,WACD,OAAOohB,EAASyR,GAAMnyB,MAUlC,SAASm+D,GAAez/C,EAAIgiB,GACxB,IAAK,IAAI1gC,KAAO0gC,EACZhiB,EAAG1e,GAAO0gC,EAAK1gC,GAEnB,IAAK,IAAIA,KAAO0e,EACN1e,KAAO0gC,UACFhiB,EAAG1e,GAmGtB,IA4MI0+D,GA8GAC,GA1TAC,GAA2B,KAoE/B,SAASC,GAAWC,EAAMC,GAItB,OAHID,EAAKj/D,YAAe2wD,IAA0C,WAA7BsO,EAAKt/D,OAAOC,gBAC7Cq/D,EAAOA,EAAKvH,SAET12D,EAASi+D,GAAQC,EAAKh8D,OAAO+7D,GAAQA,EAgHhD,SAASE,GAAuBnrD,GAC5B,GAAInT,EAAQmT,GACR,IAAK,IAAIpV,EAAI,EAAGA,EAAIoV,EAAS3S,OAAQzC,IAAK,CACtC,IAAIK,EAAI+U,EAASpV,GACjB,GAAIwsD,EAAMnsD,KAAOmsD,EAAMnsD,EAAEuyD,mBAAqBY,GAAmBnzD,IAC7D,OAAOA,GAgBvB,SAASmgE,GAAMn1D,EAAO7I,GAClBy9D,GAASQ,IAAIp1D,EAAO7I,GAExB,SAASk+D,GAASr1D,EAAO7I,GACrBy9D,GAASU,KAAKt1D,EAAO7I,GAEzB,SAASo+D,GAAoBv1D,EAAO7I,GAChC,IAAIq+D,EAAUZ,GACd,OAAO,SAASt+C,IACZ,IAAIgtC,EAAMnsD,EAAGsJ,MAAM,KAAM1H,WACb,OAARuqD,GACAkS,EAAQF,KAAKt1D,EAAOsW,IAIhC,SAASm/C,GAAyBvO,EAAIniD,EAAW2wD,GAC7Cd,GAAW1N,EACXiF,GAAgBpnD,EAAW2wD,GAAgB,GAAIP,GAAOE,GAAUE,GAAqBrO,GACrF0N,QAAWptD,EA4Ff,IAAImuD,GAA6B,WAC7B,SAASA,EAAYC,QACA,IAAbA,IAAuBA,GAAW,GACtCn8D,KAAKm8D,SAAWA,EAIhBn8D,KAAKo8D,QAAS,EAIdp8D,KAAKq8D,QAAU,GAIfr8D,KAAKs8D,SAAW,GAChBt8D,KAAKkZ,OAASkiD,IACTe,GAAYf,KACbp7D,KAAK8X,OACAsjD,GAAkBmB,SAAWnB,GAAkBmB,OAAS,KAAK30D,KAAK5H,MAAQ,GA2DvF,OAxDAk8D,EAAYp/D,UAAUmN,IAAM,SAAUvM,GAClC,GAAIsC,KAAKo8D,OAAQ,CACb,IAAII,EAAqBpB,GACzB,IAEI,OADAA,GAAoBp7D,KACbtC,IAEX,QACI09D,GAAoBoB,QAGnB,GAQbN,EAAYp/D,UAAU+N,GAAK,WACvBuwD,GAAoBp7D,MAMxBk8D,EAAYp/D,UAAUkO,IAAM,WACxBowD,GAAoBp7D,KAAKkZ,QAE7BgjD,EAAYp/D,UAAUmmC,KAAO,SAAUw5B,GACnC,GAAIz8D,KAAKo8D,OAAQ,CACb,IAAIlhE,OAAI,EAAQC,OAAI,EACpB,IAAKD,EAAI,EAAGC,EAAI6E,KAAKq8D,QAAQ1+D,OAAQzC,EAAIC,EAAGD,IACxC8E,KAAKq8D,QAAQnhE,GAAGwhE,WAEpB,IAAKxhE,EAAI,EAAGC,EAAI6E,KAAKs8D,SAAS3+D,OAAQzC,EAAIC,EAAGD,IACzC8E,KAAKs8D,SAASphE,KAElB,GAAI8E,KAAKu8D,OACL,IAAKrhE,EAAI,EAAGC,EAAI6E,KAAKu8D,OAAO5+D,OAAQzC,EAAIC,EAAGD,IACvC8E,KAAKu8D,OAAOrhE,GAAG+nC,MAAK,GAI5B,IAAKjjC,KAAKm8D,UAAYn8D,KAAKkZ,SAAWujD,EAAY,CAE9C,IAAIhJ,EAAOzzD,KAAKkZ,OAAOqjD,OAAO1pC,MAC1B4gC,GAAQA,IAASzzD,OACjBA,KAAKkZ,OAAOqjD,OAAOv8D,KAAK8X,OAAS27C,EACjCA,EAAK37C,MAAQ9X,KAAK8X,OAG1B9X,KAAKkZ,YAASnL,EACd/N,KAAKo8D,QAAS,IAGfF,EA9EqB,GAyGhC,IAAIS,GAAiB,KAErB,SAASC,GAAkBnP,GACvB,IAAIoP,EAAqBF,GAEzB,OADAA,GAAiBlP,EACV,WACHkP,GAAiBE,GA4PzB,SAASC,GAAiBrP,GACtB,KAAOA,IAAOA,EAAKA,EAAGsP,UAClB,GAAItP,EAAGuP,UACH,OAAO,EAEf,OAAO,EAEX,SAASC,GAAuBxP,EAAIyP,GAChC,GAAIA,GAEA,GADAzP,EAAG0P,iBAAkB,EACjBL,GAAiBrP,GACjB,YAGH,GAAIA,EAAG0P,gBACR,OAEJ,GAAI1P,EAAGuP,WAA8B,OAAjBvP,EAAGuP,UAAoB,CACvCvP,EAAGuP,WAAY,EACf,IAAK,IAAI9hE,EAAI,EAAGA,EAAIuyD,EAAG2P,UAAUz/D,OAAQzC,IACrC+hE,GAAuBxP,EAAG2P,UAAUliE,IAExCmiE,GAAW5P,EAAI,cAkBvB,SAAS4P,GAAW5P,EAAIuF,EAAM9rD,EAAMo2D,QACb,IAAfA,IAAyBA,GAAa,GAE1CxN,KACA,IAAIyN,EAAWhQ,GACXiQ,EA3TGpC,GA4TPkC,GAAc9P,GAAmBC,GACjC,IAAIh4C,EAAWg4C,EAAG4G,SAASrB,GACvBrD,EAAO,GAAG7lD,OAAOkpD,EAAM,SAC3B,GAAIv9C,EACA,IAAK,IAAIva,EAAI,EAAGgY,EAAIuC,EAAS9X,OAAQzC,EAAIgY,EAAGhY,IACxCu3D,GAAwBh9C,EAASva,GAAIuyD,EAAIvmD,GAAQ,KAAMumD,EAAIkC,GAG/DlC,EAAGgQ,eACHhQ,EAAGqN,MAAM,QAAU9H,GAEnBsK,IACA9P,GAAmB+P,GACnBC,GAAaA,EAAU3yD,MAE3BklD,KAGJ,IACIrmD,GAAQ,GACRg0D,GAAoB,GACpBrQ,GAAM,GAENsQ,IAAU,EACVC,IAAW,EACXC,GAAU,EAiBd,IAAIC,GAAwB,EAExBC,GAAS98D,KAAK6Y,IAOlB,GAAIqyC,IAAc7S,EAAM,CACpB,IAAI0kB,GAAgB/+D,OAAO+rD,YACvBgT,IAC6B,mBAAtBA,GAAclkD,KACrBikD,KAAW7+D,SAASiR,YAAY,SAAS8tD,YAKzCF,GAAS,WAAc,OAAOC,GAAclkD,QAGpD,IAAIokD,GAAgB,SAAUz+D,EAAGC,GAC7B,GAAID,EAAE0+D,MACF,IAAKz+D,EAAEy+D,KACH,OAAO,OAEV,GAAIz+D,EAAEy+D,KACP,OAAQ,EAEZ,OAAO1+D,EAAE4vD,GAAK3vD,EAAE2vD,IAKpB,SAAS+O,KAGL,IAAIC,EAAShP,EAYb,IAdAyO,GAAwBC,KACxBH,IAAW,EAUXl0D,GAAMiuB,KAAKumC,IAGNL,GAAU,EAAGA,GAAUn0D,GAAM/L,OAAQkgE,MACtCQ,EAAU30D,GAAMm0D,KACJS,QACRD,EAAQC,SAEZjP,EAAKgP,EAAQhP,GACbhC,GAAIgC,GAAM,KACVgP,EAAQp0D,MAcZ,IAAIs0D,EAAiBb,GAAkBx7D,QACnCs8D,EAAe90D,GAAMxH,QAnFzB27D,GAAUn0D,GAAM/L,OAAS+/D,GAAkB//D,OAAS,EACpD0vD,GAAM,GAINsQ,GAAUC,IAAW,EA8GzB,SAA4Bl0D,GACxB,IAAK,IAAIxO,EAAI,EAAGA,EAAIwO,EAAM/L,OAAQzC,IAC9BwO,EAAMxO,GAAG8hE,WAAY,EACrBC,GAAuBvzD,EAAMxO,IAAI,GAhCrCujE,CAAmBF,GASvB,SAA0B70D,GACtB,IAAIxO,EAAIwO,EAAM/L,OACd,KAAOzC,KAAK,CACR,IAAImjE,EAAU30D,EAAMxO,GAChBuyD,EAAK4Q,EAAQ5Q,GACbA,GAAMA,EAAGiR,WAAaL,GAAW5Q,EAAGkR,aAAelR,EAAGmR,cACtDvB,GAAW5P,EAAI,YAdvBoR,CAAiBL,GA7iFH,WACd,IAAK,IAAItjE,EAAI,EAAGA,EAAIg0D,GAAmBvxD,OAAQzC,IAAK,CAChD,IAAIs1D,EAAMtB,GAAmBh0D,GAC7Bs1D,EAAIlB,KAAOkB,EAAIlB,KAAK9/C,QAAO,SAAUvS,GAAK,OAAOA,KACjDuzD,EAAIpB,UAAW,EAEnBF,GAAmBvxD,OAAS,EAwiF5BmhE,GAGI/T,IAAY7lD,EAAO6lD,UACnBA,GAAS5/C,KAAK,SAkCtB,SAAS4zD,GAAaV,GAClB,IAAIhP,EAAKgP,EAAQhP,GACjB,GAAe,MAAXhC,GAAIgC,KAGJgP,IAAYlP,GAAIvoD,SAAUy3D,EAAQW,WAAtC,CAIA,GADA3R,GAAIgC,IAAM,EACLuO,GAGA,CAID,IADA,IAAI1iE,EAAIwO,GAAM/L,OAAS,EAChBzC,EAAI2iE,IAAWn0D,GAAMxO,GAAGm0D,GAAKgP,EAAQhP,IACxCn0D,IAEJwO,GAAMiM,OAAOza,EAAI,EAAG,EAAGmjE,QATvB30D,GAAM9B,KAAKy2D,GAYVV,KACDA,IAAU,EAKVpzD,GAAS6zD,MAKA,GAAGt0D,OADN,UACsB,aACf,GAAGA,OAFV,UAE0B,WAClB,GAAGA,OAHX,UAG2B,YAkOzC,SAASm1D,GAAgBxR,GAMrB,IAAI4J,EAAW5J,EAAGyR,UACdC,EAAiB1R,EAAGsP,SAAWtP,EAAGsP,QAAQmC,UAC9C,OAAIC,IAAmB9H,EACX5J,EAAGyR,UAAYtjE,OAAOY,OAAO2iE,GAG9B9H,EA4Cf,SAAS+H,GAAYC,EAAK5R,EAAIkC,GAG1BG,KACA,IACI,GAAIrC,EAEA,IADA,IAAI/N,EAAM+N,EACF/N,EAAMA,EAAIqd,SAAU,CACxB,IAAIuC,EAAQ5f,EAAI2U,SAASkL,cACzB,GAAID,EACA,IAAK,IAAIpkE,EAAI,EAAGA,EAAIokE,EAAM3hE,OAAQzC,IAC9B,IAEI,IADoD,IAAtCokE,EAAMpkE,GAAGG,KAAKqkD,EAAK2f,EAAK5R,EAAIkC,GAEtC,OAER,MAAOzvD,GACHs/D,GAAkBt/D,EAAGw/C,EAAK,uBAM9C8f,GAAkBH,EAAK5R,EAAIkC,GAE/B,QACII,MAGR,SAAS0C,GAAwB1rD,EAASsL,EAASnL,EAAMumD,EAAIkC,GACzD,IAAI9F,EACJ,KACIA,EAAM3iD,EAAOH,EAAQC,MAAMqL,EAASnL,GAAQH,EAAQ1L,KAAKgX,MAC7Cw3C,EAAIiI,QAAU7J,EAAU4B,KAASA,EAAI4V,WAC7C5V,EAAI3B,OAAM,SAAUhoD,GAAK,OAAOk/D,GAAYl/D,EAAGutD,EAAIkC,EAAO,uBAC1D9F,EAAI4V,UAAW,GAGvB,MAAOv/D,GACHk/D,GAAYl/D,EAAGutD,EAAIkC,GAEvB,OAAO9F,EAEX,SAAS2V,GAAkBH,EAAK5R,EAAIkC,GAChC,GAAIzqD,EAAO+lD,aACP,IACI,OAAO/lD,EAAO+lD,aAAa5vD,KAAK,KAAMgkE,EAAK5R,EAAIkC,GAEnD,MAAOzvD,GAGCA,IAAMm/D,GACNK,GAASx/D,EAAG,KAAM,uBAI9Bw/D,GAASL,EAAK5R,EAAIkC,GAEtB,SAAS+P,GAASL,EAAK5R,EAAIkC,GAKvB,IAAIxD,GAAgC,oBAAZxM,QAIpB,MAAM0f,EAHN1f,QAAQ7wC,MAAMuwD,GAQtB,IAsBIM,GAtBAC,IAAmB,EACnBC,GAAY,GACZC,IAAU,EACd,SAASC,KACLD,IAAU,EACV,IAAIE,EAASH,GAAU39D,MAAM,GAC7B29D,GAAUliE,OAAS,EACnB,IAAK,IAAIzC,EAAI,EAAGA,EAAI8kE,EAAOriE,OAAQzC,IAC/B8kE,EAAO9kE,KAsBf,GAAuB,oBAAZgR,SAA2B4gD,GAAS5gD,SAAU,CACrD,IAAI+zD,GAAM/zD,QAAQC,UAClBwzD,GAAY,WACRM,GAAI1xD,KAAKwxD,IAMLzT,IACAlpD,WAAWkH,IAEnBs1D,IAAmB,OAElB,GAAKtmB,GACsB,oBAArB1d,mBACNkxB,GAASlxB,mBAE0B,yCAAhCA,iBAAiB1+B,WAoBrByiE,QAJ6B,IAAjBO,GAAgCpT,GAASoT,GAIzC,WACRA,EAAaH,KAKL,WACR38D,WAAW28D,GAAgB,QA3B8C,CAI7E,IAAII,GAAY,EACZnkD,GAAW,IAAI4f,iBAAiBmkC,IAChCK,GAAalhE,SAASmhE,eAAe7+D,OAAO2+D,KAChDnkD,GAASmgB,QAAQikC,GAAY,CACzB/jC,eAAe,IAEnBsjC,GAAY,WACRQ,IAAaA,GAAY,GAAK,EAC9BC,GAAW53D,KAAOhH,OAAO2+D,KAE7BP,IAAmB,EAmBvB,SAASr1D,GAAS+1D,EAAIhX,GAClB,IAAIiX,EAmBJ,GAlBAV,GAAUj4D,MAAK,WACX,GAAI04D,EACA,IACIA,EAAGjlE,KAAKiuD,GAEZ,MAAOppD,GACHk/D,GAAYl/D,EAAGopD,EAAK,iBAGnBiX,GACLA,EAASjX,MAGZwW,KACDA,IAAU,EACVH,OAGCW,GAAyB,oBAAZp0D,QACd,OAAO,IAAIA,SAAQ,SAAUC,GACzBo0D,EAAWp0D,KAwHvB,SAASq0D,GAAgBC,GACrB,OAAO,SAAU/iE,EAAIkJ,GAEjB,QADe,IAAXA,IAAqBA,EAAS2mD,IAC7B3mD,EAOL,OAYR,SAAoBuW,EAAUsjD,EAAU/iE,GACpC,IAAIm8B,EAAU1c,EAASk3C,SACvBx6B,EAAQ4mC,GAAYC,GAAmB7mC,EAAQ4mC,GAAW/iE,GAd/CijE,CAAW/5D,EAAQ65D,EAAU/iE,IAgBxB8iE,GAAgB,eACpBA,GAAgB,WACXA,GAAgB,gBACrBA,GAAgB,WACVA,GAAgB,iBACpBA,GAAgB,aAChBA,GAAgB,aACdA,GAAgB,eACbA,GAAgB,kBACjBA,GAAgB,iBACdA,GAAgB,mBACVA,GAAgB,iBAiB9C,IAAII,GAAc,IAAI5T,GAMtB,SAASwH,GAASp3D,GAGd,OAEJ,SAASyjE,EAAUzjE,EAAK0jE,GACpB,IAAI5lE,EAAGqU,EACHwxD,EAAM5jE,EAAQC,GAClB,IAAM2jE,IAAQzjE,EAASF,IACnBA,EAAIi0D,UACJz1D,OAAOolE,SAAS5jE,IAChBA,aAAeuwD,GACf,OAEJ,GAAIvwD,EAAIkzD,OAAQ,CACZ,IAAI2Q,EAAQ7jE,EAAIkzD,OAAOE,IAAInB,GAC3B,GAAIyR,EAAKzT,IAAI4T,GACT,OAEJH,EAAK1tD,IAAI6tD,GAEb,GAAIF,EAEA,IADA7lE,EAAIkC,EAAIO,OACDzC,KACH2lE,EAAUzjE,EAAIlC,GAAI4lE,QAErB,GAAIxP,GAAMl0D,GACXyjE,EAAUzjE,EAAIjB,MAAO2kE,QAKrB,IAFAvxD,EAAO3T,OAAO2T,KAAKnS,GACnBlC,EAAIqU,EAAK5R,OACFzC,KACH2lE,EAAUzjE,EAAImS,EAAKrU,IAAK4lE,GAhChCD,CAAUzjE,EAAKwjE,IACfA,GAAYtT,QACLlwD,EAkCX,IAAI8jE,GAAQ,EAORC,GAAyB,WACzB,SAASA,EAAQ1T,EAAI2T,EAASd,EAAIzmC,EAASwnC,GA5qC/C,IAA2Bv9C,EAAQw9C,EAARx9C,EA6qCD9jB,UA5qCR,KADiBshE,EAgrC3BlG,KAAsBA,GAAkBmG,IAClCnG,GACA3N,EACIA,EAAGC,YACH3/C,KAnrCUuzD,EAAQlG,IAC5BkG,GAASA,EAAMlF,QACfkF,EAAMjF,QAAQz0D,KAAKkc,IAkrCd9jB,KAAKytD,GAAKA,IAAO4T,IAClB5T,EAAGiR,SAAW1+D,MAGd65B,GACA75B,KAAKwhE,OAAS3nC,EAAQ2nC,KACtBxhE,KAAKyhE,OAAS5nC,EAAQ4nC,KACtBzhE,KAAK49B,OAAS/D,EAAQ+D,KACtB59B,KAAK0hE,OAAS7nC,EAAQ6nC,KACtB1hE,KAAKs+D,OAASzkC,EAAQykC,QAOtBt+D,KAAKwhE,KAAOxhE,KAAKyhE,KAAOzhE,KAAK49B,KAAO59B,KAAK0hE,MAAO,EAEpD1hE,KAAKsgE,GAAKA,EACVtgE,KAAKqvD,KAAO6R,GACZlhE,KAAKo8D,QAAS,EACdp8D,KAAKm+D,MAAO,EACZn+D,KAAK2hE,MAAQ3hE,KAAK49B,KAClB59B,KAAK4hE,KAAO,GACZ5hE,KAAK6hE,QAAU,GACf7hE,KAAK8hE,OAAS,IAAI9U,GAClBhtD,KAAK+hE,UAAY,IAAI/U,GACrBhtD,KAAKgiE,WAA0E,GAE3EzkE,EAAW6jE,GACXphE,KAAKtE,OAAS0lE,GAGdphE,KAAKtE,OAxnHjB,SAAmBoF,GACf,IAAImrD,EAAO5qD,KAAKP,GAAhB,CAGA,IAAImhE,EAAWnhE,EAAKc,MAAM,KAC1B,OAAO,SAAUnE,GACb,IAAK,IAAIvC,EAAI,EAAGA,EAAI+mE,EAAStkE,OAAQzC,IAAK,CACtC,IAAKuC,EACD,OACJA,EAAMA,EAAIwkE,EAAS/mE,IAEvB,OAAOuC,IA6mHWykE,CAAUd,GACnBphE,KAAKtE,SACNsE,KAAKtE,OAAS4O,IAOtBtK,KAAK7D,MAAQ6D,KAAK49B,UAAO7vB,EAAY/N,KAAKjE,MA6I9C,OAxIAolE,EAAQrkE,UAAUf,IAAM,WAEpB,IAAII,EADJ2zD,GAAW9vD,MAEX,IAAIytD,EAAKztD,KAAKytD,GACd,IACItxD,EAAQ6D,KAAKtE,OAAOL,KAAKoyD,EAAIA,GAEjC,MAAOvtD,GACH,IAAIF,KAAKyhE,KAIL,MAAMvhE,EAHNk/D,GAAYl/D,EAAGutD,EAAI,uBAAwB3jD,OAAO9J,KAAKgiE,WAAY,MAM3E,QAGQhiE,KAAKwhE,MACLhN,GAASr4D,GAEb4zD,KACA/vD,KAAK8+D,cAET,OAAO3iE,GAKXglE,EAAQrkE,UAAU8yD,OAAS,SAAUY,GACjC,IAAInB,EAAKmB,EAAInB,GACRrvD,KAAK+hE,UAAU1U,IAAIgC,KACpBrvD,KAAK+hE,UAAU3uD,IAAIi8C,GACnBrvD,KAAK6hE,QAAQj6D,KAAK4oD,GACbxwD,KAAK8hE,OAAOzU,IAAIgC,IACjBmB,EAAIjB,OAAOvvD,QAOvBmhE,EAAQrkE,UAAUgiE,YAAc,WAE5B,IADA,IAAI5jE,EAAI8E,KAAK4hE,KAAKjkE,OACXzC,KAAK,CACR,IAAIs1D,EAAMxwD,KAAK4hE,KAAK1mE,GACf8E,KAAK+hE,UAAU1U,IAAImD,EAAInB,KACxBmB,EAAIf,UAAUzvD,MAGtB,IAAImiE,EAAMniE,KAAK8hE,OACf9hE,KAAK8hE,OAAS9hE,KAAK+hE,UACnB/hE,KAAK+hE,UAAYI,EACjBniE,KAAK+hE,UAAUzU,QACf6U,EAAMniE,KAAK4hE,KACX5hE,KAAK4hE,KAAO5hE,KAAK6hE,QACjB7hE,KAAK6hE,QAAUM,EACfniE,KAAK6hE,QAAQlkE,OAAS,GAM1BwjE,EAAQrkE,UAAUkiB,OAAS,WAEnBhf,KAAK49B,KACL59B,KAAK2hE,OAAQ,EAER3hE,KAAK0hE,KACV1hE,KAAKiK,MAGL80D,GAAa/+D,OAOrBmhE,EAAQrkE,UAAUmN,IAAM,WACpB,GAAIjK,KAAKo8D,OAAQ,CACb,IAAIjgE,EAAQ6D,KAAKjE,MACjB,GAAII,IAAU6D,KAAK7D,OAIfmB,EAASnB,IACT6D,KAAKwhE,KAAM,CAEX,IAAIpP,EAAWpyD,KAAK7D,MAEpB,GADA6D,KAAK7D,MAAQA,EACT6D,KAAKyhE,KAAM,CACX,IAAI9R,EAAO,yBAA0B7lD,OAAO9J,KAAKgiE,WAAY,KAC7DvP,GAAwBzyD,KAAKsgE,GAAItgE,KAAKytD,GAAI,CAACtxD,EAAOi2D,GAAWpyD,KAAKytD,GAAIkC,QAGtE3vD,KAAKsgE,GAAGjlE,KAAK2E,KAAKytD,GAAItxD,EAAOi2D,MAS7C+O,EAAQrkE,UAAUslE,SAAW,WACzBpiE,KAAK7D,MAAQ6D,KAAKjE,MAClBiE,KAAK2hE,OAAQ,GAKjBR,EAAQrkE,UAAU4yD,OAAS,WAEvB,IADA,IAAIx0D,EAAI8E,KAAK4hE,KAAKjkE,OACXzC,KACH8E,KAAK4hE,KAAK1mE,GAAGw0D,UAMrByR,EAAQrkE,UAAU4/D,SAAW,WAIzB,GAHI18D,KAAKytD,KAAOztD,KAAKytD,GAAG4U,mBACpBzZ,EAAS5oD,KAAKytD,GAAGC,OAAO2O,QAASr8D,MAEjCA,KAAKo8D,OAAQ,CAEb,IADA,IAAIlhE,EAAI8E,KAAK4hE,KAAKjkE,OACXzC,KACH8E,KAAK4hE,KAAK1mE,GAAGu0D,UAAUzvD,MAE3BA,KAAKo8D,QAAS,EACVp8D,KAAKsiE,QACLtiE,KAAKsiE,WAIVnB,EAjMiB,GAoMxBoB,GAA2B,CAC3BzmE,YAAY,EACZ6gB,cAAc,EACd5gB,IAAKuO,EACLzJ,IAAKyJ,GAET,SAASqtD,GAAM/wD,EAAQ47D,EAAW/lE,GAC9B8lE,GAAyBxmE,IAAM,WAC3B,OAAOiE,KAAKwiE,GAAW/lE,IAE3B8lE,GAAyB1hE,IAAM,SAAqBzD,GAChD4C,KAAKwiE,GAAW/lE,GAAOW,GAE3BxB,OAAOC,eAAe+K,EAAQnK,EAAK8lE,IAEvC,SAASE,GAAUhV,GACf,IAAItxC,EAAOsxC,EAAG4G,SAOd,GANIl4C,EAAK7E,OAmBb,SAAqBm2C,EAAIiV,GACrB,IAAIC,EAAYlV,EAAG4G,SAASsO,WAAa,GACrCrrD,EAASm2C,EAAGmV,OAAS5Q,GAAgB,IAGrCziD,EAAQk+C,EAAG4G,SAASwO,UAAY,GACtBpV,EAAGsP,SAGblM,IAAgB,GAEpB,IAAIwF,EAAU,SAAU55D,GACpB8S,EAAK3H,KAAKnL,GACV,IAAIN,EAAQ2mE,GAAarmE,EAAKimE,EAAcC,EAAWlV,GAkBnDyD,GAAe55C,EAAO7a,EAAKN,OAAO4R,GAAW,GAK3CtR,KAAOgxD,GACTkK,GAAMlK,EAAI,SAAUhxD,IAG5B,IAAK,IAAIA,KAAOimE,EACZrM,EAAQ55D,GAEZo0D,IAAgB,GA7DZkS,CAAYtV,EAAItxC,EAAK7E,OAl/D7B,SAAmBm2C,GACf,IAAI5zB,EAAU4zB,EAAG4G,SACb2O,EAAQnpC,EAAQmpC,MACpB,GAAIA,EAAO,CACP,IAAI1Z,EAAOmE,EAAGwV,cAAgB5I,GAAmB5M,GACjDD,GAAmBC,GACnBqC,KACA,IAAIoT,EAAczQ,GAAwBuQ,EAAO,KAAM,CAACvV,EAAGmV,QAAU5Q,GAAgB,IAAK1I,GAAMmE,EAAI,SAGpG,GAFAsC,KACAvC,KACIjwD,EAAW2lE,GAGXrpC,EAAQ+L,OAASs9B,OAEhB,GAAI5lE,EAAS4lE,GAQd,GAFAzV,EAAG0V,YAAcD,EAEZA,EAAYE,MAUZ,CAED,IAAIzL,EAASlK,EAAG4V,YAAc,GAC9B,IAAK,IAAI5mE,KAAOymE,EACA,UAARzmE,GACA01D,GAAmBwF,EAAOuL,EAAazmE,QAd/C,IAAK,IAAIA,KAAOymE,EACPpX,EAAWrvD,IACZ01D,GAAmB1E,EAAIyV,EAAazmE,QAiB3C,GAy8Db6mE,CAAU7V,GACNtxC,EAAKonD,SAiMb,SAAqB9V,EAAI8V,GACT9V,EAAG4G,SAAS/8C,MACxB,IAAK,IAAI7a,KAAO8mE,EAcZ9V,EAAGhxD,GAA+B,mBAAjB8mE,EAAQ9mE,GAAsB6N,EAAO++C,EAAOka,EAAQ9mE,GAAMgxD,GAhN3E+V,CAAY/V,EAAItxC,EAAKonD,SACrBpnD,EAAK3T,MA0Db,SAAkBilD,GACd,IAAIjlD,EAAOilD,EAAG4G,SAAS7rD,KAElBs/C,EADLt/C,EAAOilD,EAAGgW,MAAQlmE,EAAWiL,GAgCjC,SAAiBA,EAAMilD,GAEnBqC,KACA,IACI,OAAOtnD,EAAKnN,KAAKoyD,EAAIA,GAEzB,MAAOvtD,GAEH,OADAk/D,GAAYl/D,EAAGutD,EAAI,UACZ,GAEX,QACIsC,MA3CiC2T,CAAQl7D,EAAMilD,GAAMjlD,GAAQ,MAE7DA,EAAO,IAMX,IAAI+G,EAAO3T,OAAO2T,KAAK/G,GACnB8O,EAAQm2C,EAAG4G,SAAS/8C,MAEpBpc,GADUuyD,EAAG4G,SAASkP,QAClBh0D,EAAK5R,QACb,KAAOzC,KAAK,CACR,IAAIuB,EAAM8S,EAAKrU,GACX,EAKAoc,GAASwxC,EAAOxxC,EAAO7a,IAKjBqvD,EAAWrvD,IACjBk7D,GAAMlK,EAAI,QAAShxD,GAI3B,IAAI4zD,EAAKl0B,GAAQ3zB,GACjB6nD,GAAMA,EAAGY,UAzFL0S,CAASlW,OAER,CACD,IAAI4C,EAAKl0B,GAASsxB,EAAGgW,MAAQ,IAC7BpT,GAAMA,EAAGY,UAET90C,EAAKynD,UAoGb,SAAwBnW,EAAImW,GAExB,IAAIC,EAAYpW,EAAGqW,kBAAoBloE,OAAOY,OAAO,MAEjDunE,EAAQpX,KACZ,IAAK,IAAIlwD,KAAOmnE,EAAU,CACtB,IAAII,EAAUJ,EAASnnE,GACnBf,EAAS6B,EAAWymE,GAAWA,EAAUA,EAAQjoE,IACjD,EAGCgoE,IAEDF,EAASpnE,GAAO,IAAI0kE,GAAQ1T,EAAI/xD,GAAU4O,EAAMA,EAAM25D,KAKpDxnE,KAAOgxD,GACTyW,GAAezW,EAAIhxD,EAAKunE,IAtH5BG,CAAe1W,EAAItxC,EAAKynD,UACxBznD,EAAKuwC,OAASvwC,EAAKuwC,QAAUD,IAyMrC,SAAmBgB,EAAIf,GACnB,IAAK,IAAIjwD,KAAOiwD,EAAO,CACnB,IAAI3lD,EAAU2lD,EAAMjwD,GACpB,GAAIU,EAAQ4J,GACR,IAAK,IAAI7L,EAAI,EAAGA,EAAI6L,EAAQpJ,OAAQzC,IAChCkpE,GAAc3W,EAAIhxD,EAAKsK,EAAQ7L,SAInCkpE,GAAc3W,EAAIhxD,EAAKsK,IAjN3Bs9D,CAAU5W,EAAItxC,EAAKuwC,OAgG3B,IAAIuX,GAAyB,CAAErmC,MAAM,GAmCrC,SAASsmC,GAAet9D,EAAQnK,EAAKunE,GACjC,IAAIM,GAAe3X,KACfpvD,EAAWymE,IACXzB,GAAyBxmE,IAAMuoE,EACzBC,GAAqB9nE,GACrB+nE,GAAoBR,GAC1BzB,GAAyB1hE,IAAMyJ,IAG/Bi4D,GAAyBxmE,IAAMioE,EAAQjoE,IACjCuoE,IAAiC,IAAlBN,EAAQ9lC,MACnBqmC,GAAqB9nE,GACrB+nE,GAAoBR,EAAQjoE,KAChCuO,EACNi4D,GAAyB1hE,IAAMmjE,EAAQnjE,KAAOyJ,GAOlD1O,OAAOC,eAAe+K,EAAQnK,EAAK8lE,IAEvC,SAASgC,GAAqB9nE,GAC1B,OAAO,WACH,IAAI4hE,EAAUr+D,KAAK8jE,mBAAqB9jE,KAAK8jE,kBAAkBrnE,GAC/D,GAAI4hE,EAeA,OAdIA,EAAQsD,OACRtD,EAAQ+D,WAERjT,GAAIvoD,QASJy3D,EAAQ3O,SAEL2O,EAAQliE,OAI3B,SAASqoE,GAAoB9mE,GACzB,OAAO,WACH,OAAOA,EAAGrC,KAAK2E,KAAMA,OAmC7B,SAASokE,GAAc3W,EAAI2T,EAASr6D,EAAS8yB,GAQzC,OAPIiuB,EAAc/gD,KACd8yB,EAAU9yB,EACVA,EAAUA,EAAQA,SAEC,iBAAZA,IACPA,EAAU0mD,EAAG1mD,IAEV0mD,EAAGgX,OAAOrD,EAASr6D,EAAS8yB,GAsFvC,SAAS6qC,GAAcC,EAAQlX,GAC3B,GAAIkX,EAAQ,CAIR,IAFA,IAAIvlE,EAASxD,OAAOY,OAAO,MACvB+S,EAAO09C,GAAYC,QAAQC,QAAQwX,GAAU/oE,OAAO2T,KAAKo1D,GACpDzpE,EAAI,EAAGA,EAAIqU,EAAK5R,OAAQzC,IAAK,CAClC,IAAIuB,EAAM8S,EAAKrU,GAEf,GAAY,WAARuB,EAAJ,CAEA,IAAImoE,EAAaD,EAAOloE,GAAK0gC,KAC7B,GAAIynC,KAAcnX,EAAGyR,UACjB9/D,EAAO3C,GAAOgxD,EAAGyR,UAAU0F,QAE1B,GAAI,YAAaD,EAAOloE,GAAM,CAC/B,IAAIooE,EAAiBF,EAAOloE,GAAKu3D,QACjC50D,EAAO3C,GAAOc,EAAWsnE,GACnBA,EAAexpE,KAAKoyD,GACpBoX,OAED,GAIb,OAAOzlE,GAIf,IAAI0lE,GAAM,EA8EV,SAASC,GAA0BhY,GAC/B,IAAIlzB,EAAUkzB,EAAKlzB,QACnB,GAAIkzB,EAAKiY,MAAO,CACZ,IAAIC,EAAeF,GAA0BhY,EAAKiY,OAElD,GAAIC,IADqBlY,EAAKkY,aACW,CAGrClY,EAAKkY,aAAeA,EAEpB,IAAIC,EAahB,SAAgCnY,GAC5B,IAAIoY,EACAC,EAASrY,EAAKlzB,QACdwrC,EAAStY,EAAKuY,cAClB,IAAK,IAAI7oE,KAAO2oE,EACRA,EAAO3oE,KAAS4oE,EAAO5oE,KAClB0oE,IACDA,EAAW,IACfA,EAAS1oE,GAAO2oE,EAAO3oE,IAG/B,OAAO0oE,EAxBuBI,CAAuBxY,GAEzCmY,GACA1lE,EAAOutD,EAAKyY,cAAeN,IAE/BrrC,EAAUkzB,EAAKlzB,QAAU4rC,GAAaR,EAAclY,EAAKyY,gBAC7C/pE,OACRo+B,EAAQnd,WAAWmd,EAAQp+B,MAAQsxD,IAI/C,OAAOlzB,EAgBX,SAAS6rC,GAAwBl9D,EAAM8O,EAAOhH,EAAU4I,EAAQ6zC,GAC5D,IAII4Y,EAJA5iE,EAAQ/C,KACR65B,EAAUkzB,EAAKlzB,QAIfivB,EAAO5vC,EAAQ,SACfysD,EAAY/pE,OAAOY,OAAO0c,IAChB0sD,UAAY1sD,GAMtBysD,EAAYzsD,EAEZA,EAASA,EAAO0sD,WAEpB,IAAIC,EAAale,EAAO9tB,EAAQisC,WAC5BC,GAAqBF,EACzB7lE,KAAKwI,KAAOA,EACZxI,KAAKsX,MAAQA,EACbtX,KAAKsQ,SAAWA,EAChBtQ,KAAKkZ,OAASA,EACdlZ,KAAKsL,UAAY9C,EAAKqC,IAAM08C,EAC5BvnD,KAAKgmE,WAAatB,GAAc7qC,EAAQ8qC,OAAQzrD,GAChDlZ,KAAKo5D,MAAQ,WAIT,OAHKr2D,EAAMsyD,QACPmE,GAAqBtgD,EAAQ1Q,EAAKurD,YAAchxD,EAAMsyD,OAAS8D,GAAa7oD,EAAU4I,IAEnFnW,EAAMsyD,QAEjBz5D,OAAOC,eAAemE,KAAM,cAAe,CACvClE,YAAY,EACZC,IAAK,WACD,OAAOy9D,GAAqBtgD,EAAQ1Q,EAAKurD,YAAa/zD,KAAKo5D,YAI/DyM,IAEA7lE,KAAKq0D,SAAWx6B,EAEhB75B,KAAKq1D,OAASr1D,KAAKo5D,QACnBp5D,KAAKo1D,aAAeoE,GAAqBtgD,EAAQ1Q,EAAKurD,YAAa/zD,KAAKq1D,SAExEx7B,EAAQosC,SACRjmE,KAAKi3D,GAAK,SAAUx3D,EAAGC,EAAGnE,EAAGC,GACzB,IAAIszD,EAAQ8E,GAAgB+R,EAAWlmE,EAAGC,EAAGnE,EAAGC,EAAGuqE,GAKnD,OAJIjX,IAAU3xD,EAAQ2xD,KAClBA,EAAMZ,UAAYr0B,EAAQosC,SAC1BnX,EAAMd,UAAY90C,GAEf41C,GAIX9uD,KAAKi3D,GAAK,SAAUx3D,EAAGC,EAAGnE,EAAGC,GACzB,OAAOo4D,GAAgB+R,EAAWlmE,EAAGC,EAAGnE,EAAGC,EAAGuqE,IAkC1D,SAASG,GAA6BpX,EAAOtmD,EAAMm9D,EAAW9rC,EAASssC,GAInE,IAAIC,EAAQvX,GAAWC,GAUvB,OATAsX,EAAMpY,UAAY2X,EAClBS,EAAMnY,UAAYp0B,EAKdrxB,EAAK8sD,QACJ8Q,EAAM59D,OAAS49D,EAAM59D,KAAO,KAAK8sD,KAAO9sD,EAAK8sD,MAE3C8Q,EAEX,SAASC,GAAWlrD,EAAIgiB,GACpB,IAAK,IAAI1gC,KAAO0gC,EACZhiB,EAAG8tC,EAASxsD,IAAQ0gC,EAAK1gC,GAIjC,SAAS6pE,GAAiBzsC,GACtB,OAAOA,EAAQp+B,MAAQo+B,EAAQ0sC,QAAU1sC,EAAQ2sC,cArDrDtO,GAAqBwN,GAAwB5oE,WAwD7C,IAAI2pE,GAAsB,CACtB9lE,KAAM,SAAUmuD,EAAO4X,GACnB,GAAI5X,EAAMX,oBACLW,EAAMX,kBAAkByQ,cACzB9P,EAAMtmD,KAAKm+D,UAAW,CAEtB,IAAIC,EAAc9X,EAClB2X,GAAoBI,SAASD,EAAaA,OAEzC,EACY9X,EAAMX,kBA0H/B,SAEAW,EAEA51C,GACI,IAAI2gB,EAAU,CACVitC,cAAc,EACdC,aAAcjY,EACd51C,OAAQA,GAGR8tD,EAAiBlY,EAAMtmD,KAAKw+D,eAC5Btf,EAAMsf,KACNntC,EAAQ+L,OAASohC,EAAephC,OAChC/L,EAAQk9B,gBAAkBiQ,EAAejQ,iBAE7C,OAAO,IAAIjI,EAAMhB,iBAAiBf,KAAKlzB,GA1IQotC,CAAgCnY,EAAO6N,KACxEuK,OAAOR,EAAY5X,EAAMjB,SAAM9/C,EAAW24D,KAGxDG,SAAU,SAAUM,EAAUrY,GAC1B,IAAIj1B,EAAUi1B,EAAMhB,kBA1wD5B,SAA8BL,EAAIkV,EAAWr3D,EAAW87D,EAAaC,GASjE,IAAIC,EAAiBF,EAAY5+D,KAAKurD,YAClCwT,EAAiB9Z,EAAG2H,aACpBoS,KAA2BF,IAAmBA,EAAe5P,SAC5D6P,IAAmBhgB,IAAgBggB,EAAe7P,SAClD4P,GAAkB7Z,EAAG2H,aAAawC,OAAS0P,EAAe1P,OACzD0P,GAAkB7Z,EAAG2H,aAAawC,MAIpC6P,KAAsBJ,GACtB5Z,EAAG4G,SAASqT,iBACZF,GACAG,EAAYla,EAAGyG,OACnBzG,EAAG4G,SAAS0S,aAAeK,EAC3B3Z,EAAGyG,OAASkT,EACR3Z,EAAGma,SAEHna,EAAGma,OAAO1uD,OAASkuD,GAEvB3Z,EAAG4G,SAASqT,gBAAkBL,EAI9B,IAAI1zD,EAAQyzD,EAAY5+D,KAAKmL,OAAS4zC,EAClCkG,EAAG6M,aAGCC,GAAe9M,EAAG6M,YAAa3mD,EAAQg0D,EAAUn/D,MAAQm/D,EAAUn/D,KAAKmL,OAAU4zC,EAAakG,EAAI,YACnGga,GAAmB,GAG3Bha,EAAG+M,OAAS7mD,EAEZrI,EAAYA,GAAai8C,EACzB,IAAIsgB,EAAgBpa,EAAG4G,SAASyT,iBAOhC,GANIra,EAAGgN,iBACHF,GAAe9M,EAAGgN,gBAAiBnvD,EAAWu8D,GAAiBtgB,EAAakG,EAAI,cAEpFA,EAAGiN,WAAajN,EAAG4G,SAASyT,iBAAmBx8D,EAC/C0wD,GAAyBvO,EAAIniD,EAAWu8D,GAEpClF,GAAalV,EAAG4G,SAAS/8C,MAAO,CAChCu5C,IAAgB,GAGhB,IAFA,IAAIv5C,EAAQm2C,EAAGmV,OACXmF,EAAWta,EAAG4G,SAASwO,WAAa,GAC/B3nE,EAAI,EAAGA,EAAI6sE,EAASpqE,OAAQzC,IAAK,CACtC,IAAIuB,EAAMsrE,EAAS7sE,GACf8sE,EAAcva,EAAG4G,SAAS/8C,MAC9BA,EAAM7a,GAAOqmE,GAAarmE,EAAKurE,EAAarF,EAAWlV,GAE3DoD,IAAgB,GAEhBpD,EAAG4G,SAASsO,UAAYA,EAGxB8E,IACAha,EAAG4H,OAAS8D,GAAakO,EAAgBD,EAAY/0D,SACrDo7C,EAAGwa,gBA0sDHC,CADapZ,EAAMX,kBAAoBgZ,EAAShZ,kBACpBt0B,EAAQ8oC,UACpC9oC,EAAQvuB,UACRwjD,EACAj1B,EAAQvpB,WAGZ63D,OAAQ,SAAUrZ,GACd,IAlhDyBrB,EAkhDrBp7C,EAAUy8C,EAAMz8C,QAAS87C,EAAoBW,EAAMX,kBAClDA,EAAkBwQ,aACnBxQ,EAAkBwQ,YAAa,EAC/BtB,GAAWlP,EAAmB,YAE9BW,EAAMtmD,KAAKm+D,YACPt0D,EAAQssD,aAxhDSlR,EA8hDOU,GA3hDjC6O,WAAY,EACfU,GAAkB91D,KAAK6lD,IA6hDXwP,GAAuB9O,GAAmB,KAItD1zB,QAAS,SAAUq0B,GACf,IAAIX,EAAoBW,EAAMX,kBACzBA,EAAkByQ,eACd9P,EAAMtmD,KAAKm+D,UAxsD5B,SAASyB,EAAyB3a,EAAIyP,GAClC,KAAIA,IACAzP,EAAG0P,iBAAkB,EACjBL,GAAiBrP,KAIpBA,EAAGuP,WAAW,CACfvP,EAAGuP,WAAY,EACf,IAAK,IAAI9hE,EAAI,EAAGA,EAAIuyD,EAAG2P,UAAUz/D,OAAQzC,IACrCktE,EAAyB3a,EAAG2P,UAAUliE,IAE1CmiE,GAAW5P,EAAI,gBAgsDP2a,CAAyBja,GAAmB,GAH5CA,EAAkBka,cAQ9BC,GAAe1sE,OAAO2T,KAAKk3D,IAC/B,SAASnS,GAAgBvH,EAAMvkD,EAAM6J,EAAS/B,EAAUs9C,GACpD,IAAInG,EAAQsF,GAAZ,CAGA,IAAIwb,EAAWl2D,EAAQgiD,SAASmU,MAOhC,GALIlrE,EAASyvD,KACTA,EAAOwb,EAAS/oE,OAAOutD,IAIP,mBAATA,EAAX,CAOA,IAAIgB,EAEJ,GAAItG,EAAQsF,EAAK0b,WAGA16D,KADbg/C,EAv1ER,SAA+B5sD,EAASooE,GACpC,GAAI5gB,EAAOxnD,EAAQ2O,QAAU44C,EAAMvnD,EAAQuoE,WACvC,OAAOvoE,EAAQuoE,UAEnB,GAAIhhB,EAAMvnD,EAAQwoE,UACd,OAAOxoE,EAAQwoE,SAEnB,IAAIC,EAAQvN,GAKZ,GAJIuN,GAASlhB,EAAMvnD,EAAQ0oE,UAA8C,IAAnC1oE,EAAQ0oE,OAAO/gE,QAAQ8gE,IAEzDzoE,EAAQ0oE,OAAOjhE,KAAKghE,GAEpBjhB,EAAOxnD,EAAQ2oE,UAAYphB,EAAMvnD,EAAQ4oE,aACzC,OAAO5oE,EAAQ4oE,YAEnB,GAAIH,IAAUlhB,EAAMvnD,EAAQ0oE,QAAS,CACjC,IAAIG,EAAY7oE,EAAQ0oE,OAAS,CAACD,GAC9BK,GAAS,EACTC,EAAiB,KACjBC,EAAiB,KACrBP,EAAMjN,IAAI,kBAAkB,WAAc,OAAO/S,EAASogB,EAAUJ,MACpE,IAAIQ,EAAgB,SAAUC,GAC1B,IAAK,IAAInuE,EAAI,EAAGC,EAAI6tE,EAASrrE,OAAQzC,EAAIC,EAAGD,IACxC8tE,EAAS9tE,GAAG+sE,eAEZoB,IACAL,EAASrrE,OAAS,EACK,OAAnBurE,IACA1/D,aAAa0/D,GACbA,EAAiB,MAEE,OAAnBC,IACA3/D,aAAa2/D,GACbA,EAAiB,QAIzBh9D,EAAUpB,GAAK,SAAU8+C,GAEzB1pD,EAAQwoE,SAAWrN,GAAWzR,EAAK0e,GAG9BU,EAIDD,EAASrrE,OAAS,EAHlByrE,GAAc,MAMlBE,EAAWv+D,GAAK,SAAUw+D,GAItB7hB,EAAMvnD,EAAQuoE,aACdvoE,EAAQ2O,OAAQ,EAChBs6D,GAAc,OAGlBI,EAAQrpE,EAAQgM,EAASm9D,GA0C7B,OAzCIhsE,EAASksE,KACLvhB,EAAUuhB,GAEN/hB,EAAQtnD,EAAQwoE,WAChBa,EAAMj7D,KAAKpC,EAASm9D,GAGnBrhB,EAAUuhB,EAAMC,aACrBD,EAAMC,UAAUl7D,KAAKpC,EAASm9D,GAC1B5hB,EAAM8hB,EAAM16D,SACZ3O,EAAQuoE,UAAYpN,GAAWkO,EAAM16D,MAAOy5D,IAE5C7gB,EAAM8hB,EAAMV,WACZ3oE,EAAQ4oE,YAAczN,GAAWkO,EAAMV,QAASP,GAC5B,IAAhBiB,EAAM3vD,MACN1Z,EAAQ2oE,SAAU,EAIlBI,EAAiB9lE,YAAW,WACxB8lE,EAAiB,KACbzhB,EAAQtnD,EAAQwoE,WAAalhB,EAAQtnD,EAAQ2O,SAC7C3O,EAAQ2oE,SAAU,EAClBM,GAAc,MAEnBI,EAAM3vD,OAAS,MAGtB6tC,EAAM8hB,EAAM9gE,WAEZygE,EAAiB/lE,YAAW,WACxB+lE,EAAiB,KACb1hB,EAAQtnD,EAAQwoE,WAChBW,EAA4F,QAEjGE,EAAM9gE,YAIrBugE,GAAS,EAEF9oE,EAAQ2oE,QAAU3oE,EAAQ4oE,YAAc5oE,EAAQwoE,UAmvEhDe,CADP3b,EAAehB,EAC4Bwb,IAKvC,OAl2EZ,SAAgCpoE,EAASqI,EAAM6J,EAAS/B,EAAUs9C,GAC9D,IAAIjU,EAAOgV,KAGX,OAFAhV,EAAKoU,aAAe5tD,EACpBw5C,EAAK8U,UAAY,CAAEjmD,KAAMA,EAAM6J,QAASA,EAAS/B,SAAUA,EAAUs9C,IAAKA,GACnEjU,EA81EQgwB,CAAuB5b,EAAcvlD,EAAM6J,EAAS/B,EAAUs9C,GAG7EplD,EAAOA,GAAQ,GAGfu8D,GAA0BhY,GAEtBrF,EAAMl/C,EAAKohE,QAkFnB,SAAwB/vC,EAASrxB,GAC7B,IAAI4G,EAAQyqB,EAAQ+vC,OAAS/vC,EAAQ+vC,MAAMx6D,MAAS,QAChD7I,EAASszB,EAAQ+vC,OAAS/vC,EAAQ+vC,MAAMrjE,OAAU,SACrDiC,EAAKmL,QAAUnL,EAAKmL,MAAQ,KAAKvE,GAAQ5G,EAAKohE,MAAMztE,MACrD,IAAI0O,EAAKrC,EAAKqC,KAAOrC,EAAKqC,GAAK,IAC3BwsD,EAAWxsD,EAAGtE,GACd4P,EAAW3N,EAAKohE,MAAMzzD,SACtBuxC,EAAM2P,IACFl6D,EAAQk6D,IAC0B,IAAhCA,EAASvvD,QAAQqO,GACjBkhD,IAAalhD,KACftL,EAAGtE,GAAS,CAAC4P,GAAUrM,OAAOutD,IAIlCxsD,EAAGtE,GAAS4P,EA/FZ0zD,CAAe9c,EAAKlzB,QAASrxB,GAIjC,IAAIm6D,EArzGR,SAAmCn6D,EAAMukD,EAAMa,GAI3C,IAAIoa,EAAcjb,EAAKlzB,QAAQviB,MAC/B,IAAImwC,EAAQugB,GAAZ,CAGA,IAAIne,EAAM,GACNl2C,EAAQnL,EAAKmL,MAAO2D,EAAQ9O,EAAK8O,MACrC,GAAIowC,EAAM/zC,IAAU+zC,EAAMpwC,GACtB,IAAK,IAAI7a,KAAOurE,EAAa,CACzB,IAAIvoC,EAAS2pB,EAAU3sD,GAcvB22D,GAAUvJ,EAAKvyC,EAAO7a,EAAKgjC,GAAQ,IAC/B2zB,GAAUvJ,EAAKl2C,EAAOlX,EAAKgjC,GAAQ,GAG/C,OAAOoqB,GAuxGSigB,CAA0BthE,EAAMukD,GAGhD,GAAIpF,EAAOoF,EAAKlzB,QAAQkwC,YACpB,OA5JR,SAAmChd,EAAM4V,EAAWn6D,EAAMm9D,EAAWr1D,GACjE,IAAIupB,EAAUkzB,EAAKlzB,QACfviB,EAAQ,GACR0wD,EAAcnuC,EAAQviB,MAC1B,GAAIowC,EAAMsgB,GACN,IAAK,IAAIvrE,KAAOurE,EACZ1wD,EAAM7a,GAAOqmE,GAAarmE,EAAKurE,EAAarF,GAAapb,QAIzDG,EAAMl/C,EAAKmL,QACX0yD,GAAW/uD,EAAO9O,EAAKmL,OACvB+zC,EAAMl/C,EAAK8O,QACX+uD,GAAW/uD,EAAO9O,EAAK8O,OAE/B,IAAI6uD,EAAgB,IAAIT,GAAwBl9D,EAAM8O,EAAOhH,EAAUq1D,EAAW5Y,GAC9E+B,EAAQj1B,EAAQ+L,OAAOvqC,KAAK,KAAM8qE,EAAclP,GAAIkP,GACxD,GAAIrX,aAAiBnB,GACjB,OAAOuY,GAA6BpX,EAAOtmD,EAAM29D,EAAcjtD,OAAQ2gB,EAASssC,GAE/E,GAAIhpE,EAAQ2xD,GAAQ,CAGrB,IAFA,IAAIkb,EAAS1W,GAAkBxE,IAAU,GACrCjF,EAAM,IAAI1iD,MAAM6iE,EAAOrsE,QAClBzC,EAAI,EAAGA,EAAI8uE,EAAOrsE,OAAQzC,IAC/B2uD,EAAI3uD,GAAKgrE,GAA6B8D,EAAO9uE,GAAIsN,EAAM29D,EAAcjtD,OAAQ2gB,EAASssC,GAE1F,OAAOtc,GAkIAogB,CAA0Bld,EAAM4V,EAAWn6D,EAAM6J,EAAS/B,GAIrE,IAAIhF,EAAY9C,EAAKqC,GAKrB,GAFArC,EAAKqC,GAAKrC,EAAK0hE,SAEXviB,EAAOoF,EAAKlzB,QAAQswC,UAAW,CAI/B,IAAI7U,EAAO9sD,EAAK8sD,KAChB9sD,EAAO,GACH8sD,IACA9sD,EAAK8sD,KAAOA,IAiCxB,SAA+B9sD,GAE3B,IADA,IAAI82D,EAAQ92D,EAAKwqD,OAASxqD,EAAKwqD,KAAO,IAC7B93D,EAAI,EAAGA,EAAIotE,GAAa3qE,OAAQzC,IAAK,CAC1C,IAAIuB,EAAM6rE,GAAaptE,GACnBm8D,EAAWiI,EAAM7iE,GACjB2tE,EAAU3D,GAAoBhqE,GAE9B46D,IAAa+S,GAAa/S,GAAYA,EAASgT,UAC/C/K,EAAM7iE,GAAO46D,EAAWiT,GAAUF,EAAS/S,GAAY+S,IArC/DG,CAAsB/hE,GAGtB,IAAI/M,EAAO6qE,GAAiBvZ,EAAKlzB,UAAY+zB,EAM7C,OALY,IAAID,GAEhB,iBAAiB7jD,OAAOijD,EAAK0b,KAAK3+D,OAAOrO,EAAO,IAAIqO,OAAOrO,GAAQ,IAAK+M,OAAMuF,OAAWA,OAAWA,EAAWsE,EAE/G,CAAE06C,KAAMA,EAAM4V,UAAWA,EAAWr3D,UAAWA,EAAWsiD,IAAKA,EAAKt9C,SAAUA,GAAYy9C,KAiC9F,SAASuc,GAAUE,EAAIC,GACnB,IAAItX,EAAS,SAAU1zD,EAAGC,GAEtB8qE,EAAG/qE,EAAGC,GACN+qE,EAAGhrE,EAAGC,IAGV,OADAyzD,EAAOkX,SAAU,EACVlX,EAuBX,IAAIuX,GAASpgE,EA8FTqgE,GAASzlE,EAAO0lD,sBAgBpB,SAASggB,GAAUzvD,EAAIgiB,EAAM0tC,GAEzB,QADkB,IAAdA,IAAwBA,GAAY,IACnC1tC,EACD,OAAOhiB,EAKX,IAJA,IAAI1e,EAAKquE,EAAOC,EACZx7D,EAAO09C,GACLC,QAAQC,QAAQhwB,GAChBvhC,OAAO2T,KAAK4tB,GACTjiC,EAAI,EAAGA,EAAIqU,EAAK5R,OAAQzC,IAGjB,YAFZuB,EAAM8S,EAAKrU,MAIX4vE,EAAQ3vD,EAAG1e,GACXsuE,EAAU5tC,EAAK1gC,GACVouE,GAAc/hB,EAAO3tC,EAAI1e,GAGrBquE,IAAUC,GACfjjB,EAAcgjB,IACdhjB,EAAcijB,IACdH,GAAUE,EAAOC,GALjBlqE,GAAIsa,EAAI1e,EAAKsuE,IAQrB,OAAO5vD,EAKX,SAAS6vD,GAAcC,EAAWC,EAAUzd,GACxC,OAAKA,EAkBM,WAEH,IAAI0d,EAAe5tE,EAAW2tE,GACxBA,EAAS7vE,KAAKoyD,EAAIA,GAClByd,EACFE,EAAc7tE,EAAW0tE,GACvBA,EAAU5vE,KAAKoyD,EAAIA,GACnBwd,EACN,OAAIE,EACOP,GAAUO,EAAcC,GAGxBA,GA5BVF,EAGAD,EAQE,WACH,OAAOL,GAAUrtE,EAAW2tE,GAAYA,EAAS7vE,KAAK2E,KAAMA,MAAQkrE,EAAU3tE,EAAW0tE,GAAaA,EAAU5vE,KAAK2E,KAAMA,MAAQirE,IAR5HC,EAHAD,EAgDnB,SAASvK,GAAmBuK,EAAWC,GACnC,IAAIrhB,EAAMqhB,EACJD,EACIA,EAAUnhE,OAAOohE,GACjB/tE,EAAQ+tE,GACJA,EACA,CAACA,GACTD,EACN,OAAOphB,EAEX,SAAqByV,GAEjB,IADA,IAAIzV,EAAM,GACD3uD,EAAI,EAAGA,EAAIokE,EAAM3hE,OAAQzC,KACC,IAA3B2uD,EAAI/hD,QAAQw3D,EAAMpkE,KAClB2uD,EAAIjiD,KAAK03D,EAAMpkE,IAGvB,OAAO2uD,EATMwhB,CAAYxhB,GAAOA,EAqBpC,SAASyhB,GAAYL,EAAWC,EAAUzd,EAAIhxD,GAC1C,IAAIotD,EAAMjuD,OAAOY,OAAOyuE,GAAa,MACrC,OAAIC,EAEO1rE,EAAOqqD,EAAKqhB,GAGZrhB,EApDf8gB,GAAOniE,KAAO,SAAUyiE,EAAWC,EAAUzd,GACzC,OAAKA,EAUEud,GAAcC,EAAWC,EAAUzd,GATlCyd,GAAgC,mBAAbA,EAKZD,EAEJD,GAAcC,EAAWC,IA0BxCvgB,EAAgBntD,SAAQ,SAAUw1D,GAC9B2X,GAAO3X,GAAQ0N,MAmBnBhW,EAAYltD,SAAQ,SAAUoxB,GAC1B+7C,GAAO/7C,EAAO,KAAO08C,MAQzBX,GAAOje,MAAQ,SAAUue,EAAWC,EAAUzd,EAAIhxD,GAS9C,GANIwuE,IAAcxe,KACdwe,OAAYl9D,GAEZm9D,IAAaze,KACbye,OAAWn9D,IAEVm9D,EACD,OAAOtvE,OAAOY,OAAOyuE,GAAa,MAItC,IAAKA,EACD,OAAOC,EACX,IAAIxhB,EAAM,GAEV,IAAK,IAAIsQ,KADTx6D,EAAOkqD,EAAKuhB,GACMC,EAAU,CACxB,IAAIK,EAAW7hB,EAAIsQ,GACfjiD,EAAQmzD,EAASlR,GACjBuR,IAAapuE,EAAQouE,KACrBA,EAAW,CAACA,IAEhB7hB,EAAIsQ,GAASuR,EAAWA,EAASzhE,OAAOiO,GAAS5a,EAAQ4a,GAASA,EAAQ,CAACA,GAE/E,OAAO2xC,GAKXihB,GAAOrzD,MACHqzD,GAAOpH,QACHoH,GAAOhG,OACHgG,GAAO/G,SACH,SAAUqH,EAAWC,EAAUzd,EAAIhxD,GAI/B,IAAKwuE,EACD,OAAOC,EACX,IAAIxhB,EAAM9tD,OAAOY,OAAO,MAIxB,OAHAgD,EAAOkqD,EAAKuhB,GACRC,GACA1rE,EAAOkqD,EAAKwhB,GACTxhB,GAE3BihB,GAAOa,QAAU,SAAUP,EAAWC,GAClC,OAAKD,EAEE,WACH,IAAIvhB,EAAM9tD,OAAOY,OAAO,MAMxB,OALAouE,GAAUlhB,EAAKnsD,EAAW0tE,GAAaA,EAAU5vE,KAAK2E,MAAQirE,GAC1DC,GACAN,GAAUlhB,EAAKnsD,EAAW2tE,GAAYA,EAAS7vE,KAAK2E,MAAQkrE,GAAU,GAGnExhB,GARAwhB,GAcf,IAAIO,GAAe,SAAUR,EAAWC,GACpC,YAAoBn9D,IAAbm9D,EAAyBD,EAAYC,GA6GhD,SAASzF,GAAavsD,EAAQnB,EAAO01C,GAejC,GAXIlwD,EAAWwa,KAEXA,EAAQA,EAAM8hB,SAxFtB,SAAwBA,EAAS4zB,GAC7B,IAAIn2C,EAAQuiB,EAAQviB,MACpB,GAAKA,EAAL,CAEA,IACIpc,EAAGkC,EADHysD,EAAM,GAEV,GAAI1sD,EAAQma,GAER,IADApc,EAAIoc,EAAM3Z,OACHzC,KAEgB,iBADnBkC,EAAMka,EAAMpc,MAGR2uD,EADOZ,EAAS7rD,IACJ,CAAEwxB,KAAM,YAO3B,GAAIk5B,EAAcxwC,GACnB,IAAK,IAAI7a,KAAO6a,EACZla,EAAMka,EAAM7a,GAEZotD,EADOZ,EAASxsD,IACJqrD,EAAc1qD,GAAOA,EAAM,CAAEwxB,KAAMxxB,QAG9C,EAITy8B,EAAQviB,MAAQuyC,GA4DhB6hB,CAAe3zD,GAvDnB,SAAyB8hB,EAAS4zB,GAC9B,IAAIkX,EAAS9qC,EAAQ8qC,OACrB,GAAKA,EAAL,CAEA,IAAIvK,EAAcvgC,EAAQ8qC,OAAS,GACnC,GAAIxnE,EAAQwnE,GACR,IAAK,IAAIzpE,EAAI,EAAGA,EAAIypE,EAAOhnE,OAAQzC,IAC/Bk/D,EAAWuK,EAAOzpE,IAAM,CAAEiiC,KAAMwnC,EAAOzpE,SAG1C,GAAI4sD,EAAc6c,GACnB,IAAK,IAAIloE,KAAOkoE,EAAQ,CACpB,IAAIvnE,EAAMunE,EAAOloE,GACjB29D,EAAW39D,GAAOqrD,EAAc1qD,GAC1BoC,EAAO,CAAE29B,KAAM1gC,GAAOW,GACtB,CAAE+/B,KAAM//B,QAGb,GAsCTuuE,CAAgB5zD,GA9BpB,SAA+B8hB,GAC3B,IAAI+xC,EAAO/xC,EAAQgyC,WACnB,GAAID,EACA,IAAK,IAAInvE,KAAOmvE,EAAM,CAClB,IAAI5f,EAAM4f,EAAKnvE,GACXc,EAAWyuD,KACX4f,EAAKnvE,GAAO,CAAEC,KAAMsvD,EAAKhtC,OAAQgtC,KAyB7C8f,CAAsB/zD,IAKjBA,EAAMywD,QACHzwD,EAAMg0D,UACN7yD,EAASusD,GAAavsD,EAAQnB,EAAMg0D,QAASte,IAE7C11C,EAAMi0D,QACN,IAAK,IAAI9wE,EAAI,EAAGC,EAAI4c,EAAMi0D,OAAOruE,OAAQzC,EAAIC,EAAGD,IAC5Cge,EAASusD,GAAavsD,EAAQnB,EAAMi0D,OAAO9wE,GAAIuyD,GAI3D,IACIhxD,EADAo9B,EAAU,GAEd,IAAKp9B,KAAOyc,EACR+yD,EAAWxvE,GAEf,IAAKA,KAAOsb,EACH+wC,EAAO5vC,EAAQzc,IAChBwvE,EAAWxvE,GAGnB,SAASwvE,EAAWxvE,GAChB,IAAIyvE,EAAQvB,GAAOluE,IAAQgvE,GAC3B5xC,EAAQp9B,GAAOyvE,EAAMhzD,EAAOzc,GAAMsb,EAAMtb,GAAMgxD,EAAIhxD,GAEtD,OAAOo9B,EAOX,SAASu6B,GAAav6B,EAASjL,EAAMygC,EAAI8c,GAErC,GAAkB,iBAAP9c,EAAX,CAGA,IAAI+c,EAASvyC,EAAQjL,GAErB,GAAIk6B,EAAOsjB,EAAQ/c,GACf,OAAO+c,EAAO/c,GAClB,IAAIgd,EAAcpjB,EAASoG,GAC3B,GAAIvG,EAAOsjB,EAAQC,GACf,OAAOD,EAAOC,GAClB,IAAIC,EAAepjB,EAAWmjB,GAC9B,OAAIvjB,EAAOsjB,EAAQE,GACRF,EAAOE,GAERF,EAAO/c,IAAO+c,EAAOC,IAAgBD,EAAOE,IAO1D,SAASxJ,GAAarmE,EAAKurE,EAAarF,EAAWlV,GAC/C,IAAIr+C,EAAO44D,EAAYvrE,GACnB8vE,GAAUzjB,EAAO6Z,EAAWlmE,GAC5BN,EAAQwmE,EAAUlmE,GAElB+vE,EAAeC,GAAa5nE,QAASuK,EAAKwf,MAC9C,GAAI49C,GAAgB,EAChB,GAAID,IAAWzjB,EAAO15C,EAAM,WACxBjT,GAAQ,OAEP,GAAc,KAAVA,GAAgBA,IAAUitD,EAAU3sD,GAAM,CAG/C,IAAIiwE,EAAcD,GAAajrE,OAAQ4N,EAAKwf,OACxC89C,EAAc,GAAKF,EAAeE,KAClCvwE,GAAQ,GAKpB,QAAc4R,IAAV5R,EAAqB,CACrBA,EAgBR,SAA6BsxD,EAAIr+C,EAAM3S,GAEnC,IAAKqsD,EAAO15C,EAAM,WACd,OAEJ,IAAI48C,EAAM58C,EAAK4kD,QAEX,EASJ,GAAIvG,GACAA,EAAG4G,SAASsO,gBACmB50D,IAA/B0/C,EAAG4G,SAASsO,UAAUlmE,SACHsR,IAAnB0/C,EAAGmV,OAAOnmE,GACV,OAAOgxD,EAAGmV,OAAOnmE,GAIrB,OAAOc,EAAWyuD,IAA+B,aAAvB2gB,GAAQv9D,EAAKwf,MACjCo9B,EAAI3wD,KAAKoyD,GACTzB,EA1CM4gB,CAAoBnf,EAAIr+C,EAAM3S,GAGtC,IAAIowE,EAAoBjc,GACxBC,IAAgB,GAChB10B,GAAQhgC,GACR00D,GAAgBgc,GAKpB,OAAO1wE,EAqGX,IAAI2wE,GAAsB,qBAM1B,SAASH,GAAQjvE,GACb,IAAI4H,EAAQ5H,GAAMA,EAAGR,WAAWoI,MAAMwnE,IACtC,OAAOxnE,EAAQA,EAAM,GAAK,GAE9B,SAASynE,GAAWttE,EAAGC,GACnB,OAAOitE,GAAQltE,KAAOktE,GAAQjtE,GAElC,SAAS+sE,GAAa79C,EAAMxpB,GACxB,IAAKjI,EAAQiI,GACT,OAAO2nE,GAAW3nE,EAAewpB,GAAQ,GAAK,EAElD,IAAK,IAAI1zB,EAAI,EAAG8O,EAAM5E,EAAczH,OAAQzC,EAAI8O,EAAK9O,IACjD,GAAI6xE,GAAW3nE,EAAclK,GAAI0zB,GAC7B,OAAO1zB,EAGf,OAAQ,EA4CZ,SAAS8xE,GAAInzC,GAIT75B,KAAKitE,MAAMpzC,GAwCf,SAASqzC,GAAWF,GAMhBA,EAAIvE,IAAM,EACV,IAAIA,EAAM,EAIVuE,EAAIxtE,OAAS,SAAUgmE,GACnBA,EAAgBA,GAAiB,GACjC,IAAI2H,EAAQntE,KACRotE,EAAUD,EAAM1E,IAChB4E,EAAc7H,EAAc8H,QAAU9H,EAAc8H,MAAQ,IAChE,GAAID,EAAYD,GACZ,OAAOC,EAAYD,GAEvB,IAAI3xE,EAAO6qE,GAAiBd,IAAkBc,GAAiB6G,EAAMtzC,SAIrE,IAAI0zC,EAAM,SAAsB1zC,GAC5B75B,KAAKitE,MAAMpzC,IAqCf,OAnCA0zC,EAAIzwE,UAAYlB,OAAOY,OAAO2wE,EAAMrwE,YACtBgB,YAAcyvE,EAC5BA,EAAI9E,IAAMA,IACV8E,EAAI1zC,QAAU4rC,GAAa0H,EAAMtzC,QAAS2rC,GAC1C+H,EAAW,MAAIJ,EAIXI,EAAI1zC,QAAQviB,OA8BxB,SAAmBk2D,GACf,IAAIl2D,EAAQk2D,EAAK3zC,QAAQviB,MACzB,IAAK,IAAI7a,KAAO6a,EACZqgD,GAAM6V,EAAK1wE,UAAW,SAAUL,GAhC5BgxE,CAAUF,GAEVA,EAAI1zC,QAAQ+pC,UAiCxB,SAAsB4J,GAClB,IAAI5J,EAAW4J,EAAK3zC,QAAQ+pC,SAC5B,IAAK,IAAInnE,KAAOmnE,EACZM,GAAesJ,EAAK1wE,UAAWL,EAAKmnE,EAASnnE,IAnCzCixE,CAAaH,GAGjBA,EAAI/tE,OAAS2tE,EAAM3tE,OACnB+tE,EAAII,MAAQR,EAAMQ,MAClBJ,EAAI5vD,IAAMwvD,EAAMxvD,IAGhB+sC,EAAYltD,SAAQ,SAAUoxB,GAC1B2+C,EAAI3+C,GAAQu+C,EAAMv+C,MAGlBnzB,IACA8xE,EAAI1zC,QAAQnd,WAAWjhB,GAAQ8xE,GAKnCA,EAAItI,aAAekI,EAAMtzC,QACzB0zC,EAAI/H,cAAgBA,EACpB+H,EAAIjI,cAAgB9lE,EAAO,GAAI+tE,EAAI1zC,SAEnCwzC,EAAYD,GAAWG,EAChBA,GA8Cf,SAASK,GAAkBzxD,GACvB,OAAOA,IAASmqD,GAAiBnqD,EAAK4wC,KAAKlzB,UAAY1d,EAAKyxC,KAEhE,SAASj2C,GAAQk2D,EAASpyE,GACtB,OAAI0B,EAAQ0wE,GACDA,EAAQ/lE,QAAQrM,IAAS,EAER,iBAAZoyE,EACLA,EAAQjsE,MAAM,KAAKkG,QAAQrM,IAAS,IAEtCssD,EAAS8lB,IACPA,EAAQxsE,KAAK5F,GAK5B,SAASqyE,GAAWC,EAAmBv+D,GACnC,IAAI0uB,EAAQ6vC,EAAkB7vC,MAAO3uB,EAAOw+D,EAAkBx+D,KAAMq4D,EAASmG,EAAkBnG,OAAQ1T,EAAS6Z,EAAkB7Z,OAClI,IAAK,IAAIz3D,KAAOyhC,EAAO,CACnB,IAAI8vC,EAAQ9vC,EAAMzhC,GAClB,GAAIuxE,EAAO,CACP,IAAI3U,EAAS2U,EAAMvyE,KACf49D,IAAW7pD,EAAO6pD,IAClB4U,GAAgB/vC,EAAOzhC,EAAK8S,EAAMq4D,IAI9C1T,EAAOpG,iBAAiBx9C,cAAWvC,EAEvC,SAASkgE,GAAgB/vC,EAAOzhC,EAAK8S,EAAM00B,GACvC,IAAI+pC,EAAQ9vC,EAAMzhC,IACduxE,GAAW/pC,GAAW+pC,EAAMpgB,MAAQ3pB,EAAQ2pB,KAE5CogB,EAAM7f,kBAAkBka,WAE5BnqC,EAAMzhC,GAAO,KACbmsD,EAASr5C,EAAM9S,IA3wCnB,SAAqBuwE,GACjBA,EAAIlwE,UAAUmwE,MAAQ,SAAUpzC,GAC5B,IAAI4zB,EAAKztD,KAETytD,EAAGygB,KAAOpJ,KAUVrX,EAAGqE,QAAS,EAEZrE,EAAG4D,UAAW,EAEd5D,EAAGC,OAAS,IAAIwO,IAAY,GAG5BzO,EAAGC,OAAOx0C,YAASnL,EACnB0/C,EAAGC,OAAO6T,KAAM,EAEZ1nC,GAAWA,EAAQitC,aAqC/B,SAA+BrZ,EAAI5zB,GAC/B,IAAI1d,EAAQsxC,EAAG4G,SAAWz4D,OAAOY,OAAOixD,EAAG3vD,YAAY+7B,SAEnDutC,EAAcvtC,EAAQktC,aAC1B5qD,EAAKjD,OAAS2gB,EAAQ3gB,OACtBiD,EAAK4qD,aAAeK,EACpB,IAAI+G,EAAwB/G,EAAYtZ,iBACxC3xC,EAAKwmD,UAAYwL,EAAsBxL,UACvCxmD,EAAK2rD,iBAAmBqG,EAAsB7iE,UAC9C6Q,EAAKurD,gBAAkByG,EAAsB79D,SAC7C6L,EAAKqqD,cAAgB2H,EAAsBvgB,IACvC/zB,EAAQ+L,SACRzpB,EAAKypB,OAAS/L,EAAQ+L,OACtBzpB,EAAK46C,gBAAkBl9B,EAAQk9B,iBA9C3BqX,CAAsB3gB,EAAI5zB,GAG1B4zB,EAAG4G,SAAWoR,GAAaV,GAA0BtX,EAAG3vD,aAAc+7B,GAAW,GAAI4zB,GAOrFA,EAAGuJ,aAAevJ,EAGtBA,EAAG4gB,MAAQ5gB,EA7uDnB,SAAuBA,GACnB,IAAI5zB,EAAU4zB,EAAG4G,SAEbn7C,EAAS2gB,EAAQ3gB,OACrB,GAAIA,IAAW2gB,EAAQswC,SAAU,CAC7B,KAAOjxD,EAAOm7C,SAAS8V,UAAYjxD,EAAO6jD,SACtC7jD,EAASA,EAAO6jD,QAEpB7jD,EAAOkkD,UAAUx1D,KAAK6lD,GAE1BA,EAAGsP,QAAU7jD,EACbu0C,EAAG6gB,MAAQp1D,EAASA,EAAOo1D,MAAQ7gB,EACnCA,EAAG2P,UAAY,GACf3P,EAAG8gB,MAAQ,GACX9gB,EAAGyR,UAAYhmD,EAASA,EAAOgmD,UAAYtjE,OAAOY,OAAO,MACzDixD,EAAGiR,SAAW,KACdjR,EAAGuP,UAAY,KACfvP,EAAG0P,iBAAkB,EACrB1P,EAAGkR,YAAa,EAChBlR,EAAGmR,cAAe,EAClBnR,EAAG4U,mBAAoB,EA0tDnBmM,CAAc/gB,GAx9DtB,SAAoBA,GAChBA,EAAGghB,QAAU7yE,OAAOY,OAAO,MAC3BixD,EAAGgQ,eAAgB,EAEnB,IAAInyD,EAAYmiD,EAAG4G,SAASyT,iBACxBx8D,GACA0wD,GAAyBvO,EAAIniD,GAm9D7BojE,CAAWjhB,GAjsEnB,SAAoBA,GAChBA,EAAGma,OAAS,KACZna,EAAGmJ,aAAe,KAClB,IAAI/8B,EAAU4zB,EAAG4G,SACb+S,EAAe3Z,EAAGyG,OAASr6B,EAAQktC,aACnCZ,EAAgBiB,GAAeA,EAAY/0D,QAC/Co7C,EAAG4H,OAAS8D,GAAat/B,EAAQ6tC,gBAAiBvB,GAClD1Y,EAAG2H,aAAegS,EACZ5N,GAAqB/L,EAAGsP,QAASqK,EAAY5+D,KAAKurD,YAAatG,EAAG4H,QAClE9N,EAMNkG,EAAGwJ,GAAK,SAAUx3D,EAAGC,EAAGnE,EAAGC,GAAK,OAAOo4D,GAAgBnG,EAAIhuD,EAAGC,EAAGnE,EAAGC,GAAG,IAIvEiyD,EAAG8H,eAAiB,SAAU91D,EAAGC,EAAGnE,EAAGC,GAAK,OAAOo4D,GAAgBnG,EAAIhuD,EAAGC,EAAGnE,EAAGC,GAAG,IAGnF,IAAImzE,EAAavH,GAAeA,EAAY5+D,KAWxC0oD,GAAezD,EAAI,SAAWkhB,GAAcA,EAAWh7D,OAAU4zC,EAAa,MAAM,GACpF2J,GAAezD,EAAI,aAAc5zB,EAAQiuC,kBAAoBvgB,EAAa,MAAM,GAgqEhFqnB,CAAWnhB,GACX4P,GAAW5P,EAAI,oBAAgB1/C,GAAW,GA9FlD,SAAwB0/C,GACpB,IAAIruD,EAASslE,GAAcjX,EAAG4G,SAASsQ,OAAQlX,GAC3CruD,IACAyxD,IAAgB,GAChBj1D,OAAO2T,KAAKnQ,GAAQ5B,SAAQ,SAAUf,GAU9By0D,GAAezD,EAAIhxD,EAAK2C,EAAO3C,OAGvCo0D,IAAgB,IA8EhBge,CAAephB,GACfgV,GAAUhV,GAnHlB,SAAqBA,GACjB,IAAIqhB,EAAgBrhB,EAAG4G,SAASmX,QAChC,GAAIsD,EAAe,CACf,IAAIC,EAAWxxE,EAAWuxE,GACpBA,EAAczzE,KAAKoyD,GACnBqhB,EACN,IAAKxxE,EAASyxE,GACV,OAMJ,IAJA,IAAI/yB,EAASijB,GAAgBxR,GAGzBl+C,EAAO09C,GAAYC,QAAQC,QAAQ4hB,GAAYnzE,OAAO2T,KAAKw/D,GACtD7zE,EAAI,EAAGA,EAAIqU,EAAK5R,OAAQzC,IAAK,CAClC,IAAIuB,EAAM8S,EAAKrU,GACfU,OAAOC,eAAemgD,EAAQv/C,EAAKb,OAAO6f,yBAAyBszD,EAAUtyE,MAqGjFuyE,CAAYvhB,GACZ4P,GAAW5P,EAAI,WAOXA,EAAG4G,SAASrgD,IACZy5C,EAAGyZ,OAAOzZ,EAAG4G,SAASrgD,KA8hClCi7D,CAAYjC,IAxsCZ,SAAoBA,GAIhB,IAAIkC,EAAU,CACd,IAAc,WACV,OAAOlvE,KAAKyjE,QAEZ0L,EAAW,CACf,IAAe,WACX,OAAOnvE,KAAK4iE,SAWhBhnE,OAAOC,eAAemxE,EAAIlwE,UAAW,QAASoyE,GAC9CtzE,OAAOC,eAAemxE,EAAIlwE,UAAW,SAAUqyE,GAC/CnC,EAAIlwE,UAAUsyE,KAAOvuE,GACrBmsE,EAAIlwE,UAAUuyE,QAAUtd,GACxBib,EAAIlwE,UAAU2nE,OAAS,SAAUrD,EAASd,EAAIzmC,GAE1C,GAAIiuB,EAAcwY,GACd,OAAO8D,GAFFpkE,KAEoBohE,EAASd,EAAIzmC,IAE1CA,EAAUA,GAAW,IACb4nC,MAAO,EACf,IAAIpD,EAAU,IAAI8C,GANTnhE,KAMqBohE,EAASd,EAAIzmC,GAC3C,GAAIA,EAAQy1C,UAAW,CACnB,IAAI3f,EAAO,mCAAoC7lD,OAAOu0D,EAAQ2D,WAAY,KAC1ElS,KACA2C,GAAwB6N,EAVnBtgE,KAU2B,CAACq+D,EAAQliE,OAVpC6D,KAUgD2vD,GACrDI,KAEJ,OAAO,WACHsO,EAAQ3B,aAkqCpB6S,CAAWvC,IAz+FX,SAAqBA,GACjB,IAAIwC,EAAS,SACbxC,EAAIlwE,UAAU6+D,IAAM,SAAUp1D,EAAO7I,GACjC,IAAI+vD,EAAKztD,KACT,GAAI7C,EAAQoJ,GACR,IAAK,IAAIrL,EAAI,EAAGC,EAAIoL,EAAM5I,OAAQzC,EAAIC,EAAGD,IACrCuyD,EAAGkO,IAAIp1D,EAAMrL,GAAIwC,QAIpB+vD,EAAGghB,QAAQloE,KAAWknD,EAAGghB,QAAQloE,GAAS,KAAKqB,KAAKlK,GAGjD8xE,EAAOnuE,KAAKkF,KACZknD,EAAGgQ,eAAgB,GAG3B,OAAOhQ,GAEXuf,EAAIlwE,UAAU2yE,MAAQ,SAAUlpE,EAAO7I,GACnC,IAAI+vD,EAAKztD,KACT,SAAS6K,IACL4iD,EAAGoO,KAAKt1D,EAAOsE,GACfnN,EAAGsJ,MAAMymD,EAAInuD,WAIjB,OAFAuL,EAAGnN,GAAKA,EACR+vD,EAAGkO,IAAIp1D,EAAOsE,GACP4iD,GAEXuf,EAAIlwE,UAAU++D,KAAO,SAAUt1D,EAAO7I,GAClC,IAAI+vD,EAAKztD,KAET,IAAKV,UAAU3B,OAEX,OADA8vD,EAAGghB,QAAU7yE,OAAOY,OAAO,MACpBixD,EAGX,GAAItwD,EAAQoJ,GAAQ,CAChB,IAAK,IAAImpE,EAAM,EAAGv0E,EAAIoL,EAAM5I,OAAQ+xE,EAAMv0E,EAAGu0E,IACzCjiB,EAAGoO,KAAKt1D,EAAMmpE,GAAMhyE,GAExB,OAAO+vD,EAGX,IASI6S,EATAqP,EAAMliB,EAAGghB,QAAQloE,GACrB,IAAKopE,EACD,OAAOliB,EAEX,IAAK/vD,EAED,OADA+vD,EAAGghB,QAAQloE,GAAS,KACbknD,EAKX,IADA,IAAIvyD,EAAIy0E,EAAIhyE,OACLzC,KAEH,IADAolE,EAAKqP,EAAIz0E,MACEwC,GAAM4iE,EAAG5iE,KAAOA,EAAI,CAC3BiyE,EAAIh6D,OAAOza,EAAG,GACd,MAGR,OAAOuyD,GAEXuf,EAAIlwE,UAAUg+D,MAAQ,SAAUv0D,GAC5B,IAAIknD,EAAKztD,KAWL2vE,EAAMliB,EAAGghB,QAAQloE,GACrB,GAAIopE,EAAK,CACLA,EAAMA,EAAIhyE,OAAS,EAAI8rD,EAAQkmB,GAAOA,EAGtC,IAFA,IAAIzoE,EAAOuiD,EAAQnqD,UAAW,GAC1BqwD,EAAO,sBAAuB7lD,OAAOvD,EAAO,KACvCrL,EAAI,EAAGC,EAAIw0E,EAAIhyE,OAAQzC,EAAIC,EAAGD,IACnCu3D,GAAwBkd,EAAIz0E,GAAIuyD,EAAIvmD,EAAMumD,EAAIkC,GAGtD,OAAOlC,GAs5FfmiB,CAAY5C,IAzwFZ,SAAwBA,GACpBA,EAAIlwE,UAAU+yE,QAAU,SAAU/gB,EAAO4X,GACrC,IAAIjZ,EAAKztD,KACL00B,EAAS+4B,EAAGruC,IACZ0wD,EAAYriB,EAAGma,OACfmI,EAAwBnT,GAAkBnP,GAC9CA,EAAGma,OAAS9Y,EASRrB,EAAGruC,IANF0wD,EAMQriB,EAAGuiB,UAAUF,EAAWhhB,GAJxBrB,EAAGuiB,UAAUviB,EAAGruC,IAAK0vC,EAAO4X,GAAW,GAMpDqJ,IAEIr7C,IACAA,EAAOu7C,QAAU,MAEjBxiB,EAAGruC,MACHquC,EAAGruC,IAAI6wD,QAAUxiB,GAIrB,IADA,IAAIyiB,EAAUziB,EACPyiB,GACHA,EAAQhc,QACRgc,EAAQnT,SACRmT,EAAQhc,SAAWgc,EAAQnT,QAAQ6K,QACnCsI,EAAQnT,QAAQ39C,IAAM8wD,EAAQ9wD,IAC9B8wD,EAAUA,EAAQnT,SAK1BiQ,EAAIlwE,UAAUmrE,aAAe,WAChBjoE,KACF0+D,UADE1+D,KAEF0+D,SAAS1/C,UAGpBguD,EAAIlwE,UAAUurE,SAAW,WACrB,IAAI5a,EAAKztD,KACT,IAAIytD,EAAG4U,kBAAP,CAGAhF,GAAW5P,EAAI,iBACfA,EAAG4U,mBAAoB,EAEvB,IAAInpD,EAASu0C,EAAGsP,SACZ7jD,GAAWA,EAAOmpD,mBAAsB5U,EAAG4G,SAAS8V,UACpDvhB,EAAS1vC,EAAOkkD,UAAW3P,GAI/BA,EAAGC,OAAOzqB,OAGNwqB,EAAGgW,MAAMnT,QACT7C,EAAGgW,MAAMnT,OAAOW,UAGpBxD,EAAGmR,cAAe,EAElBnR,EAAGuiB,UAAUviB,EAAGma,OAAQ,MAExBvK,GAAW5P,EAAI,aAEfA,EAAGoO,OAECpO,EAAGruC,MACHquC,EAAGruC,IAAI6wD,QAAU,MAGjBxiB,EAAGyG,SACHzG,EAAGyG,OAAOh7C,OAAS,QA8rF/Bi3D,CAAenD,IA7sGf,SAAqBA,GAEjB9U,GAAqB8U,EAAIlwE,WACzBkwE,EAAIlwE,UAAUszE,UAAY,SAAU1yE,GAChC,OAAO6M,GAAS7M,EAAIsC,OAExBgtE,EAAIlwE,UAAUuzE,QAAU,WACpB,IAAI5iB,EAAKztD,KACLswE,EAAK7iB,EAAG4G,SAAUzuB,EAAS0qC,EAAG1qC,OAAQmhC,EAAeuJ,EAAGvJ,aACxDA,GAAgBtZ,EAAGkR,aACnBlR,EAAG2H,aAAeoE,GAAqB/L,EAAGsP,QAASgK,EAAav+D,KAAKurD,YAAatG,EAAG4H,OAAQ5H,EAAG2H,cAC5F3H,EAAGkN,aACHC,GAAenN,EAAGkN,YAAalN,EAAG2H,eAK1C3H,EAAGyG,OAAS6S,EAEZ,IAEIjY,EAFAyO,EAAWhQ,GACXgjB,EAAiBlV,GAErB,IACI7N,GAAmBC,GACnB4N,GAA2B5N,EAC3BqB,EAAQlpB,EAAOvqC,KAAKoyD,EAAGuJ,aAAcvJ,EAAG8H,gBAE5C,MAAOr1D,GACHk/D,GAAYl/D,EAAGutD,EAAI,UAcfqB,EAAQrB,EAAGma,OAGnB,QACIvM,GAA2BkV,EAC3B/iB,GAAmB+P,GAgBvB,OAbIpgE,EAAQ2xD,IAA2B,IAAjBA,EAAMnxD,SACxBmxD,EAAQA,EAAM,IAGZA,aAAiBnB,KAKnBmB,EAAQH,MAGZG,EAAM51C,OAAS6tD,EACRjY,GAgpGf0hB,CAAYxD,IA8KZ,IAAIyD,GAAe,CAACjvE,OAAQgE,OAAQ2B,OA2FhCupE,GAAoB,CACpBC,UA1FY,CACZl1E,KAAM,aACN0uE,UAAU,EACV7yD,MAAO,CACHs5D,QAASH,GACTI,QAASJ,GACTvuD,IAAK,CAAC1gB,OAAQsvE,SAElBvN,QAAS,CACLwN,WAAY,WACR,IAAe7yC,EAANl+B,KAAiBk+B,MAAO3uB,EAAxBvP,KAAkCuP,KAAMyhE,EAAxChxE,KAA0DgxE,aAAcC,EAAxEjxE,KAAwFixE,WACjG,GAAID,EAAc,CACd,IAAIpjB,EAAMojB,EAAapjB,IAAKO,EAAoB6iB,EAAa7iB,kBAAmBL,EAAmBkjB,EAAaljB,iBAChH5vB,EAAM+yC,GAAc,CAChBx1E,KAAMmyE,GAAkB9f,GACxBF,IAAKA,EACLO,kBAAmBA,GAEvB5+C,EAAK3H,KAAKqpE,GAENjxE,KAAKkiB,KAAO3S,EAAK5R,OAAS8hB,SAASzf,KAAKkiB,MACxC+rD,GAAgB/vC,EAAO3uB,EAAK,GAAIA,EAAMvP,KAAK4nE,QAE/C5nE,KAAKgxE,aAAe,QAIhCE,QAAS,WACLlxE,KAAKk+B,MAAQtiC,OAAOY,OAAO,MAC3BwD,KAAKuP,KAAO,IAEhBua,UAAW,WACP,IAAK,IAAIrtB,KAAOuD,KAAKk+B,MACjB+vC,GAAgBjuE,KAAKk+B,MAAOzhC,EAAKuD,KAAKuP,OAG9C4hE,QAAS,WACL,IAAIpuE,EAAQ/C,KACZA,KAAK+wE,aACL/wE,KAAKykE,OAAO,WAAW,SAAUrnE,GAC7B0wE,GAAW/qE,GAAO,SAAUtH,GAAQ,OAAOkc,GAAQva,EAAK3B,SAE5DuE,KAAKykE,OAAO,WAAW,SAAUrnE,GAC7B0wE,GAAW/qE,GAAO,SAAUtH,GAAQ,OAAQkc,GAAQva,EAAK3B,UAGjE21E,QAAS,WACLpxE,KAAK+wE,cAETnrC,OAAQ,WACJ,IAAI0vB,EAAOt1D,KAAKq1D,OAAOrB,QACnBlF,EAAQ2M,GAAuBnG,GAC/BxH,EAAmBgB,GAASA,EAAMhB,iBACtC,GAAIA,EAAkB,CAElB,IAAIwL,EAASsU,GAAkB9f,GAChB8iB,EAAN5wE,KAAmB4wE,QAASC,EAA5B7wE,KAAyC6wE,QAClD,GAECD,KAAatX,IAAW3hD,GAAQi5D,EAAStX,KAErCuX,GAAWvX,GAAU3hD,GAAQk5D,EAASvX,GACvC,OAAOxK,EAEX,IAAe5wB,EAANl+B,KAAiBk+B,MAAO3uB,EAAxBvP,KAAkCuP,KACvC9S,EAAmB,MAAbqyD,EAAMryD,IAGRqxD,EAAiBf,KAAK0b,KACjB3a,EAAiBF,IAAM,KAAK9jD,OAAOgkD,EAAiBF,KAAO,IAClEkB,EAAMryD,IACRyhC,EAAMzhC,IACNqyD,EAAMX,kBAAoBjwB,EAAMzhC,GAAK0xD,kBAErCvF,EAASr5C,EAAM9S,GACf8S,EAAK3H,KAAKnL,KAIVuD,KAAKgxE,aAAeliB,EACpB9uD,KAAKixE,WAAax0E,GAGtBqyD,EAAMtmD,KAAKm+D,WAAY,EAE3B,OAAO7X,GAAUwG,GAAQA,EAAK,OAQtC,SAAuB0X,GAEnB,IAAIqE,EAAY,CAChB,IAAgB,WAAc,OAAOnsE,IAMrCtJ,OAAOC,eAAemxE,EAAK,SAAUqE,GAIrCrE,EAAIsE,KAAO,CACP1xB,KAAM8qB,GACNlrE,OAAQA,EACRimE,aAAcA,GACdvU,eAAgBA,IAEpB8b,EAAInsE,IAAMA,GACVmsE,EAAIuE,OAASxf,GACbib,EAAIziE,SAAWA,GAEfyiE,EAAIwE,WAAa,SAAU/zE,GAEvB,OADA0+B,GAAQ1+B,GACDA,GAEXuvE,EAAInzC,QAAUj+B,OAAOY,OAAO,MAC5BkuD,EAAYltD,SAAQ,SAAUoxB,GAC1Bo+C,EAAInzC,QAAQjL,EAAO,KAAOhzB,OAAOY,OAAO,SAI5CwwE,EAAInzC,QAAQ2uC,MAAQwE,EACpBxtE,EAAOwtE,EAAInzC,QAAQnd,WAAYg0D,IA7SnC,SAAiB1D,GACbA,EAAIrvD,IAAM,SAAU8zD,GAChB,IAAIC,EAAmB1xE,KAAK2xE,oBAAsB3xE,KAAK2xE,kBAAoB,IAC3E,GAAID,EAAiB5pE,QAAQ2pE,IAAW,EACpC,OAAOzxE,KAGX,IAAIkH,EAAOuiD,EAAQnqD,UAAW,GAS9B,OARA4H,EAAK8N,QAAQhV,MACTzC,EAAWk0E,EAAO1zD,SAClB0zD,EAAO1zD,QAAQ/W,MAAMyqE,EAAQvqE,GAExB3J,EAAWk0E,IAChBA,EAAOzqE,MAAM,KAAME,GAEvBwqE,EAAiB9pE,KAAK6pE,GACfzxE,MA8RX4xE,CAAQ5E,GA1RZ,SAAmBA,GACfA,EAAIW,MAAQ,SAAUA,GAElB,OADA3tE,KAAK65B,QAAU4rC,GAAazlE,KAAK65B,QAAS8zC,GACnC3tE,MAwRX6xE,CAAU7E,GACVE,GAAWF,GAxMf,SAA4BA,GAIxBtiB,EAAYltD,SAAQ,SAAUoxB,GAE1Bo+C,EAAIp+C,GAAQ,SAAUygC,EAAIyiB,GACtB,OAAKA,GAQY,cAATljD,GAAwBk5B,EAAcgqB,KAEtCA,EAAWr2E,KAAOq2E,EAAWr2E,MAAQ4zD,EACrCyiB,EAAa9xE,KAAK65B,QAAQ2uC,MAAMhpE,OAAOsyE,IAE9B,cAATljD,GAAwBrxB,EAAWu0E,KACnCA,EAAa,CAAEp1E,KAAMo1E,EAAY9yD,OAAQ8yD,IAE7C9xE,KAAK65B,QAAQjL,EAAO,KAAKygC,GAAMyiB,EACxBA,GAhBA9xE,KAAK65B,QAAQjL,EAAO,KAAKygC,OAiM5C0iB,CAAmB/E,GAGvBgF,CAAchF,IACdpxE,OAAOC,eAAemxE,GAAIlwE,UAAW,YAAa,CAC9Cf,IAAK4wD,KAET/wD,OAAOC,eAAemxE,GAAIlwE,UAAW,cAAe,CAChDf,IAAK,WAED,OAAOiE,KAAKk0D,QAAUl0D,KAAKk0D,OAAO+d,cAI1Cr2E,OAAOC,eAAemxE,GAAK,0BAA2B,CAClD7wE,MAAOupE,KAEXsH,GAAI5mE,QAlhEU,SAshEd,IAAIklD,GAAiB/C,EAAQ,eAEzB2pB,GAAc3pB,EAAQ,yCACtBmD,GAAc,SAAUkC,EAAKh/B,EAAMlb,GACnC,MAAkB,UAATA,GAAoBw+D,GAAYtkB,IAAiB,WAATh/B,GACnC,aAATlb,GAA+B,WAARk6C,GACd,YAATl6C,GAA8B,UAARk6C,GACb,UAATl6C,GAA4B,UAARk6C,GAEzBukB,GAAmB5pB,EAAQ,wCAC3B6pB,GAA8B7pB,EAAQ,sCAStC8pB,GAAgB9pB,EAAQ,8XAMxB+pB,GAAU,+BACVC,GAAU,SAAU92E,GACpB,MAA0B,MAAnBA,EAAK2G,OAAO,IAAmC,UAArB3G,EAAKyG,MAAM,EAAG,IAE/CswE,GAAe,SAAU/2E,GACzB,OAAO82E,GAAQ92E,GAAQA,EAAKyG,MAAM,EAAGzG,EAAKkC,QAAU,IAEpD80E,GAAmB,SAAUr1E,GAC7B,OAAc,MAAPA,IAAuB,IAARA,GAG1B,SAASs1E,GAAiB5jB,GAItB,IAHA,IAAItmD,EAAOsmD,EAAMtmD,KACbvC,EAAa6oD,EACb6jB,EAAY7jB,EACTpH,EAAMirB,EAAUxkB,qBACnBwkB,EAAYA,EAAUxkB,kBAAkByZ,SACvB+K,EAAUnqE,OACvBA,EAAOoqE,GAAeD,EAAUnqE,KAAMA,IAI9C,KAAOk/C,EAAOzhD,EAAaA,EAAWiT,SAC9BjT,GAAcA,EAAWuC,OACzBA,EAAOoqE,GAAepqE,EAAMvC,EAAWuC,OAG/C,OAQJ,SAAqBqqE,EAAaC,GAC9B,GAAIprB,EAAMmrB,IAAgBnrB,EAAMorB,GAC5B,OAAOhpE,GAAO+oE,EAAaE,GAAeD,IAG9C,MAAO,GAbAE,CAAYxqE,EAAKqqE,YAAarqE,EAAKisD,OAE9C,SAASme,GAAe76D,EAAOmB,GAC3B,MAAO,CACH25D,YAAa/oE,GAAOiO,EAAM86D,YAAa35D,EAAO25D,aAC9Cpe,MAAO/M,EAAM3vC,EAAM08C,OAAS,CAAC18C,EAAM08C,MAAOv7C,EAAOu7C,OAASv7C,EAAOu7C,OAUzE,SAAS3qD,GAAOrK,EAAGC,GACf,OAAOD,EAAKC,EAAID,EAAI,IAAMC,EAAID,EAAKC,GAAK,GAE5C,SAASqzE,GAAe52E,GACpB,OAAIgL,MAAMhK,QAAQhB,GAYtB,SAAwBA,GAGpB,IAFA,IACI82E,EADAppB,EAAM,GAED3uD,EAAI,EAAGC,EAAIgB,EAAMwB,OAAQzC,EAAIC,EAAGD,IACjCwsD,EAAOurB,EAAcF,GAAe52E,EAAMjB,MAAyB,KAAhB+3E,IAC/CppB,IACAA,GAAO,KACXA,GAAOopB,GAGf,OAAOppB,EArBIqpB,CAAe/2E,GAEtBmB,EAASnB,GAqBjB,SAAyBA,GACrB,IAAI0tD,EAAM,GACV,IAAK,IAAIptD,KAAON,EACRA,EAAMM,KACFotD,IACAA,GAAO,KACXA,GAAOptD,GAGf,OAAOotD,EA7BIspB,CAAgBh3E,GAEN,iBAAVA,EACAA,EAGJ,GA0BX,IAAIi3E,GAAe,CACfC,IAAK,6BACLC,KAAM,sCAENC,GAAYhrB,EAAQ,snBAapBirB,GAAQjrB,EAAQ,kNAEoD,GAEpE8C,GAAgB,SAAUuC,GAC1B,OAAO2lB,GAAU3lB,IAAQ4lB,GAAM5lB,IAEnC,SAASpC,GAAgBoC,GACrB,OAAI4lB,GAAM5lB,GACC,MAIC,SAARA,EACO,YADX,EAIJ,IAAI6lB,GAAsB73E,OAAOY,OAAO,MAyBxC,IAAIk3E,GAAkBnrB,EAAQ,6CAK9B,SAASxtC,GAAM/G,GACX,GAAkB,iBAAPA,EAAiB,CACxB,IAAI2/D,EAAWz0E,SAAS8E,cAAcgQ,GACtC,OAAK2/D,GAEMz0E,SAASmR,cAAc,OAKlC,OAAO2D,EAmDf,IAAI4/D,GAAuBh4E,OAAO4rD,OAAO,CACvCvtB,UAAW,KACX5pB,cAjDF,SAAuBwjE,EAAS/kB,GAC5B,IAAIjB,EAAM3uD,SAASmR,cAAcwjE,GACjC,MAAgB,WAAZA,GAIA/kB,EAAMtmD,MACNsmD,EAAMtmD,KAAKmL,YACmB5F,IAA9B+gD,EAAMtmD,KAAKmL,MAAMmgE,UACjBjmB,EAAIp9C,aAAa,WAAY,YANtBo9C,GA+Cbl9C,gBArCF,SAAyBojE,EAAWF,GAChC,OAAO30E,SAASyR,gBAAgByiE,GAAaW,GAAYF,IAqC3DxT,eAnCF,SAAwB7oD,GACpB,OAAOtY,SAASmhE,eAAe7oD,IAmCjCw8D,cAjCF,SAAuBx8D,GACnB,OAAOtY,SAAS80E,cAAcx8D,IAiChCiB,aA/BF,SAAsBxS,EAAYguE,EAASh7B,GACvChzC,EAAWwS,aAAaw7D,EAASh7B,IA+BnCz/B,YA7BF,SAAqBmgC,EAAM5hC,GACvB4hC,EAAKngC,YAAYzB,IA6BnBQ,YA3BF,SAAqBohC,EAAM5hC,GACvB4hC,EAAKphC,YAAYR,IA2BnB9R,WAzBF,SAAoB0zC,GAChB,OAAOA,EAAK1zC,YAyBdiuE,YAvBF,SAAqBv6B,GACjB,OAAOA,EAAKu6B,aAuBdL,QArBF,SAAiBl6B,GACb,OAAOA,EAAKk6B,SAqBdM,eAnBF,SAAwBx6B,EAAMniC,GAC1BmiC,EAAKliC,YAAcD,GAmBrB48D,cAjBF,SAAuBz6B,EAAM06B,GACzB16B,EAAKlpC,aAAa4jE,EAAS,OAmB3Bz8C,GAAM,CACNp7B,OAAQ,SAAUyH,EAAG6qD,GACjBwlB,GAAYxlB,IAEhB9vC,OAAQ,SAAUmoD,EAAUrY,GACpBqY,EAAS3+D,KAAKovB,MAAQk3B,EAAMtmD,KAAKovB,MACjC08C,GAAYnN,GAAU,GACtBmN,GAAYxlB,KAGpBr0B,QAAS,SAAUq0B,GACfwlB,GAAYxlB,GAAO,KAG3B,SAASwlB,GAAYxlB,EAAOylB,GACxB,IAAI38C,EAAMk3B,EAAMtmD,KAAKovB,IACrB,GAAK8vB,EAAM9vB,GAAX,CAEA,IAAI61B,EAAKqB,EAAMz8C,QACXmiE,EAAW1lB,EAAMX,mBAAqBW,EAAMjB,IAC5C1xD,EAAQo4E,EAAY,KAAOC,EAC3BC,EAAaF,OAAYxmE,EAAYymE,EACzC,GAAIj3E,EAAWq6B,GACX66B,GAAwB76B,EAAK61B,EAAI,CAACtxD,GAAQsxD,EAAI,6BADlD,CAIA,IAAIinB,EAAQ5lB,EAAMtmD,KAAKmsE,SACnBC,EAA2B,iBAARh9C,GAAmC,iBAARA,EAC9Ci9C,EAASvjB,GAAM15B,GACfk9C,EAAOrnB,EAAG8gB,MACd,GAAIqG,GAAaC,EACb,GAAIH,EAAO,CACP,IAAIrd,EAAWud,EAAYE,EAAKl9C,GAAOA,EAAIz7B,MACvCo4E,EACAp3E,EAAQk6D,IAAazO,EAASyO,EAAUmd,GAGnCr3E,EAAQk6D,GASHA,EAASpmB,SAASujC,IACxBnd,EAASzvD,KAAK4sE,GATVI,GACAE,EAAKl9C,GAAO,CAAC48C,GACbO,GAAYtnB,EAAI71B,EAAKk9C,EAAKl9C,KAG1BA,EAAIz7B,MAAQ,CAACq4E,QAQxB,GAAII,EAAW,CAChB,GAAIL,GAAaO,EAAKl9C,KAAS48C,EAC3B,OAEJM,EAAKl9C,GAAO68C,EACZM,GAAYtnB,EAAI71B,EAAKz7B,QAEpB,GAAI04E,EAAQ,CACb,GAAIN,GAAa38C,EAAIz7B,QAAUq4E,EAC3B,OAEJ58C,EAAIz7B,MAAQA,OAEP,IAKjB,SAAS44E,GAAYzE,EAAI7zE,EAAKW,GAC1B,IAAI+lE,EAAcmN,EAAGnN,YACjBA,GAAera,EAAOqa,EAAa1mE,KAC/B60D,GAAM6R,EAAY1mE,IAClB0mE,EAAY1mE,GAAKN,MAAQiB,EAGzB+lE,EAAY1mE,GAAOW,GAgB/B,IAAI43E,GAAY,IAAIrnB,GAAM,GAAI,GAAI,IAC9B2R,GAAQ,CAAC,SAAU,WAAY,SAAU,SAAU,WACvD,SAAS2V,GAAUx1E,EAAGC,GAClB,OAAQD,EAAEhD,MAAQiD,EAAEjD,KAChBgD,EAAEsuD,eAAiBruD,EAAEquD,eACnBtuD,EAAEmuD,MAAQluD,EAAEkuD,KACVnuD,EAAE6uD,YAAc5uD,EAAE4uD,WAClB5G,EAAMjoD,EAAE+I,QAAUk/C,EAAMhoD,EAAE8I,OAItC,SAAuB/I,EAAGC,GACtB,GAAc,UAAVD,EAAEmuD,IACF,OAAO,EACX,IAAI1yD,EACAg6E,EAAQxtB,EAAOxsD,EAAIuE,EAAE+I,OAAUk/C,EAAOxsD,EAAIA,EAAEyY,QAAWzY,EAAE0zB,KACzDumD,EAAQztB,EAAOxsD,EAAIwE,EAAE8I,OAAUk/C,EAAOxsD,EAAIA,EAAEyY,QAAWzY,EAAE0zB,KAC7D,OAAOsmD,IAAUC,GAAUzB,GAAgBwB,IAAUxB,GAAgByB,GAT7DC,CAAc31E,EAAGC,IAChBioD,EAAOloD,EAAEivD,qBAAuBjH,EAAQ/nD,EAAEquD,aAAaj/C,QAUpE,SAASumE,GAAkB/kE,EAAUglE,EAAUC,GAC3C,IAAIr6E,EAAGuB,EACH6d,EAAM,GACV,IAAKpf,EAAIo6E,EAAUp6E,GAAKq6E,IAAUr6E,EAE1BwsD,EADJjrD,EAAM6T,EAASpV,GAAGuB,OAEd6d,EAAI7d,GAAOvB,GAEnB,OAAOof,EAurBX,IAAIk7D,GAAe,CACfh5E,OAAQi5E,GACRz2D,OAAQy2D,GACRh7C,QAAS,SAA0Bq0B,GAE/B2mB,GAAiB3mB,EAAOkmB,MAGhC,SAASS,GAAiBtO,EAAUrY,IAC5BqY,EAAS3+D,KAAKqjE,YAAc/c,EAAMtmD,KAAKqjE,aAI/C,SAAiB1E,EAAUrY,GACvB,IAMIryD,EAAKi5E,EAAQhqE,EANbiqE,EAAWxO,IAAa6N,GACxBY,EAAY9mB,IAAUkmB,GACtBa,EAAUC,GAAoB3O,EAAS3+D,KAAKqjE,WAAY1E,EAAS90D,SACjE0jE,EAAUD,GAAoBhnB,EAAMtmD,KAAKqjE,WAAY/c,EAAMz8C,SAC3D2jE,EAAiB,GACjBC,EAAoB,GAExB,IAAKx5E,KAAOs5E,EACRL,EAASG,EAAQp5E,GACjBiP,EAAMqqE,EAAQt5E,GACTi5E,GASDhqE,EAAI0mD,SAAWsjB,EAAOv5E,MACtBuP,EAAIwqE,OAASR,EAAOS,IACpBC,GAAS1qE,EAAK,SAAUojD,EAAOqY,GAC3Bz7D,EAAIsgD,KAAOtgD,EAAIsgD,IAAIqqB,kBACnBJ,EAAkBruE,KAAK8D,KAX3B0qE,GAAS1qE,EAAK,OAAQojD,EAAOqY,GACzBz7D,EAAIsgD,KAAOtgD,EAAIsgD,IAAIoE,UACnB4lB,EAAepuE,KAAK8D,IAahC,GAAIsqE,EAAer4E,OAAQ,CACvB,IAAI24E,EAAa,WACb,IAAK,IAAIp7E,EAAI,EAAGA,EAAI86E,EAAer4E,OAAQzC,IACvCk7E,GAASJ,EAAe96E,GAAI,WAAY4zD,EAAOqY,IAGnDwO,EACA7iB,GAAehE,EAAO,SAAUwnB,GAGhCA,IAGJL,EAAkBt4E,QAClBm1D,GAAehE,EAAO,aAAa,WAC/B,IAAK,IAAI5zD,EAAI,EAAGA,EAAI+6E,EAAkBt4E,OAAQzC,IAC1Ck7E,GAASH,EAAkB/6E,GAAI,mBAAoB4zD,EAAOqY,MAItE,IAAKwO,EACD,IAAKl5E,KAAOo5E,EACHE,EAAQt5E,IAET25E,GAASP,EAAQp5E,GAAM,SAAU0qE,EAAUA,EAAUyO,GAvD7D/F,CAAQ1I,EAAUrY,GA4D1B,IAAIynB,GAAiB36E,OAAOY,OAAO,MACnC,SAASs5E,GAAoBlK,EAAMne,GAC/B,IAKIvyD,EAAGwQ,EALHm+C,EAAMjuD,OAAOY,OAAO,MACxB,IAAKovE,EAED,OAAO/hB,EAGX,IAAK3uD,EAAI,EAAGA,EAAI0wE,EAAKjuE,OAAQzC,IAAK,CAO9B,IANAwQ,EAAMkgE,EAAK1wE,IACFqkD,YAEL7zC,EAAI6zC,UAAYg3B,IAEpB1sB,EAAI2sB,GAAc9qE,IAAQA,EACtB+hD,EAAG0V,aAAe1V,EAAG0V,YAAYC,MAAO,CACxC,IAAIqT,EAAW/qE,EAAIsgD,KAAOoI,GAAa3G,EAAI,cAAe,KAAO/hD,EAAIjQ,MAEjEiQ,EAAIsgD,IADgB,mBAAbyqB,EACG,CACN/5E,KAAM+5E,EACNz3D,OAAQy3D,GAIFA,EAGlB/qE,EAAIsgD,IAAMtgD,EAAIsgD,KAAOoI,GAAa3G,EAAG4G,SAAU,aAAc3oD,EAAIjQ,MAGrE,OAAOouD,EAEX,SAAS2sB,GAAc9qE,GACnB,OAAQA,EAAIgrE,SAAW,GAAG5sE,OAAO4B,EAAIjQ,KAAM,KAAKqO,OAAOlO,OAAO2T,KAAK7D,EAAI6zC,WAAa,IAAIp9C,KAAK,MAEjG,SAASi0E,GAAS1qE,EAAKsnD,EAAMlE,EAAOqY,EAAUyO,GAC1C,IAAIl4E,EAAKgO,EAAIsgD,KAAOtgD,EAAIsgD,IAAIgH,GAC5B,GAAIt1D,EACA,IACIA,EAAGoxD,EAAMjB,IAAKniD,EAAKojD,EAAOqY,EAAUyO,GAExC,MAAO11E,GACHk/D,GAAYl/D,EAAG4uD,EAAMz8C,QAAS,aAAavI,OAAO4B,EAAIjQ,KAAM,KAAKqO,OAAOkpD,EAAM,WAK1F,IAAI2jB,GAAc,CAAC/+C,GAAK49C,IAExB,SAASoB,GAAYzP,EAAUrY,GAC3B,IAAI3yC,EAAO2yC,EAAMhB,iBACjB,KAAIpG,EAAMvrC,KAA4C,IAAnCA,EAAK4wC,KAAKlzB,QAAQg9C,cAGjCpvB,EAAQ0f,EAAS3+D,KAAKmL,QAAU8zC,EAAQqH,EAAMtmD,KAAKmL,QAAvD,CAGA,IAAIlX,EAAKijD,EACLmO,EAAMiB,EAAMjB,IACZipB,EAAW3P,EAAS3+D,KAAKmL,OAAS,GAClCA,EAAQm7C,EAAMtmD,KAAKmL,OAAS,GAKhC,IAAKlX,KAHDirD,EAAM/zC,EAAM28C,SAAW3I,EAAOh0C,EAAMojE,kBACpCpjE,EAAQm7C,EAAMtmD,KAAKmL,MAAQnU,EAAO,GAAImU,IAE9BA,EACR+rC,EAAM/rC,EAAMlX,GACNq6E,EAASr6E,KACHijD,GACRs3B,GAAQnpB,EAAKpxD,EAAKijD,EAAKoP,EAAMtmD,KAAK2rD,KAS1C,IAAK13D,KAHA68C,GAAQpe,KAAWvnB,EAAMxX,QAAU26E,EAAS36E,OAC7C66E,GAAQnpB,EAAK,QAASl6C,EAAMxX,OAEpB26E,EACJrvB,EAAQ9zC,EAAMlX,MACV81E,GAAQ91E,GACRoxD,EAAIopB,kBAAkB3E,GAASE,GAAa/1E,IAEtC01E,GAAiB11E,IACvBoxD,EAAI95C,gBAAgBtX,KAKpC,SAASu6E,GAAQhjE,EAAIvX,EAAKN,EAAO+6E,GACzBA,GAAWljE,EAAG6/D,QAAQ/rE,QAAQ,MAAQ,EACtCqvE,GAAYnjE,EAAIvX,EAAKN,GAEhBk2E,GAAc51E,GAGfg2E,GAAiBt2E,GACjB6X,EAAGD,gBAAgBtX,IAKnBN,EAAgB,oBAARM,GAA4C,UAAfuX,EAAG6/D,QAAsB,OAASp3E,EACvEuX,EAAGvD,aAAahU,EAAKN,IAGpBg2E,GAAiB11E,GACtBuX,EAAGvD,aAAahU,EA5sCK,SAAUA,EAAKN,GACxC,OAAOs2E,GAAiBt2E,IAAoB,UAAVA,EAC5B,QAEU,oBAARM,GAA6B21E,GAA4Bj2E,GACnDA,EACA,OAssCWi7E,CAAuB36E,EAAKN,IAE5Co2E,GAAQ91E,GACTg2E,GAAiBt2E,GACjB6X,EAAGijE,kBAAkB3E,GAASE,GAAa/1E,IAG3CuX,EAAGqjE,eAAe/E,GAAS71E,EAAKN,GAIpCg7E,GAAYnjE,EAAIvX,EAAKN,GAG7B,SAASg7E,GAAYnjE,EAAIvX,EAAKN,GAC1B,GAAIs2E,GAAiBt2E,GACjB6X,EAAGD,gBAAgBtX,OAElB,CAKD,GAAI68C,IACC+S,IACc,aAAfr4C,EAAG6/D,SACK,gBAARp3E,GACU,KAAVN,IACC6X,EAAGsjE,OAAQ,CACZ,IAAIC,EAAY,SAAUr3E,GACtBA,EAAEk1B,2BACFphB,EAAGlE,oBAAoB,QAASynE,IAEpCvjE,EAAG9F,iBAAiB,QAASqpE,GAE7BvjE,EAAGsjE,QAAS,EAEhBtjE,EAAGvD,aAAahU,EAAKN,IAG7B,IAAIwX,GAAQ,CACRnX,OAAQo6E,GACR53D,OAAQ43D,IAGZ,SAASY,GAAYrQ,EAAUrY,GAC3B,IAAI96C,EAAK86C,EAAMjB,IACXrlD,EAAOsmD,EAAMtmD,KACbivE,EAAUtQ,EAAS3+D,KACvB,KAAIi/C,EAAQj/C,EAAKqqE,cACbprB,EAAQj/C,EAAKisD,SACZhN,EAAQgwB,IACJhwB,EAAQgwB,EAAQ5E,cAAgBprB,EAAQgwB,EAAQhjB,SAHzD,CAMA,IAAIijB,EAAMhF,GAAiB5jB,GAEvB6oB,EAAkB3jE,EAAG4jE,mBACrBlwB,EAAMiwB,KACND,EAAM5tE,GAAO4tE,EAAK3E,GAAe4E,KAGjCD,IAAQ1jE,EAAG6jE,aACX7jE,EAAGvD,aAAa,QAASinE,GACzB1jE,EAAG6jE,WAAaH,IAGxB,IAqVI1tE,GAAKnK,GAAKi4E,GAAKhgE,GAAOigE,GAAeC,GArVrCC,GAAU,CACVz7E,OAAQg7E,GACRx4D,OAAQw4D,IAGRU,GAAsB,gBAC1B,SAASC,GAAaC,GAClB,IAQI78E,EAAGud,EAAM5d,EAAG8mE,EAAYqW,EARxBC,GAAW,EACXC,GAAW,EACXC,GAAmB,EACnBC,GAAU,EACVC,EAAQ,EACRC,EAAS,EACTC,EAAQ,EACRC,EAAkB,EAEtB,IAAK39E,EAAI,EAAGA,EAAIk9E,EAAIz6E,OAAQzC,IAGxB,GAFA4d,EAAOvd,EACPA,EAAI68E,EAAIrsB,WAAW7wD,GACfo9E,EACU,KAAN/8E,GAAuB,KAATud,IACdw/D,GAAW,QAEd,GAAIC,EACK,KAANh9E,GAAuB,KAATud,IACdy/D,GAAW,QAEd,GAAIC,EACK,KAANj9E,GAAuB,KAATud,IACd0/D,GAAmB,QAEtB,GAAIC,EACK,KAANl9E,GAAuB,KAATud,IACd2/D,GAAU,QAEb,GAAU,MAANl9E,GACqB,MAA1B68E,EAAIrsB,WAAW7wD,EAAI,IACO,MAA1Bk9E,EAAIrsB,WAAW7wD,EAAI,IAClBw9E,GACAC,GACAC,EAUA,CACD,OAAQr9E,GACJ,KAAK,GACDg9E,GAAW,EACX,MACJ,KAAK,GACDD,GAAW,EACX,MACJ,KAAK,GACDE,GAAmB,EACnB,MACJ,KAAK,GACDI,IACA,MACJ,KAAK,GACDA,IACA,MACJ,KAAK,GACDD,IACA,MACJ,KAAK,GACDA,IACA,MACJ,KAAK,IACDD,IACA,MACJ,KAAK,IACDA,IAGR,GAAU,KAANn9E,EAAY,CAOZ,IALA,IAAI2X,EAAIhY,EAAI,EACR8B,OAEF,EAEKkW,GAAK,GAEE,OADVlW,EAAIo7E,EAAIh2E,OAAO8Q,IADJA,KAKVlW,GAAMk7E,GAAoB72E,KAAKrE,KAChCy7E,GAAU,cApDC1qE,IAAfi0D,GAEA6W,EAAkB39E,EAAI,EACtB8mE,EAAaoW,EAAIl2E,MAAM,EAAGhH,GAAG0E,QAG7Bk5E,IAyDZ,SAASA,KACJT,IAAYA,EAAU,KAAKzwE,KAAKwwE,EAAIl2E,MAAM22E,EAAiB39E,GAAG0E,QAC/Di5E,EAAkB39E,EAAI,EAE1B,QAVmB6S,IAAfi0D,EACAA,EAAaoW,EAAIl2E,MAAM,EAAGhH,GAAG0E,OAEJ,IAApBi5E,GACLC,IAMAT,EACA,IAAKn9E,EAAI,EAAGA,EAAIm9E,EAAQ16E,OAAQzC,IAC5B8mE,EAAa+W,GAAW/W,EAAYqW,EAAQn9E,IAGpD,OAAO8mE,EAEX,SAAS+W,GAAWX,EAAK5oE,GACrB,IAAItU,EAAIsU,EAAO1H,QAAQ,KACvB,GAAI5M,EAAI,EAEJ,MAAO,OAAQ4O,OAAO0F,EAAQ,OAAQ1F,OAAOsuE,EAAK,KAGlD,IAAI/e,EAAS7pD,EAAOtN,MAAM,EAAGhH,GACzBgM,EAAOsI,EAAOtN,MAAMhH,EAAI,GAC5B,MAAO,OAAQ4O,OAAOuvD,EAAQ,OAAQvvD,OAAOsuE,GAAKtuE,OAAgB,MAAT5C,EAAe,IAAMA,EAAOA,GAK7F,SAAS8xE,GAASC,EAAK/+B,GACnByF,QAAQ7wC,MAAM,mBAAmBhF,OAAOmvE,IAG5C,SAASC,GAAoB99E,EAASqB,GAClC,OAAOrB,EAAUA,EAAQkf,KAAI,SAAUhf,GAAK,OAAOA,EAAEmB,MAAS+S,QAAO,SAAUvL,GAAK,OAAOA,KAAQ,GAEvG,SAASk1E,GAAQnlE,EAAIvY,EAAMU,EAAO+9C,EAAOk/B,IACpCplE,EAAGsD,QAAUtD,EAAGsD,MAAQ,KAAK1P,KAAKyxE,GAAa,CAAE59E,KAAMA,EAAMU,MAAOA,EAAOi9E,QAASA,GAAWl/B,IAChGlmC,EAAGslE,OAAQ,EAEf,SAASC,GAAQvlE,EAAIvY,EAAMU,EAAO+9C,EAAOk/B,IACzBA,EACNplE,EAAGwlE,eAAiBxlE,EAAGwlE,aAAe,IACtCxlE,EAAGL,QAAUK,EAAGL,MAAQ,KACxB/L,KAAKyxE,GAAa,CAAE59E,KAAMA,EAAMU,MAAOA,EAAOi9E,QAASA,GAAWl/B,IACxElmC,EAAGslE,OAAQ,EAGf,SAASG,GAAWzlE,EAAIvY,EAAMU,EAAO+9C,GACjClmC,EAAG0lE,SAASj+E,GAAQU,EACpB6X,EAAG2lE,UAAU/xE,KAAKyxE,GAAa,CAAE59E,KAAMA,EAAMU,MAAOA,GAAS+9C,IAEjE,SAAS0/B,GAAa5lE,EAAIvY,EAAMi7E,EAASv6E,EAAOg6E,EAAK0D,EAAct6B,EAAWrF,IACzElmC,EAAG63D,aAAe73D,EAAG63D,WAAa,KAAKjkE,KAAKyxE,GAAa,CACtD59E,KAAMA,EACNi7E,QAASA,EACTv6E,MAAOA,EACPg6E,IAAKA,EACL0D,aAAcA,EACdt6B,UAAWA,GACZrF,IACHlmC,EAAGslE,OAAQ,EAEf,SAASQ,GAAsB7hB,EAAQx8D,EAAM29E,GACzC,OAAOA,EAAU,MAAMtvE,OAAOrO,EAAM,MAAOqO,OAAOmuD,EAAQ,MAASA,EAASx8D,EAEhF,SAASs+E,GAAW/lE,EAAIvY,EAAMU,EAAOojD,EAAWy6B,EAAWp6B,EAAM1F,EAAOk/B,GA0CpE,IAAIhkE,GAzCJmqC,EAAYA,GAAagI,GAUXtM,MACNm+B,EACA39E,EAAO,IAAIqO,OAAOrO,EAAM,+BAA+BqO,OAAOrO,EAAM,KAEtD,UAATA,IACLA,EAAO,qBACA8jD,EAAUtE,OAGhBsE,EAAU06B,SACXb,EACA39E,EAAO,IAAIqO,OAAOrO,EAAM,2BAA2BqO,OAAOrO,EAAM,KAElD,UAATA,IACLA,EAAO,YAIX8jD,EAAU3qC,iBACH2qC,EAAU3qC,QACjBnZ,EAAOq+E,GAAsB,IAAKr+E,EAAM29E,IAExC75B,EAAUx0C,cACHw0C,EAAUx0C,KACjBtP,EAAOq+E,GAAsB,IAAKr+E,EAAM29E,IAGxC75B,EAAU/oB,iBACH+oB,EAAU/oB,QACjB/6B,EAAOq+E,GAAsB,IAAKr+E,EAAM29E,IAGxC75B,EAAU26B,eACH36B,EAAU26B,OACjB9kE,EAASpB,EAAGmmE,eAAiBnmE,EAAGmmE,aAAe,KAG/C/kE,EAASpB,EAAGoB,SAAWpB,EAAGoB,OAAS,IAEvC,IAAIglE,EAAaf,GAAa,CAAEl9E,MAAOA,EAAMyD,OAAQw5E,QAASA,GAAWl/B,GACrEqF,IAAcgI,IACd6yB,EAAW76B,UAAYA,GAE3B,IAAI9pC,EAAWL,EAAO3Z,GAElB0L,MAAMhK,QAAQsY,GACdukE,EAAYvkE,EAAST,QAAQolE,GAAc3kE,EAAS7N,KAAKwyE,GAGzDhlE,EAAO3Z,GADFga,EACUukE,EAAY,CAACI,EAAY3kE,GAAY,CAACA,EAAU2kE,GAGhDA,EAEnBpmE,EAAGslE,OAAQ,EAOf,SAASe,GAAermE,EAAIvY,EAAM6+E,GAC9B,IAAIC,EAAeC,GAAiBxmE,EAAI,IAAMvY,IAAS++E,GAAiBxmE,EAAI,UAAYvY,GACxF,GAAoB,MAAhB8+E,EACA,OAAOpC,GAAaoC,GAEnB,IAAkB,IAAdD,EAAqB,CAC1B,IAAIG,EAAcD,GAAiBxmE,EAAIvY,GACvC,GAAmB,MAAfg/E,EACA,OAAOt5E,KAAKC,UAAUq5E,IAQlC,SAASD,GAAiBxmE,EAAIvY,EAAMi/E,GAChC,IAAIt9E,EACJ,GAAiC,OAA5BA,EAAM4W,EAAG0lE,SAASj+E,IAEnB,IADA,IAAIgtD,EAAOz0C,EAAG2lE,UACLz+E,EAAI,EAAGC,EAAIstD,EAAK9qD,OAAQzC,EAAIC,EAAGD,IACpC,GAAIutD,EAAKvtD,GAAGO,OAASA,EAAM,CACvBgtD,EAAK9yC,OAAOza,EAAG,GACf,MAOZ,OAHIw/E,UACO1mE,EAAG0lE,SAASj+E,GAEhB2B,EAEX,SAASu9E,GAAwB3mE,EAAIvY,GAEjC,IADA,IAAIgtD,EAAOz0C,EAAG2lE,UACLz+E,EAAI,EAAGC,EAAIstD,EAAK9qD,OAAQzC,EAAIC,EAAGD,IAAK,CACzC,IAAIwY,EAAO+0C,EAAKvtD,GAChB,GAAIO,EAAK4F,KAAKqS,EAAKjY,MAEf,OADAgtD,EAAK9yC,OAAOza,EAAG,GACRwY,GAInB,SAAS2lE,GAAaxwB,EAAM3O,GASxB,OARIA,IACmB,MAAfA,EAAM7jB,QACNwyB,EAAKxyB,MAAQ6jB,EAAM7jB,OAEN,MAAb6jB,EAAM3jB,MACNsyB,EAAKtyB,IAAM2jB,EAAM3jB,MAGlBsyB,EAMX,SAAS+xB,GAAkB5mE,EAAI7X,EAAOojD,GAClC,IAAI+wB,EAAK/wB,GAAa,GAAI/I,EAAS85B,EAAG95B,OAElCqkC,EADsB,MAD2BvK,EAAG1wE,OAIpDi7E,EACI,WAAW/wE,OAJO,MAIqB,iBACnC,KAAKA,OALS,MAKmB,WACjC,KAAKA,OANS,MAMmB,MAEzC0sC,IACAqkC,EAAkB,MAAM/wE,OAAO+wE,EAAiB,MAEpD,IAAIC,EAAaC,GAAkB5+E,EAAO0+E,GAC1C7mE,EAAG41D,MAAQ,CACPztE,MAAO,IAAI2N,OAAO3N,EAAO,KACzB6lE,WAAY7gE,KAAKC,UAAUjF,GAC3Bga,SAAU,aAAarM,OAfD,MAe6B,OAAOA,OAAOgxE,EAAY,MAMrF,SAASC,GAAkB5+E,EAAO2+E,GAC9B,IAAIjxB,EAuBR,SAAoBzsD,GAKhB,GAFAA,EAAMA,EAAIwC,OACVoK,GAAM5M,EAAIO,OACNP,EAAI0K,QAAQ,KAAO,GAAK1K,EAAI49E,YAAY,KAAOhxE,GAAM,EAErD,OADA8N,GAAQ1a,EAAI49E,YAAY,OACX,EACF,CACH5C,IAAKh7E,EAAI8E,MAAM,EAAG4V,IAClBrb,IAAK,IAAMW,EAAI8E,MAAM4V,GAAQ,GAAK,KAI/B,CACHsgE,IAAKh7E,EACLX,IAAK,MAIjBoD,GAAMzC,EACN0a,GAAQigE,GAAgBC,GAAmB,EAC3C,MAAQiD,MAGAC,GAFJpD,GAAMp/D,MAGFyiE,GAAYrD,IAEC,KAARA,IACLsD,GAAatD,IAGrB,MAAO,CACHM,IAAKh7E,EAAI8E,MAAM,EAAG61E,IAClBt7E,IAAKW,EAAI8E,MAAM61E,GAAgB,EAAGC,KAzD5BqD,CAAWl/E,GACrB,OAAgB,OAAZ0tD,EAAIptD,IACG,GAAGqN,OAAO3N,EAAO,KAAK2N,OAAOgxE,GAG7B,QAAQhxE,OAAO+/C,EAAIuuB,IAAK,MAAMtuE,OAAO+/C,EAAIptD,IAAK,MAAMqN,OAAOgxE,EAAY,KAuDtF,SAASpiE,KACL,OAAO7Y,GAAIksD,aAAaj0C,IAE5B,SAASmjE,KACL,OAAOnjE,IAAS9N,GAEpB,SAASkxE,GAAcpD,GACnB,OAAe,KAARA,GAAwB,KAARA,EAE3B,SAASsD,GAAatD,GAClB,IAAIwD,EAAY,EAEhB,IADAvD,GAAgBjgE,IACRmjE,MAEJ,GAAIC,GADJpD,EAAMp/D,MAEFyiE,GAAYrD,QAOhB,GAJY,KAARA,GACAwD,IACQ,KAARxD,GACAwD,IACc,IAAdA,EAAiB,CACjBtD,GAAmBlgE,GACnB,OAIZ,SAASqjE,GAAYrD,GAEjB,IADA,IAAIyD,EAAczD,GACVmD,OACJnD,EAAMp/D,QACM6iE,KASpB,IA2II30E,GACJ,SAASgsD,GAAkBrsD,EAAOQ,EAAS6N,GACvC,IAAImnD,EAAUn1D,GACd,OAAO,SAASiW,IACZ,IAAIgtC,EAAM9iD,EAAQC,MAAM,KAAM1H,WAClB,OAARuqD,GACArnD,GAAO+D,EAAOsW,EAAajI,EAASmnD,IAOhD,IAAIyf,GAAkB5b,MAAsBpT,IAAQskB,OAAOtkB,GAAK,KAAO,IACvE,SAASp5C,GAAI3X,EAAMsL,EAAS6N,EAAS4hB,GAOjC,GAAIglD,GAAiB,CACjB,IAAIC,EAAsB3d,GACtB4d,EAAa30E,EAEjBA,EAAU20E,EAAWC,SAAW,SAAUz7E,GACtC,GAIAA,EAAE0G,SAAW1G,EAAE07E,eAEX17E,EAAE+9D,WAAawd,GAIfv7E,EAAE+9D,WAAa,GAIf/9D,EAAE0G,OAAO2xC,gBAAkBr5C,SAC3B,OAAOw8E,EAAW10E,MAAMhH,KAAMV,YAI1CsH,GAAOsH,iBAAiBzS,EAAMsL,EAASmV,GAAkB,CAAEtH,QAASA,EAAS4hB,QAASA,GAAY5hB,GAEtG,SAASpS,GAAO/G,EAAMsL,EAAS6N,EAASmnD,IACnCA,GAAWn1D,IAAQkJ,oBAAoBrU,EAExCsL,EAAQ40E,UAAY50E,EAAS6N,GAEjC,SAASinE,GAAmB1U,EAAUrY,GAClC,IAAIrH,EAAQ0f,EAAS3+D,KAAKqC,MAAO48C,EAAQqH,EAAMtmD,KAAKqC,IAApD,CAGA,IAAIA,EAAKikD,EAAMtmD,KAAKqC,IAAM,GACtB8nD,EAAQwU,EAAS3+D,KAAKqC,IAAM,GAGhCjE,GAASkoD,EAAMjB,KAAOsZ,EAAStZ,IA5EnC,SAAyBhjD,GAErB,GAAI68C,EAAM78C,EAAc,KAAI,CAExB,IAAIixE,EAAUxiC,EAAO,SAAW,QAChCzuC,EAAGixE,GAAW,GAAGhyE,OAAOe,EAAc,IAAGA,EAAGixE,IAAY,WACjDjxE,EAAc,IAKrB68C,EAAM78C,EAAuB,OAC7BA,EAAGkxE,OAAS,GAAGjyE,OAAOe,EAAuB,IAAGA,EAAGkxE,QAAU,WACtDlxE,EAAuB,KAgElCmxE,CAAgBnxE,GAChB6nD,GAAgB7nD,EAAI8nD,EAAOv/C,GAAK5Q,GAAQowD,GAAmB9D,EAAMz8C,SACjEzL,QAASmH,GAEb,IAOIkuE,GAPA7mE,GAAS,CACT5Y,OAAQq/E,GACR78D,OAAQ68D,GAERphD,QAAS,SAAUq0B,GAAS,OAAO+sB,GAAmB/sB,EAAOkmB,MAIjE,SAASkH,GAAe/U,EAAUrY,GAC9B,IAAIrH,EAAQ0f,EAAS3+D,KAAK8tD,YAAa7O,EAAQqH,EAAMtmD,KAAK8tD,UAA1D,CAGA,IAAI75D,EAAKijD,EACLmO,EAAMiB,EAAMjB,IACZsuB,EAAWhV,EAAS3+D,KAAK8tD,UAAY,GACrCh/C,EAAQw3C,EAAMtmD,KAAK8tD,UAAY,GAKnC,IAAK75D,KAHDirD,EAAMpwC,EAAMg5C,SAAW3I,EAAOrwC,EAAMy/D,kBACpCz/D,EAAQw3C,EAAMtmD,KAAK8tD,SAAW92D,EAAO,GAAI8X,IAEjC6kE,EACF1/E,KAAO6a,IACTu2C,EAAIpxD,GAAO,IAGnB,IAAKA,KAAO6a,EAAO,CAKf,GAJAooC,EAAMpoC,EAAM7a,GAIA,gBAARA,GAAiC,cAARA,EAAqB,CAG9C,GAFIqyD,EAAMx+C,WACNw+C,EAAMx+C,SAAS3S,OAAS,GACxB+hD,IAAQy8B,EAAS1/E,GACjB,SAG0B,IAA1BoxD,EAAIt9C,WAAW5S,QACfkwD,EAAIr0C,YAAYq0C,EAAIt9C,WAAW,IAGvC,GAAY,UAAR9T,GAAmC,aAAhBoxD,EAAIgmB,QAAwB,CAG/ChmB,EAAIuuB,OAAS18B,EAEb,IAAI28B,EAAS50B,EAAQ/H,GAAO,GAAKl+C,OAAOk+C,GACpC48B,GAAkBzuB,EAAKwuB,KACvBxuB,EAAI1xD,MAAQkgF,QAGf,GAAY,cAAR5/E,GACL+2E,GAAM3lB,EAAIgmB,UACVpsB,EAAQoG,EAAIn7C,WAAY,EAExBupE,GAAeA,IAAgB/8E,SAASmR,cAAc,QACzCqC,UAAY,QAAQ5I,OAAO41C,EAAK,UAE7C,IADA,IAAI2zB,EAAM4I,GAAa3jE,WAChBu1C,EAAIv1C,YACPu1C,EAAIr0C,YAAYq0C,EAAIv1C,YAExB,KAAO+6D,EAAI/6D,YACPu1C,EAAIt1C,YAAY86D,EAAI/6D,iBAGvB,GAKLonC,IAAQy8B,EAAS1/E,GAGb,IACIoxD,EAAIpxD,GAAOijD,EAEf,MAAOx/C,OAInB,SAASo8E,GAAkBzuB,EAAK0uB,GAC5B,OAEC1uB,EAAI2uB,YACgB,WAAhB3uB,EAAIgmB,SAIb,SAA8BhmB,EAAK0uB,GAG/B,IAAIE,GAAa,EAGjB,IACIA,EAAav9E,SAAS6Q,gBAAkB89C,EAE5C,MAAO3tD,IACP,OAAOu8E,GAAc5uB,EAAI1xD,QAAUogF,EAb3BG,CAAqB7uB,EAAK0uB,IAetC,SAA8B1uB,EAAK+D,GAC/B,IAAIz1D,EAAQ0xD,EAAI1xD,MACZojD,EAAYsO,EAAI8uB,YACpB,GAAIj1B,EAAMnI,GAAY,CAClB,GAAIA,EAAU/I,OACV,OAAO8R,EAASnsD,KAAWmsD,EAASsJ,GAExC,GAAIrS,EAAU3/C,KACV,OAAOzD,EAAMyD,SAAWgyD,EAAOhyD,OAGvC,OAAOzD,IAAUy1D,EAzBTgrB,CAAqB/uB,EAAK0uB,IA2BtC,IAAIjmB,GAAW,CACX95D,OAAQ0/E,GACRl9D,OAAQk9D,IAGRW,GAAiB9zB,GAAO,SAAU+zB,GAClC,IAAIjzB,EAAM,GAENkzB,EAAoB,QAOxB,OANAD,EAAQl7E,MAFY,iBAESpE,SAAQ,SAAUqrD,GAC3C,GAAIA,EAAM,CACN,IAAIsZ,EAAMtZ,EAAKjnD,MAAMm7E,GACrB5a,EAAIxkE,OAAS,IAAMksD,EAAIsY,EAAI,GAAGviE,QAAUuiE,EAAI,GAAGviE,YAGhDiqD,KAGX,SAASmzB,GAAmBx0E,GACxB,IAAIgI,EAAQysE,GAAsBz0E,EAAKgI,OAGvC,OAAOhI,EAAK00E,YAAc19E,EAAOgJ,EAAK00E,YAAa1sE,GAASA,EAGhE,SAASysE,GAAsBE,GAC3B,OAAIh2E,MAAMhK,QAAQggF,GACPvzB,EAASuzB,GAEQ,iBAAjBA,EACAN,GAAeM,GAEnBA,EAiCX,IA0BIC,GA1BAC,GAAW,MACXC,GAAc,iBACdC,GAAU,SAAUvpE,EAAIvY,EAAM2B,GAE9B,GAAIigF,GAASh8E,KAAK5F,GACduY,EAAGxD,MAAMgtE,YAAY/hF,EAAM2B,QAE1B,GAAIkgF,GAAYj8E,KAAKjE,GACtB4W,EAAGxD,MAAMgtE,YAAYp0B,EAAU3tD,GAAO2B,EAAI0C,QAAQw9E,GAAa,IAAK,iBAEnE,CACD,IAAIG,EAAiBzyD,GAAUvvB,GAC/B,GAAI0L,MAAMhK,QAAQC,GAId,IAAK,IAAIlC,EAAI,EAAG8O,EAAM5M,EAAIO,OAAQzC,EAAI8O,EAAK9O,IACvC8Y,EAAGxD,MAAMitE,GAAkBrgF,EAAIlC,QAInC8Y,EAAGxD,MAAMitE,GAAkBrgF,IAInCsgF,GAAc,CAAC,SAAU,MAAO,MAEhC1yD,GAAY+9B,GAAO,SAAU35C,GAG7B,GAFAguE,GAAaA,IAAcl+E,SAASmR,cAAc,OAAOG,MAE5C,YADbpB,EAAO65C,EAAS75C,KACSA,KAAQguE,GAC7B,OAAOhuE,EAGX,IADA,IAAIuuE,EAAUvuE,EAAKhN,OAAO,GAAGsD,cAAgB0J,EAAKlN,MAAM,GAC/ChH,EAAI,EAAGA,EAAIwiF,GAAY//E,OAAQzC,IAAK,CACzC,IAAIm+D,EAASqkB,GAAYxiF,GAAKyiF,EAC9B,GAAItkB,KAAU+jB,GACV,OAAO/jB,MAInB,SAASukB,GAAYzW,EAAUrY,GAC3B,IAAItmD,EAAOsmD,EAAMtmD,KACbivE,EAAUtQ,EAAS3+D,KACvB,KAAIi/C,EAAQj/C,EAAK00E,cACbz1B,EAAQj/C,EAAKgI,QACbi3C,EAAQgwB,EAAQyF,cAChBz1B,EAAQgwB,EAAQjnE,QAHpB,CAMA,IAAIkvC,EAAKjkD,EACLuY,EAAK86C,EAAMjB,IACXgwB,EAAiBpG,EAAQyF,YACzBY,EAAkBrG,EAAQsG,iBAAmBtG,EAAQjnE,OAAS,GAE9DwtE,EAAWH,GAAkBC,EAC7BttE,EAAQysE,GAAsBnuB,EAAMtmD,KAAKgI,QAAU,GAIvDs+C,EAAMtmD,KAAKu1E,gBAAkBr2B,EAAMl3C,EAAM8/C,QAAU9wD,EAAO,GAAIgR,GAASA,EACvE,IAAIytE,EAxFR,SAAkBnvB,EAAOovB,GACrB,IACIC,EADAt0B,EAAM,GAEV,GAAIq0B,EAEA,IADA,IAAIvL,EAAY7jB,EACT6jB,EAAUxkB,oBACbwkB,EAAYA,EAAUxkB,kBAAkByZ,SAEpC+K,EAAUnqE,OACT21E,EAAYnB,GAAmBrK,EAAUnqE,QAC1ChJ,EAAOqqD,EAAKs0B,IAInBA,EAAYnB,GAAmBluB,EAAMtmD,QACtChJ,EAAOqqD,EAAKs0B,GAIhB,IAFA,IAAIl4E,EAAa6oD,EAET7oD,EAAaA,EAAWiT,QACxBjT,EAAWuC,OAAS21E,EAAYnB,GAAmB/2E,EAAWuC,QAC9DhJ,EAAOqqD,EAAKs0B,GAGpB,OAAOt0B,EAgEQu0B,CAAStvB,GAAO,GAC/B,IAAKrzD,KAAQuiF,EACLv2B,EAAQw2B,EAASxiF,KACjB8hF,GAAQvpE,EAAIvY,EAAM,IAG1B,IAAKA,KAAQwiF,EACTv+B,EAAMu+B,EAASxiF,GAEf8hF,GAAQvpE,EAAIvY,EAAa,MAAPikD,EAAc,GAAKA,IAG7C,IAAI2+B,GAAU,CACV7hF,OAAQohF,GACR5+D,OAAQ4+D,IAGRU,GAAiB,MAKrB,SAASvrE,GAASiB,EAAI0jE,GAElB,GAAKA,IAASA,EAAMA,EAAI93E,QAIxB,GAAIoU,EAAGb,UACCukE,EAAI5vE,QAAQ,MAAQ,EACpB4vE,EAAI91E,MAAM08E,IAAgB9gF,SAAQ,SAAUjC,GAAK,OAAOyY,EAAGb,UAAUC,IAAI7X,MAGzEyY,EAAGb,UAAUC,IAAIskE,OAGpB,CACD,IAAIh4B,EAAM,IAAI51C,OAAOkK,EAAGlQ,aAAa,UAAY,GAAI,KACjD47C,EAAI53C,QAAQ,IAAM4vE,EAAM,KAAO,GAC/B1jE,EAAGvD,aAAa,SAAUivC,EAAMg4B,GAAK93E,SAQjD,SAASyT,GAAYW,EAAI0jE,GAErB,GAAKA,IAASA,EAAMA,EAAI93E,QAIxB,GAAIoU,EAAGb,UACCukE,EAAI5vE,QAAQ,MAAQ,EACpB4vE,EAAI91E,MAAM08E,IAAgB9gF,SAAQ,SAAUjC,GAAK,OAAOyY,EAAGb,UAAU3Q,OAAOjH,MAG5EyY,EAAGb,UAAU3Q,OAAOk1E,GAEnB1jE,EAAGb,UAAUxV,QACdqW,EAAGD,gBAAgB,aAGtB,CAGD,IAFA,IAAI2rC,EAAM,IAAI51C,OAAOkK,EAAGlQ,aAAa,UAAY,GAAI,KACjDy6E,EAAM,IAAM7G,EAAM,IACfh4B,EAAI53C,QAAQy2E,IAAQ,GACvB7+B,EAAMA,EAAI5/C,QAAQy+E,EAAK,MAE3B7+B,EAAMA,EAAI9/C,QAENoU,EAAGvD,aAAa,QAASivC,GAGzB1rC,EAAGD,gBAAgB,UAK/B,SAASyqE,GAAkBxyB,GACvB,GAAKA,EAAL,CAIA,GAAmB,iBAARA,EAAkB,CACzB,IAAInC,EAAM,GAKV,OAJgB,IAAZmC,EAAI5nD,KACJ5E,EAAOqqD,EAAK40B,GAAkBzyB,EAAIvwD,MAAQ,MAE9C+D,EAAOqqD,EAAKmC,GACLnC,EAEN,MAAmB,iBAARmC,EACLyyB,GAAkBzyB,QADxB,GAIT,IAAIyyB,GAAoB11B,GAAO,SAAUttD,GACrC,MAAO,CACHijF,WAAY,GAAG50E,OAAOrO,EAAM,UAC5BkjF,aAAc,GAAG70E,OAAOrO,EAAM,aAC9BmjF,iBAAkB,GAAG90E,OAAOrO,EAAM,iBAClCojF,WAAY,GAAG/0E,OAAOrO,EAAM,UAC5BqjF,aAAc,GAAGh1E,OAAOrO,EAAM,aAC9BsjF,iBAAkB,GAAGj1E,OAAOrO,EAAM,qBAGtCujF,GAAgB7yB,IAAcE,GAI9B4yB,GAAiB,aACjBC,GAAqB,gBACrBC,GAAgB,YAChBC,GAAoB,eACpBJ,UAE+BjxE,IAA3B9O,OAAOogF,sBAC0BtxE,IAAjC9O,OAAOqgF,wBACPL,GAAiB,mBACjBC,GAAqB,4BAEKnxE,IAA1B9O,OAAOsgF,qBACyBxxE,IAAhC9O,OAAOugF,uBACPL,GAAgB,kBAChBC,GAAoB,uBAI5B,IAAIK,GAAMtzB,EACJltD,OAAOi9B,sBACHj9B,OAAOi9B,sBAAsBx/B,KAAKuC,QAClCmE,WACuB,SAAqC1F,GAAM,OAAOA,KACnF,SAASgiF,GAAUhiF,GACf+hF,IAAI,WAEAA,GAAI/hF,MAGZ,SAASiiF,GAAmB3rE,EAAI0jE,GAC5B,IAAIkI,EAAoB5rE,EAAG4jE,qBAAuB5jE,EAAG4jE,mBAAqB,IACtEgI,EAAkB93E,QAAQ4vE,GAAO,IACjCkI,EAAkBh4E,KAAK8vE,GACvB3kE,GAASiB,EAAI0jE,IAGrB,SAASmI,GAAsB7rE,EAAI0jE,GAC3B1jE,EAAG4jE,oBACHhvB,EAAS50C,EAAG4jE,mBAAoBF,GAEpCrkE,GAAYW,EAAI0jE,GAEpB,SAASoI,GAAmB9rE,EAAI+rE,EAAczf,GAC1C,IAAIgQ,EAAK0P,GAAkBhsE,EAAI+rE,GAAenxD,EAAO0hD,EAAG1hD,KAAMlmB,EAAU4nE,EAAG5nE,QAASu3E,EAAY3P,EAAG2P,UACnG,IAAKrxD,EACD,OAAO0xC,IACX,IAAI/5D,EAjDS,eAiDDqoB,EAAsBswD,GAAqBE,GACnDc,EAAQ,EACR3pD,EAAM,WACNviB,EAAGlE,oBAAoBvJ,EAAO45E,GAC9B7f,KAEA6f,EAAQ,SAAUjgF,GACdA,EAAE0G,SAAWoN,KACPksE,GAASD,GACX1pD,KAIZnzB,YAAW,WACH88E,EAAQD,GACR1pD,MAEL7tB,EAAU,GACbsL,EAAG9F,iBAAiB3H,EAAO45E,GAE/B,IAAIC,GAAc,yBAClB,SAASJ,GAAkBhsE,EAAI+rE,GAC3B,IAQInxD,EARApY,EAASvX,OAAO6S,iBAAiBkC,GAEjCqsE,GAAoB7pE,EAAOyoE,GAAiB,UAAY,IAAIr9E,MAAM,MAClE0+E,GAAuB9pE,EAAOyoE,GAAiB,aAAe,IAAIr9E,MAAM,MACxE2+E,EAAoBC,GAAWH,EAAkBC,GACjDG,GAAmBjqE,EAAO2oE,GAAgB,UAAY,IAAIv9E,MAAM,MAChE8+E,GAAsBlqE,EAAO2oE,GAAgB,aAAe,IAAIv9E,MAAM,MACtE++E,EAAmBH,GAAWC,EAAiBC,GAE/Ch4E,EAAU,EACVu3E,EAAY,EA+BhB,MAhHa,eAmFTF,EACIQ,EAAoB,IACpB3xD,EArFK,aAsFLlmB,EAAU63E,EACVN,EAAYK,EAAoB3iF,QAtF5B,cAyFHoiF,EACDY,EAAmB,IACnB/xD,EA3FI,YA4FJlmB,EAAUi4E,EACVV,EAAYS,EAAmB/iF,QAWnCsiF,GANArxD,GADAlmB,EAAUlF,KAAK0e,IAAIq+D,EAAmBI,IAExB,EACJJ,EAAoBI,EArGrB,aACD,YAuGE,MAxGD,eA0GH/xD,EACI0xD,EAAoB3iF,OACpB+iF,EAAmB/iF,OACvB,EAGH,CACHixB,KAAMA,EACNlmB,QAASA,EACTu3E,UAAWA,EACXW,aApHS,eA+GMhyD,GAAuBwxD,GAAY/+E,KAAKmV,EAAOyoE,GAAiB,cAQvF,SAASuB,GAAWK,EAAQC,GAExB,KAAOD,EAAOljF,OAASmjF,EAAUnjF,QAC7BkjF,EAASA,EAAO/2E,OAAO+2E,GAE3B,OAAOr9E,KAAK0e,IAAIlb,MAAM,KAAM85E,EAAUxmE,KAAI,SAAU9e,EAAGN,GACnD,OAAO6lF,GAAKvlF,GAAKulF,GAAKF,EAAO3lF,QAOrC,SAAS6lF,GAAK9jF,GACV,OAAkD,IAA3C6zE,OAAO7zE,EAAEiF,MAAM,GAAI,GAAGpC,QAAQ,IAAK,MAG9C,SAASkhF,GAAMlyB,EAAOmyB,GAClB,IAAIjtE,EAAK86C,EAAMjB,IAEXnG,EAAM1zC,EAAGktE,YACTltE,EAAGktE,SAASC,WAAY,EACxBntE,EAAGktE,YAEP,IAAI14E,EAAOg2E,GAAkB1vB,EAAMtmD,KAAK8L,YACxC,IAAImzC,EAAQj/C,KAIRk/C,EAAM1zC,EAAGotE,WAA6B,IAAhBptE,EAAGjP,SAA7B,CAUA,IAPA,IAAIX,EAAMoE,EAAKpE,IAAKwqB,EAAOpmB,EAAKomB,KAAM8vD,EAAal2E,EAAKk2E,WAAYC,EAAen2E,EAAKm2E,aAAcC,EAAmBp2E,EAAKo2E,iBAAkByC,EAAc74E,EAAK64E,YAAaC,EAAgB94E,EAAK84E,cAAeC,EAAoB/4E,EAAK+4E,kBAAmBC,EAAch5E,EAAKg5E,YAAaR,EAAQx4E,EAAKw4E,MAAOS,EAAaj5E,EAAKi5E,WAAYC,EAAiBl5E,EAAKk5E,eAAgBC,EAAen5E,EAAKm5E,aAAcC,EAASp5E,EAAKo5E,OAAQC,EAAcr5E,EAAKq5E,YAAaC,EAAkBt5E,EAAKs5E,gBAAiBh/E,EAAW0F,EAAK1F,SAKpgBuP,EAAUsqD,GACVolB,EAAiBplB,GAAezI,OAC7B6tB,GAAkBA,EAAe7oE,QACpC7G,EAAU0vE,EAAe1vE,QACzB0vE,EAAiBA,EAAe7oE,OAEpC,IAAI8oE,GAAY3vE,EAAQssD,aAAe7P,EAAMT,aAC7C,IAAI2zB,GAAaJ,GAAqB,KAAXA,EAA3B,CAGA,IAAIK,EAAaD,GAAYX,EAAcA,EAAc3C,EACrDwD,EAAcF,GAAYT,EAAoBA,EAAoB3C,EAClEuD,EAAUH,GAAYV,EAAgBA,EAAgB3C,EACtDyD,EAAkBJ,GAAWL,GAA8BH,EAC3Da,EAAYL,GAAYzkF,EAAWqkF,GAAUA,EAAkBZ,EAC/DsB,EAAiBN,GAAWH,GAA4BJ,EACxDc,EAAqBP,GACnBF,GACAJ,EACFc,EAAwBl6B,EAAShrD,EAASwF,GAAYA,EAASk+E,MAAQl+E,GACvE,EAGJ,IAAI2/E,GAAqB,IAARr+E,IAAkBioD,GAC/Bq2B,EAAmBC,GAAuBN,GAC1C/hB,EAAMtsD,EAAGotE,SAAWr2E,GAAK,WACrB03E,IACA5C,GAAsB7rE,EAAImuE,GAC1BtC,GAAsB7rE,EAAIkuE,IAG1B5hB,EAAG6gB,WACCsB,GACA5C,GAAsB7rE,EAAIiuE,GAE9BM,GAAsBA,EAAmBvuE,IAGzCsuE,GAAkBA,EAAetuE,GAErCA,EAAGotE,SAAW,QAEbtyB,EAAMtmD,KAAKo6E,MAEZ9vB,GAAehE,EAAO,UAAU,WAC5B,IAAI51C,EAASlF,EAAG/N,WACZ48E,EAAc3pE,GAAUA,EAAOk2C,UAAYl2C,EAAOk2C,SAASN,EAAMryD,KACjEomF,GACAA,EAAYj1B,MAAQkB,EAAMlB,KAC1Bi1B,EAAYh1B,IAAIqzB,UAChB2B,EAAYh1B,IAAIqzB,WAEpBmB,GAAaA,EAAUruE,EAAIssD,MAInC8hB,GAAmBA,EAAgBpuE,GAC/ByuE,IACA9C,GAAmB3rE,EAAIiuE,GACvBtC,GAAmB3rE,EAAIkuE,GACvBxC,IAAU,WACNG,GAAsB7rE,EAAIiuE,GAErB3hB,EAAG6gB,YACJxB,GAAmB3rE,EAAImuE,GAClBO,IACGI,GAAgBN,GAChBp/E,WAAWk9D,EAAIkiB,GAGf1C,GAAmB9rE,EAAI4a,EAAM0xC,SAM7CxR,EAAMtmD,KAAKo6E,OACX3B,GAAiBA,IACjBoB,GAAaA,EAAUruE,EAAIssD,IAE1BmiB,GAAeC,GAChBpiB,MAGR,SAASyiB,GAAMj0B,EAAOk0B,GAClB,IAAIhvE,EAAK86C,EAAMjB,IAEXnG,EAAM1zC,EAAGotE,YACTptE,EAAGotE,SAASD,WAAY,EACxBntE,EAAGotE,YAEP,IAAI54E,EAAOg2E,GAAkB1vB,EAAMtmD,KAAK8L,YACxC,GAAImzC,EAAQj/C,IAAyB,IAAhBwL,EAAGjP,SACpB,OAAOi+E,IAGX,IAAIt7B,EAAM1zC,EAAGktE,UAAb,CAGA,IAAI98E,EAAMoE,EAAKpE,IAAKwqB,EAAOpmB,EAAKomB,KAAMiwD,EAAar2E,EAAKq2E,WAAYC,EAAet2E,EAAKs2E,aAAcC,EAAmBv2E,EAAKu2E,iBAAkBkE,EAAcz6E,EAAKy6E,YAAaF,EAAQv6E,EAAKu6E,MAAOG,EAAa16E,EAAK06E,WAAYC,EAAiB36E,EAAK26E,eAAgBC,EAAa56E,EAAK46E,WAAYtgF,EAAW0F,EAAK1F,SAClT2/E,GAAqB,IAARr+E,IAAkBioD,GAC/Bq2B,EAAmBC,GAAuBI,GAC1CM,EAAwB/6B,EAAShrD,EAASwF,GAAYA,EAASigF,MAAQjgF,GACvE,EAGJ,IAAIw9D,EAAMtsD,EAAGktE,SAAWn2E,GAAK,WACrBiJ,EAAG/N,YAAc+N,EAAG/N,WAAWmpD,WAC/Bp7C,EAAG/N,WAAWmpD,SAASN,EAAMryD,KAAO,MAEpCgmF,IACA5C,GAAsB7rE,EAAI8qE,GAC1Be,GAAsB7rE,EAAI+qE,IAG1Bze,EAAG6gB,WACCsB,GACA5C,GAAsB7rE,EAAI6qE,GAE9BsE,GAAkBA,EAAenvE,KAGjCgvE,IACAE,GAAcA,EAAWlvE,IAE7BA,EAAGktE,SAAW,QAEdkC,EACAA,EAAWE,GAGXA,IAEJ,SAASA,IAGDhjB,EAAG6gB,aAIFryB,EAAMtmD,KAAKo6E,MAAQ5uE,EAAG/N,cACtB+N,EAAG/N,WAAWmpD,WAAap7C,EAAG/N,WAAWmpD,SAAW,KAAKN,EAAMryD,KAC5DqyD,GAERm0B,GAAeA,EAAYjvE,GACvByuE,IACA9C,GAAmB3rE,EAAI6qE,GACvBc,GAAmB3rE,EAAI+qE,GACvBW,IAAU,WACNG,GAAsB7rE,EAAI6qE,GAErBve,EAAG6gB,YACJxB,GAAmB3rE,EAAI8qE,GAClB4D,IACGI,GAAgBO,GAChBjgF,WAAWk9D,EAAI+iB,GAGfvD,GAAmB9rE,EAAI4a,EAAM0xC,SAMjDyiB,GAASA,EAAM/uE,EAAIssD,GACdmiB,GAAeC,GAChBpiB,MAeZ,SAASwiB,GAAgB1lF,GACrB,MAAsB,iBAARA,IAAqBwkD,MAAMxkD,GAQ7C,SAASulF,GAAuBjlF,GAC5B,GAAI+pD,EAAQ/pD,GACR,OAAO,EAGX,IAAI6lF,EAAa7lF,EAAG60D,IACpB,OAAI7K,EAAM67B,GAECZ,GAAuBx7E,MAAMhK,QAAQomF,GAAcA,EAAW,GAAKA,IAIlE7lF,EAAG8rD,SAAW9rD,EAAGC,QAAU,EAG3C,SAAS6lF,GAAOv/E,EAAG6qD,IACS,IAApBA,EAAMtmD,KAAKo6E,MACX5B,GAAMlyB,GAGd,IAsBI20B,GAxvEJ,SAA6BC,GACzB,IAAIxoF,EAAGgY,EACHy8D,EAAM,GACNv0E,EAAUsoF,EAAQtoF,QAASw4E,EAAU8P,EAAQ9P,QACjD,IAAK14E,EAAI,EAAGA,EAAIokE,GAAM3hE,SAAUzC,EAE5B,IADAy0E,EAAIrQ,GAAMpkE,IAAM,GACXgY,EAAI,EAAGA,EAAI9X,EAAQuC,SAAUuV,EAC1Bw0C,EAAMtsD,EAAQ8X,GAAGosD,GAAMpkE,MACvBy0E,EAAIrQ,GAAMpkE,IAAI0M,KAAKxM,EAAQ8X,GAAGosD,GAAMpkE,KAgBhD,SAASyoF,EAAW3vE,GAChB,IAAIkF,EAAS06D,EAAQ3tE,WAAW+N,GAE5B0zC,EAAMxuC,IACN06D,EAAQp6D,YAAYN,EAAQlF,GAepC,SAAS4vE,EAAU90B,EAAO+0B,EAAoBC,EAAWC,EAAQtyD,EAAQuyD,EAAYlsE,GAUjF,GATI4vC,EAAMoH,EAAMjB,MAAQnG,EAAMs8B,KAM1Bl1B,EAAQk1B,EAAWlsE,GAAS+2C,GAAWC,IAE3CA,EAAMT,cAAgB58B,GA0C1B,SAAyBq9B,EAAO+0B,EAAoBC,EAAWC,GAC3D,IAAI7oF,EAAI4zD,EAAMtmD,KACd,GAAIk/C,EAAMxsD,GAAI,CACV,IAAI+oF,EAAgBv8B,EAAMoH,EAAMX,oBAAsBjzD,EAAEyrE,UAQxD,GAPIjf,EAAOxsD,EAAIA,EAAE83D,OAAUtL,EAAOxsD,EAAIA,EAAEyF,OACpCzF,EAAE4zD,GAAO,GAMTpH,EAAMoH,EAAMX,mBAMZ,OALA+1B,EAAcp1B,EAAO+0B,GACrB1b,EAAO2b,EAAWh1B,EAAMjB,IAAKk2B,GACzBp8B,EAAOs8B,IAyBvB,SAA6Bn1B,EAAO+0B,EAAoBC,EAAWC,GAC/D,IAAI7oF,EAKAipF,EAAYr1B,EAChB,KAAOq1B,EAAUh2B,mBAEb,GADAg2B,EAAYA,EAAUh2B,kBAAkByZ,OACpClgB,EAAOxsD,EAAIipF,EAAU37E,OAAUk/C,EAAOxsD,EAAIA,EAAEoZ,YAAc,CAC1D,IAAKpZ,EAAI,EAAGA,EAAIy0E,EAAIyU,SAASzmF,SAAUzC,EACnCy0E,EAAIyU,SAASlpF,GAAG85E,GAAWmP,GAE/BN,EAAmBj8E,KAAKu8E,GACxB,MAKRhc,EAAO2b,EAAWh1B,EAAMjB,IAAKk2B,GA3CjBM,CAAoBv1B,EAAO+0B,EAAoBC,EAAWC,IAEvD,GA1DXzvB,CAAgBxF,EAAO+0B,EAAoBC,EAAWC,GAA1D,CAGA,IAAIv7E,EAAOsmD,EAAMtmD,KACb8H,EAAWw+C,EAAMx+C,SACjBs9C,EAAMkB,EAAMlB,IACZlG,EAAMkG,IAaNkB,EAAMjB,IAAMiB,EAAMvyD,GACZq3E,EAAQjjE,gBAAgBm+C,EAAMvyD,GAAIqxD,GAClCgmB,EAAQvjE,cAAcu9C,EAAKkB,GACjCw1B,EAASx1B,GACTy1B,EAAez1B,EAAOx+C,EAAUuzE,GAC5Bn8B,EAAMl/C,IACNg8E,EAAkB11B,EAAO+0B,GAE7B1b,EAAO2b,EAAWh1B,EAAMjB,IAAKk2B,IAKxBp8B,EAAOmH,EAAMR,YAClBQ,EAAMjB,IAAM+lB,EAAQI,cAAcllB,EAAMt3C,MACxC2wD,EAAO2b,EAAWh1B,EAAMjB,IAAKk2B,KAG7Bj1B,EAAMjB,IAAM+lB,EAAQvT,eAAevR,EAAMt3C,MACzC2wD,EAAO2b,EAAWh1B,EAAMjB,IAAKk2B,KAwBrC,SAASG,EAAcp1B,EAAO+0B,GACtBn8B,EAAMoH,EAAMtmD,KAAKi8E,iBACjBZ,EAAmBj8E,KAAKZ,MAAM68E,EAAoB/0B,EAAMtmD,KAAKi8E,eAC7D31B,EAAMtmD,KAAKi8E,cAAgB,MAE/B31B,EAAMjB,IAAMiB,EAAMX,kBAAkB/uC,IAChCslE,EAAY51B,IACZ01B,EAAkB11B,EAAO+0B,GACzBS,EAASx1B,KAKTwlB,GAAYxlB,GAEZ+0B,EAAmBj8E,KAAKknD,IAwBhC,SAASqZ,EAAOjvD,EAAQ20C,EAAKj2B,GACrB8vB,EAAMxuC,KACFwuC,EAAM9vB,GACFg8C,EAAQ3tE,WAAW2xB,KAAS1e,GAC5B06D,EAAQn7D,aAAaS,EAAQ20C,EAAKj2B,GAItCg8C,EAAQr7D,YAAYW,EAAQ20C,IAIxC,SAAS02B,EAAez1B,EAAOx+C,EAAUuzE,GACrC,GAAI1mF,EAAQmT,GAAW,CACf,EAGJ,IAAK,IAAIo/D,EAAM,EAAGA,EAAMp/D,EAAS3S,SAAU+xE,EACvCkU,EAAUtzE,EAASo/D,GAAMmU,EAAoB/0B,EAAMjB,IAAK,MAAM,EAAMv9C,EAAUo/D,QAG7E9nB,EAAYkH,EAAMt3C,OACvBo8D,EAAQr7D,YAAYu2C,EAAMjB,IAAK+lB,EAAQvT,eAAe7+D,OAAOstD,EAAMt3C,QAG3E,SAASktE,EAAY51B,GACjB,KAAOA,EAAMX,mBACTW,EAAQA,EAAMX,kBAAkByZ,OAEpC,OAAOlgB,EAAMoH,EAAMlB,KAEvB,SAAS42B,EAAkB11B,EAAO+0B,GAC9B,IAAK,IAAIc,EAAM,EAAGA,EAAMhV,EAAInzE,OAAOmB,SAAUgnF,EACzChV,EAAInzE,OAAOmoF,GAAK3P,GAAWlmB,GAG3BpH,EADJxsD,EAAI4zD,EAAMtmD,KAAKwqD,QAEPtL,EAAMxsD,EAAEsB,SACRtB,EAAEsB,OAAOw4E,GAAWlmB,GACpBpH,EAAMxsD,EAAEitE,SACR0b,EAAmBj8E,KAAKknD,IAMpC,SAASw1B,EAASx1B,GACd,IAAI5zD,EACJ,GAAIwsD,EAAOxsD,EAAI4zD,EAAMZ,WACjB0lB,EAAQQ,cAActlB,EAAMjB,IAAK3yD,QAIjC,IADA,IAAI0pF,EAAW91B,EACR81B,GACCl9B,EAAOxsD,EAAI0pF,EAASvyE,UAAaq1C,EAAOxsD,EAAIA,EAAEm5D,SAAS4R,WACvD2N,EAAQQ,cAActlB,EAAMjB,IAAK3yD,GAErC0pF,EAAWA,EAAS1rE,OAIxBwuC,EAAOxsD,EAAIyhE,KACXzhE,IAAM4zD,EAAMz8C,SACZnX,IAAM4zD,EAAMd,WACZtG,EAAOxsD,EAAIA,EAAEm5D,SAAS4R,WACtB2N,EAAQQ,cAActlB,EAAMjB,IAAK3yD,GAGzC,SAAS2pF,EAAUf,EAAWC,EAAQ/Z,EAAQ8a,EAAUvP,EAAQsO,GAC5D,KAAOiB,GAAYvP,IAAUuP,EACzBlB,EAAU5Z,EAAO8a,GAAWjB,EAAoBC,EAAWC,GAAQ,EAAO/Z,EAAQ8a,GAG1F,SAASC,EAAkBj2B,GACvB,IAAI5zD,EAAGgY,EACH1K,EAAOsmD,EAAMtmD,KACjB,GAAIk/C,EAAMl/C,GAGN,IAFIk/C,EAAOxsD,EAAIsN,EAAKwqD,OAAUtL,EAAOxsD,EAAIA,EAAEu/B,UACvCv/B,EAAE4zD,GACD5zD,EAAI,EAAGA,EAAIy0E,EAAIl1C,QAAQ98B,SAAUzC,EAClCy0E,EAAIl1C,QAAQv/B,GAAG4zD,GAEvB,GAAIpH,EAAOxsD,EAAI4zD,EAAMx+C,UACjB,IAAK4C,EAAI,EAAGA,EAAI47C,EAAMx+C,SAAS3S,SAAUuV,EACrC6xE,EAAkBj2B,EAAMx+C,SAAS4C,IAI7C,SAAS8xE,EAAahb,EAAQ8a,EAAUvP,GACpC,KAAOuP,GAAYvP,IAAUuP,EAAU,CACnC,IAAIG,EAAKjb,EAAO8a,GACZp9B,EAAMu9B,KACFv9B,EAAMu9B,EAAGr3B,MACTs3B,EAA0BD,GAC1BF,EAAkBE,IAIlBtB,EAAWsB,EAAGp3B,OAK9B,SAASq3B,EAA0Bp2B,EAAOk0B,GACtC,GAAIt7B,EAAMs7B,IAAOt7B,EAAMoH,EAAMtmD,MAAO,CAChC,IAAI28E,EACA75E,EAAYqkE,EAAIntE,OAAO7E,OAAS,EAgBpC,IAfI+pD,EAAMs7B,GAGNA,EAAG13E,WAAaA,EAIhB03E,EA7PZ,SAAoBoC,EAAU95E,GAC1B,SAAS9I,IACsB,KAArBA,EAAO8I,WACTq4E,EAAWyB,GAInB,OADA5iF,EAAO8I,UAAYA,EACZ9I,EAsPM6iF,CAAWv2B,EAAMjB,IAAKviD,GAG3Bo8C,EAAOy9B,EAAMr2B,EAAMX,oBACnBzG,EAAOy9B,EAAMA,EAAIvd,SACjBlgB,EAAMy9B,EAAI38E,OACV08E,EAA0BC,EAAKnC,GAE9BmC,EAAM,EAAGA,EAAMxV,EAAIntE,OAAO7E,SAAUwnF,EACrCxV,EAAIntE,OAAO2iF,GAAKr2B,EAAOk0B,GAEvBt7B,EAAOy9B,EAAMr2B,EAAMtmD,KAAKwqD,OAAUtL,EAAOy9B,EAAMA,EAAI3iF,QACnD2iF,EAAIr2B,EAAOk0B,GAGXA,SAIJW,EAAW70B,EAAMjB,KAsGzB,SAASy3B,EAAa3rC,EAAM4rC,EAAOlvD,EAAOE,GACtC,IAAK,IAAIivD,EAAMnvD,EAAOmvD,EAAMjvD,EAAKivD,IAAO,CACpC,IAAIjqF,EAAIgqF,EAAMC,GACd,GAAI99B,EAAMnsD,IAAM05E,GAAUt7B,EAAMp+C,GAC5B,OAAOiqF,GAGnB,SAASC,EAAWte,EAAUrY,EAAO+0B,EAAoBG,EAAYlsE,EAAO4tE,GACxE,GAAIve,IAAarY,EAAjB,CAGIpH,EAAMoH,EAAMjB,MAAQnG,EAAMs8B,KAE1Bl1B,EAAQk1B,EAAWlsE,GAAS+2C,GAAWC,IAE3C,IAAIjB,EAAOiB,EAAMjB,IAAMsZ,EAAStZ,IAChC,GAAIlG,EAAOwf,EAASzY,oBACZhH,EAAMoH,EAAMf,aAAa4a,UACzBgd,EAAQxe,EAAStZ,IAAKiB,EAAO+0B,GAG7B/0B,EAAMJ,oBAAqB,OAQnC,GAAI/G,EAAOmH,EAAMV,WACbzG,EAAOwf,EAAS/Y,WAChBU,EAAMryD,MAAQ0qE,EAAS1qE,MACtBkrD,EAAOmH,EAAMP,WAAa5G,EAAOmH,EAAMN,SACxCM,EAAMX,kBAAoBgZ,EAAShZ,sBAJvC,CAOA,IAAIjzD,EACAsN,EAAOsmD,EAAMtmD,KACbk/C,EAAMl/C,IAASk/C,EAAOxsD,EAAIsN,EAAKwqD,OAAUtL,EAAOxsD,EAAIA,EAAE2rE,WACtD3rE,EAAEisE,EAAUrY,GAEhB,IAAIy2B,EAAQpe,EAAS72D,SACjB20E,EAAKn2B,EAAMx+C,SACf,GAAIo3C,EAAMl/C,IAASk8E,EAAY51B,GAAQ,CACnC,IAAK5zD,EAAI,EAAGA,EAAIy0E,EAAI3wD,OAAOrhB,SAAUzC,EACjCy0E,EAAI3wD,OAAO9jB,GAAGisE,EAAUrY,GACxBpH,EAAOxsD,EAAIsN,EAAKwqD,OAAUtL,EAAOxsD,EAAIA,EAAE8jB,SACvC9jB,EAAEisE,EAAUrY,GAEhBrH,EAAQqH,EAAMt3C,MACVkwC,EAAM69B,IAAU79B,EAAMu9B,GAClBM,IAAUN,GAtJ1B,SAAwBnB,EAAWyB,EAAOK,EAAO/B,EAAoB6B,GACjE,IAQIG,EAAaC,EAAUC,EARvBC,EAAc,EACdC,EAAc,EACdC,EAAYX,EAAM5nF,OAAS,EAC3BwoF,EAAgBZ,EAAM,GACtBa,EAAcb,EAAMW,GACpBG,EAAYT,EAAMjoF,OAAS,EAC3B2oF,EAAgBV,EAAM,GACtBW,EAAcX,EAAMS,GAKpBG,GAAWd,EAIf,IAHI,EAGGM,GAAeE,GAAaD,GAAeI,GAC1C5+B,EAAQ0+B,GACRA,EAAgBZ,IAAQS,GAEnBv+B,EAAQ2+B,GACbA,EAAcb,IAAQW,GAEjBjR,GAAUkR,EAAeG,IAC9Bb,EAAWU,EAAeG,EAAezC,EAAoB+B,EAAOK,GACpEE,EAAgBZ,IAAQS,GACxBM,EAAgBV,IAAQK,IAEnBhR,GAAUmR,EAAaG,IAC5Bd,EAAWW,EAAaG,EAAa1C,EAAoB+B,EAAOS,GAChED,EAAcb,IAAQW,GACtBK,EAAcX,IAAQS,IAEjBpR,GAAUkR,EAAeI,IAE9Bd,EAAWU,EAAeI,EAAa1C,EAAoB+B,EAAOS,GAClEG,GACI5S,EAAQn7D,aAAaqrE,EAAWqC,EAAct4B,IAAK+lB,EAAQM,YAAYkS,EAAYv4B,MACvFs4B,EAAgBZ,IAAQS,GACxBO,EAAcX,IAAQS,IAEjBpR,GAAUmR,EAAaE,IAE5Bb,EAAWW,EAAaE,EAAezC,EAAoB+B,EAAOK,GAClEO,GACI5S,EAAQn7D,aAAaqrE,EAAWsC,EAAYv4B,IAAKs4B,EAAct4B,KACnEu4B,EAAcb,IAAQW,GACtBI,EAAgBV,IAAQK,KAGpBx+B,EAAQo+B,KACRA,EAAcxQ,GAAkBkQ,EAAOS,EAAaE,IAIpDz+B,EAHJq+B,EAAWp+B,EAAM4+B,EAAc7pF,KACzBopF,EAAYS,EAAc7pF,KAC1B6oF,EAAagB,EAAef,EAAOS,EAAaE,IAGlDtC,EAAU0C,EAAezC,EAAoBC,EAAWqC,EAAct4B,KAAK,EAAO+3B,EAAOK,GAIrFhR,GADJ8Q,EAAcR,EAAMO,GACOQ,IACvBb,EAAWM,EAAaO,EAAezC,EAAoB+B,EAAOK,GAClEV,EAAMO,QAAY/3E,EAClBy4E,GACI5S,EAAQn7D,aAAaqrE,EAAWiC,EAAYl4B,IAAKs4B,EAAct4B,MAInE+1B,EAAU0C,EAAezC,EAAoBC,EAAWqC,EAAct4B,KAAK,EAAO+3B,EAAOK,GAGjGK,EAAgBV,IAAQK,IAG5BD,EAAcE,EAEdrB,EAAUf,EADDr8B,EAAQm+B,EAAMS,EAAY,IAAM,KAAOT,EAAMS,EAAY,GAAGx4B,IACxC+3B,EAAOK,EAAaI,EAAWxC,GAEvDoC,EAAcI,GACnBrB,EAAaO,EAAOS,EAAaE,GAsEzBO,CAAe54B,EAAK03B,EAAON,EAAIpB,EAAoB6B,GAElDh+B,EAAMu9B,IAIPv9B,EAAMyf,EAAS3vD,OACfo8D,EAAQO,eAAetmB,EAAK,IAChCg3B,EAAUh3B,EAAK,KAAMo3B,EAAI,EAAGA,EAAGtnF,OAAS,EAAGkmF,IAEtCn8B,EAAM69B,GACXP,EAAaO,EAAO,EAAGA,EAAM5nF,OAAS,GAEjC+pD,EAAMyf,EAAS3vD,OACpBo8D,EAAQO,eAAetmB,EAAK,IAG3BsZ,EAAS3vD,OAASs3C,EAAMt3C,MAC7Bo8D,EAAQO,eAAetmB,EAAKiB,EAAMt3C,MAElCkwC,EAAMl/C,IACFk/C,EAAOxsD,EAAIsN,EAAKwqD,OAAUtL,EAAOxsD,EAAIA,EAAEwrF,YACvCxrF,EAAEisE,EAAUrY,KAGxB,SAAS63B,EAAiB73B,EAAOplD,EAAO+rC,GAGpC,GAAIkS,EAAOlS,IAAYiS,EAAMoH,EAAM51C,QAC/B41C,EAAM51C,OAAO1Q,KAAKi8E,cAAgB/6E,OAGlC,IAAK,IAAIk9E,EAAM,EAAGA,EAAMl9E,EAAM/L,SAAUipF,EACpCl9E,EAAMk9E,GAAKp+E,KAAKwqD,KAAKmV,OAAOz+D,EAAMk9E,IAI9C,IAKIC,EAAmBt+B,EAAQ,2CAE/B,SAASo9B,EAAQ93B,EAAKiB,EAAO+0B,EAAoBiD,GAC7C,IAAI5rF,EACA0yD,EAAMkB,EAAMlB,IAAKplD,EAAOsmD,EAAMtmD,KAAM8H,EAAWw+C,EAAMx+C,SAGzD,GAFAw2E,EAASA,GAAWt+E,GAAQA,EAAK2rD,IACjCrF,EAAMjB,IAAMA,EACRlG,EAAOmH,EAAMR,YAAc5G,EAAMoH,EAAMf,cAEvC,OADAe,EAAMJ,oBAAqB,GACpB,EAQX,GAAIhH,EAAMl/C,KACFk/C,EAAOxsD,EAAIsN,EAAKwqD,OAAUtL,EAAOxsD,EAAIA,EAAEyF,OACvCzF,EAAE4zD,GAAO,GACTpH,EAAOxsD,EAAI4zD,EAAMX,oBAGjB,OADA+1B,EAAcp1B,EAAO+0B,IACd,EAGf,GAAIn8B,EAAMkG,GAAM,CACZ,GAAIlG,EAAMp3C,GAEN,GAAKu9C,EAAIk5B,gBAKL,GAAIr/B,EAAOxsD,EAAIsN,IACXk/C,EAAOxsD,EAAIA,EAAEo7D,WACb5O,EAAOxsD,EAAIA,EAAEwX,YACb,GAAIxX,IAAM2yD,EAAIn7C,UAUV,OAAO,MAGV,CAID,IAFA,IAAIs0E,GAAgB,EAChBrU,EAAY9kB,EAAIv1C,WACX2uE,EAAM,EAAGA,EAAM32E,EAAS3S,OAAQspF,IAAO,CAC5C,IAAKtU,IACAgT,EAAQhT,EAAWriE,EAAS22E,GAAMpD,EAAoBiD,GAAS,CAChEE,GAAgB,EAChB,MAEJrU,EAAYA,EAAUuB,YAI1B,IAAK8S,GAAiBrU,EASlB,OAAO,OA3Cf4R,EAAez1B,EAAOx+C,EAAUuzE,GAgDxC,GAAIn8B,EAAMl/C,GAAO,CACb,IAAI0+E,GAAa,EACjB,IAAK,IAAIzqF,KAAO+L,EACZ,IAAKq+E,EAAiBpqF,GAAM,CACxByqF,GAAa,EACb1C,EAAkB11B,EAAO+0B,GACzB,OAGHqD,GAAc1+E,EAAY,OAE3BgsD,GAAShsD,EAAY,aAIxBqlD,EAAIrlD,OAASsmD,EAAMt3C,OACxBq2C,EAAIrlD,KAAOsmD,EAAMt3C,MAErB,OAAO,EAaX,OAAO,SAAe2vD,EAAUrY,EAAO4X,EAAWgf,GAC9C,IAAIj+B,EAAQqH,GAAZ,CAKA,IA1kBiBjB,EA0kBbs5B,GAAiB,EACjBtD,EAAqB,GACzB,GAAIp8B,EAAQ0f,GAERggB,GAAiB,EACjBvD,EAAU90B,EAAO+0B,OAEhB,CACD,IAAIuD,EAAgB1/B,EAAMyf,EAASpiE,UACnC,IAAKqiF,GAAiBnS,GAAU9N,EAAUrY,GAEtC22B,EAAWte,EAAUrY,EAAO+0B,EAAoB,KAAM,KAAM6B,OAE3D,CACD,GAAI0B,EAAe,CAQf,GAJ0B,IAAtBjgB,EAASpiE,UAAkBoiE,EAASkgB,aA/nN7C,0BAgoNSlgB,EAASpzD,gBAhoNlB,wBAioNS2yD,GAAY,GAEZ/e,EAAO+e,IACHif,EAAQxe,EAAUrY,EAAO+0B,GAEzB,OADA8C,EAAiB73B,EAAO+0B,GAAoB,GACrC1c,EAnmBVtZ,EA+mBkBsZ,EAAvBA,EA9mBL,IAAIxZ,GAAMimB,EAAQC,QAAQhmB,GAAKtoD,cAAe,GAAI,QAAIwI,EAAW8/C,GAinBhE,IAAIy5B,EAASngB,EAAStZ,IAClBi2B,EAAYlQ,EAAQ3tE,WAAWqhF,GAQnC,GANA1D,EAAU90B,EAAO+0B,EAIjByD,EAAOpG,SAAW,KAAO4C,EAAWlQ,EAAQM,YAAYoT,IAEpD5/B,EAAMoH,EAAM51C,QAGZ,IAFA,IAAI0rE,EAAW91B,EAAM51C,OACjBquE,EAAY7C,EAAY51B,GACrB81B,GAAU,CACb,IAAK,IAAI4C,EAAM,EAAGA,EAAM7X,EAAIl1C,QAAQ98B,SAAU6pF,EAC1C7X,EAAIl1C,QAAQ+sD,GAAK5C,GAGrB,GADAA,EAAS/2B,IAAMiB,EAAMjB,IACjB05B,EAAW,CACX,IAAK,IAAIE,EAAM,EAAGA,EAAM9X,EAAInzE,OAAOmB,SAAU8pF,EACzC9X,EAAInzE,OAAOirF,GAAKzS,GAAW4P,GAK/B,IAAI8C,EAAW9C,EAASp8E,KAAKwqD,KAAKmV,OAClC,GAAIuf,EAASv0B,OAKT,IADA,IAAIpE,EAAS24B,EAASn1B,IAAIrwD,MAAM,GACvBylF,EAAO,EAAGA,EAAO54B,EAAOpxD,OAAQgqF,IACrC54B,EAAO44B,UAKfrT,GAAYsQ,GAEhBA,EAAWA,EAAS1rE,OAIxBwuC,EAAMo8B,GACNkB,EAAa,CAAC7d,GAAW,EAAG,GAEvBzf,EAAMyf,EAASvZ,MACpBm3B,EAAkB5d,IAK9B,OADAwf,EAAiB73B,EAAO+0B,EAAoBsD,GACrCr4B,EAAMjB,IA/FLnG,EAAMyf,IACN4d,EAAkB5d,IAqqDtBygB,CAAoB,CAAEhU,QAASA,GAASx4E,QAL9B,CAACuY,GAAOskE,GAAS7iE,GAAQkhD,GAAU+nB,GAjBxClyB,EACX,CACE3vD,OAAQgnF,GACRY,SAAUZ,GACVhhF,OAAQ,SAAUssD,EAAOk0B,IAEG,IAApBl0B,EAAMtmD,KAAKo6E,KAEXG,GAAMj0B,EAAOk0B,GAGbA,MAIV,IAM0Bl5E,OAAO6sE,MAQnCtqB,IAEAntD,SAASgP,iBAAiB,mBAAmB,WACzC,IAAI8F,EAAK9U,SAAS6Q,cAEdiE,GAAMA,EAAG6zE,QACTljF,GAAQqP,EAAI,YAIxB,IAAI8zE,GAAY,CACZ13B,SAAU,SAAUp8C,EAAIzI,EAASujD,EAAOqY,GAClB,WAAdrY,EAAMlB,KAEFuZ,EAAStZ,MAAQsZ,EAAStZ,IAAIk6B,UAC9Bj1B,GAAehE,EAAO,aAAa,WAC/Bg5B,GAAUzR,iBAAiBriE,EAAIzI,EAASujD,MAI5Ck5B,GAAYh0E,EAAIzI,EAASujD,EAAMz8C,SAEnC2B,EAAG+zE,UAAY,GAAGztE,IAAIjf,KAAK2Y,EAAG6lB,QAASouD,MAEpB,aAAdn5B,EAAMlB,KAAsB8lB,GAAgB1/D,EAAG4a,SACpD5a,EAAG2oE,YAAcpxE,EAAQg0C,UACpBh0C,EAAQg0C,UAAU3hB,OACnB5pB,EAAG9F,iBAAiB,mBAAoBg6E,IACxCl0E,EAAG9F,iBAAiB,iBAAkBi6E,IAKtCn0E,EAAG9F,iBAAiB,SAAUi6E,IAE1B97B,KACAr4C,EAAG6zE,QAAS,MAK5BxR,iBAAkB,SAAUriE,EAAIzI,EAASujD,GACrC,GAAkB,WAAdA,EAAMlB,IAAkB,CACxBo6B,GAAYh0E,EAAIzI,EAASujD,EAAMz8C,SAK/B,IAAI+1E,EAAgBp0E,EAAG+zE,UACnBM,EAAgBr0E,EAAG+zE,UAAY,GAAGztE,IAAIjf,KAAK2Y,EAAG6lB,QAASouD,IAC3D,GAAII,EAAa7nC,MAAK,SAAU7kD,EAAGT,GAAK,OAAQ8uD,EAAWruD,EAAGysF,EAAcltF,QAGxD8Y,EAAG8/D,SACbvoE,EAAQpP,MAAMqkD,MAAK,SAAU94C,GAAK,OAAO4gF,GAAoB5gF,EAAG2gF,MAChE98E,EAAQpP,QAAUoP,EAAQ6mD,UACxBk2B,GAAoB/8E,EAAQpP,MAAOksF,KAEvC1jF,GAAQqP,EAAI,aAMhC,SAASg0E,GAAYh0E,EAAIzI,EAASkiD,GAC9B86B,GAAoBv0E,EAAIzI,EAASkiD,IAE7BnU,GAAQpe,KACR93B,YAAW,WACPmlF,GAAoBv0E,EAAIzI,EAASkiD,KAClC,GAGX,SAAS86B,GAAoBv0E,EAAIzI,EAASkiD,GACtC,IAAItxD,EAAQoP,EAAQpP,MAChBqsF,EAAax0E,EAAG8/D,SACpB,IAAI0U,GAAerhF,MAAMhK,QAAQhB,GAAjC,CASA,IADA,IAAIw3E,EAAU8U,EACLvtF,EAAI,EAAGC,EAAI6Y,EAAG6lB,QAAQl8B,OAAQzC,EAAIC,EAAGD,IAE1C,GADAutF,EAASz0E,EAAG6lB,QAAQ3+B,GAChBstF,EACA7U,EAAWnpB,EAAaruD,EAAO8rF,GAASQ,KAAY,EAChDA,EAAO9U,WAAaA,IACpB8U,EAAO9U,SAAWA,QAItB,GAAI3pB,EAAWi+B,GAASQ,GAAStsF,GAI7B,YAHI6X,EAAG00E,gBAAkBxtF,IACrB8Y,EAAG00E,cAAgBxtF,IAM9BstF,IACDx0E,EAAG00E,eAAiB,IAG5B,SAASJ,GAAoBnsF,EAAO09B,GAChC,OAAOA,EAAQwwB,OAAM,SAAU1uD,GAAK,OAAQquD,EAAWruD,EAAGQ,MAE9D,SAAS8rF,GAASQ,GACd,MAAO,WAAYA,EAASA,EAAOrM,OAASqM,EAAOtsF,MAEvD,SAAS+rF,GAAmBhoF,GACxBA,EAAE0G,OAAO41E,WAAY,EAEzB,SAAS2L,GAAiBjoF,GAEjBA,EAAE0G,OAAO41E,YAEdt8E,EAAE0G,OAAO41E,WAAY,EACrB73E,GAAQzE,EAAE0G,OAAQ,UAEtB,SAASjC,GAAQqP,EAAI4a,GACjB,IAAI1uB,EAAIhB,SAASiR,YAAY,cAC7BjQ,EAAEkQ,UAAUwe,GAAM,GAAM,GACxB5a,EAAGiC,cAAc/V,GAIrB,SAASyoF,GAAW75B,GAEhB,OAAOA,EAAMX,mBAAuBW,EAAMtmD,MAASsmD,EAAMtmD,KAAK8L,WAExDw6C,EADA65B,GAAW75B,EAAMX,kBAAkByZ,QAG7C,IAgDIghB,GAAqB,CACrBhf,MAAOke,GACPlF,KAlDO,CACPlmF,KAAM,SAAUsX,EAAIs8D,EAAIxhB,GACpB,IAAI3yD,EAAQm0E,EAAGn0E,MAEXmY,GADJw6C,EAAQ65B,GAAW75B,IACItmD,MAAQsmD,EAAMtmD,KAAK8L,WACtCu0E,EAAmB70E,EAAG80E,mBACD,SAArB90E,EAAGxD,MAAM82B,QAAqB,GAAKtzB,EAAGxD,MAAM82B,QAC5CnrC,GAASmY,GACTw6C,EAAMtmD,KAAKo6E,MAAO,EAClB5B,GAAMlyB,GAAO,WACT96C,EAAGxD,MAAM82B,QAAUuhD,MAIvB70E,EAAGxD,MAAM82B,QAAUnrC,EAAQ0sF,EAAkB,QAGrD7pE,OAAQ,SAAUhL,EAAIs8D,EAAIxhB,GACtB,IAAI3yD,EAAQm0E,EAAGn0E,OAEVA,IAF4Bm0E,EAAGle,YAIpCtD,EAAQ65B,GAAW75B,IACItmD,MAAQsmD,EAAMtmD,KAAK8L,YAEtCw6C,EAAMtmD,KAAKo6E,MAAO,EACdzmF,EACA6kF,GAAMlyB,GAAO,WACT96C,EAAGxD,MAAM82B,QAAUtzB,EAAG80E,sBAI1B/F,GAAMj0B,GAAO,WACT96C,EAAGxD,MAAM82B,QAAU,WAK3BtzB,EAAGxD,MAAM82B,QAAUnrC,EAAQ6X,EAAG80E,mBAAqB,SAG3DC,OAAQ,SAAU/0E,EAAIzI,EAASujD,EAAOqY,EAAUyO,GACvCA,IACD5hE,EAAGxD,MAAM82B,QAAUtzB,EAAG80E,uBAW9BE,GAAkB,CAClBvtF,KAAM+F,OACNogF,OAAQ/8E,QACRT,IAAKS,QACLxI,KAAMmF,OACNotB,KAAMptB,OACNk9E,WAAYl9E,OACZq9E,WAAYr9E,OACZm9E,aAAcn9E,OACds9E,aAAct9E,OACdo9E,iBAAkBp9E,OAClBu9E,iBAAkBv9E,OAClB6/E,YAAa7/E,OACb+/E,kBAAmB//E,OACnB8/E,cAAe9/E,OACfsB,SAAU,CAACguE,OAAQtvE,OAAQ5F,SAI/B,SAASqtF,GAAan6B,GAClB,IAAIo6B,EAAcp6B,GAASA,EAAMhB,iBACjC,OAAIo7B,GAAeA,EAAYn8B,KAAKlzB,QAAQswC,SACjC8e,GAAaxtB,GAAuBytB,EAAY54E,WAGhDw+C,EAGf,SAASq6B,GAAsB5tB,GAC3B,IAAI/yD,EAAO,GACPqxB,EAAU0hC,EAAKlH,SAEnB,IAAK,IAAI53D,KAAOo9B,EAAQ8oC,UACpBn6D,EAAK/L,GAAO8+D,EAAK9+D,GAIrB,IAAI6O,EAAYuuB,EAAQiuC,iBACxB,IAAK,IAAIrrE,KAAO6O,EACZ9C,EAAKygD,EAASxsD,IAAQ6O,EAAU7O,GAEpC,OAAO+L,EAEX,SAAS4gF,GAAYC,EAAGC,GAEpB,GAAI,iBAAiBjoF,KAAKioF,EAAS17B,KAC/B,OAAOy7B,EAAE,aAAc,CACnB/xE,MAAOgyE,EAASx7B,iBAAiB6U,YAc7C,IAAI4mB,GAAgB,SAAUhuF,GAAK,OAAOA,EAAEqyD,KAAOc,GAAmBnzD,IAClEiuF,GAAmB,SAAUhuF,GAAK,MAAkB,SAAXA,EAAEC,MAC3CguF,GAAa,CACbhuF,KAAM,aACN6b,MAAO0xE,GACP7e,UAAU,EACVvkC,OAAQ,SAAUyjD,GACd,IAAItmF,EAAQ/C,KACRsQ,EAAWtQ,KAAKq1D,OAAOrB,QAC3B,GAAK1jD,IAILA,EAAWA,EAASd,OAAO+5E,KAEb5rF,OAAd,CAII,EAIJ,IAAItB,EAAO2D,KAAK3D,KAEZ,EAGJ,IAAIitF,EAAWh5E,EAAS,GAGxB,GAzCR,SAA6Bw+C,GACzB,KAAQA,EAAQA,EAAM51C,QAClB,GAAI41C,EAAMtmD,KAAK8L,WACX,OAAO,EAsCPo1E,CAAoB1pF,KAAKk0D,QACzB,OAAOo1B,EAIX,IAAIvxE,EAAQkxE,GAAaK,GAEzB,IAAKvxE,EACD,OAAOuxE,EAEX,GAAItpF,KAAK2pF,SACL,OAAOP,GAAYC,EAAGC,GAK1B,IAAIj6B,EAAK,gBAAgBvlD,OAAO9J,KAAKkuE,KAAM,KAC3Cn2D,EAAMtb,IACW,MAAbsb,EAAMtb,IACAsb,EAAMu2C,UACFe,EAAK,UACLA,EAAKt3C,EAAM61C,IACfhG,EAAY7vC,EAAMtb,KACoB,IAAlC+E,OAAOuW,EAAMtb,KAAKqL,QAAQunD,GACtBt3C,EAAMtb,IACN4yD,EAAKt3C,EAAMtb,IACfsb,EAAMtb,IACpB,IAAI+L,GAASuP,EAAMvP,OAASuP,EAAMvP,KAAO,KAAK8L,WAC1C60E,GAAsBnpF,MACtB4pF,EAAc5pF,KAAK4nE,OACnBiiB,EAAWZ,GAAaW,GAM5B,GAHI7xE,EAAMvP,KAAKqjE,YAAc9zD,EAAMvP,KAAKqjE,WAAWrrB,KAAKgpC,MACpDzxE,EAAMvP,KAAKo6E,MAAO,GAElBiH,GACAA,EAASrhF,OAvErB,SAAqBuP,EAAO8xE,GACxB,OAAOA,EAASptF,MAAQsb,EAAMtb,KAAOotF,EAASj8B,MAAQ71C,EAAM61C,IAuEnDk8B,CAAY/xE,EAAO8xE,KACnBn7B,GAAmBm7B,MAElBA,EAAS17B,oBACP07B,EAAS17B,kBAAkByZ,OAAOtZ,WAAY,CAGlD,IAAImpB,EAAWoS,EAASrhF,KAAK8L,WAAa9U,EAAO,GAAIgJ,GAErD,GAAa,WAATnM,EAOA,OALA2D,KAAK2pF,UAAW,EAChB72B,GAAe2kB,EAAS,cAAc,WAClC10E,EAAM4mF,UAAW,EACjB5mF,EAAMklE,kBAEHmhB,GAAYC,EAAGC,GAErB,GAAa,WAATjtF,EAAmB,CACxB,GAAIqyD,GAAmB32C,GACnB,OAAO6xE,EAEX,IAAIG,EACAzG,EAAe,WACfyG,KAEJj3B,GAAetqD,EAAM,aAAc86E,GACnCxwB,GAAetqD,EAAM,iBAAkB86E,GACvCxwB,GAAe2kB,EAAS,cAAc,SAAUsL,GAC5CgH,EAAiBhH,MAI7B,OAAOuG,KAKXhyE,GAAQ9X,EAAO,CACfouD,IAAKpsD,OACLwoF,UAAWxoF,QACZwnF,IA8HH,SAASiB,GAAe1uF,GAEhBA,EAAEsyD,IAAIq8B,SACN3uF,EAAEsyD,IAAIq8B,UAGN3uF,EAAEsyD,IAAIuzB,UACN7lF,EAAEsyD,IAAIuzB,WAGd,SAAS+I,GAAe5uF,GACpBA,EAAEiN,KAAKy+B,OAAS1rC,EAAEsyD,IAAIh3C,wBAE1B,SAASuzE,GAAiB7uF,GACtB,IAAI8uF,EAAS9uF,EAAEiN,KAAK8hF,IAChBrjD,EAAS1rC,EAAEiN,KAAKy+B,OAChBsjD,EAAKF,EAAOhzE,KAAO4vB,EAAO5vB,KAC1BmzE,EAAKH,EAAOjzE,IAAM6vB,EAAO7vB,IAC7B,GAAImzE,GAAMC,EAAI,CACVjvF,EAAEiN,KAAKiiF,OAAQ,EACf,IAAIxtF,EAAI1B,EAAEsyD,IAAIr9C,MACdvT,EAAEkX,UAAYlX,EAAEytF,gBAAkB,aAAa5gF,OAAOygF,EAAI,OAAOzgF,OAAO0gF,EAAI,OAC5EvtF,EAAEkH,mBAAqB,aAnJxBmT,GAAMjb,KAuJb,IAAIsuF,GAAqB,CACrBlB,WAAYA,GACZmB,gBAxJkB,CAClBtzE,MAAOA,GACPuzE,YAAa,WACT,IAAI9nF,EAAQ/C,KACRgf,EAAShf,KAAK6vE,QAClB7vE,KAAK6vE,QAAU,SAAU/gB,EAAO4X,GAC5B,IAAIqJ,EAAwBnT,GAAkB75D,GAE9CA,EAAMitE,UAAUjtE,EAAM6kE,OAAQ7kE,EAAM+nF,MAAM,GAC1C,GAEA/nF,EAAM6kE,OAAS7kE,EAAM+nF,KACrB/a,IACA/wD,EAAO3jB,KAAK0H,EAAO+rD,EAAO4X,KAGlC9gC,OAAQ,SAAUyjD,GAOd,IANA,IAAIz7B,EAAM5tD,KAAK4tD,KAAO5tD,KAAKk0D,OAAO1rD,KAAKolD,KAAO,OAC1CtzC,EAAM1e,OAAOY,OAAO,MACpBuuF,EAAgB/qF,KAAK+qF,aAAe/qF,KAAKsQ,SACzC06E,EAAchrF,KAAKq1D,OAAOrB,SAAW,GACrC1jD,EAAYtQ,KAAKsQ,SAAW,GAC5B26E,EAAiB9B,GAAsBnpF,MAClC9E,EAAI,EAAGA,EAAI8vF,EAAYrtF,OAAQzC,IAAK,CAEzC,IADIK,EAAIyvF,EAAY9vF,IACd0yD,IACF,GAAa,MAATryD,EAAEkB,KAAoD,IAArC+E,OAAOjG,EAAEkB,KAAKqL,QAAQ,WACvCwI,EAAS1I,KAAKrM,GACd+e,EAAI/e,EAAEkB,KAAOlB,GACZA,EAAEiN,OAASjN,EAAEiN,KAAO,KAAK8L,WAAa22E,QAWnD,GAAIF,EAAc,CACd,IAAID,EAAO,GACPI,EAAU,GACd,IAAShwF,EAAI,EAAGA,EAAI6vF,EAAaptF,OAAQzC,IAAK,CAC1C,IAAIK,KAAIwvF,EAAa7vF,IACnBsN,KAAK8L,WAAa22E,EAEpB1vF,EAAEiN,KAAK8hF,IAAM/uF,EAAEsyD,IAAIh3C,wBACfyD,EAAI/e,EAAEkB,KACNquF,EAAKljF,KAAKrM,GAGV2vF,EAAQtjF,KAAKrM,GAGrByE,KAAK8qF,KAAOzB,EAAEz7B,EAAK,KAAMk9B,GACzB9qF,KAAKkrF,QAAUA,EAEnB,OAAO7B,EAAEz7B,EAAK,KAAMt9C,IAExB8gE,QAAS,WACL,IAAI9gE,EAAWtQ,KAAK+qF,aAChBf,EAAYhqF,KAAKgqF,YAAchqF,KAAKvE,MAAQ,KAAO,QAClD6U,EAAS3S,QAAWqC,KAAKmrF,QAAQ76E,EAAS,GAAGu9C,IAAKm8B,KAKvD15E,EAAS9S,QAAQysF,IACjB35E,EAAS9S,QAAQ2sF,IACjB75E,EAAS9S,QAAQ4sF,IAIjBpqF,KAAKorF,QAAUlsF,SAAS2Q,KAAKnL,aAC7B4L,EAAS9S,SAAQ,SAAUjC,GACvB,GAAIA,EAAEiN,KAAKiiF,MAAO,CACd,IAAIY,EAAO9vF,EAAEsyD,IACT5wD,EAAIouF,EAAK76E,MACbmvE,GAAmB0L,EAAMrB,GACzB/sF,EAAEkX,UAAYlX,EAAEytF,gBAAkBztF,EAAEkH,mBAAqB,GACzDknF,EAAKn9E,iBAAiBgxE,GAAqBmM,EAAKnB,QAAU,SAAS5pB,EAAGpgE,GAC9DA,GAAKA,EAAE0G,SAAWykF,GAGjBnrF,IAAK,aAAamB,KAAKnB,EAAEorF,gBAC1BD,EAAKv7E,oBAAoBovE,GAAoB5e,GAC7C+qB,EAAKnB,QAAU,KACfrK,GAAsBwL,EAAMrB,YAMhDzmB,QAAS,CACL4nB,QAAS,SAAUn3E,EAAIg2E,GAEnB,IAAKhL,GACD,OAAO,EAGX,GAAIh/E,KAAKurF,SACL,OAAOvrF,KAAKurF,SAOhB,IAAInlB,EAAQpyD,EAAGkY,YACXlY,EAAG4jE,oBACH5jE,EAAG4jE,mBAAmBp6E,SAAQ,SAAUk6E,GACpCrkE,GAAY+yD,EAAOsR,MAG3B3kE,GAASqzD,EAAO4jB,GAChB5jB,EAAM51D,MAAM82B,QAAU,OACtBtnC,KAAKof,IAAI7G,YAAY6tD,GACrB,IAAIzW,EAAOqwB,GAAkB5Z,GAE7B,OADApmE,KAAKof,IAAI5F,YAAY4sD,GACbpmE,KAAKurF,SAAW57B,EAAKixB,iBAoCzC5T,GAAI9nE,OAAOwmD,YAAcA,GACzBshB,GAAI9nE,OAAOmmD,cAAgBA,GAC3B2hB,GAAI9nE,OAAOomD,eAAiBA,GAC5B0hB,GAAI9nE,OAAOsmD,gBAAkBA,GAC7BwhB,GAAI9nE,OAAOqmD,iBA5+FX,SAA0BqC,GAEtB,IAAKzB,EACD,OAAO,EAEX,GAAId,GAAcuC,GACd,OAAO,EAIX,GAFAA,EAAMA,EAAIroD,cAEsB,MAA5BkuE,GAAoB7lB,GACpB,OAAO6lB,GAAoB7lB,GAE/B,IAAI55C,EAAK9U,SAASmR,cAAcu9C,GAChC,OAAIA,EAAI9lD,QAAQ,MAAQ,EAEZ2rE,GAAoB7lB,GACxB55C,EAAGlW,cAAgBmB,OAAOusF,oBACtBx3E,EAAGlW,cAAgBmB,OAAOwsF,YAG1BhY,GAAoB7lB,GAAO,qBAAqBvsD,KAAK2S,EAAG9W,aAy9FxEsC,EAAOwtE,GAAInzC,QAAQgyC,WAAY+c,IAC/BppF,EAAOwtE,GAAInzC,QAAQnd,WAAYiuE,IAE/B3d,GAAIlwE,UAAUkzE,UAAY7jB,EAAYs3B,GAAQn5E,EAE9C0iE,GAAIlwE,UAAUoqE,OAAS,SAAUlzD,EAAI0yD,GAEjC,OAvoMJ,SAAwBjZ,EAAIz5C,EAAI0yD,GAoB5B,IAAIglB,EAnBJj+B,EAAGruC,IAAMpL,EACJy5C,EAAG4G,SAASzuB,SAEb6nB,EAAG4G,SAASzuB,OAAS+oB,IAezB0O,GAAW5P,EAAI,eAoBXi+B,EAAkB,WACdj+B,EAAGoiB,QAAQpiB,EAAG4iB,UAAW3J,IAiBjC,IAAIvF,GAAQ1T,EAAIi+B,EAAiBphF,EAdZ,CACjBg0D,OAAQ,WACA7Q,EAAGkR,aAAelR,EAAGmR,cACrBvB,GAAW5P,EAAI,mBAW4B,GACvDiZ,GAAY,EAEZ,IAAIilB,EAAcl+B,EAAGm+B,aACrB,GAAID,EACA,IAAK,IAAIzwF,EAAI,EAAGA,EAAIywF,EAAYhuF,OAAQzC,IACpCywF,EAAYzwF,GAAG+O,MASvB,OAJiB,MAAbwjD,EAAGyG,SACHzG,EAAGkR,YAAa,EAChBtB,GAAW5P,EAAI,YAEZA,EA+jMAo+B,CAAe7rF,KADtBgU,EAAKA,GAAMm4C,EAAYpxC,GAAM/G,QAAMjG,EACH24D,IAIhCva,GACA/oD,YAAW,WACH8B,EAAO6lD,UACHA,IACAA,GAAS5/C,KAAK,OAAQ6hE,MAiB/B,GAGP,IAAI8e,GAAe,2BACfC,GAAgB,yBAChBC,GAAajjC,GAAO,SAAUkjC,GAC9B,IAAIl/E,EAAOk/E,EAAW,GAAGnsF,QAAQisF,GAAe,QAC5CG,EAAQD,EAAW,GAAGnsF,QAAQisF,GAAe,QACjD,OAAO,IAAIvmF,OAAOuH,EAAO,gBAAkBm/E,EAAO,QAiEtD,IAAIC,GAAQ,CACRC,WAAY,CAAC,eACbC,cAhCJ,SAAyBr4E,EAAI6lB,GACdA,EAAQ+lB,KAAnB,IACIizB,EAAc2H,GAAiBxmE,EAAI,SAUnC6+D,IACA7+D,EAAG6+D,YAAc1xE,KAAKC,UAAUyxE,EAAY/yE,QAAQ,OAAQ,KAAKF,SAErE,IAAI0sF,EAAejS,GAAermE,EAAI,SAAS,GAC3Cs4E,IACAt4E,EAAGs4E,aAAeA,IAgBtBC,QAbJ,SAAmBv4E,GACf,IAAIxL,EAAO,GAOX,OANIwL,EAAG6+D,cACHrqE,GAAQ,eAAesB,OAAOkK,EAAG6+D,YAAa,MAE9C7+D,EAAGs4E,eACH9jF,GAAQ,SAASsB,OAAOkK,EAAGs4E,aAAc,MAEtC9jF,IAuCX,IAMIgkF,GANAh8E,GAAQ,CACR47E,WAAY,CAAC,eACbC,cAjCJ,SAAuBr4E,EAAI6lB,GACZA,EAAQ+lB,KAAnB,IACIs9B,EAAc1C,GAAiBxmE,EAAI,SACnCkpE,IAWAlpE,EAAGkpE,YAAc/7E,KAAKC,UAAUy7E,GAAeK,KAEnD,IAAIuP,EAAepS,GAAermE,EAAI,SAAS,GAC3Cy4E,IACAz4E,EAAGy4E,aAAeA,IAgBtBF,QAbJ,SAAmBv4E,GACf,IAAIxL,EAAO,GAOX,OANIwL,EAAGkpE,cACH10E,GAAQ,eAAesB,OAAOkK,EAAGkpE,YAAa,MAE9ClpE,EAAGy4E,eACHjkF,GAAQ,UAAUsB,OAAOkK,EAAGy4E,aAAc,OAEvCjkF,IASPkkF,GACQ,SAAUl6E,GAGd,OAFAg6E,GAAUA,IAAWttF,SAASmR,cAAc,QACpCqC,UAAYF,EACbg6E,GAAQ/0E,aAInBk1E,GAAapkC,EAAQ,6FAIrBqkC,GAAmBrkC,EAAQ,2DAG3BskC,GAAmBtkC,EAAQ,mSAU3BukC,GAAY,4EACZC,GAAsB,yGACtBC,GAAS,6BAA6BljF,OAAO+hD,EAAc7P,OAAQ,MACnEixC,GAAe,OAAOnjF,OAAOkjF,GAAQ,SAASljF,OAAOkjF,GAAQ,KAC7DE,GAAe,IAAI1nF,OAAO,KAAKsE,OAAOmjF,KACtCE,GAAgB,aAChBC,GAAS,IAAI5nF,OAAO,QAAQsE,OAAOmjF,GAAc,WACjDI,GAAU,qBAEVC,GAAU,SACVC,GAAqB,QAErBC,GAAqBjlC,EAAQ,yBAAyB,GACtDklC,GAAU,GACVC,GAAc,CACd,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,QAAS,IACT,QAAS,KACT,OAAQ,KACR,QAAS,KAETC,GAAc,4BACdC,GAA0B,mCAE1BC,GAAqBtlC,EAAQ,gBAAgB,GAC7CulC,GAA2B,SAAUlgC,EAAKp7C,GAC1C,OAAOo7C,GAAOigC,GAAmBjgC,IAAoB,OAAZp7C,EAAK,IAElD,SAASu7E,GAAW5xF,EAAO6xF,GACvB,IAAIC,EAAKD,EAAuBJ,GAA0BD,GAC1D,OAAOxxF,EAAM2D,QAAQmuF,GAAI,SAAU3oF,GAAS,OAAOooF,GAAYpoF,MAEnE,SAAS4oF,GAAU17E,EAAMqnB,GAoHrB,IAnHA,IAKI45B,EAAM06B,EALNC,EAAQ,GACRC,EAAax0D,EAAQw0D,WACrB1B,EAAa9yD,EAAQ8yD,YAAc7iC,EACnC8iC,EAAmB/yD,EAAQ+yD,kBAAoB9iC,EAC/ChyC,EAAQ,EAERu+C,EAAU,WAGV,GAFA5C,EAAOjhD,EAEF27E,GAAYX,GAAmBW,GAwE/B,CACD,IAAIG,EAAiB,EACjBC,EAAeJ,EAAQ5oF,cACvBipF,EAAef,GAAQc,KACtBd,GAAQc,GAAgB,IAAI/oF,OAAO,kBAAoB+oF,EAAe,UAAW,MAClFE,EAAOj8E,EAAK1S,QAAQ0uF,GAAc,SAAUE,EAAKl3E,EAAM41E,GAavD,OAZAkB,EAAiBlB,EAAOzvF,OACnB6vF,GAAmBe,IAAkC,aAAjBA,IACrC/2E,EAAOA,EACF1X,QAAQ,sBAAuB,MAC/BA,QAAQ,4BAA6B,OAE1CguF,GAAyBS,EAAc/2E,KACvCA,EAAOA,EAAKtV,MAAM,IAElB23B,EAAQ80D,OACR90D,EAAQ80D,MAAMn3E,GAEX,MAEXM,GAAStF,EAAK7U,OAAS8wF,EAAK9wF,OAC5B6U,EAAOi8E,EACPG,EAAYL,EAAcz2E,EAAQw2E,EAAgBx2E,OA9FR,CAC1C,IAAI+2E,EAAUr8E,EAAK1K,QAAQ,KAC3B,GAAgB,IAAZ+mF,EAAe,CAEf,GAAIvB,GAAQjsF,KAAKmR,GAAO,CACpB,IAAIs8E,EAAat8E,EAAK1K,QAAQ,UAC9B,GAAIgnF,GAAc,EAKd,OAJIj1D,EAAQk1D,mBAAqBl1D,EAAQyzD,SACrCzzD,EAAQyzD,QAAQ96E,EAAKw8E,UAAU,EAAGF,GAAah3E,EAAOA,EAAQg3E,EAAa,GAE/EG,EAAQH,EAAa,GACd,WAIf,GAAIvB,GAAmBlsF,KAAKmR,GAAO,CAC/B,IAAI08E,EAAiB18E,EAAK1K,QAAQ,MAClC,GAAIonF,GAAkB,EAElB,OADAD,EAAQC,EAAiB,GAClB,WAIf,IAAIC,EAAe38E,EAAKlN,MAAM+nF,IAC9B,GAAI8B,EAEA,OADAF,EAAQE,EAAa,GAAGxxF,QACjB,WAGX,IAAIyxF,EAAc58E,EAAKlN,MAAM8nF,IAC7B,GAAIgC,EAAa,CACb,IAAIC,EAAWv3E,EAGf,OAFAm3E,EAAQG,EAAY,GAAGzxF,QACvBixF,EAAYQ,EAAY,GAAIC,EAAUv3E,GAC/B,WAGX,IAAIw3E,EAgFhB,WACI,IAAIj5D,EAAQ7jB,EAAKlN,MAAM4nF,IACvB,GAAI72D,EAAO,CACP,IAAI/wB,EAAQ,CACRuuE,QAASx9C,EAAM,GACf1iB,MAAO,GACP0iB,MAAOve,GAEXm3E,EAAQ54D,EAAM,GAAG14B,QAEjB,IADA,IAAI44B,OAAM,EAAQ7iB,OAAO,IAChB6iB,EAAM/jB,EAAKlN,MAAM6nF,OACrBz5E,EAAOlB,EAAKlN,MAAMynF,KAAwBv6E,EAAKlN,MAAMwnF,MACtDp5E,EAAK2iB,MAAQve,EACbm3E,EAAQv7E,EAAK,GAAG/V,QAChB+V,EAAK6iB,IAAMze,EACXxS,EAAMqO,MAAM/L,KAAK8L,GAErB,GAAI6iB,EAIA,OAHAjxB,EAAMiqF,WAAah5D,EAAI,GACvB04D,EAAQ14D,EAAI,GAAG54B,QACf2H,EAAMixB,IAAMze,EACLxS,GArGakqF,GACpB,GAAIF,EAKA,OAmGhB,SAAwBhqF,GACpB,IAAIuuE,EAAUvuE,EAAMuuE,QAChB0b,EAAajqF,EAAMiqF,WACnBlB,IACgB,MAAZF,GAAmBtB,GAAiBhZ,IACpC+a,EAAYT,GAEZvB,EAAiB/Y,IAAYsa,IAAYta,GACzC+a,EAAY/a,IAMpB,IAHA,IAAI4b,EAAQ9C,EAAW9Y,MAAc0b,EACjCp0F,EAAImK,EAAMqO,MAAMhW,OAChBgW,EAAQ,IAAIxM,MAAMhM,GACbD,EAAI,EAAGA,EAAIC,EAAGD,IAAK,CACxB,IAAIgM,EAAO5B,EAAMqO,MAAMzY,GACnBiB,EAAQ+K,EAAK,IAAMA,EAAK,IAAMA,EAAK,IAAM,GACzC8mF,EAAmC,MAAZna,GAA+B,SAAZ3sE,EAAK,GAC7C2yB,EAAQ61D,4BACR71D,EAAQm0D,qBACdr6E,EAAMzY,GAAK,CACPO,KAAMyL,EAAK,GACX/K,MAAO4xF,GAAW5xF,EAAO6xF,IAO5ByB,IACDrB,EAAMxmF,KAAK,CACPgmD,IAAKimB,EACL8b,cAAe9b,EAAQtuE,cACvBoO,MAAOA,EACP0iB,MAAO/wB,EAAM+wB,MACbE,IAAKjxB,EAAMixB,MAEf43D,EAAUta,GAEVh6C,EAAQxD,OACRwD,EAAQxD,MAAMw9C,EAASlgE,EAAO87E,EAAOnqF,EAAM+wB,MAAO/wB,EAAMixB,KA/IhDq5D,CAAeN,GACXxB,GAAyBwB,EAAczb,QAASrhE,IAChDy8E,EAAQ,GAEL,WAGf,IAAIz3E,OAAO,EAAQi3E,OAAO,EAAQ/1E,OAAO,EACzC,GAAIm2E,GAAW,EAAG,CAEd,IADAJ,EAAOj8E,EAAKtQ,MAAM2sF,KACVzB,GAAO/rF,KAAKotF,IACfvB,GAAa7rF,KAAKotF,IAClBnB,GAAQjsF,KAAKotF,IACblB,GAAmBlsF,KAAKotF,KAEzB/1E,EAAO+1E,EAAK3mF,QAAQ,IAAK,IACd,IAEX+mF,GAAWn2E,EACX+1E,EAAOj8E,EAAKtQ,MAAM2sF,GAEtBr3E,EAAOhF,EAAKw8E,UAAU,EAAGH,GAEzBA,EAAU,IACVr3E,EAAOhF,GAEPgF,GACAy3E,EAAQz3E,EAAK7Z,QAEbk8B,EAAQ80D,OAASn3E,GACjBqiB,EAAQ80D,MAAMn3E,EAAMM,EAAQN,EAAK7Z,OAAQma,GA2BjD,GAAItF,IAASihD,EAOT,OANA55B,EAAQ80D,OAAS90D,EAAQ80D,MAAMn8E,GAMxB,SAGRA,GAAM,CAET,GAAgB,UADF6jD,IAEV,MAIR,SAAS44B,EAAQtyF,GACbmb,GAASnb,EACT6V,EAAOA,EAAKw8E,UAAUryF,GAsE1B,SAASiyF,EAAY/a,EAASx9C,EAAOE,GACjC,IAAI+zD,EAAKuF,EAMT,GALa,MAATx5D,IACAA,EAAQve,GACD,MAAPye,IACAA,EAAMze,GAEN+7D,EAEA,IADAgc,EAAoBhc,EAAQtuE,cACvB+kF,EAAM8D,EAAMzwF,OAAS,EAAG2sF,GAAO,GAC5B8D,EAAM9D,GAAKqF,gBAAkBE,EADEvF,UAQvCA,EAAM,EAEV,GAAIA,GAAO,EAAG,CAEV,IAAK,IAAIpvF,EAAIkzF,EAAMzwF,OAAS,EAAGzC,GAAKovF,EAAKpvF,IAOjC2+B,EAAQtD,KACRsD,EAAQtD,IAAI63D,EAAMlzF,GAAG0yD,IAAKv3B,EAAOE,GAIzC63D,EAAMzwF,OAAS2sF,EACf6D,EAAU7D,GAAO8D,EAAM9D,EAAM,GAAG18B,QAEL,OAAtBiiC,EACDh2D,EAAQxD,OACRwD,EAAQxD,MAAMw9C,EAAS,IAAI,EAAMx9C,EAAOE,GAGjB,MAAtBs5D,IACDh2D,EAAQxD,OACRwD,EAAQxD,MAAMw9C,EAAS,IAAI,EAAOx9C,EAAOE,GAEzCsD,EAAQtD,KACRsD,EAAQtD,IAAIs9C,EAASx9C,EAAOE,IAvHxCq4D,IA6HJ,IAgBIhvC,GACAqsC,GACA6D,GACAC,GACAC,GACAC,GACAC,GACAC,GAvBAC,GAAO,YACPC,GAAQ,eACRC,GAAa,qCACbC,GAAgB,iCAChBC,GAAgB,WAChBC,GAAe,WACfC,GAAQ,SACRC,GAAS,kBACTC,GAAa,wBACbC,GAAS,kBACTC,GAAc,SACdC,GAAe,gBAEfC,GAAmBjoC,EAAO2jC,IAY9B,SAASuE,GAAiBrjC,EAAKj6C,EAAOuF,GAClC,MAAO,CACH0V,KAAM,EACNg/B,IAAKA,EACL+rB,UAAWhmE,EACX+lE,SAAUwX,GAAav9E,GACvBw9E,YAAa,GACbj4E,OAAQA,EACR5I,SAAU,IAMlB,SAAShO,GAAM8uF,EAAUv3D,GACrB+lB,GAAO/lB,EAAQ+lB,MAAQo5B,GACvBiX,GAAmBp2D,EAAQw3D,UAAYvnC,EACvComC,GAAsBr2D,EAAQ6xB,aAAe5B,EAC7CqmC,GAA0Bt2D,EAAQ2xB,iBAAmB1B,EACrD,IAAIuB,EAAgBxxB,EAAQwxB,eAAiBvB,GAC5B,SAAU91C,GACvB,UAAUA,EAAGy1D,WACTz1D,EAAG0lE,SAAS,QACZ1lE,EAAG0lE,SAAS,gBACV1lE,EAAG0lE,SAAS7yE,GAAKwkD,EAAcr3C,EAAG0lE,SAAS7yE,IAAMwkD,EAAcr3C,EAAG45C,SAE5EkiC,GAAa5W,GAAoBr/C,EAAQz+B,QAAS,iBAClD20F,GAAgB7W,GAAoBr/C,EAAQz+B,QAAS,oBACrD40F,GAAiB9W,GAAoBr/C,EAAQz+B,QAAS,qBACtD6wF,GAAapyD,EAAQoyD,WACrB,IAGIlmF,EACAurF,EAJAlD,EAAQ,GACRmD,GAAoD,IAA/B13D,EAAQ03D,mBAC7BC,EAAmB33D,EAAQ43D,WAG3B3K,GAAS,EACT4K,GAAQ,EAQZ,SAASC,EAAa/tF,GAuBlB,GAtBAguF,EAAqBhuF,GAChBkjF,GAAWljF,EAAQiuF,YACpBjuF,EAAUkuF,GAAeluF,EAASi2B,IAGjCu0D,EAAMzwF,QAAUiG,IAAYmC,GAEzBA,EAAKgsF,KAAOnuF,EAAQouF,QAAUpuF,EAAQquF,OAItCC,GAAensF,EAAM,CACjBqyE,IAAKx0E,EAAQouF,OACbG,MAAOvuF,IASf0tF,IAAkB1tF,EAAQwuF,UAC1B,GAAIxuF,EAAQouF,QAAUpuF,EAAQquF,KA+Wbj+E,EA9WOpQ,GA+W5BkV,EAYR,SAAyBxI,GAErB,IADA,IAAIpV,EAAIoV,EAAS3S,OACVzC,KAAK,CACR,GAAyB,IAArBoV,EAASpV,GAAG0zB,KACZ,OAAOte,EAASpV,GAOhBoV,EAASuiB,OAvBNw/D,CA/W8Bf,EA+WPhhF,YACtBwI,EAAKi5E,IACbG,GAAep5E,EAAM,CACjBs/D,IAAKpkE,EAAGg+E,OACRG,MAAOn+E,QAjXF,CACD,GAAIpQ,EAAQ0uF,UAAW,CAInB,IAAIj5B,EAASz1D,EAAQ2uF,YAAc,aAClCjB,EAAcv9B,cAAgBu9B,EAAcv9B,YAAc,KAAKsF,GAAUz1D,EAE9E0tF,EAAchhF,SAAS1I,KAAKhE,GAC5BA,EAAQsV,OAASo4E,EAmWjC,IAA6Bt9E,EACrB8E,EA/VAlV,EAAQ0M,SAAW1M,EAAQ0M,SAASd,QAAO,SAAUjU,GAAK,OAAQA,EAAE+2F,aAEpEV,EAAqBhuF,GAEjBA,EAAQuwD,MACR2yB,GAAS,GAETmJ,GAAiBrsF,EAAQgqD,OACzB8jC,GAAQ,GAGZ,IAAK,IAAIx2F,EAAI,EAAGA,EAAI80F,GAAeryF,OAAQzC,IACvC80F,GAAe90F,GAAG0I,EAASi2B,GAGnC,SAAS+3D,EAAqB59E,GAE1B,IAAK09E,EAED,IADA,IAAIc,OAAW,GACPA,EAAWx+E,EAAG1D,SAAS0D,EAAG1D,SAAS3S,OAAS,KAC9B,IAAlB60F,EAAS5jE,MACS,MAAlB4jE,EAASh7E,MACTxD,EAAG1D,SAASuiB,MA4MxB,OA9LAq7D,GAAUkD,EAAU,CAChBxxC,KAAMA,GACNyuC,WAAYx0D,EAAQw0D,WACpB1B,WAAY9yD,EAAQ8yD,WACpBC,iBAAkB/yD,EAAQ+yD,iBAC1BoB,qBAAsBn0D,EAAQm0D,qBAC9B0B,4BAA6B71D,EAAQ61D,4BACrCX,kBAAmBl1D,EAAQ44D,SAC3BC,kBAAmB74D,EAAQ64D,kBAC3Br8D,MAAO,SAAUu3B,EAAKj6C,EAAO87E,EAAOp5D,EAAOE,GAGvC,IAAIh6B,EAAM+0F,GAAiBA,EAAc/0F,IAAO4zF,GAAwBviC,GAGpEtU,GAAe,QAAP/8C,IACRoX,EA0mBhB,SAAuBA,GAEnB,IADA,IAAIk2C,EAAM,GACD3uD,EAAI,EAAGA,EAAIyY,EAAMhW,OAAQzC,IAAK,CACnC,IAAIwY,EAAOC,EAAMzY,GACZy3F,GAAQtxF,KAAKqS,EAAKjY,QACnBiY,EAAKjY,KAAOiY,EAAKjY,KAAKqE,QAAQ8yF,GAAY,IAC1C/oC,EAAIjiD,KAAK8L,IAGjB,OAAOm2C,EAnnBagpC,CAAcl/E,IAE1B,IAgmBYK,EAhmBRpQ,EAAUqtF,GAAiBrjC,EAAKj6C,EAAO29E,GACvC/0F,IACAqH,EAAQrH,GAAKA,GA+lBN,WADCyX,EAvkBOpQ,GAwkBhBgqD,MACK,WAAX55C,EAAG45C,KACE55C,EAAG0lE,SAAS9qD,MAA6B,oBAArB5a,EAAG0lE,SAAS9qD,OA1kBF+9B,OAC5B/oD,EAAQwuF,WAAY,GAQxB,IAAK,IAAIl3F,EAAI,EAAGA,EAAI60F,GAAcpyF,OAAQzC,IACtC0I,EAAUmsF,GAAc70F,GAAG0I,EAASi2B,IAAYj2B,EAE/CkjF,KAyIjB,SAAoB9yE,GACqB,MAAjCwmE,GAAiBxmE,EAAI,WACrBA,EAAGmgD,KAAM,GA1ID2+B,CAAWlvF,GACPA,EAAQuwD,MACR2yB,GAAS,IAGbmJ,GAAiBrsF,EAAQgqD,OACzB8jC,GAAQ,GAER5K,EAqIhB,SAAyB9yE,GACrB,IAAIy0C,EAAOz0C,EAAG2lE,UACV3vE,EAAMy+C,EAAK9qD,OACf,GAAIqM,EAEA,IADA,IAAI2J,EAASK,EAAGL,MAAQ,IAAIxM,MAAM6C,GACzB9O,EAAI,EAAGA,EAAI8O,EAAK9O,IACrByY,EAAMzY,GAAK,CACPO,KAAMgtD,EAAKvtD,GAAGO,KACdU,MAAOgF,KAAKC,UAAUqnD,EAAKvtD,GAAGiB,QAEb,MAAjBssD,EAAKvtD,GAAGm7B,QACR1iB,EAAMzY,GAAGm7B,MAAQoyB,EAAKvtD,GAAGm7B,MACzB1iB,EAAMzY,GAAGq7B,IAAMkyB,EAAKvtD,GAAGq7B,UAIzBviB,EAAGmgD,MAETngD,EAAGslE,OAAQ,GAtJHyZ,CAAgBnvF,GAEVA,EAAQiuF,YAEdmB,GAAWpvF,GAkO3B,SAAmBoQ,GACf,IAAIokE,EAAMoC,GAAiBxmE,EAAI,QAC/B,GAAIokE,EACApkE,EAAG+9E,GAAK3Z,EACR8Z,GAAel+E,EAAI,CACfokE,IAAKA,EACL+Z,MAAOn+E,QAGV,CACqC,MAAlCwmE,GAAiBxmE,EAAI,YACrBA,EAAGi+E,MAAO,GAEd,IAAID,EAASxX,GAAiBxmE,EAAI,aAC9Bg+E,IACAh+E,EAAGg+E,OAASA,IAhPRiB,CAAUrvF,GAsR1B,SAAqBoQ,GAEL,MADDwmE,GAAiBxmE,EAAI,YAE5BA,EAAGjJ,MAAO,GAxRFmoF,CAAYtvF,IAEXmC,IACDA,EAAOnC,GAKN6rF,EAKDkC,EAAa/tF,IAJb0tF,EAAgB1tF,EAChBwqF,EAAMxmF,KAAKhE,KAMnB2yB,IAAK,SAAUq3B,EAAKv3B,EAAOE,GACvB,IAAI3yB,EAAUwqF,EAAMA,EAAMzwF,OAAS,GAEnCywF,EAAMzwF,QAAU,EAChB2zF,EAAgBlD,EAAMA,EAAMzwF,OAAS,GAIrCg0F,EAAa/tF,IAEjB+qF,MAAO,SAAUn3E,EAAM6e,EAAOE,GAC1B,GAAK+6D,KAeDh4C,GACsB,aAAtBg4C,EAAc1jC,KACd0jC,EAAc5X,SAAS0P,cAAgB5xE,GAF3C,CAKA,IAyfOxD,EAzfH1D,EAAWghF,EAAchhF,SAuB7B,GArBIkH,EADAk6E,GAASl6E,EAAK5X,OAyfR,YADHoU,EAvfcs9E,GAwfnB1jC,KAA+B,UAAX55C,EAAG45C,IAvffp2C,EACAw5E,GAAiBx5E,GAEjBlH,EAAS3S,OAIV6zF,EACoB,aAArBA,GAGOV,GAAYzvF,KAAKmW,GAAQ,GAGzB,IAIJ+5E,EAAqB,IAAM,GAb3B,GAeD,CACDG,GAA8B,aAArBF,IAEVh6E,EAAOA,EAAK1X,QAAQixF,GAAc,MAEtC,IAAIlnC,OAAM,EACN9xC,OAAQ,GACP+uE,GAAmB,MAATtvE,IAAiBqyC,EAnsBhD,SAAmBryC,EAAMy0E,GAErB,IAAIkH,EAAQlH,EAAaD,GAAWC,GAAcH,GAClD,GAAKqH,EAAM9xF,KAAKmW,GAAhB,CAOA,IAJA,IAGIlS,EAAOwS,EAAOs7E,EAHdC,EAAS,GACTC,EAAY,GACZhvD,EAAa6uD,EAAM7uD,UAAY,EAE3Bh/B,EAAQ6tF,EAAMI,KAAK/7E,IAAQ,EAC/BM,EAAQxS,EAAMwS,OAEFwsB,IACRgvD,EAAU1rF,KAAMwrF,EAAa57E,EAAKtV,MAAMoiC,EAAWxsB,IACnDu7E,EAAOzrF,KAAKzG,KAAKC,UAAUgyF,KAG/B,IAAIhb,EAAMD,GAAa7yE,EAAM,GAAG1F,QAChCyzF,EAAOzrF,KAAK,MAAMkC,OAAOsuE,EAAK,MAC9Bkb,EAAU1rF,KAAK,CAAE,WAAYwwE,IAC7B9zC,EAAYxsB,EAAQxS,EAAM,GAAG3H,OAMjC,OAJI2mC,EAAY9sB,EAAK7Z,SACjB21F,EAAU1rF,KAAMwrF,EAAa57E,EAAKtV,MAAMoiC,IACxC+uD,EAAOzrF,KAAKzG,KAAKC,UAAUgyF,KAExB,CACHpxB,WAAYqxB,EAAOlxF,KAAK,KACxBkxF,OAAQC,IAsqBsCE,CAAUh8E,EAAMy0E,KAClDl0E,EAAQ,CACJ6W,KAAM,EACNozC,WAAYnY,EAAImY,WAChBqxB,OAAQxpC,EAAIwpC,OACZ77E,KAAMA,GAGI,MAATA,GACJlH,EAAS3S,QAC6B,MAAvC2S,EAASA,EAAS3S,OAAS,GAAG6Z,OAC9BO,EAAQ,CACJ6W,KAAM,EACNpX,KAAMA,IAGVO,GAKAzH,EAAS1I,KAAKmQ,MAI1Bu1E,QAAS,SAAU91E,EAAM6e,EAAOE,GAG5B,GAAI+6D,EAAe,CACf,IAAIv5E,EAAQ,CACR6W,KAAM,EACNpX,KAAMA,EACN82C,WAAW,GAEX,EAIJgjC,EAAchhF,SAAS1I,KAAKmQ,OAIjChS,EA4BX,SAAS+rF,GAAeluF,EAASi2B,GAsPjC,IAA2B7lB,GAtO3B,SAAoBA,GAChB,IAAIokE,EAAMiC,GAAermE,EAAI,OAC7B,GAAIokE,EAAK,CAiBLpkE,EAAGvX,IAAM27E,GAlCbqb,CAAW7vF,GAGXA,EAAQ01E,OACH11E,EAAQnH,MAAQmH,EAAQmwD,cAAgBnwD,EAAQ+1E,UAAUh8E,OAiCnE,SAAoBqW,GAChB,IAAI4jB,EAAMyiD,GAAermE,EAAI,OACzB4jB,IACA5jB,EAAG4jB,IAAMA,EACT5jB,EAAG2gE,SA4UX,SAAoB3gE,GAChB,IAAIkF,EAASlF,EACb,KAAOkF,GAAQ,CACX,QAAmBnL,IAAfmL,EAAOw6E,IACP,OAAO,EAEXx6E,EAASA,EAAOA,OAEpB,OAAO,EApVWy6E,CAAW3/E,IApC7B4/E,CAAWhwF,GAoIf,SAA4BoQ,GACxB,IAAIs+E,EACW,aAAXt+E,EAAG45C,KACH0kC,EAAY9X,GAAiBxmE,EAAI,SAQjCA,EAAGs+E,UAAYA,GAAa9X,GAAiBxmE,EAAI,gBAE3Cs+E,EAAY9X,GAAiBxmE,EAAI,iBAOvCA,EAAGs+E,UAAYA,GAGnB,IAAIC,EAAalY,GAAermE,EAAI,QAChCu+E,IACAv+E,EAAGu+E,WAA4B,OAAfA,EAAsB,YAAcA,EACpDv+E,EAAG6/E,qBAAuB7/E,EAAG0lE,SAAS,WAAY1lE,EAAG0lE,SAAS,gBAG/C,aAAX1lE,EAAG45C,KAAuB55C,EAAGs+E,WAC7B/Y,GAAQvlE,EAAI,OAAQu+E,EAplFhC,SAA2Bv+E,EAAIvY,GAC3B,OAAQuY,EAAGm9E,YAAY,IAAM11F,IACzBuY,EAAGm9E,YAAY,UAAY11F,IAC3BuY,EAAGm9E,YAAY11F,GAilFqBq4F,CAAkB9/E,EAAI,UAK1D,GAAe,aAAXA,EAAG45C,IAAoB,CAGvB,GADImmC,EAAcpZ,GAAwB3mE,EAAI68E,IAC7B,CACT,EASJ,IAAIvgB,EAAK0jB,GAAYD,GAAcz6B,EAASgX,EAAG70E,KAAM29E,EAAU9I,EAAG8I,QAClEplE,EAAGu+E,WAAaj5B,EAChBtlD,EAAG6/E,kBAAoBza,EACvBplE,EAAGs+E,UAAYyB,EAAY53F,OA3hBjB,eA8hBb,CAED,IAAI43F,EACJ,GADIA,EAAcpZ,GAAwB3mE,EAAI68E,IAC7B,CACT,EAaJ,IAAIz3B,EAAQplD,EAAG+/C,cAAgB//C,EAAG+/C,YAAc,IAC5C6E,EAAKo7B,GAAYD,GAAcE,EAASr7B,EAAGn9D,KAC3Cy4F,GADiD9a,EAAUxgB,EAAGwgB,QAC3ChgB,EAAM66B,GAAUhD,GAAiB,WAAY,GAAIj9E,IACxEkgF,EAAgB3B,WAAa0B,EAC7BC,EAAgBL,kBAAoBza,EACpC8a,EAAgB5jF,SAAW0D,EAAG1D,SAASd,QAAO,SAAUjU,GACpD,IAAKA,EAAE+2F,UAEH,OADA/2F,EAAE2d,OAASg7E,GACJ,KAGfA,EAAgB5B,UAAYyB,EAAY53F,OA1jB9B,UA4jBV6X,EAAG1D,SAAW,GAEd0D,EAAGslE,OAAQ,IAzNvB6a,CAAmBvwF,GAgPJ,UADQoQ,EA9OLpQ,GA+OXgqD,MACH55C,EAAGogF,SAAW/Z,GAAermE,EAAI,SAQzC,SAA0BA,GACtB,IAAIzI,GACCA,EAAU8uE,GAAermE,EAAI,SAC9BA,EAAGy1D,UAAYl+D,GAE4B,MAA3CivE,GAAiBxmE,EAAI,qBACrBA,EAAGgzD,gBAAiB,GA7PxBqtB,CAAiBzwF,GACjB,IAAK,IAAI1I,EAAI,EAAGA,EAAI40F,GAAWnyF,OAAQzC,IACnC0I,EAAUksF,GAAW50F,GAAG0I,EAASi2B,IAAYj2B,EAGjD,OA2PJ,SAAsBoQ,GAClB,IACI9Y,EAAGC,EAAGM,EAAMi7E,EAASv6E,EAAOojD,EAAW+0C,EAASC,EADhD9rC,EAAOz0C,EAAG2lE,UAEd,IAAKz+E,EAAI,EAAGC,EAAIstD,EAAK9qD,OAAQzC,EAAIC,EAAGD,IAAK,CAGrC,GAFAO,EAAOi7E,EAAUjuB,EAAKvtD,GAAGO,KACzBU,EAAQssD,EAAKvtD,GAAGiB,MACZk0F,GAAMhvF,KAAK5F,GASX,GAPAuY,EAAGwgF,aAAc,GAEjBj1C,EAAYk1C,GAAeh5F,EAAKqE,QAAQuwF,GAAO,QAG3C50F,EAAOA,EAAKqE,QAAQ8wF,GAAY,KAEhCD,GAAOtvF,KAAK5F,GAEZA,EAAOA,EAAKqE,QAAQ6wF,GAAQ,IAC5Bx0F,EAAQg8E,GAAah8E,IACrBo4F,EAAY9D,GAAapvF,KAAK5F,MAE1BA,EAAOA,EAAKyG,MAAM,GAAI,IAKtBq9C,IACIA,EAAUnwC,OAASmlF,GAEN,eADb94F,EAAOwtD,EAASxtD,MAEZA,EAAO,aAEX8jD,EAAUm1C,QAAUH,IACpB94F,EAAOwtD,EAASxtD,IAEhB8jD,EAAUmiB,OACV4yB,EAAUvZ,GAAkB5+E,EAAO,UAC9Bo4F,EAQDxa,GAAW/lE,EAAI,cAAgBlK,OAAOrO,EAAM,KAAM64F,EAAS,MAAM,EAAO10C,EAAM6I,EAAKvtD,IAAI,IAPvF6+E,GAAW/lE,EAAI,UAAUlK,OAAOm/C,EAASxtD,IAAQ64F,EAAS,MAAM,EAAO10C,EAAM6I,EAAKvtD,IAC9EkuD,EAAU3tD,KAAUwtD,EAASxtD,IAC7Bs+E,GAAW/lE,EAAI,UAAUlK,OAAOs/C,EAAU3tD,IAAQ64F,EAAS,MAAM,EAAO10C,EAAM6I,EAAKvtD,OAU9FqkD,GAAaA,EAAUnwC,OACtB4E,EAAGy1D,WAAaymB,GAAoBl8E,EAAG45C,IAAK55C,EAAG0lE,SAAS9qD,KAAMnzB,GAChE09E,GAAQnlE,EAAIvY,EAAMU,EAAOssD,EAAKvtD,GAAIq5F,GAGlChb,GAAQvlE,EAAIvY,EAAMU,EAAOssD,EAAKvtD,GAAIq5F,QAGrC,GAAInE,GAAK/uF,KAAK5F,GAEfA,EAAOA,EAAKqE,QAAQswF,GAAM,KAC1BmE,EAAY9D,GAAapvF,KAAK5F,MAE1BA,EAAOA,EAAKyG,MAAM,GAAI,IAE1B63E,GAAW/lE,EAAIvY,EAAMU,EAAOojD,GAAW,EAAOK,EAAM6I,EAAKvtD,GAAIq5F,OAE5D,CAID,IAAII,GAFJl5F,EAAOA,EAAKqE,QAAQuwF,GAAO,KAEP/qF,MAAMorF,IACtBva,EAAMwe,GAAYA,EAAS,GAC/BJ,GAAY,EACRpe,IACA16E,EAAOA,EAAKyG,MAAM,IAAKi0E,EAAIx4E,OAAS,IAChC8yF,GAAapvF,KAAK80E,KAClBA,EAAMA,EAAIj0E,MAAM,GAAI,GACpBqyF,GAAY,IAGpB3a,GAAa5lE,EAAIvY,EAAMi7E,EAASv6E,EAAOg6E,EAAKoe,EAAWh1C,EAAWkJ,EAAKvtD,SAiB3Eq+E,GAAQvlE,EAAIvY,EAAM0F,KAAKC,UAAUjF,GAAQssD,EAAKvtD,KAGzC8Y,EAAGy1D,WACK,UAAThuE,GACAy0F,GAAoBl8E,EAAG45C,IAAK55C,EAAG0lE,SAAS9qD,KAAMnzB,IAC9C09E,GAAQnlE,EAAIvY,EAAM,OAAQgtD,EAAKvtD,KApW3C05F,CAAahxF,GACNA,EA+BX,SAASovF,GAAWh/E,GAChB,IAAIokE,EACJ,GAAKA,EAAMoC,GAAiBxmE,EAAI,SAAW,CACvC,IAAI61C,EASZ,SAAkBuuB,GACd,IAAIyc,EAAUzc,EAAI9yE,MAAMgrF,IACxB,IAAKuE,EACD,OACJ,IAAIhrC,EAAM,GACVA,EAAI6pC,IAAMmB,EAAQ,GAAGj1F,OACrB,IAAIk1F,EAAQD,EAAQ,GAAGj1F,OAAOE,QAAQ0wF,GAAe,IACjDuE,EAAgBD,EAAMxvF,MAAMirF,IAC5BwE,GACAlrC,EAAIirC,MAAQA,EAAMh1F,QAAQywF,GAAe,IAAI3wF,OAC7CiqD,EAAImrC,UAAYD,EAAc,GAAGn1F,OAC7Bm1F,EAAc,KACdlrC,EAAIorC,UAAYF,EAAc,GAAGn1F,SAIrCiqD,EAAIirC,MAAQA,EAEhB,OAAOjrC,EA3BOqrC,CAAS9c,GACfvuB,GACArqD,EAAOwU,EAAI61C,IA0EvB,SAASqoC,GAAel+E,EAAImhF,GACnBnhF,EAAGohF,eACJphF,EAAGohF,aAAe,IAEtBphF,EAAGohF,aAAaxtF,KAAKutF,GAqGzB,SAASnB,GAAYzoF,GACjB,IAAI9P,EAAO8P,EAAQ9P,KAAKqE,QAAQ+wF,GAAQ,IASxC,OARKp1F,GACuB,MAApB8P,EAAQ9P,KAAK,KACbA,EAAO,WAMRg1F,GAAapvF,KAAK5F,GAEjB,CAAEA,KAAMA,EAAKyG,MAAM,GAAI,GAAIk3E,SAAS,GAEpC,CAAE39E,KAAM,IAAKqO,OAAOrO,EAAM,KAAO29E,SAAS,GA6ItD,SAASqb,GAAeh5F,GACpB,IAAI6J,EAAQ7J,EAAK6J,MAAMsrF,IACvB,GAAItrF,EAAO,CACP,IAAI+vF,EAAQ,GAIZ,OAHA/vF,EAAM9H,SAAQ,SAAUlC,GACpB+5F,EAAM/5F,EAAE4G,MAAM,KAAM,KAEjBmzF,GAGf,SAASnE,GAAav9E,GAElB,IADA,IAAI2G,EAAM,GACDpf,EAAI,EAAGC,EAAIwY,EAAMhW,OAAQzC,EAAIC,EAAGD,IAIrCof,EAAI3G,EAAMzY,GAAGO,MAAQkY,EAAMzY,GAAGiB,MAElC,OAAOme,EAWX,IAAIq4E,GAAU,eACVC,GAAa,UA8FjB,SAAS0C,GAAgBthF,GACrB,OAAOi9E,GAAiBj9E,EAAG45C,IAAK55C,EAAG2lE,UAAUz3E,QAAS8R,EAAGkF,QAE7D,IAII9d,GAAU,CAAC+wF,GAAO37E,GAJV,CACR+kF,iBA9DJ,SAA0BvhF,EAAI6lB,GAC1B,GAAe,UAAX7lB,EAAG45C,IAAiB,CACpB,IAAItzC,EAAMtG,EAAG0lE,SACb,IAAKp/D,EAAI,WACL,OAEJ,IAAIk7E,OAAc,EAOlB,IANIl7E,EAAI,UAAYA,EAAI,kBACpBk7E,EAAcnb,GAAermE,EAAI,SAEhCsG,EAAIsU,MAAS4mE,IAAel7E,EAAI,YACjCk7E,EAAc,IAAI1rF,OAAOwQ,EAAI,UAAW,WAExCk7E,EAAa,CACb,IAAIC,EAAcjb,GAAiBxmE,EAAI,QAAQ,GAC3C0hF,EAAmBD,EAAc,MAAM3rF,OAAO2rF,EAAa,KAAO,GAClEE,EAAkD,MAAxCnb,GAAiBxmE,EAAI,UAAU,GACzC4hF,EAAkBpb,GAAiBxmE,EAAI,aAAa,GAEpD6hF,EAAUP,GAAgBthF,GAE9Bg/E,GAAW6C,GACXpc,GAAWoc,EAAS,OAAQ,YAC5B/D,GAAe+D,EAASh8D,GACxBg8D,EAAQhE,WAAY,EACpBgE,EAAQ9D,GAAK,IAAIjoF,OAAO0rF,EAAa,kBAAoBE,EACzDxD,GAAe2D,EAAS,CACpBzd,IAAKyd,EAAQ9D,GACbI,MAAO0D,IAGX,IAAIC,EAAUR,GAAgBthF,GAC9BwmE,GAAiBsb,EAAS,SAAS,GACnCrc,GAAWqc,EAAS,OAAQ,SAC5BhE,GAAegE,EAASj8D,GACxBq4D,GAAe2D,EAAS,CACpBzd,IAAK,IAAItuE,OAAO0rF,EAAa,eAAiBE,EAC9CvD,MAAO2D,IAGX,IAAIC,EAAUT,GAAgBthF,GAc9B,OAbAwmE,GAAiBub,EAAS,SAAS,GACnCtc,GAAWsc,EAAS,QAASP,GAC7B1D,GAAeiE,EAASl8D,GACxBq4D,GAAe2D,EAAS,CACpBzd,IAAKqd,EACLtD,MAAO4D,IAEPJ,EACAE,EAAQ5D,MAAO,EAEV2D,IACLC,EAAQ7D,OAAS4D,GAEdC,OAyBnB,IAmBIG,GACAC,GAdAC,GAAc,CACd7H,YAAY,EACZjzF,QAASA,GACTywE,WATa,CACbjC,MAjwFJ,SAAiB51D,EAAItI,EAAKyqF,GACbA,EACT,IAAIh6F,EAAQuP,EAAIvP,MACZojD,EAAY7zC,EAAI6zC,UAChBqO,EAAM55C,EAAG45C,IACTh/B,EAAO5a,EAAG0lE,SAAS9qD,KASvB,GAAI5a,EAAGy1D,UAGH,OAFAmR,GAAkB5mE,EAAI7X,EAAOojD,IAEtB,EAEN,GAAY,WAARqO,GAqDb,SAAmB55C,EAAI7X,EAAOojD,GAC1B,IAAI/I,EAAS+I,GAAaA,EAAU/I,OAChC4/C,EAAc,kJAGd,UAAUtsF,OAAO0sC,EAAS,UAAY,MAAO,MAE7C3nC,EAAO,uBAAuB/E,OAAOssF,EAAa,KACtDvnF,EAAO,GAAG/E,OAAO+E,EAAM,KAAK/E,OAAOixE,GAAkB5+E,EAFpC,8DAGjB49E,GAAW/lE,EAAI,SAAUnF,EAAM,MAAM,GA7DjCwnF,CAAUriF,EAAI7X,EAAOojD,QAEpB,GAAY,UAARqO,GAA4B,aAATh/B,GAuBhC,SAA0B5a,EAAI7X,EAAOojD,GACjC,IAAI/I,EAAS+I,GAAaA,EAAU/I,OAChC8/C,EAAejc,GAAermE,EAAI,UAAY,OAC9CuiF,EAAmBlc,GAAermE,EAAI,eAAiB,OACvDwiF,EAAoBnc,GAAermE,EAAI,gBAAkB,QAC7DmlE,GAAQnlE,EAAI,UAAW,iBAAiBlK,OAAO3N,EAAO,KAClD,OAAO2N,OAAO3N,EAAO,KAAK2N,OAAOwsF,EAAc,SACzB,SAArBC,EACK,KAAKzsF,OAAO3N,EAAO,KACnB,OAAO2N,OAAO3N,EAAO,KAAK2N,OAAOysF,EAAkB,OAC7Dxc,GAAW/lE,EAAI,SAAU,WAAWlK,OAAO3N,EAAO,KAC9C,sBACA,qBAAqB2N,OAAOysF,EAAkB,OAAOzsF,OAAO0sF,EAAmB,MAC/E,0BACA,WAAW1sF,OAAO0sC,EAAS,MAAQ8/C,EAAe,IAAMA,EAAc,KACtE,mBACA,4BAA4BxsF,OAAOixE,GAAkB5+E,EAAO,qBAAsB,MAClF,iBAAiB2N,OAAOixE,GAAkB5+E,EAAO,6CAA8C,MAC/F,SAAS2N,OAAOixE,GAAkB5+E,EAAO,OAAQ,KAAM,MAAM,GAxC7Ds6F,CAAiBziF,EAAI7X,EAAOojD,QAE3B,GAAY,UAARqO,GAA4B,UAATh/B,GAwChC,SAAuB5a,EAAI7X,EAAOojD,GAC9B,IAAI/I,EAAS+I,GAAaA,EAAU/I,OAChC8/C,EAAejc,GAAermE,EAAI,UAAY,OAClDsiF,EAAe9/C,EAAS,MAAM1sC,OAAOwsF,EAAc,KAAOA,EAC1Dnd,GAAQnlE,EAAI,UAAW,MAAMlK,OAAO3N,EAAO,KAAK2N,OAAOwsF,EAAc,MACrEvc,GAAW/lE,EAAI,SAAU+mE,GAAkB5+E,EAAOm6F,GAAe,MAAM,GA5CnEI,CAAc1iF,EAAI7X,EAAOojD,QAExB,GAAY,UAARqO,GAA2B,aAARA,GAuDhC,SAAyB55C,EAAI7X,EAAOojD,GAChC,IAAI3wB,EAAO5a,EAAG0lE,SAAS9qD,KAGnB,EASJ,IAAI0hD,EAAK/wB,GAAa,GAAI3hB,EAAO0yC,EAAG1yC,KAAM4Y,EAAS85B,EAAG95B,OAAQ52C,EAAO0wE,EAAG1wE,KACpE+2F,GAAwB/4D,GAAiB,UAAThP,EAChCroB,EAAQq3B,EAAO,SAAoB,UAAThP,EApGhB,MAoGiD,QAC3DisD,EAAkB,sBAClBj7E,IACAi7E,EAAkB,8BAElBrkC,IACAqkC,EAAkB,MAAM/wE,OAAO+wE,EAAiB,MAEpD,IAAIhsE,EAAOksE,GAAkB5+E,EAAO0+E,GAChC8b,IACA9nF,EAAO,qCAAqC/E,OAAO+E,IAEvDsqE,GAAQnlE,EAAI,QAAS,IAAIlK,OAAO3N,EAAO,MACvC49E,GAAW/lE,EAAIzN,EAAOsI,EAAM,MAAM,IAC9BjP,GAAQ42C,IACRujC,GAAW/lE,EAAI,OAAQ,kBApFvB4iF,CAAgB5iF,EAAI7X,EAAOojD,OAE1B,KAAKr6C,EAAOmmD,cAAcuC,GAG3B,OAFAgtB,GAAkB5mE,EAAI7X,EAAOojD,IAEtB,EASX,OAAO,GAutFP/nC,KAdJ,SAAcxD,EAAItI,GACVA,EAAIvP,OACJg9E,GAAQnlE,EAAI,cAAe,MAAMlK,OAAO4B,EAAIvP,MAAO,KAAMuP,IAa7D8G,KATJ,SAAcwB,EAAItI,GACVA,EAAIvP,OACJg9E,GAAQnlE,EAAI,YAAa,MAAMlK,OAAO4B,EAAIvP,MAAO,KAAMuP,KAc3D2lF,SA30IW,SAAUzjC,GAAO,MAAe,QAARA,GA40InC++B,WAAYA,GACZjhC,YAAaA,GACbkhC,iBAAkBA,GAClBvhC,cAAeA,GACfG,gBAAiBA,GACjB4gC,WA5sUJ,SAAyBhxF,GACrB,OAAOA,EACFmoD,QAAO,SAAUh0C,EAAMjU,GAAK,OAAOiU,EAAKzF,OAAOxO,EAAE8wF,YAAc,MAAQ,IACvEjqF,KAAK,KAysUE00F,CAAgBz7F,KAK5B07F,GAAsB/tC,GAsB1B,SAAuBx5C,GACnB,OAAOg5C,EAAQ,iFACVh5C,EAAO,IAAMA,EAAO,QAZ7B,SAASwnF,GAAShxF,EAAM8zB,GACf9zB,IAELiwF,GAAcc,GAAoBj9D,EAAQuyD,YAAc,IACxD6J,GAAwBp8D,EAAQwxB,eAAiBvB,EAUrD,SAASktC,EAAWr9C,GAEhB,GADAA,EAAK77B,OAyDT,SAAkB67B,GACd,GAAkB,IAAdA,EAAK/qB,KAEL,OAAO,EAEX,GAAkB,IAAd+qB,EAAK/qB,KAEL,OAAO,EAEX,SAAU+qB,EAAKwa,MACTxa,EAAK66C,aACF76C,EAAKo4C,IACLp4C,EAAK+5C,KACLhrC,EAAa/O,EAAKiU,OACnBqoC,GAAsBt8C,EAAKiU,MAIvC,SAAoCjU,GAChC,KAAOA,EAAKzgC,QAAQ,CAEhB,GAAiB,cADjBygC,EAAOA,EAAKzgC,QACH00C,IACL,OAAO,EAEX,GAAIjU,EAAK+5C,IACL,OAAO,EAGf,OAAO,EAbEuD,CAA2Bt9C,KAC5B/9C,OAAO2T,KAAKoqC,GAAM0Q,MAAM2rC,MAzElB5nC,CAASzU,GACL,IAAdA,EAAK/qB,KAAY,CAIjB,IAAKqnE,GAAsBt8C,EAAKiU,MACf,SAAbjU,EAAKiU,KAC+B,MAApCjU,EAAK+/B,SAAS,mBACd,OAEJ,IAAK,IAAIx+E,EAAI,EAAGC,EAAIw+C,EAAKrpC,SAAS3S,OAAQzC,EAAIC,EAAGD,IAAK,CAClD,IAAI6c,EAAQ4hC,EAAKrpC,SAASpV,GAC1B87F,EAAWj/E,GACNA,EAAM+F,SACP67B,EAAK77B,QAAS,GAGtB,GAAI67B,EAAKy7C,aACL,IAASl6F,EAAI,EAAGC,EAAIw+C,EAAKy7C,aAAaz3F,OAAQzC,EAAIC,EAAGD,IAAK,CACtD,IAAIi3F,EAAQx4C,EAAKy7C,aAAal6F,GAAGi3F,MACjC6E,EAAW7E,GACNA,EAAMr0E,SACP67B,EAAK77B,QAAS,KA/B9Bk5E,CAAWjxF,GAqCf,SAASmxF,EAAgBv9C,EAAMgd,GAC3B,GAAkB,IAAdhd,EAAK/qB,KAAY,CAOjB,IANI+qB,EAAK77B,QAAU67B,EAAK5uC,QACpB4uC,EAAKw9C,YAAcxgC,GAKnBhd,EAAK77B,QACL67B,EAAKrpC,SAAS3S,SACa,IAAzBg8C,EAAKrpC,SAAS3S,QAA0C,IAA1Bg8C,EAAKrpC,SAAS,GAAGse,MAEjD,YADA+qB,EAAKy9C,YAAa,GAMtB,GAFIz9C,EAAKy9C,YAAa,EAElBz9C,EAAKrpC,SACL,IAAK,IAAIpV,EAAI,EAAGC,EAAIw+C,EAAKrpC,SAAS3S,OAAQzC,EAAIC,EAAGD,IAC7Cg8F,EAAgBv9C,EAAKrpC,SAASpV,GAAIy7D,KAAahd,EAAK+5C,KAG5D,GAAI/5C,EAAKy7C,aACL,IAASl6F,EAAI,EAAGC,EAAIw+C,EAAKy7C,aAAaz3F,OAAQzC,EAAIC,EAAGD,IACjDg8F,EAAgBv9C,EAAKy7C,aAAal6F,GAAGi3F,MAAOx7B,IA3DxDugC,CAAgBnxF,GAAM,IA+F1B,IAAIsxF,GAAU,0DACVC,GAAa,gBACbC,GAAe,+FAEfnsC,GAAW,CACXosC,IAAK,GACLC,IAAK,EACLzW,MAAO,GACP0W,MAAO,GACPC,GAAI,GACJtgF,KAAM,GACN4jC,MAAO,GACP28C,KAAM,GACNrmB,OAAQ,CAAC,EAAG,KAGZsmB,GAAW,CAEXL,IAAK,CAAC,MAAO,UACbC,IAAK,MACLzW,MAAO,QAEP0W,MAAO,CAAC,IAAK,YAEbC,GAAI,CAAC,KAAM,WACXtgF,KAAM,CAAC,OAAQ,aACf4jC,MAAO,CAAC,QAAS,cACjB28C,KAAM,CAAC,OAAQ,aAEfrmB,OAAQ,CAAC,YAAa,SAAU,QAKhCumB,GAAW,SAAU3C,GAAa,MAAO,MAAMrrF,OAAOqrF,EAAW,kBACjE4C,GAAe,CACf90D,KAAM,4BACN+0D,QAAS,2BACT17E,KAAMw7E,GAAS,0CACfG,KAAMH,GAAS,mBACfl1D,MAAOk1D,GAAS,oBAChBI,IAAKJ,GAAS,kBACdK,KAAML,GAAS,mBACfzgF,KAAMygF,GAAS,6CACf7d,OAAQ6d,GAAS,6CACjB78C,MAAO68C,GAAS,8CAEpB,SAASM,GAAYhjF,EAAQ03C,GACzB,IAAIvpD,EAASupD,EAAW,YAAc,MAClCurC,EAAiB,GACjBC,EAAkB,GACtB,IAAK,IAAIj/B,KAAUjkD,EAAQ,CACvB,IAAImjF,EAAcC,GAAWpjF,EAAOikD,IAEhCjkD,EAAOikD,IAAWjkD,EAAOikD,GAAQ+f,QACjCkf,GAAmB,GAAGxuF,OAAOuvD,EAAQ,KAAKvvD,OAAOyuF,EAAa,KAG9DF,GAAkB,IAAKvuF,OAAOuvD,EAAQ,MAAOvvD,OAAOyuF,EAAa,KAIzE,OADAF,EAAiB,IAAIvuF,OAAOuuF,EAAen2F,MAAM,GAAI,GAAI,KACrDo2F,EACO/0F,EAAS,MAAMuG,OAAOuuF,EAAgB,MAAMvuF,OAAOwuF,EAAgBp2F,MAAM,GAAI,GAAI,MAGjFqB,EAAS80F,EAGxB,SAASG,GAAWzxF,GAChB,IAAKA,EACD,MAAO,eAEX,GAAII,MAAMhK,QAAQ4J,GACd,MAAO,IAAI+C,OAAO/C,EAAQuT,KAAI,SAAUvT,GAAW,OAAOyxF,GAAWzxF,MAAa5E,KAAK,KAAM,KAEjG,IAAIs2F,EAAelB,GAAal2F,KAAK0F,EAAQ5K,OACzCu8F,EAAuBrB,GAAQh2F,KAAK0F,EAAQ5K,OAC5Cw8F,EAAuBpB,GAAal2F,KAAK0F,EAAQ5K,MAAM2D,QAAQw3F,GAAY,KAC/E,GAAKvwF,EAAQw4C,UAMR,CACD,IAAI1wC,EAAO,GACP+pF,EAAkB,GAClBrpF,EAAO,GACP8mD,EAAU,SAAU55D,GACpB,GAAIs7F,GAAat7F,GACbm8F,GAAmBb,GAAat7F,GAE5B2uD,GAAS3uD,IACT8S,EAAK3H,KAAKnL,QAGb,GAAY,UAARA,EAAiB,CACtB,IAAIo8F,EAAc9xF,EAAQw4C,UAC1Bq5C,GAAmBd,GAAS,CAAC,OAAQ,QAAS,MAAO,QAChDtoF,QAAO,SAAUspF,GAAe,OAAQD,EAAYC,MACpDx+E,KAAI,SAAUw+E,GAAe,MAAO,UAAUhvF,OAAOgvF,EAAa,UAClE32F,KAAK,YAGVoN,EAAK3H,KAAKnL,IAGlB,IAAK,IAAIA,KAAOsK,EAAQw4C,UACpB8W,EAAQ55D,GAER8S,EAAK5R,SACLkR,GAgBZ,SAAsBU,GAClB,MAIA,mCACI,GAAGzF,OAAOyF,EAAK+K,IAAIy+E,IAAe52F,KAAK,MAAO,iBAtBlC62F,CAAazpF,IAGrBqpF,IACA/pF,GAAQ+pF,GAEZ,IAAIL,EAAcE,EACZ,UAAU3uF,OAAO/C,EAAQ5K,MAAO,2BAChCu8F,EACI,WAAW5uF,OAAO/C,EAAQ5K,MAAO,4BACjCw8F,EACI,UAAU7uF,OAAO/C,EAAQ5K,OACzB4K,EAAQ5K,MACtB,MAAO,oBAAoB2N,OAAO+E,GAAM/E,OAAOyuF,EAAa,KA7C5D,OAAIE,GAAgBC,EACT3xF,EAAQ5K,MAEZ,oBAAoB2N,OAAO6uF,EAAuB,UAAU7uF,OAAO/C,EAAQ5K,OAAS4K,EAAQ5K,MAAO,KAqDlH,SAAS48F,GAAct8F,GACnB,IAAIw8F,EAASx5E,SAAShjB,EAAK,IAC3B,GAAIw8F,EACA,MAAO,oBAAoBnvF,OAAOmvF,GAEtC,IAAIn6D,EAAUssB,GAAS3uD,GACnBy8F,EAAUrB,GAASp7F,GACvB,MAAQ,qBACJ,GAAGqN,OAAO3I,KAAKC,UAAU3E,GAAM,KAC/B,GAAGqN,OAAO3I,KAAKC,UAAU09B,GAAU,KACnC,cACA,GAAGh1B,OAAO3I,KAAKC,UAAU83F,IACzB,IAgBR,IAAIC,GAAiB,CACjBtuF,GAdJ,SAAYmJ,EAAItI,GAIZsI,EAAGolF,cAAgB,SAAUvqF,GAAQ,MAAO,MAAM/E,OAAO+E,EAAM,KAAK/E,OAAO4B,EAAIvP,MAAO,OAWtFO,KARJ,SAAcsX,EAAItI,GACdsI,EAAGqlF,SAAW,SAAUxqF,GACpB,MAAO,MAAM/E,OAAO+E,EAAM,MAAM/E,OAAOkK,EAAG45C,IAAK,MAAM9jD,OAAO4B,EAAIvP,MAAO,KAAK2N,OAAO4B,EAAI6zC,WAAa7zC,EAAI6zC,UAAUnwC,KAAO,OAAS,SAAStF,OAAO4B,EAAI6zC,WAAa7zC,EAAI6zC,UAAUmiB,KAAO,QAAU,GAAI,OAO1M43B,MAAOhvF,GAGPivF,GACA,SAAsB1/D,GAClB75B,KAAK65B,QAAUA,EACf75B,KAAK4/C,KAAO/lB,EAAQ+lB,MAAQo5B,GAC5Bh5E,KAAK8vF,WAAa5W,GAAoBr/C,EAAQz+B,QAAS,iBACvD4E,KAAKw5F,WAAatgB,GAAoBr/C,EAAQz+B,QAAS,WACvD4E,KAAK6rE,WAAarsE,EAAOA,EAAO,GAAI25F,IAAiBt/D,EAAQgyC,YAC7D,IAAIxgB,EAAgBxxB,EAAQwxB,eAAiBvB,EAC7C9pD,KAAKy5F,eAAiB,SAAUzlF,GAC5B,QAASA,EAAGy1D,YAAcpe,EAAcr3C,EAAG45C,MAE/C5tD,KAAK05F,OAAS,EACd15F,KAAK+2D,gBAAkB,GACvB/2D,KAAKm0D,KAAM,GAInB,SAASwlC,GAASC,EAAK//D,GACnB,IAAIsX,EAAQ,IAAIooD,GAAa1/D,GAEzBhrB,EAAO+qF,EACO,WAAZA,EAAIhsC,IACA,OACAisC,GAAWD,EAAKzoD,GACpB,YACN,MAAO,CACHvL,OAAQ,qBAAqB97B,OAAO+E,EAAM,KAC1CkoD,gBAAiB5lB,EAAM4lB,iBAG/B,SAAS8iC,GAAW7lF,EAAIm9B,GAIpB,GAHIn9B,EAAGkF,SACHlF,EAAGmgD,IAAMngD,EAAGmgD,KAAOngD,EAAGkF,OAAOi7C,KAE7BngD,EAAGojF,aAAepjF,EAAG8lF,gBACrB,OAAOC,GAAU/lF,EAAIm9B,GAEpB,GAAIn9B,EAAGjJ,OAASiJ,EAAGgmF,cACpB,OAAOC,GAAQjmF,EAAIm9B,GAElB,GAAIn9B,EAAG0/E,MAAQ1/E,EAAGkmF,aACnB,OAAOC,GAAOnmF,EAAIm9B,GAEjB,GAAIn9B,EAAG+9E,KAAO/9E,EAAGomF,YAClB,OAAOC,GAAMrmF,EAAIm9B,GAEhB,GAAe,aAAXn9B,EAAG45C,KAAuB55C,EAAGu+E,YAAephD,EAAMgjB,IAGtD,IAAe,SAAXngD,EAAG45C,IACR,OA6ZR,SAAiB55C,EAAIm9B,GACjB,IAAIijD,EAAWpgF,EAAGogF,UAAY,YAC1B9jF,EAAWgqF,GAAYtmF,EAAIm9B,GAC3B0Y,EAAM,MAAM//C,OAAOsqF,GAAUtqF,OAAOwG,EAAW,sBAAsBxG,OAAOwG,EAAU,KAAO,IAC7FqD,EAAQK,EAAGL,OAASK,EAAGwlE,aACrB+gB,IAAUvmF,EAAGL,OAAS,IAAI7J,OAAOkK,EAAGwlE,cAAgB,IAAIl/D,KAAI,SAAU5G,GAAQ,MAAO,CAEnFjY,KAAMwtD,EAASv1C,EAAKjY,MACpBU,MAAOuX,EAAKvX,MACZi9E,QAAS1lE,EAAK0lE,aAEhB,KACF18E,EAAOsX,EAAG0lE,SAAS,WAClB/lE,IAASjX,GAAU4T,IACpBu5C,GAAO,SAEPl2C,IACAk2C,GAAO,IAAI//C,OAAO6J,IAElBjX,IACAmtD,GAAO,GAAG//C,OAAO6J,EAAQ,GAAK,QAAS,KAAK7J,OAAOpN,IAEvD,OAAOmtD,EAAM,IAnbF2wC,CAAQxmF,EAAIm9B,GAInB,IAAItiC,OAAO,EACX,GAAImF,EAAGy1D,UACH56D,EAgbZ,SAAsB5J,EAAe+O,EAAIm9B,GACrC,IAAI7gC,EAAW0D,EAAGgzD,eAAiB,KAAOszB,GAAYtmF,EAAIm9B,GAAO,GACjE,MAAO,MAAMrnC,OAAO7E,EAAe,KAAK6E,OAAOyiF,GAAQv4E,EAAIm9B,IAAQrnC,OAAOwG,EAAW,IAAIxG,OAAOwG,GAAY,GAAI,KAlbjGmqF,CAAazmF,EAAGy1D,UAAWz1D,EAAIm9B,OAErC,CACD,IAAI3oC,OAAO,EACPixF,EAAiBtoD,EAAMsoD,eAAezlF,KACrCA,EAAGslE,OAAUtlE,EAAGmgD,KAAOslC,KACxBjxF,EAAO+jF,GAAQv4E,EAAIm9B,IAEvB,IAAIyc,OAEF,EAEE8sC,EAAWvpD,EAAMtX,QAAQ6gE,SACzBjB,GAAkBiB,IAAyC,IAA7BA,EAASC,kBACvC/sC,EAgBhB,SAA0B8sC,EAAUj+F,GAChC,IAAIm+F,EAAY3xC,EAASxsD,GACrBo+F,EAAa3xC,EAAW0xC,GACxBE,EAAY,SAAUlsE,GACtB,OAAI8rE,EAASj+F,KAASmyB,EACXnyB,EAEPi+F,EAASE,KAAehsE,EACjBgsE,EAEPF,EAASG,KAAgBjsE,EAClBisE,OADX,GAIAE,EAAYD,EAAU,gBACtBA,EAAU,wBACd,GAAIC,EACA,OAAOA,EAEX,IAAIC,EAAeF,EAAU,cACzBA,EAAU,cACVA,EAAU,mBACd,GAAIE,EACA,OAAOA,EAvCOC,CAAiBP,EAAU1mF,EAAG45C,MAEnCA,IACDA,EAAM,IAAI9jD,OAAOkK,EAAG45C,IAAK,MAC7B,IAAIt9C,EAAW0D,EAAGgzD,eAAiB,KAAOszB,GAAYtmF,EAAIm9B,GAAO,GACjEtiC,EAAO,MAAM/E,OAAO8jD,GAAK9jD,OAAOtB,EAAO,IAAIsB,OAAOtB,GAAQ,IACxDsB,OAAOwG,EAAW,IAAIxG,OAAOwG,GAAY,GACzC,KAGN,IAAK,IAAIpV,EAAI,EAAGA,EAAIi2C,EAAM2+C,WAAWnyF,OAAQzC,IACzC2T,EAAOsiC,EAAM2+C,WAAW50F,GAAG8Y,EAAInF,GAEnC,OAAOA,EApCP,OAAOyrF,GAAYtmF,EAAIm9B,IAAU,SAkEzC,SAAS4oD,GAAU/lF,EAAIm9B,GACnBn9B,EAAG8lF,iBAAkB,EAIrB,IAAIoB,EAAmB/pD,EAAMgjB,IAM7B,OALIngD,EAAGmgD,MACHhjB,EAAMgjB,IAAMngD,EAAGmgD,KAEnBhjB,EAAM4lB,gBAAgBnvD,KAAK,qBAAqBkC,OAAO+vF,GAAW7lF,EAAIm9B,GAAQ,MAC9EA,EAAMgjB,IAAM+mC,EACL,MAAMpxF,OAAOqnC,EAAM4lB,gBAAgBp5D,OAAS,GAAGmM,OAAOkK,EAAGmjF,YAAc,QAAU,GAAI,KAGhG,SAAS8C,GAAQjmF,EAAIm9B,GAEjB,GADAn9B,EAAGgmF,eAAgB,EACfhmF,EAAG+9E,KAAO/9E,EAAGomF,YACb,OAAOC,GAAMrmF,EAAIm9B,GAEhB,GAAIn9B,EAAGmjF,YAAa,CAGrB,IAFA,IAAI16F,EAAM,GACN8uE,EAAWv3D,EAAGkF,OACXqyD,GAAU,CACb,GAAIA,EAASmoB,IAAK,CACdj3F,EAAM8uE,EAAS9uE,IACf,MAEJ8uE,EAAWA,EAASryD,OAExB,OAAKzc,EAKE,MAAMqN,OAAO+vF,GAAW7lF,EAAIm9B,GAAQ,KAAKrnC,OAAOqnC,EAAMuoD,SAAU,KAAK5vF,OAAOrN,EAAK,KAF7Eo9F,GAAW7lF,EAAIm9B,GAK1B,OAAO4oD,GAAU/lF,EAAIm9B,GAG7B,SAASkpD,GAAMrmF,EAAIm9B,EAAOgqD,EAAQC,GAE9B,OADApnF,EAAGomF,aAAc,EAGrB,SAASiB,EAAgBC,EAAYnqD,EAAOgqD,EAAQC,GAChD,IAAKE,EAAW39F,OACZ,OAAOy9F,GAAY,OAEvB,IAAIjG,EAAYmG,EAAW14D,QAC3B,OAAIuyD,EAAU/c,IACH,IAAItuE,OAAOqrF,EAAU/c,IAAK,MAAMtuE,OAAOyxF,EAAcpG,EAAUhD,OAAQ,KAAKroF,OAAOuxF,EAAgBC,EAAYnqD,EAAOgqD,EAAQC,IAG9H,GAAGtxF,OAAOyxF,EAAcpG,EAAUhD,QAG7C,SAASoJ,EAAcvnF,GACnB,OAAOmnF,EACDA,EAAOnnF,EAAIm9B,GACXn9B,EAAGjJ,KACCkvF,GAAQjmF,EAAIm9B,GACZ0oD,GAAW7lF,EAAIm9B,IAnBtBkqD,CAAgBrnF,EAAGohF,aAAalzF,QAASivC,EAAOgqD,EAAQC,GAsBnE,SAASjB,GAAOnmF,EAAIm9B,EAAOgqD,EAAQK,GAC/B,IAAIpjB,EAAMpkE,EAAG0/E,IACToB,EAAQ9gF,EAAG8gF,MACXE,EAAYhhF,EAAGghF,UAAY,IAAIlrF,OAAOkK,EAAGghF,WAAa,GACtDC,EAAYjhF,EAAGihF,UAAY,IAAInrF,OAAOkK,EAAGihF,WAAa,GAW1D,OADAjhF,EAAGkmF,cAAe,EACV,GAAGpwF,OAAO0xF,GAAa,KAAM,MAAM1xF,OAAOsuE,EAAK,MACnD,YAAYtuE,OAAOgrF,GAAOhrF,OAAOkrF,GAAWlrF,OAAOmrF,EAAW,MAC9D,UAAUnrF,QAAQqxF,GAAUtB,IAAY7lF,EAAIm9B,IAC5C,KAER,SAASo7C,GAAQv4E,EAAIm9B,GACjB,IAAI3oC,EAAO,IAGPojE,EA8ER,SAAuB53D,EAAIm9B,GACvB,IAAIy6B,EAAO53D,EAAG63D,WACd,IAAKD,EACD,OACJ,IAEI1wE,EAAGC,EAAGuQ,EAAK+vF,EAFX5xC,EAAM,eACN6xC,GAAa,EAEjB,IAAKxgG,EAAI,EAAGC,EAAIywE,EAAKjuE,OAAQzC,EAAIC,EAAGD,IAAK,CACrCwQ,EAAMkgE,EAAK1wE,GACXugG,GAAc,EACd,IAAIE,EAAMxqD,EAAM06B,WAAWngE,EAAIjQ,MAC3BkgG,IAGAF,IAAgBE,EAAI3nF,EAAItI,EAAKylC,EAAMyO,OAEnC67C,IACAC,GAAa,EACb7xC,GAAO,UAAW//C,OAAO4B,EAAIjQ,KAAM,eAAiBqO,OAAO4B,EAAIgrE,QAAS,KAAM5sE,OAAO4B,EAAIvP,MACnF,WAAW2N,OAAO4B,EAAIvP,MAAO,iBAAiB2N,OAAO3I,KAAKC,UAAUsK,EAAIvP,QACxE,IAAI2N,OAAO4B,EAAIyqE,IAAM,QAAQrsE,OAAO4B,EAAImuE,aAAenuE,EAAIyqE,IAAM,IAAKrsE,OAAO4B,EAAIyqE,IAAK,MAAS,IAAIrsE,OAAO4B,EAAI6zC,UAAY,cAAcz1C,OAAO3I,KAAKC,UAAUsK,EAAI6zC,YAAc,GAAI,OAGlM,GAAIm8C,EACA,OAAO7xC,EAAI3nD,MAAM,GAAI,GAAK,IAtGnB05F,CAAc5nF,EAAIm9B,GACzBy6B,IACApjE,GAAQojE,EAAO,KAEf53D,EAAGvX,MACH+L,GAAQ,OAAOsB,OAAOkK,EAAGvX,IAAK,MAG9BuX,EAAG4jB,MACHpvB,GAAQ,OAAOsB,OAAOkK,EAAG4jB,IAAK,MAE9B5jB,EAAG2gE,WACHnsE,GAAQ,kBAGRwL,EAAGmgD,MACH3rD,GAAQ,aAGRwL,EAAGy1D,YACHjhE,GAAQ,QAASsB,OAAOkK,EAAG45C,IAAK,OAGpC,IAAK,IAAI1yD,EAAI,EAAGA,EAAIi2C,EAAMqoD,WAAW77F,OAAQzC,IACzCsN,GAAQ2oC,EAAMqoD,WAAWt+F,GAAG8Y,GA+BhC,GA5BIA,EAAGL,QACHnL,GAAQ,SAASsB,OAAOywF,GAASvmF,EAAGL,OAAQ,MAG5CK,EAAGsD,QACH9O,GAAQ,YAAYsB,OAAOywF,GAASvmF,EAAGsD,OAAQ,MAG/CtD,EAAGoB,SACH5M,GAAQ,GAAGsB,OAAOsuF,GAAYpkF,EAAGoB,QAAQ,GAAQ,MAEjDpB,EAAGmmE,eACH3xE,GAAQ,GAAGsB,OAAOsuF,GAAYpkF,EAAGmmE,cAAc,GAAO,MAItDnmE,EAAGu+E,aAAev+E,EAAGs+E,YACrB9pF,GAAQ,QAAQsB,OAAOkK,EAAGu+E,WAAY,MAGtCv+E,EAAG+/C,cACHvrD,GAAQ,GAAGsB,OAqEnB,SAAwBkK,EAAIolD,EAAOjoB,GAK/B,IAAIs2B,EAAmBzzD,EAAG0/E,KACtB93F,OAAO2T,KAAK6pD,GAAO5Y,MAAK,SAAU/jD,GAC9B,IAAI64D,EAAO8D,EAAM38D,GACjB,OAAQ64D,EAAKu+B,mBAAqBv+B,EAAKy8B,IAAMz8B,EAAKo+B,KAAOmI,GAAkBvmC,MAO/EwmC,IAAa9nF,EAAG+9E,GAMpB,IAAKtqB,EAED,IADA,IAAIs0B,EAAW/nF,EAAGkF,OACX6iF,GAAU,CACb,GAAKA,EAASzJ,WAv/CA,YAu/CayJ,EAASzJ,WAChCyJ,EAASrI,IAAK,CACdjsB,GAAmB,EACnB,MAEAs0B,EAAShK,KACT+J,GAAW,GAEfC,EAAWA,EAAS7iF,OAG5B,IAAI8iF,EAAiBpgG,OAAO2T,KAAK6pD,GAC5B9+C,KAAI,SAAU7d,GAAO,OAAOw/F,GAAc7iC,EAAM38D,GAAM00C,MACtDhvC,KAAK,KACV,MAAO,mBAAmB2H,OAAOkyF,EAAgB,KAAKlyF,OAAO29D,EAAmB,aAAe,IAAI39D,QAAQ29D,GAAoBq0B,EAAW,eAAehyF,OAE7J,SAAcjK,GACV,IAAIiR,EAAO,KACP5V,EAAI2E,EAAIlC,OACZ,KAAOzC,GACH4V,EAAe,GAAPA,EAAajR,EAAIksD,aAAa7wD,GAE1C,OAAO4V,IAAS,EARgJA,CAAKkrF,IAAmB,GAAI,KA3GtKE,CAAeloF,EAAIA,EAAG+/C,YAAa5iB,GAAQ,MAG7Dn9B,EAAG41D,QACHphE,GAAQ,gBAAgBsB,OAAOkK,EAAG41D,MAAMztE,MAAO,cAAc2N,OAAOkK,EAAG41D,MAAMzzD,SAAU,gBAAgBrM,OAAOkK,EAAG41D,MAAM5H,WAAY,OAGnIhuD,EAAGgzD,eAAgB,CACnB,IAAIA,EAiDZ,SAA2BhzD,EAAIm9B,GAC3B,IAAIyoD,EAAM5lF,EAAG1D,SAAS,GAClB,EAGJ,GAAIspF,GAAoB,IAAbA,EAAIhrE,KAAY,CACvB,IAAIutE,EAAkBxC,GAASC,EAAKzoD,EAAMtX,SAC1C,MAAO,qCAAqC/vB,OAAOqyF,EAAgBv2D,OAAQ,uBAAuB97B,OAAOqyF,EAAgBplC,gBACpHz8C,KAAI,SAAUzL,GAAQ,MAAO,cAAc/E,OAAO+E,EAAM,QACxD1M,KAAK,KAAM,OA1DKi6F,CAAkBpoF,EAAIm9B,GACvC61B,IACAx+D,GAAQ,GAAGsB,OAAOk9D,EAAgB,MAkB1C,OAfAx+D,EAAOA,EAAK1I,QAAQ,KAAM,IAAM,IAI5BkU,EAAGwlE,eACHhxE,EAAO,MAAMsB,OAAOtB,EAAM,MAAOsB,OAAOkK,EAAG45C,IAAK,MAAO9jD,OAAOywF,GAASvmF,EAAGwlE,cAAe,MAGzFxlE,EAAGqlF,WACH7wF,EAAOwL,EAAGqlF,SAAS7wF,IAGnBwL,EAAGolF,gBACH5wF,EAAOwL,EAAGolF,cAAc5wF,IAErBA,EAyFX,SAASqzF,GAAkB7nF,GACvB,OAAgB,IAAZA,EAAG4a,OACY,SAAX5a,EAAG45C,KAGA55C,EAAG1D,SAASkwC,KAAKq7C,KAIhC,SAASI,GAAcjoF,EAAIm9B,GACvB,IAAIkrD,EAAiBroF,EAAG0lE,SAAS,cACjC,GAAI1lE,EAAG+9E,KAAO/9E,EAAGomF,cAAgBiC,EAC7B,OAAOhC,GAAMrmF,EAAIm9B,EAAO8qD,GAAe,QAE3C,GAAIjoF,EAAG0/E,MAAQ1/E,EAAGkmF,aACd,OAAOC,GAAOnmF,EAAIm9B,EAAO8qD,IAE7B,IAAI3J,EAhiDkB,YAgiDNt+E,EAAGs+E,UAAoC,GAAK9wF,OAAOwS,EAAGs+E,WAClE50F,EAAK,YAAYoM,OAAOwoF,EAAW,MACnC,UAAUxoF,OAAkB,aAAXkK,EAAG45C,IACd55C,EAAG+9E,IAAMsK,EACL,IAAIvyF,OAAOkK,EAAG+9E,GAAI,MAAMjoF,OAAOwwF,GAAYtmF,EAAIm9B,IAAU,YAAa,cACtEmpD,GAAYtmF,EAAIm9B,IAAU,YAC9B0oD,GAAW7lF,EAAIm9B,GAAQ,KAE7BmrD,EAAehK,EAAY,GAAK,cACpC,MAAO,QAAQxoF,OAAOkK,EAAGu+E,YAAc,YAAe,QAAQzoF,OAAOpM,GAAIoM,OAAOwyF,EAAc,KAElG,SAAShC,GAAYtmF,EAAIm9B,EAAOorD,EAAWC,EAAeC,GACtD,IAAInsF,EAAW0D,EAAG1D,SAClB,GAAIA,EAAS3S,OAAQ,CACjB,IAAI0tF,EAAO/6E,EAAS,GAEpB,GAAwB,IAApBA,EAAS3S,QACT0tF,EAAKqI,KACQ,aAAbrI,EAAKz9B,KACQ,SAAby9B,EAAKz9B,IAAgB,CACrB,IAAI8uC,EAAsBH,EACpBprD,EAAMsoD,eAAepO,GACjB,KACA,KACJ,GACN,MAAO,GAAGvhF,QAAQ0yF,GAAiB3C,IAAYxO,EAAMl6C,IAAQrnC,OAAO4yF,GAExE,IAAI7oC,EAAoB0oC,EAWhC,SAA8BjsF,EAAUmpF,GAEpC,IADA,IAAI5vC,EAAM,EACD3uD,EAAI,EAAGA,EAAIoV,EAAS3S,OAAQzC,IAAK,CACtC,IAAI8Y,EAAK1D,EAASpV,GAClB,GAAgB,IAAZ8Y,EAAG4a,KAAP,CAGA,GAAI+tE,GAAmB3oF,IAClBA,EAAGohF,cACAphF,EAAGohF,aAAa50C,MAAK,SAAUjlD,GAAK,OAAOohG,GAAmBphG,EAAE42F,UAAa,CACjFtoC,EAAM,EACN,OAEA4vC,EAAezlF,IACdA,EAAGohF,cAAgBphF,EAAGohF,aAAa50C,MAAK,SAAUjlD,GAAK,OAAOk+F,EAAel+F,EAAE42F,aAChFtoC,EAAM,IAGd,OAAOA,EA5BG+yC,CAAqBtsF,EAAU6gC,EAAMsoD,gBACrC,EACFoD,EAAQJ,GAAcK,GAC1B,MAAO,IAAIhzF,OAAOwG,EAASgK,KAAI,SAAU/e,GAAK,OAAOshG,EAAMthG,EAAG41C,MAAWhvC,KAAK,KAAM,KAAK2H,OAAO+pD,EAAoB,IAAI/pD,OAAO+pD,GAAqB,KA2B5J,SAAS8oC,GAAmB3oF,GACxB,YAAkBjG,IAAXiG,EAAG0/E,KAAgC,aAAX1/E,EAAG45C,KAAiC,SAAX55C,EAAG45C,IAE/D,SAASkvC,GAAQnjD,EAAMxI,GACnB,OAAkB,IAAdwI,EAAK/qB,KACEirE,GAAWlgD,EAAMxI,GAEL,IAAdwI,EAAK/qB,MAAc+qB,EAAK2U,UAYrC,SAAoBg/B,GAChB,MAAO,MAAMxjF,OAAO3I,KAAKC,UAAUksF,EAAQ91E,MAAO,KAZvCulF,CAAWpjD,GAM1B,SAAiBniC,GACb,MAAO,MAAM1N,OAAqB,IAAd0N,EAAKoX,KACnBpX,EAAKwqD,WACLg7B,GAAyB77F,KAAKC,UAAUoW,EAAKA,OAAQ,KANhDylF,CAAQtjD,GAwCvB,SAAS4gD,GAASjjF,GAGd,IAFA,IAAIwkC,EAAc,GACdohD,EAAe,GACVhiG,EAAI,EAAGA,EAAIoc,EAAM3Z,OAAQzC,IAAK,CACnC,IAAIkU,EAAOkI,EAAMpc,GACbiB,EAAQ6gG,GAAyB5tF,EAAKjT,OACtCiT,EAAKgqE,QACL8jB,GAAgB,GAAGpzF,OAAOsF,EAAK3T,KAAM,KAAKqO,OAAO3N,EAAO,KAGxD2/C,GAAe,IAAKhyC,OAAOsF,EAAK3T,KAAM,MAAOqO,OAAO3N,EAAO,KAInE,OADA2/C,EAAc,IAAIhyC,OAAOgyC,EAAY55C,MAAM,GAAI,GAAI,KAC/Cg7F,EACO,MAAMpzF,OAAOgyC,EAAa,MAAMhyC,OAAOozF,EAAah7F,MAAM,GAAI,GAAI,MAGlE45C,EAIf,SAASkhD,GAAyBxlF,GAC9B,OAAOA,EAAK1X,QAAQ,UAAW,WAAWA,QAAQ,UAAW,WAKvC,IAAI0F,OAAO,MACjC,iMAGK5D,MAAM,KACNO,KAAK,WACV,OAEmB,IAAIqD,OAAO,MAC9B,qBAAqB5D,MAAM,KAAKO,KAAK,yBACrC,qBAmJJ,SAASg7F,GAAetuF,EAAMuuF,GAC1B,IACI,OAAO,IAAIn9F,SAAS4O,GAExB,MAAOwwD,GAEH,OADA+9B,EAAOx1F,KAAK,CAAEy3D,IAAKA,EAAKxwD,KAAMA,IACvBvE,GAGf,SAAS+yF,GAA0BC,GAC/B,IAAIp/D,EAAQtiC,OAAOY,OAAO,MAC1B,OAAO,SAA4B40F,EAAUv3D,EAAS4zB,IAClD5zB,EAAUr6B,EAAO,GAAIq6B,IACF+lB,YACZ/lB,EAAQ+lB,KAkBf,IAAInjD,EAAMo9B,EAAQoyD,WACZzqF,OAAOq4B,EAAQoyD,YAAcmF,EAC7BA,EACN,GAAIlzD,EAAMzhC,GACN,OAAOyhC,EAAMzhC,GAGjB,IAAI8gG,EAAWD,EAAQlM,EAAUv3D,GA0BjC,IAAIgwB,EAAM,GACN2zC,EAAc,GAoBlB,OAnBA3zC,EAAIjkB,OAASu3D,GAAeI,EAAS33D,OAAQ43D,GAC7C3zC,EAAIkN,gBAAkBwmC,EAASxmC,gBAAgBz8C,KAAI,SAAUzL,GACzD,OAAOsuF,GAAetuF,EAAM2uF,MAiBxBt/D,EAAMzhC,GAAOotD,GAgE7B,IA5D+B4zC,GA4E3BC,GAHkCC,IAzEPF,GA4DY,SAAqBrM,EAAUv3D,GACtE,IAAI+/D,EAAMt3F,GAAM8uF,EAASxxF,OAAQi6B,IACR,IAArBA,EAAQk9D,UACRA,GAAS6C,EAAK//D,GAElB,IAAIhrB,EAAO8qF,GAASC,EAAK//D,GACzB,MAAO,CACH+/D,IAAKA,EACLh0D,OAAQ/2B,EAAK+2B,OACbmxB,gBAAiBloD,EAAKkoD,kBApEnB,SAAwBm/B,GAC3B,SAASoH,EAAQlM,EAAUv3D,GACvB,IAAI+jE,EAAehiG,OAAOY,OAAO05F,GAC7BkH,EAAS,GACTS,EAAO,GAIX,GAAIhkE,EA0BA,IAAK,IAAIp9B,KARLo9B,EAAQz+B,UACRwiG,EAAaxiG,SAAW86F,EAAY96F,SAAW,IAAI0O,OAAO+vB,EAAQz+B,UAGlEy+B,EAAQgyC,aACR+xB,EAAa/xB,WAAarsE,EAAO5D,OAAOY,OAAO05F,EAAYrqB,YAAc,MAAOhyC,EAAQgyC,aAG5EhyC,EACA,YAARp9B,GAA6B,eAARA,IACrBmhG,EAAanhG,GAAOo9B,EAAQp9B,IAIxCmhG,EAAah+C,KAnCF,SAAUq5B,EAAK/+B,EAAO4jD,IAC5BA,EAAMD,EAAOT,GAAQx1F,KAAKqxE,IAmC/B,IAAIskB,EAAWE,GAAYrM,EAASxxF,OAAQg+F,GAM5C,OAFAL,EAASH,OAASA,EAClBG,EAASM,KAAOA,EACTN,EAEX,MAAO,CACHD,QAASA,EACTK,mBAAoBN,GAA0BC,MAqBlCpH,IAAsCyH,mBAI9D,SAASI,GAAgB9sF,GAGrB,OAFAysF,GAAMA,IAAOx+F,SAASmR,cAAc,QAChCqC,UAAYzB,EAAO,iBAAqB,gBACrCysF,GAAIhrF,UAAU5K,QAAQ,SAAW,EAG5C,IAAIkmF,KAAuB7hC,GAAY4xC,IAAgB,GAEnDrO,KAA8BvjC,GAC5B4xC,IAAgB,GAGlBC,GAAej1C,GAAO,SAAUsG,GAChC,IAAIr7C,EAAK+G,GAAMs0C,GACf,OAAOr7C,GAAMA,EAAGtB,aAEhBurF,GAAQjxB,GAAIlwE,UAAUoqE,OAC1B8F,GAAIlwE,UAAUoqE,OAAS,SAAUlzD,EAAI0yD,GAGjC,IAFA1yD,EAAKA,GAAM+G,GAAM/G,MAEN9U,SAAS2Q,MAAQmE,IAAO9U,SAAS0G,gBAGxC,OAAO5F,KAEX,IAAI65B,EAAU75B,KAAKq0D,SAEnB,IAAKx6B,EAAQ+L,OAAQ,CACjB,IAAIwrD,EAAWv3D,EAAQu3D,SACvB,GAAIA,EACA,GAAwB,iBAAbA,EACoB,MAAvBA,EAAShvF,OAAO,KAChBgvF,EAAW4M,GAAa5M,QAO3B,KAAIA,EAASrsF,SAOd,OAAO/E,KANPoxF,EAAWA,EAAS1+E,eASnBsB,IAELo9E,EA6BZ,SAAsBp9E,GAClB,GAAIA,EAAGkqF,UACH,OAAOlqF,EAAGkqF,UAGV,IAAIC,EAAYj/F,SAASmR,cAAc,OAEvC,OADA8tF,EAAU5lF,YAAYvE,EAAGkY,WAAU,IAC5BiyE,EAAUzrF,UApCF0rF,CAAapqF,IAE5B,GAAIo9E,EAAU,CAEN,EAGJ,IAAI9gB,EAAKqtB,GAAmBvM,EAAU,CAClCsB,mBAAmB,EACnB1E,qBAAsBA,GACtB0B,4BAA6BA,GAC7BzD,WAAYpyD,EAAQoyD,WACpBwG,SAAU54D,EAAQ44D,UACnBzyF,MAAO4lC,EAAS0qC,EAAG1qC,OAAQmxB,EAAkBuZ,EAAGvZ,gBACnDl9B,EAAQ+L,OAASA,EACjB/L,EAAQk9B,gBAAkBA,GAQlC,OAAOknC,GAAM5iG,KAAK2E,KAAMgU,EAAI0yD,IAgBhCsG,GAAIswB,QAAUK,K,kEC3oXd,YAyCA,IAKIU,GAL2B,oBAAXp/F,OAChBA,YACkB,IAAXooD,EACLA,EACA,IACmBwF,6BA2CzB,SAASyxC,EAAU7gG,EAAKygC,GAItB,QAHe,IAAVA,IAAmBA,EAAQ,IAGpB,OAARzgC,GAA+B,iBAARA,EACzB,OAAOA,EAIT,IAtBmB8gG,EAsBfC,GAtBeD,EAsBG,SAAUhjG,GAAK,OAAOA,EAAE20D,WAAazyD,GAA5CygC,EArBH1uB,OAAO+uF,GAAG,IAsBtB,GAAIC,EACF,OAAOA,EAAIC,KAGb,IAAIA,EAAOt3F,MAAMhK,QAAQM,GAAO,GAAK,GAYrC,OATAygC,EAAMt2B,KAAK,CACTsoD,SAAUzyD,EACVghG,KAAMA,IAGR7iG,OAAO2T,KAAK9R,GAAKD,SAAQ,SAAUf,GACjCgiG,EAAKhiG,GAAO6hG,EAAS7gG,EAAIhB,GAAMyhC,MAG1BugE,EAMT,SAASC,EAAcjhG,EAAKC,GAC1B9B,OAAO2T,KAAK9R,GAAKD,SAAQ,SAAUf,GAAO,OAAOiB,EAAGD,EAAIhB,GAAMA,MAGhE,SAASa,EAAUG,GACjB,OAAe,OAARA,GAA+B,iBAARA,EAkBhC,IAAIkhG,EAAS,SAAiBC,EAAWC,GACvC7+F,KAAK6+F,QAAUA,EAEf7+F,KAAK8+F,UAAYljG,OAAOY,OAAO,MAE/BwD,KAAK++F,WAAaH,EAClB,IAAII,EAAWJ,EAAUztD,MAGzBnxC,KAAKmxC,OAA6B,mBAAb6tD,EAA0BA,IAAaA,IAAa,IAGvEC,EAAqB,CAAEC,WAAY,CAAEviF,cAAc,IAEvDsiF,EAAmBC,WAAWnjG,IAAM,WAClC,QAASiE,KAAK++F,WAAWG,YAG3BP,EAAO7hG,UAAUqiG,SAAW,SAAmB1iG,EAAKxB,GAClD+E,KAAK8+F,UAAUriG,GAAOxB,GAGxB0jG,EAAO7hG,UAAU0c,YAAc,SAAsB/c,UAC5CuD,KAAK8+F,UAAUriG,IAGxBkiG,EAAO7hG,UAAUsiG,SAAW,SAAmB3iG,GAC7C,OAAOuD,KAAK8+F,UAAUriG,IAGxBkiG,EAAO7hG,UAAUuiG,SAAW,SAAmB5iG,GAC7C,OAAOA,KAAOuD,KAAK8+F,WAGrBH,EAAO7hG,UAAUkiB,OAAS,SAAiB4/E,GACzC5+F,KAAK++F,WAAWG,WAAaN,EAAUM,WACnCN,EAAUU,UACZt/F,KAAK++F,WAAWO,QAAUV,EAAUU,SAElCV,EAAU5iE,YACZh8B,KAAK++F,WAAW/iE,UAAY4iE,EAAU5iE,WAEpC4iE,EAAUW,UACZv/F,KAAK++F,WAAWQ,QAAUX,EAAUW,UAIxCZ,EAAO7hG,UAAU0iG,aAAe,SAAuB9hG,GACrDghG,EAAa1+F,KAAK8+F,UAAWphG,IAG/BihG,EAAO7hG,UAAU2iG,cAAgB,SAAwB/hG,GACnDsC,KAAK++F,WAAWQ,SAClBb,EAAa1+F,KAAK++F,WAAWQ,QAAS7hG,IAI1CihG,EAAO7hG,UAAU4iG,cAAgB,SAAwBhiG,GACnDsC,KAAK++F,WAAWO,SAClBZ,EAAa1+F,KAAK++F,WAAWO,QAAS5hG,IAI1CihG,EAAO7hG,UAAU6iG,gBAAkB,SAA0BjiG,GACvDsC,KAAK++F,WAAW/iE,WAClB0iE,EAAa1+F,KAAK++F,WAAW/iE,UAAWt+B,IAI5C9B,OAAOoiB,iBAAkB2gF,EAAO7hG,UAAWmiG,GAE3C,IAAIW,EAAmB,SAA2BC,GAEhD7/F,KAAK8/F,SAAS,GAAID,GAAe,IAGnCD,EAAiB9iG,UAAUf,IAAM,SAAc+E,GAC7C,OAAOA,EAAKyiD,QAAO,SAAUtoD,EAAQwB,GACnC,OAAOxB,EAAOmkG,SAAS3iG,KACtBuD,KAAK+F,OAGV65F,EAAiB9iG,UAAUijG,aAAe,SAAuBj/F,GAC/D,IAAI7F,EAAS+E,KAAK+F,KAClB,OAAOjF,EAAKyiD,QAAO,SAAUwwB,EAAWt3E,GAEtC,OAAOs3E,IADP94E,EAASA,EAAOmkG,SAAS3iG,IACEyiG,WAAaziG,EAAM,IAAM,MACnD,KAGLmjG,EAAiB9iG,UAAUkiB,OAAS,SAAmB6gF,IA6DvD,SAAS7gF,EAAQle,EAAMk/F,EAAcC,GAC/B,EAQJ,GAHAD,EAAahhF,OAAOihF,GAGhBA,EAAU7kG,QACZ,IAAK,IAAIqB,KAAOwjG,EAAU7kG,QAAS,CACjC,IAAK4kG,EAAaZ,SAAS3iG,GAOzB,cAEFuiB,EACEle,EAAKgJ,OAAOrN,GACZujG,EAAaZ,SAAS3iG,GACtBwjG,EAAU7kG,QAAQqB,KAnFxBuiB,CAAO,GAAIhf,KAAK+F,KAAM85F,IAGxBD,EAAiB9iG,UAAUgjG,SAAW,SAAmBh/F,EAAM89F,EAAWC,GACtE,IAAIqB,EAASlgG,UACI,IAAZ6+F,IAAqBA,GAAU,GAMtC,IAAIoB,EAAY,IAAItB,EAAOC,EAAWC,GAClB,IAAhB/9F,EAAKnD,OACPqC,KAAK+F,KAAOk6F,EAECjgG,KAAKjE,IAAI+E,EAAKoB,MAAM,GAAI,IAC9Bi9F,SAASr+F,EAAKA,EAAKnD,OAAS,GAAIsiG,GAIrCrB,EAAUxjG,SACZsjG,EAAaE,EAAUxjG,SAAS,SAAU+kG,EAAgB1jG,GACxDyjG,EAAOJ,SAASh/F,EAAKgJ,OAAOrN,GAAM0jG,EAAgBtB,OAKxDe,EAAiB9iG,UAAUsjG,WAAa,SAAqBt/F,GAC3D,IAAIoY,EAASlZ,KAAKjE,IAAI+E,EAAKoB,MAAM,GAAI,IACjCzF,EAAMqE,EAAKA,EAAKnD,OAAS,GACzBoa,EAAQmB,EAAOkmF,SAAS3iG,GAEvBsb,GAUAA,EAAM8mF,SAIX3lF,EAAOM,YAAY/c,IAGrBmjG,EAAiB9iG,UAAUujG,aAAe,SAAuBv/F,GAC/D,IAAIoY,EAASlZ,KAAKjE,IAAI+E,EAAKoB,MAAM,GAAI,IACjCzF,EAAMqE,EAAKA,EAAKnD,OAAS,GAE7B,QAAIub,GACKA,EAAOmmF,SAAS5iG,IAmC3B,IAyCIuwE,EAEJ,IAAIszB,EAAQ,SAAgBzmE,GAC1B,IAAIqmE,EAASlgG,UACI,IAAZ65B,IAAqBA,EAAU,KAK/BmzC,GAAyB,oBAAX/tE,QAA0BA,OAAO+tE,KAClDjvD,EAAQ9e,OAAO+tE,KASjB,IAAIuzB,EAAU1mE,EAAQ0mE,aAA0B,IAAZA,IAAqBA,EAAU,IACnE,IAAIC,EAAS3mE,EAAQ2mE,YAAwB,IAAXA,IAAoBA,GAAS,GAG/DxgG,KAAKygG,aAAc,EACnBzgG,KAAK0gG,SAAW9kG,OAAOY,OAAO,MAC9BwD,KAAK2gG,mBAAqB,GAC1B3gG,KAAK4gG,WAAahlG,OAAOY,OAAO,MAChCwD,KAAK6gG,gBAAkBjlG,OAAOY,OAAO,MACrCwD,KAAK8gG,SAAW,IAAIlB,EAAiB/lE,GACrC75B,KAAK+gG,qBAAuBnlG,OAAOY,OAAO,MAC1CwD,KAAKghG,aAAe,GACpBhhG,KAAKihG,WAAa,IAAIj0B,EACtBhtE,KAAKkhG,uBAAyBtlG,OAAOY,OAAO,MAG5C,IAAI2kG,EAAQnhG,KAERohG,EADMphG,KACSohG,SACfC,EAFMrhG,KAEOqhG,OACjBrhG,KAAKohG,SAAW,SAAwBxyE,EAAM0yE,GAC5C,OAAOF,EAAS/lG,KAAK8lG,EAAOvyE,EAAM0yE,IAEpCthG,KAAKqhG,OAAS,SAAsBzyE,EAAM0yE,EAASznE,GACjD,OAAOwnE,EAAOhmG,KAAK8lG,EAAOvyE,EAAM0yE,EAASznE,IAI3C75B,KAAKwgG,OAASA,EAEd,IAAIrvD,EAAQnxC,KAAK8gG,SAAS/6F,KAAKorC,MAK/BvzB,EAAc5d,KAAMmxC,EAAO,GAAInxC,KAAK8gG,SAAS/6F,MAI7Cw7F,EAAavhG,KAAMmxC,GAGnBovD,EAAQ/iG,SAAQ,SAAUi0E,GAAU,OAAOA,EAAOyuB,YAEXnyF,IAArB8rB,EAAQkxB,SAAyBlxB,EAAQkxB,SAAWiiB,EAAI9nE,OAAO6lD,WA5XnF,SAAwBo2C,GACjB9C,IAEL8C,EAAMK,aAAenD,EAErBA,EAAYlzF,KAAK,YAAag2F,GAE9B9C,EAAYxzF,GAAG,wBAAwB,SAAU42F,GAC/CN,EAAM1vF,aAAagwF,MAGrBN,EAAMO,WAAU,SAAUC,EAAUxwD,GAClCktD,EAAYlzF,KAAK,gBAAiBw2F,EAAUxwD,KAC3C,CAAE34B,SAAS,IAEd2oF,EAAMS,iBAAgB,SAAUC,EAAQ1wD,GACtCktD,EAAYlzF,KAAK,cAAe02F,EAAQ1wD,KACvC,CAAE34B,SAAS,KA6WZspF,CAAc9hG,OAId+hG,EAAuB,CAAE5wD,MAAO,CAAEx0B,cAAc,IAmMpD,SAASqlF,EAAkBtkG,EAAI4xD,EAAMz1B,GAMnC,OALIy1B,EAAKxnD,QAAQpK,GAAM,IACrBm8B,GAAWA,EAAQrhB,QACf82C,EAAKt6C,QAAQtX,GACb4xD,EAAK1nD,KAAKlK,IAET,WACL,IAAIxC,EAAIo0D,EAAKxnD,QAAQpK,GACjBxC,GAAK,GACPo0D,EAAK35C,OAAOza,EAAG,IAKrB,SAAS+mG,EAAYd,EAAOe,GAC1Bf,EAAMT,SAAW9kG,OAAOY,OAAO,MAC/B2kG,EAAMP,WAAahlG,OAAOY,OAAO,MACjC2kG,EAAMN,gBAAkBjlG,OAAOY,OAAO,MACtC2kG,EAAMJ,qBAAuBnlG,OAAOY,OAAO,MAC3C,IAAI20C,EAAQgwD,EAAMhwD,MAElBvzB,EAAcujF,EAAOhwD,EAAO,GAAIgwD,EAAML,SAAS/6F,MAAM,GAErDw7F,EAAaJ,EAAOhwD,EAAO+wD,GAG7B,SAASX,EAAcJ,EAAOhwD,EAAO+wD,GACnC,IAAIC,EAAQhB,EAAM5/B,IAGlB4/B,EAAM5B,QAAU,GAEhB4B,EAAMD,uBAAyBtlG,OAAOY,OAAO,MAC7C,IAAI4lG,EAAiBjB,EAAMN,gBACvBj9B,EAAW,GACf86B,EAAa0D,GAAgB,SAAU1kG,EAAIjB,GAIzCmnE,EAASnnE,GAnhBb,SAAkBiB,EAAIy4E,GACpB,OAAO,WACL,OAAOz4E,EAAGy4E,IAihBMksB,CAAQ3kG,EAAIyjG,GAC5BvlG,OAAOC,eAAeslG,EAAM5B,QAAS9iG,EAAK,CACxCV,IAAK,WAAc,OAAOolG,EAAM5/B,IAAI9kE,IACpCX,YAAY,OAOhB,IAAI+uD,EAASmiB,EAAI9nE,OAAO2lD,OACxBmiB,EAAI9nE,OAAO2lD,QAAS,EACpBs2C,EAAM5/B,IAAM,IAAIyL,EAAI,CAClBxkE,KAAM,CACJ85F,QAASnxD,GAEXyyB,SAAUA,IAEZoJ,EAAI9nE,OAAO2lD,OAASA,EAGhBs2C,EAAMX,QAwMZ,SAA2BW,GACzBA,EAAM5/B,IAAIkD,QAAO,WAAc,OAAOzkE,KAAKyjE,MAAM6+B,WAAW,WACtD,IAGH,CAAE9gC,MAAM,EAAME,MAAM,IA5MrB6gC,CAAiBpB,GAGfgB,IACED,GAGFf,EAAMqB,aAAY,WAChBL,EAAM1+B,MAAM6+B,QAAU,QAG1Bt1B,EAAIziE,UAAS,WAAc,OAAO43F,EAAM95B,eAI5C,SAASzqD,EAAeujF,EAAOsB,EAAW3hG,EAAM7F,EAAQinG,GACtD,IAAIQ,GAAU5hG,EAAKnD,OACfo2E,EAAYotB,EAAML,SAASf,aAAaj/F,GAW5C,GARI7F,EAAOikG,aACLiC,EAAMJ,qBAAqBhtB,GAG/BotB,EAAMJ,qBAAqBhtB,GAAa94E,IAIrCynG,IAAWR,EAAK,CACnB,IAAIS,EAAcC,EAAeH,EAAW3hG,EAAKoB,MAAM,GAAI,IACvDkb,EAAatc,EAAKA,EAAKnD,OAAS,GACpCwjG,EAAMqB,aAAY,WAQhBx1B,EAAInsE,IAAI8hG,EAAavlF,EAAYniB,EAAOk2C,UAI5C,IAAI0xD,EAAQ5nG,EAAOoX,QA2BrB,SAA2B8uF,EAAOptB,EAAWjzE,GAC3C,IAAIgiG,EAA4B,KAAd/uB,EAEd8uB,EAAQ,CACVzB,SAAU0B,EAAc3B,EAAMC,SAAW,SAAU2B,EAAOC,EAAUC,GAClE,IAAI/7F,EAAOg8F,EAAiBH,EAAOC,EAAUC,GACzC3B,EAAUp6F,EAAKo6F,QACfznE,EAAU3yB,EAAK2yB,QACfjL,EAAO1nB,EAAK0nB,KAUhB,OARKiL,GAAYA,EAAQ9zB,OACvB6oB,EAAOmlD,EAAYnlD,GAOduyE,EAAMC,SAASxyE,EAAM0yE,IAG9BD,OAAQyB,EAAc3B,EAAME,OAAS,SAAU0B,EAAOC,EAAUC,GAC9D,IAAI/7F,EAAOg8F,EAAiBH,EAAOC,EAAUC,GACzC3B,EAAUp6F,EAAKo6F,QACfznE,EAAU3yB,EAAK2yB,QACfjL,EAAO1nB,EAAK0nB,KAEXiL,GAAYA,EAAQ9zB,OACvB6oB,EAAOmlD,EAAYnlD,GAOrBuyE,EAAME,OAAOzyE,EAAM0yE,EAASznE,KAiBhC,OAXAj+B,OAAOoiB,iBAAiB6kF,EAAO,CAC7BtD,QAAS,CACPxjG,IAAK+mG,EACD,WAAc,OAAO3B,EAAM5B,SAC3B,WAAc,OAUxB,SAA2B4B,EAAOptB,GAChC,IAAKotB,EAAMD,uBAAuBntB,GAAY,CAC5C,IAAIovB,EAAe,GACfC,EAAWrvB,EAAUp2E,OACzB/B,OAAO2T,KAAK4xF,EAAM5B,SAAS/hG,SAAQ,SAAUoxB,GAE3C,GAAIA,EAAK1sB,MAAM,EAAGkhG,KAAcrvB,EAAhC,CAGA,IAAIsvB,EAAYz0E,EAAK1sB,MAAMkhG,GAK3BxnG,OAAOC,eAAesnG,EAAcE,EAAW,CAC7CtnG,IAAK,WAAc,OAAOolG,EAAM5B,QAAQ3wE,IACxC9yB,YAAY,QAGhBqlG,EAAMD,uBAAuBntB,GAAaovB,EAG5C,OAAOhC,EAAMD,uBAAuBntB,GAhCPuvB,CAAiBnC,EAAOptB,KAEnD5iC,MAAO,CACLp1C,IAAK,WAAc,OAAO6mG,EAAezB,EAAMhwD,MAAOrwC,OAInD+hG,EA/EsBU,CAAiBpC,EAAOptB,EAAWjzE,GAEhE7F,EAAO0kG,iBAAgB,SAAUgC,EAAUllG,IAyG7C,SAA2B0kG,EAAOvyE,EAAM7nB,EAAS87F,IACnC1B,EAAMP,WAAWhyE,KAAUuyE,EAAMP,WAAWhyE,GAAQ,KAC1DhnB,MAAK,SAAiC05F,GAC1Cv6F,EAAQ1L,KAAK8lG,EAAO0B,EAAM1xD,MAAOmwD,MA1GjCkC,CAAiBrC,EADIptB,EAAYt3E,EACOklG,EAAUkB,MAGpD5nG,EAAOykG,eAAc,SAAUmC,EAAQplG,GACrC,IAAImyB,EAAOizE,EAAO97F,KAAOtJ,EAAMs3E,EAAYt3E,EACvCsK,EAAU86F,EAAO96F,SAAW86F,GAyGpC,SAAyBV,EAAOvyE,EAAM7nB,EAAS87F,IACjC1B,EAAMT,SAAS9xE,KAAUuyE,EAAMT,SAAS9xE,GAAQ,KACtDhnB,MAAK,SAA+B05F,GACxC,IAjtBgBlkG,EAitBZysD,EAAM9iD,EAAQ1L,KAAK8lG,EAAO,CAC5BC,SAAUyB,EAAMzB,SAChBC,OAAQwB,EAAMxB,OACd9B,QAASsD,EAAMtD,QACfpuD,MAAO0xD,EAAM1xD,MACbsyD,YAAatC,EAAM5B,QACnBkD,UAAWtB,EAAMhwD,OAChBmwD,GAIH,OA5tBgBlkG,EAytBDysD,IAxtBiB,mBAAbzsD,EAAImR,OAytBrBs7C,EAAM39C,QAAQC,QAAQ09C,IAEpBs3C,EAAMK,aACD33C,EAAI3B,OAAM,SAAUmX,GAEzB,MADA8hC,EAAMK,aAAar2F,KAAK,aAAck0D,GAChCA,KAGDxV,KA5HT65C,CAAevC,EAAOvyE,EAAM7nB,EAAS87F,MAGvC5nG,EAAOwkG,eAAc,SAAU/jG,EAAQe,IA8HzC,SAAyB0kG,EAAOvyE,EAAM+0E,EAAWd,GAC/C,GAAI1B,EAAMN,gBAAgBjyE,GAIxB,cAEFuyE,EAAMN,gBAAgBjyE,GAAQ,SAAwBuyE,GACpD,OAAOwC,EACLd,EAAM1xD,MACN0xD,EAAMtD,QACN4B,EAAMhwD,MACNgwD,EAAM5B,UAxIRqE,CAAezC,EADMptB,EAAYt3E,EACKf,EAAQmnG,MAGhD5nG,EAAOukG,cAAa,SAAUznF,EAAOtb,GACnCmhB,EAAcujF,EAAOsB,EAAW3hG,EAAKgJ,OAAOrN,GAAMsb,EAAOmqF,MAiJ7D,SAASU,EAAgBzxD,EAAOrwC,GAC9B,OAAOA,EAAKyiD,QAAO,SAAUpS,EAAO10C,GAAO,OAAO00C,EAAM10C,KAAS00C,GAGnE,SAAS+xD,EAAkBt0E,EAAM0yE,EAASznE,GAWxC,OAVIv8B,EAASsxB,IAASA,EAAKA,OACzBiL,EAAUynE,EACVA,EAAU1yE,EACVA,EAAOA,EAAKA,MAOP,CAAEA,KAAMA,EAAM0yE,QAASA,EAASznE,QAASA,GAGlD,SAAS9b,EAAS8lF,GACZ72B,GAAO62B,IAAS72B;;;;;;AA/4BtB,SAAqBA,GAGnB,GAFc8D,OAAO9D,EAAI5mE,QAAQxE,MAAM,KAAK,KAE7B,EACborE,EAAIW,MAAM,CAAEm2B,aAAcC,QACrB,CAGL,IAAI92B,EAAQD,EAAIlwE,UAAUmwE,MAC1BD,EAAIlwE,UAAUmwE,MAAQ,SAAUpzC,QACb,IAAZA,IAAqBA,EAAU,IAEpCA,EAAQl5B,KAAOk5B,EAAQl5B,KACnB,CAACojG,GAAUj6F,OAAO+vB,EAAQl5B,MAC1BojG,EACJ92B,EAAM5xE,KAAK2E,KAAM65B,IAQrB,SAASkqE,IACP,IAAIlqE,EAAU75B,KAAKq0D,SAEfx6B,EAAQsnE,MACVnhG,KAAKgkG,OAAkC,mBAAlBnqE,EAAQsnE,MACzBtnE,EAAQsnE,QACRtnE,EAAQsnE,MACHtnE,EAAQ3gB,QAAU2gB,EAAQ3gB,OAAO8qF,SAC1ChkG,KAAKgkG,OAASnqE,EAAQ3gB,OAAO8qF,SAy3BjCC,CADAj3B,EAAM62B,GAxeR9B,EAAqB5wD,MAAMp1C,IAAM,WAC/B,OAAOiE,KAAKuhE,IAAIkC,MAAM6+B,SAGxBP,EAAqB5wD,MAAMtwC,IAAM,SAAU6G,GACrC,GAKN44F,EAAMxjG,UAAUukG,OAAS,SAAiB0B,EAAOC,EAAUC,GACvD,IAAI/C,EAASlgG,KAGX43B,EAAMsrE,EAAiBH,EAAOC,EAAUC,GACtCr0E,EAAOgJ,EAAIhJ,KACX0yE,EAAU1pE,EAAI0pE,QAGhBK,GAFY/pE,EAAIiC,QAEL,CAAEjL,KAAMA,EAAM0yE,QAASA,IAClCtzB,EAAQhuE,KAAK4gG,WAAWhyE,GACvBo/C,IAMLhuE,KAAKwiG,aAAY,WACfx0B,EAAMxwE,SAAQ,SAAyBuJ,GACrCA,EAAQu6F,SAIZthG,KAAKghG,aACF9+F,QACA1E,SAAQ,SAAUgyD,GAAO,OAAOA,EAAImyC,EAAUzB,EAAO/uD,YAa1DmvD,EAAMxjG,UAAUskG,SAAW,SAAmB2B,EAAOC,GACjD,IAAI9C,EAASlgG,KAGX43B,EAAMsrE,EAAiBH,EAAOC,GAC5Bp0E,EAAOgJ,EAAIhJ,KACX0yE,EAAU1pE,EAAI0pE,QAEhBO,EAAS,CAAEjzE,KAAMA,EAAM0yE,QAASA,GAChCtzB,EAAQhuE,KAAK0gG,SAAS9xE,GAC1B,GAAKo/C,EAAL,CAOA,IACEhuE,KAAK2gG,mBACFz+F,QACAsN,QAAO,SAAUggD,GAAO,OAAOA,EAAI8O,UACnC9gE,SAAQ,SAAUgyD,GAAO,OAAOA,EAAI8O,OAAOujC,EAAQ3B,EAAO/uD,UAC7D,MAAOjxC,GACH,EAMN,IAAId,EAAS4uE,EAAMrwE,OAAS,EACxBuO,QAAQwiF,IAAI1gB,EAAM1zD,KAAI,SAAUvT,GAAW,OAAOA,EAAQu6F,OAC1DtzB,EAAM,GAAGszB,GAEb,OAAO,IAAIp1F,SAAQ,SAAUC,EAASC,GACpChN,EAAOmP,MAAK,SAAUs7C,GACpB,IACEq2C,EAAOS,mBACJnxF,QAAO,SAAUggD,GAAO,OAAOA,EAAI00C,SACnC1mG,SAAQ,SAAUgyD,GAAO,OAAOA,EAAI00C,MAAMrC,EAAQ3B,EAAO/uD,UAC5D,MAAOjxC,GACH,EAKNiM,EAAQ09C,MACP,SAAU/6C,GACX,IACEoxF,EAAOS,mBACJnxF,QAAO,SAAUggD,GAAO,OAAOA,EAAI1gD,SACnCtR,SAAQ,SAAUgyD,GAAO,OAAOA,EAAI1gD,MAAM+yF,EAAQ3B,EAAO/uD,MAAOriC,MACnE,MAAO5O,GACH,EAKNkM,EAAO0C,WAKbwxF,EAAMxjG,UAAU4kG,UAAY,SAAoBhkG,EAAIm8B,GAClD,OAAOmoE,EAAiBtkG,EAAIsC,KAAKghG,aAAcnnE,IAGjDymE,EAAMxjG,UAAU8kG,gBAAkB,SAA0BlkG,EAAIm8B,GAE9D,OAAOmoE,EADkB,mBAAPtkG,EAAoB,CAAE4gE,OAAQ5gE,GAAOA,EACzBsC,KAAK2gG,mBAAoB9mE,IAGzDymE,EAAMxjG,UAAU4vD,MAAQ,SAAgBhxD,EAAQ4kE,EAAIzmC,GAChD,IAAIqmE,EAASlgG,KAKf,OAAOA,KAAKihG,WAAWx8B,QAAO,WAAc,OAAO/oE,EAAOwkG,EAAO/uD,MAAO+uD,EAAOX,WAAaj/B,EAAIzmC,IAGlGymE,EAAMxjG,UAAU2U,aAAe,SAAuB0/B,GAClD,IAAI+uD,EAASlgG,KAEfA,KAAKwiG,aAAY,WACftC,EAAO3+B,IAAIkC,MAAM6+B,QAAUnxD,MAI/BmvD,EAAMxjG,UAAUqnG,eAAiB,SAAyBrjG,EAAM89F,EAAW/kE,QACtD,IAAZA,IAAqBA,EAAU,IAElB,iBAAT/4B,IAAqBA,EAAO,CAACA,IAOxCd,KAAK8gG,SAAShB,SAASh/F,EAAM89F,GAC7BhhF,EAAc5d,KAAMA,KAAKmxC,MAAOrwC,EAAMd,KAAK8gG,SAAS/kG,IAAI+E,GAAO+4B,EAAQuqE,eAEvE7C,EAAavhG,KAAMA,KAAKmxC,QAG1BmvD,EAAMxjG,UAAUunG,iBAAmB,SAA2BvjG,GAC1D,IAAIo/F,EAASlgG,KAEK,iBAATc,IAAqBA,EAAO,CAACA,IAMxCd,KAAK8gG,SAASV,WAAWt/F,GACzBd,KAAKwiG,aAAY,WACf,IAAIG,EAAcC,EAAe1C,EAAO/uD,MAAOrwC,EAAKoB,MAAM,GAAI,IAC9D8qE,EAAIuE,OAAOoxB,EAAa7hG,EAAKA,EAAKnD,OAAS,OAE7CskG,EAAWjiG,OAGbsgG,EAAMxjG,UAAUwnG,UAAY,SAAoBxjG,GAO9C,MANoB,iBAATA,IAAqBA,EAAO,CAACA,IAMjCd,KAAK8gG,SAAST,aAAav/F,IAGpCw/F,EAAMxjG,UAAUynG,UAAY,SAAoBC,GAC9CxkG,KAAK8gG,SAAS9hF,OAAOwlF,GACrBvC,EAAWjiG,MAAM,IAGnBsgG,EAAMxjG,UAAU0lG,YAAc,SAAsB9kG,GAClD,IAAI+mG,EAAazkG,KAAKygG,YACtBzgG,KAAKygG,aAAc,EACnB/iG,IACAsC,KAAKygG,YAAcgE,GAGrB7oG,OAAOoiB,iBAAkBsiF,EAAMxjG,UAAWilG,GAmT1C,IAAI2C,EAAWC,GAAmB,SAAU5wB,EAAW6wB,GACrD,IAAI/6C,EAAM,GA0BV,OAtBAg7C,EAAaD,GAAQpnG,SAAQ,SAAUo6B,GACrC,IAAIn7B,EAAMm7B,EAAIn7B,IACVW,EAAMw6B,EAAIx6B,IAEdysD,EAAIptD,GAAO,WACT,IAAI00C,EAAQnxC,KAAKgkG,OAAO7yD,MACpBouD,EAAUv/F,KAAKgkG,OAAOzE,QAC1B,GAAIxrB,EAAW,CACb,IAAI94E,EAAS6pG,EAAqB9kG,KAAKgkG,OAAQ,WAAYjwB,GAC3D,IAAK94E,EACH,OAEFk2C,EAAQl2C,EAAOoX,QAAQ8+B,MACvBouD,EAAUtkG,EAAOoX,QAAQktF,QAE3B,MAAsB,mBAARniG,EACVA,EAAI/B,KAAK2E,KAAMmxC,EAAOouD,GACtBpuD,EAAM/zC,IAGZysD,EAAIptD,GAAKsoG,MAAO,KAEXl7C,KASLm7C,EAAeL,GAAmB,SAAU5wB,EAAW/3C,GACzD,IAAI6tB,EAAM,GA0BV,OAtBAg7C,EAAa7oE,GAAWx+B,SAAQ,SAAUo6B,GACxC,IAAIn7B,EAAMm7B,EAAIn7B,IACVW,EAAMw6B,EAAIx6B,IAEdysD,EAAIptD,GAAO,WAET,IADA,IAAIyK,EAAO,GAAI8C,EAAM1K,UAAU3B,OACvBqM,KAAQ9C,EAAM8C,GAAQ1K,UAAW0K,GAGzC,IAAIq3F,EAASrhG,KAAKgkG,OAAO3C,OACzB,GAAIttB,EAAW,CACb,IAAI94E,EAAS6pG,EAAqB9kG,KAAKgkG,OAAQ,eAAgBjwB,GAC/D,IAAK94E,EACH,OAEFomG,EAASpmG,EAAOoX,QAAQgvF,OAE1B,MAAsB,mBAARjkG,EACVA,EAAI4J,MAAMhH,KAAM,CAACqhG,GAAQv3F,OAAO5C,IAChCm6F,EAAOr6F,MAAMhH,KAAKgkG,OAAQ,CAAC5mG,GAAK0M,OAAO5C,QAGxC2iD,KASLo7C,EAAaN,GAAmB,SAAU5wB,EAAWwrB,GACvD,IAAI11C,EAAM,GAuBV,OAnBAg7C,EAAatF,GAAS/hG,SAAQ,SAAUo6B,GACtC,IAAIn7B,EAAMm7B,EAAIn7B,IACVW,EAAMw6B,EAAIx6B,IAGdA,EAAM22E,EAAY32E,EAClBysD,EAAIptD,GAAO,WACT,IAAIs3E,GAAc+wB,EAAqB9kG,KAAKgkG,OAAQ,aAAcjwB,GAOlE,OAAO/zE,KAAKgkG,OAAOzE,QAAQniG,IAG7BysD,EAAIptD,GAAKsoG,MAAO,KAEXl7C,KASLq7C,EAAaP,GAAmB,SAAU5wB,EAAWurB,GACvD,IAAIz1C,EAAM,GA0BV,OAtBAg7C,EAAavF,GAAS9hG,SAAQ,SAAUo6B,GACtC,IAAIn7B,EAAMm7B,EAAIn7B,IACVW,EAAMw6B,EAAIx6B,IAEdysD,EAAIptD,GAAO,WAET,IADA,IAAIyK,EAAO,GAAI8C,EAAM1K,UAAU3B,OACvBqM,KAAQ9C,EAAM8C,GAAQ1K,UAAW0K,GAGzC,IAAIo3F,EAAWphG,KAAKgkG,OAAO5C,SAC3B,GAAIrtB,EAAW,CACb,IAAI94E,EAAS6pG,EAAqB9kG,KAAKgkG,OAAQ,aAAcjwB,GAC7D,IAAK94E,EACH,OAEFmmG,EAAWnmG,EAAOoX,QAAQ+uF,SAE5B,MAAsB,mBAARhkG,EACVA,EAAI4J,MAAMhH,KAAM,CAACohG,GAAUt3F,OAAO5C,IAClCk6F,EAASp6F,MAAMhH,KAAKgkG,OAAQ,CAAC5mG,GAAK0M,OAAO5C,QAG1C2iD,KAsBT,SAASg7C,EAAcvqF,GACrB,OAaF,SAAqBA,GACnB,OAAOnT,MAAMhK,QAAQmd,IAAQhd,EAASgd,GAdjC6qF,CAAW7qF,GAGTnT,MAAMhK,QAAQmd,GACjBA,EAAIA,KAAI,SAAU7d,GAAO,MAAO,CAAGA,IAAKA,EAAKW,IAAKX,MAClDb,OAAO2T,KAAK+K,GAAKA,KAAI,SAAU7d,GAAO,MAAO,CAAGA,IAAKA,EAAKW,IAAKkd,EAAI7d,OAJ9D,GAqBX,SAASkoG,EAAoBjnG,GAC3B,OAAO,SAAUq2E,EAAWz5D,GAO1B,MANyB,iBAAdy5D,GACTz5D,EAAMy5D,EACNA,EAAY,IACwC,MAA3CA,EAAU3xE,OAAO2xE,EAAUp2E,OAAS,KAC7Co2E,GAAa,KAERr2E,EAAGq2E,EAAWz5D,IAWzB,SAASwqF,EAAsB3D,EAAOiE,EAAQrxB,GAK5C,OAJaotB,EAAMJ,qBAAqBhtB,GAgE1C,SAASsxB,EAAcC,EAAQ12F,EAAS22F,GACtC,IAAIF,EAAeE,EACfD,EAAOE,eACPF,EAAOG,MAGX,IACEJ,EAAahqG,KAAKiqG,EAAQ12F,GAC1B,MAAO1O,GACPolG,EAAOI,IAAI92F,IAIf,SAAS+2F,EAAYL,GACnB,IACEA,EAAOM,WACP,MAAO1lG,GACPolG,EAAOI,IAAI,kBAIf,SAASG,IACP,IAAIxzE,EAAO,IAAIpxB,KACf,MAAQ,MAAS6kG,EAAIzzE,EAAK0zE,WAAY,GAAM,IAAOD,EAAIzzE,EAAK2zE,aAAc,GAAM,IAAOF,EAAIzzE,EAAK4zE,aAAc,GAAM,IAAOH,EAAIzzE,EAAK6zE,kBAAmB,GAOzJ,SAASJ,EAAKK,EAAKC,GACjB,OALevmG,EAKD,IALMwmG,EAKDD,EAAYD,EAAIjpG,WAAWS,OAJvC,IAAKwJ,MAAMk/F,EAAQ,GAAIlkG,KAAKtC,GAIqBsmG,EAL1D,IAAiBtmG,EAAKwmG,EAQtB,IAAIvuF,EAAQ,CACVwoF,MAAOA,EACPviF,QAASA,EACT3X,QAAS,QACTs+F,SAAUA,EACVM,aAAcA,EACdC,WAAYA,EACZC,WAAYA,EACZoB,wBAnK4B,SAAUvyB,GAAa,MAAO,CAC1D2wB,SAAUA,EAAShoG,KAAK,KAAMq3E,GAC9BkxB,WAAYA,EAAWvoG,KAAK,KAAMq3E,GAClCixB,aAAcA,EAAatoG,KAAK,KAAMq3E,GACtCmxB,WAAYA,EAAWxoG,KAAK,KAAMq3E,KAgKlCwyB,aAlGF,SAAuB3uE,QACR,IAARA,IAAiBA,EAAM,IAC5B,IAAI2tE,EAAY3tE,EAAI2tE,eAA8B,IAAdA,IAAuBA,GAAY,GACvE,IAAI/1F,EAASooB,EAAIpoB,YAAwB,IAAXA,IAAoBA,EAAS,SAAUmyF,EAAU6E,EAAaC,GAAc,OAAO,IACjH,IAAIC,EAAc9uE,EAAI8uE,iBAAkC,IAAhBA,IAAyBA,EAAc,SAAUv1D,GAAS,OAAOA,IACzG,IAAIw1D,EAAsB/uE,EAAI+uE,yBAAkD,IAAxBA,IAAiCA,EAAsB,SAAUC,GAAO,OAAOA,IACvI,IAAIC,EAAejvE,EAAIivE,kBAAoC,IAAjBA,IAA0BA,EAAe,SAAUhF,EAAQ1wD,GAAS,OAAO,IACrH,IAAI21D,EAAoBlvE,EAAIkvE,uBAA8C,IAAtBA,IAA+BA,EAAoB,SAAUC,GAAO,OAAOA,IAC/H,IAAIC,EAAepvE,EAAIovE,kBAAoC,IAAjBA,IAA0BA,GAAe,GACnF,IAAIC,EAAarvE,EAAIqvE,gBAAgC,IAAfA,IAAwBA,GAAa,GAC3E,IAAI3B,EAAS1tE,EAAI0tE,OAEjB,YAFyC,IAAXA,IAAoBA,EAAS3lD,SAEpD,SAAUwhD,GACf,IAAI+F,EAAY5I,EAAS6C,EAAMhwD,YAET,IAAXm0D,IAIP0B,GACF7F,EAAMO,WAAU,SAAUC,EAAUxwD,GAClC,IAAIg2D,EAAY7I,EAASntD,GAEzB,GAAI3hC,EAAOmyF,EAAUuF,EAAWC,GAAY,CAC1C,IAAIC,EAAgBvB,IAChBwB,EAAoBV,EAAoBhF,GACxC/yF,EAAU,YAAe+yF,EAAa,KAAIyF,EAE9C/B,EAAaC,EAAQ12F,EAAS22F,GAC9BD,EAAOI,IAAI,gBAAiB,oCAAqCgB,EAAYQ,IAC7E5B,EAAOI,IAAI,cAAe,oCAAqC2B,GAC/D/B,EAAOI,IAAI,gBAAiB,oCAAqCgB,EAAYS,IAC7ExB,EAAWL,GAGb4B,EAAYC,KAIZF,GACF9F,EAAMS,iBAAgB,SAAUC,EAAQ1wD,GACtC,GAAI01D,EAAahF,EAAQ1wD,GAAQ,CAC/B,IAAIi2D,EAAgBvB,IAChByB,EAAkBR,EAAkBjF,GACpCjzF,EAAU,UAAaizF,EAAW,KAAIuF,EAE1C/B,EAAaC,EAAQ12F,EAAS22F,GAC9BD,EAAOI,IAAI,YAAa,oCAAqC4B,GAC7D3B,EAAWL,WAqDN,Q;qCCttCf,IAAIiC,EAAM,6BACNC,EAAY,mDACZC,EAA2B,oBAAVz1F,MAAwB,CAACxB,MAAO,CAAC,kBAAmB,IAAM,IAAIwB,MAC/E01F,EAAoB,eAAgBD,EAAQj3F,MAC5Cm3F,EAAyB,oBAAqBF,EAAQj3F,MACtDo3F,EAAc,oBAAqBH,EAAQj3F,MAC3Cq3F,EAAmD,iBAAvBJ,EAAQxuE,WACpC6uE,EAAqBL,EAAQ3jG,aAC7BikG,EAAqBN,EAAQh3F,aAC7Bu3F,GAAkB,EAoCtB,SAASC,EAAeC,EAAKhpF,EAAOC,GAEnC,IAAIiqE,EAnCI,wEAmC4BlqE,GAAS,GAnCwC,cAmCrCC,GAAU,GAnC8C,iBAsCpG2oF,EAAmBzsG,KAAK6sG,EAAK,SAAW9e,GAC3C2e,EAAmB1sG,KAAK6sG,EAAK,MAAO9e,GAItC,SAAS+e,EAAaD,EAAK/xF,GAGtB+xF,EAAIE,aACPjyF,EAAS+xF,GAET9kG,WAAW+kG,EAAc,IAAKD,EAAK/xF,GAIrC,SAASkyF,EAAOr0F,GACf,IAAIxD,EA/BL,SAAkBwD,GAIjB,IAHA,IACIs0F,EADA93F,EAAQsB,iBAAiBkC,GAAIu0F,WAE7BjxF,EAAQ,GACgC,QAApCgxF,EAASd,EAAUjU,KAAK/iF,KAC/B8G,EAAMgxF,EAAO,IAAMA,EAAO,GAE3B,OAAOhxF,EAwBK8mE,CAASpqE,GACjBw0F,EAAMx0F,EAAGuzF,GAIb,GAHA/2F,EAAM,cAAgBA,EAAM,eAAiB,QAGxCg4F,EAAIN,IAAK,CAEb,GAA4B,SAAxB13F,EAAM,cACT,OAID,IACEg4F,EAAIC,UACLf,IACCl3F,EAAM,mBAEP,OAKF,IAAKg4F,EAAIN,IAAK,CACbM,EAAIN,IAAM,IAAIl2F,MAAMgC,EAAGkL,MAAOlL,EAAGmL,QACjCqpF,EAAIN,IAAI1vE,OAASsvE,EAAmBzsG,KAAK2Y,EAAI,oBAAsBA,EAAGwkB,OACtEgwE,EAAIN,IAAIx4F,IAAMo4F,EAAmBzsG,KAAK2Y,EAAI,iBAAmBA,EAAGtE,IAIhEq4F,EAAmB1sG,KAAK2Y,EAAI,eAAgBA,EAAGtE,KAC3CsE,EAAGwkB,QACNuvE,EAAmB1sG,KAAK2Y,EAAI,kBAAmBA,EAAGwkB,QAGnDyvE,EAAej0F,EAAIA,EAAGo0F,cAAgBp0F,EAAGkL,MAAOlL,EAAG00F,eAAiB10F,EAAGmL,QAGnEnL,EAAGwkB,SACNxkB,EAAGwkB,OAAS,IAEb,KAiCF,SAAuBxkB,GACtB,IAAI20F,EAAc,CACjB5sG,IAAK,SAAaqT,GACjB,OAAO4E,EAAGuzF,GAAKW,IAAI94F,GAAc,QAElCvO,IAAK,SAAa1E,EAAOiT,GAIxB,OAHA4E,EAAGuzF,GAAKW,IAAI94F,GAAc,OAASjT,EACnC4rG,EAAmB1sG,KAAK2Y,EAAK,YAAc5E,EAAOjT,GAClDksG,EAAOr0F,GACA7X,IAGTP,OAAOC,eAAemY,EAAI,MAAO20F,GACjC/sG,OAAOC,eAAemY,EAAI,aAAc,CACvCjY,IAAK,WAAc,OAAO4sG,EAAY5sG,IAAI,iBAE3CH,OAAOC,eAAemY,EAAI,SAAU,CACnCjY,IAAK,WAAc,OAAO4sG,EAAY5sG,IAAI,WAC1C8E,IAAK,SAAU+nG,GAAM,OAAOD,EAAY9nG,IAAI+nG,EAAI,aAlD/CC,CAAc70F,GACb,MAAOqrD,GACJpgE,OAAO0gD,SACVA,QAAQC,KAAK,oCA/FjB,SAA4B5rC,GAC3B,GAAIA,EAAGwkB,SAAWqvE,GAAsB5oG,OAAO6pG,YAAa,CAC3D,IAAIC,EAAK9pG,OAAO6pG,YAAY7kG,EAEvB+P,EAAG+0F,EAAGxsG,KAAQyX,EAAG+0F,EAAGxsG,IAAIysG,QAE5BD,EAAGE,QAAQj1F,EAAI,CAACk1F,UAAU,IAGtBl1F,EAAG+0F,EAAGxsG,IAAI4sG,SAEdn1F,EAAG+0F,EAAGxsG,IAAI6sG,WAAY,EACtBL,EAAGE,QAAQj1F,EAAI,CAACk1F,UAAU,KAI3Bl1F,EAAGilB,WAAajlB,EAAG+0F,EAAGxsG,IAAI4sG,QAAUn1F,EAAGtE,KAoFxC25F,CAAmBb,EAAIN,KAEvBl0F,EAAGxD,MAAM84F,gBAAkB,SAAad,EAAIN,IAAIjvE,YAAcuvE,EAAIN,IAAIx4F,KAAK5P,QAAQ,KAAM,OAAU,KACnGkU,EAAGxD,MAAM+4F,mBAAqB/4F,EAAM,oBAAsB,SAC1DwD,EAAGxD,MAAMg5F,iBAAmB,YAC5Bx1F,EAAGxD,MAAMi5F,iBAAmB,cAExB,aAAapoG,KAAKmP,EAAM,eAC3B23F,EAAaK,EAAIN,KAAK,WACjBM,EAAIN,IAAIE,aAAep0F,EAAGkL,OAASspF,EAAIN,IAAIQ,cAAgB10F,EAAGmL,OACjEnL,EAAGxD,MAAMk5F,eAAiB,UAE1B11F,EAAGxD,MAAMk5F,eAAiB,UAI5B11F,EAAGxD,MAAMk5F,eAAiBl5F,EAAM,cAAc1Q,QAAQ,OAAQ,QAAQA,QAAQ,OAAQ,aAGvFqoG,EAAaK,EAAIN,KAAK,SAAUA,GAC/BD,EAAej0F,EAAIk0F,EAAIE,aAAcF,EAAIQ,kBAyC3C,SAASiB,EAAIC,EAAMztF,GAClB,IAAI0tF,GAAiB7B,IAAoB4B,EAIzC,GAHAztF,EAAOA,GAAQ,GACfytF,EAAOA,GAAQ,MAEVjC,IAA2BxrF,EAAKssF,WAAcb,EAClD,OAAO,EAIK,QAATgC,EACHA,EAAO1qG,SAASwR,qBAAqB,OACX,iBAATk5F,EACjBA,EAAO1qG,SAASgR,iBAAiB05F,GACrB,WAAYA,IACxBA,EAAO,CAACA,IAIT,IAAK,IAAI1uG,EAAI,EAAGA,EAAI0uG,EAAKjsG,OAAQzC,IAChC0uG,EAAK1uG,GAAGqsG,GAAOqC,EAAK1uG,GAAGqsG,IAAQ,CAC9BkB,SAAUtsF,EAAKssF,UAEhBJ,EAAOuB,EAAK1uG,IAGT2uG,IACH3qG,SAAS2Q,KAAK3B,iBAAiB,QAAQ,SAAUhO,GACvB,QAArBA,EAAE0G,OAAOitE,SACZ81B,EAAIzpG,EAAE0G,OAAQ,CACb6hG,SAAUtsF,EAAKssF,cAGf,GACHT,GAAkB,EAClB4B,EAAO,OAIJztF,EAAK2tF,SACR7qG,OAAOiP,iBAAiB,SAAUy7F,EAAIjtG,KAAK,KAAMktG,EAAM,CACtDnB,SAAUtsF,EAAKssF,YAKlBkB,EAAIjC,kBAAoBA,EACxBiC,EAAIhC,uBAAyBA,EA9D7B,WACC,SAASoC,EAAiB/1F,EAAIvY,GAC7B,OAAOuY,EAAGuzF,IAAQvzF,EAAGuzF,GAAKW,MAAiB,QAATzsG,GAA2B,WAATA,GAAqBuY,EAAGuzF,GAAKW,IAAMl0F,EAEnF2zF,IACJqC,iBAAiBltG,UAAUgH,aAAe,SAAUrI,GACnD,OAAOqsG,EAAmBzsG,KAAK0uG,EAAiB/pG,KAAMvE,GAAOA,IAG9DuuG,iBAAiBltG,UAAU2T,aAAe,SAAUhV,EAAMU,GACzD,OAAO4rG,EAAmB1sG,KAAK0uG,EAAiB/pG,KAAMvE,GAAOA,EAAM+F,OAAOrF,MAsD7E8tG,GAEAhvG,EAAOD,QAAU2uG,G,gBCtOjB,UAQE3pG,UAJG,KAFU,EAAF,WACL,OAAO+F,EAAKmkG,cAKZ;;AAEJ,SAASC,EAAMjxF,EAAQm6D,EAAKzsE,GAExB,GAAIA,EAAQ,CAER,IAAIwjG,EAAWlrG,SAASmrG,yBAA0BC,GAAWj3B,EAAIgU,aAAa,YAAczgF,EAAO9C,aAAa,WAEhHwmG,GAAWj3B,EAAI5iE,aAAa,UAAW65F,GAEvC,IACA,IAAIlkC,EAAQx/D,EAAOslB,WAAU,GAAKk6C,EAAM71D,WAAW5S,QAC/CysG,EAAS7xF,YAAY6tD,EAAM9tD,YAG/BY,EAAOX,YAAY6xF,IAG3B,SAASG,EAAqBC,GAE1BA,EAAIx9F,mBAAqB,WAErB,GAAI,IAAMw9F,EAAIv9F,WAAY,CAEtB,IAAIw9F,EAAiBD,EAAIE,gBAEzBD,KAAmBA,EAAiBD,EAAIE,gBAAkBxrG,SAASyhC,eAAegqE,mBAAmB,KACtF96F,KAAK6C,UAAY83F,EAAIj9F,aAAci9F,EAAII,cAAgB,IACtEJ,EAAIK,QAAQl1F,OAAO,GAAG2E,KAAI,SAASuuC,GAE/B,IAAIjiD,EAAS4jG,EAAII,cAAc/hD,EAAKwG,IAEpCzoD,IAAWA,EAAS4jG,EAAII,cAAc/hD,EAAKwG,IAAMo7C,EAAe/mG,eAAemlD,EAAKwG,KAEpF86C,EAAMthD,EAAK3vC,OAAQ2vC,EAAKwqB,IAAKzsE,QAIzC4jG,EAAIx9F,qBAsDR,SAAS89F,EAAenxD,GACpB,IAAK,IAAI05B,EAAM15B,EAAM,QAAU05B,EAAIpjE,SAAS1K,gBAAkB8tE,EAAMA,EAAIptE,cACxE,OAAOotE,EAEX,OAxDA,SAAuB03B,GA6CnB,IAAIC,EAAU7uF,EAAOvgB,OAAOmvG,GAAwKE,EAAWhsG,OAAOmY,MAAQnY,OAAOqd,KACrO0uF,EAAW,aAAc7uF,EAAOA,EAAK6uF,SADa,0CACQ3pG,KAAKtC,UAAUwS,aAAexS,UAAUwS,UAAUjM,MADoC,wBACd,IAAI,GAAK,QAAUvG,UAAUwS,UAAUjM,MADjE,2BACoF,IAAI,GAAK,KADrB,mBACmCjE,KAAKtC,UAAUwS,YAAc05F,EAEhP,IAAIC,EAAW,GAAIhvE,EAAwBj9B,OAAOi9B,uBAAyB94B,WAAY+nG,EAAOjsG,SAASwR,qBAAqB,OAAQ06F,EAAiC,EAErKJ,GAjDA,SAASK,IAEL,IACA,IAAIvzF,EAAQ,EAAGA,EAAQqzF,EAAKxtG,QAAU,CAElC,IAAIggB,EAAMwtF,EAAKrzF,GAAQoB,EAASyE,EAAI1X,WAAYotE,EAAMy3B,EAAe5xF,GAASxJ,EAAMiO,EAAI7Z,aAAa,eAAiB6Z,EAAI7Z,aAAa,QACvI,IAAK4L,GAAOyM,EAAKxa,gBAAkB+N,EAAMiO,EAAI7Z,aAAaqY,EAAKxa,gBAC/D0xE,GAAO3jE,GACH,GAAIs7F,EACA,IAAK7uF,EAAKmvF,UAAYnvF,EAAKmvF,SAAS57F,EAAK2jE,EAAK11D,GAAM,CAEhDzE,EAAOM,YAAYmE,GAEnB,IAAI4tF,EAAW77F,EAAI9N,MAAM,KAAM0F,EAAMikG,EAAS3oE,QAASysB,EAAKk8C,EAASppG,KAAK,KAE1E,GAAImF,EAAI3J,OAAQ,CAEZ,IAAI6sG,EAAMU,EAAS5jG,GAEnBkjG,KAAQA,EAAMU,EAAS5jG,GAAO,IAAIe,gBAAsB0E,KAAK,MAAOzF,GAAMkjG,EAAI97F,OAC9E87F,EAAIK,QAAU,IACdL,EAAIK,QAAQjjG,KAAK,CACbsR,OAAQA,EACRm6D,IAAKA,EACLhkB,GAAIA,IAERk7C,EAAqBC,QAGrBL,EAAMjxF,EAAQm6D,EAAKn0E,SAASwE,eAAe2rD,UAI7Cv3C,IAASszF,QAKjBtzF,IAIRqzF,EAAKxtG,QAAUwtG,EAAKxtG,OAASytG,EAAiC,IAAMlvE,EAAsBmvE,EAAY,IAOhGA,IA/FgBlrG,IAC/B,QAFM,OAEN,c,6BCFL,IAAIiH,EAAQ,EAAQ,GAChB1K,EAAO,EAAQ,GACf8uG,EAAQ,EAAQ,IAChBC,EAAc,EAAQ,IAS1B,SAASC,EAAeC,GACtB,IAAIt5F,EAAU,IAAIm5F,EAAMG,GACpBxuF,EAAWzgB,EAAK8uG,EAAM1uG,UAAUyP,QAAS8F,GAQ7C,OALAjL,EAAM5H,OAAO2d,EAAUquF,EAAM1uG,UAAWuV,GAGxCjL,EAAM5H,OAAO2d,EAAU9K,GAEhB8K,EAIT,IAAIyuF,EAAQF,EAtBG,EAAQ,IAyBvBE,EAAMJ,MAAQA,EAGdI,EAAMpvG,OAAS,SAAgBqvG,GAC7B,OAAOH,EAAeD,EAAYG,EAAM7qG,SAAU8qG,KAIpDD,EAAMn8F,OAAS,EAAQ,IACvBm8F,EAAME,YAAc,EAAQ,IAC5BF,EAAMG,SAAW,EAAQ,GAGzBH,EAAMld,IAAM,SAAasd,GACvB,OAAO9/F,QAAQwiF,IAAIsd,IAErBJ,EAAMK,OAAS,EAAQ,IAEvBhxG,EAAOD,QAAU4wG,EAGjB3wG,EAAOD,QAAQg5D,QAAU43C,G,6BClDzB,IAAIxkG,EAAQ,EAAQ,GAChByE,EAAW,EAAQ,GACnBqgG,EAAqB,EAAQ,IAC7BC,EAAkB,EAAQ,IAC1BV,EAAc,EAAQ,IAO1B,SAASD,EAAMK,GACb7rG,KAAKe,SAAW8qG,EAChB7rG,KAAKosG,aAAe,CAClB7/F,QAAS,IAAI2/F,EACb7+F,SAAU,IAAI6+F,GASlBV,EAAM1uG,UAAUyP,QAAU,SAAiBrH,GAGnB,iBAAXA,GACTA,EAAS5F,UAAU,IAAM,IAClBgI,IAAMhI,UAAU,GAEvB4F,EAASA,GAAU,IAGrBA,EAASumG,EAAYzrG,KAAKe,SAAUmE,IAGzB+D,OACT/D,EAAO+D,OAAS/D,EAAO+D,OAAO1D,cACrBvF,KAAKe,SAASkI,OACvB/D,EAAO+D,OAASjJ,KAAKe,SAASkI,OAAO1D,cAErCL,EAAO+D,OAAS,MAIlB,IAAIojG,EAAQ,CAACF,OAAiBp+F,GAC1BO,EAAUpC,QAAQC,QAAQjH,GAU9B,IARAlF,KAAKosG,aAAa7/F,QAAQ/O,SAAQ,SAAoC8uG,GACpED,EAAMr3F,QAAQs3F,EAAYC,UAAWD,EAAYE,aAGnDxsG,KAAKosG,aAAa/+F,SAAS7P,SAAQ,SAAkC8uG,GACnED,EAAMzkG,KAAK0kG,EAAYC,UAAWD,EAAYE,aAGzCH,EAAM1uG,QACX2Q,EAAUA,EAAQC,KAAK89F,EAAMzpE,QAASypE,EAAMzpE,SAG9C,OAAOt0B,GAGTk9F,EAAM1uG,UAAU2vG,OAAS,SAAgBvnG,GAEvC,OADAA,EAASumG,EAAYzrG,KAAKe,SAAUmE,GAC7B2G,EAAS3G,EAAOoC,IAAKpC,EAAOqC,OAAQrC,EAAOsC,kBAAkB1H,QAAQ,MAAO,KAIrFsH,EAAM5J,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6ByL,GAE/EuiG,EAAM1uG,UAAUmM,GAAU,SAAS3B,EAAKpC,GACtC,OAAOlF,KAAKuM,QAAQnF,EAAMjI,MAAM+F,GAAU,GAAI,CAC5C+D,OAAQA,EACR3B,IAAKA,SAKXF,EAAM5J,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+ByL,GAErEuiG,EAAM1uG,UAAUmM,GAAU,SAAS3B,EAAKkB,EAAMtD,GAC5C,OAAOlF,KAAKuM,QAAQnF,EAAMjI,MAAM+F,GAAU,GAAI,CAC5C+D,OAAQA,EACR3B,IAAKA,EACLkB,KAAMA,SAKZvN,EAAOD,QAAUwwG,G,6BC3FjB,IAAIpkG,EAAQ,EAAQ,GAEpB,SAAS8kG,IACPlsG,KAAKyV,SAAW,GAWlBy2F,EAAmBpvG,UAAU6gB,IAAM,SAAa4uF,EAAWC,GAKzD,OAJAxsG,KAAKyV,SAAS7N,KAAK,CACjB2kG,UAAWA,EACXC,SAAUA,IAELxsG,KAAKyV,SAAS9X,OAAS,GAQhCuuG,EAAmBpvG,UAAU4vG,MAAQ,SAAer9C,GAC9CrvD,KAAKyV,SAAS45C,KAChBrvD,KAAKyV,SAAS45C,GAAM,OAYxB68C,EAAmBpvG,UAAUU,QAAU,SAAiBE,GACtD0J,EAAM5J,QAAQwC,KAAKyV,UAAU,SAAwB4zE,GACzC,OAANA,GACF3rF,EAAG2rF,OAKTpuF,EAAOD,QAAUkxG,G,6BCjDjB,IAAI9kG,EAAQ,EAAQ,GAChBulG,EAAgB,EAAQ,IACxBZ,EAAW,EAAQ,GACnBhrG,EAAW,EAAQ,GAKvB,SAAS6rG,EAA6B1nG,GAChCA,EAAOmJ,aACTnJ,EAAOmJ,YAAYw+F,mBAUvB5xG,EAAOD,QAAU,SAAyBkK,GA6BxC,OA5BA0nG,EAA6B1nG,GAG7BA,EAAOiD,QAAUjD,EAAOiD,SAAW,GAGnCjD,EAAOsD,KAAOmkG,EACZznG,EAAOsD,KACPtD,EAAOiD,QACPjD,EAAOqD,kBAITrD,EAAOiD,QAAUf,EAAMjI,MACrB+F,EAAOiD,QAAQa,QAAU,GACzB9D,EAAOiD,QAAQjD,EAAO+D,SAAW,GACjC/D,EAAOiD,SAGTf,EAAM5J,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAA2ByL,UAClB/D,EAAOiD,QAAQc,OAIZ/D,EAAOkD,SAAWrH,EAASqH,SAE1BlD,GAAQqJ,MAAK,SAA6BlB,GAUvD,OATAu/F,EAA6B1nG,GAG7BmI,EAAS7E,KAAOmkG,EACdt/F,EAAS7E,KACT6E,EAASlF,QACTjD,EAAOuD,mBAGF4E,KACN,SAA4Bk8D,GAc7B,OAbKwiC,EAASxiC,KACZqjC,EAA6B1nG,GAGzBqkE,GAAUA,EAAOl8D,WACnBk8D,EAAOl8D,SAAS7E,KAAOmkG,EACrBpjC,EAAOl8D,SAAS7E,KAChB+gE,EAAOl8D,SAASlF,QAChBjD,EAAOuD,qBAKNyD,QAAQE,OAAOm9D,Q,6BC1E1B,IAAIniE,EAAQ,EAAQ,GAUpBnM,EAAOD,QAAU,SAAuBwN,EAAML,EAASoqD,GAMrD,OAJAnrD,EAAM5J,QAAQ+0D,GAAK,SAAmB70D,GACpC8K,EAAO9K,EAAG8K,EAAML,MAGXK,I,6BChBT,IAAIpB,EAAQ,EAAQ,GAEpBnM,EAAOD,QAAU,SAA6BmN,EAASs1E,GACrDr2E,EAAM5J,QAAQ2K,GAAS,SAAuBhM,EAAOV,GAC/CA,IAASgiF,GAAkBhiF,EAAKiK,gBAAkB+3E,EAAe/3E,gBACnEyC,EAAQs1E,GAAkBthF,SACnBgM,EAAQ1M,S,6BCNrB,IAAIwQ,EAAc,EAAQ,IAS1BhR,EAAOD,QAAU,SAAgBmR,EAASC,EAAQiB,GAChD,IAAIvE,EAAiBuE,EAASnI,OAAO4D,gBAChCA,GAAkBA,EAAeuE,EAAStE,QAC7CoD,EAAQkB,GAERjB,EAAOH,EACL,mCAAqCoB,EAAStE,OAC9CsE,EAASnI,OACT,KACAmI,EAASd,QACTc,M,6BCTNpS,EAAOD,QAAU,SAAsB8T,EAAO5J,EAAQ2J,EAAMtC,EAASc,GA4BnE,OA3BAyB,EAAM5J,OAASA,EACX2J,IACFC,EAAMD,KAAOA,GAGfC,EAAMvC,QAAUA,EAChBuC,EAAMzB,SAAWA,EACjByB,EAAMg+F,cAAe,EAErBh+F,EAAMi+F,OAAS,WACb,MAAO,CAELn+F,QAAS5O,KAAK4O,QACdnT,KAAMuE,KAAKvE,KAEXuxG,YAAahtG,KAAKgtG,YAClBx2D,OAAQx2C,KAAKw2C,OAEby2D,SAAUjtG,KAAKitG,SACfC,WAAYltG,KAAKktG,WACjBC,aAAcntG,KAAKmtG,aACnB/e,MAAOpuF,KAAKouF,MAEZlpF,OAAQlF,KAAKkF,OACb2J,KAAM7O,KAAK6O,OAGRC,I,6BCtCT,IAAIs+F,EAAgB,EAAQ,IACxBC,EAAc,EAAQ,IAW1BpyG,EAAOD,QAAU,SAAuB8R,EAASwgG,GAC/C,OAAIxgG,IAAYsgG,EAAcE,GACrBD,EAAYvgG,EAASwgG,GAEvBA,I,6BCVTryG,EAAOD,QAAU,SAAuBsM,GAItC,MAAO,gCAAgCjG,KAAKiG,K,6BCH9CrM,EAAOD,QAAU,SAAqB8R,EAASygG,GAC7C,OAAOA,EACHzgG,EAAQhN,QAAQ,OAAQ,IAAM,IAAMytG,EAAYztG,QAAQ,OAAQ,IAChEgN,I,6BCVN,IAAI1F,EAAQ,EAAQ,GAIhBomG,EAAoB,CACtB,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,cAgB5BvyG,EAAOD,QAAU,SAAsBmN,GACrC,IACI1L,EACAW,EACAlC,EAHAotG,EAAS,GAKb,OAAKngG,GAELf,EAAM5J,QAAQ2K,EAAQvG,MAAM,OAAO,SAAgB6rG,GAKjD,GAJAvyG,EAAIuyG,EAAK3lG,QAAQ,KACjBrL,EAAM2K,EAAMxH,KAAK6tG,EAAKh2E,OAAO,EAAGv8B,IAAIqK,cACpCnI,EAAMgK,EAAMxH,KAAK6tG,EAAKh2E,OAAOv8B,EAAI,IAE7BuB,EAAK,CACP,GAAI6rG,EAAO7rG,IAAQ+wG,EAAkB1lG,QAAQrL,IAAQ,EACnD,OAGA6rG,EAAO7rG,GADG,eAARA,GACa6rG,EAAO7rG,GAAO6rG,EAAO7rG,GAAO,IAAIqN,OAAO,CAAC1M,IAEzCkrG,EAAO7rG,GAAO6rG,EAAO7rG,GAAO,KAAOW,EAAMA,MAKtDkrG,GAnBgBA,I,6BC9BzB,IAAIlhG,EAAQ,EAAQ,GAEpBnM,EAAOD,QACLoM,EAAMtI,uBAIJ,WACE,IAEI4uG,EAFAC,EAAO,kBAAkBtsG,KAAKtC,UAAUwS,WACxCq8F,EAAiB1uG,SAASmR,cAAc,KAS5C,SAASw9F,EAAWvmG,GAClB,IAAI2J,EAAO3J,EAWX,OATIqmG,IAEFC,EAAen9F,aAAa,OAAQQ,GACpCA,EAAO28F,EAAe38F,MAGxB28F,EAAen9F,aAAa,OAAQQ,GAG7B,CACLA,KAAM28F,EAAe38F,KACrBG,SAAUw8F,EAAex8F,SAAWw8F,EAAex8F,SAAStR,QAAQ,KAAM,IAAM,GAChFiR,KAAM68F,EAAe78F,KACrBM,OAAQu8F,EAAev8F,OAASu8F,EAAev8F,OAAOvR,QAAQ,MAAO,IAAM,GAC3EgR,KAAM88F,EAAe98F,KAAO88F,EAAe98F,KAAKhR,QAAQ,KAAM,IAAM,GACpEkR,SAAU48F,EAAe58F,SACzB88F,KAAMF,EAAeE,KACrB38F,SAAiD,MAAtCy8F,EAAez8F,SAAS/O,OAAO,GACxCwrG,EAAez8F,SACf,IAAMy8F,EAAez8F,UAY3B,OARAu8F,EAAYG,EAAW5uG,OAAO4R,SAASI,MAQhC,SAAyB88F,GAC9B,IAAIzF,EAAUlhG,EAAM/I,SAAS0vG,GAAeF,EAAWE,GAAcA,EACrE,OAAQzF,EAAOl3F,WAAas8F,EAAUt8F,UAClCk3F,EAAOv3F,OAAS28F,EAAU38F,MAhDlC,GAsDS,WACL,OAAO,I,6BC9Df,IAAI3J,EAAQ,EAAQ,GAEpBnM,EAAOD,QACLoM,EAAMtI,uBAIK,CACLwC,MAAO,SAAe7F,EAAMU,EAAO6E,EAASF,EAAMktG,EAAQC,GACxD,IAAIpsG,EAAS,GACbA,EAAO+F,KAAKnM,EAAO,IAAM8F,mBAAmBpF,IAExCiL,EAAM9I,SAAS0C,IACjBa,EAAO+F,KAAK,WAAa,IAAI3G,KAAKD,GAASktG,eAGzC9mG,EAAM/I,SAASyC,IACjBe,EAAO+F,KAAK,QAAU9G,GAGpBsG,EAAM/I,SAAS2vG,IACjBnsG,EAAO+F,KAAK,UAAYomG,IAGX,IAAXC,GACFpsG,EAAO+F,KAAK,UAGd1I,SAAS2C,OAASA,EAAOM,KAAK,OAGhCE,KAAM,SAAc5G,GAClB,IAAI6J,EAAQpG,SAAS2C,OAAOyD,MAAM,IAAIE,OAAO,aAAe/J,EAAO,cACnE,OAAQ6J,EAAQ5E,mBAAmB4E,EAAM,IAAM,MAGjD9C,OAAQ,SAAgB/G,GACtBuE,KAAKsB,MAAM7F,EAAM,GAAIwF,KAAK6Y,MAAQ,SAO/B,CACLxY,MAAO,aACPe,KAAM,WAAkB,OAAO,MAC/BG,OAAQ,e,6BC/ChB,IAAIiN,EAAS,EAAQ,IAQrB,SAASq8F,EAAYqC,GACnB,GAAwB,mBAAbA,EACT,MAAM,IAAIhoG,UAAU,gCAGtB,IAAIioG,EACJpuG,KAAKsO,QAAU,IAAIpC,SAAQ,SAAyBC,GAClDiiG,EAAiBjiG,KAGnB,IAAIkiG,EAAQruG,KACZmuG,GAAS,SAAgBv/F,GACnBy/F,EAAM9kC,SAKV8kC,EAAM9kC,OAAS,IAAI95D,EAAOb,GAC1Bw/F,EAAeC,EAAM9kC,YAOzBuiC,EAAYhvG,UAAU+vG,iBAAmB,WACvC,GAAI7sG,KAAKupE,OACP,MAAMvpE,KAAKupE,QAQfuiC,EAAY9vD,OAAS,WACnB,IAAIxtC,EAIJ,MAAO,CACL6/F,MAJU,IAAIvC,GAAY,SAAkBvwG,GAC5CiT,EAASjT,KAITiT,OAAQA,IAIZvT,EAAOD,QAAU8wG,G,6BClCjB7wG,EAAOD,QAAU,SAAgBmb,GAC/B,OAAO,SAAc/D,GACnB,OAAO+D,EAASnP,MAAM,KAAMoL,M;;;;;;AClBiCnX,EAAOD,QAG/D,SAAW0H,EAAGQ,GAAQ,aAE7B,SAASP,EAAuBzC,GAAK,OAAOA,GAAkB,iBAANA,GAAkB,YAAaA,EAAIA,EAAI,CAAE,QAAWA,GAE5G,IAAI0C,EAA0BD,EAAsBD,GAChD4rG,EAA6B3rG,EAAsBO,GAEvD,SAASqrG,EAAkB3nG,EAAQ0Q,GACjC,IAAK,IAAIpc,EAAI,EAAGA,EAAIoc,EAAM3Z,OAAQzC,IAAK,CACrC,IAAIygD,EAAarkC,EAAMpc,GACvBygD,EAAW7/C,WAAa6/C,EAAW7/C,aAAc,EACjD6/C,EAAWh/B,cAAe,EACtB,UAAWg/B,IAAYA,EAAWC,UAAW,GACjDhgD,OAAOC,eAAe+K,EAAQ+0C,EAAWl/C,IAAKk/C,IAalD,SAASI,IAcP,OAbAA,EAAWngD,OAAO4Y,OAAS5Y,OAAO4Y,OAAO9X,OAAS,SAAUkK,GAC1D,IAAK,IAAI1L,EAAI,EAAGA,EAAIoE,UAAU3B,OAAQzC,IAAK,CACzC,IAAI8gD,EAAS18C,UAAUpE,GAEvB,IAAK,IAAIuB,KAAOu/C,EACVpgD,OAAOkB,UAAUC,eAAe1B,KAAK2gD,EAAQv/C,KAC/CmK,EAAOnK,GAAOu/C,EAAOv/C,IAK3B,OAAOmK,IAEOI,MAAMhH,KAAMV,WAO9B,IAAIkvG,EAAO,WAEPC,EAAW,cAGXC,EAAqB9rG,EAAoB,QAAElF,GAAG8wG,GAc9CG,EAAU,CACZl7F,QAAQ,EACRyF,OAAQ,IAEN01F,EAAc,CAChBn7F,OAAQ,UACRyF,OAAQ,oBAMN21F,EAAwB,WAC1B,SAASA,EAASjrG,EAASsB,GACzBlF,KAAK8uG,kBAAmB,EACxB9uG,KAAK+uG,SAAWnrG,EAChB5D,KAAKgvG,QAAUhvG,KAAKivG,WAAW/pG,GAC/BlF,KAAKkvG,cAAgB,GAAGhtG,MAAM7G,KAAK6D,SAASgR,iBAAiB,mCAAwCtM,EAAQyrD,GAAhD,6CAA8GzrD,EAAQyrD,GAAK,OAGxL,IAFA,IAAI8/C,EAAa,GAAGjtG,MAAM7G,KAAK6D,SAASgR,iBAnBjB,6BAqBdhV,EAAI,EAAG8O,EAAMmlG,EAAWxxG,OAAQzC,EAAI8O,EAAK9O,IAAK,CACrD,IAAIk0G,EAAOD,EAAWj0G,GAClB2I,EAAWyqG,EAAuB,QAAE3qG,uBAAuByrG,GAC3DC,EAAgB,GAAGntG,MAAM7G,KAAK6D,SAASgR,iBAAiBrM,IAAW2L,QAAO,SAAU8/F,GACtF,OAAOA,IAAc1rG,KAGN,OAAbC,GAAqBwrG,EAAc1xG,OAAS,IAC9CqC,KAAKuvG,UAAY1rG,EAEjB7D,KAAKkvG,cAActnG,KAAKwnG,IAI5BpvG,KAAKwvG,QAAUxvG,KAAKgvG,QAAQ91F,OAASlZ,KAAKyvG,aAAe,KAEpDzvG,KAAKgvG,QAAQ91F,QAChBlZ,KAAK0vG,0BAA0B1vG,KAAK+uG,SAAU/uG,KAAKkvG,eAGjDlvG,KAAKgvG,QAAQv7F,QACfzT,KAAKyT,SAKT,IA/FoBgoC,EAAaI,EAAYC,EA+FzC6zD,EAASd,EAAS/xG,UA4OtB,OAzOA6yG,EAAOl8F,OAAS,WACV7Q,EAAoB,QAAE5C,KAAK+uG,UAAUz7F,SA/DvB,QAgEhBtT,KAAKknC,OAELlnC,KAAK4iF,QAIT+sB,EAAO/sB,KAAO,WACZ,IAMIgtB,EACAC,EAPA9sG,EAAQ/C,KAEZ,KAAIA,KAAK8uG,kBAAoBlsG,EAAoB,QAAE5C,KAAK+uG,UAAUz7F,SAzEhD,UAgFdtT,KAAKwvG,SASgB,KARvBI,EAAU,GAAG1tG,MAAM7G,KAAK2E,KAAKwvG,QAAQt/F,iBAtEpB,uBAsEwDV,QAAO,SAAU4/F,GACxF,MAAoC,iBAAzBrsG,EAAMisG,QAAQ91F,OAChBk2F,EAAKtrG,aAAa,iBAAmBf,EAAMisG,QAAQ91F,OAGrDk2F,EAAKj8F,UAAUI,SArFJ,gBAwFR5V,SACViyG,EAAU,MAIVA,IACFC,EAAcjtG,EAAoB,QAAEgtG,GAASE,IAAI9vG,KAAKuvG,WAAW/mG,KAAKimG,KAEnDoB,EAAYf,mBAHjC,CAQA,IAAIiB,EAAantG,EAAoB,QAAEotG,MAhG1B,oBAmGb,GAFAptG,EAAoB,QAAE5C,KAAK+uG,UAAUpqG,QAAQorG,IAEzCA,EAAWE,qBAAf,CAIIL,IACFf,EAASqB,iBAAiB70G,KAAKuH,EAAoB,QAAEgtG,GAASE,IAAI9vG,KAAKuvG,WAAY,QAE9EM,GACHjtG,EAAoB,QAAEgtG,GAASpnG,KAAKimG,EAAU,OAIlD,IAAI0B,EAAYnwG,KAAKowG,gBAErBxtG,EAAoB,QAAE5C,KAAK+uG,UAAU17F,YAtHf,YAsHgDN,SArH9C,cAsHxB/S,KAAK+uG,SAASv+F,MAAM2/F,GAAa,EAE7BnwG,KAAKkvG,cAAcvxG,QACrBiF,EAAoB,QAAE5C,KAAKkvG,eAAe77F,YAxHrB,aAwHuDK,KAAK,iBAAiB,GAGpG1T,KAAKqwG,kBAAiB,GAEtB,IAUIC,EAAa,UADUH,EAAU,GAAGzqG,cAAgByqG,EAAUjuG,MAAM,IAEpEiC,EAAqBmqG,EAAuB,QAAEpqG,iCAAiClE,KAAK+uG,UACxFnsG,EAAoB,QAAE5C,KAAK+uG,UAAU9rG,IAAIqrG,EAAuB,QAAEnrG,gBAZnD,WACbP,EAAoB,QAAEG,EAAMgsG,UAAU17F,YA/HhB,cA+HmDN,SAASw9F,iBAClFxtG,EAAMgsG,SAASv+F,MAAM2/F,GAAa,GAElCptG,EAAMstG,kBAAiB,GAEvBztG,EAAoB,QAAEG,EAAMgsG,UAAUpqG,QA/H1B,wBAqI8E2B,qBAAqBnC,GACjHnE,KAAK+uG,SAASv+F,MAAM2/F,GAAanwG,KAAK+uG,SAASuB,GAAc,QAG/DX,EAAOzoE,KAAO,WACZ,IAAIspE,EAASxwG,KAEb,IAAIA,KAAK8uG,kBAAqBlsG,EAAoB,QAAE5C,KAAK+uG,UAAUz7F,SAnJjD,QAmJlB,CAIA,IAAIy8F,EAAantG,EAAoB,QAAEotG,MA/I1B,oBAkJb,GAFAptG,EAAoB,QAAE5C,KAAK+uG,UAAUpqG,QAAQorG,IAEzCA,EAAWE,qBAAf,CAIA,IAAIE,EAAYnwG,KAAKowG,gBAErBpwG,KAAK+uG,SAASv+F,MAAM2/F,GAAanwG,KAAK+uG,SAASl4F,wBAAwBs5F,GAAa,KACpF7B,EAAuB,QAAE7pG,OAAOzE,KAAK+uG,UACrCnsG,EAAoB,QAAE5C,KAAK+uG,UAAUh8F,SAhKb,cAgK6CM,YAAYk9F,iBACjF,IAAIE,EAAqBzwG,KAAKkvG,cAAcvxG,OAE5C,GAAI8yG,EAAqB,EACvB,IAAK,IAAIv1G,EAAI,EAAGA,EAAIu1G,EAAoBv1G,IAAK,CAC3C,IAAIyJ,EAAU3E,KAAKkvG,cAAch0G,GAC7B2I,EAAWyqG,EAAuB,QAAE3qG,uBAAuBgB,GAE9C,OAAbd,IACUjB,EAAoB,QAAE,GAAGV,MAAM7G,KAAK6D,SAASgR,iBAAiBrM,KAE/DyP,SA7KC,SA8KV1Q,EAAoB,QAAE+B,GAASoO,SA3KhB,aA2K+CW,KAAK,iBAAiB,IAM5F1T,KAAKqwG,kBAAiB,GAQtBrwG,KAAK+uG,SAASv+F,MAAM2/F,GAAa,GACjC,IAAIhsG,EAAqBmqG,EAAuB,QAAEpqG,iCAAiClE,KAAK+uG,UACxFnsG,EAAoB,QAAE5C,KAAK+uG,UAAU9rG,IAAIqrG,EAAuB,QAAEnrG,gBARnD,WACbqtG,EAAOH,kBAAiB,GAExBztG,EAAoB,QAAE4tG,EAAOzB,UAAU17F,YAvLjB,cAuLoDN,SAxLtD,YAwLoFpO,QAhL3F,yBAqL6E2B,qBAAqBnC,MAGnHwrG,EAAOU,iBAAmB,SAA0BK,GAClD1wG,KAAK8uG,iBAAmB4B,GAG1Bf,EAAOgB,QAAU,WACf/tG,EAAoB,QAAEguG,WAAW5wG,KAAK+uG,SAAUN,GAChDzuG,KAAKgvG,QAAU,KACfhvG,KAAKwvG,QAAU,KACfxvG,KAAK+uG,SAAW,KAChB/uG,KAAKkvG,cAAgB,KACrBlvG,KAAK8uG,iBAAmB,MAI1Ba,EAAOV,WAAa,SAAoB/pG,GAKtC,OAJAA,EAAS62C,EAAS,GAAI4yD,EAASzpG,IACxBuO,OAAS5O,QAAQK,EAAOuO,QAE/B66F,EAAuB,QAAEtpG,gBAAgBwpG,EAAMtpG,EAAQ0pG,GAChD1pG,GAGTyqG,EAAOS,cAAgB,WAErB,OADextG,EAAoB,QAAE5C,KAAK+uG,UAAUz7F,SApNlC,iBACC,UAuNrBq8F,EAAOF,WAAa,WAClB,IAEIv2F,EAFA23F,EAAS7wG,KAITsuG,EAAuB,QAAExpG,UAAU9E,KAAKgvG,QAAQ91F,SAClDA,EAASlZ,KAAKgvG,QAAQ91F,YAEoB,IAA/BlZ,KAAKgvG,QAAQ91F,OAAO7S,SAC7B6S,EAASlZ,KAAKgvG,QAAQ91F,OAAO,KAG/BA,EAASha,SAAS8E,cAAchE,KAAKgvG,QAAQ91F,QAG/C,IAAIrV,EAAW,yCAA8C7D,KAAKgvG,QAAQ91F,OAAS,KAC/E5I,EAAW,GAAGpO,MAAM7G,KAAK6d,EAAOhJ,iBAAiBrM,IAIrD,OAHAjB,EAAoB,QAAE0N,GAAUiH,MAAK,SAAUrc,EAAG0I,GAChDitG,EAAOnB,0BAA0Bb,EAASiC,sBAAsBltG,GAAU,CAACA,OAEtEsV,GAGTy2F,EAAOD,0BAA4B,SAAmC9rG,EAASmtG,GAC7E,IAAIC,EAASpuG,EAAoB,QAAEgB,GAAS0P,SApP1B,QAsPdy9F,EAAapzG,QACfiF,EAAoB,QAAEmuG,GAAcv9F,YApPf,aAoPkDw9F,GAAQt9F,KAAK,gBAAiBs9F,IAKzGnC,EAASiC,sBAAwB,SAA+BltG,GAC9D,IAAIC,EAAWyqG,EAAuB,QAAE3qG,uBAAuBC,GAC/D,OAAOC,EAAW3E,SAAS8E,cAAcH,GAAY,MAGvDgrG,EAASqB,iBAAmB,SAA0BhrG,GACpD,OAAOlF,KAAKuX,MAAK,WACf,IAAI05F,EAAWruG,EAAoB,QAAE5C,MACjCwI,EAAOyoG,EAASzoG,KAAKimG,GAErBO,EAAUjzD,EAAS,GAAI4yD,EAASsC,EAASzoG,OAA0B,iBAAXtD,GAAuBA,EAASA,EAAS,IAWrG,IATKsD,GAAQwmG,EAAQv7F,QAA4B,iBAAXvO,GAAuB,YAAY7D,KAAK6D,KAC5E8pG,EAAQv7F,QAAS,GAGdjL,IACHA,EAAO,IAAIqmG,EAAS7uG,KAAMgvG,GAC1BiC,EAASzoG,KAAKimG,EAAUjmG,IAGJ,iBAAXtD,EAAqB,CAC9B,QAA4B,IAAjBsD,EAAKtD,GACd,MAAM,IAAIiB,UAAU,oBAAuBjB,EAAS,KAGtDsD,EAAKtD,UA1TSu2C,EA+TPozD,EA/TgC/yD,EA+ThB,CAAC,CAC5Br/C,IAAK,UACLV,IAAK,WACH,MAnSQ,UAqST,CACDU,IAAK,UACLV,IAAK,WACH,OAAO4yG,MAvUsB9yD,EA+TV,OA9TP0yD,EAAkB9yD,EAAY3+C,UAAW++C,GACrDC,GAAayyD,EAAkB9yD,EAAaK,GAChDlgD,OAAOC,eAAe4/C,EAAa,YAAa,CAC9CG,UAAU,IAuULizD,EA9QmB,GAkT5B,OA7BAjsG,EAAoB,QAAE1D,UAAU2L,GApSL,6BAEA,4BAkSoD,SAAUtE,GAEnD,MAAhCA,EAAMq1E,cAAc/H,SACtBttE,EAAM+pB,iBAGR,IAAI4gF,EAAWtuG,EAAoB,QAAE5C,MACjC6D,EAAWyqG,EAAuB,QAAE3qG,uBAAuB3D,MAC3DmxG,EAAY,GAAGjvG,MAAM7G,KAAK6D,SAASgR,iBAAiBrM,IACxDjB,EAAoB,QAAEuuG,GAAW55F,MAAK,WACpC,IAAI65F,EAAUxuG,EAAoB,QAAE5C,MAEhCkF,EADOksG,EAAQ5oG,KAAKimG,GACJ,SAAWyC,EAAS1oG,OAExCqmG,EAASqB,iBAAiB70G,KAAK+1G,EAASlsG,SAO5CtC,EAAoB,QAAElF,GAAG8wG,GAAQK,EAASqB,iBAC1CttG,EAAoB,QAAElF,GAAG8wG,GAAM/yD,YAAcozD,EAE7CjsG,EAAoB,QAAElF,GAAG8wG,GAAMjuG,WAAa,WAE1C,OADAqC,EAAoB,QAAElF,GAAG8wG,GAAQE,EAC1BG,EAASqB,kBAGXrB,EAnYyE1uG,CAAQ,EAAQ,GAAW,EAAQ,K;;;;;;ACApDlF,EAAOD,QAG/D,SAAW0H,EAAGQ,GAAQ,aAE7B,SAASP,EAAuBzC,GAAK,OAAOA,GAAkB,iBAANA,GAAkB,YAAaA,EAAIA,EAAI,CAAE,QAAWA,GAE5G,IAAI0C,EAA0BD,EAAsBD,GAChD4rG,EAA6B3rG,EAAsBO,GAEvD,SAASqrG,EAAkB3nG,EAAQ0Q,GACjC,IAAK,IAAIpc,EAAI,EAAGA,EAAIoc,EAAM3Z,OAAQzC,IAAK,CACrC,IAAIygD,EAAarkC,EAAMpc,GACvBygD,EAAW7/C,WAAa6/C,EAAW7/C,aAAc,EACjD6/C,EAAWh/B,cAAe,EACtB,UAAWg/B,IAAYA,EAAWC,UAAW,GACjDhgD,OAAOC,eAAe+K,EAAQ+0C,EAAWl/C,IAAKk/C,IAalD,SAASI,IAcP,OAbAA,EAAWngD,OAAO4Y,OAAS5Y,OAAO4Y,OAAO9X,OAAS,SAAUkK,GAC1D,IAAK,IAAI1L,EAAI,EAAGA,EAAIoE,UAAU3B,OAAQzC,IAAK,CACzC,IAAI8gD,EAAS18C,UAAUpE,GAEvB,IAAK,IAAIuB,KAAOu/C,EACVpgD,OAAOkB,UAAUC,eAAe1B,KAAK2gD,EAAQv/C,KAC/CmK,EAAOnK,GAAOu/C,EAAOv/C,IAK3B,OAAOmK,IAEOI,MAAMhH,KAAMV,WAO9B,IAAIkvG,EAAO,QAGP6C,EAAY,YAEZ3C,EAAqB9rG,EAAoB,QAAElF,GAAG8wG,GA4B9CG,EAAU,CACZ2C,UAAU,EACVryE,UAAU,EACVsyE,OAAO,EACP3uB,MAAM,GAEJgsB,EAAc,CAChB0C,SAAU,mBACVryE,SAAU,UACVsyE,MAAO,UACP3uB,KAAM,WAMJ4uB,EAAqB,WACvB,SAASA,EAAM5tG,EAASsB,GACtBlF,KAAKgvG,QAAUhvG,KAAKivG,WAAW/pG,GAC/BlF,KAAK+uG,SAAWnrG,EAChB5D,KAAKyxG,QAAU7tG,EAAQI,cA1BL,iBA2BlBhE,KAAK0xG,UAAY,KACjB1xG,KAAK2xG,UAAW,EAChB3xG,KAAK4xG,oBAAqB,EAC1B5xG,KAAK6xG,sBAAuB,EAC5B7xG,KAAK8uG,kBAAmB,EACxB9uG,KAAK8xG,gBAAkB,EAIzB,IA7FoBr2D,EAAaI,EAAYC,EA6FzC6zD,EAAS6B,EAAM10G,UA0enB,OAveA6yG,EAAOl8F,OAAS,SAAgBs+F,GAC9B,OAAO/xG,KAAK2xG,SAAW3xG,KAAKknC,OAASlnC,KAAK4iF,KAAKmvB,IAGjDpC,EAAO/sB,KAAO,SAAcmvB,GAC1B,IAAIhvG,EAAQ/C,KAEZ,IAAIA,KAAK2xG,WAAY3xG,KAAK8uG,iBAA1B,CAIA,IAAIkD,EAAYpvG,EAAoB,QAAEotG,MA3DzB,gBA2D2C,CACtD+B,cAAeA,IAEjBnvG,EAAoB,QAAE5C,KAAK+uG,UAAUpqG,QAAQqtG,GAEzCA,EAAU/B,uBAIdjwG,KAAK2xG,UAAW,EAEZ/uG,EAAoB,QAAE5C,KAAK+uG,UAAUz7F,SA5EvB,UA6EhBtT,KAAK8uG,kBAAmB,GAG1B9uG,KAAKiyG,kBAELjyG,KAAKkyG,gBAELlyG,KAAKmyG,gBAELnyG,KAAKoyG,kBAELpyG,KAAKqyG,kBAELzvG,EAAoB,QAAE5C,KAAK+uG,UAAUlkG,GAhFf,yBAQE,0BAwE4D,SAAUtE,GAC5F,OAAOxD,EAAMmkC,KAAK3gC,MAEpB3D,EAAoB,QAAE5C,KAAKyxG,SAAS5mG,GAhFV,8BAgFsC,WAC9DjI,EAAoB,QAAEG,EAAMgsG,UAAU9rG,IAlFhB,4BAkF2C,SAAUsD,GACrE3D,EAAoB,QAAE2D,EAAMK,QAAQC,GAAG9D,EAAMgsG,YAC/ChsG,EAAM8uG,sBAAuB,SAKnC7xG,KAAKsyG,eAAc,WACjB,OAAOvvG,EAAMwvG,aAAaR,SAI9BpC,EAAOzoE,KAAO,SAAc3gC,GAC1B,IAAIiqG,EAASxwG,KAMb,GAJIuG,GACFA,EAAM+pB,iBAGHtwB,KAAK2xG,WAAY3xG,KAAK8uG,iBAA3B,CAIA,IAAI0D,EAAY5vG,EAAoB,QAAEotG,MAlHzB,iBAqHb,GAFAptG,EAAoB,QAAE5C,KAAK+uG,UAAUpqG,QAAQ6tG,GAExCxyG,KAAK2xG,WAAYa,EAAUvC,qBAAhC,CAIAjwG,KAAK2xG,UAAW,EAChB,IAAIr9F,EAAa1R,EAAoB,QAAE5C,KAAK+uG,UAAUz7F,SA7HpC,QA4IlB,GAbIgB,IACFtU,KAAK8uG,kBAAmB,GAG1B9uG,KAAKoyG,kBAELpyG,KAAKqyG,kBAELzvG,EAAoB,QAAE1D,UAAU8L,IA/HhB,oBAgIhBpI,EAAoB,QAAE5C,KAAK+uG,UAAU17F,YAvInB,QAwIlBzQ,EAAoB,QAAE5C,KAAK+uG,UAAU/jG,IA/Hf,0BAgItBpI,EAAoB,QAAE5C,KAAKyxG,SAASzmG,IA7HV,8BA+HtBsJ,EAAY,CACd,IAAInQ,EAAqBmqG,EAAuB,QAAEpqG,iCAAiClE,KAAK+uG,UACxFnsG,EAAoB,QAAE5C,KAAK+uG,UAAU9rG,IAAIqrG,EAAuB,QAAEnrG,gBAAgB,SAAUoD,GAC1F,OAAOiqG,EAAOiC,WAAWlsG,MACxBD,qBAAqBnC,QAExBnE,KAAKyyG,gBAIT9C,EAAOgB,QAAU,WACf,CAAC1xG,OAAQe,KAAK+uG,SAAU/uG,KAAKyxG,SAASj0G,SAAQ,SAAUk1G,GACtD,OAAO9vG,EAAoB,QAAE8vG,GAAa1nG,IAAIqmG,MAQhDzuG,EAAoB,QAAE1D,UAAU8L,IAxJhB,oBAyJhBpI,EAAoB,QAAEguG,WAAW5wG,KAAK+uG,SA3K3B,YA4KX/uG,KAAKgvG,QAAU,KACfhvG,KAAK+uG,SAAW,KAChB/uG,KAAKyxG,QAAU,KACfzxG,KAAK0xG,UAAY,KACjB1xG,KAAK2xG,SAAW,KAChB3xG,KAAK4xG,mBAAqB,KAC1B5xG,KAAK6xG,qBAAuB,KAC5B7xG,KAAK8uG,iBAAmB,KACxB9uG,KAAK8xG,gBAAkB,MAGzBnC,EAAOgD,aAAe,WACpB3yG,KAAKmyG,iBAIPxC,EAAOV,WAAa,SAAoB/pG,GAGtC,OAFAA,EAAS62C,EAAS,GAAI4yD,EAASzpG,GAC/BopG,EAAuB,QAAEtpG,gBAAgBwpG,EAAMtpG,EAAQ0pG,GAChD1pG,GAGTyqG,EAAOiD,2BAA6B,WAClC,IAAI/B,EAAS7wG,KAET6yG,EAAqBjwG,EAAoB,QAAEotG,MAvLxB,0BA0LvB,GAFAptG,EAAoB,QAAE5C,KAAK+uG,UAAUpqG,QAAQkuG,IAEzCA,EAAmB5C,qBAAvB,CAIA,IAAI6C,EAAqB9yG,KAAK+uG,SAASgE,aAAe7zG,SAAS0G,gBAAgB0Z,aAE1EwzF,IACH9yG,KAAK+uG,SAASv+F,MAAMsoC,UAAY,UAGlC94C,KAAK+uG,SAAS57F,UAAUC,IAtMJ,gBAwMpB,IAAI4/F,EAA0B1E,EAAuB,QAAEpqG,iCAAiClE,KAAKyxG,SAC7F7uG,EAAoB,QAAE5C,KAAK+uG,UAAU/jG,IAAIsjG,EAAuB,QAAEnrG,gBAClEP,EAAoB,QAAE5C,KAAK+uG,UAAU9rG,IAAIqrG,EAAuB,QAAEnrG,gBAAgB,WAChF0tG,EAAO9B,SAAS57F,UAAU3Q,OA3MR,gBA6MbswG,GACHlwG,EAAoB,QAAEiuG,EAAO9B,UAAU9rG,IAAIqrG,EAAuB,QAAEnrG,gBAAgB,WAClF0tG,EAAO9B,SAASv+F,MAAMsoC,UAAY,MACjCxyC,qBAAqBuqG,EAAO9B,SAAUiE,MAE1C1sG,qBAAqB0sG,GAExBhzG,KAAK+uG,SAASwC,UAGhB5B,EAAO4C,aAAe,SAAsBR,GAC1C,IAAIkB,EAASjzG,KAETsU,EAAa1R,EAAoB,QAAE5C,KAAK+uG,UAAUz7F,SA5NpC,QA6Nd4/F,EAAYlzG,KAAKyxG,QAAUzxG,KAAKyxG,QAAQztG,cA7MtB,eA6M2D,KAE5EhE,KAAK+uG,SAAS9oG,YAAcjG,KAAK+uG,SAAS9oG,WAAWlB,WAAai1C,KAAKm5D,cAE1Ej0G,SAAS2Q,KAAK0I,YAAYvY,KAAK+uG,UAGjC/uG,KAAK+uG,SAASv+F,MAAM82B,QAAU,QAE9BtnC,KAAK+uG,SAASh7F,gBAAgB,eAE9B/T,KAAK+uG,SAASt+F,aAAa,cAAc,GAEzCzQ,KAAK+uG,SAASt+F,aAAa,OAAQ,UAE/B7N,EAAoB,QAAE5C,KAAKyxG,SAASn+F,SAhPhB,4BAgPmD4/F,EACzEA,EAAUl8F,UAAY,EAEtBhX,KAAK+uG,SAAS/3F,UAAY,EAGxB1C,GACFg6F,EAAuB,QAAE7pG,OAAOzE,KAAK+uG,UAGvCnsG,EAAoB,QAAE5C,KAAK+uG,UAAUh8F,SArPnB,QAuPd/S,KAAKgvG,QAAQuC,OACfvxG,KAAKozG,gBAGP,IAAIC,EAAazwG,EAAoB,QAAEotG,MArPzB,iBAqP4C,CACxD+B,cAAeA,IAGbuB,EAAqB,WACnBL,EAAOjE,QAAQuC,OACjB0B,EAAOlE,SAASwC,QAGlB0B,EAAOnE,kBAAmB,EAC1BlsG,EAAoB,QAAEqwG,EAAOlE,UAAUpqG,QAAQ0uG,IAGjD,GAAI/+F,EAAY,CACd,IAAInQ,EAAqBmqG,EAAuB,QAAEpqG,iCAAiClE,KAAKyxG,SACxF7uG,EAAoB,QAAE5C,KAAKyxG,SAASxuG,IAAIqrG,EAAuB,QAAEnrG,eAAgBmwG,GAAoBhtG,qBAAqBnC,QAE1HmvG,KAIJ3D,EAAOyD,cAAgB,WACrB,IAAIG,EAASvzG,KAEb4C,EAAoB,QAAE1D,UAAU8L,IA5QhB,oBA6QfH,GA7Qe,oBA6QG,SAAUtE,GACvBrH,WAAaqH,EAAMK,QAAU2sG,EAAOxE,WAAaxoG,EAAMK,QAA8E,IAApEhE,EAAoB,QAAE2wG,EAAOxE,UAAU1hD,IAAI9mD,EAAMK,QAAQjJ,QAC5H41G,EAAOxE,SAASwC,YAKtB5B,EAAOyC,gBAAkB,WACvB,IAAIoB,EAASxzG,KAETA,KAAK2xG,SACP/uG,EAAoB,QAAE5C,KAAK+uG,UAAUlkG,GArRf,4BAqRyC,SAAUtE,GACnEitG,EAAOxE,QAAQ/vE,UAvSN,KAuSkB14B,EAAMsoB,OACnCtoB,EAAM+pB,iBAENkjF,EAAOtsE,QACGssE,EAAOxE,QAAQ/vE,UA3Sd,KA2S0B14B,EAAMsoB,OAC3C2kF,EAAOZ,gCAGD5yG,KAAK2xG,UACf/uG,EAAoB,QAAE5C,KAAK+uG,UAAU/jG,IA/Rf,6BAmS1B2kG,EAAO0C,gBAAkB,WACvB,IAAIoB,EAASzzG,KAETA,KAAK2xG,SACP/uG,EAAoB,QAAE3D,QAAQ4L,GAzSjB,mBAySkC,SAAUtE,GACvD,OAAOktG,EAAOd,aAAapsG,MAG7B3D,EAAoB,QAAE3D,QAAQ+L,IA7SjB,oBAiTjB2kG,EAAO8C,WAAa,WAClB,IAAIiB,EAAS1zG,KAEbA,KAAK+uG,SAASv+F,MAAM82B,QAAU,OAE9BtnC,KAAK+uG,SAASt+F,aAAa,eAAe,GAE1CzQ,KAAK+uG,SAASh7F,gBAAgB,cAE9B/T,KAAK+uG,SAASh7F,gBAAgB,QAE9B/T,KAAK8uG,kBAAmB,EAExB9uG,KAAKsyG,eAAc,WACjB1vG,EAAoB,QAAE1D,SAAS2Q,MAAMwD,YAzUrB,cA2UhBqgG,EAAOC,oBAEPD,EAAOE,kBAEPhxG,EAAoB,QAAE8wG,EAAO3E,UAAUpqG,QAzU1B,uBA6UjBgrG,EAAOkE,gBAAkB,WACnB7zG,KAAK0xG,YACP9uG,EAAoB,QAAE5C,KAAK0xG,WAAWlvG,SACtCxC,KAAK0xG,UAAY,OAIrB/B,EAAO2C,cAAgB,SAAuBn8F,GAC5C,IAAI29F,EAAS9zG,KAET+zG,EAAUnxG,EAAoB,QAAE5C,KAAK+uG,UAAUz7F,SA5VjC,eA4V+E,GAEjG,GAAItT,KAAK2xG,UAAY3xG,KAAKgvG,QAAQsC,SAAU,CAgC1C,GA/BAtxG,KAAK0xG,UAAYxyG,SAASmR,cAAc,OACxCrQ,KAAK0xG,UAAU1+F,UAlWK,iBAoWhB+gG,GACF/zG,KAAK0xG,UAAUv+F,UAAUC,IAAI2gG,GAG/BnxG,EAAoB,QAAE5C,KAAK0xG,WAAWsC,SAAS90G,SAAS2Q,MACxDjN,EAAoB,QAAE5C,KAAK+uG,UAAUlkG,GA7VjB,0BA6VyC,SAAUtE,GACjEutG,EAAOjC,qBACTiC,EAAOjC,sBAAuB,EAI5BtrG,EAAMK,SAAWL,EAAMq1E,gBAIK,WAA5Bk4B,EAAO9E,QAAQsC,SACjBwC,EAAOlB,6BAEPkB,EAAO5sE,WAIP6sE,GACFzF,EAAuB,QAAE7pG,OAAOzE,KAAK0xG,WAGvC9uG,EAAoB,QAAE5C,KAAK0xG,WAAW3+F,SA3XtB,SA6XXoD,EACH,OAGF,IAAK49F,EAEH,YADA59F,IAIF,IAAI89F,EAA6B3F,EAAuB,QAAEpqG,iCAAiClE,KAAK0xG,WAChG9uG,EAAoB,QAAE5C,KAAK0xG,WAAWzuG,IAAIqrG,EAAuB,QAAEnrG,eAAgBgT,GAAU7P,qBAAqB2tG,QAC7G,IAAKj0G,KAAK2xG,UAAY3xG,KAAK0xG,UAAW,CAC3C9uG,EAAoB,QAAE5C,KAAK0xG,WAAWr+F,YAzYtB,QA2YhB,IAAI6gG,EAAiB,WACnBJ,EAAOD,kBAEH19F,GACFA,KAIJ,GAAIvT,EAAoB,QAAE5C,KAAK+uG,UAAUz7F,SApZzB,QAoZoD,CAClE,IAAI6gG,EAA8B7F,EAAuB,QAAEpqG,iCAAiClE,KAAK0xG,WAEjG9uG,EAAoB,QAAE5C,KAAK0xG,WAAWzuG,IAAIqrG,EAAuB,QAAEnrG,eAAgB+wG,GAAgB5tG,qBAAqB6tG,QAExHD,SAEO/9F,GACTA,KAQJw5F,EAAOwC,cAAgB,WACrB,IAAIW,EAAqB9yG,KAAK+uG,SAASgE,aAAe7zG,SAAS0G,gBAAgB0Z,cAE1Etf,KAAK4xG,oBAAsBkB,IAC9B9yG,KAAK+uG,SAASv+F,MAAM4S,YAAcpjB,KAAK8xG,gBAAkB,MAGvD9xG,KAAK4xG,qBAAuBkB,IAC9B9yG,KAAK+uG,SAASv+F,MAAM6S,aAAerjB,KAAK8xG,gBAAkB,OAI9DnC,EAAOgE,kBAAoB,WACzB3zG,KAAK+uG,SAASv+F,MAAM4S,YAAc,GAClCpjB,KAAK+uG,SAASv+F,MAAM6S,aAAe,IAGrCssF,EAAOsC,gBAAkB,WACvB,IAAIn3D,EAAO57C,SAAS2Q,KAAKgH,wBACzB7W,KAAK4xG,mBAAqBpuG,KAAKuvC,MAAM+H,EAAKzjC,KAAOyjC,EAAKG,OAASh8C,OAAO44B,WACtE73B,KAAK8xG,gBAAkB9xG,KAAKo0G,sBAG9BzE,EAAOuC,cAAgB,WACrB,IAAImC,EAAUr0G,KAEd,GAAIA,KAAK4xG,mBAAoB,CAG3B,IAAI0C,EAAe,GAAGpyG,MAAM7G,KAAK6D,SAASgR,iBA9anB,sDA+anBqkG,EAAgB,GAAGryG,MAAM7G,KAAK6D,SAASgR,iBA9anB,gBAgbxBtN,EAAoB,QAAE0xG,GAAc/8F,MAAK,SAAUO,EAAOlU,GACxD,IAAI4wG,EAAgB5wG,EAAQ4M,MAAM6S,aAC9BoxF,EAAoB7xG,EAAoB,QAAEgB,GAASQ,IAAI,iBAC3DxB,EAAoB,QAAEgB,GAAS4E,KAAK,gBAAiBgsG,GAAepwG,IAAI,gBAAiBG,WAAWkwG,GAAqBJ,EAAQvC,gBAAkB,SAGrJlvG,EAAoB,QAAE2xG,GAAeh9F,MAAK,SAAUO,EAAOlU,GACzD,IAAI8wG,EAAe9wG,EAAQ4M,MAAMmR,YAC7BgzF,EAAmB/xG,EAAoB,QAAEgB,GAASQ,IAAI,gBAC1DxB,EAAoB,QAAEgB,GAAS4E,KAAK,eAAgBksG,GAActwG,IAAI,eAAgBG,WAAWowG,GAAoBN,EAAQvC,gBAAkB,SAGjJ,IAAI0C,EAAgBt1G,SAAS2Q,KAAKW,MAAM6S,aACpCoxF,EAAoB7xG,EAAoB,QAAE1D,SAAS2Q,MAAMzL,IAAI,iBACjExB,EAAoB,QAAE1D,SAAS2Q,MAAMrH,KAAK,gBAAiBgsG,GAAepwG,IAAI,gBAAiBG,WAAWkwG,GAAqBz0G,KAAK8xG,gBAAkB,MAGxJlvG,EAAoB,QAAE1D,SAAS2Q,MAAMkD,SAtdnB,eAydpB48F,EAAOiE,gBAAkB,WAEvB,IAAIU,EAAe,GAAGpyG,MAAM7G,KAAK6D,SAASgR,iBAvcjB,sDAwczBtN,EAAoB,QAAE0xG,GAAc/8F,MAAK,SAAUO,EAAOlU,GACxD,IAAIy5C,EAAUz6C,EAAoB,QAAEgB,GAAS4E,KAAK,iBAClD5F,EAAoB,QAAEgB,GAASgtG,WAAW,iBAC1ChtG,EAAQ4M,MAAM6S,aAAeg6B,GAAoB,MAGnD,IAAIu3D,EAAW,GAAG1yG,MAAM7G,KAAK6D,SAASgR,iBA7cZ,gBA8c1BtN,EAAoB,QAAEgyG,GAAUr9F,MAAK,SAAUO,EAAOlU,GACpD,IAAIixG,EAASjyG,EAAoB,QAAEgB,GAAS4E,KAAK,qBAE3B,IAAXqsG,GACTjyG,EAAoB,QAAEgB,GAASQ,IAAI,eAAgBywG,GAAQjE,WAAW,mBAI1E,IAAIvzD,EAAUz6C,EAAoB,QAAE1D,SAAS2Q,MAAMrH,KAAK,iBACxD5F,EAAoB,QAAE1D,SAAS2Q,MAAM+gG,WAAW,iBAChD1xG,SAAS2Q,KAAKW,MAAM6S,aAAeg6B,GAAoB,IAGzDsyD,EAAOyE,mBAAqB,WAE1B,IAAIU,EAAY51G,SAASmR,cAAc,OACvCykG,EAAU9hG,UArfsB,0BAsfhC9T,SAAS2Q,KAAK0I,YAAYu8F,GAC1B,IAAIC,EAAiBD,EAAUj+F,wBAAwBqI,MAAQ41F,EAAUz1F,YAEzE,OADAngB,SAAS2Q,KAAK2J,YAAYs7F,GACnBC,GAITvD,EAAMtB,iBAAmB,SAA0BhrG,EAAQ6sG,GACzD,OAAO/xG,KAAKuX,MAAK,WACf,IAAI/O,EAAO5F,EAAoB,QAAE5C,MAAMwI,KAtgB9B,YAwgBLwmG,EAAUjzD,EAAS,GAAI4yD,EAAS/rG,EAAoB,QAAE5C,MAAMwI,OAA0B,iBAAXtD,GAAuBA,EAASA,EAAS,IAOxH,GALKsD,IACHA,EAAO,IAAIgpG,EAAMxxG,KAAMgvG,GACvBpsG,EAAoB,QAAE5C,MAAMwI,KA5gBrB,WA4gBoCA,IAGvB,iBAAXtD,EAAqB,CAC9B,QAA4B,IAAjBsD,EAAKtD,GACd,MAAM,IAAIiB,UAAU,oBAAuBjB,EAAS,KAGtDsD,EAAKtD,GAAQ6sG,QACJ/C,EAAQpsB,MACjBp6E,EAAKo6E,KAAKmvB,OAtjBIt2D,EA2jBP+1D,EA3jBgC11D,EA2jBnB,CAAC,CACzBr/C,IAAK,UACLV,IAAK,WACH,MA/hBQ,UAiiBT,CACDU,IAAK,UACLV,IAAK,WACH,OAAO4yG,MAnkBsB9yD,EA2jBb,OA1jBJ0yD,EAAkB9yD,EAAY3+C,UAAW++C,GACrDC,GAAayyD,EAAkB9yD,EAAaK,GAChDlgD,OAAOC,eAAe4/C,EAAa,YAAa,CAC9CG,UAAU,IAmkBL41D,EAxfgB,GA0iBzB,OA3CA5uG,EAAoB,QAAE1D,UAAU2L,GAthBL,0BAGA,yBAmhBoD,SAAUtE,GACvF,IAEIK,EAFAouG,EAAUh1G,KAGV6D,EAAWyqG,EAAuB,QAAE3qG,uBAAuB3D,MAE3D6D,IACF+C,EAAS1H,SAAS8E,cAAcH,IAGlC,IAAIqB,EAAStC,EAAoB,QAAEgE,GAAQ4B,KAxjB9B,YAwjB+C,SAAWuzC,EAAS,GAAIn5C,EAAoB,QAAEgE,GAAQ4B,OAAQ5F,EAAoB,QAAE5C,MAAMwI,QAEjI,MAAjBxI,KAAK6zE,SAAoC,SAAjB7zE,KAAK6zE,SAC/BttE,EAAM+pB,iBAGR,IAAI8gF,EAAUxuG,EAAoB,QAAEgE,GAAQ3D,IA9iB7B,iBA8iB6C,SAAU+uG,GAChEA,EAAU/B,sBAKdmB,EAAQnuG,IArjBO,mBAqjBW,WACpBL,EAAoB,QAAEoyG,GAASnuG,GAAG,aACpCmuG,EAAQzD,cAKdC,EAAMtB,iBAAiB70G,KAAKuH,EAAoB,QAAEgE,GAAS1B,EAAQlF,SAMrE4C,EAAoB,QAAElF,GAAG8wG,GAAQgD,EAAMtB,iBACvCttG,EAAoB,QAAElF,GAAG8wG,GAAM/yD,YAAc+1D,EAE7C5uG,EAAoB,QAAElF,GAAG8wG,GAAMjuG,WAAa,WAE1C,OADAqC,EAAoB,QAAElF,GAAG8wG,GAAQE,EAC1B8C,EAAMtB,kBAGRsB,EA7oByErxG,CAAQ,EAAQ,GAAW,EAAQ,K;;;;;;ACApDlF,EAAOD,QAG/D,SAAW0H,EAAG0kD,EAAQlkD,GAAQ,aAErC,SAASP,EAAuBzC,GAAK,OAAOA,GAAkB,iBAANA,GAAkB,YAAaA,EAAIA,EAAI,CAAE,QAAWA,GAE5G,IAAI0C,EAA0BD,EAAsBD,GAChDuyG,EAA+BtyG,EAAsBykD,GACrDknD,EAA6B3rG,EAAsBO,GAEvD,SAASqrG,EAAkB3nG,EAAQ0Q,GACjC,IAAK,IAAIpc,EAAI,EAAGA,EAAIoc,EAAM3Z,OAAQzC,IAAK,CACrC,IAAIygD,EAAarkC,EAAMpc,GACvBygD,EAAW7/C,WAAa6/C,EAAW7/C,aAAc,EACjD6/C,EAAWh/B,cAAe,EACtB,UAAWg/B,IAAYA,EAAWC,UAAW,GACjDhgD,OAAOC,eAAe+K,EAAQ+0C,EAAWl/C,IAAKk/C,IAalD,SAASI,IAcP,OAbAA,EAAWngD,OAAO4Y,OAAS5Y,OAAO4Y,OAAO9X,OAAS,SAAUkK,GAC1D,IAAK,IAAI1L,EAAI,EAAGA,EAAIoE,UAAU3B,OAAQzC,IAAK,CACzC,IAAI8gD,EAAS18C,UAAUpE,GAEvB,IAAK,IAAIuB,KAAOu/C,EACVpgD,OAAOkB,UAAUC,eAAe1B,KAAK2gD,EAAQv/C,KAC/CmK,EAAOnK,GAAOu/C,EAAOv/C,IAK3B,OAAOmK,IAEOI,MAAMhH,KAAMV,WAO9B,IAAIkvG,EAAO,WAEPC,EAAW,cACX4C,EAAY,IAAM5C,EAElBC,EAAqB9rG,EAAoB,QAAElF,GAAG8wG,GAa9C0G,EAAiB,IAAI1vG,OAAO2vG,YA2B5BxG,EAAU,CACZh4F,OAAQ,EACRspC,MAAM,EACNm1D,SAAU,eACVp8D,UAAW,SACX1R,QAAS,UACT+tE,aAAc,MAEZzG,EAAc,CAChBj4F,OAAQ,2BACRspC,KAAM,UACNm1D,SAAU,mBACVp8D,UAAW,mBACX1R,QAAS,SACT+tE,aAAc,iBAMZC,EAAwB,WAC1B,SAASA,EAAS1xG,EAASsB,GACzBlF,KAAK+uG,SAAWnrG,EAChB5D,KAAKu1G,QAAU,KACfv1G,KAAKgvG,QAAUhvG,KAAKivG,WAAW/pG,GAC/BlF,KAAKw1G,MAAQx1G,KAAKy1G,kBAClBz1G,KAAK01G,UAAY11G,KAAK21G,gBAEtB31G,KAAK41G,qBAIP,IA3GoBn6D,EAAaI,EAAYC,EA2GzC6zD,EAAS2F,EAASx4G,UA2YtB,OAxYA6yG,EAAOl8F,OAAS,WACd,IAAIzT,KAAK+uG,SAAS8G,WAAYjzG,EAAoB,QAAE5C,KAAK+uG,UAAUz7F,SA9D7C,YA8DtB,CAIA,IAAIwiG,EAAWlzG,EAAoB,QAAE5C,KAAKw1G,OAAOliG,SAjE/B,QAmElBgiG,EAASS,cAELD,GAIJ91G,KAAK4iF,MAAK,KAGZ+sB,EAAO/sB,KAAO,SAAcozB,GAK1B,QAJkB,IAAdA,IACFA,GAAY,KAGVh2G,KAAK+uG,SAAS8G,UAAYjzG,EAAoB,QAAE5C,KAAK+uG,UAAUz7F,SAlF7C,aAkF8E1Q,EAAoB,QAAE5C,KAAKw1G,OAAOliG,SAjFpH,SAiFlB,CAIA,IAAIy+F,EAAgB,CAClBA,cAAe/xG,KAAK+uG,UAElBiD,EAAYpvG,EAAoB,QAAEotG,MAhFzB,mBAgF2C+B,GAEpD74F,EAASo8F,EAASW,sBAAsBj2G,KAAK+uG,UAIjD,GAFAnsG,EAAoB,QAAEsW,GAAQvU,QAAQqtG,IAElCA,EAAU/B,qBAAd,CAKA,IAAKjwG,KAAK01G,WAAaM,EAAW,CAEhC,QAA0C,IAA/Bf,EAAyB,QAClC,MAAM,IAAI9uG,UAAU,gEAGtB,IAAI+vG,EAAmBl2G,KAAK+uG,SAEG,WAA3B/uG,KAAKgvG,QAAQh2D,UACfk9D,EAAmBh9F,EACVo1F,EAAuB,QAAExpG,UAAU9E,KAAKgvG,QAAQh2D,aACzDk9D,EAAmBl2G,KAAKgvG,QAAQh2D,eAEa,IAAlCh5C,KAAKgvG,QAAQh2D,UAAU3yC,SAChC6vG,EAAmBl2G,KAAKgvG,QAAQh2D,UAAU,KAOhB,iBAA1Bh5C,KAAKgvG,QAAQoG,UACfxyG,EAAoB,QAAEsW,GAAQnG,SApHL,mBAuH3B/S,KAAKu1G,QAAU,IAAIN,EAAyB,QAAEiB,EAAkBl2G,KAAKw1G,MAAOx1G,KAAKm2G,oBAO/E,iBAAkBj3G,SAAS0G,iBAAyF,IAAtEhD,EAAoB,QAAEsW,GAAQC,QAlH1D,eAkHuFxb,QAC3GiF,EAAoB,QAAE1D,SAAS2Q,MAAMS,WAAWzF,GAAG,YAAa,KAAMjI,EAAoB,QAAE0H,MAG9FtK,KAAK+uG,SAASwC,QAEdvxG,KAAK+uG,SAASt+F,aAAa,iBAAiB,GAE5C7N,EAAoB,QAAE5C,KAAKw1G,OAAOhiG,YA3IhB,QA4IlB5Q,EAAoB,QAAEsW,GAAQ1F,YA5IZ,QA4IyC7O,QAAQ/B,EAAoB,QAAEotG,MAnI3E,oBAmI8F+B,OAG9GpC,EAAOzoE,KAAO,WACZ,IAAIlnC,KAAK+uG,SAAS8G,WAAYjzG,EAAoB,QAAE5C,KAAK+uG,UAAUz7F,SAjJ7C,aAiJ+E1Q,EAAoB,QAAE5C,KAAKw1G,OAAOliG,SAhJrH,QAgJlB,CAIA,IAAIy+F,EAAgB,CAClBA,cAAe/xG,KAAK+uG,UAElByD,EAAY5vG,EAAoB,QAAEotG,MAjJzB,mBAiJ2C+B,GAEpD74F,EAASo8F,EAASW,sBAAsBj2G,KAAK+uG,UAEjDnsG,EAAoB,QAAEsW,GAAQvU,QAAQ6tG,GAElCA,EAAUvC,uBAIVjwG,KAAKu1G,SACPv1G,KAAKu1G,QAAQ96E,UAGf73B,EAAoB,QAAE5C,KAAKw1G,OAAOhiG,YArKhB,QAsKlB5Q,EAAoB,QAAEsW,GAAQ1F,YAtKZ,QAsKyC7O,QAAQ/B,EAAoB,QAAEotG,MA/J1E,qBA+J8F+B,OAG/GpC,EAAOgB,QAAU,WACf/tG,EAAoB,QAAEguG,WAAW5wG,KAAK+uG,SAAUN,GAChD7rG,EAAoB,QAAE5C,KAAK+uG,UAAU/jG,IAAIqmG,GACzCrxG,KAAK+uG,SAAW,KAChB/uG,KAAKw1G,MAAQ,KAEQ,OAAjBx1G,KAAKu1G,UACPv1G,KAAKu1G,QAAQ96E,UAEbz6B,KAAKu1G,QAAU,OAInB5F,EAAO3wF,OAAS,WACdhf,KAAK01G,UAAY11G,KAAK21G,gBAED,OAAjB31G,KAAKu1G,SACPv1G,KAAKu1G,QAAQ9zD,kBAKjBkuD,EAAOiG,mBAAqB,WAC1B,IAAI7yG,EAAQ/C,KAEZ4C,EAAoB,QAAE5C,KAAK+uG,UAAUlkG,GAxLvB,qBAwLuC,SAAUtE,GAC7DA,EAAM+pB,iBACN/pB,EAAMmrB,kBAEN3uB,EAAM0Q,aAIVk8F,EAAOV,WAAa,SAAoB/pG,GAGtC,OAFAA,EAAS62C,EAAS,GAAI/7C,KAAKlC,YAAY6wG,QAAS/rG,EAAoB,QAAE5C,KAAK+uG,UAAUvmG,OAAQtD,GAC7FopG,EAAuB,QAAEtpG,gBAAgBwpG,EAAMtpG,EAAQlF,KAAKlC,YAAY8wG,aACjE1pG,GAGTyqG,EAAO8F,gBAAkB,WACvB,IAAKz1G,KAAKw1G,MAAO,CACf,IAAIt8F,EAASo8F,EAASW,sBAAsBj2G,KAAK+uG,UAE7C71F,IACFlZ,KAAKw1G,MAAQt8F,EAAOlV,cArMR,mBAyMhB,OAAOhE,KAAKw1G,OAGd7F,EAAOyG,cAAgB,WACrB,IAAIC,EAAkBzzG,EAAoB,QAAE5C,KAAK+uG,SAAS9oG,YACtD63C,EAzMe,eAqNnB,OAVIu4D,EAAgB/iG,SA/NA,UAgOlBwqC,EAAYl7C,EAAoB,QAAE5C,KAAKw1G,OAAOliG,SA7NzB,uBAgBJ,UADH,YA+ML+iG,EAAgB/iG,SAhOJ,aAiOrBwqC,EA5MgB,cA6MPu4D,EAAgB/iG,SAjOL,YAkOpBwqC,EA7Me,aA8MNl7C,EAAoB,QAAE5C,KAAKw1G,OAAOliG,SAlOtB,yBAmOrBwqC,EAjNoB,cAoNfA,GAGT6xD,EAAOgG,cAAgB,WACrB,OAAO/yG,EAAoB,QAAE5C,KAAK+uG,UAAU51F,QAAQ,WAAWxb,OAAS,GAG1EgyG,EAAO2G,WAAa,WAClB,IAAI9F,EAASxwG,KAET2W,EAAS,GAWb,MATmC,mBAAxB3W,KAAKgvG,QAAQr4F,OACtBA,EAAOjZ,GAAK,SAAU8K,GAEpB,OADAA,EAAK0zC,QAAUH,EAAS,GAAIvzC,EAAK0zC,QAASs0D,EAAOxB,QAAQr4F,OAAOnO,EAAK0zC,QAASs0D,EAAOzB,WAC9EvmG,GAGTmO,EAAOA,OAAS3W,KAAKgvG,QAAQr4F,OAGxBA,GAGTg5F,EAAOwG,iBAAmB,WACxB,IAAId,EAAe,CACjBv3D,UAAW99C,KAAKo2G,gBAChB72D,UAAW,CACT5oC,OAAQ3W,KAAKs2G,aACbr2D,KAAM,CACJ9/B,QAASngB,KAAKgvG,QAAQ/uD,MAExB6D,gBAAiB,CACfxG,kBAAmBt9C,KAAKgvG,QAAQoG,YAWtC,MAN6B,WAAzBp1G,KAAKgvG,QAAQ1nE,UACf+tE,EAAa91D,UAAU0H,WAAa,CAClC9mC,SAAS,IAIN47B,EAAS,GAAIs5D,EAAcr1G,KAAKgvG,QAAQqG,eAIjDC,EAASpF,iBAAmB,SAA0BhrG,GACpD,OAAOlF,KAAKuX,MAAK,WACf,IAAI/O,EAAO5F,EAAoB,QAAE5C,MAAMwI,KAAKimG,GAS5C,GALKjmG,IACHA,EAAO,IAAI8sG,EAASt1G,KAHU,iBAAXkF,EAAsBA,EAAS,MAIlDtC,EAAoB,QAAE5C,MAAMwI,KAAKimG,EAAUjmG,IAGvB,iBAAXtD,EAAqB,CAC9B,QAA4B,IAAjBsD,EAAKtD,GACd,MAAM,IAAIiB,UAAU,oBAAuBjB,EAAS,KAGtDsD,EAAKtD,UAKXowG,EAASS,YAAc,SAAqBxvG,GAC1C,IAAIA,GApTuB,IAoTbA,EAAMsoB,QAAqD,UAAftoB,EAAMqoB,MA1TlD,IA0TsEroB,EAAMsoB,OAM1F,IAFA,IAAI0nF,EAAU,GAAGr0G,MAAM7G,KAAK6D,SAASgR,iBAtSd,6BAwSdhV,EAAI,EAAG8O,EAAMusG,EAAQ54G,OAAQzC,EAAI8O,EAAK9O,IAAK,CAClD,IAAIge,EAASo8F,EAASW,sBAAsBM,EAAQr7G,IAEhDmX,EAAUzP,EAAoB,QAAE2zG,EAAQr7G,IAAIsN,KAAKimG,GACjDsD,EAAgB,CAClBA,cAAewE,EAAQr7G,IAOzB,GAJIqL,GAAwB,UAAfA,EAAMqoB,OACjBmjF,EAAcyE,WAAajwG,GAGxB8L,EAAL,CAIA,IAAIokG,EAAepkG,EAAQmjG,MAE3B,GAAK5yG,EAAoB,QAAEsW,GAAQ5F,SAxUnB,WA4UZ/M,IAAyB,UAAfA,EAAMqoB,MAAoB,kBAAkBvtB,KAAKkF,EAAMK,OAAOitE,UAA2B,UAAfttE,EAAMqoB,MAtVlF,IAsVsGroB,EAAMsoB,QAA0BjsB,EAAoB,QAAE2Q,SAAS2F,EAAQ3S,EAAMK,SAA/L,CAIA,IAAI4rG,EAAY5vG,EAAoB,QAAEotG,MA1U3B,mBA0U6C+B,GACxDnvG,EAAoB,QAAEsW,GAAQvU,QAAQ6tG,GAElCA,EAAUvC,uBAMV,iBAAkB/wG,SAAS0G,iBAC7BhD,EAAoB,QAAE1D,SAAS2Q,MAAMS,WAAWtF,IAAI,YAAa,KAAMpI,EAAoB,QAAE0H,MAG/FisG,EAAQr7G,GAAGuV,aAAa,gBAAiB,SAErC4B,EAAQkjG,SACVljG,EAAQkjG,QAAQ96E,UAGlB73B,EAAoB,QAAE6zG,GAAcpjG,YAnWpB,QAoWhBzQ,EAAoB,QAAEsW,GAAQ7F,YApWd,QAoW2C1O,QAAQ/B,EAAoB,QAAEotG,MA7V5E,qBA6VgG+B,SAIjHuD,EAASW,sBAAwB,SAA+BryG,GAC9D,IAAIsV,EACArV,EAAWyqG,EAAuB,QAAE3qG,uBAAuBC,GAM/D,OAJIC,IACFqV,EAASha,SAAS8E,cAAcH,IAG3BqV,GAAUtV,EAAQqC,YAI3BqvG,EAASoB,uBAAyB,SAAgCnwG,GAQhE,KAAI,kBAAkBlF,KAAKkF,EAAMK,OAAOitE,SAxYxB,KAwYmCttE,EAAMsoB,OA1YxC,KA0YmEtoB,EAAMsoB,QAlYrE,KAkYkGtoB,EAAMsoB,OApY1G,KAoY0ItoB,EAAMsoB,OAA8BjsB,EAAoB,QAAE2D,EAAMK,QAAQuS,QA5WrN,kBA4W4Oxb,SAAWu3G,EAAe7zG,KAAKkF,EAAMsoB,UAI7R7uB,KAAK61G,WAAYjzG,EAAoB,QAAE5C,MAAMsT,SAjY3B,YAiYtB,CAIA,IAAI4F,EAASo8F,EAASW,sBAAsBj2G,MAExC81G,EAAWlzG,EAAoB,QAAEsW,GAAQ5F,SAtY3B,QAwYlB,GAAKwiG,GAtZY,KAsZAvvG,EAAMsoB,MAAvB,CAOA,GAHAtoB,EAAM+pB,iBACN/pB,EAAMmrB,mBAEDokF,GA7ZY,KA6ZAvvG,EAAMsoB,OA3ZP,KA2ZmCtoB,EAAMsoB,MAMvD,OAnae,KA8ZXtoB,EAAMsoB,OACRjsB,EAAoB,QAAEsW,EAAOlV,cAnYV,6BAmY+CW,QAAQ,cAG5E/B,EAAoB,QAAE5C,MAAM2E,QAAQ,SAItC,IAAIgyG,EAAQ,GAAGz0G,MAAM7G,KAAK6d,EAAOhJ,iBAtYR,gEAsYkDV,QAAO,SAAUq5C,GAC1F,OAAOjmD,EAAoB,QAAEimD,GAAMhiD,GAAG,eAGxC,GAAqB,IAAjB8vG,EAAMh5G,OAAV,CAIA,IAAIma,EAAQ6+F,EAAM7uG,QAAQvB,EAAMK,QAxab,KA0afL,EAAMsoB,OAA8B/W,EAAQ,GAE9CA,IA1amB,KA6ajBvR,EAAMsoB,OAAgC/W,EAAQ6+F,EAAMh5G,OAAS,GAE/Dma,IAGEA,EAAQ,IACVA,EAAQ,GAGV6+F,EAAM7+F,GAAOy5F,YAleK91D,EAqeP65D,EAregCx5D,EAqehB,CAAC,CAC5Br/C,IAAK,UACLV,IAAK,WACH,MAzcQ,UA2cT,CACDU,IAAK,UACLV,IAAK,WACH,OAAO4yG,IAER,CACDlyG,IAAK,cACLV,IAAK,WACH,OAAO6yG,MAlfsB/yD,EAqeV,OApeP0yD,EAAkB9yD,EAAY3+C,UAAW++C,GACrDC,GAAayyD,EAAkB9yD,EAAaK,GAChDlgD,OAAOC,eAAe4/C,EAAa,YAAa,CAC9CG,UAAU,IAkfL05D,EAvZmB,GAkb5B,OApBA1yG,EAAoB,QAAE1D,UAAU2L,GA/bH,+BAEF,2BA6bsDyqG,EAASoB,wBAAwB7rG,GA/brF,+BAIT,iBA2bwIyqG,EAASoB,wBAAwB7rG,GAAG+rG,wDAAmDtB,EAASS,aAAalrG,GAhc9O,6BAGA,4BA6b6R,SAAUtE,GAChUA,EAAM+pB,iBACN/pB,EAAMmrB,kBAEN4jF,EAASpF,iBAAiB70G,KAAKuH,EAAoB,QAAE5C,MAAO,aAC3D6K,GArcwB,6BAID,kBAicuB,SAAU3K,GACzDA,EAAEwxB,qBAMJ9uB,EAAoB,QAAElF,GAAG8wG,GAAQ8G,EAASpF,iBAC1CttG,EAAoB,QAAElF,GAAG8wG,GAAM/yD,YAAc65D,EAE7C1yG,EAAoB,QAAElF,GAAG8wG,GAAMjuG,WAAa,WAE1C,OADAqC,EAAoB,QAAElF,GAAG8wG,GAAQE,EAC1B4G,EAASpF,kBAGXoF,EAtiByEn1G,CAAQ,EAAQ,GAAW,EAAQ,IAAc,EAAQ,K,iBCN3I,iCAC6B,oBAATmc,MAAwBA,MAChCrd,OACR+H,EAAQ/G,SAASnD,UAAUkK,MAiB/B,SAAS6vG,EAAQxnD,EAAIynD,GACnB92G,KAAK+2G,IAAM1nD,EACXrvD,KAAKg3G,SAAWF,EAflB97G,EAAQoI,WAAa,WACnB,OAAO,IAAIyzG,EAAQ7vG,EAAM3L,KAAK+H,WAAYk+D,EAAOhiE,WAAYkK,eAE/DxO,EAAQi8G,YAAc,WACpB,OAAO,IAAIJ,EAAQ7vG,EAAM3L,KAAK47G,YAAa31C,EAAOhiE,WAAY43G,gBAEhEl8G,EAAQwO,aACRxO,EAAQk8G,cAAgB,SAASxuG,GAC3BA,GACFA,EAAQwjF,SAQZ2qB,EAAQ/5G,UAAUq6G,MAAQN,EAAQ/5G,UAAU86B,IAAM,aAClDi/E,EAAQ/5G,UAAUovF,MAAQ,WACxBlsF,KAAKg3G,SAAS37G,KAAKimE,EAAOthE,KAAK+2G,MAIjC/7G,EAAQo8G,OAAS,SAASvuD,EAAMwuD,GAC9B7tG,aAAaq/C,EAAKyuD,gBAClBzuD,EAAK0uD,aAAeF,GAGtBr8G,EAAQw8G,SAAW,SAAS3uD,GAC1Br/C,aAAaq/C,EAAKyuD,gBAClBzuD,EAAK0uD,cAAgB,GAGvBv8G,EAAQy8G,aAAez8G,EAAQohE,OAAS,SAASvT,GAC/Cr/C,aAAaq/C,EAAKyuD,gBAElB,IAAID,EAAQxuD,EAAK0uD,aACbF,GAAS,IACXxuD,EAAKyuD,eAAiBl0G,YAAW,WAC3BylD,EAAK6uD,YACP7uD,EAAK6uD,eACNL,KAKP,EAAQ,IAIRr8G,EAAQklE,aAAgC,oBAAT5jD,MAAwBA,KAAK4jD,mBAClB,IAAX7Y,GAA0BA,EAAO6Y,cACxClgE,MAAQA,KAAKkgE,aACrCllE,EAAQ28G,eAAkC,oBAATr7F,MAAwBA,KAAKq7F,qBAClB,IAAXtwD,GAA0BA,EAAOswD,gBACxC33G,MAAQA,KAAK23G,iB,kCC9DvC,6BACI,aAEA,IAAItwD,EAAO6Y,aAAX,CAIA,IAII03C,EA6HIplG,EAZAqlG,EArBAC,EACAC,EAjGJC,EAAa,EACbC,EAAgB,GAChBC,GAAwB,EACxBvoG,EAAM03C,EAAOnoD,SAoJbi5G,EAAWv8G,OAAOw8G,gBAAkBx8G,OAAOw8G,eAAe/wD,GAC9D8wD,EAAWA,GAAYA,EAAS/0G,WAAa+0G,EAAW9wD,EAGf,qBAArC,GAAGnqD,SAAS7B,KAAKgsD,EAAO/+C,SApFxBsvG,EAAoB,SAASjxG,GACzB2B,EAAQiC,UAAS,WAAc8tG,EAAa1xG,QAIpD,WAGI,GAAI0gD,EAAOixD,cAAgBjxD,EAAOkxD,cAAe,CAC7C,IAAIC,GAA4B,EAC5BC,EAAepxD,EAAOqxD,UAM1B,OALArxD,EAAOqxD,UAAY,WACfF,GAA4B,GAEhCnxD,EAAOixD,YAAY,GAAI,KACvBjxD,EAAOqxD,UAAYD,EACZD,GAwEJG,GAIAtxD,EAAOuxD,iBA9CVf,EAAU,IAAIe,gBACVC,MAAMH,UAAY,SAASnyG,GAE/B8xG,EADa9xG,EAAMiC,OAIvBovG,EAAoB,SAASjxG,GACzBkxG,EAAQiB,MAAMR,YAAY3xG,KA2CvBgJ,GAAO,uBAAwBA,EAAIU,cAAc,WAtCpDmC,EAAO7C,EAAI/J,gBACfgyG,EAAoB,SAASjxG,GAGzB,IAAIoyG,EAASppG,EAAIU,cAAc,UAC/B0oG,EAAO/rG,mBAAqB,WACxBqrG,EAAa1xG,GACboyG,EAAO/rG,mBAAqB,KAC5BwF,EAAKgH,YAAYu/F,GACjBA,EAAS,MAEbvmG,EAAK+F,YAAYwgG,KAKrBnB,EAAoB,SAASjxG,GACzBvD,WAAWi1G,EAAc,EAAG1xG,KAlD5BmxG,EAAgB,gBAAkBt0G,KAAKC,SAAW,IAClDs0G,EAAkB,SAASxxG,GACvBA,EAAMy1C,SAAWqL,GACK,iBAAf9gD,EAAMiC,MACyB,IAAtCjC,EAAMiC,KAAKV,QAAQgwG,IACnBO,GAAc9xG,EAAMiC,KAAKtG,MAAM41G,EAAcn6G,UAIjD0pD,EAAOn5C,iBACPm5C,EAAOn5C,iBAAiB,UAAW6pG,GAAiB,GAEpD1wD,EAAO2xD,YAAY,YAAajB,GAGpCH,EAAoB,SAASjxG,GACzB0gD,EAAOixD,YAAYR,EAAgBnxG,EAAQ,OAgEnDwxG,EAASj4C,aA1KT,SAAsB/pD,GAEI,mBAAbA,IACTA,EAAW,IAAIlW,SAAS,GAAKkW,IAI/B,IADA,IAAIjP,EAAO,IAAIC,MAAM7H,UAAU3B,OAAS,GAC/BzC,EAAI,EAAGA,EAAIgM,EAAKvJ,OAAQzC,IAC7BgM,EAAKhM,GAAKoE,UAAUpE,EAAI,GAG5B,IAAI+9G,EAAO,CAAE9iG,SAAUA,EAAUjP,KAAMA,GAGvC,OAFA+wG,EAAcD,GAAciB,EAC5BrB,EAAkBI,GACXA,KA6JTG,EAASR,eAAiBA,EA1J1B,SAASA,EAAehxG,UACbsxG,EAActxG,GAyBzB,SAAS0xG,EAAa1xG,GAGlB,GAAIuxG,EAGA90G,WAAWi1G,EAAc,EAAG1xG,OACzB,CACH,IAAIsyG,EAAOhB,EAActxG,GACzB,GAAIsyG,EAAM,CACNf,GAAwB,EACxB,KAjCZ,SAAae,GACT,IAAI9iG,EAAW8iG,EAAK9iG,SAChBjP,EAAO+xG,EAAK/xG,KAChB,OAAQA,EAAKvJ,QACb,KAAK,EACDwY,IACA,MACJ,KAAK,EACDA,EAASjP,EAAK,IACd,MACJ,KAAK,EACDiP,EAASjP,EAAK,GAAIA,EAAK,IACvB,MACJ,KAAK,EACDiP,EAASjP,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAChC,MACJ,QACIiP,EAASnP,WAnDrB,EAmDsCE,IAiBlB+C,CAAIgvG,GACN,QACEtB,EAAehxG,GACfuxG,GAAwB,MAvE5C,CAyLkB,oBAAT57F,UAAyC,IAAX+qC,EAAyBrnD,KAAOqnD,EAAS/qC,Q;;;;;;ACnLhF,SAAS6wC,EAAQvwD,EAAQs8G,GACvB,IAAI3pG,EAAO3T,OAAO2T,KAAK3S,GAEvB,GAAIhB,OAAOu9G,sBAAuB,CAChC,IAAIC,EAAUx9G,OAAOu9G,sBAAsBv8G,GAEvCs8G,IACFE,EAAUA,EAAQ5pG,QAAO,SAAU6pG,GACjC,OAAOz9G,OAAO6f,yBAAyB7e,EAAQy8G,GAAKv9G,eAIxDyT,EAAK3H,KAAKZ,MAAMuI,EAAM6pG,GAGxB,OAAO7pG,EAGT,SAAS+pG,EAAe1yG,GACtB,IAAK,IAAI1L,EAAI,EAAGA,EAAIoE,UAAU3B,OAAQzC,IAAK,CACzC,IAAI8gD,EAAyB,MAAhB18C,UAAUpE,GAAaoE,UAAUpE,GAAK,GAE/CA,EAAI,EACNiyD,EAAQvxD,OAAOogD,IAAS,GAAMx+C,SAAQ,SAAUf,GAC9C88G,EAAgB3yG,EAAQnK,EAAKu/C,EAAOv/C,OAE7Bb,OAAO49G,0BAChB59G,OAAOoiB,iBAAiBpX,EAAQhL,OAAO49G,0BAA0Bx9D,IAEjEmR,EAAQvxD,OAAOogD,IAASx+C,SAAQ,SAAUf,GACxCb,OAAOC,eAAe+K,EAAQnK,EAAKb,OAAO6f,yBAAyBugC,EAAQv/C,OAKjF,OAAOmK,EAGT,SAAS6yG,EAAQh8G,GAaf,OATEg8G,EADoB,mBAAXx9G,QAAoD,iBAApBA,OAAO44D,SACtC,SAAUp3D,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,mBAAXxB,QAAyBwB,EAAIK,cAAgB7B,QAAUwB,IAAQxB,OAAOa,UAAY,gBAAkBW,IAI9GA,GAGjB,SAASi8G,EAAgBv8F,EAAUs+B,GACjC,KAAMt+B,aAAoBs+B,GACxB,MAAM,IAAIt1C,UAAU,qCAIxB,SAASooG,EAAkB3nG,EAAQ0Q,GACjC,IAAK,IAAIpc,EAAI,EAAGA,EAAIoc,EAAM3Z,OAAQzC,IAAK,CACrC,IAAIygD,EAAarkC,EAAMpc,GACvBygD,EAAW7/C,WAAa6/C,EAAW7/C,aAAc,EACjD6/C,EAAWh/B,cAAe,EACtB,UAAWg/B,IAAYA,EAAWC,UAAW,GACjDhgD,OAAOC,eAAe+K,EAAQ+0C,EAAWl/C,IAAKk/C,IAIlD,SAASg+D,EAAal+D,EAAaI,EAAYC,GAG7C,OAFID,GAAY0yD,EAAkB9yD,EAAY3+C,UAAW++C,GACrDC,GAAayyD,EAAkB9yD,EAAaK,GACzCL,EAGT,SAAS89D,EAAgB97G,EAAKhB,EAAKN,GAYjC,OAXIM,KAAOgB,EACT7B,OAAOC,eAAe4B,EAAKhB,EAAK,CAC9BN,MAAOA,EACPL,YAAY,EACZ6gB,cAAc,EACdi/B,UAAU,IAGZn+C,EAAIhB,GAAON,EAGNsB,EAkBT,SAASm8G,EAAgBj+G,GAIvB,OAHAi+G,EAAkBh+G,OAAOi+G,eAAiBj+G,OAAOw8G,eAAiB,SAAyBz8G,GACzF,OAAOA,EAAEs+B,WAAar+B,OAAOw8G,eAAez8G,KAEvBA,GAGzB,SAASm+G,EAAgBn+G,EAAGqB,GAM1B,OALA88G,EAAkBl+G,OAAOi+G,gBAAkB,SAAyBl+G,EAAGqB,GAErE,OADArB,EAAEs+B,UAAYj9B,EACPrB,IAGcA,EAAGqB,GAwB5B,SAAS+8G,EAA2Bz9F,EAAMjhB,GACxC,GAAIA,IAAyB,iBAATA,GAAqC,mBAATA,GAC9C,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAI8K,UAAU,4DAGtB,OAfF,SAAgCmW,GAC9B,QAAa,IAATA,EACF,MAAM,IAAI09F,eAAe,6DAG3B,OAAO19F,EAUA29F,CAAuB39F,GAGhC,SAAS49F,EAAaC,GACpB,IAAIC,EAhCN,WACE,GAAuB,oBAAZltD,UAA4BA,QAAQmtD,UAAW,OAAO,EACjE,GAAIntD,QAAQmtD,UAAUC,KAAM,OAAO,EACnC,GAAqB,mBAAVC,MAAsB,OAAO,EAExC,IAEE,OADA11G,QAAQ/H,UAAU09G,QAAQn/G,KAAK6xD,QAAQmtD,UAAUx1G,QAAS,IAAI,iBACvD,EACP,MAAO3E,GACP,OAAO,GAuBuBu6G,GAEhC,OAAO,WACL,IACIr7G,EADA+tE,EAAQysC,EAAgBO,GAG5B,GAAIC,EAA2B,CAC7B,IAAIM,EAAYd,EAAgB55G,MAAMlC,YAEtCsB,EAAS8tD,QAAQmtD,UAAUltC,EAAO7tE,UAAWo7G,QAE7Ct7G,EAAS+tE,EAAMnmE,MAAMhH,KAAMV,WAG7B,OAAOy6G,EAA2B/5G,KAAMZ,IAI5C,SAASu7G,EAAe/9G,EAAQC,GAC9B,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAEpC,QADfD,EAASg9G,EAAgBh9G,MAI3B,OAAOA,EAGT,SAASg+G,IAkBP,OAhBEA,EADqB,oBAAZ1tD,SAA2BA,QAAQnxD,IACrCmxD,QAAQnxD,IAER,SAAc6K,EAAQ/J,EAAUg+G,GACrC,IAAIr/C,EAAOm/C,EAAe/zG,EAAQ/J,GAElC,GAAK2+D,EAAL,CACA,IAAIhgD,EAAO5f,OAAO6f,yBAAyB+/C,EAAM3+D,GAEjD,OAAI2e,EAAKzf,IACAyf,EAAKzf,IAAIV,KAAKiE,UAAU3B,OAAS,EAAIiJ,EAASi0G,GAGhDr/F,EAAKrf,SAIJ6K,MAAMhH,KAAMV,WAG1B,IAAIyB,EAAW,CAUb6tB,KAAM,SAONksF,QAAS,EAOTC,QAAS,EAWTC,QAAS,EAOTC,IAAK,GAOLnmF,UAAU,EAOVomF,YAAY,EAOZj8E,UAAU,EAUVgnB,OAAO,EAOPk1D,eAAgB,GAOhBC,cAAe,IAWfC,SAAU,GAOVxpF,WAAY,GAOZZ,WAAY,GAOZqqF,kBAAmB,IAOnBC,QAAQ,EAORC,eAAgB,IAOhBC,oBAAqB,oCAOrB3pE,mBAAmB,EAOnB4pE,SAAU,GAWVzxF,UAAW,MAcX0xF,KAAM,EAONC,aAAc,EAWdhnF,YAAa,GAQb3hB,QAAS,CACP4oG,UAAW,mBACXC,SAAU,kBACV7xF,UAAW,CACT8xF,IAAK,aACLj8F,IAAK,cAEP8O,KAAM,CACJotF,OAAQ,gBACRC,SAAU,mBAEZ35F,MAAO,CACL8jD,MAAO,sBACPhK,OAAQ,wBAEV9X,MAAO,CACLuxD,SAAU,0BAEZqG,IAAK,CACH9/C,OAAQ,2BAWd,SAASxc,EAAKq5B,GACZt5B,QAAQ7wC,MAAM,iBAAiBhF,OAAOmvE,IAUxC,SAASkjC,EAAMhgH,GACb,OAAOsjB,SAAStjB,GAoBlB,SAASkC,EAASlC,GAChB,MAAwB,iBAAVA,EAWhB,SAASmB,EAASnB,GAChB,IAAIyyB,EAAO6qF,EAAQt9G,GAEnB,MAAgB,aAATyyB,GAAgC,WAATA,KAAuBzyB,EASvD,SAASoB,EAAWpB,GAClB,MAAwB,mBAAVA,EAShB,SAASkB,EAAYlB,GACnB,YAAwB,IAAVA,EAShB,SAASgB,EAAQhB,GACf,OAAOA,EAAM2B,cAAgBqJ,MAa/B,SAAS82F,EAAMme,EAAOC,EAAYjnG,GAChC,IAAIsH,EAAa,GAEjB,IAAK,IAAIjhB,KAAQ4gH,EACX9+G,EAAW8+G,EAAW5gH,IACxBihB,EAAWjhB,GAAQ4gH,EAAW5gH,GAAM2gH,EAAO1/F,EAAYtH,GAEvDwqC,EAAK,gCAIT,IAAK,IAAI08D,KAAS5/F,EACZnf,EAAWmf,EAAW4/F,GAAOre,QAC/BvhF,EAAW4/F,GAAOre,QAItB,OAAOvhF,EAWT,SAAS6/F,EAAO9+G,EAAK2R,EAAM0iE,GACzBl2E,OAAOC,eAAe4B,EAAK2R,EAAM0iE,GAuBnC,SAASrM,EAAa1kE,EAAUy7G,GAC9B,IAAI3iF,EAAUj+B,OAAO4Y,OAAO,GAAIzT,EAAUy7G,GAM1C,GAAIA,EAASz/G,eAAe,WAAY,CACtC88B,EAAQ5mB,QAAUrX,OAAO4Y,OAAO,GAAIzT,EAASkS,QAASupG,EAASvpG,SAC9C,CAAC,YAAa,OAAQ,QAAS,QAAS,OAC9CzV,SAAQ,SAAUX,GACvB2/G,EAASvpG,QAAQlW,eAAeF,KAClCg9B,EAAQ5mB,QAAQpW,GAAYy8G,EAAeA,EAAe,GAAIv4G,EAASkS,QAAQpW,IAAY2/G,EAASvpG,QAAQpW,QASlH,OAJI2/G,EAASz/G,eAAe,iBAC1B88B,EAAQjF,YAAch5B,OAAO4Y,OAAO,GAAIzT,EAAS6zB,YAAa4nF,EAAS5nF,cAGlEiF,EAGT,IAAI4iF,EAAyB,WAM3B,SAASA,IACP,IAAIrnG,EAAS9V,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,GAEjFo6G,EAAgB15G,KAAMy8G,GAEtBz8G,KAAKoV,OAASA,EACdpV,KAAK08G,IAAMtnG,EAAOrY,eAiEpB,OAvDA48G,EAAa8C,EAAW,CAAC,CACvBhgH,IAAK,KACLN,MAAO,SAAYoK,EAAOQ,GACxB,IAAI5J,EAAQoJ,GAAZ,CASKvG,KAAK08G,IAAIrhH,KAAK2E,KAAKoV,OAAQ7O,KAC9BvG,KAAKoV,OAAO7O,GAAS,IAIvB,IAAIuR,EAAQ9X,KAAKoV,OAAO7O,GAAOqB,KAAKb,GAAW,EAE/C,MAAO,CACLvE,OAAQ,kBACCxC,KAAKoV,OAAO7O,GAAOuR,KAjB5B,IAAK,IAAI5c,EAAI,EAAGA,EAAIqL,EAAM5I,OAAQzC,IAChC8E,KAAK6K,GAAGtE,EAAMrL,GAAI6L,KA2BvB,CACDtK,IAAK,OACLN,MAAO,SAAcoK,EAAO8L,GAC1B,GAAIlV,EAAQoJ,GACV,IAAK,IAAIrL,EAAI,EAAGA,EAAIqL,EAAM5I,OAAQzC,IAChC8E,KAAKmL,KAAK5E,EAAMrL,GAAImX,QAOnBrS,KAAK08G,IAAIrhH,KAAK2E,KAAKoV,OAAQ7O,IAKhCvG,KAAKoV,OAAO7O,GAAO/I,SAAQ,SAAUqrD,GACnCA,EAAKx2C,GAAW,WAKfoqG,EA7EoB,GAgFzBE,EAAuB,WAOzB,SAASC,EAAM/4G,GACb,IAAIg2B,EAAUv6B,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,GAElFo6G,EAAgB15G,KAAM48G,GAEtB58G,KAAKi3D,GAAK,GACVj3D,KAAKu4D,GAAK,GACVv4D,KAAK84D,GAAK,IAAI2jD,EACdz8G,KAAK61G,UAAW,EAChB71G,KAAK6D,SAAWA,EAChB7D,KAAKw8G,SAAW/2C,EAAa1kE,EAAU84B,GACvC75B,KAAK8X,MAAQ9X,KAAKw8G,SAAS1B,QAwR7B,OA9QAnB,EAAaiD,EAAO,CAAC,CACnBngH,IAAK,QACLN,MAAO,WACL,IAAIkgH,EAAa/8G,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,GAYrF,OAVAU,KAAK84D,GAAG3tD,KAAK,gBAET7N,EAAS++G,GACXr8G,KAAKi3D,GAAKgnC,EAAMj+F,KAAMq8G,EAAYr8G,KAAK84D,IAEvClZ,EAAK,6CAGP5/C,KAAK84D,GAAG3tD,KAAK,eAENnL,OASR,CACDvD,IAAK,SACLN,MAAO,WACL,IAAI0gH,EAAev9G,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,GAQvF,OANInC,EAAQ0/G,GACV78G,KAAKu4D,GAAKskD,EAEVj9D,EAAK,6CAGA5/C,OASR,CACDvD,IAAK,SACLN,MAAO,WACL,IAAIqgH,EAAWl9G,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,GASnF,OARAU,KAAKw8G,SAAW/2C,EAAazlE,KAAKw8G,SAAUA,GAExCA,EAASz/G,eAAe,aAC1BiD,KAAK8X,MAAQ0kG,EAAS1B,SAGxB96G,KAAK84D,GAAG3tD,KAAK,UAENnL,OAgBR,CACDvD,IAAK,KACLN,MAAO,SAAY0xE,GAGjB,OAFA7tE,KAAKi3D,GAAG6lD,IAAIC,KAAKlvC,GAEV7tE,OASR,CACDvD,IAAK,OACLN,MAAO,SAAc42B,GAKnB,OAJA/yB,KAAKi3D,GAAGwyB,WAAWrpD,UAEnBpgC,KAAKi3D,GAAG+lD,KAAKD,KAAKhqF,GAEX/yB,OAQR,CACDvD,IAAK,UACLN,MAAO,WAGL,OAFA6D,KAAK84D,GAAG3tD,KAAK,WAENnL,OASR,CACDvD,IAAK,OACLN,MAAO,WACL,IAAI8gH,EAAW39G,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,IAAmBA,UAAU,GAQ9E,OANI29G,IACFj9G,KAAKw8G,SAAS1nF,SAAWmoF,GAG3Bj9G,KAAK84D,GAAG3tD,KAAK,QAENnL,OAQR,CACDvD,IAAK,QACLN,MAAO,WAGL,OAFA6D,KAAK84D,GAAG3tD,KAAK,SAENnL,OAQR,CACDvD,IAAK,UACLN,MAAO,WAEL,OADA6D,KAAK61G,UAAW,EACT71G,OAQR,CACDvD,IAAK,SACLN,MAAO,WAEL,OADA6D,KAAK61G,UAAW,EACT71G,OAUR,CACDvD,IAAK,KACLN,MAAO,SAAYoK,EAAOQ,GAGxB,OAFA/G,KAAK84D,GAAGjuD,GAAGtE,EAAOQ,GAEX/G,OASR,CACDvD,IAAK,SACLN,MAAO,SAAgBV,GACrB,OAAOuE,KAAKw8G,SAAS5tF,OAASnzB,IAQ/B,CACDgB,IAAK,WACLV,IAAK,WACH,OAAOiE,KAAKm4D,IASdt3D,IAAK,SAAalF,GACZ2B,EAAS3B,GACXqE,KAAKm4D,GAAKx8D,EAEVikD,EAAK,2CASR,CACDnjD,IAAK,QACLV,IAAK,WACH,OAAOiE,KAAKmwD,IAQdtvD,IAAK,SAAa3F,GAChB8E,KAAKmwD,GAAKgsD,EAAMjhH,KAQjB,CACDuB,IAAK,OACLV,IAAK,WACH,OAAOiE,KAAKw8G,SAAS5tF,OAQtB,CACDnyB,IAAK,WACLV,IAAK,WACH,OAAOiE,KAAKi5D,IAQdp4D,IAAK,SAAakI,GAChB/I,KAAKi5D,KAAOlwD,MAIT6zG,EA1SkB,GAmoB3B,SAAS9iG,IACP,OAAO,IAAI7Y,MAAOsiC,UAepB,SAASm4E,EAAS//E,EAAMuhF,GACtB,IACIx0G,EAAS2J,EAASnL,EAAM9H,EADxBy6B,EAAUv6B,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,GAE9E69G,EAAW,EAEXC,EAAQ,WACVD,GAA+B,IAApBtjF,EAAQwjF,QAAoB,EAAIvjG,IAC3CpR,EAAU,KACVtJ,EAASu8B,EAAK30B,MAAMqL,EAASnL,GACxBwB,IAAS2J,EAAUnL,EAAO,OAG7Bo2G,EAAY,WACd,IAAIC,EAAKzjG,IACJqjG,IAAgC,IAApBtjF,EAAQwjF,UAAmBF,EAAWI,GACvD,IAAIC,EAAYN,GAAQK,EAAKJ,GAiB7B,OAhBA9qG,EAAUrS,KACVkH,EAAO5H,UAEHk+G,GAAa,GAAKA,EAAYN,GAC5Bx0G,IACFc,aAAad,GACbA,EAAU,MAGZy0G,EAAWI,EACXn+G,EAASu8B,EAAK30B,MAAMqL,EAASnL,GACxBwB,IAAS2J,EAAUnL,EAAO,OACrBwB,IAAgC,IAArBmxB,EAAQ4jF,WAC7B/0G,EAAUtF,WAAWg6G,EAAOI,IAGvBp+G,GAST,OANAk+G,EAAU9uG,OAAS,WACjBhF,aAAad,GACby0G,EAAW,EACXz0G,EAAU2J,EAAUnL,EAAO,MAGtBo2G,EAGT,IAAII,EAAc,CAChB3B,IAAK,CAAC,aAAc,eACpBj8F,IAAK,CAAC,cAAe,eAuGvB,SAAS69F,EAAShkE,GAChB,GAAIA,GAAQA,EAAK1zC,WAAY,CAI3B,IAHA,IAAItJ,EAAIg9C,EAAK1zC,WAAWqS,WACpBqmC,EAAU,GAEPhiD,EAAGA,EAAIA,EAAEu3E,YACK,IAAfv3E,EAAEoI,UAAkBpI,IAAMg9C,GAC5BgF,EAAQ/2C,KAAKjL,GAIjB,OAAOgiD,EAGT,MAAO,GAST,SAAS8K,EAAQm0D,GACf,OAAOz2G,MAAMrK,UAAUoF,MAAM7G,KAAKuiH,GAyjBpC,IAAIC,EAA4B,WAI9B,SAASA,IACP,IAAIvyG,EAAYhM,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,GAEpFo6G,EAAgB15G,KAAM69G,GAEtB79G,KAAKsL,UAAYA,EA8DnB,OAjDAquG,EAAakE,EAAc,CAAC,CAC1BphH,IAAK,KACLN,MAAO,SAAYiZ,EAAQpB,EAAI8pG,GAC7B,IAAIlpG,EAAUtV,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,IAAmBA,UAAU,GAEzEjB,EAAS+W,KACXA,EAAS,CAACA,IAGZ,IAAK,IAAIla,EAAI,EAAGA,EAAIka,EAAOzX,OAAQzC,IACjC8E,KAAKsL,UAAU8J,EAAOla,IAAM4iH,EAC5B9pG,EAAG9F,iBAAiBkH,EAAOla,GAAI8E,KAAKsL,UAAU8J,EAAOla,IAAK0Z,KAY7D,CACDnY,IAAK,MACLN,MAAO,SAAaiZ,EAAQpB,GAC1B,IAAIY,EAAUtV,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,IAAmBA,UAAU,GAEzEjB,EAAS+W,KACXA,EAAS,CAACA,IAGZ,IAAK,IAAIla,EAAI,EAAGA,EAAIka,EAAOzX,OAAQzC,IACjC8Y,EAAGlE,oBAAoBsF,EAAOla,GAAI8E,KAAKsL,UAAU8J,EAAOla,IAAK0Z,KAShE,CACDnY,IAAK,UACLN,MAAO,kBACE6D,KAAKsL,cAITuyG,EAvEuB,GA0HhC,IAAIE,EAAmB,CAAC,MAAO,OAC3BC,EAAmB,CACrB,IAAK,IACL,IAAK,IACL,IAAK,KAqHP,SAASC,EAAKrB,EAAOsB,GACnB,MAAO,CAOLC,OAAQ,SAAgBt4F,GACtB,OAAIq4F,EAAWE,UAAUv3G,GAAG,QAClBgf,EAGHA,IAYb,SAASw4F,EAAKzB,EAAOsB,GACnB,MAAO,CAOLC,OAAQ,SAAgBt4F,GACtB,IAAIW,EAAahjB,KAAKse,MAAM+D,EAAYq4F,EAAWI,MAAMl0E,YACzD,OAAOvkB,EAAYq4F,EAAWK,KAAKpiH,MAAQqqB,IAYjD,SAASg4F,EAAM5B,EAAOsB,GACpB,MAAO,CAOLC,OAAQ,SAAgBt4F,GACtB,OAAOA,EAAYq4F,EAAWO,OAAOC,KAAO,IAalD,SAASC,EAAS/B,EAAOsB,GACvB,MAAO,CAOLC,OAAQ,SAAgBt4F,GACtB,GAAI+2F,EAAMJ,SAASxB,SAAW,EAAG,CAC/B,IAAIW,EAAOuC,EAAWU,KAAKziH,MAE3B,OAAImB,EAASq+G,GACJ91F,EAAY81F,EAAKr9C,OAGnBz4C,EAAY81F,EAGrB,OAAO91F,IAYb,SAASg5F,EAAUjC,EAAOsB,GACxB,MAAO,CAOLC,OAAQ,SAAgBt4F,GACtB,IAAIo1F,EAAMiD,EAAWK,KAAKpiH,MACtB+iB,EAAQg/F,EAAWI,MAAMp/F,MACzB87F,EAAU4B,EAAMJ,SAASxB,QACzB5wE,EAAa8zE,EAAWI,MAAMl0E,WAElC,MAAgB,WAAZ4wE,EACKn1F,GAAa3G,EAAQ,EAAIkrB,EAAa,GAGxCvkB,EAAYukB,EAAa4wE,EAAUC,EAAMD,IA4QtD,IAAI9+F,IAAkB,EAEtB,IACE,IAAIC,GAAOvgB,OAAOC,eAAe,GAAI,UAAW,CAC9CE,IAAK,WACHmgB,IAAkB,KAGtBjd,OAAOiP,iBAAiB,cAAe,KAAMiO,IAC7Cld,OAAO6Q,oBAAoB,cAAe,KAAMqM,IAChD,MAAOjc,IAET,IAAI4+G,GAAoB5iG,GAEpB6iG,GAAe,CAAC,aAAc,aAC9BC,GAAc,CAAC,YAAa,aAC5BC,GAAa,CAAC,WAAY,cAAe,UAAW,cACpDC,GAAe,CAAC,YAAa,YAAa,UAAW,cAodzD,IAEIC,GAA6B,GAAGr1G,OADZ,8BACsC,0BAC1Ds1G,GAAyB,GAAGt1G,OAFR,8BAEkC,0BA+hB1D,SAASu1G,GAAgB/nF,GACvB,OAAIh6B,EAASg6B,IA5mGG75B,EA6mGE65B,EA5mGX17B,OAAO2T,KAAK9R,GAAKk6B,OAAO4rB,QAAO,SAAUvnD,EAAGkZ,GAEjD,OADAlZ,EAAEkZ,GAAKzX,EAAIyX,GACJlZ,EAAEkZ,GAAIlZ,IACZ,MA2mGD4jD,EAAK,wCAGA,IAlnGT,IAAkBniD,EA0sGlB,IAAI6hH,GAAa,CAEfC,KAlxEF,SAAe3C,EAAOsB,EAAYsB,GAChC,IAAID,EAAO,CAMTthB,MAAO,WACLj+F,KAAK+F,KAAO62G,EAAM/4G,SAClB7D,KAAKy/G,MAAQz/G,KAAK+F,KAAK/B,cAVR,2BAWfhE,KAAK0/G,iBAMPA,cAAe,WACb1/G,KAAKqgB,OAASopC,EAAQzpD,KAAKkwE,QAAQ5/D,UAAUd,QAAO,SAAU8S,GAC5D,OAAQA,EAAMnP,UAAUI,SAASqpG,EAAMJ,SAASvpG,QAAQqP,MAAM8jD,YAmEpE,OA/DAm2C,EAAOgD,EAAM,OAAQ,CAMnBxjH,IAAK,WACH,OAAOwjH,EAAKI,IAQd9+G,IAAK,SAAa7E,GACZqC,EAASrC,KACXA,EAAIkD,SAAS8E,cAAchI,IAGnB,OAANA,EACFujH,EAAKI,GAAK3jH,EAEV4jD,EAAK,gDAIX28D,EAAOgD,EAAM,QAAS,CAMpBxjH,IAAK,WACH,OAAOwjH,EAAKhnD,IAQd13D,IAAK,SAAazE,GAChBmjH,EAAKhnD,GAAKn8D,KAGdmgH,EAAOgD,EAAM,UAAW,CAMtBxjH,IAAK,WACH,OAAOwjH,EAAKE,MAAMnvG,SAAS,MAO/BkvG,EAAO30G,GAAG,UAAU,WAClB00G,EAAKG,mBAEAH,GA8rEPK,UAx0CF,SAAoBhD,EAAOsB,EAAYsB,GACrC,IAAII,EAAY,CAOd/+G,IAAK,SAAa1E,GAChB,IAAIgY,EAzCV,SAAkByoG,EAAOsB,EAAYsB,GAQnC,IAAIK,EAAe,CAACxB,EAAKG,EAAMG,EAASE,GAAU/0G,OAAO8yG,EAAMrkD,GAAI,CAAC0lD,IACpE,MAAO,CAOL6B,OAAQ,SAAgBj6F,GACtB,IAAK,IAAI3qB,EAAI,EAAGA,EAAI2kH,EAAaliH,OAAQzC,IAAK,CAC5C,IAAIwrG,EAAcmZ,EAAa3kH,GAE3BqC,EAAWmpG,IAAgBnpG,EAAWmpG,IAAcyX,QACtDt4F,EAAY6gF,EAAYkW,EAAOsB,EAAYsB,GAAQrB,OAAOt4F,GAE1D+5B,EAAK,kFAIT,OAAO/5B,IAcSk6F,CAAQnD,EAAOsB,GAAY4B,OAAO3jH,GAC9C6jH,EAAc,eAAel2G,QAAQ,EAAIqK,EAAW,iBACxD+pG,EAAWqB,KAAKrvC,QAAQ1/D,MAAMyvG,aAAeD,EAE7C9B,EAAWqB,KAAKrvC,QAAQ1/D,MAAM6D,gBAAkB2rG,EAEhD9B,EAAWqB,KAAKrvC,QAAQ1/D,MAAM2D,UAAY6rG,GAQ5Cx9G,OAAQ,WACN07G,EAAWqB,KAAKrvC,QAAQ1/D,MAAM2D,UAAY,IAM5C+rG,cAAe,WACb,IAAIviH,EAASugH,EAAWI,MAAM3gH,OAC1Bma,EAAQ8kG,EAAM9kG,MACdijG,EAAU6B,EAAMJ,SAASzB,QAE7B,OAAImD,EAAWpB,IAAIqD,SAAS,MAAQjC,EAAWpB,IAAIqD,SAAS,MACnDxiH,GAAUma,EAAQijG,IAInBjjG,EAAQijG,GAAWp9G,GAM7ByiH,kBAAmB,WACjB,IAAIC,EAAiBnC,EAAWI,MAAMl0E,WAAawyE,EAAMJ,SAASzB,QAElE,OAAImD,EAAWpB,IAAIqD,SAAS,MAAQjC,EAAWpB,IAAIqD,SAAS,OAEjC,EAAlBE,EAGFA,IA6BX,OApBAb,EAAO30G,GAAG,QAAQ,SAAUwH,GAC1B,IAAKuqG,EAAM0D,OAAO,cAAgBpC,EAAWpB,IAAIqD,WAC/C,OAAOP,EAAU/+G,IAAIwR,EAAQkuG,UAG/BrC,EAAWz0B,WAAWya,OAAM,WAC1Bsb,EAAOr0G,KAAK,kBACZy0G,EAAU/+G,IAAIq9G,EAAWI,MAAMl0E,WAAawyE,EAAM9kG,UAEpD,IAAI0oG,EAAatC,EAAWI,MAAMl0E,WAAa8zE,EAAW0B,UAAUM,gBACpE,OAAON,EAAU/+G,IAAI2/G,EAAatC,EAAW0B,UAAUQ,wBAOzDZ,EAAO30G,GAAG,WAAW,WACnB+0G,EAAUp9G,YAELo9G,GAsvCPn2B,WAnvCF,SAAqBmzB,EAAOsB,EAAYsB,GAOtC,IAAI3J,GAAW,EACXpsB,EAAa,CAOfg3B,QAAS,SAAiB5jH,GACxB,IAAI2/G,EAAWI,EAAMJ,SAErB,OAAI3G,EACK,GAAG/rG,OAAOjN,EAAU,SAASiN,OAAO0yG,EAASf,qBAG/C,GAAG3xG,OAAOjN,EAAU,KAAKiN,OAAO9J,KAAK8C,SAAU,OAAOgH,OAAO0yG,EAASf,sBAS/E56G,IAAK,WACH,IAAIhE,EAAWyC,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,YACnF4+G,EAAWqB,KAAKrvC,QAAQ1/D,MAAM8D,WAAatU,KAAKygH,QAAQ5jH,IAQ1D2F,OAAQ,WACN07G,EAAWqB,KAAKrvC,QAAQ1/D,MAAM8D,WAAa,IAS7C4vF,MAAO,SAAe/tF,GACpB/S,YAAW,WACT+S,MACCnW,KAAK8C,WAQVq9B,OAAQ,WACN01E,GAAW,EACX71G,KAAKa,OAQPu/B,QAAS,WACPy1E,GAAW,EACX71G,KAAKa,QAsDT,OAnDA07G,EAAO9yB,EAAY,WAAY,CAO7B1tF,IAAK,WACH,IAAIygH,EAAWI,EAAMJ,SAErB,OAAII,EAAM0D,OAAO,WAAapC,EAAWpB,IAAInmG,OACpC6lG,EAAShB,eAGXgB,EAASlB,qBAQpBkE,EAAO30G,GAAG,QAAQ,WAChB4+E,EAAW5oF,SASb2+G,EAAO30G,GAAG,CAAC,eAAgB,SAAU,mBAAmB,WACtD4+E,EAAWrpD,aAObo/E,EAAO30G,GAAG,OAAO,WACf4+E,EAAWtpD,YAObq/E,EAAO30G,GAAG,WAAW,WACnB4+E,EAAWjnF,YAENinF,GAonCP20B,UAhmDF,SAAoBxB,EAAOsB,EAAYsB,GACrC,IAAIpB,EAAY,CAMdngB,MAAO,WACLj+F,KAAK7D,MAAQygH,EAAMJ,SAASvyF,WAS9B9d,QAAS,SAAiB0hE,GACxB,IAAIwgC,EAAQxgC,EAAQ3rE,MAAM,EAAG,GAE7B,OAAIlC,KAAK6G,GAAG,OACHgnE,EAAQjsE,MAAMysG,GAAOlsG,KAAK67G,EAAiB3P,IAG7CxgC,GASThnE,GAAI,SAAYojB,GACd,OAAOjqB,KAAK7D,QAAU8tB,GAQxBlX,SAAU,WACRmrG,EAAWqB,KAAKx5G,KAAKoN,UAAUC,IAAIwpG,EAAMJ,SAASvpG,QAAQgX,UAAUjqB,KAAK7D,SAQ3EkX,YAAa,WACX6qG,EAAWqB,KAAKx5G,KAAKoN,UAAU3Q,OAAOo6G,EAAMJ,SAASvpG,QAAQgX,UAAUjqB,KAAK7D,UAqDhF,OAlDAogH,EAAO6B,EAAW,QAAS,CAMzBriH,IAAK,WACH,OAAOqiH,EAAUvlD,IASnBh4D,IAAK,SAAa1E,GACZ4hH,EAAiBj2G,QAAQ3L,IAAU,EACrCiiH,EAAUvlD,GAAK18D,EAEfyjD,EAAK,6CAUX4/D,EAAO30G,GAAG,CAAC,UAAW,WAAW,WAC/BuzG,EAAU/qG,iBAOZmsG,EAAO30G,GAAG,UAAU,WAClBuzG,EAAUngB,WAQZuhB,EAAO30G,GAAG,CAAC,eAAgB,WAAW,WACpCuzG,EAAUrrG,cAELqrG,GAw/CPQ,KA9rEF,SAAehC,EAAOsB,EAAYsB,GAChC,IAAIZ,EAAO,CAMT3gB,MAAO,WACLj+F,KAAK7D,MAAQygH,EAAMJ,SAASb,OAuDhC,OApDAY,EAAOqC,EAAM,QAAS,CAMpB7iH,IAAK,WACH,OAAO6iH,EAAK/lD,IASdh4D,IAAK,SAAa1E,GACZmB,EAASnB,IACXA,EAAMmiE,OAAS69C,EAAMhgH,EAAMmiE,QAC3BniE,EAAM+nG,MAAQiY,EAAMhgH,EAAM+nG,QAE1B/nG,EAAQggH,EAAMhgH,GAGhByiH,EAAK/lD,GAAK18D,KAGdogH,EAAOqC,EAAM,WAAY,CAMvB7iH,IAAK,WACH,IAAII,EAAQyiH,EAAKziH,MACb4+G,EAAU6B,EAAMJ,SAASzB,QAE7B,OAAIz9G,EAASnB,GACJA,EAAMmiE,OAASy8C,EAAU5+G,EAAM+nG,MAAQ6W,EAGjC,EAAR5+G,EAAY4+G,KAQvByE,EAAO30G,GAAG,CAAC,SAAU,WAAW,WAC9B+zG,EAAK3gB,WAEA2gB,GAgoEPN,MAniEF,SAAgB1B,EAAOsB,EAAYsB,GACjC,IAAIlB,EAAQ,CAMVoC,YAAa,WAIX,IAHA,IAAIxhG,EAAQ,GAAGpV,OAAO9J,KAAKoqC,WAAY,MACnC/pB,EAAS69F,EAAWqB,KAAKl/F,OAEpBnlB,EAAI,EAAGA,EAAImlB,EAAO1iB,OAAQzC,IACjCmlB,EAAOnlB,GAAGsV,MAAM0O,MAAQA,GAS5ByhG,aAAc,WACZzC,EAAWqB,KAAKrvC,QAAQ1/D,MAAM0O,MAAQ,GAAGpV,OAAO9J,KAAK4gH,YAAa,OAQpEp+G,OAAQ,WAGN,IAFA,IAAI6d,EAAS69F,EAAWqB,KAAKl/F,OAEpBnlB,EAAI,EAAGA,EAAImlB,EAAO1iB,OAAQzC,IACjCmlB,EAAOnlB,GAAGsV,MAAM0O,MAAQ,GAG1Bg/F,EAAWqB,KAAKrvC,QAAQ1/D,MAAM0O,MAAQ,KA8D1C,OA3DAq9F,EAAO+B,EAAO,SAAU,CAMtBviH,IAAK,WACH,OAAOmiH,EAAWqB,KAAKl/F,OAAO1iB,UAGlC4+G,EAAO+B,EAAO,QAAS,CAMrBviH,IAAK,WACH,OAAOmiH,EAAWqB,KAAKE,MAAMhpG,eAGjC8lG,EAAO+B,EAAO,cAAe,CAM3BviH,IAAK,WACH,OAAOuiH,EAAMl0E,WAAak0E,EAAM3gH,OAASugH,EAAWK,KAAKG,KAAOR,EAAWO,OAAOC,QAGtFnC,EAAO+B,EAAO,aAAc,CAM1BviH,IAAK,WACH,OAAOuiH,EAAMp/F,MAAQ09F,EAAMJ,SAASzB,QAAUmD,EAAWU,KAAKiC,SAAW3C,EAAWK,KAAKsC,YAU7FrB,EAAO30G,GAAG,CAAC,eAAgB,SAAU,WAAW,WAC9CyzG,EAAMoC,cACNpC,EAAMqC,kBAORnB,EAAO30G,GAAG,WAAW,WACnByzG,EAAM97G,YAED87G,GAi8DPC,KAz5EF,SAAe3B,EAAOsB,EAAYsB,GAChC,IAAIjB,EAAO,CAQTv3G,MAAO,SAAeqZ,GACpB,IAAK,IAAInlB,EAAI,EAAG8O,EAAMqW,EAAO1iB,OAAQzC,EAAI8O,EAAK9O,IAAK,CACjD,IAAIsV,EAAQ6P,EAAOnlB,GAAGsV,MAClByZ,EAAYi0F,EAAWE,UAAUjiH,MAGnCqU,EAAMktG,EAAYzzF,GAAW,IADrB,IAAN/uB,EACiC,GAAG4O,OAAO9J,KAAK7D,MAAQ,EAAG,MAE1B,GAGjCjB,IAAMmlB,EAAO1iB,OAAS,EACxB6S,EAAMktG,EAAYzzF,GAAW,IAAM,GAAGngB,OAAO9J,KAAK7D,MAAQ,EAAG,MAE7DqU,EAAMktG,EAAYzzF,GAAW,IAAM,KAWzCznB,OAAQ,SAAgB6d,GACtB,IAAK,IAAInlB,EAAI,EAAG8O,EAAMqW,EAAO1iB,OAAQzC,EAAI8O,EAAK9O,IAAK,CACjD,IAAIsV,EAAQ6P,EAAOnlB,GAAGsV,MACtBA,EAAMiR,WAAa,GACnBjR,EAAMmR,YAAc,MAsD1B,OAlDA46F,EAAOgC,EAAM,QAAS,CAMpBxiH,IAAK,WACH,OAAOogH,EAAMS,EAAMJ,SAASvB,QAGhCsB,EAAOgC,EAAM,OAAQ,CAOnBxiH,IAAK,WACH,OAAOwiH,EAAKpiH,MAAQ+hH,EAAWI,MAAM3gH,UAGzC4+G,EAAOgC,EAAM,WAAY,CAOvBxiH,IAAK,WACH,IAAIg/G,EAAU6B,EAAMJ,SAASzB,QAC7B,OAAOwD,EAAKpiH,OAAS4+G,EAAU,GAAKA,KASxCyE,EAAO30G,GAAG,CAAC,cAAe,UAAW6wG,GAAS,WAC5C6C,EAAKv3G,MAAMk3G,EAAWqB,KAAKrvC,QAAQ5/D,YAClC,KAMHkvG,EAAO30G,GAAG,WAAW,WACnB0zG,EAAK/7G,OAAO07G,EAAWqB,KAAKrvC,QAAQ5/D,aAE/BiuG,GA8zEPvB,KA/nEF,SAAeJ,EAAOsB,EAAYsB,GAChC,IAAIxC,EAAO,CAMT/e,MAAO,WACLj+F,KAAKm4D,GAAK,GASZ4kD,KAAM,WACJ,IAAIh6G,EAAQ/C,KAER2W,EAASrX,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,EACjFU,KAAK2W,OAASA,EACd6oG,EAAOr0G,KAAK,OAAQ,CAClBo1G,SAAUvgH,KAAK7D,QAEjB+hH,EAAWz0B,WAAWya,OAAM,WAC1Bsb,EAAOr0G,KAAK,aAAc,CACxBo1G,SAAUx9G,EAAM5G,aA4DxB,OAvDAogH,EAAOS,EAAM,SAAU,CAMrBjhH,IAAK,WACH,OAAOihH,EAAK7kD,IAQdt3D,IAAK,SAAa1E,GAChB6gH,EAAK7kD,GAAM96D,EAAYlB,GAAwB,EAAfggH,EAAMhgH,MAG1CogH,EAAOS,EAAM,YAAa,CAMxBjhH,IAAK,WACH,OAAOmiH,EAAWI,MAAMl0E,WAAawyE,EAAM9kG,SAG/CykG,EAAOS,EAAM,QAAS,CAMpBjhH,IAAK,WACH,IAAI4a,EAAS3W,KAAK2W,OACdkP,EAAY7lB,KAAK6lB,UAErB,OAAIq4F,EAAWE,UAAUv3G,GAAG,OACnBgf,EAAYlP,EAGdkP,EAAYlP,KASvB6oG,EAAO30G,GAAG,CAAC,eAAgB,QAAQ,WACjCmyG,EAAKD,UAEAC,GAyiEPyB,OA32DF,SAAiB7B,EAAOsB,EAAYsB,GAClC,IAAIf,EAAS,CAIXxgB,MAAO,WACLj+F,KAAK22G,MAAQ,GAETiG,EAAM0D,OAAO,cACftgH,KAAK22G,MAAQ32G,KAAK8gH,YAStBA,QAAS,WACP,IAAInK,EAAQr3G,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,GAC5E+gB,EAAS69F,EAAWqB,KAAKl/F,OACzB0gG,EAAkBnE,EAAMJ,SACxBzB,EAAUgG,EAAgBhG,QAC1B9nG,EAAU8tG,EAAgB9tG,QAC1B2oG,EAAemF,EAAgBnF,aAEnC,GAAIv7F,EAAO1iB,OAAS,EAMlB,IALA,IAAIqjH,KAAqBpE,EAAMJ,SAASb,KACpCsF,EAAalG,EAAUiG,EAAkBx9G,KAAKuvC,MAAMgoE,EAAU,GAC9D5iG,EAASkI,EAAOne,MAAM,EAAG++G,GAAYr+D,UACrCpqC,EAAU6H,EAAOne,OAAoB,EAAd++G,GAElBjlH,EAAI,EAAGA,EAAIwH,KAAK0e,IAAI05F,EAAcp4G,KAAKse,MAAMi5F,EAAU16F,EAAO1iB,SAAU3B,IAAK,CACpF,IAAK,IAAId,EAAI,EAAGA,EAAIid,EAAOxa,OAAQzC,IAAK,CACtC,IAAIkrE,EAAQjuD,EAAOjd,GAAGgxB,WAAU,GAChCk6C,EAAMjzD,UAAUC,IAAIH,EAAQqP,MAAM8jD,OAClCuwC,EAAM/uG,KAAKw+D,GAGb,IAAK,IAAIjW,EAAK,EAAGA,EAAK33C,EAAQ7a,OAAQwyD,IAAM,CAC1C,IAAI+wD,EAAS1oG,EAAQ23C,GAAIjkC,WAAU,GAEnCg1F,EAAO/tG,UAAUC,IAAIH,EAAQqP,MAAM8jD,OAEnCuwC,EAAM3hG,QAAQksG,IAKpB,OAAOvK,GAQTx+F,OAAQ,WAUN,IATA,IAAIw+F,EAAQ32G,KAAK22G,MACbwK,EAAmBjD,EAAWqB,KAC9BrvC,EAAUixC,EAAiBjxC,QAC3B7vD,EAAS8gG,EAAiB9gG,OAC1B+gG,EAAO59G,KAAKse,MAAM60F,EAAMh5G,OAAS,GACjC6a,EAAUm+F,EAAMz0G,MAAM,EAAGk/G,GAAMx+D,UAC/BzqC,EAASw+F,EAAMz0G,OAAc,EAARk/G,GAAWx+D,UAChC1jC,EAAQ,GAAGpV,OAAOo0G,EAAWI,MAAMl0E,WAAY,MAE1ClvC,EAAI,EAAGA,EAAIid,EAAOxa,OAAQzC,IACjCg1E,EAAQ33D,YAAYJ,EAAOjd,IAG7B,IAAK,IAAImmH,EAAM,EAAGA,EAAM7oG,EAAQ7a,OAAQ0jH,IACtCnxC,EAAQz3D,aAAaD,EAAQ6oG,GAAMhhG,EAAO,IAG5C,IAAK,IAAIihG,EAAM,EAAGA,EAAM3K,EAAMh5G,OAAQ2jH,IACpC3K,EAAM2K,GAAK9wG,MAAM0O,MAAQA,GAS7B1c,OAAQ,WAGN,IAFA,IAAIm0G,EAAQ32G,KAAK22G,MAERz7G,EAAI,EAAGA,EAAIy7G,EAAMh5G,OAAQzC,IAChCgjH,EAAWqB,KAAKrvC,QAAQ12D,YAAYm9F,EAAMz7G,MA0ChD,OAtCAqhH,EAAOkC,EAAQ,OAAQ,CAMrB1iH,IAAK,WACH,OAAQmiH,EAAWI,MAAMl0E,WAAa8zE,EAAWK,KAAKpiH,OAASsiH,EAAO9H,MAAMh5G,UAQhF6hH,EAAO30G,GAAG,UAAU,WAClB4zG,EAAOj8G,SACPi8G,EAAOxgB,QACPwgB,EAAOtmG,YAOTqnG,EAAO30G,GAAG,gBAAgB,WACpB+xG,EAAM0D,OAAO,aACf7B,EAAOtmG,YAQXqnG,EAAO30G,GAAG,WAAW,WACnB4zG,EAAOj8G,YAEFi8G,GAyuDPnjF,OA5pDF,SAAiBshF,EAAOsB,EAAYsB,GAMlC,IAAI+B,EAAS,IAAI1D,EACbviF,EAAS,CAIX2iE,MAAO,WACLj+F,KAAKtD,QASPA,KAAM,WACJ6kH,EAAO12G,GAAG,SAAU5L,OAAQy8G,GAAS,WACnC8D,EAAOr0G,KAAK,YACXyxG,EAAMJ,SAASd,YAQpB3yB,OAAQ,WACNw4B,EAAOv2G,IAAI,SAAU/L,UAYzB,OAJAugH,EAAO30G,GAAG,WAAW,WACnBywB,EAAOytD,SACPw4B,EAAO9mF,aAEFa,GAgnDPkmF,MAl8DF,SAAgB5E,EAAOsB,EAAYsB,GACjC,IAAIgC,EAAQ,CAOVvjB,MAAO,WACLuhB,EAAOr0G,KAAK,gBACZnL,KAAKyhH,YACLzhH,KAAKkiF,cACLs9B,EAAOr0G,KAAK,gBAQds2G,UAAW,WACTvD,EAAWqB,KAAKx5G,KAAKoN,UAAUC,IAAIwpG,EAAMJ,SAASvpG,QAAQ2b,KAAKguF,EAAMJ,SAAS5tF,QAQhFszD,YAAa,WACX,IAAIjvE,EAAU2pG,EAAMJ,SAASvpG,QACzBqP,EAAQ47F,EAAWqB,KAAKl/F,OAAOu8F,EAAM9kG,OAErCwK,IACFA,EAAMnP,UAAUC,IAAIH,EAAQqP,MAAM85C,QAClCuhD,EAASr7F,GAAO9kB,SAAQ,SAAUkkH,GAChCA,EAAQvuG,UAAU3Q,OAAOyQ,EAAQqP,MAAM85C,aAU7ChkC,cAAe,WACb,IAAIupF,EAAwB/E,EAAMJ,SAASvpG,QACvC2b,EAAO+yF,EAAsB/yF,KAC7BtM,EAAQq/F,EAAsBr/F,MAClC47F,EAAWqB,KAAKx5G,KAAKoN,UAAU3Q,OAAOosB,EAAKguF,EAAMJ,SAAS5tF,OAC1DsvF,EAAWqB,KAAKl/F,OAAO7iB,SAAQ,SAAUkkH,GACvCA,EAAQvuG,UAAU3Q,OAAO8f,EAAM85C,aA8BrC,OApBAojD,EAAO30G,GAAG,CAAC,UAAW,WAAW,WAC/B22G,EAAMppF,mBAQRonF,EAAO30G,GAAG,CAAC,SAAU,WAAW,WAC9B22G,EAAMvjB,WAORuhB,EAAO30G,GAAG,cAAc,WACtB22G,EAAMt/B,iBAEDs/B,GAi3DP1E,IApzFF,SAAcF,EAAOsB,EAAYsB,GAC/B,IAAI1C,EAAM,CAMR7e,MAAO,WACLj+F,KAAKm4D,IAAK,GAQZ4kD,KAAM,SAAczmF,GAClB,IAAIvzB,EAAQ/C,KAEP48G,EAAM/G,YACR+G,EAAMJ,SAAS1qE,mBAAqB8qE,EAAMx8E,UAC3CpgC,KAAKs2B,KAAOA,EACZkpF,EAAOr0G,KAAK,aAAcnL,KAAKs2B,MAC/Bt2B,KAAK4hH,YACLpC,EAAOr0G,KAAK,MAAOnL,KAAKs2B,MACxB4nF,EAAWz0B,WAAWya,OAAM,WACtBnhG,EAAM8+G,WACRrC,EAAOr0G,KAAK,YAAapI,EAAMuzB,MAG7BvzB,EAAM6jB,SACR44F,EAAOr0G,KAAK,UAAWpI,EAAMuzB,MAG3BvzB,EAAMo9G,aACRp9G,EAAMo1D,IAAK,EACXqnD,EAAOr0G,KAAK,aAAcpI,EAAMuzB,OAGlCkpF,EAAOr0G,KAAK,YAAapI,EAAMuzB,MAC/BsmF,EAAMz8E,cAUZyhF,UAAW,WACT,IAAItrF,EAAOt2B,KAAKs2B,KACZ34B,EAASqC,KAAKrC,OACdmkH,EAAQxrF,EAAKwrF,MACb73F,EAAYqM,EAAKrM,UAEjB83F,EAAW,EAGf,GAAkB,MAAd93F,EAGF,OAAI2yF,EAAMJ,SAASv2D,OAASk2D,EAAM2F,GAASnkH,OACzCi/G,EAAM9kG,MAAQna,QAIhBi/G,EAAM9kG,MAAQgqG,GAMhB,GAAkB,MAAd73F,GAA+B,MAAV63F,EAOzB,GAAkB,MAAd73F,GAA+B,MAAV63F,EAAzB,CAWA,GALkB,MAAd73F,IACF83F,EAAWnF,EAAMJ,SAASzB,SAAW,GAIrB,MAAd9wF,GAAmC,MAAdA,GAA+B,MAAV63F,EAAe,CAC3D,IAAIhqG,EAyFV,SAA+BiqG,GAC7B,IAAIjqG,EAAQ8kG,EAAM9kG,MAElB,GAAI8kG,EAAM0D,OAAO,YACf,OAAOxoG,EAAQiqG,EAGjB,OAAOjqG,GAASiqG,EAAWjqG,EAAQiqG,GAhGnBC,CAAsBD,GAOlC,OALIjqG,EAAQna,IACVqC,KAAKm4D,IAAK,QAGZykD,EAAM9kG,MAsGZ,SAA+BA,EAAOiqG,GACpC,IAAIpkH,EAASm/G,EAAIn/G,OAEjB,GAAIma,GAASna,EACX,OAAOma,EAGT,GAAI8kG,EAAM0D,OAAO,YACf,OAAOxoG,GAASna,EAAS,GAG3B,GAAIi/G,EAAMJ,SAASjB,OAGjB,OAAIuB,EAAImF,YAAcnF,EAAIl2F,QACjBjpB,EAGF,EAGT,GAAIm/G,EAAImF,UACN,OAAOtkH,EAGT,OAAO6F,KAAKse,MAAMnkB,EAASokH,GAAYA,EA/HrBG,CAAsBpqG,EAAOiqG,IAK7C,GAAkB,MAAd93F,GAAmC,MAAdA,GAA+B,MAAV63F,EAAe,CAC3D,IAAIK,EAmIV,SAAgCJ,GAC9B,IAAIjqG,EAAQ8kG,EAAM9kG,MAElB,GAAI8kG,EAAM0D,OAAO,YACf,OAAOxoG,EAAQiqG,EAMjB,OADWv+G,KAAKue,KAAKjK,EAAQiqG,GACd,GAAKA,EA7IHK,CAAuBL,GAOpC,OALII,EAAS,IACXniH,KAAKm4D,IAAK,QAGZykD,EAAM9kG,MAmJZ,SAAgCA,EAAOiqG,GACrC,IAAIpkH,EAASm/G,EAAIn/G,OAEjB,GAAIma,GAAS,EACX,OAAOA,EAGT,GAAI8kG,EAAM0D,OAAO,YACf,OAAOxoG,GAASna,EAAS,GAG3B,GAAIi/G,EAAMJ,SAASjB,OAGjB,OAAIuB,EAAImF,WAAanF,EAAI+E,UAChBlkH,EAGF6F,KAAKse,MAAMnkB,EAASokH,GAAYA,EAGzC,OAAO,EAxKWM,CAAuBF,EAAQJ,IAI/CniE,EAAK,8BAA8B91C,OAAOmgB,GAAWngB,OAAOg4G,EAAO,yBAjCjElF,EAAM9kG,MAAQ,OAPd8kG,EAAM9kG,MAAQna,GAgDlBkkH,QAAS,WACP,OAAOjF,EAAM9kG,OAAS,GAQxB8O,MAAO,WACL,OAAOg2F,EAAM9kG,OAAS9X,KAAKrC,QAS7BwiH,SAAU,WACR,IAAIl2F,EAAY3qB,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,QAAKyO,EAEpF,OAAKkc,IAIAjqB,KAAKm4D,KAKQ,OAAdluC,EAC6B,MAAxBjqB,KAAKs2B,KAAKrM,WAAyC,MAApBjqB,KAAKs2B,KAAKwrF,MAIhC,OAAd73F,EAC6B,MAAxBjqB,KAAKs2B,KAAKrM,WAAyC,MAApBjqB,KAAKs2B,KAAKwrF,MAG3C9hH,KAAKs2B,KAAKrM,YAAcA,GAjBtBjqB,KAAKm4D,IAyBhB8pD,QAAS,WACP,OAAOrF,EAAM0D,OAAO,WAAwC,WAA3B1D,EAAMJ,SAASxB,SAAwB4B,EAAMJ,SAASv2D,QAmK3F,OArDAs2D,EAAOO,EAAK,OAAQ,CAMlB/gH,IAAK,WACH,OAAOiE,KAAKy4D,IAQd53D,IAAK,SAAa1E,GAChB,IAAI8oD,EAAO9oD,EAAMs7B,OAAO,GACxBz3B,KAAKy4D,GAAK,CACRxuC,UAAW9tB,EAAMs7B,OAAO,EAAG,GAC3BqqF,MAAO78D,EAAOk3D,EAAMl3D,GAAQk3D,EAAMl3D,GAAQA,EAAO,MAIvDs3D,EAAOO,EAAK,SAAU,CAOpB/gH,IAAK,WACH,IAAIygH,EAAWI,EAAMJ,SACjB7+G,EAASugH,EAAWqB,KAAKl/F,OAAO1iB,OAIpC,OAAIqC,KAAKiiH,UACAtkH,EAAS,GAAKw+G,EAAMK,EAASzB,SAAW,GAAKoB,EAAMK,EAASxB,SAG9Dr9G,EAAS,KAGpB4+G,EAAOO,EAAK,SAAU,CAMpB/gH,IAAK,WACH,OAAOiE,KAAKm4D,MAGT2kD,GAw+EPwF,MAnmCF,SAAgB1F,EAAOsB,EAAYsB,GAMjC,IAAI+B,EAAS,IAAI1D,EACb0E,EAAW,EACXC,EAAc,EACdC,EAAc,EACd5M,GAAW,EACXjhG,IAAUkqG,IAAoB,CAChCtoF,SAAS,GAEP8rF,EAAQ,CAMVrkB,MAAO,WACLj+F,KAAK0iH,kBASPrsF,MAAO,SAAe9vB,GACpB,IAAKsvG,IAAa+G,EAAM/G,SAAU,CAChC71G,KAAKogC,UACL,IAAIuiF,EAAQ3iH,KAAKuuB,QAAQhoB,GACzBg8G,EAAW,KACXC,EAAcrG,EAAMwG,EAAMpzF,OAC1BkzF,EAActG,EAAMwG,EAAMlzF,OAC1BzvB,KAAK4iH,gBACL5iH,KAAK6iH,eACLrD,EAAOr0G,KAAK,iBAShBmrB,KAAM,SAAc/vB,GAClB,IAAKq2G,EAAM/G,SAAU,CACnB,IAAIkL,EAAkBnE,EAAMJ,SACxBvrF,EAAa8vF,EAAgB9vF,WAC7BY,EAAakvF,EAAgBlvF,WAC7B5e,EAAU8tG,EAAgB9tG,QAC1B0vG,EAAQ3iH,KAAKuuB,QAAQhoB,GACrBu8G,EAAU3G,EAAMwG,EAAMpzF,OAASizF,EAC/BO,EAAU5G,EAAMwG,EAAMlzF,OAASgzF,EAC/BO,EAAQx/G,KAAKogB,IAAIk/F,GAAW,GAC5BG,EAAQz/G,KAAKogB,IAAIm/F,GAAW,GAC5BG,EAAkB1/G,KAAK4tB,KAAK4xF,EAAQC,GACpCE,EAAgB3/G,KAAK4tB,KAAK6xF,GAG9B,KAAe,KAFfV,EAAW/+G,KAAK4/G,KAAKD,EAAgBD,IAEhB1/G,KAAK+tB,GAAKN,GAM7B,OAAO,EALP1qB,EAAMmrB,kBACNwsF,EAAWlB,KAAKD,KAAK+F,EAhyEtBv+G,WAgyEwCstB,IACvCqsF,EAAWqB,KAAKx5G,KAAKoN,UAAUC,IAAIH,EAAQ6oG,UAC3C0D,EAAOr0G,KAAK,gBAalBorB,IAAK,SAAahwB,GAChB,IAAKq2G,EAAM/G,SAAU,CACnB,IAAIwN,EAAmBzG,EAAMJ,SACzBnB,EAAWgI,EAAiBhI,SAC5BpqF,EAAaoyF,EAAiBpyF,WAC9Bhe,EAAUowG,EAAiBpwG,QAC3B0vG,EAAQ3iH,KAAKuuB,QAAQhoB,GACrBglB,EAAYvrB,KAAKurB,UAAUhlB,GAC3B+8G,EAAgBX,EAAMpzF,MAAQizF,EAC9Be,EAAsB,IAAXhB,EAAiB/+G,KAAK+tB,GACrCvxB,KAAKmgC,SAEDmjF,EAAgB/3F,GAAag4F,EAAWtyF,EAC1CitF,EAAWpB,IAAIC,KAAKmB,EAAWE,UAAUjyG,QAAQ,GAAGrC,OAAOuxG,EAAU,OAC5DiI,GAAiB/3F,GAAag4F,EAAWtyF,EAClDitF,EAAWpB,IAAIC,KAAKmB,EAAWE,UAAUjyG,QAAQ,GAAGrC,OAAOuxG,EAAU,OAGrE6C,EAAWlB,KAAKD,OAGlBmB,EAAWqB,KAAKx5G,KAAKoN,UAAU3Q,OAAOyQ,EAAQ6oG,UAC9C97G,KAAKwjH,kBACLxjH,KAAKyjH,iBACLjE,EAAOr0G,KAAK,eAShBu3G,eAAgB,WACd,IAAI3/G,EAAQ/C,KAER0jH,EAAmB9G,EAAMJ,SACzBrB,EAAiBuI,EAAiBvI,eAClCC,EAAgBsI,EAAiBtI,cAEjCD,GACFoG,EAAO12G,GAAGk0G,GAAa,GAAIb,EAAWqB,KAAKrvC,SAAS,SAAU3pE,GAC5DxD,EAAMszB,MAAM9vB,KACXqO,GAGDwmG,GACFmG,EAAO12G,GAAGk0G,GAAa,GAAIb,EAAWqB,KAAKrvC,SAAS,SAAU3pE,GAC5DxD,EAAMszB,MAAM9vB,KACXqO,IASP+uG,iBAAkB,WAChBpC,EAAOv2G,IAAI+zG,GAAa,GAAIb,EAAWqB,KAAKrvC,QAASt7D,GACrD2sG,EAAOv2G,IAAI+zG,GAAa,GAAIb,EAAWqB,KAAKrvC,QAASt7D,IAQvDguG,cAAe,WACb,IAAIpS,EAASxwG,KAEbuhH,EAAO12G,GAAGm0G,GAAad,EAAWqB,KAAKrvC,QAASwrC,GAAS,SAAUn1G,GACjEiqG,EAAOl6E,KAAK/vB,KACXq2G,EAAMJ,SAASd,UAAW9mG,IAQ/B4uG,gBAAiB,WACfjC,EAAOv2G,IAAIg0G,GAAad,EAAWqB,KAAKrvC,QAASt7D,IAQnDiuG,aAAc,WACZ,IAAIhS,EAAS7wG,KAEbuhH,EAAO12G,GAAGo0G,GAAYf,EAAWqB,KAAKrvC,SAAS,SAAU3pE,GACvDsqG,EAAOt6E,IAAIhwB,OASfk9G,eAAgB,WACdlC,EAAOv2G,IAAIi0G,GAAYf,EAAWqB,KAAKrvC,UAQzC3hD,QAAS,SAAiBhoB,GACxB,OAAI24G,GAAap3G,QAAQvB,EAAMqoB,OAAS,EAC/BroB,EAGFA,EAAMgoB,QAAQ,IAAMhoB,EAAMuqB,eAAe,IAQlDvF,UAAW,SAAmBhlB,GAC5B,IAAIi2G,EAAWI,EAAMJ,SAErB,OAAI0C,GAAap3G,QAAQvB,EAAMqoB,OAAS,EAC/B4tF,EAASpB,cAGXoB,EAASrB,gBAQlBh7E,OAAQ,WAGN,OAFA01E,GAAW,EACXqI,EAAWz0B,WAAWtpD,SACfngC,MAQTogC,QAAS,WAGP,OAFAy1E,GAAW,EACXqI,EAAWz0B,WAAWrpD,UACfpgC,OAsBX,OAdAw/G,EAAO30G,GAAG,eAAe,WACvBqzG,EAAWqB,KAAKx5G,KAAKoN,UAAUC,IAAIwpG,EAAMJ,SAASvpG,QAAQ4oG,cAO5D2D,EAAO30G,GAAG,WAAW,WACnBy3G,EAAMqB,mBACNrB,EAAMkB,kBACNlB,EAAMmB,iBACNlC,EAAO9mF,aAEF6nF,GAo2BPsB,OAj2BF,SAAiBhH,EAAOsB,EAAYsB,GAMlC,IAAI+B,EAAS,IAAI1D,EACb+F,EAAS,CAMX3lB,MAAO,WACLj+F,KAAKtD,QAQPA,KAAM,WACJ6kH,EAAO12G,GAAG,YAAaqzG,EAAWqB,KAAKrvC,QAASlwE,KAAK6jH,YAQvD96B,OAAQ,WACNw4B,EAAOv2G,IAAI,YAAakzG,EAAWqB,KAAKrvC,UAQ1C2zC,UAAW,SAAmBt9G,GAC5BA,EAAM+pB,mBAYV,OAJAkvF,EAAO30G,GAAG,WAAW,WACnB+4G,EAAO76B,SACPw4B,EAAO9mF,aAEFmpF,GA6yBPE,QA1yBF,SAAkBlH,EAAOsB,EAAYsB,GAMnC,IAAI+B,EAAS,IAAI1D,EASb1hD,GAAW,EASX4nD,GAAY,EACZD,EAAU,CAMZ7lB,MAAO,WAOLj+F,KAAKswE,GAAK4tC,EAAWqB,KAAKrvC,QAAQhgE,iBAAiB,KACnDlQ,KAAKtD,QAQPA,KAAM,WACJ6kH,EAAO12G,GAAG,QAASqzG,EAAWqB,KAAKrvC,QAASlwE,KAAK+vC,QAQnDg5C,OAAQ,WACNw4B,EAAOv2G,IAAI,QAASkzG,EAAWqB,KAAKrvC,UAStCngC,MAAO,SAAexpC,GAChBw9G,IACFx9G,EAAMmrB,kBACNnrB,EAAM+pB,mBASV0zF,OAAQ,WAGN,GAFAD,GAAY,GAEP5nD,EAAU,CACb,IAAK,IAAIjhE,EAAI,EAAGA,EAAI8E,KAAK22G,MAAMh5G,OAAQzC,IACrC8E,KAAK22G,MAAMz7G,GAAGqtC,WAAY,EAG5B4zB,GAAW,EAGb,OAAOn8D,MAQT87B,OAAQ,WAGN,GAFAioF,GAAY,EAER5nD,EAAU,CACZ,IAAK,IAAIjhE,EAAI,EAAGA,EAAI8E,KAAK22G,MAAMh5G,OAAQzC,IACrC8E,KAAK22G,MAAMz7G,GAAGqtC,WAAY,EAG5B4zB,GAAW,EAGb,OAAOn8D,OAyCX,OAtCAu8G,EAAOuH,EAAS,QAAS,CAMvB/nH,IAAK,WACH,OAAO+nH,EAAQxzC,MAQnBkvC,EAAO30G,GAAG,cAAc,WACtBi5G,EAAQE,YAOVxE,EAAO30G,GAAG,aAAa,WACrBqzG,EAAWz0B,WAAWya,OAAM,WAC1B4f,EAAQhoF,eAQZ0jF,EAAO30G,GAAG,WAAW,WACnBi5G,EAAQhoF,SACRgoF,EAAQ/6B,SACRw4B,EAAO9mF,aAEFqpF,GAspBPG,SA/oBF,SAAmBrH,EAAOsB,EAAYsB,GAMpC,IAAI+B,EAAS,IAAI1D,EACbjpG,IAAUkqG,IAAoB,CAChCtoF,SAAS,GAEPytF,EAAW,CAObhmB,MAAO,WAOLj+F,KAAKo4D,GAAK8lD,EAAWqB,KAAKx5G,KAAKmK,iBA5BlB,mCAoCblQ,KAAKi3D,GAAKinD,EAAWqB,KAAKx5G,KAAKmK,iBAnCb,+BA2ClBlQ,KAAKkkH,eAAiB,CACpB/G,SAAUe,EAAWqB,KAAKx5G,KAAKmK,iBAAiBivG,IAChDzmG,KAAMwlG,EAAWqB,KAAKx5G,KAAKmK,iBAAiBkvG,KAE9Cp/G,KAAKmkH,eAQPC,UAAW,WACT,IAAK,IAAIlpH,EAAI,EAAGA,EAAI8E,KAAKo4D,GAAGz6D,OAAQzC,IAClC8E,KAAK+S,SAAS/S,KAAKo4D,GAAGl9D,GAAGoV,WAS7B+zG,aAAc,WACZ,IAAK,IAAInpH,EAAI,EAAGA,EAAI8E,KAAKo4D,GAAGz6D,OAAQzC,IAClC8E,KAAKqT,YAAYrT,KAAKo4D,GAAGl9D,GAAGoV,WAUhCyC,SAAU,SAAkBuxG,GAC1B,IAAI9H,EAAWI,EAAMJ,SACjB3zD,EAAOy7D,EAAS1H,EAAM9kG,OAErB+wC,IAILA,EAAK11C,UAAUC,IAAIopG,EAASvpG,QAAQipG,IAAI9/C,QACxCuhD,EAAS90D,GAAMrrD,SAAQ,SAAUkkH,GAC/BA,EAAQvuG,UAAU3Q,OAAOg6G,EAASvpG,QAAQipG,IAAI9/C,aAUlD/oD,YAAa,SAAqBixG,GAChC,IAAIz7D,EAAOy7D,EAAS1H,EAAM9kG,OAC1B+wC,SAA4CA,EAAK11C,UAAU3Q,OAAOo6G,EAAMJ,SAASvpG,QAAQipG,IAAI9/C,SAM/FmoD,cAAe,WACb,IAAI3H,EAAMJ,SAASjB,OAAnB,CAIA,IAAI7iG,EAAOurG,EAASC,eAAexrG,KAC/BykG,EAAW8G,EAASC,eAAe/G,SACvCn9G,KAAKwkH,gBAAgB9rG,EAAMykG,GAEP,IAAhBP,EAAM9kG,OACR9X,KAAKykH,aAAatH,GAGhBP,EAAM9kG,QAAUomG,EAAWpB,IAAIn/G,QACjCqC,KAAKykH,aAAa/rG,KAStB8rG,gBAAiB,WAGf,IAFA,IAAIhI,EAAWI,EAAMJ,SAEZkI,EAAOplH,UAAU3B,OAAQgnH,EAAQ,IAAIx9G,MAAMu9G,GAAOt8D,EAAO,EAAGA,EAAOs8D,EAAMt8D,IAChFu8D,EAAMv8D,GAAQ9oD,UAAU8oD,GAG1Bu8D,EAAMnnH,SAAQ,SAAUirD,GACtBgB,EAAQhB,GAAMjrD,SAAQ,SAAUoG,GAC9BA,EAAQuP,UAAU3Q,OAAOg6G,EAASvpG,QAAQqxC,MAAMuxD,iBAUtD4O,aAAc,WAGZ,IAFA,IAAIjI,EAAWI,EAAMJ,SAEZoI,EAAQtlH,UAAU3B,OAAQgnH,EAAQ,IAAIx9G,MAAMy9G,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACrFF,EAAME,GAASvlH,UAAUulH,GAG3BF,EAAMnnH,SAAQ,SAAUirD,GACtBgB,EAAQhB,GAAMjrD,SAAQ,SAAUoG,GAC9BA,EAAQuP,UAAUC,IAAIopG,EAASvpG,QAAQqxC,MAAMuxD,iBAUnDsO,YAAa,WACX,IAAK,IAAIjpH,EAAI,EAAGA,EAAI8E,KAAKi3D,GAAGt5D,OAAQzC,IAClC8E,KAAKtD,KAAKsD,KAAKi3D,GAAG/7D,GAAGoV,WASzBw0G,eAAgB,WACd,IAAK,IAAI5pH,EAAI,EAAGA,EAAI8E,KAAKi3D,GAAGt5D,OAAQzC,IAClC8E,KAAK+oF,OAAO/oF,KAAKi3D,GAAG/7D,GAAGoV,WAU3B5T,KAAM,SAAck4G,GAClB,IAAK,IAAI15G,EAAI,EAAGA,EAAI05G,EAASj3G,OAAQzC,IACnCqmH,EAAO12G,GAAG,QAAS+pG,EAAS15G,GAAI8E,KAAK+vC,OACrCwxE,EAAO12G,GAAG,aAAc+pG,EAAS15G,GAAI8E,KAAK+vC,MAAOn7B,IAUrDm0E,OAAQ,SAAgB6rB,GACtB,IAAK,IAAI15G,EAAI,EAAGA,EAAI05G,EAASj3G,OAAQzC,IACnCqmH,EAAOv2G,IAAI,CAAC,QAAS,cAAe4pG,EAAS15G,KAYjD60C,MAAO,SAAexpC,GACfu4G,IAAoC,eAAfv4G,EAAMqoB,MAC9BroB,EAAM+pB,iBAGR,IAAIrG,EAAY1jB,EAAMq1E,cAAc93E,aAAa,kBACjDo6G,EAAWpB,IAAIC,KAAKmB,EAAWE,UAAUjyG,QAAQ8d,MAuCrD,OApCAsyF,EAAO0H,EAAU,QAAS,CAMxBloH,IAAK,WACH,OAAOkoH,EAAShtD,MASpBuoD,EAAO30G,GAAG,CAAC,cAAe,eAAe,WACvCo5G,EAASG,eAMX5E,EAAO30G,GAAG,CAAC,cAAe,QAAQ,WAChCo5G,EAASM,mBAOX/E,EAAO30G,GAAG,WAAW,WACnBo5G,EAASa,iBACTb,EAASI,eACT9C,EAAO9mF,aAEFwpF,GA6YPrlF,SA1YF,SAAmBg+E,EAAOsB,EAAYsB,GAMpC,IAAI+B,EAAS,IAAI1D,EACbj/E,EAAW,CAMbq/D,MAAO,WACD2e,EAAMJ,SAASv9E,UACjBj/B,KAAKtD,QASTA,KAAM,WACJ6kH,EAAO12G,GAAG,QAAS3L,SAAUc,KAAK+kH,QAQpCh8B,OAAQ,WACNw4B,EAAOv2G,IAAI,QAAS9L,WAStB6lH,MAAO,SAAex+G,GACpB,IAAI80G,EAAWuB,EAAMJ,SAASnB,SAM1B,CAAC,aAAc,aAAapqE,SAAS1qC,EAAMsI,OAC7CqvG,EAAWpB,IAAIC,KAAKmB,EAAWE,UAAUjyG,QAAQ,GAAGrC,OAAOuxG,GAAUvxG,OANpD,CACjBk7G,WAAY,IACZC,UAAW,KAI8E1+G,EAAMsI,WA6BrG,OAnBA2wG,EAAO30G,GAAG,CAAC,UAAW,WAAW,WAC/B+zB,EAASmqD,YAOXy2B,EAAO30G,GAAG,UAAU,WAClB+zB,EAASq/D,WAOXuhB,EAAO30G,GAAG,WAAW,WACnB02G,EAAO9mF,aAEFmE,GA2TP6S,SAxTF,SAAmBmrE,EAAOsB,EAAYsB,GAMpC,IAAI+B,EAAS,IAAI1D,EACbpsE,EAAW,CAMbwsD,MAAO,WACLj+F,KAAKmgC,SACLngC,KAAKq2B,QAEDumF,EAAMJ,SAAStB,YACjBl7G,KAAKtD,QASTyjC,OAAQ,WACNngC,KAAK84D,IAAK,GAQZ14B,QAAS,WACPpgC,KAAK84D,IAAK,GASZziC,MAAO,WACL,IAAItzB,EAAQ/C,KAEPA,KAAK84D,KAIV94D,KAAKmgC,SAEDy8E,EAAMJ,SAAS1nF,UACbz3B,EAAY2C,KAAKmwD,MACnBnwD,KAAKmwD,GAAK8mD,aAAY,WACpBl0G,EAAMkgC,OAENi7E,EAAWpB,IAAIC,KAAK,KAEpBh6G,EAAMszB,QAENmpF,EAAOr0G,KAAK,cACXnL,KAAKqyB,SAUd4Q,KAAM,WACJjjC,KAAKmwD,GAAK+mD,cAAcl3G,KAAKmwD,KAQ/BzzD,KAAM,WACJ,IAAI8zG,EAASxwG,KAEbuhH,EAAO12G,GAAG,YAAaqzG,EAAWqB,KAAKx5G,MAAM,WACvCyqG,EAAO13C,IACT03C,EAAOvtE,UAGXs+E,EAAO12G,GAAG,WAAYqzG,EAAWqB,KAAKx5G,MAAM,WACtCyqG,EAAO13C,IACT03C,EAAOn6E,YAUb0yD,OAAQ,WACNw4B,EAAOv2G,IAAI,CAAC,YAAa,YAAakzG,EAAWqB,KAAKx5G,QAkF1D,OA/EAw2G,EAAO9qE,EAAU,OAAQ,CAOvB11C,IAAK,WACH,IAAI+4B,EAAWopF,EAAWqB,KAAKl/F,OAAOu8F,EAAM9kG,OAAOhU,aAAa,uBAEhE,OACSq4G,EADLrnF,GAIS8nF,EAAMJ,SAAS1nF,aAShC0qF,EAAO30G,GAAG,CAAC,UAAW,WAAW,WAC/B4mC,EAASs3C,YAWXy2B,EAAO30G,GAAG,CAAC,aAAc,cAAe,WAAW,WACjD4mC,EAASxO,UAEXu8E,EAAO30G,GAAG,CAAC,QAAS,YAAY,WAC9B4mC,EAASrR,UACTqR,EAASxO,UASXu8E,EAAO30G,GAAG,CAAC,YAAa,cAAc,WACpC4mC,EAASpb,WASXmpF,EAAO30G,GAAG,CAAC,SAAS,WAClB4mC,EAAStR,SACTsR,EAASpb,WAOXmpF,EAAO30G,GAAG,UAAU,WAClB4mC,EAASwsD,WAOXuhB,EAAO30G,GAAG,WAAW,WACnB02G,EAAO9mF,aAEFgX,GA8HPyzE,YA1GF,SAAsBtI,EAAOsB,EAAYsB,GAMvC,IAAI+B,EAAS,IAAI1D,EAObrB,EAAWI,EAAMJ,SASjBllF,EAAS+nF,GAAgB7C,EAAS5nF,aAOlC7zB,EAAWnF,OAAO4Y,OAAO,GAAIgoG,GAC7B0I,EAAc,CAOhB5/G,MAAO,SAAegyB,GACpB,QAAiC,IAAtBr4B,OAAOiT,WAChB,IAAK,IAAIqlB,KAASD,EAChB,GAAIA,EAAOv6B,eAAew6B,IACpBt4B,OAAOiT,WAAW,eAAepI,OAAOytB,EAAO,QAAQ5f,QACzD,OAAO2f,EAAOC,GAMtB,OAAOx2B,IAkCX,OA1BAnF,OAAO4Y,OAAOgoG,EAAU0I,EAAY5/G,MAAMgyB,IAM1CiqF,EAAO12G,GAAG,SAAU5L,OAAQy8G,GAAS,WACnCkB,EAAMJ,SAAW/2C,EAAa+2C,EAAU0I,EAAY5/G,MAAMgyB,MACzDslF,EAAMJ,SAASd,WAMlB8D,EAAO30G,GAAG,UAAU,WAClBysB,EAAS+nF,GAAgB/nF,GACzBv2B,EAAWnF,OAAO4Y,OAAO,GAAIgoG,MAO/BgD,EAAO30G,GAAG,WAAW,WACnB02G,EAAOv2G,IAAI,SAAU/L,WAEhBimH,IA2BLtI,GAAqB,SAAUuI,IA5rHnC,SAAmBC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIl/G,UAAU,sDAGtBi/G,EAAStoH,UAAYlB,OAAOY,OAAO6oH,GAAcA,EAAWvoH,UAAW,CACrEgB,YAAa,CACX3B,MAAOipH,EACPxpE,UAAU,EACVj/B,cAAc,KAGd0oG,GAAYvL,EAAgBsL,EAAUC,GAirH1CC,CAAU1I,EAAOuI,GAEjB,IAAII,EAASrL,EAAa0C,GAE1B,SAASA,IAGP,OAFAlD,EAAgB15G,KAAM48G,GAEf2I,EAAOv+G,MAAMhH,KAAMV,WAW5B,OARAq6G,EAAaiD,EAAO,CAAC,CACnBngH,IAAK,QACLN,MAAO,WACL,IAAIkgH,EAAa/8G,UAAU3B,OAAS,QAAsBoQ,IAAjBzO,UAAU,GAAmBA,UAAU,GAAK,GACrF,OAAOs7G,EAAKhB,EAAgBgD,EAAM9/G,WAAY,QAASkD,MAAM3E,KAAK2E,KAAMpE,OAAO4Y,OAAO,GAAI8qG,GAAYjD,QAInGO,EAnBgB,CAoBvBD,GCvyHF,MAAM6I,GAEJ1nH,cAEEkC,KAAKqpB,SAAW,IAChBrpB,KAAK40B,YAAc,KACnB50B,KAAKylH,UAAY,KACjBzlH,KAAK0lH,cAAgB,CAEnBC,UAAW,CACTC,GAAIJ,GAA2BK,UAAU,wBACzCC,GAAIN,GAA2BK,UAAU,+BACzCE,GAAIP,GAA2BK,UAAU,+BACzCG,GAAIR,GAA2BK,UAAU,+BACzCI,GAAIT,GAA2BK,UAAU,sBAE3CK,WAAY,CACVC,MAAOX,GAA2BK,UAAU,iCAC5CO,OAAQZ,GAA2BK,UAAU,kCAC7CQ,MAAOb,GAA2BK,UAAU,iCAC5CS,OAAQd,GAA2BK,UAAU,oCAKjD3mH,SAASgP,iBAAiB,mBAAoB,KAC5ChP,SAAS2Q,KAAK0I,YAAYitG,GAA2BK,UAAU,yBAI1C,OAAnB7lH,KAAKylH,WACPzlH,KAAK2d,IAAI,aASb,iBAAiBxK,GACf,MAAMa,EAAK9U,SAASmR,cAAc,OAElC,OADA2D,EAAGvD,aAAa,QAAS0C,GAClBa,EAQT,iBAAiBo7F,GACf,SAAUA,EAAK34F,aAAe24F,EAAK1qG,cAAgB0qG,EAAKmX,iBAAiB5oH,QAQ3E,0BAA0Bi3B,GACxB11B,SAASgP,iBAAiB,mBAAoB,KAC5C,MAAMiwF,EAAYj/F,SAAS8E,cAAc,uBACzCpI,OAAO2T,KAAKqlB,GAAap3B,QAASs3F,IAChCqJ,EAAU5lF,YAAYqc,EAAYkgE,QAUxCjuF,GAAGhH,GACD,OAAI2lH,GAA2BgB,eAAe3mH,GACrCG,KAAKymH,qBAAqB5mH,GAE5BG,KAAK40B,YAAY/0B,IAAQ2lH,GAA2BkB,UAAU1mH,KAAK40B,YAAY/0B,IAQxF,sBAAsBA,GACpB,MAA0B,MAAlBA,EAAIuC,OAAO,IAAgC,MAAlBvC,EAAIuC,OAAO,GAQ9CukH,YAAY/xF,GACV,IAAItb,GAAQ,EACZ,IAAK,IAAIpe,EAAI,EAAGA,EAAI05B,EAAYj3B,OAAQzC,IAClCsqH,GAA2BkB,UAAU1mH,KAAK40B,YAAYA,EAAY15B,OACpEoe,GAAQ,GAGZ,OAAOA,EASTqE,IAAIipG,EAAehyF,GACjB50B,KAAKylH,UAAYmB,EAAcrhH,cAER,cAAnBvF,KAAKylH,WAAgD,eAAnBzlH,KAAKylH,UACzCzlH,KAAK40B,YAAc50B,KAAK0lH,cAAc1lH,KAAKylH,WAE3CzlH,KAAK40B,YAAcA,EAErB4wF,GAA2BqB,mBAAmB7mH,KAAK40B,aAOrDqP,UACE,IAAIxoC,EAAO,eAMX,OALAG,OAAO2T,KAAKvP,KAAK40B,aAAap3B,QAASs3F,IACjC90F,KAAK6G,GAAGiuF,KACVr5F,EAAOq5F,KAGJr5F,EAQTw/D,QAAQv9D,EAAIopH,GACV,IAAIC,EACJ,MAAO,KACLv9G,aAAau9G,GACbA,EAAQ3jH,WAAW,KACjB1F,KACCopH,EAAI9mH,KAAKi9G,WAShB,uBAAuBp9G,GAErB,MAAMmnH,EAAWnnH,EAAIuC,OAAO,GAEtB6kH,EAA6B,MAAlBpnH,EAAIuC,OAAO,GAKtB0V,EAAQ,GAAKmvG,EAAU,EAAI,GAMjC,MAAO,CACLD,WACAC,UACAC,eALqBrnH,EAAIqC,MAAM4V,IAcnC2uG,qBAAqB5mH,GACnB,MAAMmiE,EAAawjD,GAA2B2B,gBAAgBtnH,GAGxDunH,EAAiBxrH,OAAO2T,KAAKvP,KAAK40B,aAGlC01D,EAAM88B,EAAet/G,QAAQk6D,EAAWklD,gBAG9C,IAAa,IAAT58B,EAAY,CACd,IAAIj0D,EAAQ,EACRE,EAAM,EAWkB,MAAxByrC,EAAWglD,WACb3wF,EAAQ,EACRE,EAAMyrC,EAAWilD,QAAU38B,EAAM,EAAIA,GAYX,MAAxBtoB,EAAWglD,WACb3wF,EAAQ2rC,EAAWilD,QAAU38B,EAAMA,EAAM,EACzC/zD,OAAMxoB,GAGR,MAAMs5G,EAAsBD,EAAellH,MAAMm0B,EAAOE,GACxD,OAAOv2B,KAAK2mH,YAAYU,GAE1B,OAAO,GAII7B,UC1NA8B,OAjBO,CAKpBC,gBAAiBA,KACf,IAAIC,GAAc,EAOlB,MANgB,CAAC,OAAQ,UAAW,SAC5BhqH,QAASnB,IACX6C,SAAS2Q,KAAKsD,UAAUI,SAAS,YAAYlX,KAC/CmrH,EAAcnrH,KAGXmrH,IClBX,MAAMC,GAAiB,CAAEzmH,QAAS,IAAKitG,QAAQ,GAqBhCyZ,OAnBO,CACpBC,UAAUlsH,GACD4E,IAAQkC,QAAQ9G,GAEzBmsH,UAAUnsH,EAAMU,EAAO09B,GACrB,MAAMviB,EAAQ,IAAKmwG,MAAmB5tF,GAEtC,OAAKp+B,EAIAU,EAIEkE,IAAQQ,IAAIpF,EAAMU,EAAOmb,GAHvBqoC,QAAQ7wC,MAAM,wBAJd6wC,QAAQ7wC,MAAM,yBCZZ,IACb+4G,OAAQ,sCACRC,OAAQ,sBACRC,WAAY,qCACZC,OAAQ,CACNC,EAAG,aACHC,EAAG,UACHC,EAAG,YCFQ,IACbC,eAAcA,IACLvjH,QAAQ6iH,GAAcC,UAAUU,GAAaN,aAQtDO,aAAaC,GACJ3c,IAAMztC,KAAKkqD,GAAaR,OAAQ,CAAEW,YAAaD,IACnDh6G,KAAKlB,GAAYA,EAAS7E,MAG/BigH,eACE,MAAMF,EAAQb,GAAcC,UAAUU,GAAaP,QACnD,OAAOS,GAAS9oG,SAAS8oG,EAAO,KAGlCG,cACE,MAAMH,EAAQvoH,KAAKyoH,eACnB,OAAOJ,GAAaL,OAAOO,IAQ7BI,qBAAqBltH,GACnB,MAAM8sH,EAAQ3sH,OAAO2T,KAAK84G,GAAaL,QACpC5uG,KAAKmvG,GAASF,GAAaL,OAAOO,KAAW9sH,GAChD,OAAO8sH,GAAS9oG,SAAS8oG,EAAO,MCnCrB,IACbjxG,MAAO,CACLsxG,eAAgB,CACdh6F,KAAMptB,OACNqnH,UAAU,EACVC,UAAWphH,GAAK9L,OAAOm8D,OAAOswD,IAAcp3E,SAASvpC,KAGzDk8D,SAAU,CAKRmlD,2BACE,MAAMC,EAAOhpH,KAAKgkG,OAAOzE,QAAQ0pB,QAGjC,OAFkBC,GAAcP,qBAAqBK,IAC/BE,GAAcP,qBAAqB3oH,KAAK4oH,kBAIlErlD,QAAS,CAIP4lD,iBACE,MAAMZ,EAAQW,GAAcP,qBAAqB3oH,KAAK4oH,gBAEjC,iBAAVL,EAKXW,GAAcZ,aAAaC,GACxBh6G,KAAK,EAAG66G,eACS,IAAZA,GACFppH,KAAKgkG,OAAO3C,OAAO,UAAWrhG,KAAK4oH,kBAPvCjpE,QAAQ7wC,MAAM,2C,uBCNtB,MAAMu6G,GAAW,IAAI7D,GACf8B,GAAgBgC,GAEtBpqH,SAASgP,iBAAiB,mBAAoB,KAE5Cg8F,MAGAqf","file":"js/foundation.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 42);\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","/*!\n * Bootstrap util.js v4.6.2 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :\n typeof define === 'function' && define.amd ? define(['jquery'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Util = factory(global.jQuery));\n})(this, (function ($) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n /**\n * Private TransitionEnd Helpers\n */\n\n var TRANSITION_END = 'transitionend';\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n function toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle: function handle(event) {\n if ($__default[\"default\"](event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n\n return undefined;\n }\n };\n }\n\n function transitionEndEmulator(duration) {\n var _this = this;\n\n var called = false;\n $__default[\"default\"](this).one(Util.TRANSITION_END, function () {\n called = true;\n });\n setTimeout(function () {\n if (!called) {\n Util.triggerTransitionEnd(_this);\n }\n }, duration);\n return this;\n }\n\n function setTransitionEndSupport() {\n $__default[\"default\"].fn.emulateTransitionEnd = transitionEndEmulator;\n $__default[\"default\"].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n }\n /**\n * Public Util API\n */\n\n\n var Util = {\n TRANSITION_END: 'bsTransitionEnd',\n getUID: function getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix));\n\n return prefix;\n },\n getSelectorFromElement: function getSelectorFromElement(element) {\n var selector = element.getAttribute('data-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href');\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n }\n\n try {\n return document.querySelector(selector) ? selector : null;\n } catch (_) {\n return null;\n }\n },\n getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var transitionDuration = $__default[\"default\"](element).css('transition-duration');\n var transitionDelay = $__default[\"default\"](element).css('transition-delay');\n var floatTransitionDuration = parseFloat(transitionDuration);\n var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n },\n reflow: function reflow(element) {\n return element.offsetHeight;\n },\n triggerTransitionEnd: function triggerTransitionEnd(element) {\n $__default[\"default\"](element).trigger(TRANSITION_END);\n },\n supportsTransitionEnd: function supportsTransitionEnd() {\n return Boolean(TRANSITION_END);\n },\n isElement: function isElement(obj) {\n return (obj[0] || obj).nodeType;\n },\n typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n }\n }\n },\n findShadowRoot: function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return Util.findShadowRoot(element.parentNode);\n },\n jQueryDetection: function jQueryDetection() {\n if (typeof $__default[\"default\"] === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n }\n\n var version = $__default[\"default\"].fn.jquery.split(' ')[0].split('.');\n var minMajor = 1;\n var ltMajor = 2;\n var minMinor = 9;\n var minPatch = 1;\n var maxMajor = 4;\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n }\n }\n };\n Util.jQueryDetection();\n setTransitionEndSupport();\n\n return Util;\n\n}));\n//# sourceMappingURL=util.js.map\n","module.exports = jQuery;","module.exports = require('./lib/axios');","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","/**\n * Swiper 5.4.5\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://swiperjs.com\n *\n * Copyright 2014-2020 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 16, 2020\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Swiper = factory());\n}(this, (function () { 'use strict';\n\n /**\n * SSR Window 2.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 12, 2020\n */\n /* eslint-disable no-param-reassign */\n function isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n }\n function extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n { target[key] = src[key]; }\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n }\n\n var doc = typeof document !== 'undefined' ? document : {};\n var ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n };\n extend(doc, ssrDocument);\n\n var win = typeof window !== 'undefined' ? window : {};\n var ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n };\n extend(win, ssrWindow);\n\n /**\n * Dom7 2.1.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: May 15, 2020\n */\n\n var Dom7 = function Dom7(arr) {\n var self = this;\n // Create array-like object\n for (var i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n };\n\n function $(selector, context) {\n var arr = [];\n var i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n var els;\n var tempParent;\n var html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [doc.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || doc).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) { arr.push(els[i]); }\n }\n }\n } else if (selector.nodeType || selector === win || selector === doc) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n }\n\n $.fn = Dom7.prototype;\n $.Class = Dom7;\n $.Dom7 = Dom7;\n\n function unique(arr) {\n var uniqueArray = [];\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) { uniqueArray.push(arr[i]); }\n }\n return uniqueArray;\n }\n\n // Classes and attributes\n function addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.add(classes[i]); }\n }\n }\n return this;\n }\n function removeClass(className) {\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.remove(classes[i]); }\n }\n }\n return this;\n }\n function hasClass(className) {\n if (!this[0]) { return false; }\n return this[0].classList.contains(className);\n }\n function toggleClass(className) {\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.toggle(classes[i]); }\n }\n }\n return this;\n }\n function attr(attrs, value) {\n var arguments$1 = arguments;\n\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) { return this[0].getAttribute(attrs); }\n return undefined;\n }\n\n // Set attrs\n for (var i = 0; i < this.length; i += 1) {\n if (arguments$1.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n }\n // eslint-disable-next-line\n function removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n }\n function data(key, value) {\n var el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute((\"data-\" + key));\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) { el.dom7ElementDataStorage = {}; }\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n }\n // Transforms\n // eslint-disable-next-line\n function transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n var elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n }\n function transition(duration) {\n if (typeof duration !== 'string') {\n duration = duration + \"ms\"; // eslint-disable-line\n }\n for (var i = 0; i < this.length; i += 1) {\n var elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n }\n // Events\n function on() {\n var assign;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n var eventType = args[0];\n var targetSelector = args[1];\n var listener = args[2];\n var capture = args[3];\n if (typeof args[1] === 'function') {\n (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]);\n targetSelector = undefined;\n }\n if (!capture) { capture = false; }\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) { return; }\n var eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) { listener.apply(target, eventData); }\n else {\n var parents = $(target).parents(); // eslint-disable-line\n for (var k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) { listener.apply(parents[k], eventData); }\n }\n }\n }\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n var events = eventType.split(' ');\n var j;\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) { el.dom7Listeners = {}; }\n if (!el.dom7Listeners[event]) { el.dom7Listeners[event] = []; }\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var event$1 = events[j];\n if (!el.dom7LiveListeners) { el.dom7LiveListeners = {}; }\n if (!el.dom7LiveListeners[event$1]) { el.dom7LiveListeners[event$1] = []; }\n el.dom7LiveListeners[event$1].push({\n listener: listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(event$1, handleLiveEvent, capture);\n }\n }\n }\n return this;\n }\n function off() {\n var assign;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n var eventType = args[0];\n var targetSelector = args[1];\n var listener = args[2];\n var capture = args[3];\n if (typeof args[1] === 'function') {\n (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]);\n targetSelector = undefined;\n }\n if (!capture) { capture = false; }\n\n var events = eventType.split(' ');\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = (void 0);\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n }\n function trigger() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var events = args[0].split(' ');\n var eventData = args[1];\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var evt = (void 0);\n try {\n evt = new win.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = doc.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter(function (data, dataIndex) { return dataIndex > 0; });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n }\n function transitionEnd(callback) {\n var events = ['webkitTransitionEnd', 'transitionend'];\n var dom = this;\n var i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) { return; }\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n }\n function outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n var styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n }\n function outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n var styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n }\n function offset() {\n if (this.length > 0) {\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = doc.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === win ? win.scrollY : el.scrollTop;\n var scrollLeft = el === win ? win.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n }\n function styles() {\n if (this[0]) { return win.getComputedStyle(this[0], null); }\n return {};\n }\n function css(props, value) {\n var i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) { return win.getComputedStyle(this[0], null).getPropertyValue(props); }\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (var prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n }\n // Iterate over the collection passing elements to `callback`\n function each(callback) {\n // Don't bother continuing without a callback\n if (!callback) { return this; }\n // Iterate over the current collection\n for (var i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n }\n function filter(callback) {\n var matchedItems = [];\n var dom = this;\n for (var i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) { matchedItems.push(dom[i]); }\n }\n return new Dom7(matchedItems);\n }\n // eslint-disable-next-line\n function html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n }\n // eslint-disable-next-line\n function text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n }\n function is(selector) {\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') { return false; }\n if (typeof selector === 'string') {\n if (el.matches) { return el.matches(selector); }\n else if (el.webkitMatchesSelector) { return el.webkitMatchesSelector(selector); }\n else if (el.msMatchesSelector) { return el.msMatchesSelector(selector); }\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) { return true; }\n }\n return false;\n } else if (selector === doc) { return el === doc; }\n else if (selector === win) { return el === win; }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) { return true; }\n }\n return false;\n }\n return false;\n }\n function index() {\n var child = this[0];\n var i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) { i += 1; }\n }\n return i;\n }\n return undefined;\n }\n // eslint-disable-next-line\n function eq(index) {\n if (typeof index === 'undefined') { return this; }\n var length = this.length;\n var returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) { return new Dom7([]); }\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n }\n function append() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var newChild;\n\n for (var k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = doc.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n }\n function prepend(newChild) {\n var i;\n var j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = doc.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n }\n function next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) { return new Dom7([this[0].nextElementSibling]); }\n return new Dom7([]);\n }\n return new Dom7([]);\n }\n function nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) { return new Dom7([]); }\n while (el.nextElementSibling) {\n var next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) { nextEls.push(next); }\n } else { nextEls.push(next); }\n el = next;\n }\n return new Dom7(nextEls);\n }\n function prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) { return new Dom7([el.previousElementSibling]); }\n return new Dom7([]);\n }\n return new Dom7([]);\n }\n function prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) { return new Dom7([]); }\n while (el.previousElementSibling) {\n var prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) { prevEls.push(prev); }\n } else { prevEls.push(prev); }\n el = prev;\n }\n return new Dom7(prevEls);\n }\n function parent(selector) {\n var parents = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) { parents.push(this[i].parentNode); }\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n }\n function parents(selector) {\n var parents = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n var parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) { parents.push(parent); }\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n }\n function closest(selector) {\n var closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n }\n function find(selector) {\n var foundElements = [];\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n }\n function children(selector) {\n var children = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].childNodes;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) { children.push(childNodes[j]); }\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n }\n function remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) { this[i].parentNode.removeChild(this[i]); }\n }\n return this;\n }\n function add() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var dom = this;\n var i;\n var j;\n for (i = 0; i < args.length; i += 1) {\n var toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n }\n\n var Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n data: data,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove,\n add: add,\n styles: styles,\n };\n\n Object.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = $.fn[methodName] || Methods[methodName];\n });\n\n var Utils = {\n deleteProps: function deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick: function nextTick(callback, delay) {\n if ( delay === void 0 ) delay = 0;\n\n return setTimeout(callback, delay);\n },\n now: function now() {\n return Date.now();\n },\n getTranslate: function getTranslate(el, axis) {\n if ( axis === void 0 ) axis = 'x';\n\n var matrix;\n var curTransform;\n var transformMatrix;\n\n var curStyle = win.getComputedStyle(el, null);\n\n if (win.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) { return a.replace(',', '.'); }).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new win.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m41; }\n // Crazy IE10 Matrix\n else if (matrix.length === 16) { curTransform = parseFloat(matrix[12]); }\n // Normal Browsers\n else { curTransform = parseFloat(matrix[4]); }\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m42; }\n // Crazy IE10 Matrix\n else if (matrix.length === 16) { curTransform = parseFloat(matrix[13]); }\n // Normal Browsers\n else { curTransform = parseFloat(matrix[5]); }\n }\n return curTransform || 0;\n },\n parseUrlQuery: function parseUrlQuery(url) {\n var query = {};\n var urlToParse = url || win.location.href;\n var i;\n var params;\n var param;\n var length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter(function (paramsPart) { return paramsPart !== ''; });\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject: function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend: function extend() {\n var args = [], len$1 = arguments.length;\n while ( len$1-- ) args[ len$1 ] = arguments[ len$1 ];\n\n var to = Object(args[0]);\n for (var i = 1; i < args.length; i += 1) {\n var nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n };\n\n var Support = (function Support() {\n return {\n touch: !!(('ontouchstart' in win) || (win.DocumentTouch && doc instanceof win.DocumentTouch)),\n\n pointerEvents: !!win.PointerEvent && ('maxTouchPoints' in win.navigator) && win.navigator.maxTouchPoints >= 0,\n\n observer: (function checkObserver() {\n return ('MutationObserver' in win || 'WebkitMutationObserver' in win);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n },\n });\n win.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in win;\n }()),\n };\n }());\n\n var SwiperClass = function SwiperClass(params) {\n if ( params === void 0 ) params = {};\n\n var self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach(function (eventName) {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n };\n\n var staticAccessors = { components: { configurable: true } };\n\n SwiperClass.prototype.on = function on (events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') { return self; }\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) { self.eventsListeners[event] = []; }\n self.eventsListeners[event][method](handler);\n });\n return self;\n };\n\n SwiperClass.prototype.once = function once (events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') { return self; }\n function onceHandler() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n };\n\n SwiperClass.prototype.off = function off (events, handler) {\n var self = this;\n if (!self.eventsListeners) { return self; }\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n };\n\n SwiperClass.prototype.emit = function emit () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var self = this;\n if (!self.eventsListeners) { return self; }\n var events;\n var data;\n var context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsListeners && self.eventsListeners[event]) {\n var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n };\n\n SwiperClass.prototype.useModulesParams = function useModulesParams (instanceParams) {\n var instance = this;\n if (!instance.modules) { return; }\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n };\n\n SwiperClass.prototype.useModules = function useModules (modulesParams) {\n if ( modulesParams === void 0 ) modulesParams = {};\n\n var instance = this;\n if (!instance.modules) { return; }\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach(function (modulePropName) {\n var moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n };\n\n staticAccessors.components.set = function (components) {\n var Class = this;\n if (!Class.use) { return; }\n Class.use(components);\n };\n\n SwiperClass.installModule = function installModule (module) {\n var params = [], len = arguments.length - 1;\n while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ];\n\n var Class = this;\n if (!Class.prototype.modules) { Class.prototype.modules = {}; }\n var name = module.name || (((Object.keys(Class.prototype.modules).length) + \"_\" + (Utils.now())));\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach(function (key) {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach(function (key) {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n };\n\n SwiperClass.use = function use (module) {\n var params = [], len = arguments.length - 1;\n while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ];\n\n var Class = this;\n if (Array.isArray(module)) {\n module.forEach(function (m) { return Class.installModule(m); });\n return Class;\n }\n return Class.installModule.apply(Class, [ module ].concat( params ));\n };\n\n Object.defineProperties( SwiperClass, staticAccessors );\n\n function updateSize () {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height,\n });\n }\n\n function updateSlides () {\n var swiper = this;\n var params = swiper.params;\n\n var $wrapperEl = swiper.$wrapperEl;\n var swiperSize = swiper.size;\n var rtl = swiper.rtlTranslate;\n var wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children((\".\" + (swiper.params.slideClass)));\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n function slidesForMargin(slideIndex) {\n if (!params.cssMode) { return true; }\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }\n\n var offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.snapGrid.length;\n\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) { slides.css({ marginLeft: '', marginTop: '' }); }\n else { slides.css({ marginRight: '', marginBottom: '' }); }\n\n var slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = (void 0);\n var column = (void 0);\n var row = (void 0);\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0\n ? params.slidesPerGroup\n : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = (slideIndexInGroup - row * columnsInGroup) + groupIndex * params.slidesPerGroup;\n\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide.css(\n (\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left')),\n (row !== 0 && params.spaceBetween) && (((params.spaceBetween) + \"px\"))\n );\n }\n if (slide.css('display') === 'none') { continue; } // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = win.getComputedStyle(slide[0], null);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide.outerWidth(true)\n : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width'));\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n var height = parseFloat(slideStyles.getPropertyValue('height'));\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n var boxSizing$1 = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing$1 && boxSizing$1 === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) { slideSize = Math.floor(slideSize); }\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) { slideSize = Math.floor(slideSize); }\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; }\n if (i === 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; }\n if (Math.abs(slidePosition) < 1 / 1000) { slidePosition = 0; }\n if (params.roundLengths) { slidePosition = Math.floor(slidePosition); }\n if ((index) % params.slidesPerGroup === 0) { snapGrid.push(slidePosition); }\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) { slidePosition = Math.floor(slidePosition); }\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) { snapGrid.push(slidePosition); }\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + \"px\") });\n }\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (var i$1 = 0; i$1 < snapGrid.length; i$1 += 1) {\n var slidesGridItem = snapGrid[i$1];\n if (params.roundLengths) { slidesGridItem = Math.floor(slidesGridItem); }\n if (snapGrid[i$1] < swiper.virtualSize + snapGrid[0]) { newSlidesGrid.push(slidesGridItem); }\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (var i$2 = 0; i$2 < snapGrid.length; i$2 += 1) {\n var slidesGridItem$1 = snapGrid[i$2];\n if (params.roundLengths) { slidesGridItem$1 = Math.floor(slidesGridItem$1); }\n if (snapGrid[i$2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem$1);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) { snapGrid = [0]; }\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) { slides.filter(slidesForMargin).css({ marginLeft: (spaceBetween + \"px\") }); }\n else { slides.filter(slidesForMargin).css({ marginRight: (spaceBetween + \"px\") }); }\n } else { slides.filter(slidesForMargin).css({ marginBottom: (spaceBetween + \"px\") }); }\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) { return -offsetBefore; }\n if (snap > maxSnap) { return maxSnap + offsetAfter; }\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var allSlidesSize$1 = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize$1 += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize$1 -= params.spaceBetween;\n if (allSlidesSize$1 < swiperSize) {\n var allSlidesOffset = (swiperSize - allSlidesSize$1) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Utils.extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) { swiper.checkOverflow(); }\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n }\n\n function updateAutoHeight (speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (index, slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) { break; }\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) { swiper.$wrapperEl.css('height', (newHeight + \"px\")); }\n }\n\n function updateSlidesOffset () {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n }\n\n function updateSlidesProgress (translate) {\n if ( translate === void 0 ) translate = (this && this.translate) || 0;\n\n var swiper = this;\n var params = swiper.params;\n\n var slides = swiper.slides;\n var rtl = swiper.rtlTranslate;\n\n if (slides.length === 0) { return; }\n if (typeof slides[0].swiperSlideOffset === 'undefined') { swiper.updateSlidesOffset(); }\n\n var offsetCenter = -translate;\n if (rtl) { offsetCenter = translate; }\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)\n || (slideAfter > 1 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n }\n\n function updateProgress (translate) {\n var swiper = this;\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = (swiper && swiper.translate && (swiper.translate * multiplier)) || 0;\n }\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress;\n var isBeginning = swiper.isBeginning;\n var isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) { swiper.updateSlidesProgress(translate); }\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n }\n\n function updateSlidesClasses () {\n var swiper = this;\n\n var slides = swiper.slides;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var activeIndex = swiper.activeIndex;\n var realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(((params.slideActiveClass) + \" \" + (params.slideNextClass) + \" \" + (params.slidePrevClass) + \" \" + (params.slideDuplicateActiveClass) + \" \" + (params.slideDuplicateNextClass) + \" \" + (params.slideDuplicatePrevClass)));\n\n var activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\"));\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\"))\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\"))\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n var nextSlide = activeSlide.nextAll((\".\" + (params.slideClass))).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n var prevSlide = activeSlide.prevAll((\".\" + (params.slideClass))).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + (nextSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + (nextSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + (prevSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + (prevSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n }\n\n function updateActiveIndex (newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid;\n var snapGrid = swiper.snapGrid;\n var params = swiper.params;\n var previousIndex = swiper.activeIndex;\n var previousRealIndex = swiper.realIndex;\n var previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') { activeIndex = 0; }\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; }\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n }\n\n function updateClickedSlide (e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest((\".\" + (params.slideClass)))[0];\n var slideFound = false;\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) { slideFound = true; }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n }\n\n var update = {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide,\n };\n\n function getTranslate (axis) {\n if ( axis === void 0 ) axis = this.isHorizontal() ? 'x' : 'y';\n\n var swiper = this;\n\n var params = swiper.params;\n var rtl = swiper.rtlTranslate;\n var translate = swiper.translate;\n var $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) { currentTranslate = -currentTranslate; }\n\n return currentTranslate || 0;\n }\n\n function setTranslate (translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperEl = swiper.wrapperEl;\n var progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform((\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\"));\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n }\n\n function minTranslate () {\n return (-this.snapGrid[0]);\n }\n\n function maxTranslate () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n }\n\n function translateTo (translate, speed, runCallbacks, translateBounds, internal) {\n var obj;\n\n if ( translate === void 0 ) translate = 0;\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n if ( translateBounds === void 0 ) translateBounds = true;\n var swiper = this;\n\n var params = swiper.params;\n var wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) { newTranslate = minTranslate; }\n else if (translateBounds && translate < maxTranslate) { newTranslate = maxTranslate; }\n else { newTranslate = translate; }\n\n // Update progress\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo(( obj = {}, obj[isH ? 'left' : 'top'] = -newTranslate, obj.behavior = 'smooth', obj ));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) { return; }\n if (e.target !== this) { return; }\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n }\n\n var translate = {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo,\n };\n\n function setTransition (duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n }\n\n function transitionStart (runCallbacks, direction) {\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var params = swiper.params;\n var previousIndex = swiper.previousIndex;\n if (params.cssMode) { return; }\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) { dir = 'next'; }\n else if (activeIndex < previousIndex) { dir = 'prev'; }\n else { dir = 'reset'; }\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n }\n\n function transitionEnd$1 (runCallbacks, direction) {\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var previousIndex = swiper.previousIndex;\n var params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) { return; }\n swiper.setTransition(0);\n\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) { dir = 'next'; }\n else if (activeIndex < previousIndex) { dir = 'prev'; }\n else { dir = 'reset'; }\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n }\n\n var transition$1 = {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd$1,\n };\n\n function slideTo (index, speed, runCallbacks, internal) {\n var obj;\n\n if ( index === void 0 ) index = 0;\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) { slideIndex = 0; }\n\n var params = swiper.params;\n var snapGrid = swiper.snapGrid;\n var slidesGrid = swiper.slidesGrid;\n var previousIndex = swiper.previousIndex;\n var activeIndex = swiper.activeIndex;\n var rtl = swiper.rtlTranslate;\n var wrapperEl = swiper.wrapperEl;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; }\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) { return false; }\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) { direction = 'next'; }\n else if (slideIndex < activeIndex) { direction = 'prev'; }\n else { direction = 'reset'; }\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo(( obj = {}, obj[isH ? 'left' : 'top'] = t, obj.behavior = 'smooth', obj ));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) { return; }\n if (e.target !== this) { return; }\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n }\n\n function slideToLoop (index, speed, runCallbacks, internal) {\n if ( index === void 0 ) index = 0;\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n }\n\n /* eslint no-unused-vars: \"off\" */\n function slideNext (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var params = swiper.params;\n var animating = swiper.animating;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating) { return false; }\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n }\n\n /* eslint no-unused-vars: \"off\" */\n function slidePrev (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var params = swiper.params;\n var animating = swiper.animating;\n var snapGrid = swiper.snapGrid;\n var slidesGrid = swiper.slidesGrid;\n var rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating) { return false; }\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) { return -Math.floor(Math.abs(val)); }\n return Math.floor(val);\n }\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) { return normalize(val); });\n var normalizedSlidesGrid = slidesGrid.map(function (val) { return normalize(val); });\n\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) { prevSnap = snap; }\n });\n }\n var prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) { prevIndex = swiper.activeIndex - 1; }\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n }\n\n /* eslint no-unused-vars: \"off\" */\n function slideReset (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n }\n\n /* eslint no-unused-vars: \"off\" */\n function slideToClosest (speed, runCallbacks, internal, threshold) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n if ( threshold === void 0 ) threshold = 0.5;\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n if ((translate - currentSnap) > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var currentSnap$1 = swiper.snapGrid[snapIndex];\n if ((translate - prevSnap) <= (currentSnap$1 - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n }\n\n function slideToClickedSlide () {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n if (params.loop) {\n if (swiper.animating) { return; }\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + (params.slideDuplicateClass) + \")\"))\n .eq(0)\n .index();\n\n Utils.nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + (params.slideDuplicateClass) + \")\"))\n .eq(0)\n .index();\n\n Utils.nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n\n var slide = {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide,\n };\n\n function loopCreate () {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n // Remove duplicated slides\n $wrapperEl.children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass))).remove();\n\n var slides = $wrapperEl.children((\".\" + (params.slideClass)));\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(doc.createElement('div')).addClass(((params.slideClass) + \" \" + (params.slideBlankClass)));\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children((\".\" + (params.slideClass)));\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) { params.loopedSlides = slides.length; }\n\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (index, el) {\n var slide = $(el);\n if (index < swiper.loopedSlides) { appendSlides.push(el); }\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) { prependSlides.push(el); }\n slide.attr('data-swiper-slide-index', index);\n });\n for (var i$1 = 0; i$1 < appendSlides.length; i$1 += 1) {\n $wrapperEl.append($(appendSlides[i$1].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (var i$2 = prependSlides.length - 1; i$2 >= 0; i$2 -= 1) {\n $wrapperEl.prepend($(prependSlides[i$2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n }\n\n function loopFix () {\n var swiper = this;\n\n swiper.emit('beforeLoopFix');\n\n var activeIndex = swiper.activeIndex;\n var slides = swiper.slides;\n var loopedSlides = swiper.loopedSlides;\n var allowSlidePrev = swiper.allowSlidePrev;\n var allowSlideNext = swiper.allowSlideNext;\n var snapGrid = swiper.snapGrid;\n var rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate();\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n var slideChanged$1 = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged$1 && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n swiper.emit('loopFix');\n }\n\n function loopDestroy () {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var params = swiper.params;\n var slides = swiper.slides;\n $wrapperEl.children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \",.\" + (params.slideClass) + \".\" + (params.slideBlankClass))).remove();\n slides.removeAttr('data-swiper-slide-index');\n }\n\n var loop = {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy,\n };\n\n function setGrabCursor (moving) {\n var swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) { return; }\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n }\n\n function unsetGrabCursor () {\n var swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) { return; }\n swiper.el.style.cursor = '';\n }\n\n var grabCursor = {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor,\n };\n\n function appendSlide (slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var params = swiper.params;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { $wrapperEl.append(slides[i]); }\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n }\n\n function prependSlide (slides) {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n var newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { $wrapperEl.prepend(slides[i]); }\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n }\n\n function addSlide (index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var params = swiper.params;\n var activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children((\".\" + (params.slideClass)));\n }\n var baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n var slidesBuffer = [];\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i$1 = 0; i$1 < slides.length; i$1 += 1) {\n if (slides[i$1]) { $wrapperEl.append(slides[i$1]); }\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var i$2 = 0; i$2 < slidesBuffer.length; i$2 += 1) {\n $wrapperEl.append(slidesBuffer[i$2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n }\n\n function removeSlide (slidesIndexes) {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var activeIndex = swiper.activeIndex;\n\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children((\".\" + (params.slideClass)));\n }\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); }\n if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; }\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); }\n if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; }\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n }\n\n function removeAllSlides () {\n var swiper = this;\n\n var slidesIndexes = [];\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n }\n\n var manipulation = {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides,\n };\n\n var Device = (function Device() {\n var platform = win.navigator.platform;\n var ua = win.navigator.userAgent;\n\n var device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!(win.cordova || win.phonegap),\n phonegap: !!(win.cordova || win.phonegap),\n electron: false,\n };\n\n var screenWidth = win.screen.width;\n var screenHeight = win.screen.height;\n\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n var edge = ua.indexOf('Edge/') >= 0;\n var firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n var windows = platform === 'Win32';\n var electron = ua.toLowerCase().indexOf('electron') >= 0;\n var macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n if (!ipad\n && macos\n && Support.touch\n && (\n (screenWidth === 1024 && screenHeight === 1366) // Pro 12.9\n || (screenWidth === 834 && screenHeight === 1194) // Pro 11\n || (screenWidth === 834 && screenHeight === 1112) // Pro 10.5\n || (screenWidth === 768 && screenHeight === 1024) // other\n )\n ) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n macos = false;\n }\n\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox;\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || win.navigator.standalone))\n || (win.matchMedia && win.matchMedia('(display-mode: standalone)').matches);\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron;\n if (device.desktop) {\n device.electron = electron;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = win.devicePixelRatio || 1;\n\n // Export object\n return device;\n }());\n\n function onTouchStart (event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params;\n var touches = swiper.touches;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; }\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) { return; }\n }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) { return; }\n if (!data.isTouchEvent && 'button' in e && e.button > 0) { return; }\n if (data.isTouched && data.isMoved) { return; }\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : (\".\" + (params.noSwipingClass)))[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) { return; }\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= win.screen.width - edgeSwipeThreshold))\n ) {\n return;\n }\n\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) { data.allowThresholdMove = false; }\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) { preventDefault = false; }\n if (\n doc.activeElement\n && $(doc.activeElement).is(data.formElements)\n && doc.activeElement !== $targetEl[0]\n ) {\n doc.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n }\n\n function onTouchMove (event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params;\n var touches = swiper.touches;\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== 'touchmove') { return; }\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && doc.activeElement) {\n if (e.target === doc.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) { return; }\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt((Math.pow( diffX, 2 )) + (Math.pow( diffY, 2 ))) < swiper.params.threshold) { return; }\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) { diff = -diff; }\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance) { data.currentTranslate = (swiper.minTranslate() - 1) + (Math.pow( (-swiper.minTranslate() + data.startTranslate + diff), resistanceRatio )); }\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) { data.currentTranslate = (swiper.maxTranslate() + 1) - (Math.pow( (swiper.maxTranslate() - data.startTranslate - diff), resistanceRatio )); }\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) { return; }\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n }\n\n function onTouchEnd (event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n\n var params = swiper.params;\n var touches = swiper.touches;\n var rtl = swiper.rtlTranslate;\n var $wrapperEl = swiper.$wrapperEl;\n var slidesGrid = swiper.slidesGrid;\n var snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n var touchEndTime = Utils.now();\n var timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.nextTick(function () {\n if (!swiper.destroyed) { swiper.allowClick = true; }\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n var currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) { newPosition = -newPosition; }\n\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) { needsLoopFix = true; }\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) { needsLoopFix = true; }\n } else if (params.freeModeSticky) {\n var nextSlide;\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) { return; }\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) { return; }\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) { return; }\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n for (var i = 0; i < slidesGrid.length; i += (i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup)) {\n var increment$1 = (i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n if (typeof slidesGrid[i + increment$1] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment$1]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment$1] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = (stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) { swiper.slideTo(stopIndex + increment); }\n else { swiper.slideTo(stopIndex); }\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) { swiper.slideTo(stopIndex + increment); }\n else { swiper.slideTo(stopIndex); }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n }\n\n function onResize () {\n var swiper = this;\n\n var params = swiper.params;\n var el = swiper.el;\n\n if (el && el.offsetWidth === 0) { return; }\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n var allowSlideNext = swiper.allowSlideNext;\n var allowSlidePrev = swiper.allowSlidePrev;\n var snapGrid = swiper.snapGrid;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n }\n\n function onClick (e) {\n var swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) { e.preventDefault(); }\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n }\n\n function onScroll () {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl;\n var rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = ((wrapperEl.scrollWidth - wrapperEl.offsetWidth) - wrapperEl.scrollLeft);\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === -0) { swiper.translate = 0; }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n }\n\n var dummyEventAttached = false;\n function dummyEventListener() {}\n\n function attachEvents() {\n var swiper = this;\n var params = swiper.params;\n var touchEvents = swiper.touchEvents;\n var el = swiper.el;\n var wrapperEl = swiper.wrapperEl;\n\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n var capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n doc.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n doc.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture: capture } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n doc.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n doc.addEventListener('mousemove', swiper.onTouchMove, capture);\n doc.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n }\n\n function detachEvents() {\n var swiper = this;\n\n var params = swiper.params;\n var touchEvents = swiper.touchEvents;\n var el = swiper.el;\n var wrapperEl = swiper.wrapperEl;\n\n var capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n doc.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n doc.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n doc.removeEventListener('mousemove', swiper.onTouchMove, capture);\n doc.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n }\n\n var events = {\n attachEvents: attachEvents,\n detachEvents: detachEvents,\n };\n\n function setBreakpoint () {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var initialized = swiper.initialized;\n var loopedSlides = swiper.loopedSlides; if ( loopedSlides === void 0 ) loopedSlides = 0;\n var params = swiper.params;\n var $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) { return; }\n\n // Get breakpoint for window width and update parameters\n var breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') { return; }\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(((params.containerModifierClass) + \"multirow \" + (params.containerModifierClass) + \"multirow-column\"));\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(((params.containerModifierClass) + \"multirow\"));\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(((params.containerModifierClass) + \"multirow-column\"));\n }\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n Utils.extend(swiper.params, breakpointParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n }\n\n function getBreakpoint (breakpoints) {\n // Get breakpoint for window width\n if (!breakpoints) { return undefined; }\n var breakpoint = false;\n\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = win.innerHeight * minRatio;\n return { value: value, point: point };\n }\n return { value: point, point: point };\n });\n\n points.sort(function (a, b) { return parseInt(a.value, 10) - parseInt(b.value, 10); });\n for (var i = 0; i < points.length; i += 1) {\n var ref = points[i];\n var point = ref.point;\n var value = ref.value;\n if (value <= win.innerWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n }\n\n var breakpoints = { setBreakpoint: setBreakpoint, getBreakpoint: getBreakpoint };\n\n function addClasses () {\n var swiper = this;\n var classNames = swiper.classNames;\n var params = swiper.params;\n var rtl = swiper.rtl;\n var $el = swiper.$el;\n var suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n }\n\n function removeClasses () {\n var swiper = this;\n var $el = swiper.$el;\n var classNames = swiper.classNames;\n\n $el.removeClass(classNames.join(' '));\n }\n\n var classes = { addClasses: addClasses, removeClasses: removeClasses };\n\n function loadImage (imageEl, src, srcset, sizes, checkForComplete, callback) {\n var image;\n function onReady() {\n if (callback) { callback(); }\n }\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new win.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n }\n\n function preloadImages () {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) { return; }\n if (swiper.imagesLoaded !== undefined) { swiper.imagesLoaded += 1; }\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) { swiper.update(); }\n swiper.emit('imagesReady');\n }\n }\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n }\n\n var images = {\n loadImage: loadImage,\n preloadImages: preloadImages,\n };\n\n function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && (params.slidesOffsetBefore + (params.spaceBetween * (swiper.slides.length - 1)) + ((swiper.slides[0]).offsetWidth) * swiper.slides.length);\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) { swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) { swiper.navigation.update(); }\n }\n }\n\n var checkOverflow$1 = { checkOverflow: checkOverflow };\n\n var defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n //\n preventInteractionOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n\n // Callbacks\n runCallbacksOnInit: true,\n };\n\n /* eslint no-param-reassign: \"off\" */\n\n var prototypes = {\n update: update,\n translate: translate,\n transition: transition$1,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow$1,\n classes: classes,\n images: images,\n };\n\n var extendedDefaults = {};\n\n var Swiper = /*@__PURE__*/(function (SwiperClass) {\n function Swiper() {\n var assign;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n var el;\n var params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n (assign = args, el = assign[0], params = assign[1]);\n }\n if (!params) { params = {}; }\n\n params = Utils.extend({}, params);\n if (el && !params.el) { params.el = el; }\n\n SwiperClass.call(this, params);\n\n Object.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n var swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) { return; }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) { return; }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) { params[moduleParamName] = { enabled: false }; }\n }\n });\n\n // Extend defaults with modules params\n var swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (index, containerEl) {\n var newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n var $wrapperEl;\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector((\".\" + (swiper.params.wrapperClass))));\n // Children needs to return slot items\n $wrapperEl.children = function (options) { return $el.children(options); };\n } else {\n $wrapperEl = $el.children((\".\" + (swiper.params.wrapperClass)));\n }\n // Extend Swiper\n Utils.extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }()),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n if ( SwiperClass ) Swiper.__proto__ = SwiperClass;\n Swiper.prototype = Object.create( SwiperClass && SwiperClass.prototype );\n Swiper.prototype.constructor = Swiper;\n\n var staticAccessors = { extendedDefaults: { configurable: true },defaults: { configurable: true },Class: { configurable: true },$: { configurable: true } };\n\n Swiper.prototype.slidesPerViewDynamic = function slidesPerViewDynamic () {\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides;\n var slidesGrid = swiper.slidesGrid;\n var swiperSize = swiper.size;\n var activeIndex = swiper.activeIndex;\n var spv = 1;\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) { breakLoop = true; }\n }\n }\n for (var i$1 = activeIndex - 1; i$1 >= 0; i$1 -= 1) {\n if (slides[i$1] && !breakLoop) {\n slideSize += slides[i$1].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) { breakLoop = true; }\n }\n }\n } else {\n for (var i$2 = activeIndex + 1; i$2 < slides.length; i$2 += 1) {\n if (slidesGrid[i$2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n };\n\n Swiper.prototype.update = function update () {\n var swiper = this;\n if (!swiper || swiper.destroyed) { return; }\n var snapGrid = swiper.snapGrid;\n var params = swiper.params;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n var translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n };\n\n Swiper.prototype.changeDirection = function changeDirection (newDirection, needUpdate) {\n if ( needUpdate === void 0 ) needUpdate = true;\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\n return swiper;\n }\n\n swiper.$el\n .removeClass((\"\" + (swiper.params.containerModifierClass) + currentDirection))\n .addClass((\"\" + (swiper.params.containerModifierClass) + newDirection));\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each(function (slideIndex, slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) { swiper.update(); }\n\n return swiper;\n };\n\n Swiper.prototype.init = function init () {\n var swiper = this;\n if (swiper.initialized) { return; }\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n };\n\n Swiper.prototype.destroy = function destroy (deleteInstance, cleanStyles) {\n if ( deleteInstance === void 0 ) deleteInstance = true;\n if ( cleanStyles === void 0 ) cleanStyles = true;\n\n var swiper = this;\n var params = swiper.params;\n var $el = swiper.$el;\n var $wrapperEl = swiper.$wrapperEl;\n var slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults (newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n };\n\n staticAccessors.extendedDefaults.get = function () {\n return extendedDefaults;\n };\n\n staticAccessors.defaults.get = function () {\n return defaults;\n };\n\n staticAccessors.Class.get = function () {\n return SwiperClass;\n };\n\n staticAccessors.$.get = function () {\n return $;\n };\n\n Object.defineProperties( Swiper, staticAccessors );\n\n return Swiper;\n }(SwiperClass));\n\n var Device$1 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n };\n\n var Support$1 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n };\n\n var Browser = (function Browser() {\n function isSafari() {\n var ua = win.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isEdge: !!win.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win.navigator.userAgent),\n };\n }());\n\n var Browser$1 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n };\n\n var Resize = {\n name: 'resize',\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) { return; }\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) { return; }\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n // Emit resize\n win.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n win.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy() {\n var swiper = this;\n win.removeEventListener('resize', swiper.resize.resizeHandler);\n win.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n };\n\n var Observer = {\n func: win.MutationObserver || win.WebkitMutationObserver,\n attach: function attach(target, options) {\n if ( options === void 0 ) options = {};\n\n var swiper = this;\n\n var ObserverFunc = Observer.func;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (win.requestAnimationFrame) {\n win.requestAnimationFrame(observerUpdate);\n } else {\n win.setTimeout(observerUpdate, 0);\n }\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!Support.observer || !swiper.params.observer) { return; }\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n };\n\n var Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.observer.init();\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.destroy();\n },\n },\n };\n\n var Virtual = {\n update: function update(force) {\n var swiper = this;\n var ref = swiper.params;\n var slidesPerView = ref.slidesPerView;\n var slidesPerGroup = ref.slidesPerGroup;\n var centeredSlides = ref.centeredSlides;\n var ref$1 = swiper.params.virtual;\n var addSlidesBefore = ref$1.addSlidesBefore;\n var addSlidesAfter = ref$1.addSlidesAfter;\n var ref$2 = swiper.virtual;\n var previousFrom = ref$2.from;\n var previousTo = ref$2.to;\n var slides = ref$2.slides;\n var previousSlidesGrid = ref$2.slidesGrid;\n var renderSlide = ref$2.renderSlide;\n var previousOffset = ref$2.offset;\n swiper.updateActiveIndex();\n var activeIndex = swiper.activeIndex || 0;\n\n var offsetProp;\n if (swiper.rtlTranslate) { offsetProp = 'right'; }\n else { offsetProp = swiper.isHorizontal() ? 'left' : 'top'; }\n\n var slidesAfter;\n var slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\n }\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n Utils.extend(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, (offset + \"px\"));\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: (function getSlides() {\n var slidesToRender = [];\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n var prependIndexes = [];\n var appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find((\".\" + (swiper.params.slideClass))).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find((\".\" + (swiper.params.slideClass) + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\")).remove();\n }\n }\n }\n for (var i$1 = 0; i$1 < slides.length; i$1 += 1) {\n if (i$1 >= from && i$1 <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i$1);\n } else {\n if (i$1 > previousTo) { appendIndexes.push(i$1); }\n if (i$1 < previousFrom) { prependIndexes.push(i$1); }\n }\n }\n }\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) { return b - a; }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, (offset + \"px\"));\n onRendered();\n },\n renderSlide: function renderSlide(slide, index) {\n var swiper = this;\n var params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n var $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index))\n : $((\"
\" + slide + \"
\"));\n if (!$slideEl.attr('data-swiper-slide-index')) { $slideEl.attr('data-swiper-slide-index', index); }\n if (params.cache) { swiper.virtual.cache[index] = $slideEl; }\n return $slideEl;\n },\n appendSlide: function appendSlide(slides) {\n var swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { swiper.virtual.slides.push(slides[i]); }\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n swiper.virtual.update(true);\n },\n prependSlide: function prependSlide(slides) {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var newActiveIndex = activeIndex + 1;\n var numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { swiper.virtual.slides.unshift(slides[i]); }\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n var $cachedEl = cache[cachedIndex];\n var cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide: function removeSlide(slidesIndexes) {\n var swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) { return; }\n var activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) { activeIndex -= 1; }\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) { activeIndex -= 1; }\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides: function removeAllSlides() {\n var swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n },\n };\n\n var Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n removeSlide: Virtual.removeSlide.bind(swiper),\n removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (!swiper.params.virtual.enabled) { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"virtual\"));\n var overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.virtual.enabled) { return; }\n swiper.virtual.update();\n },\n },\n };\n\n var Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; } // jquery fix\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && isArrowRight) || (swiper.isVertical() && isArrowDown) || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (doc.activeElement && doc.activeElement.nodeName && (doc.activeElement.nodeName.toLowerCase() === 'input' || doc.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents((\".\" + (swiper.params.slideClass))).length > 0 && swiper.$el.parents((\".\" + (swiper.params.slideActiveClass))).length === 0) {\n return undefined;\n }\n var windowWidth = win.innerWidth;\n var windowHeight = win.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) { swiperOffset.left -= swiper.$el[0].scrollLeft; }\n var swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height] ];\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n if (\n point[0] >= 0 && point[0] <= windowWidth\n && point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) { return undefined; }\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl)) { swiper.slideNext(); }\n if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl)) { swiper.slidePrev(); }\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n if (isPageDown || isArrowDown) { swiper.slideNext(); }\n if (isPageUp || isArrowUp) { swiper.slidePrev(); }\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n if (swiper.keyboard.enabled) { return; }\n $(doc).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n if (!swiper.keyboard.enabled) { return; }\n $(doc).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n };\n\n var Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n };\n\n function isEventSupported() {\n var eventName = 'onwheel';\n var isSupported = eventName in doc;\n\n if (!isSupported) {\n var element = doc.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported\n && doc.implementation\n && doc.implementation.hasFeature\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && doc.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = doc.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n }\n var Mousewheel = {\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n if (win.navigator.userAgent.indexOf('firefox') > -1) { return 'DOMMouseScroll'; }\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n\n var sX = 0;\n var sY = 0; // spinX, spinY\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) { // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) { return true; }\n\n if (e.originalEvent) { e = e.originalEvent; } // jquery fix\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) { delta = -data.pixelX * rtlFactor; }\n else { return true; }\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) { delta = -data.pixelY; }\n else { return true; }\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) { return true; }\n\n if (params.invert) { delta = -delta; }\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: Utils.now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event,\n };\n\n // Keep the most recent events\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var newEvent$1 = { time: Utils.now(), delta: Math.abs(delta), direction: Math.sign(delta) };\n var ref = swiper.mousewheel;\n var lastEventBeforeSnap = ref.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap\n && newEvent$1.time < lastEventBeforeSnap.time + 500\n && newEvent$1.delta <= lastEventBeforeSnap.delta\n && newEvent$1.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n var position = swiper.getTranslate() + (delta * params.sensitivity);\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) { position = swiper.minTranslate(); }\n if (position <= swiper.maxTranslate()) { position = swiper.maxTranslate(); }\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momuntum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var recentWheelEvents$1 = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents$1.length >= 15) {\n recentWheelEvents$1.shift(); // only store the last N events\n }\n var prevEvent$1 = recentWheelEvents$1.length ? recentWheelEvents$1[recentWheelEvents$1.length - 1] : undefined;\n var firstEvent = recentWheelEvents$1[0];\n recentWheelEvents$1.push(newEvent$1);\n if (prevEvent$1 && (newEvent$1.delta > prevEvent$1.delta || newEvent$1.direction !== prevEvent$1.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents$1.splice(0);\n } else if (recentWheelEvents$1.length >= 15\n && newEvent$1.time - firstEvent.time < 500\n && firstEvent.delta - newEvent$1.delta >= 1\n && newEvent$1.delta <= 6\n ) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = newEvent$1;\n recentWheelEvents$1.splice(0);\n swiper.mousewheel.timeout = Utils.nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = Utils.nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = newEvent$1;\n recentWheelEvents$1.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) { swiper.emit('scroll', e); }\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) { swiper.autoplay.stop(); }\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) { return true; }\n }\n }\n\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && Utils.now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n swiper.mousewheel.lastScrollTime = (new win.Date()).getTime();\n // Return false as a default\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) { return false; }\n if (swiper.mousewheel.enabled) { return false; }\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) { return false; }\n if (!swiper.mousewheel.enabled) { return false; }\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n };\n\n var Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n animateSlider: Mousewheel.animateSlider.bind(swiper),\n releaseScroll: Mousewheel.releaseScroll.bind(swiper),\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n if (swiper.params.mousewheel.enabled) { swiper.mousewheel.enable(); }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n if (swiper.mousewheel.enabled) { swiper.mousewheel.disable(); }\n },\n },\n };\n\n var Navigation = {\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n\n if (swiper.params.loop) { return; }\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) { return; }\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) { return; }\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) { return; }\n\n var $nextEl;\n var $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.nextEl === 'string'\n && $nextEl.length > 1\n && swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.prevEl === 'string'\n && $prevEl.length > 1\n && swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n };\n\n var Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge() {\n var swiper = this;\n swiper.navigation.update();\n },\n fromEdge: function fromEdge() {\n var swiper = this;\n swiper.navigation.update();\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.navigation.destroy();\n },\n click: function click(e) {\n var swiper = this;\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n if (\n swiper.params.navigation.hideOnClick\n && !$(e.target).is($prevEl)\n && !$(e.target).is($nextEl)\n ) {\n var isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n },\n },\n };\n\n var Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; }\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n // Current/Total\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\n }\n if (current > total - 1) { current -= total; }\n if (current < 0 && swiper.params.paginationType !== 'bullets') { current = total + current; }\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', ((swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)) + \"px\"));\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(((params.bulletActiveClass) + \" \" + (params.bulletActiveClass) + \"-next \" + (params.bulletActiveClass) + \"-next-next \" + (params.bulletActiveClass) + \"-prev \" + (params.bulletActiveClass) + \"-prev-prev \" + (params.bulletActiveClass) + \"-main\"));\n if ($el.length > 1) {\n bullets.each(function (index, bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(((params.bulletActiveClass) + \"-main\"));\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev\"))\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev-prev\"));\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(((params.bulletActiveClass) + \"-next\"))\n .next()\n .addClass(((params.bulletActiveClass) + \"-next-next\"));\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(((params.bulletActiveClass) + \"-main\"));\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var i$1 = params.dynamicMainBullets; i$1 >= 0; i$1 -= 1) {\n bullets.eq(bullets.length - i$1).addClass(((params.bulletActiveClass) + \"-main\"));\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(((params.bulletActiveClass) + \"-prev\"));\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev\"))\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev-prev\"));\n $lastDisplayedBullet\n .next()\n .addClass(((params.bulletActiveClass) + \"-next\"))\n .next()\n .addClass(((params.bulletActiveClass) + \"-next-next\"));\n }\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev\"))\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev-prev\"));\n $lastDisplayedBullet\n .next()\n .addClass(((params.bulletActiveClass) + \"-next\"))\n .next()\n .addClass(((params.bulletActiveClass) + \"-next-next\"));\n }\n }\n }\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', (bulletsOffset + \"px\"));\n }\n }\n if (params.type === 'fraction') {\n $el.find((\".\" + (params.currentClass))).text(params.formatFractionCurrent(current + 1));\n $el.find((\".\" + (params.totalClass))).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n var progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find((\".\" + (params.progressbarFillClass))).transform((\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\")).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; }\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + (params.bulletElement) + \" class=\\\"\" + (params.bulletClass) + \"\\\">\";\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find((\".\" + (params.bulletClass)));\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\"\n + ' / '\n + \"\";\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el) { return; }\n\n var $el = $(params.el);\n if ($el.length === 0) { return; }\n\n if (\n swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass((\"\" + (params.modifierClass) + (params.type) + \"-dynamic\"));\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', (\".\" + (params.bulletClass)), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) { index += swiper.loopedSlides; }\n swiper.slideTo(index);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el: $el,\n el: $el[0],\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; }\n var $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) { swiper.pagination.bullets.removeClass(params.bulletActiveClass); }\n if (params.clickable) {\n $el.off('click', (\".\" + (params.bulletClass)));\n }\n },\n };\n\n var Pagination$1 = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function (number) { return number; },\n formatFractionTotal: function (number) { return number; },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange() {\n var swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange() {\n var swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange() {\n var swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange() {\n var swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.pagination.destroy();\n },\n click: function click(e) {\n var swiper = this;\n if (\n swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n };\n\n var Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var rtl = swiper.rtlTranslate;\n var progress = swiper.progress;\n var dragSize = scrollbar.dragSize;\n var trackSize = scrollbar.trackSize;\n var $dragEl = scrollbar.$dragEl;\n var $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n $dragEl.transform((\"translate3d(\" + newPos + \"px, 0, 0)\"));\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n $dragEl.transform((\"translate3d(0px, \" + newPos + \"px, 0)\"));\n $dragEl[0].style.height = newSize + \"px\";\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; }\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; }\n\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl;\n var $el = scrollbar.$el;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition: function getPointerPosition(e) {\n var swiper = this;\n if (swiper.isHorizontal()) {\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientX : e.clientX);\n }\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientY : e.clientY);\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar;\n var rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el;\n var dragSize = scrollbar.dragSize;\n var trackSize = scrollbar.trackSize;\n var dragStartPos = scrollbar.dragStartPos;\n\n var positionRatio;\n positionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top']\n - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n var position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar;\n var $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n var $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl)\n ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar;\n var $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n var $dragEl = scrollbar.$dragEl;\n\n if (!swiper.scrollbar.isTouched) { return; }\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar;\n var $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n\n if (!swiper.scrollbar.isTouched) { return; }\n swiper.scrollbar.isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var touchEventsTouch = swiper.touchEventsTouch;\n var touchEventsDesktop = swiper.touchEventsDesktop;\n var params = swiper.params;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n doc.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n doc.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var touchEventsTouch = swiper.touchEventsTouch;\n var touchEventsDesktop = swiper.touchEventsDesktop;\n var params = swiper.params;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n doc.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n doc.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var $swiperEl = swiper.$el;\n var params = swiper.params.scrollbar;\n\n var $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find((\".\" + (swiper.params.scrollbar.dragClass)));\n if ($dragEl.length === 0) {\n $dragEl = $((\"
\"));\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n };\n\n var Scrollbar$1 = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n getPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize: function resize() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n };\n\n var Parallax = {\n setTransform: function setTransform(el, progress) {\n var swiper = this;\n var rtl = swiper.rtl;\n\n var $el = $(el);\n var rtlFactor = rtl ? -1 : 1;\n\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if ((x).indexOf('%') >= 0) {\n x = (parseInt(x, 10) * progress * rtlFactor) + \"%\";\n } else {\n x = (x * progress * rtlFactor) + \"px\";\n }\n if ((y).indexOf('%') >= 0) {\n y = (parseInt(y, 10) * progress) + \"%\";\n } else {\n y = (y * progress) + \"px\";\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform((\"translate3d(\" + x + \", \" + y + \", 0px)\"));\n } else {\n var currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\n $el.transform((\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\"));\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el;\n var slides = swiper.slides;\n var progress = swiper.progress;\n var snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each(function (index, el) {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each(function (slideIndex, slideEl) {\n var slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each(function (index, el) {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition: function setTransition(duration) {\n if ( duration === void 0 ) duration = this.params.speed;\n\n var swiper = this;\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each(function (index, parallaxEl) {\n var $parallaxEl = $(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) { parallaxDuration = 0; }\n $parallaxEl.transition(parallaxDuration);\n });\n },\n };\n\n var Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.parallax.setTranslate();\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.parallax.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.parallax.setTransition(duration);\n },\n },\n };\n\n var Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) { return 1; }\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt((Math.pow( (x2 - x1), 2 )) + (Math.pow( (y2 - y1), 2 )));\n return distance;\n },\n // Events\n onGestureStart: function onGestureStart(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest((\".\" + (swiper.params.slideClass)));\n if (gesture.$slideEl.length === 0) { gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n swiper.zoom.isScaling = true;\n },\n onGestureChange: function onGestureChange(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (Math.pow( ((zoom.scale - gesture.maxRatio) + 1), 0.5 ));\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (Math.pow( ((params.minRatio - zoom.scale) + 1), 0.5 ));\n }\n gesture.$imageEl.transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\n },\n onGestureEnd: function onGestureEnd(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) { gesture.$slideEl = undefined; }\n },\n onTouchStart: function onTouchStart(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n if (image.isTouched) { return; }\n if (Device.android && e.cancelable) { e.preventDefault(); }\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove: function onTouchMove(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n var velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) { return; }\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) { return; }\n\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal()\n && (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } if (\n !swiper.isHorizontal()\n && (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = (image.minX + 1) - (Math.pow( ((image.minX - image.currentX) + 1), 0.8 ));\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (Math.pow( ((image.currentX - image.maxX) + 1), 0.8 ));\n }\n\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (Math.pow( ((image.minY - image.currentY) + 1), 0.8 ));\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (Math.pow( ((image.currentY - image.maxY) + 1), 0.8 ));\n }\n\n // Velocity\n if (!velocity.prevPositionX) { velocity.prevPositionX = image.touchesCurrent.x; }\n if (!velocity.prevPositionY) { velocity.prevPositionY = image.touchesCurrent.y; }\n if (!velocity.prevTime) { velocity.prevTime = Date.now(); }\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) { velocity.x = 0; }\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) { velocity.y = 0; }\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform((\"translate3d(\" + (image.currentX) + \"px, \" + (image.currentY) + \"px,0)\"));\n },\n onTouchEnd: function onTouchEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n var velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) { momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); }\n if (velocity.y !== 0) { momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); }\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl.transition(momentumDuration).transform((\"translate3d(\" + (image.currentX) + \"px, \" + (image.currentY) + \"px,0)\"));\n },\n onTransitionEnd: function onTransitionEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle: function toggle(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in: function in$1(e) {\n var swiper = this;\n\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children((\".\" + (swiper.params.slideActiveClass)));\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n\n gesture.$slideEl.addClass((\"\" + (params.zoomedSlideClass)));\n\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform((\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\"));\n gesture.$imageEl.transition(300).transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\n },\n out: function out() {\n var swiper = this;\n\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children((\".\" + (swiper.params.slideActiveClass)));\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass((\"\" + (params.zoomedSlideClass)));\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable: function enable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (zoom.enabled) { return; }\n zoom.enabled = true;\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n var activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n var slideSelector = \".\" + (swiper.params.slideClass);\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, (\".\" + (swiper.params.zoom.containerClass)), zoom.onTouchMove, activeListenerWithCapture);\n },\n disable: function disable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled) { return; }\n\n swiper.zoom.enabled = false;\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n var activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n var slideSelector = \".\" + (swiper.params.slideClass);\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, (\".\" + (swiper.params.zoom.containerClass)), zoom.onTouchMove, activeListenerWithCapture);\n },\n };\n\n var Zoom$1 = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create: function create() {\n var swiper = this;\n var zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach(function (methodName) {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom: zoom,\n });\n\n var scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get: function get() {\n return scale;\n },\n set: function set(value) {\n if (scale !== value) {\n var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.zoom.disable();\n },\n touchStart: function touchStart(e) {\n var swiper = this;\n if (!swiper.zoom.enabled) { return; }\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function touchEnd(e) {\n var swiper = this;\n if (!swiper.zoom.enabled) { return; }\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function doubleTap(e) {\n var swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange: function slideChange() {\n var swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n };\n\n var Lazy = {\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\n if ( loadInDuplicate === void 0 ) loadInDuplicate = true;\n\n var swiper = this;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') { return; }\n if (swiper.slides.length === 0) { return; }\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n var $slideEl = isVirtual\n ? swiper.$wrapperEl.children((\".\" + (swiper.params.slideClass) + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\"))\n : swiper.slides.eq(index);\n\n var $images = $slideEl.find((\".\" + (params.elementClass) + \":not(.\" + (params.loadedClass) + \"):not(.\" + (params.loadingClass) + \")\"));\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) { return; }\n\n $images.each(function (imageIndex, imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n var $pictureEl = $imageEl.parent('picture');\n\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) { return; }\n if (background) {\n $imageEl.css('background-image', (\"url(\\\"\" + background + \"\\\")\"));\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if ($pictureEl.length) {\n $pictureEl.children('source').each(function (sourceIndex, sourceEl) {\n var $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find((\".\" + (params.preloaderClass))).remove();\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children((\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + (swiper.params.slideDuplicateClass) + \")\"));\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children((\".\" + (swiper.params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\"));\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var swiperParams = swiper.params;\n var slides = swiper.slides;\n var activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n\n var slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children((\".\" + (swiperParams.slideClass) + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\")).length) {\n return true;\n }\n } else if (slides[index]) { return true; }\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) { swiper.lazy.initialImageLoaded = true; }\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children((\".\" + (swiperParams.slideVisibleClass))).each(function (elIndex, slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) { swiper.lazy.loadInSlide(i); }\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (var i$1 = activeIndex + slidesPerView; i$1 < maxIndex; i$1 += 1) {\n if (slideExist(i$1)) { swiper.lazy.loadInSlide(i$1); }\n }\n // Prev Slides\n for (var i$2 = minIndex; i$2 < activeIndex; i$2 += 1) {\n if (slideExist(i$2)) { swiper.lazy.loadInSlide(i$2); }\n }\n } else {\n var nextSlide = $wrapperEl.children((\".\" + (swiperParams.slideNextClass)));\n if (nextSlide.length > 0) { swiper.lazy.loadInSlide(slideIndex(nextSlide)); }\n\n var prevSlide = $wrapperEl.children((\".\" + (swiperParams.slidePrevClass)));\n if (prevSlide.length > 0) { swiper.lazy.loadInSlide(slideIndex(prevSlide)); }\n }\n }\n },\n };\n\n var Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init() {\n var swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll: function scroll() {\n var swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize: function resize() {\n var swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove: function scrollbarDragMove() {\n var swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart() {\n var swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange: function slideChange() {\n var swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n },\n },\n };\n\n /* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\n var Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = (function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) { return 0; }\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(setTranslate$1, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n Utils.nextTick(function () {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) { return; }\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n };\n var Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update: function update() {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize() {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(translate, byController) {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n swiper.controller.setTransition(duration, byController);\n },\n },\n };\n\n var a11y = {\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable: function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey: function onEnterKey(e) {\n var swiper = this;\n var params = swiper.params.a11y;\n if (e.keyCode !== 13) { return; }\n var $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is((\".\" + (swiper.params.pagination.bulletClass)))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) { return; }\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n\n if (swiper.params.loop || !swiper.navigation) { return; }\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletIndex, bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n });\n }\n },\n init: function init() {\n var swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n var params = swiper.params.a11y;\n var $nextEl;\n var $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', (\".\" + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) { swiper.a11y.liveRegion.remove(); }\n\n var $nextEl;\n var $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', (\".\" + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey);\n }\n },\n };\n var A11y = {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $((\"\")),\n },\n });\n Object.keys(a11y).forEach(function (methodName) {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.updatePagination();\n },\n destroy: function destroy() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.destroy();\n },\n },\n };\n\n var History = {\n init: function init() {\n var swiper = this;\n if (!swiper.params.history) { return; }\n if (!win.history || !win.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n var history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) { return; }\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n win.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (!swiper.params.history.replaceState) {\n win.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState: function setHistoryPopState() {\n var swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues: function getPathValues() {\n var pathArray = win.location.pathname.slice(1).split('/').filter(function (part) { return part !== ''; });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return { key: key, value: value };\n },\n setHistory: function setHistory(key, index) {\n var swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) { return; }\n var slide = swiper.slides.eq(index);\n var value = History.slugify(slide.attr('data-history'));\n if (!win.location.pathname.includes(key)) {\n value = key + \"/\" + value;\n }\n var currentState = win.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n win.history.replaceState({ value: value }, null, value);\n } else {\n win.history.pushState({ value: value }, null, value);\n }\n },\n slugify: function slugify(text) {\n return text.toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n var swiper = this;\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n };\n\n var History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange: function slideChange() {\n var swiper = this;\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n };\n\n var HashNavigation = {\n onHashCange: function onHashCange() {\n var swiper = this;\n swiper.emit('hashChange');\n var newHash = doc.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children((\".\" + (swiper.params.slideClass) + \"[data-hash=\\\"\" + newHash + \"\\\"]\")).index();\n if (typeof newIndex === 'undefined') { return; }\n swiper.slideTo(newIndex);\n }\n },\n setHash: function setHash() {\n var swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) { return; }\n if (swiper.params.hashNavigation.replaceState && win.history && win.history.replaceState) {\n win.history.replaceState(null, null, ((\"#\" + (swiper.slides.eq(swiper.activeIndex).attr('data-hash'))) || ''));\n swiper.emit('hashSet');\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n doc.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) { return; }\n swiper.hashNavigation.initialized = true;\n var hash = doc.location.hash.replace('#', '');\n if (hash) {\n var speed = 0;\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(win).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $(win).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n };\n var HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange: function slideChange() {\n var swiper = this;\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n };\n\n /* eslint no-underscore-dangle: \"off\" */\n\n var Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = Utils.nextTick(function () {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) { swiper.autoplay.run(); }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') { return false; }\n if (swiper.autoplay.running) { return false; }\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) { return false; }\n if (typeof swiper.autoplay.timeout === 'undefined') { return false; }\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) { return; }\n if (swiper.autoplay.paused) { return; }\n if (swiper.autoplay.timeout) { clearTimeout(swiper.autoplay.timeout); }\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n };\n\n var Autoplay$1 = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onVisibilityChange: function onVisibilityChange() {\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) { return; }\n if (e.target !== this) { return; }\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart: function beforeTransitionStart(speed, internal) {\n var swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove() {\n var swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd() {\n var swiper = this;\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n },\n },\n };\n\n var Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var offset = $slideEl[0].swiperSlideOffset;\n var tx = -offset;\n if (!swiper.params.virtualTranslate) { tx -= swiper.translate; }\n var ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n var slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform((\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\"));\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides;\n var $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) { return; }\n if (!swiper || swiper.destroyed) { return; }\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n };\n\n var EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'fade') { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"fade\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'fade') { return; }\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'fade') { return; }\n swiper.fadeEffect.setTransition(duration);\n },\n },\n };\n\n var Cube = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el;\n var $wrapperEl = swiper.$wrapperEl;\n var slides = swiper.slides;\n var swiperWidth = swiper.width;\n var swiperHeight = swiper.height;\n var rtl = swiper.rtlTranslate;\n var swiperSize = swiper.size;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: (swiperWidth + \"px\") });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + (round * 4 * swiperSize);\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = (3 * swiperSize) + (swiperSize * 4 * round);\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n var transform = \"rotateX(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + tz + \"px)\";\n if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) { wrapperRotate = (-slideIndex * 90) - (progress * 90); }\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $((\"
\"));\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $((\"
\"));\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) { shadowBefore[0].style.opacity = Math.max(-progress, 0); }\n if (shadowAfter.length) { shadowAfter[0].style.opacity = Math.max(progress, 0); }\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n '-moz-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n '-ms-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n 'transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform((\"translate3d(0px, \" + ((swiperWidth / 2) + params.shadowOffset) + \"px, \" + (-swiperWidth / 2) + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + (params.shadowScale) + \")\"));\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\n var multiplier = 1.5 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\n + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var offset = params.shadowOffset;\n $cubeShadowEl.transform((\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + ((swiperHeight / 2) + offset) + \"px, \" + (-swiperHeight / 2 / scale2) + \"px) rotateX(-90deg)\"));\n }\n }\n var zFactor = (Browser.isSafari || Browser.isWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform((\"translate3d(0px,0,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\"));\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var $el = swiper.$el;\n var slides = swiper.slides;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n };\n\n var EffectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'cube') { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"cube\"));\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'cube') { return; }\n swiper.cubeEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'cube') { return; }\n swiper.cubeEffect.setTransition(duration);\n },\n },\n };\n\n var Flip = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n var rtl = swiper.rtlTranslate;\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n var offset = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = -offset;\n var ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $((\"
\"));\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $((\"
\"));\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) { shadowBefore[0].style.opacity = Math.max(-progress, 0); }\n if (shadowAfter.length) { shadowAfter[0].style.opacity = Math.max(progress, 0); }\n }\n $slideEl\n .transform((\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\"));\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides;\n var activeIndex = swiper.activeIndex;\n var $wrapperEl = swiper.$wrapperEl;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) { return; }\n if (!swiper || swiper.destroyed) { return; }\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n };\n\n var EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'flip') { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"flip\"));\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'flip') { return; }\n swiper.flipEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'flip') { return; }\n swiper.flipEffect.setTransition(duration);\n },\n },\n };\n\n var Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var swiperWidth = swiper.width;\n var swiperHeight = swiper.height;\n var slides = swiper.slides;\n var $wrapperEl = swiper.$wrapperEl;\n var slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2);\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth;\n // Each slide offset from center\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n var translateZ = -translate * Math.abs(offsetMultiplier);\n\n var stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = ((parseFloat(params.stretch) / 100) * slideSize);\n }\n var translateY = isHorizontal ? 0 : stretch * (offsetMultiplier);\n var translateX = isHorizontal ? stretch * (offsetMultiplier) : 0;\n\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) { translateX = 0; }\n if (Math.abs(translateY) < 0.001) { translateY = 0; }\n if (Math.abs(translateZ) < 0.001) { translateZ = 0; }\n if (Math.abs(rotateY) < 0.001) { rotateY = 0; }\n if (Math.abs(rotateX) < 0.001) { rotateX = 0; }\n if (Math.abs(scale) < 0.001) { scale = 0; }\n\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg) scale(\" + scale + \")\";\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $((\"
\"));\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $((\"
\"));\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) { $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; }\n if ($shadowAfterEl.length) { $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0; }\n }\n }\n\n // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n var ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = center + \"px 50%\";\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n };\n\n var EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') { return; }\n\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"coverflow\"));\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') { return; }\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') { return; }\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n };\n\n var Thumbs = {\n init: function init() {\n var swiper = this;\n var ref = swiper.params;\n var thumbsParams = ref.thumbs;\n var SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick: function onThumbClick() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) { return; }\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) { return; }\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) { return; }\n var slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n var prevIndex = swiper.slides.eq(currentIndex).prevAll((\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\")).eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll((\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\")).eq(0).index();\n if (typeof prevIndex === 'undefined') { slideToIndex = nextIndex; }\n else if (typeof nextIndex === 'undefined') { slideToIndex = prevIndex; }\n else if (nextIndex - currentIndex < currentIndex - prevIndex) { slideToIndex = nextIndex; }\n else { slideToIndex = prevIndex; }\n }\n swiper.slideTo(slideToIndex);\n },\n update: function update(initial) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) { return; }\n\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n var direction;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n var prevThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .prevAll((\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex) + \"\\\"]\")).eq(0)\n .index();\n var nextThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .nextAll((\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex) + \"\\\"]\")).eq(0)\n .index();\n if (typeof prevThumbsIndex === 'undefined') { newThumbsIndex = nextThumbsIndex; }\n else if (typeof nextThumbsIndex === 'undefined') { newThumbsIndex = prevThumbsIndex; }\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) { newThumbsIndex = currentThumbsIndex; }\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) { newThumbsIndex = nextThumbsIndex; }\n else { newThumbsIndex = prevThumbsIndex; }\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop || (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children((\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\")).addClass(thumbActiveClass);\n }\n } else {\n for (var i$1 = 0; i$1 < thumbsToActivate; i$1 += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i$1).addClass(thumbActiveClass);\n }\n }\n },\n };\n var Thumbs$1 = {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n var ref = swiper.params;\n var thumbs = ref.thumbs;\n if (!thumbs || !thumbs.swiper) { return; }\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange: function slideChange() {\n var swiper = this;\n if (!swiper.thumbs.swiper) { return; }\n swiper.thumbs.update();\n },\n update: function update() {\n var swiper = this;\n if (!swiper.thumbs.swiper) { return; }\n swiper.thumbs.update();\n },\n resize: function resize() {\n var swiper = this;\n if (!swiper.thumbs.swiper) { return; }\n swiper.thumbs.update();\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n if (!swiper.thumbs.swiper) { return; }\n swiper.thumbs.update();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) { return; }\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy: function beforeDestroy() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) { return; }\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n };\n\n // Swiper Class\n\n var components = [\n Device$1,\n Support$1,\n Browser$1,\n Resize,\n Observer$1,\n Virtual$1,\n Keyboard$1,\n Mousewheel$1,\n Navigation$1,\n Pagination$1,\n Scrollbar$1,\n Parallax$1,\n Zoom$1,\n Lazy$1,\n Controller$1,\n A11y,\n History$1,\n HashNavigation$1,\n Autoplay$1,\n EffectFade,\n EffectCube,\n EffectFlip,\n EffectCoverflow,\n Thumbs$1\n ];\n\n if (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n }\n\n Swiper.use(components);\n\n return Swiper;\n\n})));\n//# sourceMappingURL=swiper.js.map\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _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/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/*!\n * Vue.js v2.7.16\n * (c) 2014-2023 Evan You\n * Released under the MIT License.\n */\nvar emptyObject = Object.freeze({});\nvar isArray = Array.isArray;\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef(v) {\n return v === undefined || v === null;\n}\nfunction isDef(v) {\n return v !== undefined && v !== null;\n}\nfunction isTrue(v) {\n return v === true;\n}\nfunction isFalse(v) {\n return v === false;\n}\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive(value) {\n return (typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean');\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Quick object check - this is primarily used to tell\n * objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\nfunction toRawType(value) {\n return _toString.call(value).slice(8, -1);\n}\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject(obj) {\n return _toString.call(obj) === '[object Object]';\n}\nfunction isRegExp(v) {\n return _toString.call(v) === '[object RegExp]';\n}\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex(val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val);\n}\nfunction isPromise(val) {\n return (isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function');\n}\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString(val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, replacer, 2)\n : String(val);\n}\nfunction replacer(_key, val) {\n // avoid circular deps from v3\n if (val && val.__v_isRef) {\n return val.value;\n }\n return val;\n}\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber(val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n;\n}\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap(str, expectsLowerCase) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };\n}\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n/**\n * Remove an item from an array.\n */\nfunction remove$2(arr, item) {\n var len = arr.length;\n if (len) {\n // fast path for the only / last item\n if (item === arr[len - 1]) {\n arr.length = len - 1;\n return;\n }\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1);\n }\n }\n}\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/**\n * Create a cached version of a pure function.\n */\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });\n});\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase();\n});\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n/* istanbul ignore next */\nfunction polyfillBind(fn, ctx) {\n function boundFn(a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx);\n }\n boundFn._length = fn.length;\n return boundFn;\n}\nfunction nativeBind(fn, ctx) {\n return fn.bind(ctx);\n}\n// @ts-expect-error bind cannot be `undefined`\nvar bind$1 = Function.prototype.bind ? nativeBind : polyfillBind;\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray(list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret;\n}\n/**\n * Mix properties into target object.\n */\nfunction extend(to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to;\n}\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject(arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n}\n/* eslint-disable no-unused-vars */\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop(a, b, c) { }\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n/* eslint-enable no-unused-vars */\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n/**\n * Generate a string containing static keys from compiler modules.\n */\nfunction genStaticKeys$1(modules) {\n return modules\n .reduce(function (keys, m) { return keys.concat(m.staticKeys || []); }, [])\n .join(',');\n}\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return (a.length === b.length &&\n a.every(function (e, i) {\n return looseEqual(e, b[i]);\n }));\n }\n else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return (keysA.length === keysB.length &&\n keysA.every(function (key) {\n return looseEqual(a[key], b[key]);\n }));\n }\n else {\n /* istanbul ignore next */\n return false;\n }\n }\n catch (e) {\n /* istanbul ignore next */\n return false;\n }\n }\n else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n }\n else {\n return false;\n }\n}\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf(arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val))\n return i;\n }\n return -1;\n}\n/**\n * Ensure a function is called only once.\n */\nfunction once(fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n };\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill\nfunction hasChanged(x, y) {\n if (x === y) {\n return x === 0 && 1 / x !== 1 / y;\n }\n else {\n return x === x || y === y;\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\nvar ASSET_TYPES = ['component', 'directive', 'filter'];\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch',\n 'renderTracked',\n 'renderTriggered'\n];\n\nvar config = {\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n /**\n * Whether to record perf\n */\n performance: false,\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n};\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved(str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5f;\n}\n/**\n * Define a property.\n */\nfunction def(obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp(\"[^\".concat(unicodeRegExp.source, \".$_\\\\d]\"));\nfunction parsePath(path) {\n if (bailRE.test(path)) {\n return;\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj)\n return;\n obj = obj[segments[i]];\n }\n return obj;\n };\n}\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nUA && UA.indexOf('android') > 0;\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\nUA && /chrome\\/\\d+/.test(UA) && !isEdge;\nUA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n// Firefox has a \"watch\" function on Object.prototype...\n// @ts-expect-error firebox support\nvar nativeWatch = {}.watch;\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n get: function () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n }); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n }\n catch (e) { }\n}\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer =\n global['process'] && global['process'].env.VUE_ENV === 'server';\n }\n else {\n _isServer = false;\n }\n }\n return _isServer;\n};\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n/* istanbul ignore next */\nfunction isNative(Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\n}\nvar hasSymbol = typeof Symbol !== 'undefined' &&\n isNative(Symbol) &&\n typeof Reflect !== 'undefined' &&\n isNative(Reflect.ownKeys);\nvar _Set; // $flow-disable-line\n/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n}\nelse {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /** @class */ (function () {\n function Set() {\n this.set = Object.create(null);\n }\n Set.prototype.has = function (key) {\n return this.set[key] === true;\n };\n Set.prototype.add = function (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function () {\n this.set = Object.create(null);\n };\n return Set;\n }());\n}\n\nvar currentInstance = null;\n/**\n * This is exposed for compatibility with v3 (e.g. some functions in VueUse\n * relies on it). Do not use this internally, just use `currentInstance`.\n *\n * @internal this function needs manual type declaration because it relies\n * on previously manually authored types from Vue 2\n */\nfunction getCurrentInstance() {\n return currentInstance && { proxy: currentInstance };\n}\n/**\n * @internal\n */\nfunction setCurrentInstance(vm) {\n if (vm === void 0) { vm = null; }\n if (!vm)\n currentInstance && currentInstance._scope.off();\n currentInstance = vm;\n vm && vm._scope.on();\n}\n\n/**\n * @internal\n */\nvar VNode = /** @class */ (function () {\n function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n }\n Object.defineProperty(VNode.prototype, \"child\", {\n // DEPRECATED: alias for componentInstance for backwards compat.\n /* istanbul ignore next */\n get: function () {\n return this.componentInstance;\n },\n enumerable: false,\n configurable: true\n });\n return VNode;\n}());\nvar createEmptyVNode = function (text) {\n if (text === void 0) { text = ''; }\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node;\n};\nfunction createTextVNode(val) {\n return new VNode(undefined, undefined, undefined, String(val));\n}\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode(vnode) {\n var cloned = new VNode(vnode.tag, vnode.data, \n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned;\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\nvar initProxy;\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals_1 = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\n 'require' // for Webpack/Browserify\n );\n var warnNonPresent_1 = function (target, key) {\n warn$2(\"Property or method \\\"\".concat(key, \"\\\" is not defined on the instance but \") +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);\n };\n var warnReservedPrefix_1 = function (target, key) {\n warn$2(\"Property \\\"\".concat(key, \"\\\" must be accessed with \\\"$data.\").concat(key, \"\\\" because \") +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://v2.vuejs.org/v2/api/#data', target);\n };\n var hasProxy_1 = typeof Proxy !== 'undefined' && isNative(Proxy);\n if (hasProxy_1) {\n var isBuiltInModifier_1 = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function (target, key, value) {\n if (isBuiltInModifier_1(key)) {\n warn$2(\"Avoid overwriting built-in modifier in config.keyCodes: .\".concat(key));\n return false;\n }\n else {\n target[key] = value;\n return true;\n }\n }\n });\n }\n var hasHandler_1 = {\n has: function (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals_1(key) ||\n (typeof key === 'string' &&\n key.charAt(0) === '_' &&\n !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data)\n warnReservedPrefix_1(target, key);\n else\n warnNonPresent_1(target, key);\n }\n return has || !isAllowed;\n }\n };\n var getHandler_1 = {\n get: function (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data)\n warnReservedPrefix_1(target, key);\n else\n warnNonPresent_1(target, key);\n }\n return target[key];\n }\n };\n initProxy = function initProxy(vm) {\n if (hasProxy_1) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped ? getHandler_1 : hasHandler_1;\n vm._renderProxy = new Proxy(vm, handlers);\n }\n else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar uid$2 = 0;\nvar pendingCleanupDeps = [];\nvar cleanupDeps = function () {\n for (var i = 0; i < pendingCleanupDeps.length; i++) {\n var dep = pendingCleanupDeps[i];\n dep.subs = dep.subs.filter(function (s) { return s; });\n dep._pending = false;\n }\n pendingCleanupDeps.length = 0;\n};\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n * @internal\n */\nvar Dep = /** @class */ (function () {\n function Dep() {\n // pending subs cleanup\n this._pending = false;\n this.id = uid$2++;\n this.subs = [];\n }\n Dep.prototype.addSub = function (sub) {\n this.subs.push(sub);\n };\n Dep.prototype.removeSub = function (sub) {\n // #12696 deps with massive amount of subscribers are extremely slow to\n // clean up in Chromium\n // to workaround this, we unset the sub for now, and clear them on\n // next scheduler flush.\n this.subs[this.subs.indexOf(sub)] = null;\n if (!this._pending) {\n this._pending = true;\n pendingCleanupDeps.push(this);\n }\n };\n Dep.prototype.depend = function (info) {\n if (Dep.target) {\n Dep.target.addDep(this);\n if (process.env.NODE_ENV !== 'production' && info && Dep.target.onTrack) {\n Dep.target.onTrack(__assign({ effect: Dep.target }, info));\n }\n }\n };\n Dep.prototype.notify = function (info) {\n // stabilize the subscriber list first\n var subs = this.subs.filter(function (s) { return s; });\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n var sub = subs[i];\n if (process.env.NODE_ENV !== 'production' && info) {\n sub.onTrigger &&\n sub.onTrigger(__assign({ effect: subs[i] }, info));\n }\n sub.update();\n }\n };\n return Dep;\n}());\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\nfunction pushTarget(target) {\n targetStack.push(target);\n Dep.target = target;\n}\nfunction popTarget() {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break;\n case 'splice':\n inserted = args.slice(2);\n break;\n }\n if (inserted)\n ob.observeArray(inserted);\n // notify change\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"array mutation\" /* TriggerOpTypes.ARRAY_MUTATION */,\n target: this,\n key: method\n });\n }\n else {\n ob.dep.notify();\n }\n return result;\n });\n});\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\nvar NO_INITIAL_VALUE = {};\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\nfunction toggleObserving(value) {\n shouldObserve = value;\n}\n// ssr mock dep\nvar mockDep = {\n notify: noop,\n depend: noop,\n addSub: noop,\n removeSub: noop\n};\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = /** @class */ (function () {\n function Observer(value, shallow, mock) {\n if (shallow === void 0) { shallow = false; }\n if (mock === void 0) { mock = false; }\n this.value = value;\n this.shallow = shallow;\n this.mock = mock;\n // this.value = value\n this.dep = mock ? mockDep : new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (isArray(value)) {\n if (!mock) {\n if (hasProto) {\n value.__proto__ = arrayMethods;\n /* eslint-enable no-proto */\n }\n else {\n for (var i = 0, l = arrayKeys.length; i < l; i++) {\n var key = arrayKeys[i];\n def(value, key, arrayMethods[key]);\n }\n }\n }\n if (!shallow) {\n this.observeArray(value);\n }\n }\n else {\n /**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\n var keys = Object.keys(value);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n defineReactive(value, key, NO_INITIAL_VALUE, undefined, shallow, mock);\n }\n }\n }\n /**\n * Observe a list of Array items.\n */\n Observer.prototype.observeArray = function (value) {\n for (var i = 0, l = value.length; i < l; i++) {\n observe(value[i], false, this.mock);\n }\n };\n return Observer;\n}());\n// helpers\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe(value, shallow, ssrMockReactivity) {\n if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n return value.__ob__;\n }\n if (shouldObserve &&\n (ssrMockReactivity || !isServerRendering()) &&\n (isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value.__v_skip /* ReactiveFlags.SKIP */ &&\n !isRef(value) &&\n !(value instanceof VNode)) {\n return new Observer(value, shallow, ssrMockReactivity);\n }\n}\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive(obj, key, val, customSetter, shallow, mock, observeEvenIfShallow) {\n if (observeEvenIfShallow === void 0) { observeEvenIfShallow = false; }\n var dep = new Dep();\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return;\n }\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) &&\n (val === NO_INITIAL_VALUE || arguments.length === 2)) {\n val = obj[key];\n }\n var childOb = shallow ? val && val.__ob__ : observe(val, false, mock);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter() {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n if (process.env.NODE_ENV !== 'production') {\n dep.depend({\n target: obj,\n type: \"get\" /* TrackOpTypes.GET */,\n key: key\n });\n }\n else {\n dep.depend();\n }\n if (childOb) {\n childOb.dep.depend();\n if (isArray(value)) {\n dependArray(value);\n }\n }\n }\n return isRef(value) && !shallow ? value.value : value;\n },\n set: function reactiveSetter(newVal) {\n var value = getter ? getter.call(obj) : val;\n if (!hasChanged(value, newVal)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n }\n else if (getter) {\n // #7981: for accessor properties without setter\n return;\n }\n else if (!shallow && isRef(value) && !isRef(newVal)) {\n value.value = newVal;\n return;\n }\n else {\n val = newVal;\n }\n childOb = shallow ? newVal && newVal.__ob__ : observe(newVal, false, mock);\n if (process.env.NODE_ENV !== 'production') {\n dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: obj,\n key: key,\n newValue: newVal,\n oldValue: value\n });\n }\n else {\n dep.notify();\n }\n }\n });\n return dep;\n}\nfunction set(target, key, val) {\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\n warn$2(\"Cannot set reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isReadonly(target)) {\n process.env.NODE_ENV !== 'production' && warn$2(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n var ob = target.__ob__;\n if (isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n // when mocking for SSR, array methods are not hijacked\n if (ob && !ob.shallow && ob.mock) {\n observe(val, false, true);\n }\n return val;\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val;\n }\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' &&\n warn$2('Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.');\n return val;\n }\n if (!ob) {\n target[key] = val;\n return val;\n }\n defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"add\" /* TriggerOpTypes.ADD */,\n target: target,\n key: key,\n newValue: val,\n oldValue: undefined\n });\n }\n else {\n ob.dep.notify();\n }\n return val;\n}\nfunction del(target, key) {\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\n warn$2(\"Cannot delete reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return;\n }\n var ob = target.__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' &&\n warn$2('Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.');\n return;\n }\n if (isReadonly(target)) {\n process.env.NODE_ENV !== 'production' &&\n warn$2(\"Delete operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n if (!hasOwn(target, key)) {\n return;\n }\n delete target[key];\n if (!ob) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"delete\" /* TriggerOpTypes.DELETE */,\n target: target,\n key: key\n });\n }\n else {\n ob.dep.notify();\n }\n}\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray(value) {\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\n e = value[i];\n if (e && e.__ob__) {\n e.__ob__.dep.depend();\n }\n if (isArray(e)) {\n dependArray(e);\n }\n }\n}\n\nfunction reactive(target) {\n makeReactive(target, false);\n return target;\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n makeReactive(target, true);\n def(target, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n return target;\n}\nfunction makeReactive(target, shallow) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (!isReadonly(target)) {\n if (process.env.NODE_ENV !== 'production') {\n if (isArray(target)) {\n warn$2(\"Avoid using Array as root value for \".concat(shallow ? \"shallowReactive()\" : \"reactive()\", \" as it cannot be tracked in watch() or watchEffect(). Use \").concat(shallow ? \"shallowRef()\" : \"ref()\", \" instead. This is a Vue-2-only limitation.\"));\n }\n var existingOb = target && target.__ob__;\n if (existingOb && existingOb.shallow !== shallow) {\n warn$2(\"Target is already a \".concat(existingOb.shallow ? \"\" : \"non-\", \"shallow reactive object, and cannot be converted to \").concat(shallow ? \"\" : \"non-\", \"shallow.\"));\n }\n }\n var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);\n if (process.env.NODE_ENV !== 'production' && !ob) {\n if (target == null || isPrimitive(target)) {\n warn$2(\"value cannot be made reactive: \".concat(String(target)));\n }\n if (isCollectionType(target)) {\n warn$2(\"Vue 2 does not support reactive collection types such as Map or Set.\");\n }\n }\n }\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value.__ob__);\n}\nfunction isShallow(value) {\n return !!(value && value.__v_isShallow);\n}\nfunction isReadonly(value) {\n return !!(value && value.__v_isReadonly);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n var raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n // non-extensible objects won't be observed anyway\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n }\n return value;\n}\n/**\n * @internal\n */\nfunction isCollectionType(value) {\n var type = toRawType(value);\n return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');\n}\n\n/**\n * @internal\n */\nvar RefFlag = \"__v_isRef\";\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref$1(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n var ref = {};\n def(ref, RefFlag, true);\n def(ref, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, shallow);\n def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));\n return ref;\n}\nfunction triggerRef(ref) {\n if (process.env.NODE_ENV !== 'production' && !ref.dep) {\n warn$2(\"received object is not a triggerable ref.\");\n }\n if (process.env.NODE_ENV !== 'production') {\n ref.dep &&\n ref.dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: ref,\n key: 'value'\n });\n }\n else {\n ref.dep && ref.dep.notify();\n }\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nfunction proxyRefs(objectWithRefs) {\n if (isReactive(objectWithRefs)) {\n return objectWithRefs;\n }\n var proxy = {};\n var keys = Object.keys(objectWithRefs);\n for (var i = 0; i < keys.length; i++) {\n proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);\n }\n return proxy;\n}\nfunction proxyWithRefUnwrap(target, source, key) {\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = source[key];\n if (isRef(val)) {\n return val.value;\n }\n else {\n var ob = val && val.__ob__;\n if (ob)\n ob.dep.depend();\n return val;\n }\n },\n set: function (value) {\n var oldValue = source[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n }\n else {\n source[key] = value;\n }\n }\n });\n}\nfunction customRef(factory) {\n var dep = new Dep();\n var _a = factory(function () {\n if (process.env.NODE_ENV !== 'production') {\n dep.depend({\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n dep.depend();\n }\n }, function () {\n if (process.env.NODE_ENV !== 'production') {\n dep.notify({\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value'\n });\n }\n else {\n dep.notify();\n }\n }), get = _a.get, set = _a.set;\n var ref = {\n get value() {\n return get();\n },\n set value(newVal) {\n set(newVal);\n }\n };\n def(ref, RefFlag, true);\n return ref;\n}\nfunction toRefs(object) {\n if (process.env.NODE_ENV !== 'production' && !isReactive(object)) {\n warn$2(\"toRefs() expects a reactive object but received a plain one.\");\n }\n var ret = isArray(object) ? new Array(object.length) : {};\n for (var key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nfunction toRef(object, key, defaultValue) {\n var val = object[key];\n if (isRef(val)) {\n return val;\n }\n var ref = {\n get value() {\n var val = object[key];\n return val === undefined ? defaultValue : val;\n },\n set value(newVal) {\n object[key] = newVal;\n }\n };\n def(ref, RefFlag, true);\n return ref;\n}\n\nvar rawToReadonlyFlag = \"__v_rawToReadonly\";\nvar rawToShallowReadonlyFlag = \"__v_rawToShallowReadonly\";\nfunction readonly(target) {\n return createReadonly(target, false);\n}\nfunction createReadonly(target, shallow) {\n if (!isPlainObject(target)) {\n if (process.env.NODE_ENV !== 'production') {\n if (isArray(target)) {\n warn$2(\"Vue 2 does not support readonly arrays.\");\n }\n else if (isCollectionType(target)) {\n warn$2(\"Vue 2 does not support readonly collection types such as Map or Set.\");\n }\n else {\n warn$2(\"value cannot be made readonly: \".concat(typeof target));\n }\n }\n return target;\n }\n if (process.env.NODE_ENV !== 'production' && !Object.isExtensible(target)) {\n warn$2(\"Vue 2 does not support creating readonly proxy for non-extensible object.\");\n }\n // already a readonly object\n if (isReadonly(target)) {\n return target;\n }\n // already has a readonly proxy\n var existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;\n var existingProxy = target[existingFlag];\n if (existingProxy) {\n return existingProxy;\n }\n var proxy = Object.create(Object.getPrototypeOf(target));\n def(target, existingFlag, proxy);\n def(proxy, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, true);\n def(proxy, \"__v_raw\" /* ReactiveFlags.RAW */, target);\n if (isRef(target)) {\n def(proxy, RefFlag, true);\n }\n if (shallow || isShallow(target)) {\n def(proxy, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n }\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n defineReadonlyProperty(proxy, target, keys[i], shallow);\n }\n return proxy;\n}\nfunction defineReadonlyProperty(proxy, target, key, shallow) {\n Object.defineProperty(proxy, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = target[key];\n return shallow || !isPlainObject(val) ? val : readonly(val);\n },\n set: function () {\n process.env.NODE_ENV !== 'production' &&\n warn$2(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n }\n });\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReadonly(target, true);\n}\n\nfunction computed(getterOrOptions, debugOptions) {\n var getter;\n var setter;\n var onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = process.env.NODE_ENV !== 'production'\n ? function () {\n warn$2('Write operation failed: computed value is readonly');\n }\n : noop;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n var watcher = isServerRendering()\n ? null\n : new Watcher(currentInstance, getter, noop, { lazy: true });\n if (process.env.NODE_ENV !== 'production' && watcher && debugOptions) {\n watcher.onTrack = debugOptions.onTrack;\n watcher.onTrigger = debugOptions.onTrigger;\n }\n var ref = {\n // some libs rely on the presence effect for checking computed refs\n // from normal refs, but the implementation doesn't matter\n effect: watcher,\n get value() {\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n if (process.env.NODE_ENV !== 'production' && Dep.target.onTrack) {\n Dep.target.onTrack({\n effect: Dep.target,\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n watcher.depend();\n }\n return watcher.value;\n }\n else {\n return getter();\n }\n },\n set value(newVal) {\n setter(newVal);\n }\n };\n def(ref, RefFlag, true);\n def(ref, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, onlyGetter);\n return ref;\n}\n\nvar mark;\nvar measure;\nif (process.env.NODE_ENV !== 'production') {\n var perf_1 = inBrowser && window.performance;\n /* istanbul ignore if */\n if (perf_1 &&\n // @ts-ignore\n perf_1.mark &&\n // @ts-ignore\n perf_1.measure &&\n // @ts-ignore\n perf_1.clearMarks &&\n // @ts-ignore\n perf_1.clearMeasures) {\n mark = function (tag) { return perf_1.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf_1.measure(name, startTag, endTag);\n perf_1.clearMarks(startTag);\n perf_1.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once,\n capture: capture,\n passive: passive\n };\n});\nfunction createFnInvoker(fns, vm) {\n function invoker() {\n var fns = invoker.fns;\n if (isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments, vm, \"v-on handler\");\n }\n }\n else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\n }\n }\n invoker.fns = fns;\n return invoker;\n}\nfunction updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {\n var name, cur, old, event;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' &&\n warn$2(\"Invalid handler for event \\\"\".concat(event.name, \"\\\": got \") + String(cur), vm);\n }\n else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n }\n else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove(event.name, oldOn[name], event.capture);\n }\n }\n}\n\nfunction mergeVNodeHook(def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n function wrappedHook() {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove$2(invoker.fns, wrappedHook);\n }\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n }\n else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n }\n else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\nfunction extractPropsFromVNodeData(data, Ctor, tag) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return;\n }\n var res = {};\n var attrs = data.attrs, props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\n tip(\"Prop \\\"\".concat(keyInLowerCase, \"\\\" is passed to component \") +\n \"\".concat(formatComponentName(\n // @ts-expect-error tag is string\n tag || Ctor), \", but the declared prop name is\") +\n \" \\\"\".concat(key, \"\\\". \") +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\".concat(altKey, \"\\\" instead of \\\"\").concat(key, \"\\\".\"));\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res;\n}\nfunction checkProp(res, hash, key, altKey, preserve) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true;\n }\n else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true;\n }\n }\n return false;\n}\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren(children) {\n for (var i = 0; i < children.length; i++) {\n if (isArray(children[i])) {\n return Array.prototype.concat.apply([], children);\n }\n }\n return children;\n}\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.