{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../node_modules/process/browser.js","webpack:///../node_modules/riot/riot.js","webpack:///../node_modules/jquery/dist/jquery.js","webpack:///../node_modules/riot-route/lib/index.js","webpack:///./entry/common.js","webpack:///../node_modules/timers-browserify/main.js","webpack:///../node_modules/setimmediate/setImmediate.js","webpack:///../node_modules/webpack/buildin/global.js","webpack:///../node_modules/riot-observable/dist/observable.js","webpack:///../node_modules/uikit/dist/js/uikit.js","webpack:///../node_modules/uikit/dist/js/uikit-icons.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","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","arguments","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","$","selector","ctx","document","querySelector","styleNode","cssTextProp","__TAGS_CACHE","__TAG_IMPL","REF_DIRECTIVES","SVG_NS","XLINK_REGEX","WIN","window","undefined","RE_EVENTS_PREFIX","RE_HTML_ATTRS","CASE_SENSITIVE_ATTRIBUTES","RE_BOOL_ATTRS","IE_VERSION","documentMode","makeElement","createElementNS","createElement","setAttribute","dom","val","xlink","exec","setAttributeNS","newNode","userNode","byName","needsInject","id","parentNode","replaceChild","head","appendChild","styleSheet","styleManager","add","css","inject","style","keys","map","k","join","cssText","innerHTML","remove","skipRegex","beforeReWords","wordsLastChar","reduce","w","slice","RE_REGEX","RE_VN_CHAR","prev","code","pos","test","start","re","lastIndex","match","next","indexOf","end","brackets","UNDEF","_regex","_settings","R_STRINGS","S_QBLOCKS","source","UNSUPPORTED","RegExp","NEED_ESCAPE","S_QBLOCK2","FINDBRACES","_pairs","cachedBrackets","_cache","_loopback","_rewrite","bp","replace","global","_create","pair","arr","split","_brackets","reOrIdx","_reset","str","tmpl","_bp","isexpr","mark","parts","qblocks","prevStr","index","ch","rech","ix","pushQBlock","unescapeStr","_pos","_lastIndex","slash","hasExpr","loopKeys","expr","trim","set","b","settings","riot","R_MLCOMMS","_tmpl","data","RE_DQUOTE","qstr","j","list","_parseExpr","RE_QBMARK","_","_getTmpl","Function","_logErr","err","riotData","tagName","__","_riot_id","errorHandler","console","error","message","log","clearCache","RE_CSNAME","RE_BREND","asText","cnt","jsb","rightContext","skipBraces","_wrapExpr","mm","lv","ir","JS_CONTEXT","JS_VARNAME","JS_NOPROPS","tb","mvar","observable","el","callbacks","defineProperties","event","fn","writable","configurable","cb","splice","one","trigger","fns","arguments$1","arglen","getPropDescriptor","getOwnPropertyDescriptor","isUndefined","isWritable","obj","descriptor","extend","src","skipAnonymousTags","keepValueAttributes","autoUpdate","$$","querySelectorAll","createDOMPlaceholder","createTextNode","toggleVisibility","show","display","hidden","getAttribute","removeAttribute","setInnerHTML","container","html","isSvg","node","ownerDocument","importNode","DOMParser","parseFromString","documentElement","walkAttributes","toLowerCase","createFragment","createDocumentFragment","safeInsert","root","curr","insertBefore","styleObjectToString","acc","prop","walkNodes","context","res","firstChild","nextSibling","freeze","mkEl","setAttr","getAttr","remAttr","walkAttrs","createFrag","isNil","isBlank","isFunction","isObject","owner","ownerSVGElement","isArray","isBoolAttr","isString","check","contains","item","each","startsWith","uid","define","options","toCamel","toUpperCase","warn","misc","objectCreate","arrayishAdd","ensureArray","dest","isArr","hasIndex","oldIndex","getName","skipDataIs","child","namedTag","inheritParentProps","parent","reHasYield","reYieldAll","reYieldSrc","reYieldDest","rootEls","tr","th","td","col","tblTags","mkdom","ref","text","def","replaceYield","select","selectedIndex","tname","childElementCount","specialTags","EVENT_ATTR_RE","getImmediateCustomParent","tag","ptag","isAnonymous","handleEvent","handler","currentTarget","target","srcElement","which","charCode","keyCode","preventUpdate","isMounted","update","setEventHandler","eventName","removeEventListener","addEventListener","initChild","opts","createTag","tags","arrayishRemove","makeVirtual","sib","tail","frag","virts","makeReplaceVirtual","updateExpression","attrName","normalizeAttrName","attr","isToggle","isVirtual","isStyleAttr","isClassAttr","isValueAttr","wasCreated","mount","hasValue","isObj","JSON","stringify","wasParsedOnce","bool","isRtag","_tag","unmount","impl","attrs","a","onUnmount","delName","dataIs","updateDataIs","nodeValue","attribute","expressions","updateOpts","isLoop","instAttrs","query","filter","Tag","onCreate","class","constructor","mount$1","tag2","elem","allTags","nodeList","_el","pushTagsTo","riotTag","mixins","globals","mixins_id","mixin","mix","g","store","update$1","unregister","core","componentMixin","tag$$1","instance","props","propsBlacklist","proto","getPrototypeOf","getOwnPropertyNames","hasGetterSetter","init","moveChild","newPos","moveVirtual","mkitem","moveNestedTags","this$1","move","nextTag","insert","append","_each","mustReorder","keyAttr","hasKeyAttrExpr","placeholder","ifExpr","oldItems","removeChild","items","tmpItems","hasKeys","filteredItemsCount","_item","itemId","originalItem","keyedItem","getItemId","doReorder","oldPos","isNew","mustAppend","mustCreate","cloneNode","unmountRedundant","RefExpr","attrValue","rawValue","hasExp","old","customParent","tagOrDom","__ref","refs","createRefDirective","unmountAll","IfExpr","stub","pristine","current","parseExpressions","createIfDirective","mustIncludeRoot","tagImpl","type","nodeType","attributes","parentElement","outerHTML","hasIsDirective","parseAttributes","setMountState","skipAnonymous","conf","isInline","implAttrs","nextOpts","canTrigger","shouldUpdate","componentUpdate","isPrototypeOf","v","globalMixin","componentMount","mustKeepRoot","tagIndex","forEach","tagUnmount","implClass","_innerHTML","settings$1","util","vdom","getTagName","mountTo","selectTags","getTag","initChildTag","moveChildTag","getImmediateCustomParentTag","Tag$1","tag$1","tag2$1","mount$2","mixin$1","update$2","unregister$1","observable$1","riot$1","default","factory","noGlobal","getProto","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","doc","script","toType","jQuery","rtrim","isArrayLike","jquery","toArray","num","pushStack","elems","ret","merge","prevObject","callback","first","eq","last","sort","copy","copyIsArray","clone","deep","isPlainObject","expando","Math","random","isReady","msg","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","grep","invert","matches","callbackExpect","arg","guid","iterator","Sizzle","Expr","getText","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pop","push_native","booleans","whitespace","identifier","pseudos","rwhitespace","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","childNodes","els","seed","nid","groups","newSelector","newContext","getElementById","getElementsByTagName","getElementsByClassName","qsa","toSelector","testContext","qsaError","cache","cacheLength","shift","markFunction","assert","addHandle","attrHandle","siblingCheck","cur","diff","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","hasCompare","subWindow","defaultView","top","attachEvent","className","createComment","getById","getElementsByName","attrId","find","getAttributeNode","tmp","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","unshift","elements","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","sibling","has","targets","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","flag","createOptions","firing","memory","fired","locked","firingIndex","fire","stopOnFalse","empty","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","pipe","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","readyException","readyList","completed","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","all","letter","camelCase","string","acceptData","Data","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","parse","getData","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","swap","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","values","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","_default","getAll","setGlobalEval","refElements","optgroup","tbody","tfoot","colgroup","caption","div","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","checkClone","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","types","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","load","noBubble","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","prepend","before","after","replaceWith","appendTo","prependTo","insertAfter","replaceAll","original","rnumnonpx","getStyles","opener","getComputedStyle","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","propHooks","percent","eased","duration","step","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","parseInt","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","hover","fnOver","fnOut","unbind","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","_jQuery","_$","noConflict","debouncedEmit","parser","secondParser","RE_ORIGIN","hist","history","loc","prot","Router","clickEvent","ontouchstart","central","started","routeFound","emitStack","emitStackLevel","DEFAULT_PARSER","path","DEFAULT_SECOND_PARSER","f","autoExec","normalize","getPathFromRoot","getPathFromBase","route","force","isRoot","go","shouldReplace","replaceState","pushState","third","some","action","mainRouter","newSubRouter","router","fn2","q","UIkit","use","Icons","require","obs","activeLoading","loading","loadingDom","passiveLoading","setToken","cookie","getToken","st","ed","substring","deleteCookie","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","setImmediate","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","task","objPrototype","hyphenateCache","hyphenateRe","hyphenate","camelizeRe","camelize","toUpper","ucfirst","charAt","strPrototype","startsWithFn","search","lastIndexOf","endsWithFn","endsWith","substr","arrPrototype","includesFn","includesStr","includes","includesArray","findIndexFn","findIndex","predicate","isDocument","isJQuery","isNode","isElement","isNodeCollection","isBoolean","isNumber","isEmpty","toBoolean","toNumber","number","Number","toFloat","toNode","element","toNodes","Boolean","toWindow","toList","toMs","isEqual","other","assign","sortBy","ref$1","propA","propB","uniqueBy","seen","Set","clamp","min","intersectRect","r1","r2","bottom","pointInRect","point","x","y","Dimensions","ratio","dimensions","aProp","contain","maxDimensions","cover","hasAttr","hasAttribute","isIE","navigator","userAgent","isRtl","hasTouchEvents","hasPointerEvents","PointerEvent","hasTouch","DocumentTouch","maxTouchPoints","pointerDown","pointerMove","pointerUp","pointerEnter","pointerLeave","pointerCancel","getContext","queryAll","findAll","isContextSelector","_query","queryFn","removes","contextSanitizeRe","selectorRe","splitSelector","selectors$1","previousElementSibling","contextSelectorRe","elProto","Element","matchesFn","closestFn","ancestor","escapeFn","CSS","voidElements","area","br","embed","hr","img","keygen","link","menuitem","meta","track","wbr","isVoidElement","isVisible","selInput","isInput","within","getArgs","listener","useCapture","toEventTargets","selfFilter","useCaptureFilter","condition","notCanceled","dispatchEvent","createEvent","initCustomEvent","delegates","capture","isEventTarget","toEventTarget","isTouch","getEventPos","Promise","PromiseFn","executor","iterable","resolver","race","header","getImage","srcset","sizes","Image","getIndex","finite","hasChildNodes","insertNodes","called","reason","onResolved","fragmentRe","singleTagRe","insertAdjacentHTML","nextElementSibling","isHtml","apply$1","removeClasses","cls","replaceClass","classList","getArgs$1","supports","Force","Multiple","_multiple","_force","propName","getStyle","removeProperty","pseudoElt","vars","getCssVar","docEl","prefixedName","transition","timing","transitionProperty","transitionDuration","transitionTimingFunction","Transition","cancel","origin","out","hasReset","in","dirs","positionAt","elAttach","targetAttach","elOffset","targetOffset","flip","boundary","getPos","flipped","dim","getDimensions","targetDim","moveTo","getOffsets","boundaries","align","alignFlip","elemOffset","centerOffset","centerTargetOffset","newVal","coordinates","currentOffset","innerHeight","innerWidth","elementOffset","offsetPosition","offsetTop","offsetLeft","boxModelAdjust","sizing","attach","factor","offsets","flipPosition","toPx","fastdom","reads","writes","read","scheduleFlush","write","clear","remove$1","flush","recursion","runTasks","scheduled","tasks","MouseTracker","positions","movesTo","prevPosition","diagonal","intersection","ref_0","x1","y1","ref_1","x2","y2","ref$1_0","x3","y3","ref$1_1","x4","y4","denominator","ua","intersect","strats","mergeFnData","parentVal","childVal","vm","concatStrat","defaultStrat","mergeOptions","extends","mergeKey","key$1","parseOptions","created","beforeConnect","connected","beforeDisconnect","disconnected","destroy","methods","Player","post","cmd","contentWindow","isInView","overflowParents","getViewport","vp","client","getScrollingElement","scrollIntoView","loop","scrollElement","scroll","scrolledOver","heightOffset","scrollParents","scrollHeight","viewportHeight","viewportTop","viewportDist","overflowRe","scrollEl","scrollingElement","isVideo","isYoutube","isVimeo","isHTML5","isIFrame","enableApi","poller","youtube","vimeo","player_id","play","pause","mute","muted","IntersectionObserver","IntersectionObserverClass","rootMargin","pending","records","takeRecords","passive","entry","inView","isIntersecting","observe","disconnect","getComponentName","_init","__proto__","DATA","_connected","_callUpdate","plugin","installed","component","Sub","super","globalAPI","_callHook","$options","_callConnected","_computeds","_initProps","_initEvents","_initObserver","_callDisconnected","_observer","_unbindEvents","_callWatches","updates","_frames","hooksAPI","getProps","data$1","coerce","prop$1","registerComputed","$props","$el","registerEvent","_events","notIn","every","normalizeData","_uid","_initData","_initMethods","_initComputeds","$mount","watch","$name","exclude","MutationObserver","$reset","attributeFilter","stateAPI","components","argsArray","functional","getComponent","$destroy","install","_initialized","getComponents","connect","name$1","componentAPI","$emit","removeEl","$create","$update","$getComponent","names","$container","instanceAPI","Class","Togglable","queued","initProps","paddingTop","paddingBottom","marginTop","marginBottom","hideProps","hasAnimation","hasTransition","toggleElement","_toggleElement","toggled","isToggled","untoggled","toggleNow","updateAria","_toggle","inner","lastElementChild","currentHeight","endHeight","toggleHeight","changed","Accordion","collapsible","multiple","clsOpen","isItem","_wrapper","alert","selClose","Video","automute","autoplay","preload","player","naturalWidth","videoWidth","clientWidth","naturalHeight","videoHeight","clientHeight","Position","clsPos","offset$1","axis","getAxis","Drop","boundaryAlign","delayShow","delayHide","clsDrop","tracker","clearTimers","delayOn","isActive","isDelaying","showTimer","getPositionedElements","hideTimer","alignTo","dropdown","formCustom","files","gif","inview","Margin","firstColumn","rows","getRows","stacks","row","getOffset","leftDim","grid","masonry","parallax","clsStack","abs","transitionInProgress","translates","elHeight","sum","maxColumnHeight","getPaddingBottom","height$1","scrolled","distance","column","maxScrolled","FlexBug","selMinHeight","forceHeight","order","heightMatch","heights","getHeights","hasMinHeight","minHeight","hasShrunk","toFixed","heightViewport","offsetBottom","dataset","heightExpand","SVG","icon","strokeAnimation","focusable","include","svg","getSvg","applyAttributes","svgEl","equals","insertSVG","getMaxPathLength","svgs","decodeURIComponent","symbols","symbolRe","parseSymbols","parseSVG","viewBox","stroke","getTotalLength","icons","spinner","totop","Icon","added","cmp","isIcon","getIcon","applyRtl","IconComponent","Slidenav","Search","Close","Spinner","dataSrc","dataSrcset","cacheKey","dataWidth","dataHeight","dataSizes","isImg","storage","setSrcAttrs","sizesToPixel","getPlaceholderImage","observer","currentSrc","devicePixelRatio","bgSize","srcSize","descriptors","srcSetRe","size","entries","backgroundImage","sizesRe","matchMedia","sizeRe","additionRe","sessionStorage","Media","media","toMedia","leader","fill","clsWrapper","clsHide","attrFill","wrapper","floor","Container","active$1","Modal","selPanel","escClose","bgClose","overlay","panel","transitionElement","modal","clsPage","animate$1","_reject","dialog","labels","confirm","resolved","prompt","ok","nav","navbar","dropbar","dropbarMode","dropbarAnchor","dropdowns","getDropdown","getActive","drop","transitionTo","newHeight","oldHeight","clip","offcanvas","clsContainer","clsFlip","clsContainerAnimation","clsSidebarAnimation","clsMode","clsOverlay","getViewport$1","viewport","overflowAuto","selContainer","selContent","responsive","scrollspy","repeat","inViewClass","_ukScrollspyState","scrollspyNav","links","sticky","clsActive","clsInactive","clsFixed","clsBelow","selTarget","widthElement","showOnUp","isFixed","elTop","topOffset","bottomOffset","parseProp","inactive","lastScroll","margins","initTimestamp","lastDir","performance","initScroll","propOffset","Switcher","swiping","attrItem","connects","toggles","hasPrev","tab","coreComponents","Alert","Cover","Dropdown","FormCustom","Gif","Grid","HeightMatch","HeightViewport","Img","Leader","Nav","Navbar","Offcanvas","OverflowAuto","Responsive","Scroll","Scrollspy","ScrollspyNav","Sticky","Svg","Tab","Toggle","SlidenavNext","SlidenavPrevious","SearchIcon","Marker","NavbarToggleIcon","OverlayIcon","PaginationNext","PaginationPrevious","Totop","countdown","date","days","hours","minutes","seconds","units","total","timespan","digits","digit","Animate","sheet","insertRule","children$1","propsFrom","oldScrollY","propsTo","getPositionWithMargin","from","zIndex","pointerEvents","filter$1","selActive","updateState","listA","listB","actives","setState","mergeState","getState","stateFilter","ref_sort","stateSort","stateOrder","getFilter","group","matchFilter","getSelector","sorted","localeCompare","numeric","sortItems","filterBy","Animations","slide","transform","translate","translated","scale3d","Animations$1","fade","triggerUpdate","SliderAutoplay","autoplayInterval","pauseOnHover","startAutoplay","stopAutoplay","slides","draggable","SliderDrag","threshold","prevPos","selSlides","drag","_transitioner","getDistance","dragging","prevIndex","unbindMove","dis","nextIndex","_getDistance","itemShown","edge","_translate","_show","dirChange","userSelect","Slider","selNav","selNavItem","navItems","maxIndex","updateNav","getValidIndex","clsActivated","velocity","Transitioner","transitionOptions","speedUp","selList","itemshown","getDirection","_getTransitioner","transitioner","Slideshow","beforeitemshow","itemhidden","LightboxPanel","delayControls","videoAutoplay","template","selCaption","showControls","hideControls","getItem","loadItem","alt","setItem","setError","video","poster","setIframe","getIframe","encodeURI","withCredentials","ref_response","controlsTimer","lightbox","Lightbox","lightboxPanel","toItem","containers","notification","clsClose","clsMsg","closeAll","immediate","marginProp","startProps","removeFn","Parallax","bgPos","isColor","isCssProp","steps","getUnit","color","parseColor","covers","down","bgProps","bg","backgroundSize","_image","dimEl","dimImage","span","posPercentage","backgroundRepeat","getCss","getStep","getValue","getOffsetElement","ease","SliderReactive","getLeft","center","getElLeft","centerEl","getMax","getWidth","triggerUpdate$1","slider","sets","updateTranslates","getItemIn","getActives","slideLeft","avgWidth","leftCenter","slideWidth","reorder","itemshow","slideIndex","sliderParallax","selItem","ref_detail","getCurrent","isIn","trackTimer","obj$1","Animations$2","pull","slideshow","maxHeight","sortable","clsItem","clsPlaceholder","clsDrag","clsDragState","clsBase","clsNoDrag","clsEmpty","clsCustom","scrollY","touchAction","touched","boxSizing","elementFromPoint","getSortable","previous","isPredecessor","tooltip","_hasTitle","_unbind","upload","allow","clsDragover","concurrent","maxSize","mime","msgInvalidMime","msgInvalidName","msgInvalidSize","beforeAll","completeAll","loadEnd","loadStart","change","transfer","dataTransfer","dragenter","dragover","dragleave","match$1","chunks","chunk","FormData","Countdown","Filter","Notification","SliderParallax","SlideshowParallax","Sortable","Tooltip","Upload","register","applyMutation","mutation","addedNodes","removedNodes","i$1","applyChildList","attributeName","applyAttribute","mutations","childList","subtree","characterData","boot"],"mappings":"aACE,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,QAKfF,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,M,oBCjFrD,IAOIC,EACAC,EARAC,EAAUnC,EAAOD,QAAU,GAU/B,SAASqC,IACL,MAAM,IAAIC,MAAM,mCAEpB,SAASC,IACL,MAAM,IAAID,MAAM,qCAsBpB,SAASE,EAAWC,GAChB,GAAIP,IAAqBQ,WAErB,OAAOA,WAAWD,EAAK,GAG3B,IAAKP,IAAqBG,IAAqBH,IAAqBQ,WAEhE,OADAR,EAAmBQ,WACZA,WAAWD,EAAK,GAE3B,IAEI,OAAOP,EAAiBO,EAAK,GAC/B,MAAME,GACJ,IAEI,OAAOT,EAAiB7B,KAAK,KAAMoC,EAAK,GAC1C,MAAME,GAEJ,OAAOT,EAAiB7B,KAAKuC,KAAMH,EAAK,MAvCnD,WACG,IAEQP,EADsB,mBAAfQ,WACYA,WAEAL,EAEzB,MAAOM,GACLT,EAAmBG,EAEvB,IAEQF,EADwB,mBAAjBU,aACcA,aAEAN,EAE3B,MAAOI,GACLR,EAAqBI,GAjB7B,GAwEA,IAEIO,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaF,IAGlBE,GAAW,EACPF,EAAaK,OACbJ,EAAQD,EAAaM,OAAOL,GAE5BE,GAAc,EAEdF,EAAMI,QACNE,KAIR,SAASA,IACL,IAAIL,EAAJ,CAGA,IAAIM,EAAUd,EAAWU,GACzBF,GAAW,EAGX,IADA,IAAIO,EAAMR,EAAMI,OACVI,GAAK,CAGP,IAFAT,EAAeC,EACfA,EAAQ,KACCE,EAAaM,GACdT,GACAA,EAAaG,GAAYO,MAGjCP,GAAc,EACdM,EAAMR,EAAMI,OAEhBL,EAAe,KACfE,GAAW,EAnEf,SAAyBS,GACrB,GAAItB,IAAuBU,aAEvB,OAAOA,aAAaY,GAGxB,IAAKtB,IAAuBI,IAAwBJ,IAAuBU,aAEvE,OADAV,EAAqBU,aACdA,aAAaY,GAExB,IAEWtB,EAAmBsB,GAC5B,MAAOd,GACL,IAEI,OAAOR,EAAmB9B,KAAK,KAAMoD,GACvC,MAAOd,GAGL,OAAOR,EAAmB9B,KAAKuC,KAAMa,KAgD7CC,CAAgBJ,IAiBpB,SAASK,EAAKlB,EAAKmB,GACfhB,KAAKH,IAAMA,EACXG,KAAKgB,MAAQA,EAYjB,SAASC,KA5BTzB,EAAQ0B,SAAW,SAAUrB,GACzB,IAAIsB,EAAO,IAAIC,MAAMC,UAAUd,OAAS,GACxC,GAAIc,UAAUd,OAAS,EACnB,IAAK,IAAIjD,EAAI,EAAGA,EAAI+D,UAAUd,OAAQjD,IAClC6D,EAAK7D,EAAI,GAAK+D,UAAU/D,GAGhC6C,EAAMmB,KAAK,IAAIP,EAAKlB,EAAKsB,IACJ,IAAjBhB,EAAMI,QAAiBH,GACvBR,EAAWa,IASnBM,EAAK7B,UAAU0B,IAAM,WACjBZ,KAAKH,IAAI0B,MAAM,KAAMvB,KAAKgB,QAE9BxB,EAAQgC,MAAQ,UAChBhC,EAAQiC,SAAU,EAClBjC,EAAQkC,IAAM,GACdlC,EAAQmC,KAAO,GACfnC,EAAQoC,QAAU,GAClBpC,EAAQqC,SAAW,GAInBrC,EAAQsC,GAAKb,EACbzB,EAAQuC,YAAcd,EACtBzB,EAAQwC,KAAOf,EACfzB,EAAQyC,IAAMhB,EACdzB,EAAQ0C,eAAiBjB,EACzBzB,EAAQ2C,mBAAqBlB,EAC7BzB,EAAQ4C,KAAOnB,EACfzB,EAAQ6C,gBAAkBpB,EAC1BzB,EAAQ8C,oBAAsBrB,EAE9BzB,EAAQ+C,UAAY,SAAU1E,GAAQ,MAAO,IAE7C2B,EAAQgD,QAAU,SAAU3E,GACxB,MAAM,IAAI6B,MAAM,qCAGpBF,EAAQiD,IAAM,WAAc,MAAO,KACnCjD,EAAQkD,MAAQ,SAAUC,GACtB,MAAM,IAAIjD,MAAM,mCAEpBF,EAAQoD,MAAQ,WAAa,OAAO,I,oBCvLpC;CAKQ,SAAWxF,GAAW,aAQ5B,SAASyF,EAAEC,EAAUC,GACnB,OAAQA,GAAOC,UAAUC,cAAcH,GAGzC,IAmFII,EAEAC,EAjFFC,EAAe,GAEfC,EAAa,GAYbC,EAAiB,CAAC,MAAO,YAiBzBC,EAAS,6BACTC,EAAc,eAEdC,EAPW,oBAOEC,YAAgDC,EAAYD,OAKzEE,EAAmB,MACnBC,EAAgB,gDAEhBC,EAA4B,CAC1B,QAAW,UACX,oBAAuB,uBAQzBC,EAAgB,oQAEhBC,EAAmF,GAArEP,GAAOA,EAAIT,UAAuC,IAAIiB,aAOtE,SAASC,EAAYrG,GACnB,MAAgB,QAATA,EAAiBmF,SAASmB,gBAAgBZ,EAAQ1F,GAAQmF,SAASoB,cAAcvG,GAS1F,SAASwG,EAAaC,EAAKzG,EAAM0G,GAC/B,IAAIC,EAAQhB,EAAYiB,KAAK5G,GACzB2G,GAASA,EAAM,GACfF,EAAII,eA5CG,+BA4CsBF,EAAM,GAAID,GAEvCD,EAAID,aAAaxG,EAAM0G,GAM7B,IAOQI,EAEAC,EATJC,EAAS,GACTC,GAAc,EAGdrB,IAGIkB,EAAUT,EAAY,SAEtBU,EAAW/B,EAAE,oBAEjBwB,EAAaM,EAAS,OAAQ,YAE1BC,GACEA,EAASG,KAAMJ,EAAQI,GAAKH,EAASG,IACzCH,EAASI,WAAWC,aAAaN,EAASC,IACnC5B,SAASkC,KAAKC,YAAYR,GAIrCxB,GAfAD,EAaSyB,GAEeS,YAM1B,IAAIC,EAAe,CACjBnC,UAAWA,EAMXoC,IAAK,SAAaC,EAAK1H,GACrBgH,EAAOhH,GAAQ0H,EACfT,GAAc,GAMhBU,OAAQ,WACN,GAAK/B,GAAQqB,EAAb,CACAA,GAAc,EACd,IAAIW,EAAQzH,OAAO0H,KAAKb,GACrBc,KAAI,SAAUC,GAAK,OAAOf,EAAOe,MACjCC,KAAK,MAEJ1C,EAAeA,EAAY2C,QAAUL,EAClCvC,EAAU6C,UAAYN,IAO/BO,OAAQ,SAAgBnI,UACfgH,EAAOhH,GACdiH,GAAc,IAUdmB,EAAY,WAEd,IAEIC,EAAgB,CAClB,OACA,UACA,KACA,OACA,KACA,aACA,SACA,SACA,SACA,OACA,SAGEC,EAAgBD,EAAcE,QAAO,SAAU/G,EAAGgH,GACpD,OAAOhH,EAAIgH,EAAEC,OAAO,KACnB,IAECC,EAAW,6EACXC,EAAa,QAEjB,SAASC,EAAMC,EAAMC,GACnB,OAASA,GAAO,GAAK,KAAKC,KAAKF,EAAKC,MACpC,OAAOA,EA+CT,OA5CA,SAAqBD,EAAMG,GAEzB,IAAIC,EAAK,MACLH,EAAMG,EAAGC,UAAYF,IACrBG,EAAQF,EAAGrC,KAAKiC,GAAM,GAAGM,MAAMT,GAEnC,GAAIS,EAAO,CACT,IAAIC,EAAON,EAAMK,EAAM,GAAGzG,OAGtB5C,EAAI+I,EADRC,EAAMF,EAAKC,EAAMC,IAGjB,GAAIA,EAAM,IAxCM,oBAwCcO,QAAQvJ,GACpC,OAAOsJ,EAGT,GAAU,MAANtJ,EAEoB,MAAlB+I,EAAKC,EAAM,KACbE,EAAQI,QAGL,GAAU,MAANtJ,GAAmB,MAANA,GAElB+I,IAAOC,KAAShJ,IACfgJ,EAAMF,EAAKC,EAAMC,IAAQ,IACzBH,EAAWI,KAAKF,EAAKC,OACxBE,EAAQI,QAGL,IAAKd,EAAce,QAAQvJ,GAAI,CAIpC,IAFA,IAAIwJ,EAAMR,EAAM,IAEPA,GAAO,GAAKH,EAAWI,KAAKF,EAAKC,OACrCT,EAAcgB,QAAQR,EAAKJ,MAAMK,EAAM,EAAGQ,MAC7CN,EAAQI,IAKd,OAAOJ,GAvEK,GA0FZO,EAAW,SAAWC,GAExB,IAuCEC,EAEAC,EApCAC,EAAY,6FAEZC,EAAYD,EAAUE,OAAS,IAC7B,wDAAwDA,OAAS,IACjE,kFAAkFA,OAEpFC,EAAcC,OAAO,qCAErBC,EAAc,sBAEdC,EAAYN,EAAUE,OAAS,IAAM,gBAAgBA,OAErDK,EAAa,CACX,IAAKH,OAAO,UAAcE,EAjBnB,KAkBP,IAAKF,OAAO,YAAcE,EAlBnB,KAmBP,IAAKF,OAAO,UAAcE,EAnBnB,MAwBPE,EAAS,CACX,IAAK,IACL,IAAK,IACL,UACA,YACA,WACAJ,OAAO,uBAAyBE,EA9BvB,KAsBC,MAUV,yDACA,wBAIAG,OAxCW,EA0CXC,EAAS,GAGX,SAASC,EAAWrB,GAAM,OAAOA,EAEjC,SAASsB,EAAUtB,EAAIuB,GAErB,OADKA,IAAMA,EAAKH,GACT,IAAIN,OACTd,EAAGY,OAAOY,QAAQ,KAAMD,EAAG,IAAIC,QAAQ,KAAMD,EAAG,IAAKvB,EAAGyB,OA/CjD,IA+CmE,IAI9E,SAASC,EAASC,GAChB,GA9BU,QA8BNA,EAAoB,OAAOT,EAE/B,IAAIU,EAAMD,EAAKE,MAAM,KAErB,GAAmB,IAAfD,EAAInI,QAAgBoH,EAAYf,KAAK6B,GACvC,MAAM,IAAI/I,MAAM,yBAA2B+I,EAAO,KASpD,OAPAC,EAAMA,EAAIlI,OAAOiI,EAAKH,QAAQT,EAAa,MAAMc,MAAM,OAEnD,GAAKP,EAASM,EAAI,GAAGnI,OAAS,EAAI,aAAeyH,EAAO,GAAIU,GAChEA,EAAI,GAAKN,EAASK,EAAKlI,OAAS,EAAI,WAAayH,EAAO,GAAIU,GAC5DA,EAAI,GAAKN,EAASJ,EAAO,GAAIU,GAC7BA,EAAI,GAAKd,OAAO,QAAUc,EAAI,GAAK,cAAgBA,EAAI,GAAK,KAAOZ,EAhE1D,KAiETY,EAAI,GAAKD,EACFC,EAGT,SAASE,EAAWC,GAClB,OAAOA,aAAmBjB,OAASN,EAAOuB,GAAWX,EAAOW,GAgH9D,SAASC,EAAQL,IACVA,IAASA,EAjKJ,UAiKyBP,EAAO,KACxCA,EAASM,EAAQC,GACjBnB,EAnKQ,QAmKCmB,EAAmBN,EAAYC,EACxCF,EAAO,GAAKZ,EAAOU,EAAO,KAE5BC,EAAiBQ,EAgCnB,OAnJAG,EAAUD,MAAQ,SAAgBI,EAAKC,EAAMC,GAEtCA,IAAOA,EAAMf,GAElB,IAEElB,EACAkC,EACArC,EACAF,EAKEwC,EAAMpC,EATRqC,EAAQ,GAKRtC,EAAKmC,EAAI,GAEPI,EAAU,GACVC,EAAU,GAKd,IAFAJ,EAASrC,EAAQC,EAAGC,UAAY,EAExBC,EAAQF,EAAGrC,KAAKsE,IAAO,CAK7B,GAHAhC,EAAYD,EAAGC,UACfJ,EAAMK,EAAMuC,MAERL,EAAQ,CAEV,GAAIlC,EAAM,GAAI,CAEZ,IAAIwC,EAAKxC,EAAM,GACXyC,EAAO1B,EAAWyB,GAClBE,EAAK,EAGT,IADAD,EAAK1C,UAAYA,EACTC,EAAQyC,EAAKhF,KAAKsE,IACxB,GAAI/B,EAAM,IACR,GAAIA,EAAM,KAAOwC,IAAQE,OACpB,MAAOA,EAAM,WAElBD,EAAK1C,UAAY4C,EAAW3C,EAAMuC,MAAOE,EAAK1C,UAAWC,EAAM,IAGnEF,EAAGC,UAAY2C,EAAKX,EAAIxI,OAASkJ,EAAK1C,UACtC,SAGF,IAAKC,EAAM,GAAI,CACbF,EAAGC,UAAY4C,EAAWhD,EAAKI,EAAWC,EAAM,IAChD,UAICA,EAAM,KACT4C,EAAYb,EAAIzC,MAAMO,EAAOF,IAC7BE,EAAQC,EAAGC,WACXD,EAAKmC,EAAI,GAAKC,GAAU,KACrBnC,UAAYF,GAUnB,OANIkC,GAAOlC,EAAQkC,EAAIxI,QACrBqJ,EAAYb,EAAIzC,MAAMO,IAGxBuC,EAAMC,QAAUA,EAETD,EAEP,SAASQ,EAAavK,GAChBiK,IACFjK,EAAIiK,EAAUjK,EACdiK,EAAU,IAERN,GAAQE,EACVE,EAAM9H,KAAKjC,GAAKA,EAAEiJ,QAAQW,EAAI,GAAI,OAElCG,EAAM9H,KAAKjC,GAIf,SAASsK,EAAWE,EAAMC,EAAYC,GAWpC,OAVIA,IACFD,EAAa7D,EAAU8C,EAAKc,IAG1Bb,GAAQc,EAAaD,EAAO,IAC9BV,EAAO,IAAWE,EAAQ9I,OAAS,IACnC8I,EAAQ/H,KAAKyH,EAAIzC,MAAMuD,EAAMC,IAC7BR,GAAWP,EAAIzC,MAAMO,EAAOgD,GAAQV,EACpCtC,EAAQiD,GAEHA,IAIXlB,EAAUoB,QAAU,SAAkBjB,GACpC,OAAOb,EAAO,GAAGtB,KAAKmC,IAGxBH,EAAUqB,SAAW,SAAmBC,GACtC,IAAIxM,EAAIwM,EAAKlD,MAAMkB,EAAO,IAE1B,OAAOxK,EACH,CAAEmB,IAAKnB,EAAE,GAAIiJ,IAAKjJ,EAAE,GAAI6G,IAAK2D,EAAO,GAAKxK,EAAE,GAAGyM,OAASjC,EAAO,IAC9D,CAAE3D,IAAK2F,EAAKC,SAGlBvB,EAAU5H,MAAQ,SAAgByH,GAChC,OAAOA,EAAOD,EAAQC,GAAQP,GA0BhClK,OAAOC,eAAe2K,EAAW,WAAY,CAC3CwB,IAfF,SAAuBrM,GACrB,IAAIsM,EAGJA,GADAtM,EAAIA,GAAK,IACHqJ,SACNpJ,OAAOC,eAAeF,EAAG,WAAY,CACnCqM,IAAKtB,EACL3K,IAAK,WAAc,OAAO8J,GAC1B/J,YAAY,IAEdqJ,EAAYxJ,EACZ+K,EAAOuB,IAKPlM,IAAK,WAAc,OAAOoJ,KAI5BqB,EAAU0B,cAA2B,IAATC,GAAwBA,EAAKD,UAAY,GACrE1B,EAAUwB,IAAMtB,EAChBF,EAAU3C,UAAYA,EAEtB2C,EAAUpB,UAAYA,EACtBoB,EAAU4B,UAtNI,qCAuNd5B,EAAUnB,UAAYA,EACtBmB,EAAUd,UAAYA,EAEfc,EA/NM,GA4OXI,EAAO,WAET,IAAId,EAAS,GAEb,SAASuC,EAAO1B,EAAK2B,GACnB,OAAK3B,GAEGb,EAAOa,KAASb,EAAOa,GAmCjC,SAAkBA,GAChB,IAAImB,EAUN,SAAmBnB,GACjB,IAEImB,EAFAd,EAAQhC,EAASuB,MAAMI,EAAIT,QAAQqC,EAAW,KAAM,GACpDC,EAAOxB,EAAMC,QAGjB,GAAID,EAAM7I,OAAS,GAAK6I,EAAM,GAAI,CAChC,IAAI9L,EAAGuN,EAAGC,EAAO,GAEjB,IAAKxN,EAAIuN,EAAI,EAAGvN,EAAI8L,EAAM7I,SAAUjD,GAElC4M,EAAOd,EAAM9L,MAEA4M,EAAW,EAAJ5M,EAEdyN,EAAWb,EAAM,EAAGU,GAEpB,IAAMV,EACH5B,QAAQ,MAAO,QACfA,QAAQ,YAAa,OACrBA,QAAQ,KAAM,OACjB,OAECwC,EAAKD,KAAOX,GAIrBA,EAAOW,EAAI,EAAIC,EAAK,GACb,IAAMA,EAAKjF,KAAK,KAAO,kBAI9BqE,EAAOa,EAAW3B,EAAM,GAAI,EAAGwB,GAUjC,OAPIA,EAAKrK,SACP2J,EAAOA,EAAK5B,QAAQ0C,GAAW,SAAUC,EAAGtE,GAC1C,OAAOiE,EAAKjE,GACT2B,QAAQ,MAAO,OACfA,QAAQ,MAAO,WAGf4B,EAnDIgB,CAASnC,GAIpB,MAF0B,gBAAtBmB,EAAK5D,MAAM,EAAG,MAAyB4D,EAAO,UAAYA,GAEvD,IAAIiB,SAAS,IAAKjB,EAAO,KAxCM1B,CAAQO,KAAOtL,KACnDiN,EAAMU,EAAQtM,KAAK,CACjB4L,KAAMA,EACN1B,KAAMD,KALSA,EAmBrB,SAASqC,EAASC,EAAKtI,GAErBsI,EAAIC,SAAW,CACbC,QAASxI,GAAOA,EAAIyI,IAAMzI,EAAIyI,GAAGD,QACjCE,SAAU1I,GAAOA,EAAI0I,UAGnBhB,EAAMiB,aAAgBjB,EAAMiB,aAAaL,GAExB,oBAAZM,SACkB,mBAAlBA,QAAQC,QAEfD,QAAQC,MAAMP,EAAIQ,SAClBF,QAAQG,IAAI,UAAWT,EAAIC,SAASC,SAAW,cAAevL,KAAKgJ,MACnE2C,QAAQG,IAAI9L,KAAK0K,OAvBrBD,EAAMT,QAAU5C,EAAS4C,QAEzBS,EAAMR,SAAW7C,EAAS6C,SAG1BQ,EAAMsB,WAAa,WAAc7D,EAAS,IAE1CuC,EAAMiB,aAAe,KA4BrB,IAAIf,EAAY,UACZK,EAAY,gBA8CZgB,EAAY,2DAEdC,EAAW,CACT,IAAK,QACL,IAAK,SACL,IAAK,SAGT,SAASlB,EAAYb,EAAMgC,EAAQtB,GAMjC,GAJAV,EAAOA,EACJ5B,QAAQ,OAAQ,KAAK6B,OACrB7B,QAAQ,wBAAyB,MAE1B,CAMR,IALA,IAGEtB,EAFA8D,EAAO,GACPqB,EAAM,EAGDjC,IACAlD,EAAQkD,EAAKlD,MAAMgF,MACnBhF,EAAMuC,OACT,CACF,IACE1K,EACAuN,EACAtF,EAAK,eAKP,IAHAoD,EAAOtC,OAAOyE,aACdxN,EAAOmI,EAAM,GAAK4D,EAAK5D,EAAM,IAAIV,MAAM,GAAI,GAAG6D,OAAO7B,QAAQ,OAAQ,KAAOtB,EAAM,GAE3EoF,GAAOpF,EAAQF,EAAGrC,KAAKyF,IAAO,IAAMoC,EAAWF,EAAKtF,GAE3DsF,EAAOlC,EAAK5D,MAAM,EAAGU,EAAMuC,OAC3BW,EAAOtC,OAAOyE,aAEdvB,EAAKqB,KAASI,EAAUH,EAAK,EAAGvN,GAGlCqL,EAAQiC,EACDA,EAAM,EAAI,IAAMrB,EAAKjF,KAAK,KAAO,qBAAuBiF,EAAK,GADtDyB,EAAUrC,EAAMgC,GAGhC,OAAOhC,EAEP,SAASoC,EAAY9C,EAAI1C,GACvB,IACE0F,EACAC,EAAK,EACLC,EAAKT,EAASzC,GAGhB,IADAkD,EAAG3F,UAAYD,EAAGC,UACXyF,EAAKE,EAAGjI,KAAKyF,IAClB,GAAIsC,EAAG,KAAOhD,IAAQiD,OACjB,MAAOA,EAAM,MAEpB3F,EAAGC,UAAY0F,EAAKvC,EAAK3J,OAASmM,EAAG3F,WAKzC,IACE4F,EAAa,kBAAsC,iBAAXjJ,OAAsB,SAAW,UAAY,KACrFkJ,EAAa,oKACbC,EAAa,gCAEf,SAASN,EAAWrC,EAAMgC,EAAQrN,GAChC,IAAIiO,EAiCJ,OA/BA5C,EAAOA,EAAK5B,QAAQsE,GAAY,SAAU5F,EAAO5H,EAAG2N,EAAMpG,EAAKtH,GAW7D,OAVI0N,IACFpG,EAAMmG,EAAK,EAAInG,EAAMK,EAAMzG,OAEd,SAATwM,GAA4B,WAATA,GAA8B,WAATA,GAC1C/F,EAAQ5H,EAAI,KAAO2N,EAAOJ,EAAaI,EACnCpG,IAAOmG,EAAsB,OAAhBzN,EAAIA,EAAEsH,KAAuB,MAANtH,GAAmB,MAANA,IAC5CsH,IACTmG,GAAMD,EAAWjG,KAAKvH,EAAEiH,MAAMK,MAG3BK,KAGL8F,IACF5C,EAAO,cAAgBA,EAAO,wBAG5BrL,EAEFqL,GAAQ4C,EACF,cAAgB5C,EAAO,eAAiB,IAAMA,EAAO,KACrD,KAAOrL,EAAM,OAEVqN,IAEThC,EAAO,gBAAkB4C,EACnB5C,EAAK5B,QAAQ,UAAW,MAAQ,MAAQ4B,EAAO,KAC/C,qCAGDA,EAKT,OAFAO,EAAM7I,QAAUwF,EAASxF,QAAU,SAE5B6I,EA1ME,GA+MPuC,EAAa,SAASC,GAOxBA,EAAKA,GAAM,GAKX,IAAIC,EAAY,GACd5G,EAAQlF,MAAMlC,UAAUoH,MA6G1B,OAtGAtI,OAAOmP,iBAAiBF,EAAI,CAQ1BnL,GAAI,CACFvD,MAAO,SAAS6O,EAAOC,GAGrB,MAFiB,mBAANA,IACNH,EAAUE,GAASF,EAAUE,IAAU,IAAI9L,KAAK+L,GAC9CJ,GAET/O,YAAY,EACZoP,UAAU,EACVC,cAAc,GAShBtL,IAAK,CACH1D,MAAO,SAAS6O,EAAOC,GACrB,GAAa,KAATD,GAAiBC,EAEnB,GAAIA,EAEF,IADA,IACgBG,EADZ9E,EAAMwE,EAAUE,GACX9P,EAAI,EAAOkQ,EAAK9E,GAAOA,EAAIpL,KAAMA,EACpCkQ,GAAMH,GAAM3E,EAAI+E,OAAOnQ,IAAK,eAEpB4P,EAAUE,QAPDF,EAAY,GASvC,OAAOD,GAET/O,YAAY,EACZoP,UAAU,EACVC,cAAc,GAUhBG,IAAK,CACHnP,MAAO,SAAS6O,EAAOC,GAKrB,OAAOJ,EAAGnL,GAAGsL,GAJb,SAAStL,IACPmL,EAAGhL,IAAImL,EAAOtL,GACduL,EAAG9L,MAAM0L,EAAI5L,eAIjBnD,YAAY,EACZoP,UAAU,EACVC,cAAc,GAShBI,QAAS,CACPpP,MAAO,SAAS6O,GACd,IAMEQ,EACAP,EACA/P,EAREuQ,EAAcxM,UAIdyM,EAASzM,UAAUd,OAAS,EAC9BY,EAAO,IAAIC,MAAM0M,GAKnB,IAAKxQ,EAAI,EAAGA,EAAIwQ,EAAQxQ,IACtB6D,EAAK7D,GAAKuQ,EAAYvQ,EAAI,GAK5B,IAFAsQ,EAAMtH,EAAM7I,KAAKyP,EAAUE,IAAU,GAAI,GAEpC9P,EAAI,EAAG+P,EAAKO,EAAItQ,KAAMA,EACzB+P,EAAG9L,MAAM0L,EAAI9L,GAMf,OAHI+L,EAAU,MAAiB,KAATE,GAClBH,EAAGU,QAAQpM,MAAM0L,EAAI,CAAC,IAAKG,GAAO5M,OAAOW,IAEtC8L,GAET/O,YAAY,EACZoP,UAAU,EACVC,cAAc,KAIXN,GAOT,SAASc,EAAmBhQ,EAAG6H,GAC7B,OAAO5H,OAAOgQ,yBAAyBjQ,EAAG6H,GAQ5C,SAASqI,EAAY1P,GACnB,YA3xBW,IA2xBGA,EAShB,SAAS2P,EAAWC,EAAKtP,GACvB,IAAIuP,EAAaL,EAAkBI,EAAKtP,GACxC,OAAOoP,EAAYE,EAAItP,KAASuP,GAAcA,EAAWd,SAa3D,SAASe,EAAOC,GAMd,IALA,IAAIH,EACA7Q,EAAI,EACJ6D,EAAOE,UACP9D,EAAI4D,EAAKZ,OAENjD,EAAIC,EAAGD,IACZ,GAAI6Q,EAAMhN,EAAK7D,GACb,IAAK,IAAIuB,KAAOsP,EAEVD,EAAWI,EAAKzP,KAChByP,EAAIzP,GAAOsP,EAAItP,IAIzB,OAAOyP,EAMT,SAAS1P,EAAO0P,GACd,OAAOtQ,OAAOY,OAAO0P,GAGvB,IAAIhE,EAAW+D,EAAOzP,EAAOwI,EAASkD,UAAW,CAC/CiE,mBAAmB,EAEnBC,qBAAqB,EAErBC,YAAY,IASd,SAASC,EAAG5L,EAAUC,GACpB,MAAO,GAAGuD,MAAM7I,MAAMsF,GAAOC,UAAU2L,iBAAiB7L,IAO1D,SAAS8L,IACP,OAAO5L,SAAS6L,eAAe,IASjC,SAASC,EAAiBxK,EAAKyK,GAC7BzK,EAAImB,MAAMuJ,QAAUD,EAAO,GAAK,OAChCzK,EAAI2K,QAASF,EASf,SAASG,EAAa5K,EAAKzG,GACzB,OAAOyG,EAAI4K,aAAarR,GAQ1B,SAASsR,EAAgB7K,EAAKzG,GAC5ByG,EAAI6K,gBAAgBtR,GAUtB,SAASuR,EAAaC,EAAWC,EAAMC,GAErC,GAAIA,EAAO,CACT,IAAIC,EAAOH,EAAUI,cAAcC,YACjC,IAAIC,WACDC,gBAAiB,eAAkBrM,EAAS,KAAQ+L,EAAO,SAAW,mBACtEO,iBACH,GAGFR,EAAUlK,YAAYqK,QAEtBH,EAAUtJ,UAAYuJ,EAS1B,SAASQ,EAAeR,EAAMjC,GAC5B,GAAKiC,EAEL,IADA,IAAI5R,EACGA,EAAImG,EAAcY,KAAK6K,IAC1BjC,EAAG3P,EAAE,GAAGqS,cAAerS,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAO/C,SAASsS,IACP,OAAOhN,SAASiN,yBASlB,SAASC,EAAWC,EAAMC,EAAMnJ,GAC9BkJ,EAAKE,aAAaD,EAAMnJ,EAAKjC,YAAciC,GAU7C,SAASqJ,EAAoB7K,GAC3B,OAAOzH,OAAO0H,KAAKD,GAAOW,QAAO,SAAUmK,EAAKC,GAC9C,OAAQD,EAAM,IAAMC,EAAO,KAAQ/K,EAAM+K,GAAS,MACjD,IASL,SAASC,EAAUnM,EAAK+I,EAAIqD,GAC1B,GAAIpM,EAAK,CACP,IACI2C,EADA0J,EAAMtD,EAAG/I,EAAKoM,GAGlB,IAAY,IAARC,EAAiB,OAIrB,IAFArM,EAAMA,EAAIsM,WAEHtM,GACL2C,EAAO3C,EAAIuM,YACXJ,EAAUnM,EAAK+I,EAAIsD,GACnBrM,EAAM2C,GAOZ,IAAI3C,EAAmBtG,OAAO8S,OAAO,CACnCpC,GAAIA,EACJ7L,EAAGA,EACH+L,qBAAsBA,EACtBmC,KAAM7M,EACN8M,QAAS3M,EACTyK,iBAAkBA,EAClBmC,QAAS/B,EACTgC,QAAS/B,EACTC,aAAcA,EACd+B,UAAWrB,EACXsB,WAAYpB,EACZE,WAAYA,EACZI,oBAAqBA,EACrBG,UAAWA,IAQb,SAASY,EAAM9S,GACb,OAAO0P,EAAY1P,IAAoB,OAAVA,EAQ/B,SAAS+S,EAAQ/S,GACf,OAAO8S,EAAM9S,IAAoB,KAAVA,EAQzB,SAASgT,EAAWhT,GAClB,MAvgCa,mBAugCCA,EAShB,SAASiT,EAASjT,GAChB,OAAOA,GAnhCI,iBAmhCYA,EAQzB,SAASgR,EAAMtC,GACb,IAAIwE,EAAQxE,EAAGyE,gBACf,QAASD,GAAmB,OAAVA,EAQpB,SAASE,EAAQpT,GACf,OAAO6C,MAAMuQ,QAAQpT,IAAUA,aAAiB6C,MAQlD,SAASwQ,EAAWrT,GAClB,OAAOwF,EAAc6C,KAAKrI,GAQ5B,SAASsT,EAAStT,GAChB,MAzjCW,iBAyjCGA,EAKhB,IAAIuT,EAAqB9T,OAAO8S,OAAO,CACrCQ,QAASA,EACTC,WAAYA,EACZC,SAAUA,EACVjC,MAAOA,EACPrB,WAAYA,EACZyD,QAASA,EACTC,WAAYA,EACZP,MAAOA,EACPQ,SAAUA,EACV5D,YAAaA,IASf,SAAS8D,GAAS/Q,EAAOgR,GACvB,OAAgC,IAAzBhR,EAAMkG,QAAQ8K,GASvB,SAASC,GAAKnH,EAAMuC,GAGlB,IAFA,IAAI1M,EAAMmK,EAAOA,EAAKvK,OAAS,EAC3BjD,EAAI,EACDA,EAAIqD,EAAKrD,IAAO+P,EAAGvC,EAAKxN,GAAIA,GACnC,OAAOwN,EAST,SAASoH,GAAWnJ,EAAKxK,GACvB,OAAOwK,EAAIzC,MAAM,EAAG/H,EAAMgC,UAAYhC,EAOxC,IACMjB,GADF6U,IACE7U,IAAK,EACF,WAAc,QAASA,KAWhC,SAAS8U,GAAOnF,EAAIpO,EAAKN,EAAO8T,GAO9B,OANArU,OAAOC,eAAegP,EAAIpO,EAAKwP,EAAO,CACpC9P,MAAOA,EACPL,YAAY,EACZoP,UAAU,EACVC,cAAc,GACb8E,IACIpF,EAQT,SAASqF,GAAQvJ,GACf,OAAOA,EAAIT,QAAQ,UAAU,SAAU2C,EAAGtN,GAAK,OAAOA,EAAE4U,iBAO1D,SAASC,GAAK3G,GACRF,SAAWA,QAAQ6G,MAAQ7G,QAAQ6G,KAAK3G,GAK9C,IAAI4G,GAAoBzU,OAAO8S,OAAO,CACpCiB,SAAUA,GACVE,KAAMA,GACNlE,kBAAmBA,EACnBmE,WAAYA,GACZC,IAAKA,GACLlU,eAAgBmU,GAChBM,aAAc9T,EACdyP,OAAQA,EACRiE,QAASA,GACTE,KAAMA,KAYR,SAASG,GAAYxE,EAAKtP,EAAKN,EAAOqU,EAAarJ,GACjD,IAAIsJ,EAAO1E,EAAItP,GACXiU,EAAQnB,EAAQkB,GAChBE,GAAY9E,EAAY1E,GAE5B,IAAIsJ,GAAQA,IAAStU,EAGrB,IAAKsU,GAAQD,EAAezE,EAAItP,GAAO,CAACN,QACnC,GAAKsU,EAGR,GAAIC,EAAO,CACT,IAAIE,EAAWH,EAAK3L,QAAQ3I,GAE5B,GAAIyU,IAAazJ,EAAS,QAER,IAAdyJ,GAAmBH,EAAKpF,OAAOuF,EAAU,GAEzCD,EACFF,EAAKpF,OAAOlE,EAAO,EAAGhL,GAEtBsU,EAAKvR,KAAK/C,QAEL4P,EAAItP,GAAO,CAACgU,EAAMtU,QAfX4P,EAAItP,GAAON,EAwB/B,SAASJ,GAAImG,GACX,OAAOA,EAAIiH,SAAWlI,EAAW6L,EAAa5K,EA5tC/B,YA6tCb4K,EAAa5K,EA7tCA,YA6tCsBA,EAAIiH,QAAQwE,eASnD,SAASkD,GAAQ3O,EAAK4O,GACpB,IAAIC,EAAQhV,GAAImG,GACZ8O,GAAYF,GAAchE,EAAa5K,EAxuC5B,WAyuCf,OAAO8O,IAAapK,EAAKgB,QAAQoJ,GAC/BA,EAAWD,EAAQA,EAAMtV,KAAOyG,EAAIiH,QAAQwE,cAQhD,SAASsD,KACP,OAAIrT,KAAKsT,OAAiBjF,EAAOzP,EAAOoB,MAAOA,KAAKsT,QAC7CtT,KAST,IACEuT,GAAc,YACdC,GAAc,+CACdC,GAAc,4DACdC,GAAc,uEACdC,GAAU,CAAEC,GAAI,QAASC,GAAI,KAAMC,GAAI,KAAMC,IAAK,YAClDC,GAAUhQ,GAAcA,EAAa,GA7uCnB,yEACU,wDAgzC9B,SAASiQ,GAAMjL,EAAMsG,EAAMC,GACzB,IAAIvI,EAAUgC,GAAQA,EAAKhC,MAAM,iBAC5BuE,EAAUvE,GAASA,EAAM,GAAG+I,cAC7B9C,EAAK/I,EAAYqL,EArEf,MADI,OAiFV,OARAvG,EArCF,SAAsBA,EAAMsG,GAE1B,IAAKiE,GAAW3M,KAAKoC,GAAS,OAAOA,EAGrC,IAAIsF,EAAM,GAOV,OALAgB,EAAOA,GAAQA,EAAKhH,QAAQmL,IAAY,SAAUxI,EAAGiJ,EAAKC,GAExD,OADA7F,EAAI4F,GAAO5F,EAAI4F,IAAQC,EAChB,MACNhK,OAEInB,EACJV,QAAQoL,IAAa,SAAUzI,EAAGiJ,EAAKE,GACtC,OAAO9F,EAAI4F,IAAQE,GAAO,MAE3B9L,QAAQkL,IAAY,SAAUvI,EAAGmJ,GAChC,OAAO9E,GAAQ8E,GAAO,MAoBnBC,CAAarL,EAAMsG,GAGtB0E,GAAQpN,KAAK2E,GACb0B,EArEN,SAAqBA,EAAIjE,EAAMuC,GAE7B,IACE+I,EAAwB,MAAf/I,EAAQ,GACjB+H,EAASgB,EAAS,UAAY,SAUhC,GANArH,EAAGlH,UAAY,IAAMuN,EAAStK,EAAKmB,OAAS,KAAOmJ,EACnDA,EAASrG,EAAG2D,WAKR0D,EACFhB,EAAOiB,eAAiB,MACnB,CAEL,IAAIC,EAAQb,GAAQpI,GAChBiJ,GAAsC,IAA7BlB,EAAOmB,oBAA2BnB,EAASzQ,EAAE2R,EAAOlB,IAEnE,OAAOA,EAgDEoB,CAAYzH,EAAIjE,EAAMuC,GAE3B6D,EAAanC,EAAIjE,EAAMuG,GAEpBtC,EAGT,IAAI0H,GAAgB,MAgBpB,SAASC,GAAyBC,GAEhC,IADA,IAAIC,EAAOD,EACJC,EAAKtJ,GAAGuJ,aACRD,EAAKxB,QACVwB,EAAOA,EAAKxB,OAEd,OAAOwB,EAST,SAASE,GAAY1Q,EAAK2Q,EAASlV,GACjC,IAAI+U,EAAO9U,KAAKwL,GAAG8H,OACftB,EAAOhS,KAAKwL,GAAGwG,KAEnB,IAAKA,EACD,KAAO8C,IAAS9C,GAChBA,EAAO8C,EAAKtJ,GAAGwG,KACf8C,EAAOA,EAAKtJ,GAAG8H,OAgBnB,GAXIpF,EAAWnO,EAAG,mBAAoBA,EAAEmV,cAAgB5Q,GAEpD4J,EAAWnO,EAAG,YAAaA,EAAEoV,OAASpV,EAAEqV,YAExClH,EAAWnO,EAAG,WAAYA,EAAEsV,MAAQtV,EAAEuV,UAAYvV,EAAEwV,SAExDxV,EAAEiS,KAAOA,EAETiD,EAAQxX,KAAKuC,KAAMD,GAGduK,EAASmE,aAET1O,EAAEyV,cAAe,CACpB,IAAIpW,EAAIwV,GAAyB5U,MAE7BZ,EAAEqW,WAAarW,EAAEsW,UAWzB,SAASC,GAAgB9X,EAAMoX,EAAS3Q,EAAKuQ,GAC3C,IAAIe,EACApI,EAAKwH,GAAYlW,KAAK+V,EAAKvQ,EAAK2Q,GAIpC3Q,EAAIzG,GAAQ,KAGZ+X,EAAY/X,EAAKyK,QAAQ1E,EAAkB,IAGtCmO,GAAS8C,EAAIrJ,GAAGjJ,UAAW+B,IAAQuQ,EAAIrJ,GAAGjJ,UAAUjB,KAAKgD,GACzDA,EAp6Ca,qBAo6CWA,EAp6CX,mBAo6CkC,IAChDA,EAr6Cc,mBAq6COzG,IAASyG,EAAIuR,oBAAoBD,EAAWtR,EAr6CnD,mBAq6CwEzG,IAE1FyG,EAv6CkB,mBAu6CGzG,GAAQ2P,EAC7BlJ,EAAIwR,iBAAiBF,EAAWpI,GAAI,GAWtC,SAASuI,GAAU5C,EAAO6C,EAAMjQ,EAAWuN,GACzC,IAAIuB,EAAMoB,GAAU9C,EAAO6C,EAAMjQ,GAC7BwF,EAAUyK,EAAKzK,SAAW0H,GAAQ+C,EAAK7F,MAAM,GAC7C2E,EAAOF,GAAyBtB,GAepC,OAbAlB,GAAOyC,EAAK,SAAUC,GAItBD,EAAIrJ,GAAG8H,OAASA,EAGhBX,GAAYmC,EAAKoB,KAAM3K,EAASsJ,GAG5BC,IAASxB,GACTX,GAAYW,EAAO4C,KAAM3K,EAASsJ,GAE/BA,EAWT,SAASsB,GAAehI,EAAKtP,EAAKN,EAAOqU,GACvC,GAAIjB,EAAQxD,EAAItP,IAAO,CACrB,IAAI0K,EAAQ4E,EAAItP,GAAKqI,QAAQ3I,IACd,IAAXgL,GAAgB4E,EAAItP,GAAK4O,OAAOlE,EAAO,GACtC4E,EAAItP,GAAK0B,OACe,IAApB4N,EAAItP,GAAK0B,QAAiBqS,IAAezE,EAAItP,GAAOsP,EAAItP,GAAK,WADvCsP,EAAItP,QAE1BsP,EAAItP,KAASN,UACb4P,EAAItP,GASjB,SAASuX,GAAY9H,EAAK6G,GACxB,IAKIkB,EACApJ,EAJA/H,EAAO0J,IACP0H,EAAO1H,IACP2H,EAAOvG,IAUX,IANAhQ,KAAKmQ,KAAKE,aAAanL,EAAMlF,KAAKmQ,KAAKS,YACvC5Q,KAAKmQ,KAAKhL,YAAYmR,GAEtBtW,KAAKwL,GAAGtG,KAAO+H,EAAK/H,EACpBlF,KAAKwL,GAAG8K,KAAOA,EAERrJ,GACLoJ,EAAMpJ,EAAG4D,YACT0F,EAAKpR,YAAY8H,GAhBNjN,KAiBJwL,GAAGgL,MAAMlV,KAAK2L,GACrBA,EAAKoJ,EAGHlB,EACA7G,EAAI+B,aAAakG,EAAMpB,EAAO3J,GAAGtG,MAEjCoJ,EAAInJ,YAAYoR,GAStB,SAASE,GAAmB5B,EAAKX,GAC/B,GAAKA,EAAIlP,WAAT,CACA,IAAIuR,EAAOvG,IACXoG,GAAY3Y,KAAKoX,EAAK0B,GACtBrC,EAAIlP,WAAWC,aAAasR,EAAMrC,IAqFpC,SAASwC,GAAiBxM,GACxB,IAAIlK,KAAKmQ,OAAQjB,EAAalP,KAAKmQ,KAAK,eAAxC,CAEA,IAcI5R,EAdA+F,EAAM4F,EAAK5F,IAEXqS,EAlBN,SAA2BA,GACzB,OAAKA,GACLA,EAAWA,EAASrO,QA3lDL,QA2lD2B,IACtCxE,EAA0B6S,KAAaA,EAAW7S,EAA0B6S,IACzEA,GAHiB,KAiBTC,CAAkB1M,EAAK2M,MAClCC,EAAW/E,GAAS,CApmDP,OACA,QAmmDyC4E,GACtDI,EAAY7M,EAAKiG,MAA8B,YAAtBjG,EAAKiG,KAAK5E,QAEnCwJ,EADM/U,KAAKwL,GACOuJ,YAClBzB,EAAShP,IAAQ4F,EAAKoJ,QAAUhP,EAAIU,YACpCwJ,EAAsBlE,EAASkE,oBAE/BwI,EAA2B,UAAbL,EACdM,EAA2B,UAAbN,EACdO,EAA2B,UAAbP,EAKlB,GAAIzM,EAAKuB,SACHvB,EAAKsB,GAAG2L,WACVjN,EAAKwL,UAGLxL,EAAKkN,QACDL,GACFN,GAAmBvM,EAAMA,EAAKiG,WAPpC,CAcA,GAAIjG,EAAKwL,OAAU,OAAOxL,EAAKwL,SAE/B,IAAIhF,EAAUoG,IAAa/B,EAAc1B,GAAmB5V,KAAKuC,MAAQA,KAKrEqX,GAAY/F,EAFhB/S,EAAQyK,EAAKkB,EAAKA,KAAMwG,IAGpB4G,EAAQ9F,EAASjT,GA+BrB,GA5BI+Y,IACEL,EACF1Y,EAAQyK,EAAKuO,KAAKC,UAAUjZ,GAAQyB,MAC3BgX,IACTzY,EAAQ+R,EAAoB/R,MAK5B2L,EAAK2M,MAGF3M,EAAKuN,gBAEI,IAAVlZ,IAIE8Y,GAAcH,KAAeA,GAAgB1I,KAInDW,EAAgB7K,EAAK4K,EAAa5K,EAAK4F,EAAK2M,MAAQ3M,EAAK2M,KAAOF,GAK9DzM,EAAKwN,OAAQnZ,IAAQA,GAAQoY,GAC7BzM,EAAKyN,OAAU,OArJrB,SAAsBzN,EAAMoJ,EAAQ/H,GAClC,IACI2I,EADAW,EAAM3K,EAAK2K,KAAO3K,EAAK5F,IAAIsT,KAI3B1S,GADQ2P,EAAMA,EAAIrJ,GAAK,IACVtG,KACb6R,EAAiC,YAArB7M,EAAK5F,IAAIiH,QAErBsJ,GAAO3K,EAAKqB,UAAYA,EAC1BsJ,EAAIa,UAKFb,IAECkC,IACD7C,EAAMtF,IACN1J,EAAKF,WAAWqL,aAAa6D,EAAKhP,IAGpC2P,EAAIgD,SAAQ,IAIThG,EAAStG,KAEdrB,EAAK4N,KAAOzU,EAAWkI,GAGlBrB,EAAK4N,OAEV5N,EAAK2K,IAAMA,EAAMkB,GACf7L,EAAK4N,KAAM,CACT3H,KAAMjG,EAAK5F,IACXgP,OAAQA,EACR/H,QAASA,GAEXrB,EAAK5F,IAAIyB,UACTuN,GAGFrB,GAAK/H,EAAK6N,OAAO,SAAUC,GAAK,OAAO3T,EAAawQ,EAAI1E,KAAM6H,EAAEna,KAAMma,EAAEzZ,UACxE2L,EAAKqB,QAAUA,EACfsJ,EAAIuC,QAGAL,GAAaN,GAAmB5B,EAAKX,GAAOW,EAAI1E,MAGpDmD,EAAO9H,GAAGyM,UAAY,WACpB,IAAIC,EAAUrD,EAAImB,KAAKmC,OACvBhC,GAAetB,EAAIvB,OAAO4C,KAAMgC,EAASrD,GACzCsB,GAAetB,EAAIrJ,GAAG8H,OAAO4C,KAAMgC,EAASrD,GAC5CA,EAAIgD,cA+FoBO,CAAalO,EAAMlK,KAAMzB,GACnD,KAAI2L,EAAKuN,eAAiBvN,EAAK3L,QAAUA,KAGzC2L,EAAK3L,MAAQA,EACb2L,EAAKuN,eAAgB,GAGjBH,GAAUL,GAAgBD,GAAgBF,GAA9C,CAKA,GAHKO,IAAY9Y,EAAQ,KAGpBoY,EAeH,OAZApY,GAAS,QAEL+U,IAGFpJ,EAAKoJ,OAASA,EACS,aAAnBA,EAAO/H,SACT+H,EAAO/U,MAAQA,EACVyF,IAAcM,EAAI+T,UAAY9Z,IAE9B+F,EAAI+T,UAAY9Z,IAK3B,QAAQ,GAER,KAAKgT,EAAWhT,GA7WQ+Z,EA8WD3B,EA7WhBhC,GAAc/N,KAAK0R,IA8WtB3C,GAAgBgB,EAAUpY,EAAO+F,EAAKtE,MAExC,MAEF,KAAK8W,EACHhI,EAAiBxK,EA9sDF,SA8sDOqS,GAA+BpY,EAAQA,GAC7D,MAEF,QACM2L,EAAKwN,OACPpT,EAAIqS,GAAYpY,GAGd2Y,GAAe5S,EAAI/F,QAAUA,EAC/B+F,EAAI/F,MAAQA,EACH8Y,IAAsB,IAAV9Y,GACrB8F,EAAaC,EAAKqS,EAAUpY,GAK1ByY,GAAe1S,EAAI2K,QAAUH,EAAiBxK,GAAK,GApY3D,IAA0BgU,KA6Y1B,SAAS5C,GAAO6C,GACdtG,GAAKsG,EAAa7B,GAAiB5X,KAAKkB,OAa1C,SAASwY,GAAWC,EAAQnF,EAAQyB,EAAaiB,EAAM0C,GAIrD,IAAID,IAAU1D,EAAd,CACA,IAAIhS,EAAM0V,EAASpF,GAAmB5V,KAAKuC,MAAQsT,GAAUtT,KAE7DiS,GAAKyG,GAAW,SAAU7B,GACpBA,EAAK3M,MAAQwM,GAAiBjZ,KAAKsF,EAAK8T,EAAK3M,MAEjD8L,EAAK1D,GAAQuE,EAAKhZ,MAAMyK,QAxwDX,QAwwDiC,KAAOuO,EAAK3M,KAAO2M,EAAK3M,KAAK3L,MAAQsY,EAAKtY,UA4C5F,SAASoa,GAAMzC,GAEb,IAAKA,EAAM,CACT,IAAIxQ,EAAO1H,OAAO0H,KAAKrC,GACvB,OAAOqC,EAAOiT,GAAMjT,GAGtB,OAAOwQ,EACJ0C,QAAO,SAAUpa,GAAK,OAAQ,SAASoI,KAAKpI,MAC5C4H,QAAO,SAAU0E,EAAMtM,GAEtB,OAAOsM,EAAO,cADHtM,EAAE2L,OAAO4F,cAC+B,OAClD,IASP,SAAS8I,GAAI5L,EAAI+I,GAEf,IACInY,EADMmC,KACKnC,KACXmL,EAFMhJ,KAEKgJ,KACXzD,EAHMvF,KAGIuF,IACVwS,EAJM/X,KAIM+X,MACZe,EALM9Y,KAKS8Y,SAanB,OAXKzV,EAAWxF,KACdgX,GAAIhX,EAAMmL,EAAMzD,EAAKwS,EAAOe,GAE5BzV,EAAWxF,GAAMkb,MAAQ/Y,KAAKgZ,aAIhCC,GAAQhM,EAAIpP,EAAMmY,EAAMhW,MAEpBuF,GAAOF,EAAaG,SAEjBxF,KAYT,SAAS6U,GAAIhX,EAAMmL,EAAMzD,EAAKwS,EAAO1K,GAqBnC,OApBIkE,EAAWwG,KACb1K,EAAK0K,EAED,cAAcnR,KAAKrB,IACrBwS,EAAQxS,EACRA,EAAM,IAEJwS,EAAQ,IAGVxS,IACEgM,EAAWhM,GACX8H,EAAK9H,EAELF,EAAaC,IAAIC,EAAK1H,IAG5BA,EAAOA,EAAKkS,cACZ1M,EAAWxF,GAAQ,CAAEA,KAAMA,EAAMmL,KAAMA,EAAM+O,MAAOA,EAAO1K,GAAIA,GAExDxP,EAYT,SAASqb,GAAKrb,EAAMmL,EAAMzD,EAAKwS,EAAO1K,GAKpC,OAJI9H,GAAOF,EAAaC,IAAIC,EAAK1H,GAEjCwF,EAAWxF,GAAQ,CAAEA,KAAMA,EAAMmL,KAAMA,EAAM+O,MAAOA,EAAO1K,GAAIA,GAExDxP,EAUT,SAASuZ,GAAMtU,EAAUyI,EAASyK,GAChC,IACImD,EAAMC,EADNlD,EAAO,GAmDX,GAzBA7Q,EAAaG,UAETgM,EAASjG,IAAYgG,EAAWhG,MAClCyK,EAAOzK,EACPA,EAAU,GAcV4N,EAVEtH,EAAS/O,IACXA,EAAwB,MAAbA,EAGTsW,EAAUT,KAEV7V,EAAW6V,GAAM7V,EAAS6F,MAAM,SAIhB+F,EAAG5L,GAAY,GAIxBA,EAGK,MAAZyI,EAAiB,CAInB,GAFAA,EAAU6N,GAAWT,KAEjBQ,EAAK5N,QACL4N,EAAOzK,EAAGnD,EAAS4N,OAClB,CAEH,IAAIE,EAAW,GAEfpH,GAAKkH,GAAM,SAAUG,GAAO,OAAOD,EAAS/X,KAAKoN,EAAGnD,EAAS+N,OAE7DH,EAAOE,EAGT9N,EAAU,EAKZ,OApEA,SAASgO,EAAWpJ,GAClB,GAAIA,EAAK5E,QAAS,CAChB,IAAgDsJ,EAA5C2E,EAAUtK,EAAaiB,EA35DhB,WA85DP5E,GAAWiO,IAAYjO,IACzBiO,EAAUjO,EACVlH,EAAa8L,EAh6DJ,UAg6DwB5E,KAGnCsJ,EAAMoE,GACJ9I,EACAqJ,GAAWrJ,EAAK5E,QAAQwE,cACxBwB,EAAWyE,GAAQA,IAASA,KAI1BE,EAAK5U,KAAKuT,QACL1E,EAAK5P,QACZ0R,GAAK9B,EAAMoJ,GA+CjBA,CAAWJ,GAEJjD,EAIT,IAAIuD,GAAS,GACTC,GAAUD,GAAmB,eAAI,GACjCE,GAAY,EAShB,SAASC,GAAM/b,EAAMgc,EAAKC,GAExB,GAAItI,EAAS3T,GACX+b,GAAO,KAAQD,KAAe,KAAO9b,GAAM,OAD7C,CAKA,IAAIkc,EAAQD,EAAIJ,GAAUD,GAG1B,IAAKI,EAAK,CACR,GAAI5L,EAAY8L,EAAMlc,IAClB,MAAM,IAAI6B,MAAO,uBAAyB7B,GAE9C,OAAOkc,EAAMlc,GAIfkc,EAAMlc,GAAQ0T,EAAWsI,GACvBxL,EAAOwL,EAAI3a,UAAW6a,EAAMlc,IAAS,KAAOgc,EAC5CxL,EAAO0L,EAAMlc,IAAS,GAAIgc,IAO9B,SAASG,KACP,OAAO/H,GAAK7O,GAAc,SAAUyR,GAAO,OAAOA,EAAIa,YAGxD,SAASuE,GAAWpc,GAElB,OADAwH,EAAaW,OAAOnI,UACNwF,EAAWxF,GAG3B,IAEIqc,GAAoBlc,OAAO8S,OAAO,CACpC+H,IAAKA,GACLhE,IAAKA,GACLqE,KAAMA,GACN9B,MAAOA,GACPwC,MAAOA,GACPlE,OAAQsE,GACRC,WAAYA,GACZrY,QAVY,YAiBd,SAASuY,GAAeC,GAEtB,IADA,IAAIX,EAAS,GAAI9Y,EAAMU,UAAUd,OAAS,EAClCI,KAAQ,GAAI8Y,EAAQ9Y,GAAQU,UAAWV,EAAM,GAiDrD,OA/CAsR,GAAKwH,GAAQ,SAAUI,GACrB,IAAIQ,EACAlM,EACAmM,EAAQ,GAGRC,EAAiB,CAAC,OAAQ,aAE9BV,EAAMhI,EAASgI,GAAOD,GAAMC,GAAOA,EAKjCQ,EAFE9I,EAAWsI,GAEF,IAAIA,EACGA,EAEpB,IAAIW,EAAQxc,OAAOyc,eAAeJ,GAGlC,GAAKC,EAAQA,EAAM9Z,OAAOxC,OAAO0c,oBAAoBvM,GAAOkM,UACrDlM,EAAMnQ,OAAOyc,eAAetM,GAAOkM,IAG1CpI,GAAKqI,GAAO,SAAUzb,GAGpB,IAAKkT,GAASwI,EAAgB1b,GAAM,CAElC,IAAIuP,EAAaL,EAAkBsM,EAAUxb,IAAQkP,EAAkByM,EAAO3b,GAC1E8b,EAAkBvM,IAAeA,EAAWjQ,KAAOiQ,EAAWhE,MAG7DgQ,EAAOjb,eAAeN,IAAQ8b,EACjC3c,OAAOC,eAAemc,EAAQvb,EAAKuP,GAEnCgM,EAAOvb,GAAO0S,EAAW8I,EAASxb,IAChCwb,EAASxb,GAAKC,KAAKsb,GACnBC,EAASxb,OAMbwb,EAASO,MACTP,EAASO,KAAK9b,KAAKsb,EAAnBC,CAA2BD,EAAOpE,SAGjCoE,EAST,SAASS,GAAUtP,EAASuP,GAC1B,IACI5E,EADA5C,EAAStT,KAAKsT,OAGbA,IAID3B,EAFJuE,EAAO5C,EAAO4C,KAAK3K,IAGf2K,EAAKzI,OAAOqN,EAAQ,EAAG5E,EAAKzI,OAAOyI,EAAKhP,QAAQlH,MAAO,GAAG,IACvD2S,GAAYW,EAAO4C,KAAM3K,EAASvL,OAS3C,SAAS+a,GAAYzM,EAAK6G,GAOxB,IANA,IAGIkB,EADApJ,EAAKjN,KAAKwL,GAAGtG,KAEbqR,EAAOvG,IAEJ/C,GAIL,GAHAoJ,EAAMpJ,EAAG4D,YACT0F,EAAKpR,YAAY8H,IACjBA,EAAKoJ,KATMrW,KAUOwL,GAAG8K,KAAM,CACzBC,EAAKpR,YAAY8H,GACjBqB,EAAI+B,aAAakG,EAAMpB,EAAO3J,GAAGtG,MACjC,OAiBN,SAAS8V,GAAO9Q,EAAMrL,EAAK0F,GACzB,IAAIyN,EAAO,GAGX,OAFAA,EAAK9H,EAAKrL,KAAOA,EACbqL,EAAKvD,MAAOqL,EAAK9H,EAAKvD,KAAOpC,GAC1ByN,EAyBT,SAAShM,GAAOkQ,EAAM5Y,GACpB4Y,EAAKzI,OAAOnQ,EAAG,GACf0C,KAAK6X,UACL1B,GAAenW,KAAKsT,OAAQtT,KAAMA,KAAKwL,GAAGD,SAAS,GAQrD,SAAS0P,GAAe3d,GACtB,IAAI4d,EAASlb,KAEbiS,GAAKjU,OAAO0H,KAAK1F,KAAKkW,OAAO,SAAU3K,GACrCsP,GAAUtZ,MAAM2Z,EAAOhF,KAAK3K,GAAU,CAACA,EAASjO,OAWpD,SAAS6d,GAAKhL,EAAMiL,EAASrE,GACvBA,EACAgE,GAAYxZ,MAAMvB,KAAM,CAACmQ,EAAMiL,IAE/BlL,EAAWC,EAAMnQ,KAAKmQ,KAAMiL,EAAQjL,MAU1C,SAASkL,GAAOlL,EAAMiL,EAASrE,GACzBA,EACAX,GAAY7U,MAAMvB,KAAM,CAACmQ,EAAMiL,IAE/BlL,EAAWC,EAAMnQ,KAAKmQ,KAAMiL,EAAQjL,MAS1C,SAASmL,GAAOnL,EAAM4G,GAChBA,EACAX,GAAY3Y,KAAKuC,KAAMmQ,GAEvBA,EAAKhL,YAAYnF,KAAKmQ,MA0B5B,SAASoL,GAAMjX,EAAKgP,EAAQpJ,GAC1B,IAAIsR,EAtvEO,iBAsvEctM,EAAa5K,EA7vEV,eA6vE0D6K,EAAgB7K,EA7vE1E,cA8vExBmX,EAAUvM,EAAa5K,EA3vEX,OA4vEZoX,IAAiBD,GAAUzS,EAAKgB,QAAQyR,GACxClQ,EAAU0H,GAAQ3O,GAClBwT,EAAOzU,EAAWkI,GAClBvG,EAAaV,EAAIU,WACjB2W,EAAc/M,IACduE,EAAQhV,GAAImG,GACZsX,EAAS1M,EAAa5K,EAvwEF,MAwwEpB4R,EAAO,GAEPnQ,EAAYzB,EAAIyB,UAChBgP,GAAe1R,EAAWkI,GAC1BwL,EAA4B,YAAhBzS,EAAIiH,QAChBsQ,EAAW,GAiIf,OA9HA1M,EAAgB7K,EA/wEC,QAgxEjB6K,EAAgB7K,EA5wEA,QA+wEhB4F,EAAOlB,EAAKiB,SAASC,IAChBuO,QAAS,EAEVmD,GAAUzM,EAAgB7K,EAvxEN,MA0xExBU,EAAWqL,aAAasL,EAAarX,GACrCU,EAAW8W,YAAYxX,GAEvB4F,EAAKwL,OAAS,WAEZxL,EAAK3L,MAAQyK,EAAKkB,EAAK3F,IAAK+O,GAE5B,IAAIyI,EAAQ7R,EAAK3L,MACbgY,EAAOvG,IACPwB,GAAYG,EAAQoK,KAAWlK,EAASkK,GACxC5L,EAAOwL,EAAY3W,WACnBgX,EAAW,GACXC,EAAUzK,KAAcuK,EAI5B,GAAK5L,EAAL,CAGIqB,IACFuK,EAAQA,EAAQ/d,OAAO0H,KAAKqW,GAAOpW,KAAI,SAAU9G,GAAO,OAAOmc,GAAO9Q,EAAM6R,EAAMld,GAAMA,MAAW,IAIrG,IAAIqd,EAAqB,EAGzBjK,GAAK8J,GAAO,SAAUI,EAAO5S,GAC3B,IAAIjM,EAAIiM,EAAQ2S,EACZlK,GAAQiK,GAAW/R,EAAKrL,IAAMmc,GAAO9Q,EAAMiS,EAAO5S,GAAS4S,EAG/D,IAAIP,GAAW5S,EAAK4S,EAAQvN,EAAOzP,EAAO0U,GAAStB,IAAnD,CAKA,IAAIoK,EAhFV,SAAmBX,EAASY,EAAcC,EAAWZ,GACnD,OAAID,EACKC,EAAkB1S,EAAKyS,EAASa,GAAcD,EAAaZ,GAG7DY,EA2EUE,CAAUd,EAASU,EAAOnK,EAAM0J,GAGzCc,GAAahL,GAAYgK,GAxzEtB,iBAwzE4CW,GAAsBV,EACrEgB,EAASZ,EAAS3U,QAAQkV,GAC1BM,GAAoB,IAAZD,EACR9V,GAAO+V,GAASF,EAAYC,EAASnf,EAErCuX,EAAMqB,EAAKvP,GACXgW,EAAarf,GAAKue,EAAStb,OAC3Bqc,EAAaJ,GAAaE,IAAUF,IAAc3H,IAAQqB,EAAK5Y,GAG/Dsf,IACF/H,EAAMoB,GAAU6B,EAAM,CACpBxE,OAAQA,EACRmF,QAtEK,EAuEL1D,YAAaA,EACbxJ,QAASA,EACT4E,KAAM7L,EAAIuY,UAAU9H,GACpB/C,KAAMA,EACNzI,MAAOjM,GACNyI,IAGCqR,QAEAuF,EACArB,GAAO/Z,MAAMsT,EAAK,CAAC0B,GAAQpG,EAAM4G,IAEjCsE,GAAO9Z,MAAMsT,EAAK,CAAC1E,EAAM+F,EAAK5Y,GAAIyZ,IAEjC4F,GAAcd,EAASpO,OAAOnQ,EAAG,EAAG0U,GACzCkE,EAAKzI,OAAOnQ,EAAG,EAAGuX,GACd1B,GAASR,GAAYW,EAAO4C,KAAM3K,EAASsJ,GAAK,IAC3ClO,IAAQrJ,GAAKkf,KAElBf,GAAW1J,GAASgK,EAAOF,EAASlV,OACtCwU,GAAK5Z,MAAMsT,EAAK,CAAC1E,EAAM+F,EAAK5Y,GAAIyZ,IAEhCb,EAAKzI,OAAOnQ,EAAG,EAAG4Y,EAAKzI,OAAO9G,EAAK,GAAG,IAEtCkV,EAASpO,OAAOnQ,EAAG,EAAGue,EAASpO,OAAO9G,EAAK,GAAG,KAI5CuD,EAAKvD,MAAOkO,EAAI3K,EAAKvD,KAAOrJ,IAI3B6V,GAAS0B,EAAIqB,MAAQ+E,GAAexd,KAAKoX,EAAKvX,IAKrD+Q,EAAOwG,EAAIrJ,GAAI,CACbwG,KAAMA,EACNzI,MAAOjM,EACPgW,OAAQA,IAGV0I,EAAS1e,GAAK8e,EAETQ,GAAc/H,EAAIa,OAAO1D,QAnE5BkK,OAjKR,SAA0BH,EAAO7F,EAAMgG,GAIrC,IAHA,IAAI5e,EAAI4Y,EAAK3V,OACTsK,EAAIkR,EAAMxb,OAAS2b,EAEhB5e,EAAIuN,GACTvN,IACA0I,GAAOzE,MAAM2U,EAAK5Y,GAAI,CAAC4Y,EAAM5Y,IAkO7Bwf,CAAiBf,EAAO7F,EAAMgG,GAG9BL,EAAWG,EAAS1V,QAEpB6J,EAAKE,aAAakG,EAAMoF,KAG1BzR,EAAK2N,QAAU,WACb5F,GAAKiE,GAAM,SAAU1X,GAAKA,EAAEqZ,cAGvB3N,EAGT,IAAI6S,GAAU,CACZnC,KAAM,SAActW,EAAKgP,EAAQqD,EAAUqG,GAMzC,OALAhd,KAAKsE,IAAMA,EACXtE,KAAK6W,KAAOF,EACZ3W,KAAKid,SAAWD,EAChBhd,KAAKsT,OAASA,EACdtT,KAAKkd,OAASlU,EAAKgB,QAAQgT,GACpBhd,MAET0V,OAAQ,WACN,IAAIyH,EAAMnd,KAAKzB,MACX6e,EAAepd,KAAKsT,QAAUsB,GAAyB5U,KAAKsT,QAE5D+J,EAAWrd,KAAKsE,IAAIgZ,OAAStd,KAAK6U,KAAO7U,KAAKsE,IAElDtE,KAAKzB,MAAQyB,KAAKkd,OAASlU,EAAKhJ,KAAKid,SAAUjd,KAAKsT,QAAUtT,KAAKid,UAG9D3L,EAAQ6L,IAAQC,GAAgBjH,GAAeiH,EAAaG,KAAMJ,EAAKE,IACvE/L,EAAQtR,KAAKzB,QAAUsT,EAAS7R,KAAKzB,QAEpC6e,GAAgBzK,GAClByK,EAAaG,KACbvd,KAAKzB,MACL8e,EAEA,KACArd,KAAKsT,OAAO9H,GAAGjC,OAGbvJ,KAAKzB,QAAU4e,GACjB9Y,EAAarE,KAAKsE,IAAKtE,KAAK6W,KAAM7W,KAAKzB,QAGzC4Q,EAAgBnP,KAAKsE,IAAKtE,KAAK6W,MAK5B7W,KAAKsE,IAAIgZ,QAAStd,KAAKsE,IAAIgZ,MAAQD,IAE1CxF,QAAS,WACP,IAAIwF,EAAWrd,KAAK6U,KAAO7U,KAAKsE,IAC5B8Y,EAAepd,KAAKsT,QAAUsB,GAAyB5U,KAAKsT,SAC3DhC,EAAQtR,KAAKzB,QAAU6e,GACxBjH,GAAeiH,EAAaG,KAAMvd,KAAKzB,MAAO8e,KAYtD,SAASG,GAAmBlZ,EAAKuQ,EAAK8B,EAAUqG,GAC9C,OAAOpe,EAAOme,IAASnC,KAAKtW,EAAKuQ,EAAK8B,EAAUqG,GAOlD,SAASS,GAAWlF,GAClBtG,GAAKsG,GAAa,SAAUrO,GACtBA,EAAK2N,QAAW3N,EAAK2N,SAAQ,GACxB3N,EAAKqB,QAAWrB,EAAK2K,IAAIgD,SAAQ,GACjC3N,EAAK2N,SAAW3N,EAAK2N,aAIlC,IAAI6F,GAAS,CACX9C,KAAM,SAActW,EAAKuQ,EAAK3K,GAC5BiF,EAAgB7K,EA59EM,MA69EtB+J,EAAOrO,KAAM,CAAE6U,IAAKA,EAAK3K,KAAMA,EAAMyT,KAAM/O,IAAwBgP,SAAUtZ,IAC7E,IAAIlF,EAAIkF,EAAIU,WAIZ,OAHA5F,EAAEiR,aAAarQ,KAAK2d,KAAMrZ,GAC1BlF,EAAE0c,YAAYxX,GAEPtE,MAET0V,OAAQ,WACN1V,KAAKzB,MAAQyK,EAAKhJ,KAAKkK,KAAMlK,KAAK6U,KAE7B7U,KAAK2d,KAAK3Y,aAEXhF,KAAKzB,QAAUyB,KAAK6d,SACtB7d,KAAK6d,QAAU7d,KAAK4d,SAASf,WAAU,GACvC7c,KAAK2d,KAAK3Y,WAAWqL,aAAarQ,KAAK6d,QAAS7d,KAAK2d,MACrD3d,KAAKuY,YAAcuF,GAAiBvc,MAAMvB,KAAK6U,IAAK,CAAC7U,KAAK6d,SAAS,MACzD7d,KAAKzB,OAASyB,KAAK6d,UAC7B7d,KAAK6X,UACL7X,KAAK6d,QAAU,KACf7d,KAAKuY,YAAc,IAGjBvY,KAAKzB,OAASmX,GAAOjY,KAAKuC,KAAK6U,IAAK7U,KAAKuY,eAE/CV,QAAS,WACH7X,KAAK6d,UACH7d,KAAK6d,QAAQjG,KACf5X,KAAK6d,QAAQjG,KAAKC,UACT7X,KAAK6d,QAAQ7Y,YACtBhF,KAAK6d,QAAQ7Y,WAAW8W,YAAY9b,KAAK6d,UAI7CJ,GAAWzd,KAAKuY,aAAe,MAWnC,SAASwF,GAAkBzZ,EAAKuQ,EAAKgC,GACnC,OAAOjY,EAAO8e,IAAQ9C,KAAKtW,EAAKuQ,EAAKgC,GAUvC,SAASiH,GAAiB3N,EAAM6N,GAC9B,IAAI9C,EAASlb,KAETuY,EAAc,GA6FlB,OA3FA9H,EAAUN,GAAM,SAAU7L,GACxB,IACIuS,EACAoH,EAFAC,EAAO5Z,EAAI6Z,SAIf,IAAKH,GAAmB1Z,IAAQ6L,KAGnB,IAAT+N,GAAyC,UAA3B5Z,EAAIU,WAAWuG,SAAuBvC,EAAKgB,QAAQ1F,EAAI+T,YACrEE,EAAYjX,KAAK,CAACgD,IAAKA,EAAK4F,KAAM5F,EAAI+T,YAE7B,IAAT6F,GAAJ,CAEA,IAAInH,EAA4B,YAAhBzS,EAAIiH,QAGpB,GAAIsL,EAAO3H,EAAa5K,EAxiFT,QA2iFb,OAFGyS,GAAa1S,EAAaC,EAAK,eAAe,GACjDiU,EAAYjX,KAAKia,GAAMjX,EAAK4W,EAAQrE,KAC7B,EAKT,GAAIA,EAAO3H,EAAa5K,EAjjFF,MAmjFpB,OADAiU,EAAYjX,KAAKyc,GAAkBzZ,EAAK4W,EAAQrE,KACzC,EAGT,IAAIA,EAAO3H,EAAa5K,EAvjFX,aAwjFP0E,EAAKgB,QAAQ6M,GAQf,OAPA0B,EAAYjX,KAAK,CACfqW,QAAQ,EACRzN,KAAM2M,EACNvS,IAAKA,EACLyT,MAAO,GAAGzR,MAAM7I,KAAK6G,EAAI8Z,eAGpB,EAcX,GARAH,EAAU9f,GAAImG,GAEXyS,IACE7H,EAAa5K,EAAK,gBAAiBA,EAAI+Z,cAAcvC,YAAYxX,GAChE2Z,GAAY/O,EAAa5K,EAAK,gBAAmB4K,EAAa5K,EAAK,iBACnE2Z,EAAU,CAAEjV,KAAM1E,EAAIga,aAGxBL,IAAY3Z,IAAQ6L,GAAQ6N,GAAkB,CAChD,IAAIO,EAAiBrP,EAAa5K,EA/kFvB,WAglFX,IAAGyS,GAAcwH,EA0Bf,OAdIA,GAAkBxH,GAClBvE,GAAK,oHAET+F,EAAYjX,KACVyU,GACEkI,EACA,CACE9N,KAAM7L,EACNgP,OAAQ4H,GAEV5W,EAAIyB,UACJmV,KAGG,EAvBP7W,EAAaC,EAAK,eAAe,GACjC,IAAIuQ,EAAMoB,GACR,CAACjN,KAAM1E,EAAIga,WACX,CAACnO,KAAM7L,EAAKgP,OAAQ4H,GACpB5W,EAAIyB,WAGNwS,EAAYjX,KAAKuT,GAqBrB2J,GAAgBjd,MAAM2Z,EAAQ,CAAC5W,EAAKA,EAAI8Z,WAAY,SAAUvH,EAAM3M,GAC7DA,GACLqO,EAAYjX,KAAK4I,UAIdqO,EAWT,SAASiG,GAAgBla,EAAKyT,EAAO1K,GACnC,IAAI6N,EAASlb,KAEbiS,GAAK8F,GAAO,SAAUlB,GACpB,IAAKA,EAAQ,OAAO,EAEpB,IAEI3M,EAFArM,EAAOgZ,EAAKhZ,KACZ6Z,EAAO9F,EAAW/T,GAGlBkU,GAASzO,EAAgBzF,IAtpFnB,UAspF4ByG,EAAIiH,QAAQwE,cAChD7F,EAAQsT,GAAmBlZ,EAAK4W,EAAQrd,EAAMgZ,EAAKtY,OAC1CyK,EAAKgB,QAAQ6M,EAAKtY,SAC3B2L,EAAO,CAAC5F,IAAKA,EAAK4F,KAAM2M,EAAKtY,MAAOsY,KAAMhZ,EAAM6Z,KAAMA,IAGxDrK,EAAGwJ,EAAM3M,MASb,SAASuU,GAAclgB,GACrB,IAAI2V,EAAMlU,KAAKwL,GACXuJ,EAAcb,EAAIa,YAClB2J,EAAgBxK,EAAIwK,cAExBtM,GAAOpS,KAAM,YAAazB,GAErBwW,GAAgB2J,IACfngB,EAASyB,KAAK2N,QAAQ,UAExB3N,KAAK2N,QAAQ,WACb3N,KAAKiC,IAAI,KACTjC,KAAKwL,GAAG2L,YAAa,IA2J3B,SAASlB,GAAU6B,EAAM6G,EAAM5Y,QACf,IAAT+R,IAAkBA,EAAO,SAChB,IAAT6G,IAAkBA,EAAO,IAE9B,IAmBIra,EAnBAuQ,EAAM8J,EAAKjO,SAAW,GACtBsF,EAAO2I,EAAK3I,MAAQ,GACpB1C,EAASqL,EAAKrL,OACdmF,EAASkG,EAAKlG,OACd1D,IAAgB4J,EAAK5J,YACrB2J,EAAgBpU,EAASiE,mBAAqBwG,EAC9C/C,EAAO2M,EAAK3M,KAEZzI,EAAQoV,EAAKpV,MAKbP,EAAO8O,EAAK9O,KACZuP,EAAc,GACdpI,EAAOwO,EAAKxO,KACZ5E,EAAUoT,EAAKpT,SAAW0H,GAAQ9C,GAClC4G,EAAwB,YAAZxL,EACZqT,GAAY7H,IAAc/N,EAyC9B,OAtCI4V,GAAYnG,GAAU1D,EACxBzQ,EAAM6L,GAED4G,IAAa5G,EAAKpK,UAAY,IACnCzB,EAAM2P,GAAMjL,EAAMjD,EAAWwJ,EAAMY,KAIhCuO,GAAiB1R,EAAW6H,GAG7BiD,EAAKja,MAAQsS,EAAKyH,MAAQzH,EAAKyH,KAAKC,SAAQ,GAEhDzF,GAAOyC,EAAK,KAAM,CAChBiD,KAAMA,EACN3H,KAAMA,EACNuO,cAAeA,EACfG,UA1Bc,GA2Bd9J,YAAaA,EACb2D,UA9Bc,GA+Bd3S,UAAWA,EACXwF,QAASA,EACThC,MAAOA,EACPkP,OAAQA,EACRmG,SAAUA,EACV5M,KAAMA,EACNsB,OAAQA,EAGR/Q,UAAW,GAEXiU,MAAO,GACPW,YAAY,EACZb,KAAM,KACNpR,KAAM,OAID,CACL,CAAC,aAAa,GAGd,CAAC,WAAYiN,MACb,CAAC,OAAQhC,GACT,CAAC,OAAQ6F,EAAM,CAAE1I,UAAU,EAAMpP,YAAY,IAC7C,CAAC,SAAUoV,GAAU,MAErB,CAAC,OAAQ,IACT,CAAC,OAAQ,IACT,CAAC,SAAU,SAAU5I,GAAQ,OA3nCjC,SAAyBmK,EAAKnK,EAAM6N,GAClC,IAAI/M,EAAKqJ,EAAIrJ,GACTsT,EAAW,GACXC,EAAalK,EAAIY,YAAcjK,EAAGkT,cAQtC,OALIlT,EAAGuJ,aAAevJ,EAAG8H,QAAUjF,EAAOwG,EAAKrJ,EAAG8H,QAClDjF,EAAOwG,EAAKnK,GAEZ8N,GAAWjX,MAAMsT,EAAK,CAACrJ,EAAGiN,OAAQjN,EAAG8H,OAAQ9H,EAAGuJ,YAAa+J,EAAUtT,EAAGkN,YAGxEqG,GACAlK,EAAIY,WACJlE,EAAWsD,EAAImK,gBAAkBnK,EAAImK,aAAatU,EAAMoU,GAEjDjK,GAGTxG,EAAOwG,EAAImB,KAAM8I,GAEbC,GAAclK,EAAIlH,QAAQ,SAAUjD,GACxCgL,GAAOjY,KAAKoX,EAAK0D,GACbwG,GAAclK,EAAIlH,QAAQ,WAEvBkH,GAkmC+BoK,CAAgBpK,EAAKnK,EAAM6N,KAC/D,CAAC,QAAS,WAER,IADA,IAAIkB,EAAS,GAAI9Y,EAAMU,UAAUd,OACzBI,KAAQ8Y,EAAQ9Y,GAAQU,UAAWV,GAE3C,OAAOwZ,GAAe5Y,WAAM,EAAQ,CAAEsT,GAAMrU,OAAQiZ,MAEtD,CAAC,QAAS,WAAc,OAnO5B,SAAwBW,EAAQ9V,EAAKiU,EAAavC,GAChD,IAAIxK,EAAK4O,EAAO5O,GACZ2E,EAAO3E,EAAG2E,KACdA,EAAKyH,KAAOwC,EAGZoE,GAAgBjd,MAAMiK,EAAG8H,OAAQ,CAACnD,EAAMA,EAAKiO,WAAY,SAAUvH,EAAM3M,IAClEsB,EAAGuJ,aAAegI,GAAQmC,cAAchV,KAASA,EAAK2K,IAAMuF,GACjEvD,EAAK3M,KAAOA,EACZsB,EAAGkN,UAAUpX,KAAKuV,MAIpB/G,EAAetE,EAAGsM,KAAKC,OAAO,SAAUnS,EAAGuZ,GAAK3T,EAAGqT,UAAUvd,KAAK,CAACzD,KAAM+H,EAAGrH,MAAO4gB,OACnFX,GAAgBjd,MAAM6Y,EAAQ,CAACjK,EAAM3E,EAAGqT,UAAW,SAAUhI,EAAM3M,GAC7DA,EAAQqO,EAAYjX,KAAK4I,GACtB7F,EAAa8L,EAAM0G,EAAKhZ,KAAMgZ,EAAKtY,UAI5Cia,GAAWjX,MAAM6Y,EAAQ,CAAC5O,EAAGiN,OAAQjN,EAAG8H,OAAQ9H,EAAGuJ,YAAaiB,EAAMxK,EAAGkN,YAGzE,IAAI0G,EAAcxF,GA5sFH,kBA8sFf,GAAIwF,IAAgB5T,EAAGkT,cACrB,IAAK,IAAIphB,KAAK8hB,EACRA,EAAYjgB,eAAe7B,IAC7B8c,EAAOR,MAAMwF,EAAY9hB,IAc/B,GATIkO,EAAGsM,KAAKzK,IAAM7B,EAAGsM,KAAKzK,GAAG5P,KAAK2c,EAAQpE,GAErCxK,EAAGkT,eAAiBtE,EAAOzM,QAAQ,gBAGxCsE,GAAK6L,GAAiBvc,MAAM6Y,EAAQ,CAAC9V,EAAKkH,EAAGuJ,eAAe,SAAUhV,GAAK,OAAOwY,EAAYjX,KAAKvB,MAEnGqa,EAAO1E,OAAOlK,EAAGwG,OAEZxG,EAAGuJ,cAAgBvJ,EAAGoT,SACzB,KAAOta,EAAIsM,YAAcT,EAAKhL,YAAYb,EAAIsM,YAMhD,GAHAwB,GAAOgI,EAAQ,OAAQjK,IAGlB3E,EAAGkT,eAAiBtE,EAAO9G,OAAQ,CACtC,IAAIlU,EAAIwV,GAAyBwF,EAAO9G,QACxClU,EAAEsO,IAAKtO,EAAEqW,UAAsB,UAAV,SAAqB,WACxCgJ,GAAchhB,KAAK2c,GAAQ,WAI7BqE,GAAchhB,KAAK2c,GAAQ,GAK7B,OAFAA,EAAO5O,GAAG2L,YAAa,EAEhBiD,EAsK0BiF,CAAexK,EAAKvQ,EAAKiU,EAAavC,KACrE,CAAC,UAAW,SAAUsJ,GAAgB,OA/J1C,SAAoBzK,EAAKyK,EAAc/G,GACrC,IAAI/M,EAAKqJ,EAAIrJ,GACT2E,EAAO3E,EAAG2E,KACVoP,EAAWnc,EAAa8D,QAAQ2N,GAChCzV,EAAI+Q,EAAKnL,WAuBb,GArBKwG,EAAGkT,eAAiB7J,EAAIlH,QAAQ,kBAGrCmC,EAAetE,EAAGsM,KAAKC,OAAO,SAAUla,GAClCqU,GAAWrU,EAjwFF,WAkwFTA,EAAOA,EAAKyI,MAlwFH,QAkwFsB/F,SAEnC4O,EAAgBgB,EAAMtS,MAIxBgX,EAAIrJ,GAAGjJ,UAAUid,SAAQ,SAAUlb,GACjCtG,OAAO0H,KAAKpB,EA9vFI,oBA8vFkBkb,SAAQ,SAAU5J,GAClDtR,EAAIuR,oBAAoBD,EAAWtR,EA/vFrB,mBA+vF0CsR,WAK1C,IAAd2J,GAAmBnc,EAAaqK,OAAO8R,EAAU,GAGjD/T,EAAG8H,SAAW9H,EAAGuJ,YAAa,CAChC,IAAID,EAAOF,GAAyBpJ,EAAG8H,QAEnC9H,EAAGuL,UACL/Y,OACG0H,KAAKmP,EAAIqB,MACTsJ,SAAQ,SAAUjU,GAAW,OAAO4K,GAAerB,EAAKoB,KAAM3K,EAASsJ,EAAIqB,KAAK3K,OAEnF4K,GAAerB,EAAKoB,KAAM1K,EAAGD,QAASsJ,GAgC1C,OA3BIA,EAAIrJ,GAAGgL,OACTvE,GAAK4C,EAAIrJ,GAAGgL,OAAO,SAAU2I,GACvBA,EAAEna,YAAcma,EAAEna,WAAW8W,YAAYqD,MAKjD1B,GAAWlF,GACXtG,GAAKzG,EAAGkN,WAAW,SAAUV,GAAK,OAAOA,EAAE9N,MAAQ8N,EAAE9N,KAAK2N,SAAWG,EAAE9N,KAAK2N,aAGxEyH,EAAgBlQ,EAAae,EAAM,IAE9B/Q,GAAKA,EAAE0c,YAAY3L,GAGxB3E,EAAGyM,WAAazM,EAAGyM,YAKlBpD,EAAIY,WAAagJ,GAAchhB,KAAKoX,GAAK,GAE9C4J,GAAchhB,KAAKoX,GAAK,UAEjB1E,EAAKyH,KAEL/C,EA4FwC4K,CAAW5K,EAAKyK,EAAc/G,MAC3EnS,QAAO,SAAUmK,EAAK2D,GACtB,IAAIrV,EAAMqV,EAAI,GACV3V,EAAQ2V,EAAI,GACZ8B,EAAO9B,EAAI,GAGf,OADA9B,GAAOyC,EAAKhW,EAAKN,EAAOyX,GACjBzF,IACNlC,EAAOwG,EAAK7C,IAWjB,SAASiH,GAAQ9I,EAAM5E,EAASyK,EAAMjT,GACpC,IAMI8R,EANAiD,EAAOzU,EAAWkI,GAClBmU,EAAYrc,EAAWkI,GAASwN,MAChCrI,EAAU3N,IAAQ2c,EAAY9gB,EAAO8gB,EAAUxgB,WAAa,IAE5D6G,EAAYoK,EAAKwP,WAAaxP,EAAKwP,YAAcxP,EAAKpK,UACtD4Y,EAAOtQ,EAAO,CAAE8B,KAAMA,EAAM6F,KAAMA,EAAMtF,QAASA,GAAW,CAAE4C,OAAQ0C,EAAOA,EAAK1C,OAAS,OAW/F,OARIwE,GAAQ3H,IAAQ0E,EAAMoB,GAAU6B,EAAM6G,EAAM5Y,IAE5C8O,GAAOA,EAAIuC,QACbvC,EAAIuC,OAAM,GAELrF,GAAS3O,EAAcyR,IAAQzR,EAAa9B,KAAKuT,IAGjDA,EAKT,IAsBI+K,GAAatV,EACbuV,GAAO,CACT7W,KAAMA,EACN5B,SAAUA,EACV/B,aAAcA,EACdya,KAAM1c,EACNF,UAAWmC,EAAanC,UAExBoB,IAAKA,EACLwN,MAAOA,EACPW,KAAMA,GACNyD,KAjCsBlY,OAAO8S,OAAO,CACpC6B,YAAaA,GACboN,WAAY9M,GACZI,mBAAoBA,GACpB2M,QAAS/G,GACTgH,WAAYtH,GACZxC,eAAgBA,GAChB+J,OAAQ/hB,GACRgiB,aAAcpK,GACdqK,aAAcvF,GACdpE,mBAAoBA,GACpB4J,4BAA6BzL,GAC7BwB,YAAaA,GACb2E,YAAaA,GACb0C,WAAYA,GACZM,kBAAmBA,GACnBP,mBAAoBA,MAqBlB8C,GAAQzH,GACR0H,GAAQ1L,GACR2L,GAAStH,GACTuH,GAAUrJ,GACVsJ,GAAU9G,GACV+G,GAAW3G,GACX4G,GAAe3G,GAEf4G,GAAe7T,EAEf8T,GAASzS,EAAO,GAAI6L,GAAM,CAC5BlN,WAAYA,EACZ1C,SAAUsV,GACVC,KAAMA,KAGRziB,EAAQkN,SAAWsV,GACnBxiB,EAAQyiB,KAAOA,GACfziB,EAAQyb,IAAMyH,GACdljB,EAAQyX,IAAM0L,GACdnjB,EAAQ8b,KAAOsH,GACfpjB,EAAQga,MAAQqJ,GAChBrjB,EAAQwc,MAAQ8G,GAChBtjB,EAAQsY,OAASiL,GACjBvjB,EAAQ6c,WAAa2G,GACrBxjB,EAAQwE,QAz+BM,UA0+BdxE,EAAQ4P,WAAa6T,GACrBzjB,EAAQ2jB,QAAUD,GAElB9iB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IA/hGSyiB,CAAQ5jB,K,uCCFzE;;;;;;;;;;;;;IAaA,SAAYmL,EAAQyY,GAEnB,aAE6D,iBAAnB3jB,EAAOD,QAShDC,EAAOD,QAAUmL,EAAOvF,SACvBge,EAASzY,GAAQ,GACjB,SAAUlC,GACT,IAAMA,EAAErD,SACP,MAAM,IAAItD,MAAO,4CAElB,OAAOshB,EAAS3a,IAGlB2a,EAASzY,GAtBX,CA0BuB,oBAAX7E,OAAyBA,OAAS1D,MAAM,SAAU0D,EAAQud,GAMtE,aAEA,IAAIvY,EAAM,GAEN1F,EAAWU,EAAOV,SAElBke,EAAWljB,OAAOyc,eAElBnU,EAAQoC,EAAIpC,MAEZ9F,EAASkI,EAAIlI,OAEbc,EAAOoH,EAAIpH,KAEX4F,EAAUwB,EAAIxB,QAEdia,EAAa,GAEbC,EAAWD,EAAWC,SAEtBC,EAASF,EAAWhiB,eAEpBmiB,EAAaD,EAAOD,SAEpBG,EAAuBD,EAAW7jB,KAAMO,QAExCwjB,EAAU,GAEVjQ,EAAa,SAAqBpD,GAMhC,MAAsB,mBAARA,GAA8C,iBAAjBA,EAAIgQ,UAIjDsD,EAAW,SAAmBtT,GAChC,OAAc,MAAPA,GAAeA,IAAQA,EAAIzK,QAM/Bge,EAA4B,CAC/BxD,MAAM,EACN5P,KAAK,EACLqT,OAAO,EACPC,UAAU,GAGX,SAASC,EAASnb,EAAM8I,EAAMsS,GAG7B,IAAIxkB,EAAGiH,EACNwd,GAHDD,EAAMA,GAAO9e,GAGCoB,cAAe,UAG7B,GADA2d,EAAO5N,KAAOzN,EACT8I,EACJ,IAAMlS,KAAKokB,GAYVnd,EAAMiL,EAAMlS,IAAOkS,EAAKN,cAAgBM,EAAKN,aAAc5R,KAE1DykB,EAAO1d,aAAc/G,EAAGiH,GAI3Bud,EAAI5c,KAAKC,YAAa4c,GAAS/c,WAAW8W,YAAaiG,GAIzD,SAASC,EAAQ7T,GAChB,OAAY,MAAPA,EACGA,EAAM,GAIQ,iBAARA,GAAmC,mBAARA,EACxCgT,EAAYC,EAAS3jB,KAAM0Q,KAAW,gBAC/BA,EAQT,IAIC8T,EAAS,SAAUnf,EAAU4N,GAI5B,OAAO,IAAIuR,EAAO5U,GAAGuN,KAAM9X,EAAU4N,IAKtCwR,EAAQ,qCAmVT,SAASC,EAAahU,GAMrB,IAAI5N,IAAW4N,GAAO,WAAYA,GAAOA,EAAI5N,OAC5C2d,EAAO8D,EAAQ7T,GAEhB,OAAKoD,EAAYpD,KAASsT,EAAUtT,KAIpB,UAAT+P,GAA+B,IAAX3d,GACR,iBAAXA,GAAuBA,EAAS,GAAOA,EAAS,KAAO4N,GA/VhE8T,EAAO5U,GAAK4U,EAAO/iB,UAAY,CAG9BkjB,OAjBU,QAmBVpJ,YAAaiJ,EAGb1hB,OAAQ,EAER8hB,QAAS,WACR,OAAO/b,EAAM7I,KAAMuC,OAKpB7B,IAAK,SAAUmkB,GAGd,OAAY,MAAPA,EACGhc,EAAM7I,KAAMuC,MAIbsiB,EAAM,EAAItiB,KAAMsiB,EAAMtiB,KAAKO,QAAWP,KAAMsiB,IAKpDC,UAAW,SAAUC,GAGpB,IAAIC,EAAMR,EAAOS,MAAO1iB,KAAKgZ,cAAewJ,GAM5C,OAHAC,EAAIE,WAAa3iB,KAGVyiB,GAIRxQ,KAAM,SAAU2Q,GACf,OAAOX,EAAOhQ,KAAMjS,KAAM4iB,IAG3Bjd,IAAK,SAAUid,GACd,OAAO5iB,KAAKuiB,UAAWN,EAAOtc,IAAK3F,MAAM,SAAUmZ,EAAM7b,GACxD,OAAOslB,EAASnlB,KAAM0b,EAAM7b,EAAG6b,QAIjC7S,MAAO,WACN,OAAOtG,KAAKuiB,UAAWjc,EAAM/E,MAAOvB,KAAMqB,aAG3CwhB,MAAO,WACN,OAAO7iB,KAAK8iB,GAAI,IAGjBC,KAAM,WACL,OAAO/iB,KAAK8iB,IAAK,IAGlBA,GAAI,SAAUxlB,GACb,IAAIqD,EAAMX,KAAKO,OACdsK,GAAKvN,GAAMA,EAAI,EAAIqD,EAAM,GAC1B,OAAOX,KAAKuiB,UAAW1X,GAAK,GAAKA,EAAIlK,EAAM,CAAEX,KAAM6K,IAAQ,KAG5D1D,IAAK,WACJ,OAAOnH,KAAK2iB,YAAc3iB,KAAKgZ,eAKhC1X,KAAMA,EACN0hB,KAAMta,EAAIsa,KACVvV,OAAQ/E,EAAI+E,QAGbwU,EAAO5T,OAAS4T,EAAO5U,GAAGgB,OAAS,WAClC,IAAIgE,EAASxU,EAAMyQ,EAAK2U,EAAMC,EAAaC,EAC1ChO,EAAS9T,UAAW,IAAO,GAC3B/D,EAAI,EACJiD,EAASc,UAAUd,OACnB6iB,GAAO,EAsBR,IAnBuB,kBAAXjO,IACXiO,EAAOjO,EAGPA,EAAS9T,UAAW/D,IAAO,GAC3BA,KAIsB,iBAAX6X,GAAwB5D,EAAY4D,KAC/CA,EAAS,IAIL7X,IAAMiD,IACV4U,EAASnV,KACT1C,KAGOA,EAAIiD,EAAQjD,IAGnB,GAAqC,OAA9B+U,EAAUhR,UAAW/D,IAG3B,IAAMO,KAAQwU,EACb4Q,EAAO5Q,EAASxU,GAIF,cAATA,GAAwBsX,IAAW8N,IAKnCG,GAAQH,IAAUhB,EAAOoB,cAAeJ,KAC1CC,EAAc9hB,MAAMuQ,QAASsR,MAC/B3U,EAAM6G,EAAQtX,GAIbslB,EADID,IAAgB9hB,MAAMuQ,QAASrD,GAC3B,GACI4U,GAAgBjB,EAAOoB,cAAe/U,GAG1CA,EAFA,GAIT4U,GAAc,EAGd/N,EAAQtX,GAASokB,EAAO5T,OAAQ+U,EAAMD,EAAOF,SAGzBtf,IAATsf,IACX9N,EAAQtX,GAASolB,IAOrB,OAAO9N,GAGR8M,EAAO5T,OAAQ,CAGdiV,QAAS,UA1KC,QA0KsBC,KAAKC,UAAWlb,QAAS,MAAO,IAGhEmb,SAAS,EAET7X,MAAO,SAAU8X,GAChB,MAAM,IAAIhkB,MAAOgkB,IAGlBziB,KAAM,aAENoiB,cAAe,SAAUlV,GACxB,IAAIqM,EAAOmJ,EAIX,SAAMxV,GAAgC,oBAAzBiT,EAAS3jB,KAAM0Q,QAI5BqM,EAAQ0G,EAAU/S,KASK,mBADvBwV,EAAOtC,EAAO5jB,KAAM+c,EAAO,gBAAmBA,EAAMxB,cACfsI,EAAW7jB,KAAMkmB,KAAWpC,IAGlEqC,cAAe,SAAUzV,GACxB,IAAItQ,EAEJ,IAAMA,KAAQsQ,EACb,OAAO,EAER,OAAO,GAIR0V,WAAY,SAAUnd,EAAM2L,GAC3BwP,EAASnb,EAAM,CAAEib,MAAOtP,GAAWA,EAAQsP,SAG5C1P,KAAM,SAAU9D,EAAKyU,GACpB,IAAIriB,EAAQjD,EAAI,EAEhB,GAAK6kB,EAAahU,GAEjB,IADA5N,EAAS4N,EAAI5N,OACLjD,EAAIiD,IACqC,IAA3CqiB,EAASnlB,KAAM0Q,EAAK7Q,GAAKA,EAAG6Q,EAAK7Q,IADnBA,UAMpB,IAAMA,KAAK6Q,EACV,IAAgD,IAA3CyU,EAASnlB,KAAM0Q,EAAK7Q,GAAKA,EAAG6Q,EAAK7Q,IACrC,MAKH,OAAO6Q,GAIRhE,KAAM,SAAUgK,GACf,OAAe,MAARA,EACN,IACEA,EAAO,IAAK7L,QAAS4Z,EAAO,KAIhC4B,UAAW,SAAUpb,EAAKqb,GACzB,IAAItB,EAAMsB,GAAW,GAarB,OAXY,MAAPrb,IACCyZ,EAAankB,OAAQ0K,IACzBuZ,EAAOS,MAAOD,EACE,iBAAR/Z,EACP,CAAEA,GAAQA,GAGXpH,EAAK7D,KAAMglB,EAAK/Z,IAIX+Z,GAGRuB,QAAS,SAAU7K,EAAMzQ,EAAKpL,GAC7B,OAAc,MAAPoL,GAAe,EAAIxB,EAAQzJ,KAAMiL,EAAKyQ,EAAM7b,IAKpDolB,MAAO,SAAUG,EAAOoB,GAKvB,IAJA,IAAItjB,GAAOsjB,EAAO1jB,OACjBsK,EAAI,EACJvN,EAAIulB,EAAMtiB,OAEHsK,EAAIlK,EAAKkK,IAChBgY,EAAOvlB,KAAQ2mB,EAAQpZ,GAKxB,OAFAgY,EAAMtiB,OAASjD,EAERulB,GAGRqB,KAAM,SAAU1B,EAAOI,EAAUuB,GAShC,IARA,IACCC,EAAU,GACV9mB,EAAI,EACJiD,EAASiiB,EAAMjiB,OACf8jB,GAAkBF,EAIX7mB,EAAIiD,EAAQjD,KACAslB,EAAUJ,EAAOllB,GAAKA,KAChB+mB,GACxBD,EAAQ9iB,KAAMkhB,EAAOllB,IAIvB,OAAO8mB,GAIRze,IAAK,SAAU6c,EAAOI,EAAU0B,GAC/B,IAAI/jB,EAAQhC,EACXjB,EAAI,EACJmlB,EAAM,GAGP,GAAKN,EAAaK,GAEjB,IADAjiB,EAASiiB,EAAMjiB,OACPjD,EAAIiD,EAAQjD,IAGL,OAFdiB,EAAQqkB,EAAUJ,EAAOllB,GAAKA,EAAGgnB,KAGhC7B,EAAInhB,KAAM/C,QAMZ,IAAMjB,KAAKklB,EAGI,OAFdjkB,EAAQqkB,EAAUJ,EAAOllB,GAAKA,EAAGgnB,KAGhC7B,EAAInhB,KAAM/C,GAMb,OAAOiC,EAAOe,MAAO,GAAIkhB,IAI1B8B,KAAM,EAIN/C,QAASA,IAGa,mBAAXnjB,SACX4jB,EAAO5U,GAAIhP,OAAOmmB,UAAa9b,EAAKrK,OAAOmmB,WAI5CvC,EAAOhQ,KAAM,uEAAuEtJ,MAAO,MAC3F,SAAUrL,EAAGO,GACZsjB,EAAY,WAAatjB,EAAO,KAAQA,EAAKkS,iBAmB9C,IAAI0U;;;;;;;;;;;AAWJ,SAAW/gB,GAEX,IAAIpG,EACHkkB,EACAkD,EACAC,EACAC,EACAC,EACAC,EACAxQ,EACAyQ,EACAC,EACAC,EAGAC,EACAliB,EACAmiB,EACAC,EACAC,EACAC,EACAlB,EACArS,EAGAuR,EAAU,SAAW,EAAI,IAAIiC,KAC7BC,EAAe9hB,EAAOV,SACtByiB,EAAU,EACVC,EAAO,EACPC,EAAaC,KACbC,EAAaD,KACbE,EAAgBF,KAChBG,EAAyBH,KACzBI,EAAY,SAAUhO,EAAG3N,GAIxB,OAHK2N,IAAM3N,IACV4a,GAAe,GAET,GAIR5D,EAAS,GAAKliB,eACduJ,EAAM,GACNud,EAAMvd,EAAIud,IACVC,EAAcxd,EAAIpH,KAClBA,EAAOoH,EAAIpH,KACXgF,EAAQoC,EAAIpC,MAGZY,EAAU,SAAU4D,EAAMqO,GAGzB,IAFA,IAAI7b,EAAI,EACPqD,EAAMmK,EAAKvK,OACJjD,EAAIqD,EAAKrD,IAChB,GAAKwN,EAAKxN,KAAO6b,EAChB,OAAO7b,EAGT,OAAQ,GAGT6oB,EAAW,6HAKXC,EAAa,sBAGbC,EAAa,gCAGbjI,EAAa,MAAQgI,EAAa,KAAOC,EAAa,OAASD,EAE9D,gBAAkBA,EAElB,2DAA6DC,EAAa,OAASD,EACnF,OAEDE,EAAU,KAAOD,EAAa,wFAKAjI,EAAa,eAM3CmI,EAAc,IAAI3e,OAAQwe,EAAa,IAAK,KAC5ClE,EAAQ,IAAIta,OAAQ,IAAMwe,EAAa,8BAAgCA,EAAa,KAAM,KAE1FI,EAAS,IAAI5e,OAAQ,IAAMwe,EAAa,KAAOA,EAAa,KAC5DK,EAAe,IAAI7e,OAAQ,IAAMwe,EAAa,WAAaA,EAAa,IAAMA,EAAa,KAC3FM,EAAW,IAAI9e,OAAQwe,EAAa,MAEpCO,EAAU,IAAI/e,OAAQ0e,GACtBM,EAAc,IAAIhf,OAAQ,IAAMye,EAAa,KAE7CQ,EAAY,CACX,GAAM,IAAIjf,OAAQ,MAAQye,EAAa,KACvC,MAAS,IAAIze,OAAQ,QAAUye,EAAa,KAC5C,IAAO,IAAIze,OAAQ,KAAOye,EAAa,SACvC,KAAQ,IAAIze,OAAQ,IAAMwW,GAC1B,OAAU,IAAIxW,OAAQ,IAAM0e,GAC5B,MAAS,IAAI1e,OAAQ,yDAA2Dwe,EAC/E,+BAAiCA,EAAa,cAAgBA,EAC9D,aAAeA,EAAa,SAAU,KACvC,KAAQ,IAAIxe,OAAQ,OAASue,EAAW,KAAM,KAG9C,aAAgB,IAAIve,OAAQ,IAAMwe,EAAa,mDAC9CA,EAAa,mBAAqBA,EAAa,mBAAoB,MAGrEU,EAAQ,SACRC,EAAU,sCACVC,EAAU,SAEVC,EAAU,yBAGVC,EAAa,mCAEbC,GAAW,OAIXC,GAAY,IAAIxf,OAAQ,qBAAuBwe,EAAa,MAAQA,EAAa,OAAQ,MACzFiB,GAAY,SAAUpc,EAAGqc,EAASC,GACjC,IAAIC,EAAO,KAAOF,EAAU,MAI5B,OAAOE,GAASA,GAAQD,EACvBD,EACAE,EAAO,EAENC,OAAOC,aAAcF,EAAO,OAE5BC,OAAOC,aAAcF,GAAQ,GAAK,MAAe,KAAPA,EAAe,QAK5DG,GAAa,sDACbC,GAAa,SAAUpe,EAAIqe,GAC1B,OAAKA,EAGQ,OAAPre,EACG,IAIDA,EAAGlD,MAAO,GAAI,GAAM,KAAOkD,EAAGse,WAAYte,EAAGjJ,OAAS,GAAI6gB,SAAU,IAAO,IAI5E,KAAO5X,GAOfue,GAAgB,WACf7C,KAGD8C,GAAqBC,IACpB,SAAU9O,GACT,OAAyB,IAAlBA,EAAK+O,UAAqD,aAAhC/O,EAAKgP,SAASpY,gBAEhD,CAAEpN,IAAK,aAAcsE,KAAM,WAI7B,IACC3F,EAAKC,MACHmH,EAAMpC,EAAM7I,KAAM+nB,EAAa4C,YAChC5C,EAAa4C,YAId1f,EAAK8c,EAAa4C,WAAW7nB,QAAS4d,SACrC,MAAQpe,GACTuB,EAAO,CAAEC,MAAOmH,EAAInI,OAGnB,SAAU4U,EAAQkT,GACjBnC,EAAY3kB,MAAO4T,EAAQ7O,EAAM7I,KAAK4qB,KAKvC,SAAUlT,EAAQkT,GAIjB,IAHA,IAAIxd,EAAIsK,EAAO5U,OACdjD,EAAI,EAEI6X,EAAOtK,KAAOwd,EAAI/qB,OAC3B6X,EAAO5U,OAASsK,EAAI,IAKvB,SAAS4Z,GAAQ3hB,EAAU4N,EAASqT,EAASuE,GAC5C,IAAI5qB,EAAGJ,EAAG6b,EAAMoP,EAAKvhB,EAAOwhB,EAAQC,EACnCC,EAAahY,GAAWA,EAAQjB,cAGhC0O,EAAWzN,EAAUA,EAAQyN,SAAW,EAKzC,GAHA4F,EAAUA,GAAW,GAGI,iBAAbjhB,IAA0BA,GACxB,IAAbqb,GAA+B,IAAbA,GAA+B,KAAbA,EAEpC,OAAO4F,EAIR,IAAMuE,KAEE5X,EAAUA,EAAQjB,eAAiBiB,EAAU8U,KAAmBxiB,GACtEkiB,EAAaxU,GAEdA,EAAUA,GAAW1N,EAEhBoiB,GAAiB,CAIrB,GAAkB,KAAbjH,IAAoBnX,EAAQkgB,EAAWziB,KAAM3B,IAGjD,GAAMpF,EAAIsJ,EAAM,IAGf,GAAkB,IAAbmX,EAAiB,CACrB,KAAMhF,EAAOzI,EAAQiY,eAAgBjrB,IAUpC,OAAOqmB,EALP,GAAK5K,EAAKpU,KAAOrH,EAEhB,OADAqmB,EAAQziB,KAAM6X,GACP4K,OAYT,GAAK2E,IAAevP,EAAOuP,EAAWC,eAAgBjrB,KACrDqU,EAAUrB,EAASyI,IACnBA,EAAKpU,KAAOrH,EAGZ,OADAqmB,EAAQziB,KAAM6X,GACP4K,MAKH,IAAK/c,EAAM,GAEjB,OADA1F,EAAKC,MAAOwiB,EAASrT,EAAQkY,qBAAsB9lB,IAC5CihB,EAGD,IAAMrmB,EAAIsJ,EAAM,KAAOwa,EAAQqH,wBACrCnY,EAAQmY,uBAGR,OADAvnB,EAAKC,MAAOwiB,EAASrT,EAAQmY,uBAAwBnrB,IAC9CqmB,EAKT,GAAKvC,EAAQsH,MACX/C,EAAwBjjB,EAAW,QAClCuiB,IAAcA,EAAUze,KAAM9D,MAIlB,IAAbqb,GAAqD,WAAnCzN,EAAQyX,SAASpY,eAA8B,CAUlE,GARA0Y,EAAc3lB,EACd4lB,EAAahY,EAOK,IAAbyN,GAAkBuI,EAAS9f,KAAM9D,GAAa,CAYlD,KATMylB,EAAM7X,EAAQxB,aAAc,OACjCqZ,EAAMA,EAAIjgB,QAASqf,GAAYC,IAE/BlX,EAAQrM,aAAc,KAAOkkB,EAAMjF,GAKpChmB,GADAkrB,EAAS3D,EAAU/hB,IACRvC,OACHjD,KACPkrB,EAAOlrB,GAAK,IAAMirB,EAAM,IAAMQ,GAAYP,EAAOlrB,IAElDmrB,EAAcD,EAAO3iB,KAAM,KAG3B6iB,EAAavB,GAASvgB,KAAM9D,IAAckmB,GAAatY,EAAQ1L,aAC9D0L,EAGF,IAIC,OAHApP,EAAKC,MAAOwiB,EACX2E,EAAW/Z,iBAAkB8Z,IAEvB1E,EACN,MAAQkF,GACTlD,EAAwBjjB,GAAU,GACjC,QACIylB,IAAQjF,GACZ5S,EAAQvB,gBAAiB,QAQ9B,OAAOmF,EAAQxR,EAASwF,QAAS4Z,EAAO,MAAQxR,EAASqT,EAASuE,GASnE,SAAS1C,KACR,IAAIlgB,EAAO,GAUX,OARA,SAASwjB,EAAOrqB,EAAKN,GAMpB,OAJKmH,EAAKpE,KAAMzC,EAAM,KAAQ6lB,EAAKyE,oBAE3BD,EAAOxjB,EAAK0jB,SAEZF,EAAOrqB,EAAM,KAAQN,GAS/B,SAAS8qB,GAAchc,GAEtB,OADAA,EAAIiW,IAAY,EACTjW,EAOR,SAASic,GAAQjc,GAChB,IAAIJ,EAAKjK,EAASoB,cAAc,YAEhC,IACC,QAASiJ,EAAIJ,GACZ,MAAOlN,GACR,OAAO,EACN,QAEIkN,EAAGjI,YACPiI,EAAGjI,WAAW8W,YAAa7O,GAG5BA,EAAK,MASP,SAASsc,GAAWxR,EAAO9C,GAI1B,IAHA,IAAIvM,EAAMqP,EAAMpP,MAAM,KACrBrL,EAAIoL,EAAInI,OAEDjD,KACPonB,EAAK8E,WAAY9gB,EAAIpL,IAAO2X,EAU9B,SAASwU,GAAczR,EAAG3N,GACzB,IAAIqf,EAAMrf,GAAK2N,EACd2R,EAAOD,GAAsB,IAAf1R,EAAEmG,UAAiC,IAAf9T,EAAE8T,UACnCnG,EAAE4R,YAAcvf,EAAEuf,YAGpB,GAAKD,EACJ,OAAOA,EAIR,GAAKD,EACJ,KAASA,EAAMA,EAAI7Y,aAClB,GAAK6Y,IAAQrf,EACZ,OAAQ,EAKX,OAAO2N,EAAI,GAAK,EAOjB,SAAS6R,GAAmB3L,GAC3B,OAAO,SAAU/E,GAEhB,MAAgB,UADLA,EAAKgP,SAASpY,eACEoJ,EAAK+E,OAASA,GAQ3C,SAAS4L,GAAoB5L,GAC5B,OAAO,SAAU/E,GAChB,IAAItb,EAAOsb,EAAKgP,SAASpY,cACzB,OAAiB,UAATlS,GAA6B,WAATA,IAAsBsb,EAAK+E,OAASA,GAQlE,SAAS6L,GAAsB7B,GAG9B,OAAO,SAAU/O,GAKhB,MAAK,SAAUA,EASTA,EAAKnU,aAAgC,IAAlBmU,EAAK+O,SAGvB,UAAW/O,EACV,UAAWA,EAAKnU,WACbmU,EAAKnU,WAAWkjB,WAAaA,EAE7B/O,EAAK+O,WAAaA,EAMpB/O,EAAK6Q,aAAe9B,GAI1B/O,EAAK6Q,cAAgB9B,GACpBF,GAAoB7O,KAAW+O,EAG3B/O,EAAK+O,WAAaA,EAKd,UAAW/O,GACfA,EAAK+O,WAAaA,GAY5B,SAAS+B,GAAwB5c,GAChC,OAAOgc,IAAa,SAAUa,GAE7B,OADAA,GAAYA,EACLb,IAAa,SAAUf,EAAMlE,GAMnC,IALA,IAAIvZ,EACHsf,EAAe9c,EAAI,GAAIib,EAAK/nB,OAAQ2pB,GACpC5sB,EAAI6sB,EAAa5pB,OAGVjD,KACFgrB,EAAOzd,EAAIsf,EAAa7sB,MAC5BgrB,EAAKzd,KAAOuZ,EAAQvZ,GAAKyd,EAAKzd,WAYnC,SAASme,GAAatY,GACrB,OAAOA,QAAmD,IAAjCA,EAAQkY,sBAAwClY,EAujC1E,IAAMpT,KAnjCNkkB,EAAUiD,GAAOjD,QAAU,GAO3BoD,EAAQH,GAAOG,MAAQ,SAAUzL,GAChC,IAAIiR,EAAYjR,EAAKkR,aACpBlF,GAAWhM,EAAK1J,eAAiB0J,GAAMtJ,gBAKxC,OAAQiX,EAAMlgB,KAAMwjB,GAAajF,GAAWA,EAAQgD,UAAY,SAQjEjD,EAAcT,GAAOS,YAAc,SAAU1V,GAC5C,IAAI8a,EAAYC,EACfzI,EAAMtS,EAAOA,EAAKC,eAAiBD,EAAOgW,EAG3C,OAAK1D,IAAQ9e,GAA6B,IAAjB8e,EAAI3D,UAAmB2D,EAAIjS,iBAMpDsV,GADAniB,EAAW8e,GACQjS,gBACnBuV,GAAkBR,EAAO5hB,GAIpBwiB,IAAiBxiB,IACpBunB,EAAYvnB,EAASwnB,cAAgBD,EAAUE,MAAQF,IAGnDA,EAAUzU,iBACdyU,EAAUzU,iBAAkB,SAAUiS,IAAe,GAG1CwC,EAAUG,aACrBH,EAAUG,YAAa,WAAY3C,KAUrCvG,EAAQpD,WAAakL,IAAO,SAAUrc,GAErC,OADAA,EAAG0d,UAAY,KACP1d,EAAGiC,aAAa,gBAOzBsS,EAAQoH,qBAAuBU,IAAO,SAAUrc,GAE/C,OADAA,EAAG9H,YAAanC,EAAS4nB,cAAc,MAC/B3d,EAAG2b,qBAAqB,KAAKroB,UAItCihB,EAAQqH,uBAAyB5B,EAAQrgB,KAAM5D,EAAS6lB,wBAMxDrH,EAAQqJ,QAAUvB,IAAO,SAAUrc,GAElC,OADAkY,EAAQhgB,YAAa8H,GAAKlI,GAAKue,GACvBtgB,EAAS8nB,oBAAsB9nB,EAAS8nB,kBAAmBxH,GAAU/iB,UAIzEihB,EAAQqJ,SACZnG,EAAK9L,OAAW,GAAI,SAAU7T,GAC7B,IAAIgmB,EAAShmB,EAAGuD,QAAS8e,GAAWC,IACpC,OAAO,SAAUlO,GAChB,OAAOA,EAAKjK,aAAa,QAAU6b,IAGrCrG,EAAKsG,KAAS,GAAI,SAAUjmB,EAAI2L,GAC/B,QAAuC,IAA3BA,EAAQiY,gBAAkCvD,EAAiB,CACtE,IAAIjM,EAAOzI,EAAQiY,eAAgB5jB,GACnC,OAAOoU,EAAO,CAAEA,GAAS,OAI3BuL,EAAK9L,OAAW,GAAK,SAAU7T,GAC9B,IAAIgmB,EAAShmB,EAAGuD,QAAS8e,GAAWC,IACpC,OAAO,SAAUlO,GAChB,IAAI3J,OAAwC,IAA1B2J,EAAK8R,kBACtB9R,EAAK8R,iBAAiB,MACvB,OAAOzb,GAAQA,EAAKjR,QAAUwsB,IAMhCrG,EAAKsG,KAAS,GAAI,SAAUjmB,EAAI2L,GAC/B,QAAuC,IAA3BA,EAAQiY,gBAAkCvD,EAAiB,CACtE,IAAI5V,EAAMlS,EAAGklB,EACZrJ,EAAOzI,EAAQiY,eAAgB5jB,GAEhC,GAAKoU,EAAO,CAIX,IADA3J,EAAO2J,EAAK8R,iBAAiB,QAChBzb,EAAKjR,QAAUwG,EAC3B,MAAO,CAAEoU,GAMV,IAFAqJ,EAAQ9R,EAAQoa,kBAAmB/lB,GACnCzH,EAAI,EACK6b,EAAOqJ,EAAMllB,MAErB,IADAkS,EAAO2J,EAAK8R,iBAAiB,QAChBzb,EAAKjR,QAAUwG,EAC3B,MAAO,CAAEoU,GAKZ,MAAO,MAMVuL,EAAKsG,KAAU,IAAIxJ,EAAQoH,qBAC1B,SAAU/T,EAAKnE,GACd,YAA6C,IAAjCA,EAAQkY,qBACZlY,EAAQkY,qBAAsB/T,GAG1B2M,EAAQsH,IACZpY,EAAQ/B,iBAAkBkG,QAD3B,GAKR,SAAUA,EAAKnE,GACd,IAAIyI,EACH+R,EAAM,GACN5tB,EAAI,EAEJymB,EAAUrT,EAAQkY,qBAAsB/T,GAGzC,GAAa,MAARA,EAAc,CAClB,KAASsE,EAAO4K,EAAQzmB,MACA,IAAlB6b,EAAKgF,UACT+M,EAAI5pB,KAAM6X,GAIZ,OAAO+R,EAER,OAAOnH,GAITW,EAAKsG,KAAY,MAAIxJ,EAAQqH,wBAA0B,SAAU8B,EAAWja,GAC3E,QAA+C,IAAnCA,EAAQmY,wBAA0CzD,EAC7D,OAAO1U,EAAQmY,uBAAwB8B,IAUzCrF,EAAgB,GAOhBD,EAAY,IAEN7D,EAAQsH,IAAM7B,EAAQrgB,KAAM5D,EAAS2L,qBAG1C2a,IAAO,SAAUrc,GAMhBkY,EAAQhgB,YAAa8H,GAAKlH,UAAY,UAAYud,EAAU,qBAC1CA,EAAU,kEAOvBrW,EAAG0B,iBAAiB,wBAAwBpO,QAChD8kB,EAAU/jB,KAAM,SAAW8kB,EAAa,gBAKnCnZ,EAAG0B,iBAAiB,cAAcpO,QACvC8kB,EAAU/jB,KAAM,MAAQ8kB,EAAa,aAAeD,EAAW,KAI1DlZ,EAAG0B,iBAAkB,QAAU2U,EAAU,MAAO/iB,QACrD8kB,EAAU/jB,KAAK,MAMV2L,EAAG0B,iBAAiB,YAAYpO,QACrC8kB,EAAU/jB,KAAK,YAMV2L,EAAG0B,iBAAkB,KAAO2U,EAAU,MAAO/iB,QAClD8kB,EAAU/jB,KAAK,eAIjBgoB,IAAO,SAAUrc,GAChBA,EAAGlH,UAAY,oFAKf,IAAIolB,EAAQnoB,EAASoB,cAAc,SACnC+mB,EAAM9mB,aAAc,OAAQ,UAC5B4I,EAAG9H,YAAagmB,GAAQ9mB,aAAc,OAAQ,KAIzC4I,EAAG0B,iBAAiB,YAAYpO,QACpC8kB,EAAU/jB,KAAM,OAAS8kB,EAAa,eAKS,IAA3CnZ,EAAG0B,iBAAiB,YAAYpO,QACpC8kB,EAAU/jB,KAAM,WAAY,aAK7B6jB,EAAQhgB,YAAa8H,GAAKib,UAAW,EACY,IAA5Cjb,EAAG0B,iBAAiB,aAAapO,QACrC8kB,EAAU/jB,KAAM,WAAY,aAI7B2L,EAAG0B,iBAAiB,QACpB0W,EAAU/jB,KAAK,aAIXkgB,EAAQ4J,gBAAkBnE,EAAQrgB,KAAOwd,EAAUe,EAAQf,SAChEe,EAAQkG,uBACRlG,EAAQmG,oBACRnG,EAAQoG,kBACRpG,EAAQqG,qBAERlC,IAAO,SAAUrc,GAGhBuU,EAAQiK,kBAAoBrH,EAAQ3mB,KAAMwP,EAAI,KAI9CmX,EAAQ3mB,KAAMwP,EAAI,aAClBqY,EAAchkB,KAAM,KAAMglB,MAI5BjB,EAAYA,EAAU9kB,QAAU,IAAIqH,OAAQyd,EAAUxf,KAAK,MAC3Dyf,EAAgBA,EAAc/kB,QAAU,IAAIqH,OAAQ0d,EAAczf,KAAK,MAIvEykB,EAAarD,EAAQrgB,KAAMue,EAAQuG,yBAKnC3Z,EAAWuY,GAAcrD,EAAQrgB,KAAMue,EAAQpT,UAC9C,SAAUiG,EAAG3N,GACZ,IAAIshB,EAAuB,IAAf3T,EAAEmG,SAAiBnG,EAAEnI,gBAAkBmI,EAClD4T,EAAMvhB,GAAKA,EAAErF,WACd,OAAOgT,IAAM4T,MAAWA,GAAwB,IAAjBA,EAAIzN,YAClCwN,EAAM5Z,SACL4Z,EAAM5Z,SAAU6Z,GAChB5T,EAAE0T,yBAA8D,GAAnC1T,EAAE0T,wBAAyBE,MAG3D,SAAU5T,EAAG3N,GACZ,GAAKA,EACJ,KAASA,EAAIA,EAAErF,YACd,GAAKqF,IAAM2N,EACV,OAAO,EAIV,OAAO,GAOTgO,EAAYsE,EACZ,SAAUtS,EAAG3N,GAGZ,GAAK2N,IAAM3N,EAEV,OADA4a,GAAe,EACR,EAIR,IAAI4G,GAAW7T,EAAE0T,yBAA2BrhB,EAAEqhB,wBAC9C,OAAKG,IAYU,GAPfA,GAAY7T,EAAEvI,eAAiBuI,MAAU3N,EAAEoF,eAAiBpF,GAC3D2N,EAAE0T,wBAAyBrhB,GAG3B,KAIEmX,EAAQsK,cAAgBzhB,EAAEqhB,wBAAyB1T,KAAQ6T,EAGxD7T,IAAMhV,GAAYgV,EAAEvI,gBAAkB+V,GAAgBzT,EAASyT,EAAcxN,IACzE,EAEJ3N,IAAMrH,GAAYqH,EAAEoF,gBAAkB+V,GAAgBzT,EAASyT,EAAcnb,GAC1E,EAID2a,EACJ9d,EAAS8d,EAAWhN,GAAM9Q,EAAS8d,EAAW3a,GAChD,EAGe,EAAVwhB,GAAe,EAAI,IAE3B,SAAU7T,EAAG3N,GAEZ,GAAK2N,IAAM3N,EAEV,OADA4a,GAAe,EACR,EAGR,IAAIyE,EACHpsB,EAAI,EACJyuB,EAAM/T,EAAEhT,WACR4mB,EAAMvhB,EAAErF,WACRgnB,EAAK,CAAEhU,GACP3P,EAAK,CAAEgC,GAGR,IAAM0hB,IAAQH,EACb,OAAO5T,IAAMhV,GAAY,EACxBqH,IAAMrH,EAAW,EACjB+oB,GAAO,EACPH,EAAM,EACN5G,EACE9d,EAAS8d,EAAWhN,GAAM9Q,EAAS8d,EAAW3a,GAChD,EAGK,GAAK0hB,IAAQH,EACnB,OAAOnC,GAAczR,EAAG3N,GAKzB,IADAqf,EAAM1R,EACG0R,EAAMA,EAAI1kB,YAClBgnB,EAAGC,QAASvC,GAGb,IADAA,EAAMrf,EACGqf,EAAMA,EAAI1kB,YAClBqD,EAAG4jB,QAASvC,GAIb,KAAQsC,EAAG1uB,KAAO+K,EAAG/K,IACpBA,IAGD,OAAOA,EAENmsB,GAAcuC,EAAG1uB,GAAI+K,EAAG/K,IAGxB0uB,EAAG1uB,KAAOkoB,GAAgB,EAC1Bnd,EAAG/K,KAAOkoB,EAAe,EACzB,GAGKxiB,GA3YCA,GA8YTyhB,GAAOL,QAAU,SAAUla,EAAMgiB,GAChC,OAAOzH,GAAQva,EAAM,KAAM,KAAMgiB,IAGlCzH,GAAO2G,gBAAkB,SAAUjS,EAAMjP,GAMxC,IAJOiP,EAAK1J,eAAiB0J,KAAWnW,GACvCkiB,EAAa/L,GAGTqI,EAAQ4J,iBAAmBhG,IAC9BW,EAAwB7b,EAAO,QAC7Bob,IAAkBA,EAAc1e,KAAMsD,OACtCmb,IAAkBA,EAAUze,KAAMsD,IAErC,IACC,IAAIuY,EAAM2B,EAAQ3mB,KAAM0b,EAAMjP,GAG9B,GAAKuY,GAAOjB,EAAQiK,mBAGlBtS,EAAKnW,UAAuC,KAA3BmW,EAAKnW,SAASmb,SAChC,OAAOsE,EAEP,MAAO1iB,GACRgmB,EAAwB7b,GAAM,GAIhC,OAAOua,GAAQva,EAAMlH,EAAU,KAAM,CAAEmW,IAAS5Y,OAAS,GAG1DkkB,GAAO1S,SAAW,SAAUrB,EAASyI,GAKpC,OAHOzI,EAAQjB,eAAiBiB,KAAc1N,GAC7CkiB,EAAaxU,GAEPqB,EAAUrB,EAASyI,IAG3BsL,GAAO5N,KAAO,SAAUsC,EAAMtb,IAEtBsb,EAAK1J,eAAiB0J,KAAWnW,GACvCkiB,EAAa/L,GAGd,IAAI9L,EAAKqX,EAAK8E,WAAY3rB,EAAKkS,eAE9BxL,EAAM8I,GAAMgU,EAAO5jB,KAAMinB,EAAK8E,WAAY3rB,EAAKkS,eAC9C1C,EAAI8L,EAAMtb,GAAOunB,QACjBzhB,EAEF,YAAeA,IAARY,EACNA,EACAid,EAAQpD,aAAegH,EACtBjM,EAAKjK,aAAcrR,IAClB0G,EAAM4U,EAAK8R,iBAAiBptB,KAAU0G,EAAI4nB,UAC1C5nB,EAAIhG,MACJ,MAGJkmB,GAAO2H,OAAS,SAAUC,GACzB,OAAQA,EAAM,IAAI/jB,QAASqf,GAAYC,KAGxCnD,GAAO7Y,MAAQ,SAAU8X,GACxB,MAAM,IAAIhkB,MAAO,0CAA4CgkB,IAO9De,GAAO6H,WAAa,SAAUvI,GAC7B,IAAI5K,EACHoT,EAAa,GACb1hB,EAAI,EACJvN,EAAI,EAOL,GAJA2nB,GAAgBzD,EAAQgL,iBACxBxH,GAAaxD,EAAQiL,YAAc1I,EAAQzd,MAAO,GAClDyd,EAAQf,KAAMgD,GAETf,EAAe,CACnB,KAAS9L,EAAO4K,EAAQzmB,MAClB6b,IAAS4K,EAASzmB,KACtBuN,EAAI0hB,EAAWjrB,KAAMhE,IAGvB,KAAQuN,KACPkZ,EAAQtW,OAAQ8e,EAAY1hB,GAAK,GAQnC,OAFAma,EAAY,KAELjB,GAORY,EAAUF,GAAOE,QAAU,SAAUxL,GACpC,IAAI3J,EACHiT,EAAM,GACNnlB,EAAI,EACJ6gB,EAAWhF,EAAKgF,SAEjB,GAAMA,GAMC,GAAkB,IAAbA,GAA+B,IAAbA,GAA+B,KAAbA,EAAkB,CAGjE,GAAiC,iBAArBhF,EAAKuT,YAChB,OAAOvT,EAAKuT,YAGZ,IAAMvT,EAAOA,EAAKvI,WAAYuI,EAAMA,EAAOA,EAAKtI,YAC/C4R,GAAOkC,EAASxL,QAGZ,GAAkB,IAAbgF,GAA+B,IAAbA,EAC7B,OAAOhF,EAAKd,eAhBZ,KAAS7I,EAAO2J,EAAK7b,MAEpBmlB,GAAOkC,EAASnV,GAkBlB,OAAOiT,IAGRiC,EAAOD,GAAOkI,UAAY,CAGzBxD,YAAa,GAEbyD,aAAcvD,GAEdriB,MAAO6f,EAEP2C,WAAY,GAEZwB,KAAM,GAEN6B,SAAU,CACT,IAAK,CAAElqB,IAAK,aAAckgB,OAAO,GACjC,IAAK,CAAElgB,IAAK,cACZ,IAAK,CAAEA,IAAK,kBAAmBkgB,OAAO,GACtC,IAAK,CAAElgB,IAAK,oBAGbmqB,UAAW,CACV,KAAQ,SAAU9lB,GAUjB,OATAA,EAAM,GAAKA,EAAM,GAAGsB,QAAS8e,GAAWC,IAGxCrgB,EAAM,IAAOA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAM,IAAKsB,QAAS8e,GAAWC,IAExD,OAAbrgB,EAAM,KACVA,EAAM,GAAK,IAAMA,EAAM,GAAK,KAGtBA,EAAMV,MAAO,EAAG,IAGxB,MAAS,SAAUU,GA6BlB,OAlBAA,EAAM,GAAKA,EAAM,GAAG+I,cAEY,QAA3B/I,EAAM,GAAGV,MAAO,EAAG,IAEjBU,EAAM,IACXyd,GAAO7Y,MAAO5E,EAAM,IAKrBA,EAAM,KAAQA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAAK,GAAmB,SAAbA,EAAM,IAA8B,QAAbA,EAAM,KACzFA,EAAM,KAAUA,EAAM,GAAKA,EAAM,IAAqB,QAAbA,EAAM,KAGpCA,EAAM,IACjByd,GAAO7Y,MAAO5E,EAAM,IAGdA,GAGR,OAAU,SAAUA,GACnB,IAAI+lB,EACHC,GAAYhmB,EAAM,IAAMA,EAAM,GAE/B,OAAK6f,EAAiB,MAAEjgB,KAAMI,EAAM,IAC5B,MAIHA,EAAM,GACVA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAGxBgmB,GAAYrG,EAAQ/f,KAAMomB,KAEpCD,EAASlI,EAAUmI,GAAU,MAE7BD,EAASC,EAAS9lB,QAAS,IAAK8lB,EAASzsB,OAASwsB,GAAWC,EAASzsB,UAGvEyG,EAAM,GAAKA,EAAM,GAAGV,MAAO,EAAGymB,GAC9B/lB,EAAM,GAAKgmB,EAAS1mB,MAAO,EAAGymB,IAIxB/lB,EAAMV,MAAO,EAAG,MAIzBsS,OAAQ,CAEP,IAAO,SAAUqU,GAChB,IAAI9E,EAAW8E,EAAiB3kB,QAAS8e,GAAWC,IAAYtX,cAChE,MAA4B,MAArBkd,EACN,WAAa,OAAO,GACpB,SAAU9T,GACT,OAAOA,EAAKgP,UAAYhP,EAAKgP,SAASpY,gBAAkBoY,IAI3D,MAAS,SAAUwC,GAClB,IAAIuC,EAAUvH,EAAYgF,EAAY,KAEtC,OAAOuC,IACLA,EAAU,IAAItlB,OAAQ,MAAQwe,EAAa,IAAMuE,EAAY,IAAMvE,EAAa,SACjFT,EAAYgF,GAAW,SAAUxR,GAChC,OAAO+T,EAAQtmB,KAAgC,iBAAnBuS,EAAKwR,WAA0BxR,EAAKwR,gBAA0C,IAAtBxR,EAAKjK,cAAgCiK,EAAKjK,aAAa,UAAY,QAI1J,KAAQ,SAAUrR,EAAMsvB,EAAUrb,GACjC,OAAO,SAAUqH,GAChB,IAAIiU,EAAS3I,GAAO5N,KAAMsC,EAAMtb,GAEhC,OAAe,MAAVuvB,EACgB,OAAbD,GAEFA,IAINC,GAAU,GAEU,MAAbD,EAAmBC,IAAWtb,EACvB,OAAbqb,EAAoBC,IAAWtb,EAClB,OAAbqb,EAAoBrb,GAAqC,IAA5Bsb,EAAOlmB,QAAS4K,GAChC,OAAbqb,EAAoBrb,GAASsb,EAAOlmB,QAAS4K,IAAW,EAC3C,OAAbqb,EAAoBrb,GAASsb,EAAO9mB,OAAQwL,EAAMvR,UAAauR,EAClD,OAAbqb,GAAsB,IAAMC,EAAO9kB,QAASie,EAAa,KAAQ,KAAMrf,QAAS4K,IAAW,EAC9E,OAAbqb,IAAoBC,IAAWtb,GAASsb,EAAO9mB,MAAO,EAAGwL,EAAMvR,OAAS,KAAQuR,EAAQ,QAK3F,MAAS,SAAUoM,EAAMmP,EAAMnD,EAAUrH,EAAOE,GAC/C,IAAIuK,EAAgC,QAAvBpP,EAAK5X,MAAO,EAAG,GAC3BinB,EAA+B,SAArBrP,EAAK5X,OAAQ,GACvBknB,EAAkB,YAATH,EAEV,OAAiB,IAAVxK,GAAwB,IAATE,EAGrB,SAAU5J,GACT,QAASA,EAAKnU,YAGf,SAAUmU,EAAMzI,EAAS+c,GACxB,IAAIvE,EAAOwE,EAAaC,EAAYne,EAAMoe,EAAW/mB,EACpDlE,EAAM2qB,IAAWC,EAAU,cAAgB,kBAC3Cja,EAAS6F,EAAKnU,WACdnH,EAAO2vB,GAAUrU,EAAKgP,SAASpY,cAC/B8d,GAAYJ,IAAQD,EACpB7D,GAAO,EAER,GAAKrW,EAAS,CAGb,GAAKga,EAAS,CACb,KAAQ3qB,GAAM,CAEb,IADA6M,EAAO2J,EACE3J,EAAOA,EAAM7M,IACrB,GAAK6qB,EACJhe,EAAK2Y,SAASpY,gBAAkBlS,EACd,IAAlB2R,EAAK2O,SAEL,OAAO,EAITtX,EAAQlE,EAAe,SAATub,IAAoBrX,GAAS,cAE5C,OAAO,EAMR,GAHAA,EAAQ,CAAE0mB,EAAUja,EAAO1C,WAAa0C,EAAOwa,WAG1CP,GAAWM,GAkBf,IAHAlE,GADAiE,GADA1E,GAHAwE,GAJAC,GADAne,EAAO8D,GACYgQ,KAAc9T,EAAM8T,GAAY,KAIzB9T,EAAKue,YAC7BJ,EAAYne,EAAKue,UAAa,KAEX7P,IAAU,IACZ,KAAQuH,GAAWyD,EAAO,KACzBA,EAAO,GAC3B1Z,EAAOoe,GAAata,EAAO8U,WAAYwF,GAE9Bpe,IAASoe,GAAape,GAAQA,EAAM7M,KAG3CgnB,EAAOiE,EAAY,IAAM/mB,EAAMof,OAGhC,GAAuB,IAAlBzW,EAAK2O,YAAoBwL,GAAQna,IAAS2J,EAAO,CACrDuU,EAAaxP,GAAS,CAAEuH,EAASmI,EAAWjE,GAC5C,YAuBF,GAjBKkE,IAYJlE,EADAiE,GADA1E,GAHAwE,GAJAC,GADAne,EAAO2J,GACYmK,KAAc9T,EAAM8T,GAAY,KAIzB9T,EAAKue,YAC7BJ,EAAYne,EAAKue,UAAa,KAEX7P,IAAU,IACZ,KAAQuH,GAAWyD,EAAO,KAMhC,IAATS,EAEJ,MAASna,IAASoe,GAAape,GAAQA,EAAM7M,KAC3CgnB,EAAOiE,EAAY,IAAM/mB,EAAMof,UAEzBuH,EACNhe,EAAK2Y,SAASpY,gBAAkBlS,EACd,IAAlB2R,EAAK2O,cACHwL,IAGGkE,KAKJH,GAJAC,EAAane,EAAM8T,KAAc9T,EAAM8T,GAAY,KAIzB9T,EAAKue,YAC7BJ,EAAYne,EAAKue,UAAa,KAEnB7P,GAAS,CAAEuH,EAASkE,IAG7Bna,IAAS2J,MAUlB,OADAwQ,GAAQ5G,KACQF,GAAW8G,EAAO9G,GAAU,GAAK8G,EAAO9G,GAAS,KAKrE,OAAU,SAAUmL,EAAQ9D,GAK3B,IAAI/oB,EACHkM,EAAKqX,EAAK4B,QAAS0H,IAAYtJ,EAAKuJ,WAAYD,EAAOje,gBACtD0U,GAAO7Y,MAAO,uBAAyBoiB,GAKzC,OAAK3gB,EAAIiW,GACDjW,EAAI6c,GAIP7c,EAAG9M,OAAS,GAChBY,EAAO,CAAE6sB,EAAQA,EAAQ,GAAI9D,GACtBxF,EAAKuJ,WAAW9uB,eAAgB6uB,EAAOje,eAC7CsZ,IAAa,SAAUf,EAAMlE,GAI5B,IAHA,IAAI8J,EACHC,EAAU9gB,EAAIib,EAAM4B,GACpB5sB,EAAI6wB,EAAQ5tB,OACLjD,KAEPgrB,EADA4F,EAAMhnB,EAASohB,EAAM6F,EAAQ7wB,OACZ8mB,EAAS8J,GAAQC,EAAQ7wB,OAG5C,SAAU6b,GACT,OAAO9L,EAAI8L,EAAM,EAAGhY,KAIhBkM,IAITiZ,QAAS,CAER,IAAO+C,IAAa,SAAUvmB,GAI7B,IAAIqoB,EAAQ,GACXpH,EAAU,GACVqK,EAAUtJ,EAAShiB,EAASwF,QAAS4Z,EAAO,OAE7C,OAAOkM,EAAS9K,GACf+F,IAAa,SAAUf,EAAMlE,EAAS1T,EAAS+c,GAM9C,IALA,IAAItU,EACHkV,EAAYD,EAAS9F,EAAM,KAAMmF,EAAK,IACtCnwB,EAAIgrB,EAAK/nB,OAGFjD,MACD6b,EAAOkV,EAAU/wB,MACtBgrB,EAAKhrB,KAAO8mB,EAAQ9mB,GAAK6b,OAI5B,SAAUA,EAAMzI,EAAS+c,GAKxB,OAJAtC,EAAM,GAAKhS,EACXiV,EAASjD,EAAO,KAAMsC,EAAK1J,GAE3BoH,EAAM,GAAK,MACHpH,EAAQkC,UAInB,IAAOoD,IAAa,SAAUvmB,GAC7B,OAAO,SAAUqW,GAChB,OAAOsL,GAAQ3hB,EAAUqW,GAAO5Y,OAAS,MAI3C,SAAY8oB,IAAa,SAAUlV,GAElC,OADAA,EAAOA,EAAK7L,QAAS8e,GAAWC,IACzB,SAAUlO,GAChB,OAASA,EAAKuT,aAAe/H,EAASxL,IAASjS,QAASiN,IAAU,MAWpE,KAAQkV,IAAc,SAAUiF,GAM/B,OAJM1H,EAAYhgB,KAAK0nB,GAAQ,KAC9B7J,GAAO7Y,MAAO,qBAAuB0iB,GAEtCA,EAAOA,EAAKhmB,QAAS8e,GAAWC,IAAYtX,cACrC,SAAUoJ,GAChB,IAAIoV,EACJ,GACC,GAAMA,EAAWnJ,EAChBjM,EAAKmV,KACLnV,EAAKjK,aAAa,aAAeiK,EAAKjK,aAAa,QAGnD,OADAqf,EAAWA,EAASxe,iBACAue,GAA2C,IAAnCC,EAASrnB,QAASonB,EAAO,YAE5CnV,EAAOA,EAAKnU,aAAiC,IAAlBmU,EAAKgF,UAC3C,OAAO,MAKT,OAAU,SAAUhF,GACnB,IAAIqV,EAAO9qB,EAAO+qB,UAAY/qB,EAAO+qB,SAASD,KAC9C,OAAOA,GAAQA,EAAKloB,MAAO,KAAQ6S,EAAKpU,IAGzC,KAAQ,SAAUoU,GACjB,OAAOA,IAASgM,GAGjB,MAAS,SAAUhM,GAClB,OAAOA,IAASnW,EAAS0rB,iBAAmB1rB,EAAS2rB,UAAY3rB,EAAS2rB,gBAAkBxV,EAAK+E,MAAQ/E,EAAKyV,OAASzV,EAAK0V,WAI7H,QAAW9E,IAAsB,GACjC,SAAYA,IAAsB,GAElC,QAAW,SAAU5Q,GAGpB,IAAIgP,EAAWhP,EAAKgP,SAASpY,cAC7B,MAAqB,UAAboY,KAA0BhP,EAAK2V,SAA0B,WAAb3G,KAA2BhP,EAAK4V,UAGrF,SAAY,SAAU5V,GAOrB,OAJKA,EAAKnU,YACTmU,EAAKnU,WAAWuP,eAGQ,IAAlB4E,EAAK4V,UAIb,MAAS,SAAU5V,GAKlB,IAAMA,EAAOA,EAAKvI,WAAYuI,EAAMA,EAAOA,EAAKtI,YAC/C,GAAKsI,EAAKgF,SAAW,EACpB,OAAO,EAGT,OAAO,GAGR,OAAU,SAAUhF,GACnB,OAAQuL,EAAK4B,QAAe,MAAGnN,IAIhC,OAAU,SAAUA,GACnB,OAAO6N,EAAQpgB,KAAMuS,EAAKgP,WAG3B,MAAS,SAAUhP,GAClB,OAAO4N,EAAQngB,KAAMuS,EAAKgP,WAG3B,OAAU,SAAUhP,GACnB,IAAItb,EAAOsb,EAAKgP,SAASpY,cACzB,MAAgB,UAATlS,GAAkC,WAAdsb,EAAK+E,MAA8B,WAATrgB,GAGtD,KAAQ,SAAUsb,GACjB,IAAItC,EACJ,MAAuC,UAAhCsC,EAAKgP,SAASpY,eACN,SAAdoJ,EAAK+E,OAImC,OAArCrH,EAAOsC,EAAKjK,aAAa,UAA2C,SAAvB2H,EAAK9G,gBAIvD,MAASka,IAAuB,WAC/B,MAAO,CAAE,MAGV,KAAQA,IAAuB,SAAUE,EAAc5pB,GACtD,MAAO,CAAEA,EAAS,MAGnB,GAAM0pB,IAAuB,SAAUE,EAAc5pB,EAAQ2pB,GAC5D,MAAO,CAAEA,EAAW,EAAIA,EAAW3pB,EAAS2pB,MAG7C,KAAQD,IAAuB,SAAUE,EAAc5pB,GAEtD,IADA,IAAIjD,EAAI,EACAA,EAAIiD,EAAQjD,GAAK,EACxB6sB,EAAa7oB,KAAMhE,GAEpB,OAAO6sB,KAGR,IAAOF,IAAuB,SAAUE,EAAc5pB,GAErD,IADA,IAAIjD,EAAI,EACAA,EAAIiD,EAAQjD,GAAK,EACxB6sB,EAAa7oB,KAAMhE,GAEpB,OAAO6sB,KAGR,GAAMF,IAAuB,SAAUE,EAAc5pB,EAAQ2pB,GAM5D,IALA,IAAI5sB,EAAI4sB,EAAW,EAClBA,EAAW3pB,EACX2pB,EAAW3pB,EACVA,EACA2pB,IACQ5sB,GAAK,GACd6sB,EAAa7oB,KAAMhE,GAEpB,OAAO6sB,KAGR,GAAMF,IAAuB,SAAUE,EAAc5pB,EAAQ2pB,GAE5D,IADA,IAAI5sB,EAAI4sB,EAAW,EAAIA,EAAW3pB,EAAS2pB,IACjC5sB,EAAIiD,GACb4pB,EAAa7oB,KAAMhE,GAEpB,OAAO6sB,QAKL7D,QAAa,IAAI5B,EAAK4B,QAAY,GAG5B,CAAE0I,OAAO,EAAMC,UAAU,EAAMC,MAAM,EAAMC,UAAU,EAAMC,OAAO,GAC5E1K,EAAK4B,QAAShpB,GAAMusB,GAAmBvsB,GAExC,IAAMA,IAAK,CAAE+xB,QAAQ,EAAMC,OAAO,GACjC5K,EAAK4B,QAAShpB,GAAMwsB,GAAoBxsB,GAIzC,SAAS2wB,MAuET,SAASlF,GAAYwG,GAIpB,IAHA,IAAIjyB,EAAI,EACPqD,EAAM4uB,EAAOhvB,OACbuC,EAAW,GACJxF,EAAIqD,EAAKrD,IAChBwF,GAAYysB,EAAOjyB,GAAGiB,MAEvB,OAAOuE,EAGR,SAASmlB,GAAemG,EAASoB,EAAYC,GAC5C,IAAI9sB,EAAM6sB,EAAW7sB,IACpB+sB,EAAOF,EAAWvoB,KAClBpI,EAAM6wB,GAAQ/sB,EACdgtB,EAAmBF,GAAgB,eAAR5wB,EAC3B+wB,EAAWlK,IAEZ,OAAO8J,EAAW3M,MAEjB,SAAU1J,EAAMzI,EAAS+c,GACxB,KAAStU,EAAOA,EAAMxW,IACrB,GAAuB,IAAlBwW,EAAKgF,UAAkBwR,EAC3B,OAAOvB,EAASjV,EAAMzI,EAAS+c,GAGjC,OAAO,GAIR,SAAUtU,EAAMzI,EAAS+c,GACxB,IAAIoC,EAAUnC,EAAaC,EAC1BmC,EAAW,CAAErK,EAASmK,GAGvB,GAAKnC,GACJ,KAAStU,EAAOA,EAAMxW,IACrB,IAAuB,IAAlBwW,EAAKgF,UAAkBwR,IACtBvB,EAASjV,EAAMzI,EAAS+c,GAC5B,OAAO,OAKV,KAAStU,EAAOA,EAAMxW,IACrB,GAAuB,IAAlBwW,EAAKgF,UAAkBwR,EAO3B,GAFAjC,GAJAC,EAAaxU,EAAMmK,KAAcnK,EAAMmK,GAAY,KAIzBnK,EAAK4U,YAAeJ,EAAYxU,EAAK4U,UAAa,IAEvE2B,GAAQA,IAASvW,EAAKgP,SAASpY,cACnCoJ,EAAOA,EAAMxW,IAASwW,MAChB,KAAM0W,EAAWnC,EAAa7uB,KACpCgxB,EAAU,KAAQpK,GAAWoK,EAAU,KAAQD,EAG/C,OAAQE,EAAU,GAAMD,EAAU,GAMlC,GAHAnC,EAAa7uB,GAAQixB,EAGfA,EAAU,GAAM1B,EAASjV,EAAMzI,EAAS+c,GAC7C,OAAO,EAMZ,OAAO,GAIV,SAASsC,GAAgBC,GACxB,OAAOA,EAASzvB,OAAS,EACxB,SAAU4Y,EAAMzI,EAAS+c,GAExB,IADA,IAAInwB,EAAI0yB,EAASzvB,OACTjD,KACP,IAAM0yB,EAAS1yB,GAAI6b,EAAMzI,EAAS+c,GACjC,OAAO,EAGT,OAAO,GAERuC,EAAS,GAYX,SAASC,GAAU5B,EAAW1oB,EAAKiT,EAAQlI,EAAS+c,GAOnD,IANA,IAAItU,EACH+W,EAAe,GACf5yB,EAAI,EACJqD,EAAM0tB,EAAU9tB,OAChB4vB,EAAgB,MAAPxqB,EAEFrI,EAAIqD,EAAKrD,KACV6b,EAAOkV,EAAU/wB,MAChBsb,IAAUA,EAAQO,EAAMzI,EAAS+c,KACtCyC,EAAa5uB,KAAM6X,GACdgX,GACJxqB,EAAIrE,KAAMhE,KAMd,OAAO4yB,EAGR,SAASE,GAAYtD,EAAWhqB,EAAUsrB,EAASiC,EAAYC,EAAYC,GAO1E,OANKF,IAAeA,EAAY/M,KAC/B+M,EAAaD,GAAYC,IAErBC,IAAeA,EAAYhN,KAC/BgN,EAAaF,GAAYE,EAAYC,IAE/BlH,IAAa,SAAUf,EAAMvE,EAASrT,EAAS+c,GACrD,IAAI+C,EAAMlzB,EAAG6b,EACZsX,EAAS,GACTC,EAAU,GACVC,EAAc5M,EAAQxjB,OAGtBiiB,EAAQ8F,GA5CX,SAA2BxlB,EAAU8tB,EAAU7M,GAG9C,IAFA,IAAIzmB,EAAI,EACPqD,EAAMiwB,EAASrwB,OACRjD,EAAIqD,EAAKrD,IAChBmnB,GAAQ3hB,EAAU8tB,EAAStzB,GAAIymB,GAEhC,OAAOA,EAsCW8M,CAAkB/tB,GAAY,IAAK4N,EAAQyN,SAAW,CAAEzN,GAAYA,EAAS,IAG7FogB,GAAYhE,IAAexE,GAASxlB,EAEnC0f,EADAyN,GAAUzN,EAAOiO,EAAQ3D,EAAWpc,EAAS+c,GAG9CsD,EAAa3C,EAEZkC,IAAgBhI,EAAOwE,EAAY6D,GAAeN,GAGjD,GAGAtM,EACD+M,EAQF,GALK1C,GACJA,EAAS0C,EAAWC,EAAYrgB,EAAS+c,GAIrC4C,EAMJ,IALAG,EAAOP,GAAUc,EAAYL,GAC7BL,EAAYG,EAAM,GAAI9f,EAAS+c,GAG/BnwB,EAAIkzB,EAAKjwB,OACDjD,MACD6b,EAAOqX,EAAKlzB,MACjByzB,EAAYL,EAAQpzB,MAASwzB,EAAWJ,EAAQpzB,IAAO6b,IAK1D,GAAKmP,GACJ,GAAKgI,GAAcxD,EAAY,CAC9B,GAAKwD,EAAa,CAIjB,IAFAE,EAAO,GACPlzB,EAAIyzB,EAAWxwB,OACPjD,MACD6b,EAAO4X,EAAWzzB,KAEvBkzB,EAAKlvB,KAAOwvB,EAAUxzB,GAAK6b,GAG7BmX,EAAY,KAAOS,EAAa,GAAKP,EAAM/C,GAK5C,IADAnwB,EAAIyzB,EAAWxwB,OACPjD,MACD6b,EAAO4X,EAAWzzB,MACtBkzB,EAAOF,EAAappB,EAASohB,EAAMnP,GAASsX,EAAOnzB,KAAO,IAE3DgrB,EAAKkI,KAAUzM,EAAQyM,GAAQrX,UAOlC4X,EAAad,GACZc,IAAehN,EACdgN,EAAWtjB,OAAQkjB,EAAaI,EAAWxwB,QAC3CwwB,GAEGT,EACJA,EAAY,KAAMvM,EAASgN,EAAYtD,GAEvCnsB,EAAKC,MAAOwiB,EAASgN,MAMzB,SAASC,GAAmBzB,GAwB3B,IAvBA,IAAI0B,EAAc7C,EAASvjB,EAC1BlK,EAAM4uB,EAAOhvB,OACb2wB,EAAkBxM,EAAKmI,SAAU0C,EAAO,GAAGrR,MAC3CiT,EAAmBD,GAAmBxM,EAAKmI,SAAS,KACpDvvB,EAAI4zB,EAAkB,EAAI,EAG1BE,EAAenJ,IAAe,SAAU9O,GACvC,OAAOA,IAAS8X,IACdE,GAAkB,GACrBE,EAAkBpJ,IAAe,SAAU9O,GAC1C,OAAOjS,EAAS+pB,EAAc9X,IAAU,IACtCgY,GAAkB,GACrBnB,EAAW,CAAE,SAAU7W,EAAMzI,EAAS+c,GACrC,IAAIhL,GAASyO,IAAqBzD,GAAO/c,IAAYqU,MACnDkM,EAAevgB,GAASyN,SACxBiT,EAAcjY,EAAMzI,EAAS+c,GAC7B4D,EAAiBlY,EAAMzI,EAAS+c,IAGlC,OADAwD,EAAe,KACRxO,IAGDnlB,EAAIqD,EAAKrD,IAChB,GAAM8wB,EAAU1J,EAAKmI,SAAU0C,EAAOjyB,GAAG4gB,MACxC8R,EAAW,CAAE/H,GAAc8H,GAAgBC,GAAY5B,QACjD,CAIN,IAHAA,EAAU1J,EAAK9L,OAAQ2W,EAAOjyB,GAAG4gB,MAAO3c,MAAO,KAAMguB,EAAOjyB,GAAG8mB,UAGjDd,GAAY,CAGzB,IADAzY,IAAMvN,EACEuN,EAAIlK,IACN+jB,EAAKmI,SAAU0C,EAAO1kB,GAAGqT,MADdrT,KAKjB,OAAOulB,GACN9yB,EAAI,GAAKyyB,GAAgBC,GACzB1yB,EAAI,GAAKyrB,GAERwG,EAAOjpB,MAAO,EAAGhJ,EAAI,GAAIkD,OAAO,CAAEjC,MAAgC,MAAzBgxB,EAAQjyB,EAAI,GAAI4gB,KAAe,IAAM,MAC7E5V,QAAS4Z,EAAO,MAClBkM,EACA9wB,EAAIuN,GAAKmmB,GAAmBzB,EAAOjpB,MAAOhJ,EAAGuN,IAC7CA,EAAIlK,GAAOqwB,GAAoBzB,EAASA,EAAOjpB,MAAOuE,IACtDA,EAAIlK,GAAOooB,GAAYwG,IAGzBS,EAAS1uB,KAAM8sB,GAIjB,OAAO2B,GAAgBC,GA8RxB,OA9mBA/B,GAAW/uB,UAAYwlB,EAAK4M,QAAU5M,EAAK4B,QAC3C5B,EAAKuJ,WAAa,IAAIA,GAEtBpJ,EAAWJ,GAAOI,SAAW,SAAU/hB,EAAUyuB,GAChD,IAAIpD,EAASnnB,EAAOuoB,EAAQrR,EAC3BsT,EAAOhJ,EAAQiJ,EACfC,EAAS7L,EAAY/iB,EAAW,KAEjC,GAAK4uB,EACJ,OAAOH,EAAY,EAAIG,EAAOprB,MAAO,GAOtC,IAJAkrB,EAAQ1uB,EACR0lB,EAAS,GACTiJ,EAAa/M,EAAKoI,UAEV0E,GAAQ,CAyBf,IAAMtT,KAtBAiQ,KAAYnnB,EAAQwf,EAAO/hB,KAAM+sB,MACjCxqB,IAEJwqB,EAAQA,EAAMlrB,MAAOU,EAAM,GAAGzG,SAAYixB,GAE3ChJ,EAAOlnB,KAAOiuB,EAAS,KAGxBpB,GAAU,GAGJnnB,EAAQyf,EAAahiB,KAAM+sB,MAChCrD,EAAUnnB,EAAMoiB,QAChBmG,EAAOjuB,KAAK,CACX/C,MAAO4vB,EAEPjQ,KAAMlX,EAAM,GAAGsB,QAAS4Z,EAAO,OAEhCsP,EAAQA,EAAMlrB,MAAO6nB,EAAQ5tB,SAIhBmkB,EAAK9L,SACZ5R,EAAQ6f,EAAW3I,GAAOzZ,KAAM+sB,KAAcC,EAAYvT,MAC9DlX,EAAQyqB,EAAYvT,GAAQlX,MAC7BmnB,EAAUnnB,EAAMoiB,QAChBmG,EAAOjuB,KAAK,CACX/C,MAAO4vB,EACPjQ,KAAMA,EACNkG,QAASpd,IAEVwqB,EAAQA,EAAMlrB,MAAO6nB,EAAQ5tB,SAI/B,IAAM4tB,EACL,MAOF,OAAOoD,EACNC,EAAMjxB,OACNixB,EACC/M,GAAO7Y,MAAO9I,GAEd+iB,EAAY/iB,EAAU0lB,GAASliB,MAAO,IA+XzCwe,EAAUL,GAAOK,QAAU,SAAUhiB,EAAUkE,GAC9C,IAAI1J,EACHq0B,EAAc,GACdC,EAAkB,GAClBF,EAAS5L,EAAehjB,EAAW,KAEpC,IAAM4uB,EAAS,CAMd,IAJM1qB,IACLA,EAAQ6d,EAAU/hB,IAEnBxF,EAAI0J,EAAMzG,OACFjD,MACPo0B,EAASV,GAAmBhqB,EAAM1J,KACrBgmB,GACZqO,EAAYrwB,KAAMowB,GAElBE,EAAgBtwB,KAAMowB,IAKxBA,EAAS5L,EAAehjB,EArI1B,SAAmC8uB,EAAiBD,GACnD,IAAIE,EAAQF,EAAYpxB,OAAS,EAChCuxB,EAAYF,EAAgBrxB,OAAS,EACrCwxB,EAAe,SAAUzJ,EAAM5X,EAAS+c,EAAK1J,EAASiO,GACrD,IAAI7Y,EAAMtO,EAAGujB,EACZ6D,EAAe,EACf30B,EAAI,IACJ+wB,EAAY/F,GAAQ,GACpB4J,EAAa,GACbC,EAAgBpN,EAEhBvC,EAAQ8F,GAAQwJ,GAAapN,EAAKsG,KAAU,IAAG,IAAKgH,GAEpDI,EAAiB3M,GAA4B,MAAjB0M,EAAwB,EAAI5O,KAAKC,UAAY,GACzE7iB,EAAM6hB,EAAMjiB,OASb,IAPKyxB,IACJjN,EAAmBrU,IAAY1N,GAAY0N,GAAWshB,GAM/C10B,IAAMqD,GAA4B,OAApBwY,EAAOqJ,EAAMllB,IAAaA,IAAM,CACrD,GAAKw0B,GAAa3Y,EAAO,CAMxB,IALAtO,EAAI,EACE6F,GAAWyI,EAAK1J,gBAAkBzM,IACvCkiB,EAAa/L,GACbsU,GAAOrI,GAECgJ,EAAUwD,EAAgB/mB,MAClC,GAAKujB,EAASjV,EAAMzI,GAAW1N,EAAUyqB,GAAO,CAC/C1J,EAAQziB,KAAM6X,GACd,MAGG6Y,IACJvM,EAAU2M,GAKPP,KAEE1Y,GAAQiV,GAAWjV,IACxB8Y,IAII3J,GACJ+F,EAAU/sB,KAAM6X,IAgBnB,GATA8Y,GAAgB30B,EASXu0B,GAASv0B,IAAM20B,EAAe,CAElC,IADApnB,EAAI,EACKujB,EAAUuD,EAAY9mB,MAC9BujB,EAASC,EAAW6D,EAAYxhB,EAAS+c,GAG1C,GAAKnF,EAAO,CAEX,GAAK2J,EAAe,EACnB,KAAQ30B,KACA+wB,EAAU/wB,IAAM40B,EAAW50B,KACjC40B,EAAW50B,GAAK2oB,EAAIxoB,KAAMsmB,IAM7BmO,EAAajC,GAAUiC,GAIxB5wB,EAAKC,MAAOwiB,EAASmO,GAGhBF,IAAc1J,GAAQ4J,EAAW3xB,OAAS,GAC5C0xB,EAAeN,EAAYpxB,OAAW,GAExCkkB,GAAO6H,WAAYvI,GAUrB,OALKiO,IACJvM,EAAU2M,EACVrN,EAAmBoN,GAGb9D,GAGT,OAAOwD,EACNxI,GAAc0I,GACdA,EAyBkCM,CAA0BT,EAAiBD,KAGtE7uB,SAAWA,EAEnB,OAAO4uB,GAYRpd,EAASmQ,GAAOnQ,OAAS,SAAUxR,EAAU4N,EAASqT,EAASuE,GAC9D,IAAIhrB,EAAGiyB,EAAQ+C,EAAOpU,EAAM8M,EAC3BuH,EAA+B,mBAAbzvB,GAA2BA,EAC7CkE,GAASshB,GAAQzD,EAAW/hB,EAAWyvB,EAASzvB,UAAYA,GAM7D,GAJAihB,EAAUA,GAAW,GAIC,IAAjB/c,EAAMzG,OAAe,CAIzB,IADAgvB,EAASvoB,EAAM,GAAKA,EAAM,GAAGV,MAAO,IACxB/F,OAAS,GAAkC,QAA5B+xB,EAAQ/C,EAAO,IAAIrR,MACvB,IAArBxN,EAAQyN,UAAkBiH,GAAkBV,EAAKmI,SAAU0C,EAAO,GAAGrR,MAAS,CAG/E,KADAxN,GAAYgU,EAAKsG,KAAS,GAAGsH,EAAMlO,QAAQ,GAAG9b,QAAQ8e,GAAWC,IAAY3W,IAAa,IAAK,IAE9F,OAAOqT,EAGIwO,IACX7hB,EAAUA,EAAQ1L,YAGnBlC,EAAWA,EAASwD,MAAOipB,EAAOnG,QAAQ7qB,MAAMgC,QAKjD,IADAjD,EAAIupB,EAAwB,aAAEjgB,KAAM9D,GAAa,EAAIysB,EAAOhvB,OACpDjD,MACPg1B,EAAQ/C,EAAOjyB,IAGVonB,EAAKmI,SAAW3O,EAAOoU,EAAMpU,QAGlC,IAAM8M,EAAOtG,EAAKsG,KAAM9M,MAEjBoK,EAAO0C,EACZsH,EAAMlO,QAAQ,GAAG9b,QAAS8e,GAAWC,IACrCF,GAASvgB,KAAM2oB,EAAO,GAAGrR,OAAU8K,GAAatY,EAAQ1L,aAAgB0L,IACpE,CAKJ,GAFA6e,EAAO9hB,OAAQnQ,EAAG,KAClBwF,EAAWwlB,EAAK/nB,QAAUwoB,GAAYwG,IAGrC,OADAjuB,EAAKC,MAAOwiB,EAASuE,GACdvE,EAGR,OAeJ,OAPEwO,GAAYzN,EAAShiB,EAAUkE,IAChCshB,EACA5X,GACC0U,EACDrB,GACCrT,GAAWyW,GAASvgB,KAAM9D,IAAckmB,GAAatY,EAAQ1L,aAAgB0L,GAExEqT,GAMRvC,EAAQiL,WAAanJ,EAAQ3a,MAAM,IAAIqa,KAAMgD,GAAYngB,KAAK,MAAQyd,EAItE9B,EAAQgL,mBAAqBvH,EAG7BC,IAIA1D,EAAQsK,aAAexC,IAAO,SAAUrc,GAEvC,OAA0E,EAAnEA,EAAGye,wBAAyB1oB,EAASoB,cAAc,gBAMrDklB,IAAO,SAAUrc,GAEtB,OADAA,EAAGlH,UAAY,mBAC+B,MAAvCkH,EAAG2D,WAAW1B,aAAa,YAElCqa,GAAW,0BAA0B,SAAUpQ,EAAMtb,EAAM+mB,GAC1D,IAAMA,EACL,OAAOzL,EAAKjK,aAAcrR,EAA6B,SAAvBA,EAAKkS,cAA2B,EAAI,MAOjEyR,EAAQpD,YAAekL,IAAO,SAAUrc,GAG7C,OAFAA,EAAGlH,UAAY,WACfkH,EAAG2D,WAAWvM,aAAc,QAAS,IACY,KAA1C4I,EAAG2D,WAAW1B,aAAc,aAEnCqa,GAAW,SAAS,SAAUpQ,EAAMtb,EAAM+mB,GACzC,IAAMA,GAAyC,UAAhCzL,EAAKgP,SAASpY,cAC5B,OAAOoJ,EAAKqZ,gBAOTlJ,IAAO,SAAUrc,GACtB,OAAsC,MAA/BA,EAAGiC,aAAa,gBAEvBqa,GAAWpD,GAAU,SAAUhN,EAAMtb,EAAM+mB,GAC1C,IAAIrgB,EACJ,IAAMqgB,EACL,OAAwB,IAAjBzL,EAAMtb,GAAkBA,EAAKkS,eACjCxL,EAAM4U,EAAK8R,iBAAkBptB,KAAW0G,EAAI4nB,UAC7C5nB,EAAIhG,MACL,QAKGkmB,GA1sEP,CA4sEI/gB,GAIJue,EAAO+I,KAAOvG,EACdxC,EAAO/X,KAAOua,EAAOkI,UAGrB1K,EAAO/X,KAAM,KAAQ+X,EAAO/X,KAAKoc,QACjCrE,EAAOqK,WAAarK,EAAOwQ,OAAShO,EAAO6H,WAC3CrK,EAAO9N,KAAOsQ,EAAOE,QACrB1C,EAAOyQ,SAAWjO,EAAOG,MACzB3C,EAAOlQ,SAAW0S,EAAO1S,SACzBkQ,EAAO0Q,eAAiBlO,EAAO2H,OAK/B,IAAIzpB,EAAM,SAAUwW,EAAMxW,EAAKiwB,GAI9B,IAHA,IAAIzE,EAAU,GACb0E,OAAqBlvB,IAAVivB,GAEFzZ,EAAOA,EAAMxW,KAA6B,IAAlBwW,EAAKgF,UACtC,GAAuB,IAAlBhF,EAAKgF,SAAiB,CAC1B,GAAK0U,GAAY5Q,EAAQ9I,GAAO2Z,GAAIF,GACnC,MAEDzE,EAAQ7sB,KAAM6X,GAGhB,OAAOgV,GAIJ4E,EAAW,SAAUh0B,EAAGoa,GAG3B,IAFA,IAAIgV,EAAU,GAENpvB,EAAGA,EAAIA,EAAE8R,YACI,IAAf9R,EAAEof,UAAkBpf,IAAMoa,GAC9BgV,EAAQ7sB,KAAMvC,GAIhB,OAAOovB,GAIJ6E,EAAgB/Q,EAAO/X,KAAKlD,MAAMisB,aAItC,SAAS9K,EAAUhP,EAAMtb,GAEvB,OAAOsb,EAAKgP,UAAYhP,EAAKgP,SAASpY,gBAAkBlS,EAAKkS,cAG/D,IAAImjB,EAAa,kEAKjB,SAASC,EAAQjH,EAAUkH,EAAWC,GACrC,OAAK9hB,EAAY6hB,GACTnR,EAAOiC,KAAMgI,GAAU,SAAU/S,EAAM7b,GAC7C,QAAS81B,EAAU31B,KAAM0b,EAAM7b,EAAG6b,KAAWka,KAK1CD,EAAUjV,SACP8D,EAAOiC,KAAMgI,GAAU,SAAU/S,GACvC,OAASA,IAASia,IAAgBC,KAKV,iBAAdD,EACJnR,EAAOiC,KAAMgI,GAAU,SAAU/S,GACvC,OAASjS,EAAQzJ,KAAM21B,EAAWja,IAAU,IAAQka,KAK/CpR,EAAOrJ,OAAQwa,EAAWlH,EAAUmH,GAG5CpR,EAAOrJ,OAAS,SAAU1O,EAAMsY,EAAO6Q,GACtC,IAAIla,EAAOqJ,EAAO,GAMlB,OAJK6Q,IACJnpB,EAAO,QAAUA,EAAO,KAGH,IAAjBsY,EAAMjiB,QAAkC,IAAlB4Y,EAAKgF,SACxB8D,EAAO+I,KAAKI,gBAAiBjS,EAAMjP,GAAS,CAAEiP,GAAS,GAGxD8I,EAAO+I,KAAK5G,QAASla,EAAM+X,EAAOiC,KAAM1B,GAAO,SAAUrJ,GAC/D,OAAyB,IAAlBA,EAAKgF,cAId8D,EAAO5U,GAAGgB,OAAQ,CACjB2c,KAAM,SAAUloB,GACf,IAAIxF,EAAGmlB,EACN9hB,EAAMX,KAAKO,OACX+yB,EAAOtzB,KAER,GAAyB,iBAAb8C,EACX,OAAO9C,KAAKuiB,UAAWN,EAAQnf,GAAW8V,QAAQ,WACjD,IAAMtb,EAAI,EAAGA,EAAIqD,EAAKrD,IACrB,GAAK2kB,EAAOlQ,SAAUuhB,EAAMh2B,GAAK0C,MAChC,OAAO,MAQX,IAFAyiB,EAAMziB,KAAKuiB,UAAW,IAEhBjlB,EAAI,EAAGA,EAAIqD,EAAKrD,IACrB2kB,EAAO+I,KAAMloB,EAAUwwB,EAAMh2B,GAAKmlB,GAGnC,OAAO9hB,EAAM,EAAIshB,EAAOqK,WAAY7J,GAAQA,GAE7C7J,OAAQ,SAAU9V,GACjB,OAAO9C,KAAKuiB,UAAW4Q,EAAQnzB,KAAM8C,GAAY,IAAI,KAEtDuwB,IAAK,SAAUvwB,GACd,OAAO9C,KAAKuiB,UAAW4Q,EAAQnzB,KAAM8C,GAAY,IAAI,KAEtDgwB,GAAI,SAAUhwB,GACb,QAASqwB,EACRnzB,KAIoB,iBAAb8C,GAAyBkwB,EAAcpsB,KAAM9D,GACnDmf,EAAQnf,GACRA,GAAY,IACb,GACCvC,UASJ,IAAIgzB,EAMHrM,EAAa,uCAENjF,EAAO5U,GAAGuN,KAAO,SAAU9X,EAAU4N,EAASP,GACpD,IAAInJ,EAAOmS,EAGX,IAAMrW,EACL,OAAO9C,KAQR,GAHAmQ,EAAOA,GAAQojB,EAGU,iBAAbzwB,EAAwB,CAanC,KAPCkE,EALsB,MAAlBlE,EAAU,IACsB,MAApCA,EAAUA,EAASvC,OAAS,IAC5BuC,EAASvC,QAAU,EAGX,CAAE,KAAMuC,EAAU,MAGlBokB,EAAWziB,KAAM3B,MAIVkE,EAAO,IAAQ0J,EA6CxB,OAAMA,GAAWA,EAAQ0R,QACtB1R,GAAWP,GAAO6a,KAAMloB,GAK1B9C,KAAKgZ,YAAatI,GAAUsa,KAAMloB,GAhDzC,GAAKkE,EAAO,GAAM,CAYjB,GAXA0J,EAAUA,aAAmBuR,EAASvR,EAAS,GAAMA,EAIrDuR,EAAOS,MAAO1iB,KAAMiiB,EAAOuR,UAC1BxsB,EAAO,GACP0J,GAAWA,EAAQyN,SAAWzN,EAAQjB,eAAiBiB,EAAU1N,GACjE,IAIIkwB,EAAWtsB,KAAMI,EAAO,KAASib,EAAOoB,cAAe3S,GAC3D,IAAM1J,KAAS0J,EAGTa,EAAYvR,KAAMgH,IACtBhH,KAAMgH,GAAS0J,EAAS1J,IAIxBhH,KAAK6W,KAAM7P,EAAO0J,EAAS1J,IAK9B,OAAOhH,KAYP,OARAmZ,EAAOnW,EAAS2lB,eAAgB3hB,EAAO,OAKtChH,KAAM,GAAMmZ,EACZnZ,KAAKO,OAAS,GAERP,KAcH,OAAK8C,EAASqb,UACpBne,KAAM,GAAM8C,EACZ9C,KAAKO,OAAS,EACPP,MAIIuR,EAAYzO,QACDa,IAAfwM,EAAKsjB,MACXtjB,EAAKsjB,MAAO3wB,GAGZA,EAAUmf,GAGLA,EAAO6B,UAAWhhB,EAAU9C,QAIhCd,UAAY+iB,EAAO5U,GAGxBkmB,EAAatR,EAAQjf,GAGrB,IAAI0wB,EAAe,iCAGlBC,EAAmB,CAClBC,UAAU,EACVC,UAAU,EACV5sB,MAAM,EACNR,MAAM,GAoFR,SAASqtB,EAASpK,EAAK/mB,GACtB,MAAU+mB,EAAMA,EAAK/mB,KAA4B,IAAjB+mB,EAAIvL,WACpC,OAAOuL,EAnFRzH,EAAO5U,GAAGgB,OAAQ,CACjB0lB,IAAK,SAAU5e,GACd,IAAI6e,EAAU/R,EAAQ9M,EAAQnV,MAC7BzC,EAAIy2B,EAAQzzB,OAEb,OAAOP,KAAK4Y,QAAQ,WAEnB,IADA,IAAItb,EAAI,EACAA,EAAIC,EAAGD,IACd,GAAK2kB,EAAOlQ,SAAU/R,KAAMg0B,EAAS12B,IACpC,OAAO,MAMX22B,QAAS,SAAUtH,EAAWjc,GAC7B,IAAIgZ,EACHpsB,EAAI,EACJC,EAAIyC,KAAKO,OACT4tB,EAAU,GACV6F,EAA+B,iBAAdrH,GAA0B1K,EAAQ0K,GAGpD,IAAMqG,EAAcpsB,KAAM+lB,GACzB,KAAQrvB,EAAIC,EAAGD,IACd,IAAMosB,EAAM1pB,KAAM1C,GAAKosB,GAAOA,IAAQhZ,EAASgZ,EAAMA,EAAI1kB,WAGxD,GAAK0kB,EAAIvL,SAAW,KAAQ6V,EAC3BA,EAAQzqB,MAAOmgB,IAAS,EAGP,IAAjBA,EAAIvL,UACH8D,EAAO+I,KAAKI,gBAAiB1B,EAAKiD,IAAgB,CAEnDwB,EAAQ7sB,KAAMooB,GACd,MAMJ,OAAO1pB,KAAKuiB,UAAW4L,EAAQ5tB,OAAS,EAAI0hB,EAAOqK,WAAY6B,GAAYA,IAI5E5kB,MAAO,SAAU4P,GAGhB,OAAMA,EAKe,iBAATA,EACJjS,EAAQzJ,KAAMwkB,EAAQ9I,GAAQnZ,KAAM,IAIrCkH,EAAQzJ,KAAMuC,KAGpBmZ,EAAKiJ,OAASjJ,EAAM,GAAMA,GAZjBnZ,KAAM,IAAOA,KAAM,GAAIgF,WAAehF,KAAK6iB,QAAQqR,UAAU3zB,QAAU,GAgBlF+E,IAAK,SAAUxC,EAAU4N,GACxB,OAAO1Q,KAAKuiB,UACXN,EAAOqK,WACNrK,EAAOS,MAAO1iB,KAAK7B,MAAO8jB,EAAQnf,EAAU4N,OAK/CyjB,QAAS,SAAUrxB,GAClB,OAAO9C,KAAKsF,IAAiB,MAAZxC,EAChB9C,KAAK2iB,WAAa3iB,KAAK2iB,WAAW/J,OAAQ9V,OAU7Cmf,EAAOhQ,KAAM,CACZqB,OAAQ,SAAU6F,GACjB,IAAI7F,EAAS6F,EAAKnU,WAClB,OAAOsO,GAA8B,KAApBA,EAAO6K,SAAkB7K,EAAS,MAEpD8gB,QAAS,SAAUjb,GAClB,OAAOxW,EAAKwW,EAAM,eAEnBkb,aAAc,SAAUlb,EAAM7b,EAAGs1B,GAChC,OAAOjwB,EAAKwW,EAAM,aAAcyZ,IAEjC3rB,KAAM,SAAUkS,GACf,OAAO2a,EAAS3a,EAAM,gBAEvB1S,KAAM,SAAU0S,GACf,OAAO2a,EAAS3a,EAAM,oBAEvBmb,QAAS,SAAUnb,GAClB,OAAOxW,EAAKwW,EAAM,gBAEnB+a,QAAS,SAAU/a,GAClB,OAAOxW,EAAKwW,EAAM,oBAEnBob,UAAW,SAAUpb,EAAM7b,EAAGs1B,GAC7B,OAAOjwB,EAAKwW,EAAM,cAAeyZ,IAElC4B,UAAW,SAAUrb,EAAM7b,EAAGs1B,GAC7B,OAAOjwB,EAAKwW,EAAM,kBAAmByZ,IAEtCG,SAAU,SAAU5Z,GACnB,OAAO4Z,GAAY5Z,EAAKnU,YAAc,IAAK4L,WAAYuI,IAExDya,SAAU,SAAUza,GACnB,OAAO4Z,EAAU5Z,EAAKvI,aAEvBijB,SAAU,SAAU1a,GACnB,YAAqC,IAAzBA,EAAKsb,gBACTtb,EAAKsb,iBAMRtM,EAAUhP,EAAM,cACpBA,EAAOA,EAAKub,SAAWvb,GAGjB8I,EAAOS,MAAO,GAAIvJ,EAAKiP,gBAE7B,SAAUvqB,EAAMwP,GAClB4U,EAAO5U,GAAIxP,GAAS,SAAU+0B,EAAO9vB,GACpC,IAAIqrB,EAAUlM,EAAOtc,IAAK3F,KAAMqN,EAAIulB,GAuBpC,MArB0B,UAArB/0B,EAAKyI,OAAQ,KACjBxD,EAAW8vB,GAGP9vB,GAAgC,iBAAbA,IACvBqrB,EAAUlM,EAAOrJ,OAAQ9V,EAAUqrB,IAG/BnuB,KAAKO,OAAS,IAGZozB,EAAkB91B,IACvBokB,EAAOqK,WAAY6B,GAIfuF,EAAa9sB,KAAM/I,IACvBswB,EAAQwG,WAIH30B,KAAKuiB,UAAW4L,OAGzB,IAAIyG,EAAgB,oBAsOpB,SAASC,EAAU1V,GAClB,OAAOA,EAER,SAAS2V,EAASC,GACjB,MAAMA,EAGP,SAASC,EAAYz2B,EAAO02B,EAASC,EAAQC,GAC5C,IAAIC,EAEJ,IAGM72B,GAASgT,EAAc6jB,EAAS72B,EAAM82B,SAC1CD,EAAO33B,KAAMc,GAAQmnB,KAAMuP,GAAUK,KAAMJ,GAGhC32B,GAASgT,EAAc6jB,EAAS72B,EAAMg3B,MACjDH,EAAO33B,KAAMc,EAAO02B,EAASC,GAQ7BD,EAAQ1zB,WAAOoC,EAAW,CAAEpF,GAAQ+H,MAAO6uB,IAM3C,MAAQ52B,GAIT22B,EAAO3zB,WAAOoC,EAAW,CAAEpF,KAvO7B0jB,EAAOuT,UAAY,SAAUnjB,GAI5BA,EAA6B,iBAAZA,EAlClB,SAAwBA,GACvB,IAAIrT,EAAS,GAIb,OAHAijB,EAAOhQ,KAAMI,EAAQrL,MAAO4tB,IAAmB,IAAI,SAAU3pB,EAAGwqB,GAC/Dz2B,EAAQy2B,IAAS,KAEXz2B,EA8BN02B,CAAerjB,GACf4P,EAAO5T,OAAQ,GAAIgE,GAEpB,IACCsjB,EAGAC,EAGAC,EAGAC,EAGAhrB,EAAO,GAGP3K,EAAQ,GAGR41B,GAAe,EAGfC,EAAO,WAQN,IALAF,EAASA,GAAUzjB,EAAQrQ,KAI3B6zB,EAAQF,GAAS,EACTx1B,EAAMI,OAAQw1B,GAAe,EAEpC,IADAH,EAASz1B,EAAMipB,UACL2M,EAAcjrB,EAAKvK,SAGmC,IAA1DuK,EAAMirB,GAAcx0B,MAAOq0B,EAAQ,GAAKA,EAAQ,KACpDvjB,EAAQ4jB,cAGRF,EAAcjrB,EAAKvK,OACnBq1B,GAAS,GAMNvjB,EAAQujB,SACbA,GAAS,GAGVD,GAAS,EAGJG,IAIHhrB,EADI8qB,EACG,GAIA,KAMVtC,EAAO,CAGNhuB,IAAK,WA2BJ,OA1BKwF,IAGC8qB,IAAWD,IACfI,EAAcjrB,EAAKvK,OAAS,EAC5BJ,EAAMmB,KAAMs0B,IAGb,SAAWtwB,EAAKnE,GACf8gB,EAAOhQ,KAAM9Q,GAAM,SAAU8J,EAAGqZ,GAC1B/S,EAAY+S,GACVjS,EAAQogB,QAAWa,EAAKS,IAAKzP,IAClCxZ,EAAKxJ,KAAMgjB,GAEDA,GAAOA,EAAI/jB,QAA4B,WAAlByhB,EAAQsC,IAGxChf,EAAKgf,MATR,CAYKjjB,WAEAu0B,IAAWD,GACfK,KAGKh2B,MAIRgG,OAAQ,WAYP,OAXAic,EAAOhQ,KAAM5Q,WAAW,SAAU4J,EAAGqZ,GAEpC,IADA,IAAI/a,GACMA,EAAQ0Y,EAAO+B,QAASM,EAAKxZ,EAAMvB,KAAa,GACzDuB,EAAK2C,OAAQlE,EAAO,GAGfA,GAASwsB,GACbA,OAII/1B,MAKR+zB,IAAK,SAAU1mB,GACd,OAAOA,EACN4U,EAAO+B,QAAS3W,EAAIvC,IAAU,EAC9BA,EAAKvK,OAAS,GAIhB21B,MAAO,WAIN,OAHKprB,IACJA,EAAO,IAED9K,MAMRm2B,QAAS,WAGR,OAFAL,EAAS31B,EAAQ,GACjB2K,EAAO8qB,EAAS,GACT51B,MAERkoB,SAAU,WACT,OAAQpd,GAMTsrB,KAAM,WAKL,OAJAN,EAAS31B,EAAQ,GACXy1B,GAAWD,IAChB7qB,EAAO8qB,EAAS,IAEV51B,MAER81B,OAAQ,WACP,QAASA,GAIVO,SAAU,SAAU3lB,EAASvP,GAS5B,OARM20B,IAEL30B,EAAO,CAAEuP,GADTvP,EAAOA,GAAQ,IACQmF,MAAQnF,EAAKmF,QAAUnF,GAC9ChB,EAAMmB,KAAMH,GACNw0B,GACLK,KAGKh2B,MAIRg2B,KAAM,WAEL,OADA1C,EAAK+C,SAAUr2B,KAAMqB,WACdrB,MAIR61B,MAAO,WACN,QAASA,IAIZ,OAAOvC,GA4CRrR,EAAO5T,OAAQ,CAEdioB,SAAU,SAAUC,GACnB,IAAIC,EAAS,CAIX,CAAE,SAAU,WAAYvU,EAAOuT,UAAW,UACzCvT,EAAOuT,UAAW,UAAY,GAC/B,CAAE,UAAW,OAAQvT,EAAOuT,UAAW,eACtCvT,EAAOuT,UAAW,eAAiB,EAAG,YACvC,CAAE,SAAU,OAAQvT,EAAOuT,UAAW,eACrCvT,EAAOuT,UAAW,eAAiB,EAAG,aAExCiB,EAAQ,UACRpB,EAAU,CACToB,MAAO,WACN,OAAOA,GAERC,OAAQ,WAEP,OADAC,EAASjR,KAAMrkB,WAAYi0B,KAAMj0B,WAC1BrB,MAER,MAAS,SAAUqN,GAClB,OAAOgoB,EAAQE,KAAM,KAAMloB,IAI5BupB,KAAM,WACL,IAAIhpB,EAAMvM,UAEV,OAAO4gB,EAAOqU,UAAU,SAAUO,GACjC5U,EAAOhQ,KAAMukB,GAAQ,SAAUl5B,EAAGw5B,GAGjC,IAAIzpB,EAAKkE,EAAY3D,EAAKkpB,EAAO,MAAWlpB,EAAKkpB,EAAO,IAKxDH,EAAUG,EAAO,KAAO,WACvB,IAAIC,EAAW1pB,GAAMA,EAAG9L,MAAOvB,KAAMqB,WAChC01B,GAAYxlB,EAAYwlB,EAAS1B,SACrC0B,EAAS1B,UACP2B,SAAUH,EAASI,QACnBvR,KAAMmR,EAAS5B,SACfK,KAAMuB,EAAS3B,QAEjB2B,EAAUC,EAAO,GAAM,QACtB92B,KACAqN,EAAK,CAAE0pB,GAAa11B,iBAKxBuM,EAAM,QACHynB,WAELE,KAAM,SAAU2B,EAAaC,EAAYC,GACxC,IAAIC,EAAW,EACf,SAASpC,EAASqC,EAAOX,EAAU1hB,EAASsiB,GAC3C,OAAO,WACN,IAAIC,EAAOx3B,KACVmB,EAAOE,UACPo2B,EAAa,WACZ,IAAIV,EAAUxB,EAKd,KAAK+B,EAAQD,GAAb,CAQA,IAJAN,EAAW9hB,EAAQ1T,MAAOi2B,EAAMr2B,MAIdw1B,EAAStB,UAC1B,MAAM,IAAIqC,UAAW,4BAOtBnC,EAAOwB,IAKgB,iBAAbA,GACY,mBAAbA,IACRA,EAASxB,KAGLhkB,EAAYgkB,GAGXgC,EACJhC,EAAK93B,KACJs5B,EACA9B,EAASoC,EAAUV,EAAU9B,EAAU0C,GACvCtC,EAASoC,EAAUV,EAAU7B,EAASyC,KAOvCF,IAEA9B,EAAK93B,KACJs5B,EACA9B,EAASoC,EAAUV,EAAU9B,EAAU0C,GACvCtC,EAASoC,EAAUV,EAAU7B,EAASyC,GACtCtC,EAASoC,EAAUV,EAAU9B,EAC5B8B,EAASgB,eASP1iB,IAAY4f,IAChB2C,OAAO7zB,EACPxC,EAAO,CAAE41B,KAKRQ,GAAWZ,EAASiB,aAAeJ,EAAMr2B,MAK7C3B,EAAU+3B,EACTE,EACA,WACC,IACCA,IACC,MAAQ13B,GAEJkiB,EAAOqU,SAASuB,eACpB5V,EAAOqU,SAASuB,cAAe93B,EAC9BP,EAAQs4B,YAMLR,EAAQ,GAAKD,IAIZpiB,IAAY6f,IAChB0C,OAAO7zB,EACPxC,EAAO,CAAEpB,IAGV42B,EAASoB,WAAYP,EAAMr2B,MAS3Bm2B,EACJ93B,KAKKyiB,EAAOqU,SAAS0B,eACpBx4B,EAAQs4B,WAAa7V,EAAOqU,SAAS0B,gBAEtCt0B,EAAO5D,WAAYN,KAKtB,OAAOyiB,EAAOqU,UAAU,SAAUO,GAGjCL,EAAQ,GAAK,GAAIlxB,IAChB2vB,EACC,EACA4B,EACAtlB,EAAY6lB,GACXA,EACAvC,EACDgC,EAASc,aAKXnB,EAAQ,GAAK,GAAIlxB,IAChB2vB,EACC,EACA4B,EACAtlB,EAAY2lB,GACXA,EACArC,IAKH2B,EAAQ,GAAK,GAAIlxB,IAChB2vB,EACC,EACA4B,EACAtlB,EAAY4lB,GACXA,EACArC,OAGAO,WAKLA,QAAS,SAAUlnB,GAClB,OAAc,MAAPA,EAAc8T,EAAO5T,OAAQF,EAAKknB,GAAYA,IAGvDsB,EAAW,GAkEZ,OA/DA1U,EAAOhQ,KAAMukB,GAAQ,SAAUl5B,EAAGw5B,GACjC,IAAIhsB,EAAOgsB,EAAO,GACjBmB,EAAcnB,EAAO,GAKtBzB,EAASyB,EAAO,IAAQhsB,EAAKxF,IAGxB2yB,GACJntB,EAAKxF,KACJ,WAICmxB,EAAQwB,IAKTzB,EAAQ,EAAIl5B,GAAK,GAAI64B,QAIrBK,EAAQ,EAAIl5B,GAAK,GAAI64B,QAGrBK,EAAQ,GAAK,GAAIJ,KAGjBI,EAAQ,GAAK,GAAIJ,MAOnBtrB,EAAKxF,IAAKwxB,EAAO,GAAId,MAKrBW,EAAUG,EAAO,IAAQ,WAExB,OADAH,EAAUG,EAAO,GAAM,QAAU92B,OAAS22B,OAAWhzB,EAAY3D,KAAMqB,WAChErB,MAMR22B,EAAUG,EAAO,GAAM,QAAWhsB,EAAKurB,YAIxChB,EAAQA,QAASsB,GAGZJ,GACJA,EAAK94B,KAAMk5B,EAAUA,GAIfA,GAIRuB,KAAM,SAAUC,GACf,IAGCC,EAAY/2B,UAAUd,OAGtBjD,EAAI86B,EAGJC,EAAkBj3B,MAAO9D,GACzBg7B,EAAgBhyB,EAAM7I,KAAM4D,WAG5Bk3B,EAAStW,EAAOqU,WAGhBkC,EAAa,SAAUl7B,GACtB,OAAO,SAAUiB,GAChB85B,EAAiB/6B,GAAM0C,KACvBs4B,EAAeh7B,GAAM+D,UAAUd,OAAS,EAAI+F,EAAM7I,KAAM4D,WAAc9C,IAC5D65B,GACTG,EAAOX,YAAaS,EAAiBC,KAMzC,GAAKF,GAAa,IACjBpD,EAAYmD,EAAaI,EAAO7S,KAAM8S,EAAYl7B,IAAM23B,QAASsD,EAAOrD,QACtEkD,GAGsB,YAAnBG,EAAO9B,SACXllB,EAAY+mB,EAAeh7B,IAAOg7B,EAAeh7B,GAAIi4B,OAErD,OAAOgD,EAAOhD,OAKhB,KAAQj4B,KACP03B,EAAYsD,EAAeh7B,GAAKk7B,EAAYl7B,GAAKi7B,EAAOrD,QAGzD,OAAOqD,EAAOlD,aAOhB,IAAIoD,EAAc,yDAElBxW,EAAOqU,SAASuB,cAAgB,SAAUjsB,EAAO8sB,GAI3Ch1B,EAAOiI,SAAWjI,EAAOiI,QAAQ6G,MAAQ5G,GAAS6sB,EAAY7xB,KAAMgF,EAAM/N,OAC9E6F,EAAOiI,QAAQ6G,KAAM,8BAAgC5G,EAAMC,QAASD,EAAM8sB,MAAOA,IAOnFzW,EAAO0W,eAAiB,SAAU/sB,GACjClI,EAAO5D,YAAY,WAClB,MAAM8L,MAQR,IAAIgtB,EAAY3W,EAAOqU,WAkDvB,SAASuC,IACR71B,EAAS6S,oBAAqB,mBAAoBgjB,GAClDn1B,EAAOmS,oBAAqB,OAAQgjB,GACpC5W,EAAOwR,QAnDRxR,EAAO5U,GAAGomB,MAAQ,SAAUpmB,GAY3B,OAVAurB,EACErD,KAAMloB,GAKNyrB,OAAO,SAAUltB,GACjBqW,EAAO0W,eAAgB/sB,MAGlB5L,MAGRiiB,EAAO5T,OAAQ,CAGdoV,SAAS,EAITsV,UAAW,EAGXtF,MAAO,SAAUuF,KAGF,IAATA,IAAkB/W,EAAO8W,UAAY9W,EAAOwB,WAKjDxB,EAAOwB,SAAU,GAGH,IAATuV,KAAmB/W,EAAO8W,UAAY,GAK3CH,EAAUhB,YAAa50B,EAAU,CAAEif,QAIrCA,EAAOwR,MAAM8B,KAAOqD,EAAUrD,KAaD,aAAxBvyB,EAASi2B,YACa,YAAxBj2B,EAASi2B,aAA6Bj2B,EAAS6M,gBAAgBqpB,SAGjEx1B,EAAO5D,WAAYmiB,EAAOwR,QAK1BzwB,EAAS8S,iBAAkB,mBAAoB+iB,GAG/Cn1B,EAAOoS,iBAAkB,OAAQ+iB,IAQlC,IAAIM,EAAS,SAAU3W,EAAOnV,EAAIxO,EAAKN,EAAO66B,EAAWC,EAAUC,GAClE,IAAIh8B,EAAI,EACPqD,EAAM6hB,EAAMjiB,OACZg5B,EAAc,MAAP16B,EAGR,GAAuB,WAAlBmjB,EAAQnjB,GAEZ,IAAMvB,KADN87B,GAAY,EACDv6B,EACVs6B,EAAQ3W,EAAOnV,EAAI/P,EAAGuB,EAAKvB,IAAK,EAAM+7B,EAAUC,QAI3C,QAAe31B,IAAVpF,IACX66B,GAAY,EAEN7nB,EAAYhT,KACjB+6B,GAAM,GAGFC,IAGCD,GACJjsB,EAAG5P,KAAM+kB,EAAOjkB,GAChB8O,EAAK,OAILksB,EAAOlsB,EACPA,EAAK,SAAU8L,EAAMta,EAAKN,GACzB,OAAOg7B,EAAK97B,KAAMwkB,EAAQ9I,GAAQ5a,MAKhC8O,GACJ,KAAQ/P,EAAIqD,EAAKrD,IAChB+P,EACCmV,EAAOllB,GAAKuB,EAAKy6B,EACjB/6B,EACAA,EAAMd,KAAM+kB,EAAOllB,GAAKA,EAAG+P,EAAImV,EAAOllB,GAAKuB,KAM/C,OAAKu6B,EACG5W,EAIH+W,EACGlsB,EAAG5P,KAAM+kB,GAGV7hB,EAAM0M,EAAImV,EAAO,GAAK3jB,GAAQw6B,GAKlCG,EAAY,QACfC,EAAa,YAGd,SAASC,EAAYC,EAAKC,GACzB,OAAOA,EAAOrnB,cAMf,SAASsnB,EAAWC,GACnB,OAAOA,EAAOxxB,QAASkxB,EAAW,OAAQlxB,QAASmxB,EAAYC,GAEhE,IAAIK,EAAa,SAAUtoB,GAQ1B,OAA0B,IAAnBA,EAAM0M,UAAqC,IAAnB1M,EAAM0M,YAAsB1M,EAAM0M,UAMlE,SAAS6b,IACRh6B,KAAKsjB,QAAUrB,EAAOqB,QAAU0W,EAAK7nB,MAGtC6nB,EAAK7nB,IAAM,EAEX6nB,EAAK96B,UAAY,CAEhBgqB,MAAO,SAAUzX,GAGhB,IAAIlT,EAAQkT,EAAOzR,KAAKsjB,SA4BxB,OAzBM/kB,IACLA,EAAQ,GAKHw7B,EAAYtoB,KAIXA,EAAM0M,SACV1M,EAAOzR,KAAKsjB,SAAY/kB,EAMxBP,OAAOC,eAAgBwT,EAAOzR,KAAKsjB,QAAS,CAC3C/kB,MAAOA,EACPgP,cAAc,MAMXhP,GAER6L,IAAK,SAAUqH,EAAO/G,EAAMnM,GAC3B,IAAIiS,EACH0Y,EAAQlpB,KAAKkpB,MAAOzX,GAIrB,GAAqB,iBAAT/G,EACXwe,EAAO2Q,EAAWnvB,IAAWnM,OAM7B,IAAMiS,KAAQ9F,EACbwe,EAAO2Q,EAAWrpB,IAAW9F,EAAM8F,GAGrC,OAAO0Y,GAER/qB,IAAK,SAAUsT,EAAO5S,GACrB,YAAe8E,IAAR9E,EACNmB,KAAKkpB,MAAOzX,GAGZA,EAAOzR,KAAKsjB,UAAa7R,EAAOzR,KAAKsjB,SAAWuW,EAAWh7B,KAE7Ds6B,OAAQ,SAAU1nB,EAAO5S,EAAKN,GAa7B,YAAaoF,IAAR9E,GACCA,GAAsB,iBAARA,QAAgC8E,IAAVpF,EAElCyB,KAAK7B,IAAKsT,EAAO5S,IASzBmB,KAAKoK,IAAKqH,EAAO5S,EAAKN,QAILoF,IAAVpF,EAAsBA,EAAQM,IAEtCmH,OAAQ,SAAUyL,EAAO5S,GACxB,IAAIvB,EACH4rB,EAAQzX,EAAOzR,KAAKsjB,SAErB,QAAe3f,IAAVulB,EAAL,CAIA,QAAavlB,IAAR9E,EAAoB,CAkBxBvB,GAXCuB,EAJIuC,MAAMuQ,QAAS9S,GAIbA,EAAI8G,IAAKk0B,IAEfh7B,EAAMg7B,EAAWh7B,MAIJqqB,EACZ,CAAErqB,GACAA,EAAImI,MAAO4tB,IAAmB,IAG1Br0B,OAER,KAAQjD,YACA4rB,EAAOrqB,EAAKvB,UAKRqG,IAAR9E,GAAqBojB,EAAO2B,cAAesF,MAM1CzX,EAAM0M,SACV1M,EAAOzR,KAAKsjB,cAAY3f,SAEjB8N,EAAOzR,KAAKsjB,YAItB2W,QAAS,SAAUxoB,GAClB,IAAIyX,EAAQzX,EAAOzR,KAAKsjB,SACxB,YAAiB3f,IAAVulB,IAAwBjH,EAAO2B,cAAesF,KAGvD,IAAIgR,EAAW,IAAIF,EAEfG,EAAW,IAAIH,EAcfI,GAAS,gCACZC,GAAa,SA2Bd,SAASC,GAAUnhB,EAAMta,EAAK6L,GAC7B,IAAI7M,EAIJ,QAAc8F,IAAT+G,GAAwC,IAAlByO,EAAKgF,SAI/B,GAHAtgB,EAAO,QAAUgB,EAAIyJ,QAAS+xB,GAAY,OAAQtqB,cAG7B,iBAFrBrF,EAAOyO,EAAKjK,aAAcrR,IAEM,CAC/B,IACC6M,EApCJ,SAAkBA,GACjB,MAAc,SAATA,GAIS,UAATA,IAIS,SAATA,EACG,KAIHA,KAAUA,EAAO,IACbA,EAGJ0vB,GAAOxzB,KAAM8D,GACV6M,KAAKgjB,MAAO7vB,GAGbA,GAcG8vB,CAAS9vB,GACf,MAAQ3K,IAGVo6B,EAAS/vB,IAAK+O,EAAMta,EAAK6L,QAEzBA,OAAO/G,EAGT,OAAO+G,EAGRuX,EAAO5T,OAAQ,CACd4rB,QAAS,SAAU9gB,GAClB,OAAOghB,EAASF,QAAS9gB,IAAU+gB,EAASD,QAAS9gB,IAGtDzO,KAAM,SAAUyO,EAAMtb,EAAM6M,GAC3B,OAAOyvB,EAAShB,OAAQhgB,EAAMtb,EAAM6M,IAGrC+vB,WAAY,SAAUthB,EAAMtb,GAC3Bs8B,EAASn0B,OAAQmT,EAAMtb,IAKxB68B,MAAO,SAAUvhB,EAAMtb,EAAM6M,GAC5B,OAAOwvB,EAASf,OAAQhgB,EAAMtb,EAAM6M,IAGrCiwB,YAAa,SAAUxhB,EAAMtb,GAC5Bq8B,EAASl0B,OAAQmT,EAAMtb,MAIzBokB,EAAO5U,GAAGgB,OAAQ,CACjB3D,KAAM,SAAU7L,EAAKN,GACpB,IAAIjB,EAAGO,EAAM6M,EACZyO,EAAOnZ,KAAM,GACb+X,EAAQoB,GAAQA,EAAKiF,WAGtB,QAAaza,IAAR9E,EAAoB,CACxB,GAAKmB,KAAKO,SACTmK,EAAOyvB,EAASh8B,IAAKgb,GAEE,IAAlBA,EAAKgF,WAAmB+b,EAAS/7B,IAAKgb,EAAM,iBAAmB,CAEnE,IADA7b,EAAIya,EAAMxX,OACFjD,KAIFya,EAAOza,IAEsB,KADjCO,EAAOka,EAAOza,GAAIO,MACRqJ,QAAS,WAClBrJ,EAAOg8B,EAAWh8B,EAAKyI,MAAO,IAC9Bg0B,GAAUnhB,EAAMtb,EAAM6M,EAAM7M,KAI/Bq8B,EAAS9vB,IAAK+O,EAAM,gBAAgB,GAItC,OAAOzO,EAIR,MAAoB,iBAAR7L,EACJmB,KAAKiS,MAAM,WACjBkoB,EAAS/vB,IAAKpK,KAAMnB,MAIfs6B,EAAQn5B,MAAM,SAAUzB,GAC9B,IAAImM,EAOJ,GAAKyO,QAAkBxV,IAAVpF,EAKZ,YAAcoF,KADd+G,EAAOyvB,EAASh8B,IAAKgb,EAAMta,IAEnB6L,OAMM/G,KADd+G,EAAO4vB,GAAUnhB,EAAMta,IAEf6L,OAIR,EAID1K,KAAKiS,MAAM,WAGVkoB,EAAS/vB,IAAKpK,KAAMnB,EAAKN,QAExB,KAAMA,EAAO8C,UAAUd,OAAS,EAAG,MAAM,IAG7Ck6B,WAAY,SAAU57B,GACrB,OAAOmB,KAAKiS,MAAM,WACjBkoB,EAASn0B,OAAQhG,KAAMnB,SAM1BojB,EAAO5T,OAAQ,CACdlO,MAAO,SAAUgZ,EAAM+E,EAAMxT,GAC5B,IAAIvK,EAEJ,GAAKgZ,EAYJ,OAXA+E,GAASA,GAAQ,MAAS,QAC1B/d,EAAQ+5B,EAAS/7B,IAAKgb,EAAM+E,GAGvBxT,KACEvK,GAASiB,MAAMuQ,QAASjH,GAC7BvK,EAAQ+5B,EAASf,OAAQhgB,EAAM+E,EAAM+D,EAAO6B,UAAWpZ,IAEvDvK,EAAMmB,KAAMoJ,IAGPvK,GAAS,IAIlBy6B,QAAS,SAAUzhB,EAAM+E,GACxBA,EAAOA,GAAQ,KAEf,IAAI/d,EAAQ8hB,EAAO9hB,MAAOgZ,EAAM+E,GAC/B2c,EAAc16B,EAAMI,OACpB8M,EAAKlN,EAAMipB,QACX0R,EAAQ7Y,EAAO8Y,YAAa5hB,EAAM+E,GAMvB,eAAP7Q,IACJA,EAAKlN,EAAMipB,QACXyR,KAGIxtB,IAIU,OAAT6Q,GACJ/d,EAAM8rB,QAAS,qBAIT6O,EAAME,KACb3tB,EAAG5P,KAAM0b,GApBF,WACN8I,EAAO2Y,QAASzhB,EAAM+E,KAmBF4c,KAGhBD,GAAeC,GACpBA,EAAM5E,MAAMF,QAKd+E,YAAa,SAAU5hB,EAAM+E,GAC5B,IAAIrf,EAAMqf,EAAO,aACjB,OAAOgc,EAAS/7B,IAAKgb,EAAMta,IAASq7B,EAASf,OAAQhgB,EAAMta,EAAK,CAC/Dq3B,MAAOjU,EAAOuT,UAAW,eAAgBlwB,KAAK,WAC7C40B,EAASl0B,OAAQmT,EAAM,CAAE+E,EAAO,QAASrf,YAM7CojB,EAAO5U,GAAGgB,OAAQ,CACjBlO,MAAO,SAAU+d,EAAMxT,GACtB,IAAIuwB,EAAS,EAQb,MANqB,iBAAT/c,IACXxT,EAAOwT,EACPA,EAAO,KACP+c,KAGI55B,UAAUd,OAAS06B,EAChBhZ,EAAO9hB,MAAOH,KAAM,GAAKke,QAGjBva,IAAT+G,EACN1K,KACAA,KAAKiS,MAAM,WACV,IAAI9R,EAAQ8hB,EAAO9hB,MAAOH,KAAMke,EAAMxT,GAGtCuX,EAAO8Y,YAAa/6B,KAAMke,GAEZ,OAATA,GAAgC,eAAf/d,EAAO,IAC5B8hB,EAAO2Y,QAAS56B,KAAMke,OAI1B0c,QAAS,SAAU1c,GAClB,OAAOle,KAAKiS,MAAM,WACjBgQ,EAAO2Y,QAAS56B,KAAMke,OAGxBgd,WAAY,SAAUhd,GACrB,OAAOle,KAAKG,MAAO+d,GAAQ,KAAM,KAKlCmX,QAAS,SAAUnX,EAAM/P,GACxB,IAAI+c,EACHiQ,EAAQ,EACRC,EAAQnZ,EAAOqU,WACfpK,EAAWlsB,KACX1C,EAAI0C,KAAKO,OACT00B,EAAU,aACCkG,GACTC,EAAMxD,YAAa1L,EAAU,CAAEA,KAUlC,IANqB,iBAAThO,IACX/P,EAAM+P,EACNA,OAAOva,GAERua,EAAOA,GAAQ,KAEP5gB,MACP4tB,EAAMgP,EAAS/7B,IAAK+tB,EAAU5uB,GAAK4gB,EAAO,gBAC9BgN,EAAIgL,QACfiF,IACAjQ,EAAIgL,MAAM5wB,IAAK2vB,IAIjB,OADAA,IACOmG,EAAM/F,QAASlnB,MAGxB,IAAIktB,GAAO,sCAA0C3zB,OAEjD4zB,GAAU,IAAI1zB,OAAQ,iBAAmByzB,GAAO,cAAe,KAG/DE,GAAY,CAAE,MAAO,QAAS,SAAU,QAExC1rB,GAAkB7M,EAAS6M,gBAI1B2rB,GAAa,SAAUriB,GACzB,OAAO8I,EAAOlQ,SAAUoH,EAAK1J,cAAe0J,IAE7CsiB,GAAW,CAAEA,UAAU,GAOnB5rB,GAAgB6rB,cACpBF,GAAa,SAAUriB,GACtB,OAAO8I,EAAOlQ,SAAUoH,EAAK1J,cAAe0J,IAC3CA,EAAKuiB,YAAaD,MAAetiB,EAAK1J,gBAG1C,IAAIksB,GAAqB,SAAUxiB,EAAMlM,GAOvC,MAA8B,UAH9BkM,EAAOlM,GAAMkM,GAGD1T,MAAMuJ,SACM,KAAvBmK,EAAK1T,MAAMuJ,SAMXwsB,GAAYriB,IAEsB,SAAlC8I,EAAO1c,IAAK4T,EAAM,YAGjByiB,GAAO,SAAUziB,EAAM9G,EAASuQ,EAAUzhB,GAC7C,IAAIshB,EAAK5kB,EACRsf,EAAM,GAGP,IAAMtf,KAAQwU,EACb8K,EAAKtf,GAASsb,EAAK1T,MAAO5H,GAC1Bsb,EAAK1T,MAAO5H,GAASwU,EAASxU,GAM/B,IAAMA,KAHN4kB,EAAMG,EAASrhB,MAAO4X,EAAMhY,GAAQ,IAGtBkR,EACb8G,EAAK1T,MAAO5H,GAASsf,EAAKtf,GAG3B,OAAO4kB,GAMR,SAASoZ,GAAW1iB,EAAM3I,EAAMsrB,EAAYC,GAC3C,IAAIC,EAAUC,EACbC,EAAgB,GAChBC,EAAeJ,EACd,WACC,OAAOA,EAAMrS,OAEd,WACC,OAAOzH,EAAO1c,IAAK4T,EAAM3I,EAAM,KAEjC4rB,EAAUD,IACVE,EAAOP,GAAcA,EAAY,KAAS7Z,EAAOqa,UAAW9rB,GAAS,GAAK,MAG1E+rB,EAAgBpjB,EAAKgF,WAClB8D,EAAOqa,UAAW9rB,IAAmB,OAAT6rB,IAAkBD,IAChDd,GAAQ72B,KAAMwd,EAAO1c,IAAK4T,EAAM3I,IAElC,GAAK+rB,GAAiBA,EAAe,KAAQF,EAAO,CAYnD,IARAD,GAAoB,EAGpBC,EAAOA,GAAQE,EAAe,GAG9BA,GAAiBH,GAAW,EAEpBF,KAIPja,EAAOxc,MAAO0T,EAAM3I,EAAM+rB,EAAgBF,IACnC,EAAIJ,IAAY,GAAMA,EAAQE,IAAiBC,GAAW,MAAW,IAC3EF,EAAgB,GAEjBK,GAAgCN,EAIjCM,GAAgC,EAChCta,EAAOxc,MAAO0T,EAAM3I,EAAM+rB,EAAgBF,GAG1CP,EAAaA,GAAc,GAgB5B,OAbKA,IACJS,GAAiBA,IAAkBH,GAAW,EAG9CJ,EAAWF,EAAY,GACtBS,GAAkBT,EAAY,GAAM,GAAMA,EAAY,IACrDA,EAAY,GACTC,IACJA,EAAMM,KAAOA,EACbN,EAAMl1B,MAAQ01B,EACdR,EAAM50B,IAAM60B,IAGPA,EAIR,IAAIQ,GAAoB,GAExB,SAASC,GAAmBtjB,GAC3B,IAAIqX,EACH1O,EAAM3I,EAAK1J,cACX0Y,EAAWhP,EAAKgP,SAChBnZ,EAAUwtB,GAAmBrU,GAE9B,OAAKnZ,IAILwhB,EAAO1O,EAAI4a,KAAKv3B,YAAa2c,EAAI1d,cAAe+jB,IAChDnZ,EAAUiT,EAAO1c,IAAKirB,EAAM,WAE5BA,EAAKxrB,WAAW8W,YAAa0U,GAEZ,SAAZxhB,IACJA,EAAU,SAEXwtB,GAAmBrU,GAAanZ,EAEzBA,GAGR,SAAS2tB,GAAUzQ,EAAUnd,GAO5B,IANA,IAAIC,EAASmK,EACZyjB,EAAS,GACTrzB,EAAQ,EACRhJ,EAAS2rB,EAAS3rB,OAGXgJ,EAAQhJ,EAAQgJ,KACvB4P,EAAO+S,EAAU3iB,IACN9D,QAIXuJ,EAAUmK,EAAK1T,MAAMuJ,QAChBD,GAKa,SAAZC,IACJ4tB,EAAQrzB,GAAU2wB,EAAS/7B,IAAKgb,EAAM,YAAe,KAC/CyjB,EAAQrzB,KACb4P,EAAK1T,MAAMuJ,QAAU,KAGK,KAAvBmK,EAAK1T,MAAMuJ,SAAkB2sB,GAAoBxiB,KACrDyjB,EAAQrzB,GAAUkzB,GAAmBtjB,KAGrB,SAAZnK,IACJ4tB,EAAQrzB,GAAU,OAGlB2wB,EAAS9vB,IAAK+O,EAAM,UAAWnK,KAMlC,IAAMzF,EAAQ,EAAGA,EAAQhJ,EAAQgJ,IACR,MAAnBqzB,EAAQrzB,KACZ2iB,EAAU3iB,GAAQ9D,MAAMuJ,QAAU4tB,EAAQrzB,IAI5C,OAAO2iB,EAGRjK,EAAO5U,GAAGgB,OAAQ,CACjBU,KAAM,WACL,OAAO4tB,GAAU38B,MAAM,IAExB68B,KAAM,WACL,OAAOF,GAAU38B,OAElB88B,OAAQ,SAAUrG,GACjB,MAAsB,kBAAVA,EACJA,EAAQz2B,KAAK+O,OAAS/O,KAAK68B,OAG5B78B,KAAKiS,MAAM,WACZ0pB,GAAoB37B,MACxBiiB,EAAQjiB,MAAO+O,OAEfkT,EAAQjiB,MAAO68B,aAKnB,IAAIE,GAAiB,wBAEjBC,GAAW,iCAEXC,GAAc,qCAKdC,GAAU,CAGbC,OAAQ,CAAE,EAAG,+BAAgC,aAK7CC,MAAO,CAAE,EAAG,UAAW,YACvBrpB,IAAK,CAAE,EAAG,oBAAqB,uBAC/BH,GAAI,CAAE,EAAG,iBAAkB,oBAC3BE,GAAI,CAAE,EAAG,qBAAsB,yBAE/BupB,SAAU,CAAE,EAAG,GAAI,KAUpB,SAASC,GAAQ5sB,EAASmE,GAIzB,IAAI4N,EAYJ,OATCA,OAD4C,IAAjC/R,EAAQkY,qBACblY,EAAQkY,qBAAsB/T,GAAO,UAEI,IAA7BnE,EAAQ/B,iBACpB+B,EAAQ/B,iBAAkBkG,GAAO,KAGjC,QAGMlR,IAARkR,GAAqBA,GAAOsT,EAAUzX,EAASmE,GAC5CoN,EAAOS,MAAO,CAAEhS,GAAW+R,GAG5BA,EAKR,SAAS8a,GAAe/a,EAAOgb,GAI9B,IAHA,IAAIlgC,EAAI,EACPC,EAAIilB,EAAMjiB,OAEHjD,EAAIC,EAAGD,IACd48B,EAAS9vB,IACRoY,EAAOllB,GACP,cACCkgC,GAAetD,EAAS/7B,IAAKq/B,EAAalgC,GAAK,eAvCnD4/B,GAAQO,SAAWP,GAAQC,OAE3BD,GAAQQ,MAAQR,GAAQS,MAAQT,GAAQU,SAAWV,GAAQW,QAAUX,GAAQE,MAC7EF,GAAQrpB,GAAKqpB,GAAQppB,GA0CrB,IA8FEgqB,GACA3S,GA/FErE,GAAQ,YAEZ,SAASiX,GAAevb,EAAO9R,EAASstB,EAASC,EAAWC,GAO3D,IANA,IAAI/kB,EAAM+R,EAAKrW,EAAKspB,EAAMC,EAAUvzB,EACnCwzB,EAAW3tB,EAAQT,yBACnBquB,EAAQ,GACRhhC,EAAI,EACJC,EAAIilB,EAAMjiB,OAEHjD,EAAIC,EAAGD,IAGd,IAFA6b,EAAOqJ,EAAOllB,KAEQ,IAAT6b,EAGZ,GAAwB,WAAnB6I,EAAQ7I,GAIZ8I,EAAOS,MAAO4b,EAAOnlB,EAAKgF,SAAW,CAAEhF,GAASA,QAG1C,GAAM2N,GAAMlgB,KAAMuS,GAIlB,CAUN,IATA+R,EAAMA,GAAOmT,EAASl5B,YAAauL,EAAQtM,cAAe,QAG1DyQ,GAAQmoB,GAASv4B,KAAM0U,IAAU,CAAE,GAAI,KAAQ,GAAIpJ,cACnDouB,EAAOjB,GAASroB,IAASqoB,GAAQG,SACjCnS,EAAInlB,UAAYo4B,EAAM,GAAMlc,EAAOsc,cAAeplB,GAASglB,EAAM,GAGjEtzB,EAAIszB,EAAM,GACFtzB,KACPqgB,EAAMA,EAAI4C,UAKX7L,EAAOS,MAAO4b,EAAOpT,EAAI9C,aAGzB8C,EAAMmT,EAASztB,YAGX8b,YAAc,QAzBlB4R,EAAMh9B,KAAMoP,EAAQ7B,eAAgBsK,IAkCvC,IAHAklB,EAAS3R,YAAc,GAEvBpvB,EAAI,EACM6b,EAAOmlB,EAAOhhC,MAGvB,GAAK2gC,GAAahc,EAAO+B,QAAS7K,EAAM8kB,IAAe,EACjDC,GACJA,EAAQ58B,KAAM6X,QAgBhB,GAXAilB,EAAW5C,GAAYriB,GAGvB+R,EAAMoS,GAAQe,EAASl5B,YAAagU,GAAQ,UAGvCilB,GACJb,GAAerS,GAIX8S,EAEJ,IADAnzB,EAAI,EACMsO,EAAO+R,EAAKrgB,MAChBoyB,GAAYr2B,KAAMuS,EAAK+E,MAAQ,KACnC8f,EAAQ18B,KAAM6X,GAMlB,OAAOklB,EAMNP,GADc96B,EAASiN,yBACR9K,YAAanC,EAASoB,cAAe,SACpD+mB,GAAQnoB,EAASoB,cAAe,UAM3BC,aAAc,OAAQ,SAC5B8mB,GAAM9mB,aAAc,UAAW,WAC/B8mB,GAAM9mB,aAAc,OAAQ,KAE5By5B,GAAI34B,YAAagmB,IAIjB3J,EAAQgd,WAAaV,GAAIjhB,WAAW,GAAOA,WAAW,GAAOiR,UAAUgB,QAIvEgP,GAAI/3B,UAAY,yBAChByb,EAAQid,iBAAmBX,GAAIjhB,WAAW,GAAOiR,UAAU0E,aAI5D,IACCkM,GAAY,OACZC,GAAc,iDACdC,GAAiB,sBAElB,SAASC,KACR,OAAO,EAGR,SAASC,KACR,OAAO,EASR,SAASC,GAAY5lB,EAAM+E,GAC1B,OAAS/E,IAMV,WACC,IACC,OAAOnW,EAAS0rB,cACf,MAAQrjB,KATQ2zB,KAAqC,UAAT9gB,GAY/C,SAASpc,GAAIqX,EAAM8lB,EAAOn8B,EAAU4H,EAAM2C,EAAIK,GAC7C,IAAIwxB,EAAQhhB,EAGZ,GAAsB,iBAAV+gB,EAAqB,CAShC,IAAM/gB,IANmB,iBAAbpb,IAGX4H,EAAOA,GAAQ5H,EACfA,OAAWa,GAEEs7B,EACbn9B,GAAIqX,EAAM+E,EAAMpb,EAAU4H,EAAMu0B,EAAO/gB,GAAQxQ,GAEhD,OAAOyL,EAsBR,GAnBa,MAARzO,GAAsB,MAAN2C,GAGpBA,EAAKvK,EACL4H,EAAO5H,OAAWa,GACD,MAAN0J,IACc,iBAAbvK,GAGXuK,EAAK3C,EACLA,OAAO/G,IAIP0J,EAAK3C,EACLA,EAAO5H,EACPA,OAAWa,KAGD,IAAP0J,EACJA,EAAKyxB,QACC,IAAMzxB,EACZ,OAAO8L,EAeR,OAZa,IAARzL,IACJwxB,EAAS7xB,GACTA,EAAK,SAAUD,GAId,OADA6U,IAAShgB,IAAKmL,GACP8xB,EAAO39B,MAAOvB,KAAMqB,aAIzBkjB,KAAO2a,EAAO3a,OAAU2a,EAAO3a,KAAOtC,EAAOsC,SAE1CpL,EAAKlH,MAAM,WACjBgQ,EAAO7U,MAAM9H,IAAKtF,KAAMi/B,EAAO5xB,EAAI3C,EAAM5H,MA4a3C,SAASq8B,GAAgBlyB,EAAIiR,EAAM6gB,GAG5BA,GAQN7E,EAAS9vB,IAAK6C,EAAIiR,GAAM,GACxB+D,EAAO7U,MAAM9H,IAAK2H,EAAIiR,EAAM,CAC3BkM,WAAW,EACXnV,QAAS,SAAU7H,GAClB,IAAIgyB,EAAUhS,EACbiS,EAAQnF,EAAS/7B,IAAK6B,KAAMke,GAE7B,GAAyB,EAAlB9Q,EAAMkyB,WAAmBt/B,KAAMke,IAKrC,GAAMmhB,EAAM9+B,QAiCE0hB,EAAO7U,MAAMmqB,QAASrZ,IAAU,IAAKqhB,cAClDnyB,EAAMoyB,uBAfN,GAdAH,EAAQ/4B,EAAM7I,KAAM4D,WACpB64B,EAAS9vB,IAAKpK,KAAMke,EAAMmhB,GAK1BD,EAAWL,EAAY/+B,KAAMke,GAC7Ble,KAAMke,KAEDmhB,KADLjS,EAAS8M,EAAS/7B,IAAK6B,KAAMke,KACJkhB,EACxBlF,EAAS9vB,IAAKpK,KAAMke,GAAM,GAE1BkP,EAAS,GAELiS,IAAUjS,EAKd,OAFAhgB,EAAMqyB,2BACNryB,EAAMsyB,iBACCtS,EAAO7uB,WAeL8gC,EAAM9+B,SAGjB25B,EAAS9vB,IAAKpK,KAAMke,EAAM,CACzB3f,MAAO0jB,EAAO7U,MAAMO,QAInBsU,EAAO5T,OAAQgxB,EAAO,GAAKpd,EAAO0d,MAAMzgC,WACxCmgC,EAAM/4B,MAAO,GACbtG,QAKFoN,EAAMqyB,qCAzE0B97B,IAA7Bu2B,EAAS/7B,IAAK8O,EAAIiR,IACtB+D,EAAO7U,MAAM9H,IAAK2H,EAAIiR,EAAM2gB,IAza/B5c,EAAO7U,MAAQ,CAEd7E,OAAQ,GAERjD,IAAK,SAAU6T,EAAM8lB,EAAOhqB,EAASvK,EAAM5H,GAE1C,IAAI88B,EAAaC,EAAa3U,EAC7B4U,EAAQthC,EAAGuhC,EACXxI,EAASyI,EAAU9hB,EAAM+hB,EAAYC,EACrCC,EAAWjG,EAAS/7B,IAAKgb,GAG1B,GAAMgnB,EAuCN,IAlCKlrB,EAAQA,UAEZA,GADA2qB,EAAc3qB,GACQA,QACtBnS,EAAW88B,EAAY98B,UAKnBA,GACJmf,EAAO+I,KAAKI,gBAAiBvb,GAAiB/M,GAIzCmS,EAAQsP,OACbtP,EAAQsP,KAAOtC,EAAOsC,SAIfub,EAASK,EAASL,UACzBA,EAASK,EAASL,OAAS,KAEpBD,EAAcM,EAASC,UAC9BP,EAAcM,EAASC,OAAS,SAAUrgC,GAIzC,YAAyB,IAAXkiB,GAA0BA,EAAO7U,MAAMizB,YAActgC,EAAEme,KACpE+D,EAAO7U,MAAMkzB,SAAS/+B,MAAO4X,EAAM9X,gBAAcsC,IAMpDnF,GADAygC,GAAUA,GAAS,IAAKj4B,MAAO4tB,IAAmB,CAAE,KAC1Cr0B,OACF/B,KAEP0f,EAAOgiB,GADPhV,EAAM0T,GAAen6B,KAAMw6B,EAAOzgC,KAAS,IACpB,GACvByhC,GAAe/U,EAAK,IAAO,IAAKviB,MAAO,KAAMqa,OAGvC9E,IAKNqZ,EAAUtV,EAAO7U,MAAMmqB,QAASrZ,IAAU,GAG1CA,GAASpb,EAAWy0B,EAAQgI,aAAehI,EAAQgJ,WAAcriB,EAGjEqZ,EAAUtV,EAAO7U,MAAMmqB,QAASrZ,IAAU,GAG1C6hB,EAAY9d,EAAO5T,OAAQ,CAC1B6P,KAAMA,EACNgiB,SAAUA,EACVx1B,KAAMA,EACNuK,QAASA,EACTsP,KAAMtP,EAAQsP,KACdzhB,SAAUA,EACVmwB,aAAcnwB,GAAYmf,EAAO/X,KAAKlD,MAAMisB,aAAarsB,KAAM9D,GAC/DsnB,UAAW6V,EAAWp6B,KAAM,MAC1B+5B,IAGKI,EAAWF,EAAQ5hB,OAC1B8hB,EAAWF,EAAQ5hB,GAAS,IACnBsiB,cAAgB,EAGnBjJ,EAAQkJ,QACiD,IAA9DlJ,EAAQkJ,MAAMhjC,KAAM0b,EAAMzO,EAAMu1B,EAAYJ,IAEvC1mB,EAAKrD,kBACTqD,EAAKrD,iBAAkBoI,EAAM2hB,IAK3BtI,EAAQjyB,MACZiyB,EAAQjyB,IAAI7H,KAAM0b,EAAM4mB,GAElBA,EAAU9qB,QAAQsP,OACvBwb,EAAU9qB,QAAQsP,KAAOtP,EAAQsP,OAK9BzhB,EACJk9B,EAASvyB,OAAQuyB,EAASQ,gBAAiB,EAAGT,GAE9CC,EAAS1+B,KAAMy+B,GAIhB9d,EAAO7U,MAAM7E,OAAQ2V,IAAS,IAMhClY,OAAQ,SAAUmT,EAAM8lB,EAAOhqB,EAASnS,EAAU49B,GAEjD,IAAI71B,EAAG81B,EAAWzV,EACjB4U,EAAQthC,EAAGuhC,EACXxI,EAASyI,EAAU9hB,EAAM+hB,EAAYC,EACrCC,EAAWjG,EAASD,QAAS9gB,IAAU+gB,EAAS/7B,IAAKgb,GAEtD,GAAMgnB,IAAeL,EAASK,EAASL,QAAvC,CAOA,IADAthC,GADAygC,GAAUA,GAAS,IAAKj4B,MAAO4tB,IAAmB,CAAE,KAC1Cr0B,OACF/B,KAMP,GAJA0f,EAAOgiB,GADPhV,EAAM0T,GAAen6B,KAAMw6B,EAAOzgC,KAAS,IACpB,GACvByhC,GAAe/U,EAAK,IAAO,IAAKviB,MAAO,KAAMqa,OAGvC9E,EAAN,CAeA,IARAqZ,EAAUtV,EAAO7U,MAAMmqB,QAASrZ,IAAU,GAE1C8hB,EAAWF,EADX5hB,GAASpb,EAAWy0B,EAAQgI,aAAehI,EAAQgJ,WAAcriB,IACpC,GAC7BgN,EAAMA,EAAK,IACV,IAAItjB,OAAQ,UAAYq4B,EAAWp6B,KAAM,iBAAoB,WAG9D86B,EAAY91B,EAAIm1B,EAASz/B,OACjBsK,KACPk1B,EAAYC,EAAUn1B,IAEf61B,GAAeR,IAAaH,EAAUG,UACzCjrB,GAAWA,EAAQsP,OAASwb,EAAUxb,MACtC2G,IAAOA,EAAItkB,KAAMm5B,EAAU3V,YAC3BtnB,GAAYA,IAAai9B,EAAUj9B,WACxB,OAAbA,IAAqBi9B,EAAUj9B,YAChCk9B,EAASvyB,OAAQ5C,EAAG,GAEfk1B,EAAUj9B,UACdk9B,EAASQ,gBAELjJ,EAAQvxB,QACZuxB,EAAQvxB,OAAOvI,KAAM0b,EAAM4mB,IAOzBY,IAAcX,EAASz/B,SACrBg3B,EAAQqJ,WACkD,IAA/DrJ,EAAQqJ,SAASnjC,KAAM0b,EAAM8mB,EAAYE,EAASC,SAElDne,EAAO4e,YAAa1nB,EAAM+E,EAAMiiB,EAASC,eAGnCN,EAAQ5hB,SA1Cf,IAAMA,KAAQ4hB,EACb7d,EAAO7U,MAAMpH,OAAQmT,EAAM+E,EAAO+gB,EAAOzgC,GAAKyW,EAASnS,GAAU,GA8C/Dmf,EAAO2B,cAAekc,IAC1B5F,EAASl0B,OAAQmT,EAAM,mBAIzBmnB,SAAU,SAAUQ,GAGnB,IAEIxjC,EAAGuN,EAAG4X,EAAK0L,EAAS4R,EAAWgB,EAF/B3zB,EAAQ6U,EAAO7U,MAAM4zB,IAAKF,GAG7B3/B,EAAO,IAAIC,MAAOC,UAAUd,QAC5By/B,GAAa9F,EAAS/7B,IAAK6B,KAAM,WAAc,IAAMoN,EAAM8Q,OAAU,GACrEqZ,EAAUtV,EAAO7U,MAAMmqB,QAASnqB,EAAM8Q,OAAU,GAKjD,IAFA/c,EAAM,GAAMiM,EAEN9P,EAAI,EAAGA,EAAI+D,UAAUd,OAAQjD,IAClC6D,EAAM7D,GAAM+D,UAAW/D,GAMxB,GAHA8P,EAAM6zB,eAAiBjhC,MAGlBu3B,EAAQ2J,cAA2D,IAA5C3J,EAAQ2J,YAAYzjC,KAAMuC,KAAMoN,GAA5D,CASA,IAJA2zB,EAAe9e,EAAO7U,MAAM4yB,SAASviC,KAAMuC,KAAMoN,EAAO4yB,GAGxD1iC,EAAI,GACM6wB,EAAU4S,EAAczjC,QAAY8P,EAAM+zB,wBAInD,IAHA/zB,EAAM8H,cAAgBiZ,EAAQhV,KAE9BtO,EAAI,GACMk1B,EAAY5R,EAAQ6R,SAAUn1B,QACtCuC,EAAMg0B,iCAIDh0B,EAAMi0B,aAAsC,IAAxBtB,EAAU3V,YACnChd,EAAMi0B,WAAWz6B,KAAMm5B,EAAU3V,aAEjChd,EAAM2yB,UAAYA,EAClB3yB,EAAM1C,KAAOq1B,EAAUr1B,UAKV/G,KAHb8e,IAAUR,EAAO7U,MAAMmqB,QAASwI,EAAUG,WAAc,IAAKE,QAC5DL,EAAU9qB,SAAU1T,MAAO4sB,EAAQhV,KAAMhY,MAGT,KAAzBiM,EAAMggB,OAAS3K,KACrBrV,EAAMsyB,iBACNtyB,EAAMoyB,oBAYX,OAJKjI,EAAQ+J,cACZ/J,EAAQ+J,aAAa7jC,KAAMuC,KAAMoN,GAG3BA,EAAMggB,SAGd4S,SAAU,SAAU5yB,EAAO4yB,GAC1B,IAAI1iC,EAAGyiC,EAAW1T,EAAKkV,EAAiBC,EACvCT,EAAe,GACfP,EAAgBR,EAASQ,cACzB9W,EAAMtc,EAAM+H,OAGb,GAAKqrB,GAIJ9W,EAAIvL,YAOc,UAAf/Q,EAAM8Q,MAAoB9Q,EAAMq0B,QAAU,GAE7C,KAAQ/X,IAAQ1pB,KAAM0pB,EAAMA,EAAI1kB,YAAchF,KAI7C,GAAsB,IAAjB0pB,EAAIvL,WAAoC,UAAf/Q,EAAM8Q,OAAqC,IAAjBwL,EAAIxB,UAAsB,CAGjF,IAFAqZ,EAAkB,GAClBC,EAAmB,GACblkC,EAAI,EAAGA,EAAIkjC,EAAeljC,SAMEqG,IAA5B69B,EAFLnV,GAHA0T,EAAYC,EAAU1iC,IAGNwF,SAAW,OAG1B0+B,EAAkBnV,GAAQ0T,EAAU9M,aACnChR,EAAQoK,EAAKrsB,MAAOuJ,MAAOmgB,IAAS,EACpCzH,EAAO+I,KAAMqB,EAAKrsB,KAAM,KAAM,CAAE0pB,IAAQnpB,QAErCihC,EAAkBnV,IACtBkV,EAAgBjgC,KAAMy+B,GAGnBwB,EAAgBhhC,QACpBwgC,EAAaz/B,KAAM,CAAE6X,KAAMuQ,EAAKsW,SAAUuB,IAY9C,OALA7X,EAAM1pB,KACDwgC,EAAgBR,EAASz/B,QAC7BwgC,EAAaz/B,KAAM,CAAE6X,KAAMuQ,EAAKsW,SAAUA,EAAS15B,MAAOk6B,KAGpDO,GAGRW,QAAS,SAAU7jC,EAAM8jC,GACxB3jC,OAAOC,eAAgBgkB,EAAO0d,MAAMzgC,UAAWrB,EAAM,CACpDK,YAAY,EACZqP,cAAc,EAEdpP,IAAKoT,EAAYowB,GAChB,WACC,GAAK3hC,KAAK4hC,cACR,OAAOD,EAAM3hC,KAAK4hC,gBAGrB,WACC,GAAK5hC,KAAK4hC,cACR,OAAO5hC,KAAK4hC,cAAe/jC,IAI/BuM,IAAK,SAAU7L,GACdP,OAAOC,eAAgB+B,KAAMnC,EAAM,CAClCK,YAAY,EACZqP,cAAc,EACdD,UAAU,EACV/O,MAAOA,QAMXyiC,IAAK,SAAUY,GACd,OAAOA,EAAe3f,EAAOqB,SAC5Bse,EACA,IAAI3f,EAAO0d,MAAOiC,IAGpBrK,QAAS,CACRsK,KAAM,CAGLC,UAAU,GAEXC,MAAO,CAGNtB,MAAO,SAAU/1B,GAIhB,IAAIuC,EAAKjN,MAAQ0K,EAWjB,OARKqyB,GAAen2B,KAAMqG,EAAGiR,OAC5BjR,EAAG80B,OAAS5Z,EAAUlb,EAAI,UAG1BkyB,GAAgBlyB,EAAI,QAAS4xB,KAIvB,GAERlxB,QAAS,SAAUjD,GAIlB,IAAIuC,EAAKjN,MAAQ0K,EAUjB,OAPKqyB,GAAen2B,KAAMqG,EAAGiR,OAC5BjR,EAAG80B,OAAS5Z,EAAUlb,EAAI,UAE1BkyB,GAAgBlyB,EAAI,UAId,GAKRowB,SAAU,SAAUjwB,GACnB,IAAI+H,EAAS/H,EAAM+H,OACnB,OAAO4nB,GAAen2B,KAAMuO,EAAO+I,OAClC/I,EAAO4sB,OAAS5Z,EAAUhT,EAAQ,UAClC+kB,EAAS/7B,IAAKgX,EAAQ,UACtBgT,EAAUhT,EAAQ,OAIrB6sB,aAAc,CACbV,aAAc,SAAUl0B,QAIDzJ,IAAjByJ,EAAMggB,QAAwBhgB,EAAMw0B,gBACxCx0B,EAAMw0B,cAAcK,YAAc70B,EAAMggB,YA8F7CnL,EAAO4e,YAAc,SAAU1nB,EAAM+E,EAAMkiB,GAGrCjnB,EAAKtD,qBACTsD,EAAKtD,oBAAqBqI,EAAMkiB,IAIlCne,EAAO0d,MAAQ,SAAUrxB,EAAKgM,GAG7B,KAAQta,gBAAgBiiB,EAAO0d,OAC9B,OAAO,IAAI1d,EAAO0d,MAAOrxB,EAAKgM,GAI1BhM,GAAOA,EAAI4P,MACfle,KAAK4hC,cAAgBtzB,EACrBtO,KAAKke,KAAO5P,EAAI4P,KAIhBle,KAAKkiC,mBAAqB5zB,EAAI6zB,uBACHx+B,IAAzB2K,EAAI6zB,mBAGgB,IAApB7zB,EAAI2zB,YACLpD,GACAC,GAKD9+B,KAAKmV,OAAW7G,EAAI6G,QAAkC,IAAxB7G,EAAI6G,OAAOgJ,SACxC7P,EAAI6G,OAAOnQ,WACXsJ,EAAI6G,OAELnV,KAAKkV,cAAgB5G,EAAI4G,cACzBlV,KAAKoiC,cAAgB9zB,EAAI8zB,eAIzBpiC,KAAKke,KAAO5P,EAIRgM,GACJ2H,EAAO5T,OAAQrO,KAAMsa,GAItBta,KAAKqiC,UAAY/zB,GAAOA,EAAI+zB,WAAa9c,KAAK+c,MAG9CtiC,KAAMiiB,EAAOqB,UAAY,GAK1BrB,EAAO0d,MAAMzgC,UAAY,CACxB8Z,YAAaiJ,EAAO0d,MACpBuC,mBAAoBpD,GACpBqC,qBAAsBrC,GACtBsC,8BAA+BtC,GAC/ByD,aAAa,EAEb7C,eAAgB,WACf,IAAI3/B,EAAIC,KAAK4hC,cAEb5hC,KAAKkiC,mBAAqBrD,GAErB9+B,IAAMC,KAAKuiC,aACfxiC,EAAE2/B,kBAGJF,gBAAiB,WAChB,IAAIz/B,EAAIC,KAAK4hC,cAEb5hC,KAAKmhC,qBAAuBtC,GAEvB9+B,IAAMC,KAAKuiC,aACfxiC,EAAEy/B,mBAGJC,yBAA0B,WACzB,IAAI1/B,EAAIC,KAAK4hC,cAEb5hC,KAAKohC,8BAAgCvC,GAEhC9+B,IAAMC,KAAKuiC,aACfxiC,EAAE0/B,2BAGHz/B,KAAKw/B,oBAKPvd,EAAOhQ,KAAM,CACZuwB,QAAQ,EACRC,SAAS,EACTC,YAAY,EACZC,gBAAgB,EAChBC,SAAS,EACTC,QAAQ,EACRC,YAAY,EACZC,SAAS,EACTC,OAAO,EACPC,OAAO,EACPC,UAAU,EACVC,MAAM,EACN,MAAQ,EACRz8B,MAAM,EACN4O,UAAU,EACVzW,KAAK,EACL0W,SAAS,EACTksB,QAAQ,EACR2B,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,WAAW,EACXC,aAAa,EACbC,SAAS,EACTC,SAAS,EACTC,eAAe,EACfC,WAAW,EACXC,SAAS,EAET1uB,MAAO,SAAUjI,GAChB,IAAIq0B,EAASr0B,EAAMq0B,OAGnB,OAAoB,MAAfr0B,EAAMiI,OAAiBqpB,GAAU93B,KAAMwG,EAAM8Q,MACxB,MAAlB9Q,EAAMkI,SAAmBlI,EAAMkI,SAAWlI,EAAMmI,SAIlDnI,EAAMiI,YAAoB1R,IAAX89B,GAAwB9C,GAAY/3B,KAAMwG,EAAM8Q,MACtD,EAATujB,EACG,EAGM,EAATA,EACG,EAGM,EAATA,EACG,EAGD,EAGDr0B,EAAMiI,QAEZ4M,EAAO7U,MAAMs0B,SAEhBzf,EAAOhQ,KAAM,CAAE+xB,MAAO,UAAWC,KAAM,aAAc,SAAU/lB,EAAMqhB,GACpEtd,EAAO7U,MAAMmqB,QAASrZ,GAAS,CAG9BuiB,MAAO,WAQN,OAHAtB,GAAgBn/B,KAAMke,EAAM6gB,KAGrB,GAERpxB,QAAS,WAMR,OAHAwxB,GAAgBn/B,KAAMke,IAGf,GAGRqhB,aAAcA,MAYhBtd,EAAOhQ,KAAM,CACZiyB,WAAY,YACZC,WAAY,WACZC,aAAc,cACdC,aAAc,eACZ,SAAUC,EAAMtD,GAClB/e,EAAO7U,MAAMmqB,QAAS+M,GAAS,CAC9B/E,aAAcyB,EACdT,SAAUS,EAEVZ,OAAQ,SAAUhzB,GACjB,IAAIqV,EACHtN,EAASnV,KACTukC,EAAUn3B,EAAMg1B,cAChBrC,EAAY3yB,EAAM2yB,UASnB,OALMwE,IAAaA,IAAYpvB,GAAW8M,EAAOlQ,SAAUoD,EAAQovB,MAClEn3B,EAAM8Q,KAAO6hB,EAAUG,SACvBzd,EAAMsd,EAAU9qB,QAAQ1T,MAAOvB,KAAMqB,WACrC+L,EAAM8Q,KAAO8iB,GAEPve,OAKVR,EAAO5U,GAAGgB,OAAQ,CAEjBvM,GAAI,SAAUm9B,EAAOn8B,EAAU4H,EAAM2C,GACpC,OAAOvL,GAAI9B,KAAMi/B,EAAOn8B,EAAU4H,EAAM2C,IAEzCK,IAAK,SAAUuxB,EAAOn8B,EAAU4H,EAAM2C,GACrC,OAAOvL,GAAI9B,KAAMi/B,EAAOn8B,EAAU4H,EAAM2C,EAAI,IAE7CpL,IAAK,SAAUg9B,EAAOn8B,EAAUuK,GAC/B,IAAI0yB,EAAW7hB,EACf,GAAK+gB,GAASA,EAAMS,gBAAkBT,EAAMc,UAW3C,OARAA,EAAYd,EAAMc,UAClB9d,EAAQgd,EAAMgC,gBAAiBh/B,IAC9B89B,EAAU3V,UACT2V,EAAUG,SAAW,IAAMH,EAAU3V,UACrC2V,EAAUG,SACXH,EAAUj9B,SACVi9B,EAAU9qB,SAEJjV,KAER,GAAsB,iBAAVi/B,EAAqB,CAGhC,IAAM/gB,KAAQ+gB,EACbj/B,KAAKiC,IAAKic,EAAMpb,EAAUm8B,EAAO/gB,IAElC,OAAOle,KAWR,OATkB,IAAb8C,GAA0C,mBAAbA,IAGjCuK,EAAKvK,EACLA,OAAWa,IAEA,IAAP0J,IACJA,EAAKyxB,IAEC9+B,KAAKiS,MAAM,WACjBgQ,EAAO7U,MAAMpH,OAAQhG,KAAMi/B,EAAO5xB,EAAIvK,SAMzC,IAKC0hC,GAAY,8FAOZC,GAAe,wBAGfC,GAAW,oCACXC,GAAe,2CAGhB,SAASC,GAAoBzrB,EAAMub,GAClC,OAAKvM,EAAUhP,EAAM,UACpBgP,EAA+B,KAArBuM,EAAQvW,SAAkBuW,EAAUA,EAAQ9jB,WAAY,OAE3DqR,EAAQ9I,GAAOya,SAAU,SAAW,IAGrCza,EAIR,SAAS0rB,GAAe1rB,GAEvB,OADAA,EAAK+E,MAAyC,OAAhC/E,EAAKjK,aAAc,SAAsB,IAAMiK,EAAK+E,KAC3D/E,EAER,SAAS2rB,GAAe3rB,GAOvB,MAN2C,WAApCA,EAAK+E,MAAQ,IAAK5X,MAAO,EAAG,GAClC6S,EAAK+E,KAAO/E,EAAK+E,KAAK5X,MAAO,GAE7B6S,EAAKhK,gBAAiB,QAGhBgK,EAGR,SAAS4rB,GAAgBz2B,EAAKuE,GAC7B,IAAIvV,EAAGC,EAAG2gB,EAAM8mB,EAAUC,EAAUC,EAAUC,EAAUrF,EAExD,GAAuB,IAAlBjtB,EAAKsL,SAAV,CAKA,GAAK+b,EAASD,QAAS3rB,KACtB02B,EAAW9K,EAASf,OAAQ7qB,GAC5B22B,EAAW/K,EAAS9vB,IAAKyI,EAAMmyB,GAC/BlF,EAASkF,EAASlF,QAMjB,IAAM5hB,YAHC+mB,EAAS7E,OAChB6E,EAASnF,OAAS,GAEJA,EACb,IAAMxiC,EAAI,EAAGC,EAAIuiC,EAAQ5hB,GAAO3d,OAAQjD,EAAIC,EAAGD,IAC9C2kB,EAAO7U,MAAM9H,IAAKuN,EAAMqL,EAAM4hB,EAAQ5hB,GAAQ5gB,IAO7C68B,EAASF,QAAS3rB,KACtB42B,EAAW/K,EAAShB,OAAQ7qB,GAC5B62B,EAAWljB,EAAO5T,OAAQ,GAAI62B,GAE9B/K,EAAS/vB,IAAKyI,EAAMsyB,KAKtB,SAASC,GAAU92B,EAAKuE,GACvB,IAAIsV,EAAWtV,EAAKsV,SAASpY,cAGX,UAAboY,GAAwB4U,GAAen2B,KAAM0H,EAAI4P,MACrDrL,EAAKic,QAAUxgB,EAAIwgB,QAGK,UAAb3G,GAAqC,aAAbA,IACnCtV,EAAK2f,aAAelkB,EAAIkkB,cAI1B,SAAS6S,GAAUC,EAAYnkC,EAAMyhB,EAAUsb,GAG9C/8B,EAAOX,EAAOe,MAAO,GAAIJ,GAEzB,IAAIk9B,EAAUxb,EAAOmb,EAASuH,EAAY/1B,EAAMsS,EAC/CxkB,EAAI,EACJC,EAAI+nC,EAAW/kC,OACfilC,EAAWjoC,EAAI,EACfgB,EAAQ4C,EAAM,GACdskC,EAAkBl0B,EAAYhT,GAG/B,GAAKknC,GACDloC,EAAI,GAAsB,iBAAVgB,IAChBijB,EAAQgd,YAAckG,GAAS99B,KAAMrI,GACxC,OAAO+mC,EAAWrzB,MAAM,SAAU1I,GACjC,IAAI+pB,EAAOgS,EAAWxiB,GAAIvZ,GACrBk8B,IACJtkC,EAAM,GAAM5C,EAAMd,KAAMuC,KAAMuJ,EAAO+pB,EAAKhkB,SAE3C+1B,GAAU/R,EAAMnyB,EAAMyhB,EAAUsb,MAIlC,GAAK3gC,IAEJslB,GADAwb,EAAWN,GAAe58B,EAAMmkC,EAAY,GAAI71B,eAAe,EAAO61B,EAAYpH,IACjEttB,WAEmB,IAA/BytB,EAASjW,WAAW7nB,SACxB89B,EAAWxb,GAIPA,GAASqb,GAAU,CAOvB,IALAqH,GADAvH,EAAU/b,EAAOtc,IAAK23B,GAAQe,EAAU,UAAYwG,KAC/BtkC,OAKbjD,EAAIC,EAAGD,IACdkS,EAAO6uB,EAEF/gC,IAAMkoC,IACVh2B,EAAOyS,EAAOkB,MAAO3T,GAAM,GAAM,GAG5B+1B,GAIJtjB,EAAOS,MAAOsb,EAASV,GAAQ9tB,EAAM,YAIvCoT,EAASnlB,KAAM6nC,EAAYhoC,GAAKkS,EAAMlS,GAGvC,GAAKioC,EAOJ,IANAzjB,EAAMkc,EAASA,EAAQz9B,OAAS,GAAIkP,cAGpCwS,EAAOtc,IAAKq4B,EAAS8G,IAGfxnC,EAAI,EAAGA,EAAIioC,EAAYjoC,IAC5BkS,EAAOwuB,EAAS1gC,GACX2/B,GAAYr2B,KAAM4I,EAAK0O,MAAQ,MAClCgc,EAASf,OAAQ3pB,EAAM,eACxByS,EAAOlQ,SAAU+P,EAAKtS,KAEjBA,EAAKlB,KAA8C,YAArCkB,EAAK0O,MAAQ,IAAKnO,cAG/BkS,EAAOyjB,WAAal2B,EAAKoS,UAC7BK,EAAOyjB,SAAUl2B,EAAKlB,IAAK,CAC1BqT,MAAOnS,EAAKmS,OAASnS,EAAKN,aAAc,WAI1C2S,EAASrS,EAAKkd,YAAYpkB,QAASq8B,GAAc,IAAMn1B,EAAMsS,IAQnE,OAAOwjB,EAGR,SAASt/B,GAAQmT,EAAMrW,EAAU6iC,GAKhC,IAJA,IAAIn2B,EACH8uB,EAAQx7B,EAAWmf,EAAOrJ,OAAQ9V,EAAUqW,GAASA,EACrD7b,EAAI,EAE4B,OAAvBkS,EAAO8uB,EAAOhhC,IAAeA,IAChCqoC,GAA8B,IAAlBn2B,EAAK2O,UACtB8D,EAAO2jB,UAAWtI,GAAQ9tB,IAGtBA,EAAKxK,aACJ2gC,GAAYnK,GAAYhsB,IAC5B+tB,GAAeD,GAAQ9tB,EAAM,WAE9BA,EAAKxK,WAAW8W,YAAatM,IAI/B,OAAO2J,EAGR8I,EAAO5T,OAAQ,CACdkwB,cAAe,SAAUjvB,GACxB,OAAOA,EAAKhH,QAASk8B,GAAW,cAGjCrhB,MAAO,SAAUhK,EAAM0sB,EAAeC,GACrC,IAAIxoC,EAAGC,EAAGwoC,EAAaC,EACtB7iB,EAAQhK,EAAK0D,WAAW,GACxBopB,EAASzK,GAAYriB,GAGtB,KAAMqI,EAAQid,gBAAsC,IAAlBtlB,EAAKgF,UAAoC,KAAlBhF,EAAKgF,UAC3D8D,EAAOyQ,SAAUvZ,IAMnB,IAHA6sB,EAAe1I,GAAQna,GAGjB7lB,EAAI,EAAGC,GAFbwoC,EAAczI,GAAQnkB,IAEO5Y,OAAQjD,EAAIC,EAAGD,IAC3C8nC,GAAUW,EAAazoC,GAAK0oC,EAAc1oC,IAK5C,GAAKuoC,EACJ,GAAKC,EAIJ,IAHAC,EAAcA,GAAezI,GAAQnkB,GACrC6sB,EAAeA,GAAgB1I,GAAQna,GAEjC7lB,EAAI,EAAGC,EAAIwoC,EAAYxlC,OAAQjD,EAAIC,EAAGD,IAC3CynC,GAAgBgB,EAAazoC,GAAK0oC,EAAc1oC,SAGjDynC,GAAgB5rB,EAAMgK,GAWxB,OANA6iB,EAAe1I,GAAQna,EAAO,WACZ5iB,OAAS,GAC1Bg9B,GAAeyI,GAAeC,GAAU3I,GAAQnkB,EAAM,WAIhDgK,GAGRyiB,UAAW,SAAUpjB,GAKpB,IAJA,IAAI9X,EAAMyO,EAAM+E,EACfqZ,EAAUtV,EAAO7U,MAAMmqB,QACvBj6B,EAAI,OAE6BqG,KAAxBwV,EAAOqJ,EAAOllB,IAAqBA,IAC5C,GAAKy8B,EAAY5gB,GAAS,CACzB,GAAOzO,EAAOyO,EAAM+gB,EAAS5W,SAAc,CAC1C,GAAK5Y,EAAKo1B,OACT,IAAM5hB,KAAQxT,EAAKo1B,OACbvI,EAASrZ,GACb+D,EAAO7U,MAAMpH,OAAQmT,EAAM+E,GAI3B+D,EAAO4e,YAAa1nB,EAAM+E,EAAMxT,EAAK01B,QAOxCjnB,EAAM+gB,EAAS5W,cAAY3f,EAEvBwV,EAAMghB,EAAS7W,WAInBnK,EAAMghB,EAAS7W,cAAY3f,OAOhCse,EAAO5U,GAAGgB,OAAQ,CACjB63B,OAAQ,SAAUpjC,GACjB,OAAOkD,GAAQhG,KAAM8C,GAAU,IAGhCkD,OAAQ,SAAUlD,GACjB,OAAOkD,GAAQhG,KAAM8C,IAGtBqR,KAAM,SAAU5V,GACf,OAAO46B,EAAQn5B,MAAM,SAAUzB,GAC9B,YAAiBoF,IAAVpF,EACN0jB,EAAO9N,KAAMnU,MACbA,KAAKk2B,QAAQjkB,MAAM,WACK,IAAlBjS,KAAKme,UAAoC,KAAlBne,KAAKme,UAAqC,IAAlBne,KAAKme,WACxDne,KAAK0sB,YAAcnuB,QAGpB,KAAMA,EAAO8C,UAAUd,SAG3B+a,OAAQ,WACP,OAAO+pB,GAAUrlC,KAAMqB,WAAW,SAAU8X,GACpB,IAAlBnZ,KAAKme,UAAoC,KAAlBne,KAAKme,UAAqC,IAAlBne,KAAKme,UAC3CymB,GAAoB5kC,KAAMmZ,GAChChU,YAAagU,OAKvBgtB,QAAS,WACR,OAAOd,GAAUrlC,KAAMqB,WAAW,SAAU8X,GAC3C,GAAuB,IAAlBnZ,KAAKme,UAAoC,KAAlBne,KAAKme,UAAqC,IAAlBne,KAAKme,SAAiB,CACzE,IAAIhJ,EAASyvB,GAAoB5kC,KAAMmZ,GACvChE,EAAO9E,aAAc8I,EAAMhE,EAAOvE,iBAKrCw1B,OAAQ,WACP,OAAOf,GAAUrlC,KAAMqB,WAAW,SAAU8X,GACtCnZ,KAAKgF,YACThF,KAAKgF,WAAWqL,aAAc8I,EAAMnZ,UAKvCqmC,MAAO,WACN,OAAOhB,GAAUrlC,KAAMqB,WAAW,SAAU8X,GACtCnZ,KAAKgF,YACThF,KAAKgF,WAAWqL,aAAc8I,EAAMnZ,KAAK6Q,iBAK5CqlB,MAAO,WAIN,IAHA,IAAI/c,EACH7b,EAAI,EAE2B,OAAtB6b,EAAOnZ,KAAM1C,IAAeA,IACd,IAAlB6b,EAAKgF,WAGT8D,EAAO2jB,UAAWtI,GAAQnkB,GAAM,IAGhCA,EAAKuT,YAAc,IAIrB,OAAO1sB,MAGRmjB,MAAO,SAAU0iB,EAAeC,GAI/B,OAHAD,EAAiC,MAAjBA,GAAgCA,EAChDC,EAAyC,MAArBA,EAA4BD,EAAgBC,EAEzD9lC,KAAK2F,KAAK,WAChB,OAAOsc,EAAOkB,MAAOnjB,KAAM6lC,EAAeC,OAI5Cx2B,KAAM,SAAU/Q,GACf,OAAO46B,EAAQn5B,MAAM,SAAUzB,GAC9B,IAAI4a,EAAOnZ,KAAM,IAAO,GACvB1C,EAAI,EACJC,EAAIyC,KAAKO,OAEV,QAAeoD,IAAVpF,GAAyC,IAAlB4a,EAAKgF,SAChC,OAAOhF,EAAKpT,UAIb,GAAsB,iBAAVxH,IAAuBkmC,GAAa79B,KAAMrI,KACpD2+B,IAAWF,GAASv4B,KAAMlG,IAAW,CAAE,GAAI,KAAQ,GAAIwR,eAAkB,CAE1ExR,EAAQ0jB,EAAOsc,cAAehgC,GAE9B,IACC,KAAQjB,EAAIC,EAAGD,IAIS,KAHvB6b,EAAOnZ,KAAM1C,IAAO,IAGV6gB,WACT8D,EAAO2jB,UAAWtI,GAAQnkB,GAAM,IAChCA,EAAKpT,UAAYxH,GAInB4a,EAAO,EAGN,MAAQpZ,KAGNoZ,GACJnZ,KAAKk2B,QAAQ5a,OAAQ/c,KAEpB,KAAMA,EAAO8C,UAAUd,SAG3B+lC,YAAa,WACZ,IAAIpI,EAAU,GAGd,OAAOmH,GAAUrlC,KAAMqB,WAAW,SAAU8X,GAC3C,IAAI7F,EAAStT,KAAKgF,WAEbid,EAAO+B,QAAShkB,KAAMk+B,GAAY,IACtCjc,EAAO2jB,UAAWtI,GAAQt9B,OACrBsT,GACJA,EAAOrO,aAAckU,EAAMnZ,SAK3Bk+B,MAILjc,EAAOhQ,KAAM,CACZs0B,SAAU,SACVC,UAAW,UACXn2B,aAAc,SACdo2B,YAAa,QACbC,WAAY,gBACV,SAAU7oC,EAAM8oC,GAClB1kB,EAAO5U,GAAIxP,GAAS,SAAUiF,GAO7B,IANA,IAAI0f,EACHC,EAAM,GACNpH,EAAS4G,EAAQnf,GACjBigB,EAAO1H,EAAO9a,OAAS,EACvBjD,EAAI,EAEGA,GAAKylB,EAAMzlB,IAClBklB,EAAQllB,IAAMylB,EAAO/iB,KAAOA,KAAKmjB,OAAO,GACxClB,EAAQ5G,EAAQ/d,IAAOqpC,GAAYnkB,GAInClhB,EAAKC,MAAOkhB,EAAKD,EAAMrkB,OAGxB,OAAO6B,KAAKuiB,UAAWE,OAGzB,IAAImkB,GAAY,IAAIh/B,OAAQ,KAAOyzB,GAAO,kBAAmB,KAEzDwL,GAAY,SAAU1tB,GAKxB,IAAIgqB,EAAOhqB,EAAK1J,cAAc+a,YAM9B,OAJM2Y,GAASA,EAAK2D,SACnB3D,EAAOz/B,GAGDy/B,EAAK4D,iBAAkB5tB,IAG5B6tB,GAAY,IAAIp/B,OAAQ2zB,GAAU11B,KAAM,KAAO,KAiGnD,SAASohC,GAAQ9tB,EAAMtb,EAAMqpC,GAC5B,IAAIC,EAAOC,EAAUC,EAAU5kB,EAM9Bhd,EAAQ0T,EAAK1T,MAqCd,OAnCAyhC,EAAWA,GAAYL,GAAW1tB,MAQpB,MAFbsJ,EAAMykB,EAASI,iBAAkBzpC,IAAUqpC,EAAUrpC,KAEjC29B,GAAYriB,KAC/BsJ,EAAMR,EAAOxc,MAAO0T,EAAMtb,KAQrB2jB,EAAQ+lB,kBAAoBX,GAAUhgC,KAAM6b,IAASukB,GAAUpgC,KAAM/I,KAG1EspC,EAAQ1hC,EAAM0hC,MACdC,EAAW3hC,EAAM2hC,SACjBC,EAAW5hC,EAAM4hC,SAGjB5hC,EAAM2hC,SAAW3hC,EAAM4hC,SAAW5hC,EAAM0hC,MAAQ1kB,EAChDA,EAAMykB,EAASC,MAGf1hC,EAAM0hC,MAAQA,EACd1hC,EAAM2hC,SAAWA,EACjB3hC,EAAM4hC,SAAWA,SAIJ1jC,IAAR8e,EAINA,EAAM,GACNA,EAIF,SAAS+kB,GAAcC,EAAaC,GAGnC,MAAO,CACNvpC,IAAK,WACJ,IAAKspC,IASL,OAASznC,KAAK7B,IAAMupC,GAASnmC,MAAOvB,KAAMqB,kBALlCrB,KAAK7B,OA3JhB,WAIC,SAASwpC,IAGR,GAAM7J,EAAN,CAIAzuB,EAAU5J,MAAMK,QAAU,+EAE1Bg4B,EAAIr4B,MAAMK,QACT,4HAGD+J,GAAgB1K,YAAakK,GAAYlK,YAAa24B,GAEtD,IAAI8J,EAAWlkC,EAAOqjC,iBAAkBjJ,GACxC+J,EAAoC,OAAjBD,EAASnd,IAG5Bqd,EAAsE,KAA9CC,EAAoBH,EAASI,YAIrDlK,EAAIr4B,MAAMwiC,MAAQ,MAClBC,EAA6D,KAAzCH,EAAoBH,EAASK,OAIjDE,EAAgE,KAAzCJ,EAAoBH,EAAST,OAMpDrJ,EAAIr4B,MAAM2iC,SAAW,WACrBC,EAAiE,KAA9CN,EAAoBjK,EAAIwK,YAAc,GAEzDz4B,GAAgBiM,YAAazM,GAI7ByuB,EAAM,MAGP,SAASiK,EAAoBQ,GAC5B,OAAOhlB,KAAKilB,MAAOC,WAAYF,IAGhC,IAAIV,EAAkBM,EAAsBE,EAAkBH,EAC7DJ,EACAz4B,EAAYrM,EAASoB,cAAe,OACpC05B,EAAM96B,EAASoB,cAAe,OAGzB05B,EAAIr4B,QAMVq4B,EAAIr4B,MAAMijC,eAAiB,cAC3B5K,EAAIjhB,WAAW,GAAOpX,MAAMijC,eAAiB,GAC7ClnB,EAAQmnB,gBAA+C,gBAA7B7K,EAAIr4B,MAAMijC,eAEpCzmB,EAAO5T,OAAQmT,EAAS,CACvBonB,kBAAmB,WAElB,OADAjB,IACOQ,GAERZ,eAAgB,WAEf,OADAI,IACOO,GAERW,cAAe,WAEd,OADAlB,IACOE,GAERiB,mBAAoB,WAEnB,OADAnB,IACOG,GAERiB,cAAe,WAEd,OADApB,IACOU,MAvFV,GAsKA,IAAIW,GAAc,CAAE,SAAU,MAAO,MACpCC,GAAajmC,EAASoB,cAAe,OAAQqB,MAC7CyjC,GAAc,GAkBf,SAASC,GAAetrC,GACvB,IAAIurC,EAAQnnB,EAAOonB,SAAUxrC,IAAUqrC,GAAarrC,GAEpD,OAAKurC,IAGAvrC,KAAQorC,GACLprC,EAEDqrC,GAAarrC,GAxBrB,SAAyBA,GAMxB,IAHA,IAAIyrC,EAAUzrC,EAAM,GAAI0U,cAAgB1U,EAAKyI,MAAO,GACnDhJ,EAAI0rC,GAAYzoC,OAETjD,KAEP,IADAO,EAAOmrC,GAAa1rC,GAAMgsC,KACbL,GACZ,OAAOprC,EAeoB0rC,CAAgB1rC,IAAUA,GAIxD,IAKC2rC,GAAe,4BACfC,GAAc,MACdC,GAAU,CAAEtB,SAAU,WAAYuB,WAAY,SAAU36B,QAAS,SACjE46B,GAAqB,CACpBC,cAAe,IACfC,WAAY,OAGd,SAASC,GAAmB5wB,EAAM5a,EAAOyrC,GAIxC,IAAI5lB,EAAUkX,GAAQ72B,KAAMlG,GAC5B,OAAO6lB,EAGNb,KAAK0mB,IAAK,EAAG7lB,EAAS,IAAQ4lB,GAAY,KAAU5lB,EAAS,IAAO,MACpE7lB,EAGF,SAAS2rC,GAAoB/wB,EAAMgxB,EAAWC,EAAKC,EAAaC,EAAQC,GACvE,IAAIjtC,EAAkB,UAAd6sC,EAAwB,EAAI,EACnCK,EAAQ,EACRC,EAAQ,EAGT,GAAKL,KAAUC,EAAc,SAAW,WACvC,OAAO,EAGR,KAAQ/sC,EAAI,EAAGA,GAAK,EAGN,WAAR8sC,IACJK,GAASxoB,EAAO1c,IAAK4T,EAAMixB,EAAM7O,GAAWj+B,IAAK,EAAMgtC,IAIlDD,GAmBQ,YAARD,IACJK,GAASxoB,EAAO1c,IAAK4T,EAAM,UAAYoiB,GAAWj+B,IAAK,EAAMgtC,IAIjD,WAARF,IACJK,GAASxoB,EAAO1c,IAAK4T,EAAM,SAAWoiB,GAAWj+B,GAAM,SAAS,EAAMgtC,MAtBvEG,GAASxoB,EAAO1c,IAAK4T,EAAM,UAAYoiB,GAAWj+B,IAAK,EAAMgtC,GAGhD,YAARF,EACJK,GAASxoB,EAAO1c,IAAK4T,EAAM,SAAWoiB,GAAWj+B,GAAM,SAAS,EAAMgtC,GAItEE,GAASvoB,EAAO1c,IAAK4T,EAAM,SAAWoiB,GAAWj+B,GAAM,SAAS,EAAMgtC,IAoCzE,OAhBMD,GAAeE,GAAe,IAInCE,GAASlnB,KAAK0mB,IAAK,EAAG1mB,KAAKmnB,KAC1BvxB,EAAM,SAAWgxB,EAAW,GAAI53B,cAAgB43B,EAAU7jC,MAAO,IACjEikC,EACAE,EACAD,EACA,MAIM,GAGDC,EAGR,SAASE,GAAkBxxB,EAAMgxB,EAAWK,GAG3C,IAAIF,EAASzD,GAAW1tB,GAKvBkxB,IADmB7oB,EAAQonB,qBAAuB4B,IAEE,eAAnDvoB,EAAO1c,IAAK4T,EAAM,aAAa,EAAOmxB,GACvCM,EAAmBP,EAEnB9lC,EAAM0iC,GAAQ9tB,EAAMgxB,EAAWG,GAC/BO,EAAa,SAAWV,EAAW,GAAI53B,cAAgB43B,EAAU7jC,MAAO,GAIzE,GAAKsgC,GAAUhgC,KAAMrC,GAAQ,CAC5B,IAAMimC,EACL,OAAOjmC,EAERA,EAAM,OAgCP,QApBQid,EAAQonB,qBAAuByB,GAC9B,SAAR9lC,IACCkkC,WAAYlkC,IAA0D,WAAjD0d,EAAO1c,IAAK4T,EAAM,WAAW,EAAOmxB,KAC1DnxB,EAAK2xB,iBAAiBvqC,SAEtB8pC,EAAiE,eAAnDpoB,EAAO1c,IAAK4T,EAAM,aAAa,EAAOmxB,IAKpDM,EAAmBC,KAAc1xB,KAEhC5U,EAAM4U,EAAM0xB,MAKdtmC,EAAMkkC,WAAYlkC,IAAS,GAI1B2lC,GACC/wB,EACAgxB,EACAK,IAAWH,EAAc,SAAW,WACpCO,EACAN,EAGA/lC,GAEE,KA+SL,SAASwmC,GAAO5xB,EAAM9G,EAAS7B,EAAMrJ,EAAK6jC,GACzC,OAAO,IAAID,GAAM7rC,UAAU0b,KAAMzB,EAAM9G,EAAS7B,EAAMrJ,EAAK6jC,GA7S5D/oB,EAAO5T,OAAQ,CAId48B,SAAU,CACTC,QAAS,CACR/sC,IAAK,SAAUgb,EAAM+tB,GACpB,GAAKA,EAAW,CAGf,IAAIzkB,EAAMwkB,GAAQ9tB,EAAM,WACxB,MAAe,KAARsJ,EAAa,IAAMA,MAO9B6Z,UAAW,CACV,yBAA2B,EAC3B,aAAe,EACf,aAAe,EACf,UAAY,EACZ,YAAc,EACd,YAAc,EACd,UAAY,EACZ,YAAc,EACd,eAAiB,EACjB,iBAAmB,EACnB,SAAW,EACX,YAAc,EACd,cAAgB,EAChB,YAAc,EACd,SAAW,EACX,OAAS,EACT,SAAW,EACX,QAAU,EACV,QAAU,EACV,MAAQ,GAKT+M,SAAU,GAGV5jC,MAAO,SAAU0T,EAAMtb,EAAMU,EAAOisC,GAGnC,GAAMrxB,GAA0B,IAAlBA,EAAKgF,UAAoC,IAAlBhF,EAAKgF,UAAmBhF,EAAK1T,MAAlE,CAKA,IAAIgd,EAAKvE,EAAM4c,EACdqQ,EAAWtR,EAAWh8B,GACtButC,EAAe3B,GAAY7iC,KAAM/I,GACjC4H,EAAQ0T,EAAK1T,MAad,GARM2lC,IACLvtC,EAAOsrC,GAAegC,IAIvBrQ,EAAQ7Y,EAAOgpB,SAAUptC,IAAUokB,EAAOgpB,SAAUE,QAGrCxnC,IAAVpF,EA0CJ,OAAKu8B,GAAS,QAASA,QACwBn3B,KAA5C8e,EAAMqY,EAAM38B,IAAKgb,GAAM,EAAOqxB,IAEzB/nB,EAIDhd,EAAO5H,GA7CA,YAHdqgB,SAAc3f,KAGckkB,EAAM6Y,GAAQ72B,KAAMlG,KAAakkB,EAAK,KACjElkB,EAAQs9B,GAAW1iB,EAAMtb,EAAM4kB,GAG/BvE,EAAO,UAIM,MAAT3f,GAAiBA,GAAUA,IAOlB,WAAT2f,GAAsBktB,IAC1B7sC,GAASkkB,GAAOA,EAAK,KAASR,EAAOqa,UAAW6O,GAAa,GAAK,OAI7D3pB,EAAQmnB,iBAA6B,KAAVpqC,GAAiD,IAAjCV,EAAKqJ,QAAS,gBAC9DzB,EAAO5H,GAAS,WAIXi9B,GAAY,QAASA,QACsBn3B,KAA9CpF,EAAQu8B,EAAM1wB,IAAK+O,EAAM5a,EAAOisC,MAE7BY,EACJ3lC,EAAM4lC,YAAaxtC,EAAMU,GAEzBkH,EAAO5H,GAASU,MAkBpBgH,IAAK,SAAU4T,EAAMtb,EAAM2sC,EAAOF,GACjC,IAAI/lC,EAAK+d,EAAKwY,EACbqQ,EAAWtR,EAAWh8B,GA6BvB,OA5BgB4rC,GAAY7iC,KAAM/I,KAMjCA,EAAOsrC,GAAegC,KAIvBrQ,EAAQ7Y,EAAOgpB,SAAUptC,IAAUokB,EAAOgpB,SAAUE,KAGtC,QAASrQ,IACtBv2B,EAAMu2B,EAAM38B,IAAKgb,GAAM,EAAMqxB,SAIjB7mC,IAARY,IACJA,EAAM0iC,GAAQ9tB,EAAMtb,EAAMysC,IAId,WAAR/lC,GAAoB1G,KAAQ+rC,KAChCrlC,EAAMqlC,GAAoB/rC,IAIZ,KAAV2sC,GAAgBA,GACpBloB,EAAMmmB,WAAYlkC,IACD,IAAVimC,GAAkBc,SAAUhpB,GAAQA,GAAO,EAAI/d,GAGhDA,KAIT0d,EAAOhQ,KAAM,CAAE,SAAU,UAAW,SAAU3U,EAAG6sC,GAChDloB,EAAOgpB,SAAUd,GAAc,CAC9BhsC,IAAK,SAAUgb,EAAM+tB,EAAUsD,GAC9B,GAAKtD,EAIJ,OAAOsC,GAAa5iC,KAAMqb,EAAO1c,IAAK4T,EAAM,aAQxCA,EAAK2xB,iBAAiBvqC,QAAW4Y,EAAKoyB,wBAAwBpE,MAIhEwD,GAAkBxxB,EAAMgxB,EAAWK,GAHnC5O,GAAMziB,EAAMuwB,IAAS,WACpB,OAAOiB,GAAkBxxB,EAAMgxB,EAAWK,OAM/CpgC,IAAK,SAAU+O,EAAM5a,EAAOisC,GAC3B,IAAIpmB,EACHkmB,EAASzD,GAAW1tB,GAIpBqyB,GAAsBhqB,EAAQunB,iBACT,aAApBuB,EAAOlC,SAIRiC,GADkBmB,GAAsBhB,IAEY,eAAnDvoB,EAAO1c,IAAK4T,EAAM,aAAa,EAAOmxB,GACvCN,EAAWQ,EACVN,GACC/wB,EACAgxB,EACAK,EACAH,EACAC,GAED,EAqBF,OAjBKD,GAAemB,IACnBxB,GAAYzmB,KAAKmnB,KAChBvxB,EAAM,SAAWgxB,EAAW,GAAI53B,cAAgB43B,EAAU7jC,MAAO,IACjEmiC,WAAY6B,EAAQH,IACpBD,GAAoB/wB,EAAMgxB,EAAW,UAAU,EAAOG,GACtD,KAKGN,IAAc5lB,EAAUkX,GAAQ72B,KAAMlG,KACb,QAA3B6lB,EAAS,IAAO,QAElBjL,EAAK1T,MAAO0kC,GAAc5rC,EAC1BA,EAAQ0jB,EAAO1c,IAAK4T,EAAMgxB,IAGpBJ,GAAmB5wB,EAAM5a,EAAOyrC,QAK1C/nB,EAAOgpB,SAASjD,WAAaR,GAAchmB,EAAQsnB,oBAClD,SAAU3vB,EAAM+tB,GACf,GAAKA,EACJ,OAASuB,WAAYxB,GAAQ9tB,EAAM,gBAClCA,EAAKoyB,wBAAwBE,KAC5B7P,GAAMziB,EAAM,CAAE6uB,WAAY,IAAK,WAC9B,OAAO7uB,EAAKoyB,wBAAwBE,SAElC,QAMRxpB,EAAOhQ,KAAM,CACZy5B,OAAQ,GACRC,QAAS,GACTC,OAAQ,UACN,SAAUC,EAAQC,GACpB7pB,EAAOgpB,SAAUY,EAASC,GAAW,CACpCC,OAAQ,SAAUxtC,GAOjB,IANA,IAAIjB,EAAI,EACP0uC,EAAW,GAGX5iC,EAAyB,iBAAV7K,EAAqBA,EAAMoK,MAAO,KAAQ,CAAEpK,GAEpDjB,EAAI,EAAGA,IACd0uC,EAAUH,EAAStQ,GAAWj+B,GAAMwuC,GACnC1iC,EAAO9L,IAAO8L,EAAO9L,EAAI,IAAO8L,EAAO,GAGzC,OAAO4iC,IAIO,WAAXH,IACJ5pB,EAAOgpB,SAAUY,EAASC,GAAS1hC,IAAM2/B,OAI3C9nB,EAAO5U,GAAGgB,OAAQ,CACjB9I,IAAK,SAAU1H,EAAMU,GACpB,OAAO46B,EAAQn5B,MAAM,SAAUmZ,EAAMtb,EAAMU,GAC1C,IAAI+rC,EAAQ3pC,EACXgF,EAAM,GACNrI,EAAI,EAEL,GAAK8D,MAAMuQ,QAAS9T,GAAS,CAI5B,IAHAysC,EAASzD,GAAW1tB,GACpBxY,EAAM9C,EAAK0C,OAEHjD,EAAIqD,EAAKrD,IAChBqI,EAAK9H,EAAMP,IAAQ2kB,EAAO1c,IAAK4T,EAAMtb,EAAMP,IAAK,EAAOgtC,GAGxD,OAAO3kC,EAGR,YAAiBhC,IAAVpF,EACN0jB,EAAOxc,MAAO0T,EAAMtb,EAAMU,GAC1B0jB,EAAO1c,IAAK4T,EAAMtb,KACjBA,EAAMU,EAAO8C,UAAUd,OAAS,MAQrC0hB,EAAO8oB,MAAQA,GAEfA,GAAM7rC,UAAY,CACjB8Z,YAAa+xB,GACbnwB,KAAM,SAAUzB,EAAM9G,EAAS7B,EAAMrJ,EAAK6jC,EAAQ3O,GACjDr8B,KAAKmZ,KAAOA,EACZnZ,KAAKwQ,KAAOA,EACZxQ,KAAKgrC,OAASA,GAAU/oB,EAAO+oB,OAAO3N,SACtCr9B,KAAKqS,QAAUA,EACfrS,KAAK6G,MAAQ7G,KAAKsiC,IAAMtiC,KAAK0pB,MAC7B1pB,KAAKmH,IAAMA,EACXnH,KAAKq8B,KAAOA,IAAUpa,EAAOqa,UAAW9rB,GAAS,GAAK,OAEvDkZ,IAAK,WACJ,IAAIoR,EAAQiQ,GAAMkB,UAAWjsC,KAAKwQ,MAElC,OAAOsqB,GAASA,EAAM38B,IACrB28B,EAAM38B,IAAK6B,MACX+qC,GAAMkB,UAAU5O,SAASl/B,IAAK6B,OAEhCY,IAAK,SAAUsrC,GACd,IAAIC,EACHrR,EAAQiQ,GAAMkB,UAAWjsC,KAAKwQ,MAoB/B,OAlBKxQ,KAAKqS,QAAQ+5B,SACjBpsC,KAAK2G,IAAMwlC,EAAQlqB,EAAO+oB,OAAQhrC,KAAKgrC,QACtCkB,EAASlsC,KAAKqS,QAAQ+5B,SAAWF,EAAS,EAAG,EAAGlsC,KAAKqS,QAAQ+5B,UAG9DpsC,KAAK2G,IAAMwlC,EAAQD,EAEpBlsC,KAAKsiC,KAAQtiC,KAAKmH,IAAMnH,KAAK6G,OAAUslC,EAAQnsC,KAAK6G,MAE/C7G,KAAKqS,QAAQg6B,MACjBrsC,KAAKqS,QAAQg6B,KAAK5uC,KAAMuC,KAAKmZ,KAAMnZ,KAAKsiC,IAAKtiC,MAGzC86B,GAASA,EAAM1wB,IACnB0wB,EAAM1wB,IAAKpK,MAEX+qC,GAAMkB,UAAU5O,SAASjzB,IAAKpK,MAExBA,OAIT+qC,GAAM7rC,UAAU0b,KAAK1b,UAAY6rC,GAAM7rC,UAEvC6rC,GAAMkB,UAAY,CACjB5O,SAAU,CACTl/B,IAAK,SAAU49B,GACd,IAAI3O,EAIJ,OAA6B,IAAxB2O,EAAM5iB,KAAKgF,UACa,MAA5B4d,EAAM5iB,KAAM4iB,EAAMvrB,OAAoD,MAAlCurB,EAAM5iB,KAAK1T,MAAOs2B,EAAMvrB,MACrDurB,EAAM5iB,KAAM4iB,EAAMvrB,OAO1B4c,EAASnL,EAAO1c,IAAKw2B,EAAM5iB,KAAM4iB,EAAMvrB,KAAM,MAGhB,SAAX4c,EAAwBA,EAAJ,GAEvChjB,IAAK,SAAU2xB,GAKT9Z,EAAOqqB,GAAGD,KAAMtQ,EAAMvrB,MAC1ByR,EAAOqqB,GAAGD,KAAMtQ,EAAMvrB,MAAQurB,GACK,IAAxBA,EAAM5iB,KAAKgF,WACrB8D,EAAOgpB,SAAUlP,EAAMvrB,OAC4B,MAAnDurB,EAAM5iB,KAAK1T,MAAO0jC,GAAepN,EAAMvrB,OAGxCurB,EAAM5iB,KAAM4iB,EAAMvrB,MAASurB,EAAMuG,IAFjCrgB,EAAOxc,MAAOs2B,EAAM5iB,KAAM4iB,EAAMvrB,KAAMurB,EAAMuG,IAAMvG,EAAMM,SAU5D0O,GAAMkB,UAAUM,UAAYxB,GAAMkB,UAAUO,WAAa,CACxDpiC,IAAK,SAAU2xB,GACTA,EAAM5iB,KAAKgF,UAAY4d,EAAM5iB,KAAKnU,aACtC+2B,EAAM5iB,KAAM4iB,EAAMvrB,MAASurB,EAAMuG,OAKpCrgB,EAAO+oB,OAAS,CACfyB,OAAQ,SAAUrtC,GACjB,OAAOA,GAERstC,MAAO,SAAUttC,GAChB,MAAO,GAAMmkB,KAAKopB,IAAKvtC,EAAImkB,KAAKqpB,IAAO,GAExCvP,SAAU,SAGXpb,EAAOqqB,GAAKvB,GAAM7rC,UAAU0b,KAG5BqH,EAAOqqB,GAAGD,KAAO,GAKjB,IACCQ,GAAOC,GACPC,GAAW,yBACXC,GAAO,cAER,SAASC,KACHH,MACqB,IAApB9pC,EAASiM,QAAoBvL,EAAOwpC,sBACxCxpC,EAAOwpC,sBAAuBD,IAE9BvpC,EAAO5D,WAAYmtC,GAAUhrB,EAAOqqB,GAAGa,UAGxClrB,EAAOqqB,GAAGc,QAKZ,SAASC,KAIR,OAHA3pC,EAAO5D,YAAY,WAClB+sC,QAAQlpC,KAEAkpC,GAAQtnB,KAAK+c,MAIvB,SAASgL,GAAOpvB,EAAMqvB,GACrB,IAAIl4B,EACH/X,EAAI,EACJya,EAAQ,CAAEy1B,OAAQtvB,GAKnB,IADAqvB,EAAeA,EAAe,EAAI,EAC1BjwC,EAAI,EAAGA,GAAK,EAAIiwC,EAEvBx1B,EAAO,UADP1C,EAAQkmB,GAAWj+B,KACSya,EAAO,UAAY1C,GAAU6I,EAO1D,OAJKqvB,IACJx1B,EAAMmzB,QAAUnzB,EAAMovB,MAAQjpB,GAGxBnG,EAGR,SAAS01B,GAAalvC,EAAOiS,EAAMk9B,GAKlC,IAJA,IAAI3R,EACHuJ,GAAeqI,GAAUC,SAAUp9B,IAAU,IAAKhQ,OAAQmtC,GAAUC,SAAU,MAC9ErkC,EAAQ,EACRhJ,EAAS+kC,EAAW/kC,OACbgJ,EAAQhJ,EAAQgJ,IACvB,GAAOwyB,EAAQuJ,EAAY/7B,GAAQ9L,KAAMiwC,EAAWl9B,EAAMjS,GAGzD,OAAOw9B,EAsNV,SAAS4R,GAAWx0B,EAAM00B,EAAYx7B,GACrC,IAAI+a,EACH0gB,EACAvkC,EAAQ,EACRhJ,EAASotC,GAAUI,WAAWxtC,OAC9Bo2B,EAAW1U,EAAOqU,WAAWI,QAAQ,kBAG7B0W,EAAKj0B,QAEbi0B,EAAO,WACN,GAAKU,EACJ,OAAO,EAYR,IAVA,IAAIE,EAAcnB,IAASQ,KAC1BjV,EAAY7U,KAAK0mB,IAAK,EAAGyD,EAAUO,UAAYP,EAAUtB,SAAW4B,GAKpE9B,EAAU,GADH9T,EAAYsV,EAAUtB,UAAY,GAEzC7iC,EAAQ,EACRhJ,EAASmtC,EAAUQ,OAAO3tC,OAEnBgJ,EAAQhJ,EAAQgJ,IACvBmkC,EAAUQ,OAAQ3kC,GAAQ3I,IAAKsrC,GAMhC,OAHAvV,EAASgB,WAAYxe,EAAM,CAAEu0B,EAAWxB,EAAS9T,IAG5C8T,EAAU,GAAK3rC,EACZ63B,GAIF73B,GACLo2B,EAASgB,WAAYxe,EAAM,CAAEu0B,EAAW,EAAG,IAI5C/W,EAASiB,YAAaze,EAAM,CAAEu0B,KACvB,IAERA,EAAY/W,EAAStB,QAAS,CAC7Blc,KAAMA,EACNmB,MAAO2H,EAAO5T,OAAQ,GAAIw/B,GAC1B73B,KAAMiM,EAAO5T,QAAQ,EAAM,CAC1B8/B,cAAe,GACfnD,OAAQ/oB,EAAO+oB,OAAO3N,UACpBhrB,GACH+7B,mBAAoBP,EACpBQ,gBAAiBh8B,EACjB47B,UAAWpB,IAASQ,KACpBjB,SAAU/5B,EAAQ+5B,SAClB8B,OAAQ,GACRT,YAAa,SAAUj9B,EAAMrJ,GAC5B,IAAI40B,EAAQ9Z,EAAO8oB,MAAO5xB,EAAMu0B,EAAU13B,KAAMxF,EAAMrJ,EACpDumC,EAAU13B,KAAKm4B,cAAe39B,IAAUk9B,EAAU13B,KAAKg1B,QAEzD,OADA0C,EAAUQ,OAAO5sC,KAAMy6B,GAChBA,GAERf,KAAM,SAAUsT,GACf,IAAI/kC,EAAQ,EAIXhJ,EAAS+tC,EAAUZ,EAAUQ,OAAO3tC,OAAS,EAC9C,GAAKutC,EACJ,OAAO9tC,KAGR,IADA8tC,GAAU,EACFvkC,EAAQhJ,EAAQgJ,IACvBmkC,EAAUQ,OAAQ3kC,GAAQ3I,IAAK,GAUhC,OANK0tC,GACJ3X,EAASgB,WAAYxe,EAAM,CAAEu0B,EAAW,EAAG,IAC3C/W,EAASiB,YAAaze,EAAM,CAAEu0B,EAAWY,KAEzC3X,EAASoB,WAAY5e,EAAM,CAAEu0B,EAAWY,IAElCtuC,QAGTsa,EAAQozB,EAAUpzB,MAInB,KA/HD,SAAqBA,EAAO6zB,GAC3B,IAAI5kC,EAAO1L,EAAMmtC,EAAQzsC,EAAOu8B,EAGhC,IAAMvxB,KAAS+Q,EAed,GAbA0wB,EAASmD,EADTtwC,EAAOg8B,EAAWtwB,IAElBhL,EAAQ+b,EAAO/Q,GACVnI,MAAMuQ,QAASpT,KACnBysC,EAASzsC,EAAO,GAChBA,EAAQ+b,EAAO/Q,GAAUhL,EAAO,IAG5BgL,IAAU1L,IACdyc,EAAOzc,GAASU,SACT+b,EAAO/Q,KAGfuxB,EAAQ7Y,EAAOgpB,SAAUptC,KACX,WAAYi9B,EAMzB,IAAMvxB,KALNhL,EAAQu8B,EAAMiR,OAAQxtC,UACf+b,EAAOzc,GAICU,EACNgL,KAAS+Q,IAChBA,EAAO/Q,GAAUhL,EAAOgL,GACxB4kC,EAAe5kC,GAAUyhC,QAI3BmD,EAAetwC,GAASmtC,EA6F1BuD,CAAYj0B,EAAOozB,EAAU13B,KAAKm4B,eAE1B5kC,EAAQhJ,EAAQgJ,IAEvB,GADA6jB,EAASugB,GAAUI,WAAYxkC,GAAQ9L,KAAMiwC,EAAWv0B,EAAMmB,EAAOozB,EAAU13B,MAM9E,OAJKzE,EAAY6b,EAAO4N,QACvB/Y,EAAO8Y,YAAa2S,EAAUv0B,KAAMu0B,EAAU13B,KAAK7V,OAAQ66B,KAC1D5N,EAAO4N,KAAKl8B,KAAMsuB,IAEbA,EAyBT,OArBAnL,EAAOtc,IAAK2U,EAAOmzB,GAAaC,GAE3Bn8B,EAAYm8B,EAAU13B,KAAKnP,QAC/B6mC,EAAU13B,KAAKnP,MAAMpJ,KAAM0b,EAAMu0B,GAIlCA,EACE1W,SAAU0W,EAAU13B,KAAKghB,UACzBtR,KAAMgoB,EAAU13B,KAAK0P,KAAMgoB,EAAU13B,KAAKw4B,UAC1ClZ,KAAMoY,EAAU13B,KAAKsf,MACrBoB,OAAQgX,EAAU13B,KAAK0gB,QAEzBzU,EAAOqqB,GAAGmC,MACTxsB,EAAO5T,OAAQ++B,EAAM,CACpBj0B,KAAMA,EACNu1B,KAAMhB,EACNvtC,MAAOutC,EAAU13B,KAAK7V,SAIjButC,EAGRzrB,EAAO0rB,UAAY1rB,EAAO5T,OAAQs/B,GAAW,CAE5CC,SAAU,CACT,IAAK,CAAE,SAAUp9B,EAAMjS,GACtB,IAAIw9B,EAAQ/7B,KAAKytC,YAAaj9B,EAAMjS,GAEpC,OADAs9B,GAAWE,EAAM5iB,KAAM3I,EAAM8qB,GAAQ72B,KAAMlG,GAASw9B,GAC7CA,KAIT4S,QAAS,SAAUr0B,EAAOsI,GACpBrR,EAAY+I,IAChBsI,EAAWtI,EACXA,EAAQ,CAAE,MAEVA,EAAQA,EAAMtT,MAAO4tB,GAOtB,IAJA,IAAIpkB,EACHjH,EAAQ,EACRhJ,EAAS+Z,EAAM/Z,OAERgJ,EAAQhJ,EAAQgJ,IACvBiH,EAAO8J,EAAO/Q,GACdokC,GAAUC,SAAUp9B,GAASm9B,GAAUC,SAAUp9B,IAAU,GAC3Dm9B,GAAUC,SAAUp9B,GAAOyb,QAASrJ,IAItCmrB,WAAY,CA3Wb,SAA2B50B,EAAMmB,EAAOtE,GACvC,IAAIxF,EAAMjS,EAAOu+B,EAAQhC,EAAO8T,EAASC,EAAWC,EAAgB9/B,EACnE+/B,EAAQ,UAAWz0B,GAAS,WAAYA,EACxCo0B,EAAO1uC,KACPskC,EAAO,GACP7+B,EAAQ0T,EAAK1T,MACbwJ,EAASkK,EAAKgF,UAAYwd,GAAoBxiB,GAC9C61B,EAAW9U,EAAS/7B,IAAKgb,EAAM,UA6BhC,IAAM3I,KA1BAwF,EAAK7V,QAEa,OADvB26B,EAAQ7Y,EAAO8Y,YAAa5hB,EAAM,OACvB81B,WACVnU,EAAMmU,SAAW,EACjBL,EAAU9T,EAAM5E,MAAMF,KACtB8E,EAAM5E,MAAMF,KAAO,WACZ8E,EAAMmU,UACXL,MAIH9T,EAAMmU,WAENP,EAAKhY,QAAQ,WAGZgY,EAAKhY,QAAQ,WACZoE,EAAMmU,WACAhtB,EAAO9hB,MAAOgZ,EAAM,MAAO5Y,QAChCu6B,EAAM5E,MAAMF,cAOF1b,EAEb,GADA/b,EAAQ+b,EAAO9J,GACVu8B,GAASnmC,KAAMrI,GAAU,CAG7B,UAFO+b,EAAO9J,GACdssB,EAASA,GAAoB,WAAVv+B,EACdA,KAAY0Q,EAAS,OAAS,QAAW,CAI7C,GAAe,SAAV1Q,IAAoBywC,QAAiCrrC,IAArBqrC,EAAUx+B,GAK9C,SAJAvB,GAAS,EAOXq1B,EAAM9zB,GAASw+B,GAAYA,EAAUx+B,IAAUyR,EAAOxc,MAAO0T,EAAM3I,GAMrE,IADAq+B,GAAa5sB,EAAO2B,cAAetJ,MAChB2H,EAAO2B,cAAe0gB,GA8DzC,IAAM9zB,KAzDDu+B,GAA2B,IAAlB51B,EAAKgF,WAMlBnI,EAAKk5B,SAAW,CAAEzpC,EAAMypC,SAAUzpC,EAAM0pC,UAAW1pC,EAAM2pC,WAIlC,OADvBN,EAAiBE,GAAYA,EAAShgC,WAErC8/B,EAAiB5U,EAAS/7B,IAAKgb,EAAM,YAGrB,UADjBnK,EAAUiT,EAAO1c,IAAK4T,EAAM,cAEtB21B,EACJ9/B,EAAU8/B,GAIVnS,GAAU,CAAExjB,IAAQ,GACpB21B,EAAiB31B,EAAK1T,MAAMuJ,SAAW8/B,EACvC9/B,EAAUiT,EAAO1c,IAAK4T,EAAM,WAC5BwjB,GAAU,CAAExjB,OAKG,WAAZnK,GAAoC,iBAAZA,GAAgD,MAAlB8/B,IACrB,SAAhC7sB,EAAO1c,IAAK4T,EAAM,WAGhB01B,IACLH,EAAKhpB,MAAM,WACVjgB,EAAMuJ,QAAU8/B,KAEM,MAAlBA,IACJ9/B,EAAUvJ,EAAMuJ,QAChB8/B,EAA6B,SAAZ9/B,EAAqB,GAAKA,IAG7CvJ,EAAMuJ,QAAU,iBAKdgH,EAAKk5B,WACTzpC,EAAMypC,SAAW,SACjBR,EAAKhY,QAAQ,WACZjxB,EAAMypC,SAAWl5B,EAAKk5B,SAAU,GAChCzpC,EAAM0pC,UAAYn5B,EAAKk5B,SAAU,GACjCzpC,EAAM2pC,UAAYp5B,EAAKk5B,SAAU,OAKnCL,GAAY,EACEvK,EAGPuK,IACAG,EACC,WAAYA,IAChB//B,EAAS+/B,EAAS//B,QAGnB+/B,EAAW9U,EAASf,OAAQhgB,EAAM,SAAU,CAAEnK,QAAS8/B,IAInDhS,IACJkS,EAAS//B,QAAUA,GAIfA,GACJ0tB,GAAU,CAAExjB,IAAQ,GAKrBu1B,EAAKhpB,MAAM,WASV,IAAMlV,KAJAvB,GACL0tB,GAAU,CAAExjB,IAEb+gB,EAASl0B,OAAQmT,EAAM,UACTmrB,EACbriB,EAAOxc,MAAO0T,EAAM3I,EAAM8zB,EAAM9zB,QAMnCq+B,EAAYpB,GAAax+B,EAAS+/B,EAAUx+B,GAAS,EAAGA,EAAMk+B,GACtDl+B,KAAQw+B,IACfA,EAAUx+B,GAASq+B,EAAUhoC,MACxBoI,IACJ4/B,EAAU1nC,IAAM0nC,EAAUhoC,MAC1BgoC,EAAUhoC,MAAQ,MAuMrBwoC,UAAW,SAAUzsB,EAAUujB,GACzBA,EACJwH,GAAUI,WAAW9hB,QAASrJ,GAE9B+qB,GAAUI,WAAWzsC,KAAMshB,MAK9BX,EAAOqtB,MAAQ,SAAUA,EAAOtE,EAAQ39B,GACvC,IAAIkiC,EAAMD,GAA0B,iBAAVA,EAAqBrtB,EAAO5T,OAAQ,GAAIihC,GAAU,CAC3Ed,SAAUnhC,IAAOA,GAAM29B,GACtBz5B,EAAY+9B,IAAWA,EACxBlD,SAAUkD,EACVtE,OAAQ39B,GAAM29B,GAAUA,IAAWz5B,EAAYy5B,IAAYA,GAoC5D,OAhCK/oB,EAAOqqB,GAAGrqC,IACdstC,EAAInD,SAAW,EAGc,iBAAjBmD,EAAInD,WACVmD,EAAInD,YAAYnqB,EAAOqqB,GAAGkD,OAC9BD,EAAInD,SAAWnqB,EAAOqqB,GAAGkD,OAAQD,EAAInD,UAGrCmD,EAAInD,SAAWnqB,EAAOqqB,GAAGkD,OAAOnS,UAMjB,MAAbkS,EAAIpvC,QAA+B,IAAdovC,EAAIpvC,QAC7BovC,EAAIpvC,MAAQ,MAIbovC,EAAIpyB,IAAMoyB,EAAIf,SAEde,EAAIf,SAAW,WACTj9B,EAAYg+B,EAAIpyB,MACpBoyB,EAAIpyB,IAAI1f,KAAMuC,MAGVuvC,EAAIpvC,OACR8hB,EAAO2Y,QAAS56B,KAAMuvC,EAAIpvC,QAIrBovC,GAGRttB,EAAO5U,GAAGgB,OAAQ,CACjBohC,OAAQ,SAAUH,EAAOI,EAAI1E,EAAQpoB,GAGpC,OAAO5iB,KAAK4Y,OAAQ+iB,IAAqBp2B,IAAK,UAAW,GAAIwJ,OAG3D5H,MAAMwoC,QAAS,CAAEzE,QAASwE,GAAMJ,EAAOtE,EAAQpoB,IAElD+sB,QAAS,SAAUn/B,EAAM8+B,EAAOtE,EAAQpoB,GACvC,IAAIsT,EAAQjU,EAAO2B,cAAepT,GACjCo/B,EAAS3tB,EAAOqtB,MAAOA,EAAOtE,EAAQpoB,GACtCitB,EAAc,WAGb,IAAInB,EAAOf,GAAW3tC,KAAMiiB,EAAO5T,OAAQ,GAAImC,GAAQo/B,IAGlD1Z,GAASgE,EAAS/7B,IAAK6B,KAAM,YACjC0uC,EAAK1T,MAAM,IAKd,OAFC6U,EAAYC,OAASD,EAEf3Z,IAA0B,IAAjB0Z,EAAOzvC,MACtBH,KAAKiS,KAAM49B,GACX7vC,KAAKG,MAAOyvC,EAAOzvC,MAAO0vC,IAE5B7U,KAAM,SAAU9c,EAAMgd,EAAYoT,GACjC,IAAIyB,EAAY,SAAUjV,GACzB,IAAIE,EAAOF,EAAME,YACVF,EAAME,KACbA,EAAMsT,IAYP,MATqB,iBAATpwB,IACXowB,EAAUpT,EACVA,EAAahd,EACbA,OAAOva,GAEHu3B,IAAuB,IAAThd,GAClBle,KAAKG,MAAO+d,GAAQ,KAAM,IAGpBle,KAAKiS,MAAM,WACjB,IAAI2oB,GAAU,EACbrxB,EAAgB,MAAR2U,GAAgBA,EAAO,aAC/B8xB,EAAS/tB,EAAO+tB,OAChBtlC,EAAOwvB,EAAS/7B,IAAK6B,MAEtB,GAAKuJ,EACCmB,EAAMnB,IAAWmB,EAAMnB,GAAQyxB,MACnC+U,EAAWrlC,EAAMnB,SAGlB,IAAMA,KAASmB,EACTA,EAAMnB,IAAWmB,EAAMnB,GAAQyxB,MAAQgS,GAAKpmC,KAAM2C,IACtDwmC,EAAWrlC,EAAMnB,IAKpB,IAAMA,EAAQymC,EAAOzvC,OAAQgJ,KACvBymC,EAAQzmC,GAAQ4P,OAASnZ,MACnB,MAARke,GAAgB8xB,EAAQzmC,GAAQpJ,QAAU+d,IAE5C8xB,EAAQzmC,GAAQmlC,KAAK1T,KAAMsT,GAC3B1T,GAAU,EACVoV,EAAOviC,OAAQlE,EAAO,KAOnBqxB,GAAY0T,GAChBrsB,EAAO2Y,QAAS56B,KAAMke,OAIzB4xB,OAAQ,SAAU5xB,GAIjB,OAHc,IAATA,IACJA,EAAOA,GAAQ,MAETle,KAAKiS,MAAM,WACjB,IAAI1I,EACHmB,EAAOwvB,EAAS/7B,IAAK6B,MACrBG,EAAQuK,EAAMwT,EAAO,SACrB4c,EAAQpwB,EAAMwT,EAAO,cACrB8xB,EAAS/tB,EAAO+tB,OAChBzvC,EAASJ,EAAQA,EAAMI,OAAS,EAajC,IAVAmK,EAAKolC,QAAS,EAGd7tB,EAAO9hB,MAAOH,KAAMke,EAAM,IAErB4c,GAASA,EAAME,MACnBF,EAAME,KAAKv9B,KAAMuC,MAAM,GAIlBuJ,EAAQymC,EAAOzvC,OAAQgJ,KACvBymC,EAAQzmC,GAAQ4P,OAASnZ,MAAQgwC,EAAQzmC,GAAQpJ,QAAU+d,IAC/D8xB,EAAQzmC,GAAQmlC,KAAK1T,MAAM,GAC3BgV,EAAOviC,OAAQlE,EAAO,IAKxB,IAAMA,EAAQ,EAAGA,EAAQhJ,EAAQgJ,IAC3BpJ,EAAOoJ,IAAWpJ,EAAOoJ,GAAQumC,QACrC3vC,EAAOoJ,GAAQumC,OAAOryC,KAAMuC,aAKvB0K,EAAKolC,aAKf7tB,EAAOhQ,KAAM,CAAE,SAAU,OAAQ,SAAU,SAAU3U,EAAGO,GACvD,IAAIoyC,EAAQhuB,EAAO5U,GAAIxP,GACvBokB,EAAO5U,GAAIxP,GAAS,SAAUyxC,EAAOtE,EAAQpoB,GAC5C,OAAgB,MAAT0sB,GAAkC,kBAAVA,EAC9BW,EAAM1uC,MAAOvB,KAAMqB,WACnBrB,KAAK2vC,QAASrC,GAAOzvC,GAAM,GAAQyxC,EAAOtE,EAAQpoB,OAKrDX,EAAOhQ,KAAM,CACZi+B,UAAW5C,GAAO,QAClB6C,QAAS7C,GAAO,QAChB8C,YAAa9C,GAAO,UACpB+C,OAAQ,CAAEnF,QAAS,QACnBoF,QAAS,CAAEpF,QAAS,QACpBqF,WAAY,CAAErF,QAAS,YACrB,SAAUrtC,EAAMyc,GAClB2H,EAAO5U,GAAIxP,GAAS,SAAUyxC,EAAOtE,EAAQpoB,GAC5C,OAAO5iB,KAAK2vC,QAASr1B,EAAOg1B,EAAOtE,EAAQpoB,OAI7CX,EAAO+tB,OAAS,GAChB/tB,EAAOqqB,GAAGc,KAAO,WAChB,IAAIqB,EACHnxC,EAAI,EACJ0yC,EAAS/tB,EAAO+tB,OAIjB,IAFAnD,GAAQtnB,KAAK+c,MAELhlC,EAAI0yC,EAAOzvC,OAAQjD,KAC1BmxC,EAAQuB,EAAQ1yC,OAGC0yC,EAAQ1yC,KAAQmxC,GAChCuB,EAAOviC,OAAQnQ,IAAK,GAIhB0yC,EAAOzvC,QACZ0hB,EAAOqqB,GAAGtR,OAEX6R,QAAQlpC,GAGTse,EAAOqqB,GAAGmC,MAAQ,SAAUA,GAC3BxsB,EAAO+tB,OAAO1uC,KAAMmtC,GACpBxsB,EAAOqqB,GAAGzlC,SAGXob,EAAOqqB,GAAGa,SAAW,GACrBlrB,EAAOqqB,GAAGzlC,MAAQ,WACZimC,KAILA,IAAa,EACbG,OAGDhrB,EAAOqqB,GAAGtR,KAAO,WAChB8R,GAAa,MAGd7qB,EAAOqqB,GAAGkD,OAAS,CAClBgB,KAAM,IACNC,KAAM,IAGNpT,SAAU,KAMXpb,EAAO5U,GAAGqjC,MAAQ,SAAUC,EAAMzyB,GAIjC,OAHAyyB,EAAO1uB,EAAOqqB,IAAKrqB,EAAOqqB,GAAGkD,OAAQmB,IAAiBA,EACtDzyB,EAAOA,GAAQ,KAERle,KAAKG,MAAO+d,GAAM,SAAUjX,EAAM6zB,GACxC,IAAIp6B,EAAUgD,EAAO5D,WAAYmH,EAAM0pC,GACvC7V,EAAME,KAAO,WACZt3B,EAAOzD,aAAcS,QAMxB,WACC,IAAIyqB,EAAQnoB,EAASoB,cAAe,SAEnCmrC,EADSvsC,EAASoB,cAAe,UACpBe,YAAanC,EAASoB,cAAe,WAEnD+mB,EAAMjN,KAAO,WAIbsD,EAAQovB,QAA0B,KAAhBzlB,EAAM5sB,MAIxBijB,EAAQqvB,YAActB,EAAIxgB,UAI1B5D,EAAQnoB,EAASoB,cAAe,UAC1B7F,MAAQ,IACd4sB,EAAMjN,KAAO,QACbsD,EAAQsvB,WAA6B,MAAhB3lB,EAAM5sB,MApB5B,GAwBA,IAAIwyC,GACHvnB,GAAavH,EAAO/X,KAAKsf,WAE1BvH,EAAO5U,GAAGgB,OAAQ,CACjBwI,KAAM,SAAUhZ,EAAMU,GACrB,OAAO46B,EAAQn5B,KAAMiiB,EAAOpL,KAAMhZ,EAAMU,EAAO8C,UAAUd,OAAS,IAGnEywC,WAAY,SAAUnzC,GACrB,OAAOmC,KAAKiS,MAAM,WACjBgQ,EAAO+uB,WAAYhxC,KAAMnC,SAK5BokB,EAAO5T,OAAQ,CACdwI,KAAM,SAAUsC,EAAMtb,EAAMU,GAC3B,IAAIkkB,EAAKqY,EACRmW,EAAQ93B,EAAKgF,SAGd,GAAe,IAAV8yB,GAAyB,IAAVA,GAAyB,IAAVA,EAKnC,YAAkC,IAAtB93B,EAAKjK,aACT+S,EAAOzR,KAAM2I,EAAMtb,EAAMU,IAKlB,IAAV0yC,GAAgBhvB,EAAOyQ,SAAUvZ,KACrC2hB,EAAQ7Y,EAAOivB,UAAWrzC,EAAKkS,iBAC5BkS,EAAO/X,KAAKlD,MAAM0Q,KAAK9Q,KAAM/I,GAASkzC,QAAWptC,SAGtCA,IAAVpF,EACW,OAAVA,OACJ0jB,EAAO+uB,WAAY73B,EAAMtb,GAIrBi9B,GAAS,QAASA,QACuBn3B,KAA3C8e,EAAMqY,EAAM1wB,IAAK+O,EAAM5a,EAAOV,IACzB4kB,GAGRtJ,EAAK9U,aAAcxG,EAAMU,EAAQ,IAC1BA,GAGHu8B,GAAS,QAASA,GAA+C,QAApCrY,EAAMqY,EAAM38B,IAAKgb,EAAMtb,IACjD4kB,EAMM,OAHdA,EAAMR,EAAO+I,KAAKnU,KAAMsC,EAAMtb,SAGT8F,EAAY8e,IAGlCyuB,UAAW,CACVhzB,KAAM,CACL9T,IAAK,SAAU+O,EAAM5a,GACpB,IAAMijB,EAAQsvB,YAAwB,UAAVvyC,GAC3B4pB,EAAUhP,EAAM,SAAY,CAC5B,IAAI5U,EAAM4U,EAAK5a,MAKf,OAJA4a,EAAK9U,aAAc,OAAQ9F,GACtBgG,IACJ4U,EAAK5a,MAAQgG,GAEPhG,MAMXyyC,WAAY,SAAU73B,EAAM5a,GAC3B,IAAIV,EACHP,EAAI,EAIJ6zC,EAAY5yC,GAASA,EAAMyI,MAAO4tB,GAEnC,GAAKuc,GAA+B,IAAlBh4B,EAAKgF,SACtB,KAAUtgB,EAAOszC,EAAW7zC,MAC3B6b,EAAKhK,gBAAiBtR,MAO1BkzC,GAAW,CACV3mC,IAAK,SAAU+O,EAAM5a,EAAOV,GAQ3B,OAPe,IAAVU,EAGJ0jB,EAAO+uB,WAAY73B,EAAMtb,GAEzBsb,EAAK9U,aAAcxG,EAAMA,GAEnBA,IAITokB,EAAOhQ,KAAMgQ,EAAO/X,KAAKlD,MAAM0Q,KAAKhQ,OAAOV,MAAO,SAAU,SAAU1J,EAAGO,GACxE,IAAIC,EAAS0rB,GAAY3rB,IAAUokB,EAAO+I,KAAKnU,KAE/C2S,GAAY3rB,GAAS,SAAUsb,EAAMtb,EAAM+mB,GAC1C,IAAInC,EAAK2d,EACRgR,EAAgBvzC,EAAKkS,cAYtB,OAVM6U,IAGLwb,EAAS5W,GAAY4nB,GACrB5nB,GAAY4nB,GAAkB3uB,EAC9BA,EAAqC,MAA/B3kB,EAAQqb,EAAMtb,EAAM+mB,GACzBwsB,EACA,KACD5nB,GAAY4nB,GAAkBhR,GAExB3d,MAOT,IAAI4uB,GAAa,sCAChBC,GAAa,gBAyIb,SAASC,GAAkBhzC,GAE1B,OADaA,EAAMyI,MAAO4tB,IAAmB,IAC/B/uB,KAAM,KAItB,SAAS2rC,GAAUr4B,GAClB,OAAOA,EAAKjK,cAAgBiK,EAAKjK,aAAc,UAAa,GAG7D,SAASuiC,GAAgBlzC,GACxB,OAAK6C,MAAMuQ,QAASpT,GACZA,EAEc,iBAAVA,GACJA,EAAMyI,MAAO4tB,IAEd,GAxJR3S,EAAO5U,GAAGgB,OAAQ,CACjBmC,KAAM,SAAU3S,EAAMU,GACrB,OAAO46B,EAAQn5B,KAAMiiB,EAAOzR,KAAM3S,EAAMU,EAAO8C,UAAUd,OAAS,IAGnEmxC,WAAY,SAAU7zC,GACrB,OAAOmC,KAAKiS,MAAM,kBACVjS,KAAMiiB,EAAO0vB,QAAS9zC,IAAUA,SAK1CokB,EAAO5T,OAAQ,CACdmC,KAAM,SAAU2I,EAAMtb,EAAMU,GAC3B,IAAIkkB,EAAKqY,EACRmW,EAAQ93B,EAAKgF,SAGd,GAAe,IAAV8yB,GAAyB,IAAVA,GAAyB,IAAVA,EAWnC,OAPe,IAAVA,GAAgBhvB,EAAOyQ,SAAUvZ,KAGrCtb,EAAOokB,EAAO0vB,QAAS9zC,IAAUA,EACjCi9B,EAAQ7Y,EAAOgqB,UAAWpuC,SAGZ8F,IAAVpF,EACCu8B,GAAS,QAASA,QACuBn3B,KAA3C8e,EAAMqY,EAAM1wB,IAAK+O,EAAM5a,EAAOV,IACzB4kB,EAGCtJ,EAAMtb,GAASU,EAGpBu8B,GAAS,QAASA,GAA+C,QAApCrY,EAAMqY,EAAM38B,IAAKgb,EAAMtb,IACjD4kB,EAGDtJ,EAAMtb,IAGdouC,UAAW,CACVpd,SAAU,CACT1wB,IAAK,SAAUgb,GAOd,IAAIy4B,EAAW3vB,EAAO+I,KAAKnU,KAAMsC,EAAM,YAEvC,OAAKy4B,EACGC,SAAUD,EAAU,IAI3BP,GAAWzqC,KAAMuS,EAAKgP,WACtBmpB,GAAW1qC,KAAMuS,EAAKgP,WACtBhP,EAAKyV,KAEE,GAGA,KAKX+iB,QAAS,CACR,IAAO,UACP,MAAS,eAYLnwB,EAAQqvB,cACb5uB,EAAOgqB,UAAUld,SAAW,CAC3B5wB,IAAK,SAAUgb,GAId,IAAI7F,EAAS6F,EAAKnU,WAIlB,OAHKsO,GAAUA,EAAOtO,YACrBsO,EAAOtO,WAAWuP,cAEZ,MAERnK,IAAK,SAAU+O,GAId,IAAI7F,EAAS6F,EAAKnU,WACbsO,IACJA,EAAOiB,cAEFjB,EAAOtO,YACXsO,EAAOtO,WAAWuP,kBAOvB0N,EAAOhQ,KAAM,CACZ,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,oBACE,WACFgQ,EAAO0vB,QAAS3xC,KAAK+P,eAAkB/P,QA4BxCiiB,EAAO5U,GAAGgB,OAAQ,CACjByjC,SAAU,SAAUvzC,GACnB,IAAIwzC,EAAS54B,EAAMuQ,EAAKsoB,EAAUC,EAAOpnC,EAAGqnC,EAC3C50C,EAAI,EAEL,GAAKiU,EAAYhT,GAChB,OAAOyB,KAAKiS,MAAM,SAAUpH,GAC3BoX,EAAQjiB,MAAO8xC,SAAUvzC,EAAMd,KAAMuC,KAAM6K,EAAG2mC,GAAUxxC,WAM1D,IAFA+xC,EAAUN,GAAgBlzC,IAEbgC,OACZ,KAAU4Y,EAAOnZ,KAAM1C,MAItB,GAHA00C,EAAWR,GAAUr4B,GACrBuQ,EAAwB,IAAlBvQ,EAAKgF,UAAoB,IAAMozB,GAAkBS,GAAa,IAEzD,CAEV,IADAnnC,EAAI,EACMonC,EAAQF,EAASlnC,MACrB6e,EAAIxiB,QAAS,IAAM+qC,EAAQ,KAAQ,IACvCvoB,GAAOuoB,EAAQ,KAMZD,KADLE,EAAaX,GAAkB7nB,KAE9BvQ,EAAK9U,aAAc,QAAS6tC,GAMhC,OAAOlyC,MAGRmyC,YAAa,SAAU5zC,GACtB,IAAIwzC,EAAS54B,EAAMuQ,EAAKsoB,EAAUC,EAAOpnC,EAAGqnC,EAC3C50C,EAAI,EAEL,GAAKiU,EAAYhT,GAChB,OAAOyB,KAAKiS,MAAM,SAAUpH,GAC3BoX,EAAQjiB,MAAOmyC,YAAa5zC,EAAMd,KAAMuC,KAAM6K,EAAG2mC,GAAUxxC,WAI7D,IAAMqB,UAAUd,OACf,OAAOP,KAAK6W,KAAM,QAAS,IAK5B,IAFAk7B,EAAUN,GAAgBlzC,IAEbgC,OACZ,KAAU4Y,EAAOnZ,KAAM1C,MAMtB,GALA00C,EAAWR,GAAUr4B,GAGrBuQ,EAAwB,IAAlBvQ,EAAKgF,UAAoB,IAAMozB,GAAkBS,GAAa,IAEzD,CAEV,IADAnnC,EAAI,EACMonC,EAAQF,EAASlnC,MAG1B,KAAQ6e,EAAIxiB,QAAS,IAAM+qC,EAAQ,MAAS,GAC3CvoB,EAAMA,EAAIphB,QAAS,IAAM2pC,EAAQ,IAAK,KAMnCD,KADLE,EAAaX,GAAkB7nB,KAE9BvQ,EAAK9U,aAAc,QAAS6tC,GAMhC,OAAOlyC,MAGRoyC,YAAa,SAAU7zC,EAAO8zC,GAC7B,IAAIn0B,SAAc3f,EACjB+zC,EAAwB,WAATp0B,GAAqB9c,MAAMuQ,QAASpT,GAEpD,MAAyB,kBAAb8zC,GAA0BC,EAC9BD,EAAWryC,KAAK8xC,SAAUvzC,GAAUyB,KAAKmyC,YAAa5zC,GAGzDgT,EAAYhT,GACTyB,KAAKiS,MAAM,SAAU3U,GAC3B2kB,EAAQjiB,MAAOoyC,YACd7zC,EAAMd,KAAMuC,KAAM1C,EAAGk0C,GAAUxxC,MAAQqyC,GACvCA,MAKIryC,KAAKiS,MAAM,WACjB,IAAI0Y,EAAWrtB,EAAGg2B,EAAMif,EAExB,GAAKD,EAOJ,IAJAh1C,EAAI,EACJg2B,EAAOrR,EAAQjiB,MACfuyC,EAAad,GAAgBlzC,GAEnBosB,EAAY4nB,EAAYj1C,MAG5Bg2B,EAAKkf,SAAU7nB,GACnB2I,EAAK6e,YAAaxnB,GAElB2I,EAAKwe,SAAUnnB,aAKIhnB,IAAVpF,GAAgC,YAAT2f,KAClCyM,EAAY6mB,GAAUxxC,QAIrBk6B,EAAS9vB,IAAKpK,KAAM,gBAAiB2qB,GAOjC3qB,KAAKqE,cACTrE,KAAKqE,aAAc,QAClBsmB,IAAuB,IAAVpsB,EACb,GACA27B,EAAS/7B,IAAK6B,KAAM,kBAAqB,SAO9CwyC,SAAU,SAAU1vC,GACnB,IAAI6nB,EAAWxR,EACd7b,EAAI,EAGL,IADAqtB,EAAY,IAAM7nB,EAAW,IACnBqW,EAAOnZ,KAAM1C,MACtB,GAAuB,IAAlB6b,EAAKgF,WACP,IAAMozB,GAAkBC,GAAUr4B,IAAW,KAAMjS,QAASyjB,IAAe,EAC5E,OAAO,EAIV,OAAO,KAOT,IAAI8nB,GAAU,MAEdxwB,EAAO5U,GAAGgB,OAAQ,CACjB9J,IAAK,SAAUhG,GACd,IAAIu8B,EAAOrY,EAAKgjB,EACftsB,EAAOnZ,KAAM,GAEd,OAAMqB,UAAUd,QA0BhBklC,EAAkBl0B,EAAYhT,GAEvByB,KAAKiS,MAAM,SAAU3U,GAC3B,IAAIiH,EAEmB,IAAlBvE,KAAKme,WAWE,OANX5Z,EADIkhC,EACElnC,EAAMd,KAAMuC,KAAM1C,EAAG2kB,EAAQjiB,MAAOuE,OAEpChG,GAKNgG,EAAM,GAEoB,iBAARA,EAClBA,GAAO,GAEInD,MAAMuQ,QAASpN,KAC1BA,EAAM0d,EAAOtc,IAAKpB,GAAK,SAAUhG,GAChC,OAAgB,MAATA,EAAgB,GAAKA,EAAQ,QAItCu8B,EAAQ7Y,EAAOywB,SAAU1yC,KAAKke,OAAU+D,EAAOywB,SAAU1yC,KAAKmoB,SAASpY,iBAGrD,QAAS+qB,QAA+Cn3B,IAApCm3B,EAAM1wB,IAAKpK,KAAMuE,EAAK,WAC3DvE,KAAKzB,MAAQgG,QAzDT4U,GACJ2hB,EAAQ7Y,EAAOywB,SAAUv5B,EAAK+E,OAC7B+D,EAAOywB,SAAUv5B,EAAKgP,SAASpY,iBAG/B,QAAS+qB,QACgCn3B,KAAvC8e,EAAMqY,EAAM38B,IAAKgb,EAAM,UAElBsJ,EAMY,iBAHpBA,EAAMtJ,EAAK5a,OAIHkkB,EAAIna,QAASmqC,GAAS,IAIhB,MAAPhwB,EAAc,GAAKA,OAG3B,KAyCHR,EAAO5T,OAAQ,CACdqkC,SAAU,CACTvV,OAAQ,CACPh/B,IAAK,SAAUgb,GAEd,IAAI5U,EAAM0d,EAAO+I,KAAKnU,KAAMsC,EAAM,SAClC,OAAc,MAAP5U,EACNA,EAMAgtC,GAAkBtvB,EAAO9N,KAAMgF,MAGlC7E,OAAQ,CACPnW,IAAK,SAAUgb,GACd,IAAI5a,EAAO4+B,EAAQ7/B,EAClB+U,EAAU8G,EAAK9G,QACf9I,EAAQ4P,EAAK5E,cACb7G,EAAoB,eAAdyL,EAAK+E,KACX0e,EAASlvB,EAAM,KAAO,GACtBu8B,EAAMv8B,EAAMnE,EAAQ,EAAI8I,EAAQ9R,OAUjC,IAPCjD,EADIiM,EAAQ,EACR0gC,EAGAv8B,EAAMnE,EAAQ,EAIXjM,EAAI2sC,EAAK3sC,IAKhB,KAJA6/B,EAAS9qB,EAAS/U,IAIJyxB,UAAYzxB,IAAMiM,KAG7B4zB,EAAOjV,YACLiV,EAAOn4B,WAAWkjB,WACnBC,EAAUgV,EAAOn4B,WAAY,aAAiB,CAMjD,GAHAzG,EAAQ0jB,EAAQkb,GAAS54B,MAGpBmJ,EACJ,OAAOnP,EAIRq+B,EAAOt7B,KAAM/C,GAIf,OAAOq+B,GAGRxyB,IAAK,SAAU+O,EAAM5a,GAMpB,IALA,IAAIo0C,EAAWxV,EACd9qB,EAAU8G,EAAK9G,QACfuqB,EAAS3a,EAAO6B,UAAWvlB,GAC3BjB,EAAI+U,EAAQ9R,OAELjD,OACP6/B,EAAS9qB,EAAS/U,IAINyxB,SACX9M,EAAO+B,QAAS/B,EAAOywB,SAASvV,OAAOh/B,IAAKg/B,GAAUP,IAAY,KAElE+V,GAAY,GAUd,OAHMA,IACLx5B,EAAK5E,eAAiB,GAEhBqoB,OAOX3a,EAAOhQ,KAAM,CAAE,QAAS,aAAc,WACrCgQ,EAAOywB,SAAU1yC,MAAS,CACzBoK,IAAK,SAAU+O,EAAM5a,GACpB,GAAK6C,MAAMuQ,QAASpT,GACnB,OAAS4a,EAAK2V,QAAU7M,EAAO+B,QAAS/B,EAAQ9I,GAAO5U,MAAOhG,IAAW,IAItEijB,EAAQovB,UACb3uB,EAAOywB,SAAU1yC,MAAO7B,IAAM,SAAUgb,GACvC,OAAwC,OAAjCA,EAAKjK,aAAc,SAAqB,KAAOiK,EAAK5a,WAW9DijB,EAAQoxB,QAAU,cAAelvC,EAGjC,IAAImvC,GAAc,kCACjBC,GAA0B,SAAU/yC,GACnCA,EAAEy/B,mBAGJvd,EAAO5T,OAAQ4T,EAAO7U,MAAO,CAE5BO,QAAS,SAAUP,EAAO1C,EAAMyO,EAAM45B,GAErC,IAAIz1C,EAAGosB,EAAKwB,EAAK8nB,EAAYC,EAAQ7S,EAAQ7I,EAAS2b,EACrDC,EAAY,CAAEh6B,GAAQnW,GACtBkb,EAAOmD,EAAO5jB,KAAM2P,EAAO,QAAWA,EAAM8Q,KAAO9Q,EACnD6yB,EAAa5e,EAAO5jB,KAAM2P,EAAO,aAAgBA,EAAMgd,UAAUzhB,MAAO,KAAQ,GAKjF,GAHA+gB,EAAMwpB,EAAchoB,EAAM/R,EAAOA,GAAQnW,EAGlB,IAAlBmW,EAAKgF,UAAoC,IAAlBhF,EAAKgF,WAK5B00B,GAAYjsC,KAAMsX,EAAO+D,EAAO7U,MAAMizB,aAItCniB,EAAKhX,QAAS,MAAS,IAG3B+4B,EAAa/hB,EAAKvV,MAAO,KACzBuV,EAAO+hB,EAAW7W,QAClB6W,EAAWjd,QAEZiwB,EAAS/0B,EAAKhX,QAAS,KAAQ,GAAK,KAAOgX,GAG3C9Q,EAAQA,EAAO6U,EAAOqB,SACrBlW,EACA,IAAI6U,EAAO0d,MAAOzhB,EAAuB,iBAAV9Q,GAAsBA,IAGhDkyB,UAAYyT,EAAe,EAAI,EACrC3lC,EAAMgd,UAAY6V,EAAWp6B,KAAM,KACnCuH,EAAMi0B,WAAaj0B,EAAMgd,UACxB,IAAIxiB,OAAQ,UAAYq4B,EAAWp6B,KAAM,iBAAoB,WAC7D,KAGDuH,EAAMggB,YAASzpB,EACTyJ,EAAM+H,SACX/H,EAAM+H,OAASgE,GAIhBzO,EAAe,MAARA,EACN,CAAE0C,GACF6U,EAAO6B,UAAWpZ,EAAM,CAAE0C,IAG3BmqB,EAAUtV,EAAO7U,MAAMmqB,QAASrZ,IAAU,GACpC60B,IAAgBxb,EAAQ5pB,UAAmD,IAAxC4pB,EAAQ5pB,QAAQpM,MAAO4X,EAAMzO,IAAtE,CAMA,IAAMqoC,IAAiBxb,EAAQuK,WAAargB,EAAUtI,GAAS,CAM9D,IAJA65B,EAAazb,EAAQgI,cAAgBrhB,EAC/B20B,GAAYjsC,KAAMosC,EAAa90B,KACpCwL,EAAMA,EAAI1kB,YAEH0kB,EAAKA,EAAMA,EAAI1kB,WACtBmuC,EAAU7xC,KAAMooB,GAChBwB,EAAMxB,EAIFwB,KAAU/R,EAAK1J,eAAiBzM,IACpCmwC,EAAU7xC,KAAM4pB,EAAIV,aAAeU,EAAIkoB,cAAgB1vC,GAMzD,IADApG,EAAI,GACMosB,EAAMypB,EAAW71C,QAAY8P,EAAM+zB,wBAC5C+R,EAAcxpB,EACdtc,EAAM8Q,KAAO5gB,EAAI,EAChB01C,EACAzb,EAAQgJ,UAAYriB,GAGrBkiB,GAAWlG,EAAS/7B,IAAKurB,EAAK,WAAc,IAAMtc,EAAM8Q,OACvDgc,EAAS/7B,IAAKurB,EAAK,YAEnB0W,EAAO7+B,MAAOmoB,EAAKhf,IAIpB01B,EAAS6S,GAAUvpB,EAAKupB,KACT7S,EAAO7+B,OAASw4B,EAAYrQ,KAC1Ctc,EAAMggB,OAASgT,EAAO7+B,MAAOmoB,EAAKhf,IACZ,IAAjB0C,EAAMggB,QACVhgB,EAAMsyB,kBA8CT,OA1CAtyB,EAAM8Q,KAAOA,EAGP60B,GAAiB3lC,EAAM80B,sBAEpB3K,EAAQ8F,WACqC,IAApD9F,EAAQ8F,SAAS97B,MAAO4xC,EAAUltB,MAAOvb,KACzCqvB,EAAY5gB,IAIP85B,GAAU1hC,EAAY4H,EAAM+E,MAAauD,EAAUtI,MAGvD+R,EAAM/R,EAAM85B,MAGX95B,EAAM85B,GAAW,MAIlBhxB,EAAO7U,MAAMizB,UAAYniB,EAEpB9Q,EAAM+zB,wBACV+R,EAAYp9B,iBAAkBoI,EAAM40B,IAGrC35B,EAAM+E,KAED9Q,EAAM+zB,wBACV+R,EAAYr9B,oBAAqBqI,EAAM40B,IAGxC7wB,EAAO7U,MAAMizB,eAAY18B,EAEpBunB,IACJ/R,EAAM85B,GAAW/nB,IAMd9d,EAAMggB,SAKdimB,SAAU,SAAUn1B,EAAM/E,EAAM/L,GAC/B,IAAIrN,EAAIkiB,EAAO5T,OACd,IAAI4T,EAAO0d,MACXvyB,EACA,CACC8Q,KAAMA,EACNqkB,aAAa,IAIftgB,EAAO7U,MAAMO,QAAS5N,EAAG,KAAMoZ,MAKjC8I,EAAO5U,GAAGgB,OAAQ,CAEjBV,QAAS,SAAUuQ,EAAMxT,GACxB,OAAO1K,KAAKiS,MAAM,WACjBgQ,EAAO7U,MAAMO,QAASuQ,EAAMxT,EAAM1K,UAGpCszC,eAAgB,SAAUp1B,EAAMxT,GAC/B,IAAIyO,EAAOnZ,KAAM,GACjB,GAAKmZ,EACJ,OAAO8I,EAAO7U,MAAMO,QAASuQ,EAAMxT,EAAMyO,GAAM,MAc5CqI,EAAQoxB,SACb3wB,EAAOhQ,KAAM,CAAE+xB,MAAO,UAAWC,KAAM,aAAc,SAAUK,EAAMtD,GAGpE,IAAI/rB,EAAU,SAAU7H,GACvB6U,EAAO7U,MAAMimC,SAAUrS,EAAK5zB,EAAM+H,OAAQ8M,EAAO7U,MAAM4zB,IAAK5zB,KAG7D6U,EAAO7U,MAAMmqB,QAASyJ,GAAQ,CAC7BP,MAAO,WACN,IAAI3e,EAAM9hB,KAAKyP,eAAiBzP,KAC/BuzC,EAAWrZ,EAASf,OAAQrX,EAAKkf,GAE5BuS,GACLzxB,EAAIhM,iBAAkBwuB,EAAMrvB,GAAS,GAEtCilB,EAASf,OAAQrX,EAAKkf,GAAOuS,GAAY,GAAM,IAEhD3S,SAAU,WACT,IAAI9e,EAAM9hB,KAAKyP,eAAiBzP,KAC/BuzC,EAAWrZ,EAASf,OAAQrX,EAAKkf,GAAQ,EAEpCuS,EAKLrZ,EAASf,OAAQrX,EAAKkf,EAAKuS,IAJ3BzxB,EAAIjM,oBAAqByuB,EAAMrvB,GAAS,GACxCilB,EAASl0B,OAAQ8b,EAAKkf,SAS3B,IAAIvS,GAAW/qB,EAAO+qB,SAElB9M,GAAQ4D,KAAK+c,MAEbkR,GAAS,KAKbvxB,EAAOwxB,SAAW,SAAU/oC,GAC3B,IAAI+iB,EACJ,IAAM/iB,GAAwB,iBAATA,EACpB,OAAO,KAKR,IACC+iB,GAAM,IAAM/pB,EAAOiM,WAAcC,gBAAiBlF,EAAM,YACvD,MAAQ3K,GACT0tB,OAAM9pB,EAMP,OAHM8pB,IAAOA,EAAI7E,qBAAsB,eAAgBroB,QACtD0hB,EAAOrW,MAAO,gBAAkBlB,GAE1B+iB,GAIR,IACCimB,GAAW,QACXC,GAAQ,SACRC,GAAkB,wCAClBC,GAAe,qCAEhB,SAASC,GAAajI,EAAQ19B,EAAK4lC,EAAazuC,GAC/C,IAAIzH,EAEJ,GAAKuD,MAAMuQ,QAASxD,GAGnB8T,EAAOhQ,KAAM9D,GAAK,SAAU7Q,EAAG6hB,GACzB40B,GAAeL,GAAS9sC,KAAMilC,GAGlCvmC,EAAKumC,EAAQ1sB,GAKb20B,GACCjI,EAAS,KAAqB,iBAAN1sB,GAAuB,MAALA,EAAY7hB,EAAI,IAAO,IACjE6hB,EACA40B,EACAzuC,WAKG,GAAMyuC,GAAiC,WAAlB/xB,EAAQ7T,GAUnC7I,EAAKumC,EAAQ19B,QAPb,IAAMtQ,KAAQsQ,EACb2lC,GAAajI,EAAS,IAAMhuC,EAAO,IAAKsQ,EAAKtQ,GAAQk2C,EAAazuC,GAYrE2c,EAAO+xB,MAAQ,SAAUh8B,EAAG+7B,GAC3B,IAAIlI,EACHxsC,EAAI,GACJiG,EAAM,SAAUzG,EAAKo1C,GAGpB,IAAI11C,EAAQgT,EAAY0iC,GACvBA,IACAA,EAED50C,EAAGA,EAAEkB,QAAW2zC,mBAAoBr1C,GAAQ,IAC3Cq1C,mBAA6B,MAAT31C,EAAgB,GAAKA,IAG5C,GAAU,MAALyZ,EACJ,MAAO,GAIR,GAAK5W,MAAMuQ,QAASqG,IAASA,EAAEoK,SAAWH,EAAOoB,cAAerL,GAG/DiK,EAAOhQ,KAAM+F,GAAG,WACf1S,EAAKtF,KAAKnC,KAAMmC,KAAKzB,eAOtB,IAAMstC,KAAU7zB,EACf87B,GAAajI,EAAQ7zB,EAAG6zB,GAAUkI,EAAazuC,GAKjD,OAAOjG,EAAEwG,KAAM,MAGhBoc,EAAO5U,GAAGgB,OAAQ,CACjB8lC,UAAW,WACV,OAAOlyB,EAAO+xB,MAAOh0C,KAAKo0C,mBAE3BA,eAAgB,WACf,OAAOp0C,KAAK2F,KAAK,WAGhB,IAAIumB,EAAWjK,EAAOzR,KAAMxQ,KAAM,YAClC,OAAOksB,EAAWjK,EAAO6B,UAAWoI,GAAalsB,QAEjD4Y,QAAQ,WACR,IAAIsF,EAAOle,KAAKke,KAGhB,OAAOle,KAAKnC,OAASokB,EAAQjiB,MAAO8yB,GAAI,cACvC+gB,GAAajtC,KAAM5G,KAAKmoB,YAAeyrB,GAAgBhtC,KAAMsX,KAC3Dle,KAAK8uB,UAAYiO,GAAen2B,KAAMsX,OAEzCvY,KAAK,SAAUrI,EAAG6b,GAClB,IAAI5U,EAAM0d,EAAQjiB,MAAOuE,MAEzB,OAAY,MAAPA,EACG,KAGHnD,MAAMuQ,QAASpN,GACZ0d,EAAOtc,IAAKpB,GAAK,SAAUA,GACjC,MAAO,CAAE1G,KAAMsb,EAAKtb,KAAMU,MAAOgG,EAAI+D,QAASqrC,GAAO,YAIhD,CAAE91C,KAAMsb,EAAKtb,KAAMU,MAAOgG,EAAI+D,QAASqrC,GAAO,YAClDx1C,SAKN,IACCk2C,GAAM,OACNC,GAAQ,OACRC,GAAa,gBACbC,GAAW,6BAIXC,GAAa,iBACbC,GAAY,QAWZ3G,GAAa,GAOb4G,GAAa,GAGbC,GAAW,KAAKp0C,OAAQ,KAGxBq0C,GAAe7xC,EAASoB,cAAe,KAIxC,SAAS0wC,GAA6BC,GAGrC,OAAO,SAAUC,EAAoBze,GAED,iBAAvBye,IACXze,EAAOye,EACPA,EAAqB,KAGtB,IAAIC,EACH33C,EAAI,EACJ43C,EAAYF,EAAmBjlC,cAAc/I,MAAO4tB,IAAmB,GAExE,GAAKrjB,EAAYglB,GAGhB,KAAU0e,EAAWC,EAAW53C,MAGR,MAAlB23C,EAAU,IACdA,EAAWA,EAAS3uC,MAAO,IAAO,KAChCyuC,EAAWE,GAAaF,EAAWE,IAAc,IAAKhpB,QAASsK,KAI/Dwe,EAAWE,GAAaF,EAAWE,IAAc,IAAK3zC,KAAMi1B,IAQnE,SAAS4e,GAA+BJ,EAAW1iC,EAASg8B,EAAiB+G,GAE5E,IAAIC,EAAY,GACfC,EAAqBP,IAAcJ,GAEpC,SAASY,EAASN,GACjB,IAAIlmB,EAcJ,OAbAsmB,EAAWJ,IAAa,EACxBhzB,EAAOhQ,KAAM8iC,EAAWE,IAAc,IAAI,SAAUhqC,EAAGuqC,GACtD,IAAIC,EAAsBD,EAAoBnjC,EAASg8B,EAAiB+G,GACxE,MAAoC,iBAAxBK,GACVH,GAAqBD,EAAWI,GAKtBH,IACDvmB,EAAW0mB,QADf,GAHNpjC,EAAQ6iC,UAAUjpB,QAASwpB,GAC3BF,EAASE,IACF,MAKF1mB,EAGR,OAAOwmB,EAASljC,EAAQ6iC,UAAW,MAAUG,EAAW,MAASE,EAAS,KAM3E,SAASG,GAAYvgC,EAAQ7G,GAC5B,IAAIzP,EAAKukB,EACRuyB,EAAc1zB,EAAO2zB,aAAaD,aAAe,GAElD,IAAM92C,KAAOyP,OACQ3K,IAAf2K,EAAKzP,MACP82C,EAAa92C,GAAQsW,EAAWiO,IAAUA,EAAO,KAAUvkB,GAAQyP,EAAKzP,IAO5E,OAJKukB,GACJnB,EAAO5T,QAAQ,EAAM8G,EAAQiO,GAGvBjO,EA/EP0/B,GAAajmB,KAAOH,GAASG,KAgP9B3M,EAAO5T,OAAQ,CAGdwnC,OAAQ,EAGRC,aAAc,GACdC,KAAM,GAENH,aAAc,CACbI,IAAKvnB,GAASG,KACd1Q,KAAM,MACN+3B,QAvRgB,4DAuRQrvC,KAAM6nB,GAASynB,UACvC3tC,QAAQ,EACR4tC,aAAa,EACbC,OAAO,EACPC,YAAa,mDAcbC,QAAS,CACR,IAAK1B,GACLzgC,KAAM,aACN7E,KAAM,YACNme,IAAK,4BACL8oB,KAAM,qCAGP1iB,SAAU,CACTpG,IAAK,UACLne,KAAM,SACNinC,KAAM,YAGPC,eAAgB,CACf/oB,IAAK,cACLtZ,KAAM,eACNoiC,KAAM,gBAKPE,WAAY,CAGX,SAAUhvB,OAGV,aAAa,EAGb,YAAalQ,KAAKgjB,MAGlB,WAAYtY,EAAOwxB,UAOpBkC,YAAa,CACZK,KAAK,EACLtlC,SAAS,IAOXgmC,UAAW,SAAUvhC,EAAQ7K,GAC5B,OAAOA,EAGNorC,GAAYA,GAAYvgC,EAAQ8M,EAAO2zB,cAAgBtrC,GAGvDorC,GAAYzzB,EAAO2zB,aAAczgC,IAGnCwhC,cAAe7B,GAA6B/G,IAC5C6I,cAAe9B,GAA6BH,IAG5CkC,KAAM,SAAUb,EAAK3jC,GAGA,iBAAR2jC,IACX3jC,EAAU2jC,EACVA,OAAMryC,GAIP0O,EAAUA,GAAW,GAErB,IAAIykC,EAGHC,EAGAC,EACAC,EAGAC,EAGAC,EAGAte,EAGAue,EAGA95C,EAGA+5C,EAGAh4C,EAAI4iB,EAAOy0B,UAAW,GAAIrkC,GAG1BilC,EAAkBj4C,EAAEqR,SAAWrR,EAG/Bk4C,EAAqBl4C,EAAEqR,UACpB4mC,EAAgBn5B,UAAYm5B,EAAgBl1B,QAC7CH,EAAQq1B,GACRr1B,EAAO7U,MAGTupB,EAAW1U,EAAOqU,WAClBkhB,EAAmBv1B,EAAOuT,UAAW,eAGrCiiB,EAAap4C,EAAEo4C,YAAc,GAG7BC,EAAiB,GACjBC,EAAsB,GAGtBC,EAAW,WAGXxC,EAAQ,CACPnc,WAAY,EAGZ4e,kBAAmB,SAAUh5C,GAC5B,IAAImI,EACJ,GAAK6xB,EAAY,CAChB,IAAMoe,EAEL,IADAA,EAAkB,GACRjwC,EAAQwtC,GAAS/vC,KAAMuyC,IAChCC,EAAiBjwC,EAAO,GAAI+I,cAAgB,MACzCknC,EAAiBjwC,EAAO,GAAI+I,cAAgB,MAAS,IACrDvP,OAAQwG,EAAO,IAGpBA,EAAQiwC,EAAiBp4C,EAAIkR,cAAgB,KAE9C,OAAgB,MAAT/I,EAAgB,KAAOA,EAAMnB,KAAM,OAI3CiyC,sBAAuB,WACtB,OAAOjf,EAAYme,EAAwB,MAI5Ce,iBAAkB,SAAUl6C,EAAMU,GAMjC,OALkB,MAAbs6B,IACJh7B,EAAO85C,EAAqB95C,EAAKkS,eAChC4nC,EAAqB95C,EAAKkS,gBAAmBlS,EAC9C65C,EAAgB75C,GAASU,GAEnByB,MAIRg4C,iBAAkB,SAAU95B,GAI3B,OAHkB,MAAb2a,IACJx5B,EAAE44C,SAAW/5B,GAEPle,MAIRy3C,WAAY,SAAU9xC,GACrB,IAAIe,EACJ,GAAKf,EACJ,GAAKkzB,EAGJuc,EAAM1e,OAAQ/wB,EAAKyvC,EAAM8C,cAIzB,IAAMxxC,KAAQf,EACb8xC,EAAY/wC,GAAS,CAAE+wC,EAAY/wC,GAAQf,EAAKe,IAInD,OAAO1G,MAIRm4C,MAAO,SAAUC,GAChB,IAAIC,EAAYD,GAAcR,EAK9B,OAJKd,GACJA,EAAUqB,MAAOE,GAElB3yB,EAAM,EAAG2yB,GACFr4C,OAoBV,GAfA22B,EAAStB,QAAS+f,GAKlB/1C,EAAE22C,MAAUA,GAAO32C,EAAE22C,KAAOvnB,GAASG,MAAS,IAC5CtmB,QAASosC,GAAWjmB,GAASynB,SAAW,MAG1C72C,EAAE6e,KAAO7L,EAAQ+iB,QAAU/iB,EAAQ6L,MAAQ7e,EAAE+1B,QAAU/1B,EAAE6e,KAGzD7e,EAAE61C,WAAc71C,EAAE41C,UAAY,KAAMllC,cAAc/I,MAAO4tB,IAAmB,CAAE,IAGxD,MAAjBv1B,EAAEi5C,YAAsB,CAC5BnB,EAAYn0C,EAASoB,cAAe,KAKpC,IACC+yC,EAAUvoB,KAAOvvB,EAAE22C,IAInBmB,EAAUvoB,KAAOuoB,EAAUvoB,KAC3BvvB,EAAEi5C,YAAczD,GAAaqB,SAAW,KAAOrB,GAAa0D,MAC3DpB,EAAUjB,SAAW,KAAOiB,EAAUoB,KACtC,MAAQx4C,GAITV,EAAEi5C,aAAc,GAalB,GARKj5C,EAAEqL,MAAQrL,EAAE82C,aAAiC,iBAAX92C,EAAEqL,OACxCrL,EAAEqL,KAAOuX,EAAO+xB,MAAO30C,EAAEqL,KAAMrL,EAAE00C,cAIlCoB,GAA+BpH,GAAY1uC,EAAGgT,EAAS+iC,GAGlDvc,EACJ,OAAOuc,EA6ER,IAAM93C,KAxEN85C,EAAcn1B,EAAO7U,OAAS/N,EAAEkJ,SAGQ,GAApB0Z,EAAO4zB,UAC1B5zB,EAAO7U,MAAMO,QAAS,aAIvBtO,EAAE6e,KAAO7e,EAAE6e,KAAK3L,cAGhBlT,EAAEm5C,YAAc/D,GAAW7tC,KAAMvH,EAAE6e,MAKnC64B,EAAW13C,EAAE22C,IAAI1tC,QAASgsC,GAAO,IAG3Bj1C,EAAEm5C,WAuBIn5C,EAAEqL,MAAQrL,EAAE82C,aACoD,KAAzE92C,EAAEg3C,aAAe,IAAKnvC,QAAS,uCACjC7H,EAAEqL,KAAOrL,EAAEqL,KAAKpC,QAAS+rC,GAAK,OAtB9BgD,EAAWh4C,EAAE22C,IAAI1vC,MAAOywC,EAASx2C,QAG5BlB,EAAEqL,OAAUrL,EAAE82C,aAAiC,iBAAX92C,EAAEqL,QAC1CqsC,IAAcvD,GAAO5sC,KAAMmwC,GAAa,IAAM,KAAQ13C,EAAEqL,YAGjDrL,EAAEqL,OAIO,IAAZrL,EAAE6pB,QACN6tB,EAAWA,EAASzuC,QAASisC,GAAY,MACzC8C,GAAa7D,GAAO5sC,KAAMmwC,GAAa,IAAM,KAAQ,KAASp1B,KAAY01B,GAI3Eh4C,EAAE22C,IAAMe,EAAWM,GASfh4C,EAAEo5C,aACDx2B,EAAO6zB,aAAciB,IACzB3B,EAAM2C,iBAAkB,oBAAqB91B,EAAO6zB,aAAciB,IAE9D90B,EAAO8zB,KAAMgB,IACjB3B,EAAM2C,iBAAkB,gBAAiB91B,EAAO8zB,KAAMgB,MAKnD13C,EAAEqL,MAAQrL,EAAEm5C,aAAgC,IAAlBn5C,EAAEg3C,aAAyBhkC,EAAQgkC,cACjEjB,EAAM2C,iBAAkB,eAAgB14C,EAAEg3C,aAI3CjB,EAAM2C,iBACL,SACA14C,EAAE61C,UAAW,IAAO71C,EAAEi3C,QAASj3C,EAAE61C,UAAW,IAC3C71C,EAAEi3C,QAASj3C,EAAE61C,UAAW,KACA,MAArB71C,EAAE61C,UAAW,GAAc,KAAON,GAAW,WAAa,IAC7Dv1C,EAAEi3C,QAAS,MAIFj3C,EAAEq5C,QACZtD,EAAM2C,iBAAkBz6C,EAAG+B,EAAEq5C,QAASp7C,IAIvC,GAAK+B,EAAEs5C,cAC+C,IAAnDt5C,EAAEs5C,WAAWl7C,KAAM65C,EAAiBlC,EAAO/1C,IAAiBw5B,GAG9D,OAAOuc,EAAM+C,QAed,GAXAP,EAAW,QAGXJ,EAAiBlyC,IAAKjG,EAAEmvC,UACxB4G,EAAM1vB,KAAMrmB,EAAEu5C,SACdxD,EAAM9f,KAAMj2B,EAAEuM,OAGdkrC,EAAY3B,GAA+BR,GAAYt1C,EAAGgT,EAAS+iC,GAK5D,CASN,GARAA,EAAMnc,WAAa,EAGdme,GACJG,EAAmB5pC,QAAS,WAAY,CAAEynC,EAAO/1C,IAI7Cw5B,EACJ,OAAOuc,EAIH/1C,EAAE+2C,OAAS/2C,EAAEqB,QAAU,IAC3Bw2C,EAAexzC,EAAO5D,YAAY,WACjCs1C,EAAM+C,MAAO,aACX94C,EAAEqB,UAGN,IACCm4B,GAAY,EACZie,EAAU+B,KAAMnB,EAAgBhyB,GAC/B,MAAQ3lB,GAGT,GAAK84B,EACJ,MAAM94B,EAIP2lB,GAAO,EAAG3lB,SAhCX2lB,GAAO,EAAG,gBAqCX,SAASA,EAAMwyB,EAAQY,EAAkBC,EAAWL,GACnD,IAAIM,EAAWJ,EAAShtC,EAAOqtC,EAAUC,EACxCd,EAAaU,EAGTjgB,IAILA,GAAY,EAGPqe,GACJxzC,EAAOzD,aAAci3C,GAKtBJ,OAAYnzC,EAGZqzC,EAAwB0B,GAAW,GAGnCtD,EAAMnc,WAAaif,EAAS,EAAI,EAAI,EAGpCc,EAAYd,GAAU,KAAOA,EAAS,KAAkB,MAAXA,EAGxCa,IACJE,EA5lBJ,SAA8B55C,EAAG+1C,EAAO2D,GAOvC,IALA,IAAII,EAAIj7B,EAAMk7B,EAAeC,EAC5BxlB,EAAWx0B,EAAEw0B,SACbqhB,EAAY71C,EAAE61C,UAGY,MAAnBA,EAAW,IAClBA,EAAU9rB,aACEzlB,IAAPw1C,IACJA,EAAK95C,EAAE44C,UAAY7C,EAAMyC,kBAAmB,iBAK9C,GAAKsB,EACJ,IAAMj7B,KAAQ2V,EACb,GAAKA,EAAU3V,IAAU2V,EAAU3V,GAAOtX,KAAMuyC,GAAO,CACtDjE,EAAUjpB,QAAS/N,GACnB,MAMH,GAAKg3B,EAAW,KAAO6D,EACtBK,EAAgBlE,EAAW,OACrB,CAGN,IAAMh3B,KAAQ66B,EAAY,CACzB,IAAM7D,EAAW,IAAO71C,EAAEo3C,WAAYv4B,EAAO,IAAMg3B,EAAW,IAAQ,CACrEkE,EAAgBl7B,EAChB,MAEKm7B,IACLA,EAAgBn7B,GAKlBk7B,EAAgBA,GAAiBC,EAMlC,GAAKD,EAIJ,OAHKA,IAAkBlE,EAAW,IACjCA,EAAUjpB,QAASmtB,GAEbL,EAAWK,GAyiBLE,CAAqBj6C,EAAG+1C,EAAO2D,IAI3CE,EAtiBH,SAAsB55C,EAAG45C,EAAU7D,EAAO4D,GACzC,IAAIO,EAAO17B,EAAS27B,EAAMtuB,EAAKzkB,EAC9BgwC,EAAa,GAGbvB,EAAY71C,EAAE61C,UAAU5uC,QAGzB,GAAK4uC,EAAW,GACf,IAAMsE,KAAQn6C,EAAEo3C,WACfA,EAAY+C,EAAKzpC,eAAkB1Q,EAAEo3C,WAAY+C,GAOnD,IAHA37B,EAAUq3B,EAAU9rB,QAGZvL,GAcP,GAZKxe,EAAEm3C,eAAgB34B,KACtBu3B,EAAO/1C,EAAEm3C,eAAgB34B,IAAco7B,IAIlCxyC,GAAQuyC,GAAa35C,EAAEo6C,aAC5BR,EAAW55C,EAAEo6C,WAAYR,EAAU55C,EAAE41C,WAGtCxuC,EAAOoX,EACPA,EAAUq3B,EAAU9rB,QAKnB,GAAiB,MAAZvL,EAEJA,EAAUpX,OAGJ,GAAc,MAATA,GAAgBA,IAASoX,EAAU,CAM9C,KAHA27B,EAAO/C,EAAYhwC,EAAO,IAAMoX,IAAa44B,EAAY,KAAO54B,IAI/D,IAAM07B,KAAS9C,EAId,IADAvrB,EAAMquB,EAAM5wC,MAAO,MACT,KAAQkV,IAGjB27B,EAAO/C,EAAYhwC,EAAO,IAAMykB,EAAK,KACpCurB,EAAY,KAAOvrB,EAAK,KACb,EAGG,IAATsuB,EACJA,EAAO/C,EAAY8C,IAGgB,IAAxB9C,EAAY8C,KACvB17B,EAAUqN,EAAK,GACfgqB,EAAUjpB,QAASf,EAAK,KAEzB,MAOJ,IAAc,IAATsuB,EAGJ,GAAKA,GAAQn6C,EAAEq6C,OACdT,EAAWO,EAAMP,QAEjB,IACCA,EAAWO,EAAMP,GAChB,MAAQl5C,GACT,MAAO,CACN02B,MAAO,cACP7qB,MAAO4tC,EAAOz5C,EAAI,sBAAwB0G,EAAO,OAASoX,IASjE,MAAO,CAAE4Y,MAAO,UAAW/rB,KAAMuuC,GAycpBU,CAAat6C,EAAG45C,EAAU7D,EAAO4D,GAGvCA,GAGC35C,EAAEo5C,cACNS,EAAW9D,EAAMyC,kBAAmB,oBAEnC51B,EAAO6zB,aAAciB,GAAamC,IAEnCA,EAAW9D,EAAMyC,kBAAmB,WAEnC51B,EAAO8zB,KAAMgB,GAAamC,IAKZ,MAAXhB,GAA6B,SAAX74C,EAAE6e,KACxBk6B,EAAa,YAGS,MAAXF,EACXE,EAAa,eAIbA,EAAaa,EAASxiB,MACtBmiB,EAAUK,EAASvuC,KAEnBsuC,IADAptC,EAAQqtC,EAASrtC,UAMlBA,EAAQwsC,GACHF,GAAWE,IACfA,EAAa,QACRF,EAAS,IACbA,EAAS,KAMZ9C,EAAM8C,OAASA,EACf9C,EAAMgD,YAAeU,GAAoBV,GAAe,GAGnDY,EACJriB,EAASiB,YAAa0f,EAAiB,CAAEsB,EAASR,EAAYhD,IAE9Dze,EAASoB,WAAYuf,EAAiB,CAAElC,EAAOgD,EAAYxsC,IAI5DwpC,EAAMqC,WAAYA,GAClBA,OAAa9zC,EAERyzC,GACJG,EAAmB5pC,QAASqrC,EAAY,cAAgB,YACvD,CAAE5D,EAAO/1C,EAAG25C,EAAYJ,EAAUhtC,IAIpC4rC,EAAiBnhB,SAAUihB,EAAiB,CAAElC,EAAOgD,IAEhDhB,IACJG,EAAmB5pC,QAAS,eAAgB,CAAEynC,EAAO/1C,MAG3C4iB,EAAO4zB,QAChB5zB,EAAO7U,MAAMO,QAAS,cAKzB,OAAOynC,GAGRwE,QAAS,SAAU5D,EAAKtrC,EAAMkY,GAC7B,OAAOX,EAAO9jB,IAAK63C,EAAKtrC,EAAMkY,EAAU,SAGzCi3B,UAAW,SAAU7D,EAAKpzB,GACzB,OAAOX,EAAO9jB,IAAK63C,OAAKryC,EAAWif,EAAU,aAI/CX,EAAOhQ,KAAM,CAAE,MAAO,SAAU,SAAU3U,EAAG83B,GAC5CnT,EAAQmT,GAAW,SAAU4gB,EAAKtrC,EAAMkY,EAAU1E,GAUjD,OAPK3M,EAAY7G,KAChBwT,EAAOA,GAAQ0E,EACfA,EAAWlY,EACXA,OAAO/G,GAIDse,EAAO40B,KAAM50B,EAAO5T,OAAQ,CAClC2nC,IAAKA,EACL93B,KAAMkX,EACN6f,SAAU/2B,EACVxT,KAAMA,EACNkuC,QAASh2B,GACPX,EAAOoB,cAAe2yB,IAASA,QAKpC/zB,EAAOyjB,SAAW,SAAUsQ,EAAK3jC,GAChC,OAAO4P,EAAO40B,KAAM,CACnBb,IAAKA,EAGL93B,KAAM,MACN+2B,SAAU,SACV/rB,OAAO,EACPktB,OAAO,EACP7tC,QAAQ,EAKRkuC,WAAY,CACX,cAAe,cAEhBgD,WAAY,SAAUR,GACrBh3B,EAAO4B,WAAYo1B,EAAU5mC,OAMhC4P,EAAO5U,GAAGgB,OAAQ,CACjByrC,QAAS,SAAUxqC,GAClB,IAAI6uB,EAyBJ,OAvBKn+B,KAAM,KACLuR,EAAYjC,KAChBA,EAAOA,EAAK7R,KAAMuC,KAAM,KAIzBm+B,EAAOlc,EAAQ3S,EAAMtP,KAAM,GAAIyP,eAAgBqT,GAAI,GAAIK,OAAO,GAEzDnjB,KAAM,GAAIgF,YACdm5B,EAAK9tB,aAAcrQ,KAAM,IAG1Bm+B,EAAKx4B,KAAK,WAGT,IAFA,IAAIwT,EAAOnZ,KAEHmZ,EAAK4gC,mBACZ5gC,EAAOA,EAAK4gC,kBAGb,OAAO5gC,KACJmC,OAAQtb,OAGNA,MAGRg6C,UAAW,SAAU1qC,GACpB,OAAKiC,EAAYjC,GACTtP,KAAKiS,MAAM,SAAU3U,GAC3B2kB,EAAQjiB,MAAOg6C,UAAW1qC,EAAK7R,KAAMuC,KAAM1C,OAItC0C,KAAKiS,MAAM,WACjB,IAAIqhB,EAAOrR,EAAQjiB,MAClB6zB,EAAWP,EAAKO,WAEZA,EAAStzB,OACbszB,EAASimB,QAASxqC,GAGlBgkB,EAAKhY,OAAQhM,OAKhB6uB,KAAM,SAAU7uB,GACf,IAAI2qC,EAAiB1oC,EAAYjC,GAEjC,OAAOtP,KAAKiS,MAAM,SAAU3U,GAC3B2kB,EAAQjiB,MAAO85C,QAASG,EAAiB3qC,EAAK7R,KAAMuC,KAAM1C,GAAMgS,OAIlE4qC,OAAQ,SAAUp3C,GAIjB,OAHA9C,KAAKsT,OAAQxQ,GAAWuwB,IAAK,QAASphB,MAAM,WAC3CgQ,EAAQjiB,MAAOsmC,YAAatmC,KAAKooB,eAE3BpoB,QAKTiiB,EAAO/X,KAAKoc,QAAQrX,OAAS,SAAUkK,GACtC,OAAQ8I,EAAO/X,KAAKoc,QAAQ6zB,QAAShhC,IAEtC8I,EAAO/X,KAAKoc,QAAQ6zB,QAAU,SAAUhhC,GACvC,SAAWA,EAAKmvB,aAAenvB,EAAKihC,cAAgBjhC,EAAK2xB,iBAAiBvqC,SAM3E0hB,EAAO2zB,aAAayE,IAAM,WACzB,IACC,OAAO,IAAI32C,EAAO42C,eACjB,MAAQv6C,MAGX,IAAIw6C,GAAmB,CAGrBC,EAAG,IAIHC,KAAM,KAEPC,GAAez4B,EAAO2zB,aAAayE,MAEpC74B,EAAQm5B,OAASD,IAAkB,oBAAqBA,GACxDl5B,EAAQq1B,KAAO6D,KAAiBA,GAEhCz4B,EAAO20B,eAAe,SAAUvkC,GAC/B,IAAIuQ,EAAUg4B,EAGd,GAAKp5B,EAAQm5B,MAAQD,KAAiBroC,EAAQimC,YAC7C,MAAO,CACNO,KAAM,SAAUH,EAASlK,GACxB,IAAIlxC,EACH+8C,EAAMhoC,EAAQgoC,MAWf,GATAA,EAAIQ,KACHxoC,EAAQ6L,KACR7L,EAAQ2jC,IACR3jC,EAAQ+jC,MACR/jC,EAAQyoC,SACRzoC,EAAQ8c,UAIJ9c,EAAQ0oC,UACZ,IAAMz9C,KAAK+U,EAAQ0oC,UAClBV,EAAK/8C,GAAM+U,EAAQ0oC,UAAWz9C,GAmBhC,IAAMA,KAdD+U,EAAQ4lC,UAAYoC,EAAIrC,kBAC5BqC,EAAIrC,iBAAkB3lC,EAAQ4lC,UAQzB5lC,EAAQimC,aAAgBI,EAAS,sBACtCA,EAAS,oBAAuB,kBAItBA,EACV2B,EAAItC,iBAAkBz6C,EAAGo7C,EAASp7C,IAInCslB,EAAW,SAAU1E,GACpB,OAAO,WACD0E,IACJA,EAAWg4B,EAAgBP,EAAIW,OAC9BX,EAAIY,QAAUZ,EAAIa,QAAUb,EAAIc,UAC/Bd,EAAIe,mBAAqB,KAEb,UAATl9B,EACJm8B,EAAIlC,QACgB,UAATj6B,EAKgB,iBAAfm8B,EAAInC,OACf1J,EAAU,EAAG,SAEbA,EAGC6L,EAAInC,OACJmC,EAAIjC,YAIN5J,EACC+L,GAAkBF,EAAInC,SAAYmC,EAAInC,OACtCmC,EAAIjC,WAK+B,UAAjCiC,EAAIgB,cAAgB,SACM,iBAArBhB,EAAIiB,aACV,CAAEC,OAAQlB,EAAIpB,UACd,CAAE9kC,KAAMkmC,EAAIiB,cACbjB,EAAIvC,4BAQTuC,EAAIW,OAASp4B,IACbg4B,EAAgBP,EAAIY,QAAUZ,EAAIc,UAAYv4B,EAAU,cAKnCjf,IAAhB02C,EAAIa,QACRb,EAAIa,QAAUN,EAEdP,EAAIe,mBAAqB,WAGA,IAAnBf,EAAIphB,YAMRv1B,EAAO5D,YAAY,WACb8iB,GACJg4B,QAQLh4B,EAAWA,EAAU,SAErB,IAGCy3B,EAAIxB,KAAMxmC,EAAQmmC,YAAcnmC,EAAQ3H,MAAQ,MAC/C,MAAQ3K,GAGT,GAAK6iB,EACJ,MAAM7iB,IAKTo4C,MAAO,WACDv1B,GACJA,SAWLX,EAAO00B,eAAe,SAAUt3C,GAC1BA,EAAEi5C,cACNj5C,EAAEw0B,SAAS9R,QAAS,MAKtBE,EAAOy0B,UAAW,CACjBJ,QAAS,CACRv0B,OAAQ,6FAGT8R,SAAU,CACT9R,OAAQ,2BAET00B,WAAY,CACX,cAAe,SAAUtiC,GAExB,OADA8N,EAAO4B,WAAY1P,GACZA,MAMV8N,EAAO00B,cAAe,UAAU,SAAUt3C,QACxBsE,IAAZtE,EAAE6pB,QACN7pB,EAAE6pB,OAAQ,GAEN7pB,EAAEi5C,cACNj5C,EAAE6e,KAAO,UAKX+D,EAAO20B,cAAe,UAAU,SAAUv3C,GAIxC,IAAI0iB,EAAQa,EADb,GAAKvjB,EAAEi5C,aAAej5C,EAAEm8C,YAEvB,MAAO,CACN3C,KAAM,SAAU5tC,EAAGujC,GAClBzsB,EAASE,EAAQ,YACfpL,KAAMxX,EAAEm8C,aAAe,IACvBhrC,KAAM,CAAEirC,QAASp8C,EAAEq8C,cAAeptC,IAAKjP,EAAE22C,MACzCl0C,GAAI,aAAc8gB,EAAW,SAAU+4B,GACvC55B,EAAO/b,SACP4c,EAAW,KACN+4B,GACJnN,EAAuB,UAAbmN,EAAIz9B,KAAmB,IAAM,IAAKy9B,EAAIz9B,QAKnDlb,EAASkC,KAAKC,YAAa4c,EAAQ,KAEpCo2B,MAAO,WACDv1B,GACJA,SAUL,IAqGK8Z,GArGDkf,GAAe,GAClBC,GAAS,oBAGV55B,EAAOy0B,UAAW,CACjBoF,MAAO,WACPC,cAAe,WACd,IAAIn5B,EAAWg5B,GAAa31B,OAAWhE,EAAOqB,QAAU,IAAQ3B,KAEhE,OADA3hB,KAAM4iB,IAAa,EACZA,KAKTX,EAAO00B,cAAe,cAAc,SAAUt3C,EAAG28C,EAAkB5G,GAElE,IAAI6G,EAAcC,EAAaC,EAC9BC,GAAuB,IAAZ/8C,EAAEy8C,QAAqBD,GAAOj1C,KAAMvH,EAAE22C,KAChD,MACkB,iBAAX32C,EAAEqL,MAE6C,KADnDrL,EAAEg3C,aAAe,IACjBnvC,QAAS,sCACX20C,GAAOj1C,KAAMvH,EAAEqL,OAAU,QAI5B,GAAK0xC,GAAiC,UAArB/8C,EAAE61C,UAAW,GA8D7B,OA3DA+G,EAAe58C,EAAE08C,cAAgBxqC,EAAYlS,EAAE08C,eAC9C18C,EAAE08C,gBACF18C,EAAE08C,cAGEK,EACJ/8C,EAAG+8C,GAAa/8C,EAAG+8C,GAAW9zC,QAASuzC,GAAQ,KAAOI,IAC/B,IAAZ58C,EAAEy8C,QACbz8C,EAAE22C,MAASxC,GAAO5sC,KAAMvH,EAAE22C,KAAQ,IAAM,KAAQ32C,EAAEy8C,MAAQ,IAAMG,GAIjE58C,EAAEo3C,WAAY,eAAkB,WAI/B,OAHM0F,GACLl6B,EAAOrW,MAAOqwC,EAAe,mBAEvBE,EAAmB,IAI3B98C,EAAE61C,UAAW,GAAM,OAGnBgH,EAAcx4C,EAAQu4C,GACtBv4C,EAAQu4C,GAAiB,WACxBE,EAAoB96C,WAIrB+zC,EAAM1e,QAAQ,gBAGQ/yB,IAAhBu4C,EACJj6B,EAAQve,GAASguC,WAAYuK,GAI7Bv4C,EAAQu4C,GAAiBC,EAIrB78C,EAAG48C,KAGP58C,EAAE08C,cAAgBC,EAAiBD,cAGnCH,GAAat6C,KAAM26C,IAIfE,GAAqB5qC,EAAY2qC,IACrCA,EAAaC,EAAmB,IAGjCA,EAAoBD,OAAcv4C,KAI5B,YAYT6d,EAAQ66B,qBACH3f,GAAO15B,EAASs5C,eAAeD,mBAAoB,IAAK3f,MACvD32B,UAAY,6BACiB,IAA3B22B,GAAKtU,WAAW7nB,QAQxB0hB,EAAOuR,UAAY,SAAU9oB,EAAMgG,EAAS6rC,GAC3C,MAAqB,iBAAT7xC,EACJ,IAEgB,kBAAZgG,IACX6rC,EAAc7rC,EACdA,GAAU,GAKLA,IAIA8Q,EAAQ66B,qBAMZ5sB,GALA/e,EAAU1N,EAASs5C,eAAeD,mBAAoB,KAKvCj4C,cAAe,SACzBwqB,KAAO5rB,EAASyrB,SAASG,KAC9Ble,EAAQxL,KAAKC,YAAasqB,IAE1B/e,EAAU1N,GAKZg7B,GAAWue,GAAe,IAD1BC,EAAStpB,EAAWzuB,KAAMiG,IAKlB,CAAEgG,EAAQtM,cAAeo4C,EAAQ,MAGzCA,EAASze,GAAe,CAAErzB,GAAQgG,EAASstB,GAEtCA,GAAWA,EAAQz9B,QACvB0hB,EAAQ+b,GAAUh4B,SAGZic,EAAOS,MAAO,GAAI85B,EAAOp0B,cAlChC,IAAIqH,EAAM+sB,EAAQxe,GAyCnB/b,EAAO5U,GAAGw0B,KAAO,SAAUmU,EAAKyG,EAAQ75B,GACvC,IAAI9f,EAAUob,EAAM+6B,EACnB3lB,EAAOtzB,KACPiC,EAAM+zC,EAAI9uC,QAAS,KAsDpB,OApDKjF,GAAO,IACXa,EAAWyuC,GAAkByE,EAAI1vC,MAAOrE,IACxC+zC,EAAMA,EAAI1vC,MAAO,EAAGrE,IAIhBsP,EAAYkrC,IAGhB75B,EAAW65B,EACXA,OAAS94C,GAGE84C,GAA4B,iBAAXA,IAC5Bv+B,EAAO,QAIHoV,EAAK/yB,OAAS,GAClB0hB,EAAO40B,KAAM,CACZb,IAAKA,EAKL93B,KAAMA,GAAQ,MACd+2B,SAAU,OACVvqC,KAAM+xC,IACH/2B,MAAM,SAAU41B,GAGnBrC,EAAW53C,UAEXiyB,EAAKhkB,KAAMxM,EAIVmf,EAAQ,SAAU3G,OAAQ2G,EAAOuR,UAAW8nB,IAAiBtwB,KAAMloB,GAGnEw4C,MAKE5kB,OAAQ9T,GAAY,SAAUwyB,EAAO8C,GACxC5kB,EAAKrhB,MAAM,WACV2Q,EAASrhB,MAAOvB,KAAMi5C,GAAY,CAAE7D,EAAMkG,aAAcpD,EAAQ9C,SAK5Dp1C,MAORiiB,EAAOhQ,KAAM,CACZ,YACA,WACA,eACA,YACA,cACA,aACE,SAAU3U,EAAG4gB,GACf+D,EAAO5U,GAAI6Q,GAAS,SAAU7Q,GAC7B,OAAOrN,KAAK8B,GAAIoc,EAAM7Q,OAOxB4U,EAAO/X,KAAKoc,QAAQo2B,SAAW,SAAUvjC,GACxC,OAAO8I,EAAOiC,KAAMjC,EAAO+tB,QAAQ,SAAU3iC,GAC5C,OAAO8L,IAAS9L,EAAG8L,QAChB5Y,QAML0hB,EAAO06B,OAAS,CACfC,UAAW,SAAUzjC,EAAM9G,EAAS/U,GACnC,IAAIu/C,EAAaC,EAASC,EAAWC,EAAQC,EAAWC,EACvD9U,EAAWnmB,EAAO1c,IAAK4T,EAAM,YAC7BgkC,EAAUl7B,EAAQ9I,GAClBmB,EAAQ,GAGS,WAAb8tB,IACJjvB,EAAK1T,MAAM2iC,SAAW,YAGvB6U,EAAYE,EAAQR,SACpBI,EAAY96B,EAAO1c,IAAK4T,EAAM,OAC9B+jC,EAAaj7B,EAAO1c,IAAK4T,EAAM,SACI,aAAbivB,GAAwC,UAAbA,KAC9C2U,EAAYG,GAAah2C,QAAS,SAAY,GAMhD81C,GADAH,EAAcM,EAAQ/U,YACD3d,IACrBqyB,EAAUD,EAAYpR,OAGtBuR,EAASvU,WAAYsU,IAAe,EACpCD,EAAUrU,WAAYyU,IAAgB,GAGlC3rC,EAAYc,KAGhBA,EAAUA,EAAQ5U,KAAM0b,EAAM7b,EAAG2kB,EAAO5T,OAAQ,GAAI4uC,KAGjC,MAAf5qC,EAAQoY,MACZnQ,EAAMmQ,IAAQpY,EAAQoY,IAAMwyB,EAAUxyB,IAAQuyB,GAE1B,MAAhB3qC,EAAQo5B,OACZnxB,EAAMmxB,KAASp5B,EAAQo5B,KAAOwR,EAAUxR,KAASqR,GAG7C,UAAWzqC,EACfA,EAAQ+qC,MAAM3/C,KAAM0b,EAAMmB,GAG1B6iC,EAAQ53C,IAAK+U,KAKhB2H,EAAO5U,GAAGgB,OAAQ,CAGjBsuC,OAAQ,SAAUtqC,GAGjB,GAAKhR,UAAUd,OACd,YAAmBoD,IAAZ0O,EACNrS,KACAA,KAAKiS,MAAM,SAAU3U,GACpB2kB,EAAO06B,OAAOC,UAAW58C,KAAMqS,EAAS/U,MAI3C,IAAI+/C,EAAMC,EACTnkC,EAAOnZ,KAAM,GAEd,OAAMmZ,EAQAA,EAAK2xB,iBAAiBvqC,QAK5B88C,EAAOlkC,EAAKoyB,wBACZ+R,EAAMnkC,EAAK1J,cAAc+a,YAClB,CACNC,IAAK4yB,EAAK5yB,IAAM6yB,EAAIC,YACpB9R,KAAM4R,EAAK5R,KAAO6R,EAAIE,cARf,CAAE/yB,IAAK,EAAGghB,KAAM,QATxB,GAuBDrD,SAAU,WACT,GAAMpoC,KAAM,GAAZ,CAIA,IAAIy9C,EAAcd,EAAQ76B,EACzB3I,EAAOnZ,KAAM,GACb09C,EAAe,CAAEjzB,IAAK,EAAGghB,KAAM,GAGhC,GAAwC,UAAnCxpB,EAAO1c,IAAK4T,EAAM,YAGtBwjC,EAASxjC,EAAKoyB,4BAER,CAON,IANAoR,EAAS38C,KAAK28C,SAId76B,EAAM3I,EAAK1J,cACXguC,EAAetkC,EAAKskC,cAAgB37B,EAAIjS,gBAChC4tC,IACLA,IAAiB37B,EAAI4a,MAAQ+gB,IAAiB37B,EAAIjS,kBACT,WAA3CoS,EAAO1c,IAAKk4C,EAAc,aAE1BA,EAAeA,EAAaz4C,WAExBy4C,GAAgBA,IAAiBtkC,GAAkC,IAA1BskC,EAAat/B,YAG1Du/B,EAAez7B,EAAQw7B,GAAed,UACzBlyB,KAAOxI,EAAO1c,IAAKk4C,EAAc,kBAAkB,GAChEC,EAAajS,MAAQxpB,EAAO1c,IAAKk4C,EAAc,mBAAmB,IAKpE,MAAO,CACNhzB,IAAKkyB,EAAOlyB,IAAMizB,EAAajzB,IAAMxI,EAAO1c,IAAK4T,EAAM,aAAa,GACpEsyB,KAAMkR,EAAOlR,KAAOiS,EAAajS,KAAOxpB,EAAO1c,IAAK4T,EAAM,cAAc,MAc1EskC,aAAc,WACb,OAAOz9C,KAAK2F,KAAK,WAGhB,IAFA,IAAI83C,EAAez9C,KAAKy9C,aAEhBA,GAA2D,WAA3Cx7B,EAAO1c,IAAKk4C,EAAc,aACjDA,EAAeA,EAAaA,aAG7B,OAAOA,GAAgB5tC,SAM1BoS,EAAOhQ,KAAM,CAAEu6B,WAAY,cAAeD,UAAW,gBAAiB,SAAUnX,EAAQ5kB,GACvF,IAAIia,EAAM,gBAAkBja,EAE5ByR,EAAO5U,GAAI+nB,GAAW,SAAU7wB,GAC/B,OAAO40B,EAAQn5B,MAAM,SAAUmZ,EAAMic,EAAQ7wB,GAG5C,IAAI+4C,EAOJ,GANK77B,EAAUtI,GACdmkC,EAAMnkC,EACuB,IAAlBA,EAAKgF,WAChBm/B,EAAMnkC,EAAKqR,kBAGC7mB,IAARY,EACJ,OAAO+4C,EAAMA,EAAK9sC,GAAS2I,EAAMic,GAG7BkoB,EACJA,EAAIK,SACFlzB,EAAY6yB,EAAIE,YAAVj5C,EACPkmB,EAAMlmB,EAAM+4C,EAAIC,aAIjBpkC,EAAMic,GAAW7wB,IAEhB6wB,EAAQ7wB,EAAKlD,UAAUd,YAU5B0hB,EAAOhQ,KAAM,CAAE,MAAO,SAAU,SAAU3U,EAAGkT,GAC5CyR,EAAOgpB,SAAUz6B,GAASg3B,GAAchmB,EAAQqnB,eAC/C,SAAU1vB,EAAM+tB,GACf,GAAKA,EAIJ,OAHAA,EAAWD,GAAQ9tB,EAAM3I,GAGlBo2B,GAAUhgC,KAAMsgC,GACtBjlB,EAAQ9I,GAAOivB,WAAY53B,GAAS,KACpC02B,QAQLjlB,EAAOhQ,KAAM,CAAE2rC,OAAQ,SAAUC,MAAO,UAAW,SAAUhgD,EAAMqgB,GAClE+D,EAAOhQ,KAAM,CAAE05B,QAAS,QAAU9tC,EAAM62B,QAASxW,EAAM,GAAI,QAAUrgB,IACpE,SAAUigD,EAAcC,GAGxB97B,EAAO5U,GAAI0wC,GAAa,SAAUrS,EAAQntC,GACzC,IAAI66B,EAAY/3B,UAAUd,SAAYu9C,GAAkC,kBAAXpS,GAC5DlB,EAAQsT,KAA6B,IAAXpS,IAA6B,IAAVntC,EAAiB,SAAW,UAE1E,OAAO46B,EAAQn5B,MAAM,SAAUmZ,EAAM+E,EAAM3f,GAC1C,IAAIujB,EAEJ,OAAKL,EAAUtI,GAGyB,IAAhC4kC,EAAS72C,QAAS,SACxBiS,EAAM,QAAUtb,GAChBsb,EAAKnW,SAAS6M,gBAAiB,SAAWhS,GAIrB,IAAlBsb,EAAKgF,UACT2D,EAAM3I,EAAKtJ,gBAIJ0T,KAAK0mB,IACX9wB,EAAKujB,KAAM,SAAW7+B,GAAQikB,EAAK,SAAWjkB,GAC9Csb,EAAKujB,KAAM,SAAW7+B,GAAQikB,EAAK,SAAWjkB,GAC9CikB,EAAK,SAAWjkB,UAID8F,IAAVpF,EAGN0jB,EAAO1c,IAAK4T,EAAM+E,EAAMssB,GAGxBvoB,EAAOxc,MAAO0T,EAAM+E,EAAM3f,EAAOisC,KAChCtsB,EAAMkb,EAAYsS,OAAS/nC,EAAWy1B,UAM5CnX,EAAOhQ,KAAM,wLAEgDtJ,MAAO,MACnE,SAAUrL,EAAGO,GAGbokB,EAAO5U,GAAIxP,GAAS,SAAU6M,EAAM2C,GACnC,OAAOhM,UAAUd,OAAS,EACzBP,KAAK8B,GAAIjE,EAAM,KAAM6M,EAAM2C,GAC3BrN,KAAK2N,QAAS9P,OAIjBokB,EAAO5U,GAAGgB,OAAQ,CACjB2vC,MAAO,SAAUC,EAAQC,GACxB,OAAOl+C,KAAKkkC,WAAY+Z,GAAS9Z,WAAY+Z,GAASD,MAOxDh8B,EAAO5U,GAAGgB,OAAQ,CAEjBvP,KAAM,SAAUmgC,EAAOv0B,EAAM2C,GAC5B,OAAOrN,KAAK8B,GAAIm9B,EAAO,KAAMv0B,EAAM2C,IAEpC8wC,OAAQ,SAAUlf,EAAO5xB,GACxB,OAAOrN,KAAKiC,IAAKg9B,EAAO,KAAM5xB,IAG/B+wC,SAAU,SAAUt7C,EAAUm8B,EAAOv0B,EAAM2C,GAC1C,OAAOrN,KAAK8B,GAAIm9B,EAAOn8B,EAAU4H,EAAM2C,IAExCgxC,WAAY,SAAUv7C,EAAUm8B,EAAO5xB,GAGtC,OAA4B,IAArBhM,UAAUd,OAChBP,KAAKiC,IAAKa,EAAU,MACpB9C,KAAKiC,IAAKg9B,EAAOn8B,GAAY,KAAMuK,MAQtC4U,EAAOq8B,MAAQ,SAAUjxC,EAAIqD,GAC5B,IAAIwa,EAAK/pB,EAAMm9C,EAUf,GARwB,iBAAZ5tC,IACXwa,EAAM7d,EAAIqD,GACVA,EAAUrD,EACVA,EAAK6d,GAKA3Z,EAAYlE,GAalB,OARAlM,EAAOmF,EAAM7I,KAAM4D,UAAW,IAC9Bi9C,EAAQ,WACP,OAAOjxC,EAAG9L,MAAOmP,GAAW1Q,KAAMmB,EAAKX,OAAQ8F,EAAM7I,KAAM4D,eAItDkjB,KAAOlX,EAAGkX,KAAOlX,EAAGkX,MAAQtC,EAAOsC,OAElC+5B,GAGRr8B,EAAOs8B,UAAY,SAAUC,GACvBA,EACJv8B,EAAO8W,YAEP9W,EAAOwR,OAAO,IAGhBxR,EAAOtQ,QAAUvQ,MAAMuQ,QACvBsQ,EAAOw8B,UAAYlnC,KAAKgjB,MACxBtY,EAAOkG,SAAWA,EAClBlG,EAAO1Q,WAAaA,EACpB0Q,EAAOR,SAAWA,EAClBQ,EAAO4X,UAAYA,EACnB5X,EAAO/D,KAAO8D,EAEdC,EAAOqgB,IAAM/c,KAAK+c,IAElBrgB,EAAOy8B,UAAY,SAAUvwC,GAK5B,IAAI+P,EAAO+D,EAAO/D,KAAM/P,GACxB,OAAkB,WAAT+P,GAA8B,WAATA,KAK5BygC,MAAOxwC,EAAMs6B,WAAYt6B,UAsB1B,KAFqB,EAAF,WACnB,OAAO8T,GACP,QAFiB,OAEjB,aAMF,IAGC28B,GAAUl7C,EAAOue,OAGjB48B,GAAKn7C,EAAOb,EAwBb,OAtBAof,EAAO68B,WAAa,SAAU17B,GAS7B,OARK1f,EAAOb,IAAMof,IACjBve,EAAOb,EAAIg8C,IAGPz7B,GAAQ1f,EAAOue,SAAWA,IAC9Bve,EAAOue,OAAS28B,IAGV38B,GAMFhB,IACLvd,EAAOue,OAASve,EAAOb,EAAIof,GAMrBA,M,6CCz0UL88B,EACAlhC,EACAmhC,EACAC,E,mCAvBEC,EAAY,iBASd5B,EAAuB,oBAAV55C,QAAyBA,OACtCoe,EAAyB,oBAAZ9e,UAA2BA,SACxCm8C,EAAO7B,GAAO8B,QACdC,EAAM/B,IAAQ6B,EAAK1wB,UAAY6uB,EAAI7uB,UACnC6wB,EAAOC,EAAOrgD,UACdsgD,EAAa19B,GAAOA,EAAI29B,aAAe,aAAe,QACtDC,EAAU,MAGVC,GAAU,EACVC,GAAa,EAKbC,EAAY,GACZC,EAAiB,EAOnB,SAASC,EAAeC,GACtB,OAAOA,EAAKr3C,MAAM,SASpB,SAASs3C,EAAsBD,EAAMpnC,GACnC,IAAIsnC,EAAItnC,EACLtQ,QAAQ,MAAO,OACfA,QAAQ,MAAO,cACfA,QAAQ,OAAQ,MACfxB,EAAK,IAAIc,OAAQ,IAAMs4C,EAAI,KAC3B/+C,EAAO6+C,EAAKh5C,MAAMF,GAEtB,GAAI3F,EAAQ,OAAOA,EAAKmF,MAAM,GAqBhC,SAASO,EAAMs5C,GAZf,IAAkB9yC,EAAIqjC,EAChBlyC,EADY6O,EAaSjL,EAbLsuC,EAaW,EAA/BqO,EAXO,WACL9+C,aAAazB,GACbA,EAAIsB,WAAWuN,EAAIqjC,IAUrB4M,EAAsB,iBApEX,WAoEuByB,GAClCzB,EAAsB,iBApET,aAoEuByB,GACpCj9B,EAAsB,iBAAE09B,EAAYzd,GAEhCoe,GAAY/9C,GAAK,GAMvB,SAASm9C,IACPv/C,KAAK6C,EAAI,GACT,IAAW7C,MACX0/C,EAAQ59C,GAAG,OAAQ9B,KAAKX,EAAEP,KAAKkB,OAC/B0/C,EAAQ59C,GAAG,OAAQ9B,KAAKD,EAAEjB,KAAKkB,OAGjC,SAASogD,EAAUJ,GACjB,OAAOA,EAAK13C,QAAQ,UAAW,IAGjC,SAASuJ,EAAS9I,GAChB,MAAqB,iBAAPA,EAQhB,SAASs3C,EAAgBzxB,GACvB,OAAQA,GAAQywB,EAAIzwB,MAAMtmB,QAAQ42C,EAAW,IAQ/C,SAASoB,EAAgB1xB,GACvB,IAAIa,EAAO8wB,EAAMt1C,EAAEwkB,KACnB,MAAmB,MAAZA,EAAK,IACPb,GAAQywB,EAAIzwB,MAAQ,IAAIjmB,MAAM8mB,GAAM,IAAM,IAC1C4vB,EAAMgB,EAAgBzxB,GAAQA,GAAQ,IAAItmB,QAAQmnB,EAAM,IAG/D,SAASrtB,EAAKo+C,GAEZ,IAAIC,EAA4B,IAAnBX,EACb,KAlHuB,GAkHKA,KAE5BA,IACAD,EAAUv+C,MAAK,WACb,IAAI0+C,EAAOM,KACPE,GAASR,IAASniC,KACpB6hC,EAAe,QAAE,OAAQM,GACzBniC,EAAUmiC,MAIVS,GAAQ,CAEV,IADA,IAAI59B,EACGA,EAAQg9B,EAAUz2B,SAAWvG,IACpCi9B,EAAiB,GAIrB,SAAS/d,EAAMhiC,GACb,KACc,IAAZA,EAAEsV,OACCtV,EAAEgjC,SAAWhjC,EAAE6iC,SAAW7iC,EAAEmjC,UAC5BnjC,EAAEoiC,kBAHP,CAOA,IADA,IAAIl1B,EAAKlN,EAAEoV,OACJlI,GAAsB,MAAhBA,EAAGkb,UAAoBlb,EAAKA,EAAGjI,WAE5C,GACGiI,GAAsB,MAAhBA,EAAGkb,WACPlb,EAAgB,aAAE,aACjBA,EAAgB,aAAE,WACnBA,EAAGkI,QAAwB,UAAdlI,EAAGkI,UACmC,IAAnDlI,EAAG2hB,KAAK1nB,QAAQm4C,EAAIzwB,KAAK5nB,MAAMk4C,GAAW,IAL/C,CAQA,IAAIzvB,EAAO8wB,EAAMt1C,EAAEwkB,KAEfxiB,EAAG2hB,OAASywB,EAAIzwB,OAEhB3hB,EAAG2hB,KAAKjmB,MAAM,KAAK,KAAO02C,EAAIzwB,KAAKjmB,MAAM,KAAK,IAC/B,MAAZ8mB,EAAK,IAAyD,IAA3C4wB,EAAgBpzC,EAAG2hB,MAAM1nB,QAAQuoB,IACxC,MAAZA,EAAK,IAAcxiB,EAAG2hB,KAAKjmB,MAAM8mB,GAAM,KAAO4vB,EAAIzwB,KAAKjmB,MAAM8mB,GAAM,KAClEixB,EAAGJ,EAAgBrzC,EAAG2hB,MAAO3hB,EAAGzL,OAASsgB,EAAItgB,SAGrDzB,EAAE2/B,mBAUJ,SAASghB,EAAGV,EAAMx+C,EAAOm/C,GAEvB,OAAKxB,GAELa,EAAOO,EAAMt1C,EAAEwkB,KAAO2wB,EAAUJ,GAChCx+C,EAAQA,GAASsgB,EAAItgB,MAErBm/C,EACIxB,EAAKyB,aAAa,KAAMp/C,EAAOw+C,GAC/Bb,EAAK0B,UAAU,KAAMr/C,EAAOw+C,GAEhCl+B,EAAItgB,MAAQA,EACZo+C,GAAa,EACbx9C,IACOw9C,GAZaF,EAAe,QAAE,OAAQY,EAAgBN,IA0B/DV,EAAK5hD,EAAI,SAASmlB,EAAOoB,EAAQ68B,IAC3BjvC,EAASgR,IAAYoB,IAAUpS,EAASoS,GACnCA,EAAUjkB,KAAK5B,EAAEykB,EAAOoB,GAC1BjkB,KAAK5B,EAAE,IAAKykB,GAFqC69B,EAAG79B,EAAOoB,EAAQ68B,IAAS,IAQrFxB,EAAKjgD,EAAI,WACPW,KAAKiC,IAAI,KACTjC,KAAK6C,EAAI,IAOXy8C,EAAKv/C,EAAI,SAASigD,GAChBhgD,KAAK6C,EAAErC,OAAO,KAAKugD,MAAK,SAASnoC,GAC/B,IAAIzX,GAAmB,MAAXyX,EAAiBomC,EAASC,GAAcmB,EAAUJ,GAAOI,EAAUxnC,IAC/E,QAAmB,IAARzX,EAET,OADAnB,KAAY,QAAEuB,MAAM,KAAM,CAACqX,GAAQpY,OAAOW,IACnCy+C,GAAa,IAErB5/C,OAQLs/C,EAAKlhD,EAAI,SAASwa,EAAQooC,GACT,MAAXpoC,IACFA,EAAS,IAAMwnC,EAAUxnC,GACzB5Y,KAAK6C,EAAEvB,KAAKsX,IAGd5Y,KAAK8B,GAAG8W,EAAQooC,IAGlB,IAAIC,EAAa,IAAI1B,EACjBgB,EAAQU,EAAWvjD,EAAEoB,KAAKmiD,GAG9BV,EAAMt1C,EAAI,CAAEwkB,KAAM,KAAM6wB,gBAAiBA,GAMzCC,EAAM3hD,OAAS,WACb,IAAIsiD,EAAe,IAAI3B,EAEnB4B,EAASD,EAAaxjD,EAAEoB,KAAKoiD,GAGjC,OADAC,EAAOnmB,KAAOkmB,EAAa7hD,EAAEP,KAAKoiD,GAC3BC,GAOTZ,EAAM9wB,KAAO,SAASnL,GACpBi8B,EAAMt1C,EAAEwkB,KAAOnL,GAAO,IACtBzG,EAAUyiC,KAIZC,EAAM97C,KAAO,WACXrC,GAAK,IAQPm+C,EAAMvB,OAAS,SAAS3xC,EAAI+zC,GACrB/zC,GAAO+zC,IAEVpC,EAASe,EACTd,EAAegB,GAEb5yC,IAAM2xC,EAAS3xC,GACf+zC,IAAOnC,EAAemC,IAO5Bb,EAAM5nC,MAAQ,WACZ,IAAI0oC,EAAI,GAGR,OAFWhC,EAAIzwB,MAAQ/Q,GAClBvV,QAAQ,sBAAsB,SAAS2C,EAAGrF,EAAGuZ,GAAKkiC,EAAEz7C,GAAKuZ,KACvDkiC,GAITd,EAAMvlB,KAAO,WACP2kB,IACErC,IACFA,EAAyB,oBAlTlB,WAkT8ByB,GACrCzB,EAAyB,oBAlThB,aAkT8ByB,GACvCj9B,EAAyB,oBAAE09B,EAAYzd,IAGzC2d,EAAe,QAAE,QACjBC,GAAU,IAQdY,EAAM15C,MAAQ,SAAUs5C,GACjBR,IACCrC,IAC0B,gBAAxBt6C,SAASi2B,YAAwD,aAAxBj2B,SAASi2B,WACpDpyB,EAAMs5C,GAENn9C,SAASo4C,mBAAqB,WACA,gBAAxBp4C,SAASi2B,YAGXn5B,YAAW,WAAa+G,EAAMs5C,KAAc,KAMpDR,GAAU,IAKdY,EAAM9wB,OACN8wB,EAAMvB,SAES,Q,oCC7Vft7C,OAAO68C,MAAQA,EAIfe,IAAMC,IAAIC,KAGV99C,OAAO6G,KAAOA,IACd7G,OAAO49C,MAAQA,IAEf,IAAMz+C,EAAI4+C,EAAQ,MAClB/9C,OAAOb,EAAIA,EACXa,OAAOue,OAASpf,EAEhB,IAAI6+C,EAAMn3C,IAAKyC,aACftJ,OAAOg+C,IAAMA,EAWbh+C,OAAOi+C,cARP,WAAuC,IAAhB91C,EAAgB,uDAAN,KAC/B61C,EAAIE,SAAU,EACd,IAAIC,EAAa,sPACbh2C,IACFg2C,GAAc,MAAJ,OAAUh2C,EAAV,SAEZhJ,EAAE,QAAQyY,OAAOumC,IASnBn+C,OAAOo+C,eAJP,WACEJ,EAAIE,SAAU,EACd/+C,EAAE,YAAYmD,UAShBtC,OAAOq+C,SAJP,SAAkBzvB,GAChBovB,EAAIpvB,MAAcA,EAClBtvB,SAASg/C,OAAT,qBAAgC1vB,IAkBlC5uB,OAAOu+C,SAbP,WACE,GAAGj/C,SAASg/C,OAAOzhD,OAAO,EAAE,CAE1B,IAAI2hD,EAAGl/C,SAASg/C,OAAO96C,QAAQ,iBAC/B,IAAQ,GAALg7C,EAAO,CACRA,EAAGA,EAAG,eAAe3hD,OAAO,EAC5B,IAAI4hD,EAAGn/C,SAASg/C,OAAO96C,QAAQ,IAAIg7C,GAGnC,OAFQ,GAALC,IAAQA,EAAGn/C,SAASg/C,OAAOzhD,QAEvByC,SAASg/C,OAAOI,UAAUF,EAAGC,MAU1Cz+C,OAAO2+C,aAHP,WACEr/C,SAASg/C,OAAT,gC,qBCnEF,iCAC6B,oBAAT1uB,MAAwBA,MAChC5vB,OACRnC,EAAQ4J,SAASjM,UAAUqC,MAiB/B,SAAS+gD,EAAQv9C,EAAIw9C,GACnBviD,KAAKwiD,IAAMz9C,EACX/E,KAAKyiD,SAAWF,EAflBnlD,EAAQ0C,WAAa,WACnB,OAAO,IAAIwiD,EAAQ/gD,EAAM9D,KAAKqC,WAAY4iD,EAAOrhD,WAAYpB,eAE/D7C,EAAQulD,YAAc,WACpB,OAAO,IAAIL,EAAQ/gD,EAAM9D,KAAKklD,YAAaD,EAAOrhD,WAAYuhD,gBAEhExlD,EAAQ6C,aACR7C,EAAQwlD,cAAgB,SAASliD,GAC3BA,GACFA,EAAQmiD,SAQZP,EAAQpjD,UAAU4jD,MAAQR,EAAQpjD,UAAUgV,IAAM,aAClDouC,EAAQpjD,UAAU2jD,MAAQ,WACxB7iD,KAAKyiD,SAAShlD,KAAKilD,EAAO1iD,KAAKwiD,MAIjCplD,EAAQ2lD,OAAS,SAAS/wC,EAAMgxC,GAC9B/iD,aAAa+R,EAAKixC,gBAClBjxC,EAAKkxC,aAAeF,GAGtB5lD,EAAQ+lD,SAAW,SAASnxC,GAC1B/R,aAAa+R,EAAKixC,gBAClBjxC,EAAKkxC,cAAgB,GAGvB9lD,EAAQgmD,aAAehmD,EAAQy4C,OAAS,SAAS7jC,GAC/C/R,aAAa+R,EAAKixC,gBAElB,IAAID,EAAQhxC,EAAKkxC,aACbF,GAAS,IACXhxC,EAAKixC,eAAiBnjD,YAAW,WAC3BkS,EAAKqxC,YACPrxC,EAAKqxC,eACNL,KAKP,EAAQ,KAIR5lD,EAAQkmD,aAAgC,oBAAThwB,MAAwBA,KAAKgwB,mBAClB,IAAX/6C,GAA0BA,EAAO+6C,cACxCtjD,MAAQA,KAAKsjD,aACrClmD,EAAQmmD,eAAkC,oBAATjwB,MAAwBA,KAAKiwB,qBAClB,IAAXh7C,GAA0BA,EAAOg7C,gBACxCvjD,MAAQA,KAAKujD,iB,uCC9DvC,6BACI,aAEA,IAAIh7C,EAAO+6C,aAAX,CAIA,IAIIE,EA6HIl0C,EAZAm0C,EArBAC,EACAC,EAjGJC,EAAa,EACbC,EAAgB,GAChBC,GAAwB,EACxBhiC,EAAMvZ,EAAOvF,SAoJb+gD,EAAW/lD,OAAOyc,gBAAkBzc,OAAOyc,eAAelS,GAC9Dw7C,EAAWA,GAAYA,EAASjkD,WAAaikD,EAAWx7C,EAGf,qBAArC,GAAG6Y,SAAS3jB,KAAK8K,EAAO/I,SApFxBgkD,EAAoB,SAASpjB,GACzB5gC,EAAQ0B,UAAS,WAAc8iD,EAAa5jB,QAIpD,WAGI,GAAI73B,EAAO07C,cAAgB17C,EAAO27C,cAAe,CAC7C,IAAIC,GAA4B,EAC5BC,EAAe77C,EAAO87C,UAM1B,OALA97C,EAAO87C,UAAY,WACfF,GAA4B,GAEhC57C,EAAO07C,YAAY,GAAI,KACvB17C,EAAO87C,UAAYD,EACZD,GAwEJG,GAIA/7C,EAAOg8C,iBA9CVd,EAAU,IAAIc,gBACVC,MAAMH,UAAY,SAASj3C,GAE/B42C,EADa52C,EAAM1C,OAIvB84C,EAAoB,SAASpjB,GACzBqjB,EAAQgB,MAAMR,YAAY7jB,KA2CvBte,GAAO,uBAAwBA,EAAI1d,cAAc,WAtCpDkL,EAAOwS,EAAIjS,gBACf2zC,EAAoB,SAASpjB,GAGzB,IAAIre,EAASD,EAAI1d,cAAc,UAC/B2d,EAAOq5B,mBAAqB,WACxB4I,EAAa5jB,GACbre,EAAOq5B,mBAAqB,KAC5B9rC,EAAKwM,YAAYiG,GACjBA,EAAS,MAEbzS,EAAKnK,YAAY4c,KAKrByhC,EAAoB,SAASpjB,GACzBtgC,WAAWkkD,EAAc,EAAG5jB,KAlD5BsjB,EAAgB,gBAAkBngC,KAAKC,SAAW,IAClDmgC,EAAkB,SAASv2C,GACvBA,EAAM1F,SAAWa,GACK,iBAAf6E,EAAM1C,MACyB,IAAtC0C,EAAM1C,KAAKxD,QAAQw8C,IACnBM,GAAc52C,EAAM1C,KAAKpE,MAAMo9C,EAAcnjD,UAIjDgI,EAAOuN,iBACPvN,EAAOuN,iBAAiB,UAAW6tC,GAAiB,GAEpDp7C,EAAOmiB,YAAY,YAAai5B,GAGpCH,EAAoB,SAASpjB,GACzB73B,EAAO07C,YAAYP,EAAgBtjB,EAAQ,OAgEnD2jB,EAAST,aA1KT,SAAsB1gC,GAEI,mBAAbA,IACTA,EAAW,IAAIzX,SAAS,GAAKyX,IAI/B,IADA,IAAIzhB,EAAO,IAAIC,MAAMC,UAAUd,OAAS,GAC/BjD,EAAI,EAAGA,EAAI6D,EAAKZ,OAAQjD,IAC7B6D,EAAK7D,GAAK+D,UAAU/D,EAAI,GAG5B,IAAIonD,EAAO,CAAE9hC,SAAUA,EAAUzhB,KAAMA,GAGvC,OAFA0iD,EAAcD,GAAcc,EAC5BlB,EAAkBI,GACXA,KA6JTG,EAASR,eAAiBA,EA1J1B,SAASA,EAAenjB,UACbyjB,EAAczjB,GAyBzB,SAAS4jB,EAAa5jB,GAGlB,GAAI0jB,EAGAhkD,WAAWkkD,EAAc,EAAG5jB,OACzB,CACH,IAAIskB,EAAOb,EAAczjB,GACzB,GAAIskB,EAAM,CACNZ,GAAwB,EACxB,KAjCZ,SAAaY,GACT,IAAI9hC,EAAW8hC,EAAK9hC,SAChBzhB,EAAOujD,EAAKvjD,KAChB,OAAQA,EAAKZ,QACb,KAAK,EACDqiB,IACA,MACJ,KAAK,EACDA,EAASzhB,EAAK,IACd,MACJ,KAAK,EACDyhB,EAASzhB,EAAK,GAAIA,EAAK,IACvB,MACJ,KAAK,EACDyhB,EAASzhB,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAChC,MACJ,QACIyhB,EAASrhB,WAnDrB,EAmDsCJ,IAiBlBP,CAAI8jD,GACN,QACEnB,EAAenjB,GACf0jB,GAAwB,MAvE5C,CAyLkB,oBAATxwB,UAAyC,IAAX/qB,EAAyBvI,KAAOuI,EAAS+qB,Q,0CCzLhF,IAAIxZ,EAGJA,EAAI,WACH,OAAO9Z,KADJ,GAIJ,IAEC8Z,EAAIA,GAAK,IAAI3O,SAAS,cAAb,GACR,MAAOpL,GAEc,iBAAX2D,SAAqBoW,EAAIpW,QAOrCrG,EAAOD,QAAU0c,G,oBCiHG,oBAAVpW,QAAwBA,OAN9BrG,EAAOD,QA9HqC,SAAS6P,GAOvDA,EAAKA,GAAM,GAKX,IAAIC,EAAY,GACd5G,EAAQlF,MAAMlC,UAAUoH,MA2G1B,OApGAtI,OAAOmP,iBAAiBF,EAAI,CAQ1BnL,GAAI,CACFvD,MAAO,SAAS6O,EAAOC,GAGrB,MAFiB,mBAANA,IACRH,EAAUE,GAASF,EAAUE,IAAU,IAAI9L,KAAK+L,GAC5CJ,GAET/O,YAAY,EACZoP,UAAU,EACVC,cAAc,GAShBtL,IAAK,CACH1D,MAAO,SAAS6O,EAAOC,GACrB,GAAa,KAATD,GAAiBC,EAEnB,GAAIA,EAEF,IADA,IACgBG,EADZ9E,EAAMwE,EAAUE,GACX9P,EAAI,EAAOkQ,EAAK9E,GAAOA,EAAIpL,KAAMA,EACpCkQ,GAAMH,GAAI3E,EAAI+E,OAAOnQ,IAAK,eAEpB4P,EAAUE,QAPDF,EAAY,GASrC,OAAOD,GAET/O,YAAY,EACZoP,UAAU,EACVC,cAAc,GAUhBG,IAAK,CACHnP,MAAO,SAAS6O,EAAOC,GAKrB,OAAOJ,EAAGnL,GAAGsL,GAJb,SAAStL,IACPmL,EAAGhL,IAAImL,EAAOtL,GACduL,EAAG9L,MAAM0L,EAAI5L,eAIjBnD,YAAY,EACZoP,UAAU,EACVC,cAAc,GAShBI,QAAS,CACPpP,MAAO,SAAS6O,GAGd,IAEEQ,EACAP,EACA/P,EAJEwQ,EAASzM,UAAUd,OAAS,EAC9BY,EAAO,IAAIC,MAAM0M,GAKnB,IAAKxQ,EAAI,EAAGA,EAAIwQ,EAAQxQ,IACtB6D,EAAK7D,GAAK+D,UAAU/D,EAAI,GAK1B,IAFAsQ,EAAMtH,EAAM7I,KAAKyP,EAAUE,IAAU,GAAI,GAEpC9P,EAAI,EAAG+P,EAAKO,EAAItQ,KAAMA,EACzB+P,EAAG9L,MAAM0L,EAAI9L,GAMf,OAHI+L,EAAU,MAAiB,KAATE,GACpBH,EAAGU,QAAQpM,MAAM0L,EAAI,CAAC,IAAKG,GAAO5M,OAAOW,IAEpC8L,GAET/O,YAAY,EACZoP,UAAU,EACVC,cAAc,KAIXN,I,qBCxHT;AAGmE5P,EAAOD,QAGlE,WAAe,aAEnB,IAAIunD,EAAe3mD,OAAOkB,UACtBC,EAAiBwlD,EAAaxlD,eAElC,SAASkiB,EAAOlT,EAAKtP,GACjB,OAAOM,EAAe1B,KAAK0Q,EAAKtP,GAGpC,IAAI+lD,EAAiB,GACjBC,EAAc,oBAElB,SAASC,EAAU/7C,GAQf,OANMA,KAAO67C,IACTA,EAAe77C,GAAOA,EACjBT,QAAQu8C,EAAa,SACrB90C,eAGF60C,EAAe77C,GAG1B,IAAIg8C,EAAa,SAEjB,SAASC,EAASj8C,GACd,OAAOA,EAAIT,QAAQy8C,EAAYE,GAGnC,SAASA,EAAQh6C,EAAGtN,GAChB,OAAOA,EAAIA,EAAE4U,cAAgB,GAGjC,SAAS2yC,EAAQn8C,GACb,OAAOA,EAAIxI,OAAS0kD,EAAQ,EAAMl8C,EAAIo8C,OAAO,IAAMp8C,EAAIzC,MAAM,GAAK,GAGtE,IAAI8+C,EAAe39B,OAAOvoB,UACtBmmD,EAAeD,EAAalzC,YAAc,SAAUozC,GAAU,OAAuC,IAAhCtlD,KAAKulD,YAAYD,EAAQ,IAElG,SAASpzC,EAAWnJ,EAAKu8C,GACrB,OAAOD,EAAa5nD,KAAKsL,EAAKu8C,GAGlC,IAAIE,EAAaJ,EAAaK,UAAY,SAAUH,GAAU,OAAOtlD,KAAK0lD,QAAQJ,EAAO/kD,UAAY+kD,GAErG,SAASG,EAAS18C,EAAKu8C,GACnB,OAAOE,EAAW/nD,KAAKsL,EAAKu8C,GAGhC,IAAIK,EAAevkD,MAAMlC,UAErB0mD,EAAa,SAAUN,EAAQhoD,GAAK,OAAQ0C,KAAKkH,QAAQo+C,EAAQhoD,IACjEuoD,EAAcT,EAAaU,UAAYF,EACvCG,EAAgBJ,EAAaG,UAAYF,EAE7C,SAASE,EAAS33C,EAAKm3C,GACnB,OAAOn3C,IAAQ0D,EAAS1D,GAAO03C,EAAcE,GAAetoD,KAAK0Q,EAAKm3C,GAG1E,IAAIU,EAAcL,EAAaM,WAAa,SAAUC,GAGlD,IAFA,IAAIr4C,EAAcxM,UAET/D,EAAI,EAAGA,EAAI0C,KAAKO,OAAQjD,IAC7B,GAAI4oD,EAAUzoD,KAAKoQ,EAAY,GAAI7N,KAAK1C,GAAIA,EAAG0C,MAC3C,OAAO1C,EAGf,OAAQ,GAGZ,SAAS2oD,EAAUjlD,EAAOklD,GACtB,OAAOF,EAAYvoD,KAAKuD,EAAOklD,GAGnC,IAAIv0C,EAAUvQ,MAAMuQ,QAEpB,SAASJ,EAAWpD,GAChB,MAAsB,mBAARA,EAGlB,SAASqD,EAASrD,GACd,OAAe,OAARA,GAA+B,iBAARA,EAGlC,IAAIiT,EAAWujC,EAAavjC,SAC5B,SAASiC,EAAclV,GACnB,MAA8B,oBAAvBiT,EAAS3jB,KAAK0Q,GAGzB,SAASsT,EAAStT,GACd,OAAOqD,EAASrD,IAAQA,IAAQA,EAAIzK,OAGxC,SAASyiD,EAAWh4C,GAChB,OAAOqD,EAASrD,IAAyB,IAAjBA,EAAIgQ,SAGhC,SAASioC,EAASj4C,GACd,OAAOqD,EAASrD,MAAUA,EAAIiU,OAGlC,SAASikC,EAAOl4C,GACZ,OAAOqD,EAASrD,IAAQA,EAAIgQ,UAAY,EAG5C,SAASmoC,EAAUn4C,GACf,OAAOqD,EAASrD,IAAyB,IAAjBA,EAAIgQ,SAGhC,SAASooC,EAAiBp4C,GACtB,OAAOiT,EAAS3jB,KAAK0Q,GAAKnH,MAAM,0CAGpC,SAASw/C,EAAUjoD,GACf,MAAwB,kBAAVA,EAGlB,SAASsT,EAAStT,GACd,MAAwB,iBAAVA,EAGlB,SAASkoD,EAASloD,GACd,MAAwB,iBAAVA,EAGlB,SAASmgD,EAAUngD,GACf,OAAOkoD,EAASloD,IAAUsT,EAAStT,KAAWogD,MAAMpgD,EAAQkqC,WAAWlqC,IAG3E,SAASmoD,EAAQv4C,GACb,QAASwD,EAAQxD,GACXA,EAAI5N,OACJiR,EAASrD,IACLnQ,OAAO0H,KAAKyI,GAAK5N,QAK/B,SAAS0N,EAAY1P,GACjB,YAAiB,IAAVA,EAGX,SAASooD,EAAUpoD,GACf,OAAOioD,EAAUjoD,GACXA,EACU,SAAVA,GAA8B,MAAVA,GAA2B,KAAVA,GAEvB,UAAVA,GAA+B,MAAVA,GAEjBA,EAGlB,SAASqoD,EAASroD,GACd,IAAIsoD,EAASC,OAAOvoD,GACpB,OAAQogD,MAAMkI,IAAUA,EAG5B,SAASE,EAAQxoD,GACb,OAAOkqC,WAAWlqC,IAAU,EAGhC,SAASyoD,EAAOC,GACZ,OAAOZ,EAAOY,GACRA,EACAV,EAAiBU,IAAYb,EAASa,GAClCA,EAAQ,GACRt1C,EAAQs1C,GACJD,EAAOC,EAAQ,IACf,KAGlB,SAASC,EAAQD,GACb,OAAOZ,EAAOY,GACR,CAACA,GACDV,EAAiBU,GACbtB,EAAar/C,MAAM7I,KAAKwpD,GACxBt1C,EAAQs1C,GACJA,EAAQthD,IAAIqhD,GAAQpuC,OAAOuuC,SAC3Bf,EAASa,GACLA,EAAQ5kC,UACR,GAGtB,SAAS+kC,EAASH,GACd,OAAIxlC,EAASwlC,GACFA,GAGXA,EAAUD,EAAOC,KAGVd,EAAWc,GACRA,EACAA,EAAQx3C,eACZ+a,YACA9mB,OAGV,SAAS2jD,EAAO9oD,GACZ,OAAOoT,EAAQpT,GACTA,EACAsT,EAAStT,GACLA,EAAMoK,MAAM,gBAAgBhD,KAAI,SAAUpH,GAAS,OAAOmgD,EAAUngD,GAChEqoD,EAASroD,GACTooD,EAAUpoD,EAAM4L,WACpB,CAAC5L,GAGf,SAAS+oD,EAAK3W,GACV,OAAQA,EAEF8U,EAAS9U,EAAM,MACXoW,EAAQpW,GACQ,IAAhBoW,EAAQpW,GAHZ,EAMV,SAAS4W,EAAQhpD,EAAOipD,GACpB,OAAOjpD,IAAUipD,GACVh2C,EAASjT,IACTiT,EAASg2C,IACTxpD,OAAO0H,KAAKnH,GAAOgC,SAAWvC,OAAO0H,KAAK8hD,GAAOjnD,QACjD0R,EAAK1T,GAAO,SAAUgG,EAAK1F,GAAO,OAAO0F,IAAQijD,EAAM3oD,MAGlE,SAAS+8B,EAAKr9B,EAAOyZ,EAAG3N,GACpB,OAAO9L,EAAM+J,QAAQ,IAAIV,OAAQoQ,EAAI,IAAM3N,EAAI,OAAO,SAAUrD,GAC5D,OAAOA,IAAUgR,EAAI3N,EAAI2N,KAIjC,IAAIyvC,EAASzpD,OAAOypD,QAAU,SAAUtyC,GAEpC,IADA,IAAIhU,EAAO,GAAIR,EAAMU,UAAUd,OAAS,EAChCI,KAAQ,GAAIQ,EAAMR,GAAQU,UAAWV,EAAM,GAEnDwU,EAASnX,OAAOmX,GAChB,IAAK,IAAI7X,EAAI,EAAGA,EAAI6D,EAAKZ,OAAQjD,IAAK,CAClC,IAAIoK,EAASvG,EAAK7D,GAClB,GAAe,OAAXoK,EACA,IAAK,IAAI7I,KAAO6I,EACR2Z,EAAO3Z,EAAQ7I,KACfsW,EAAOtW,GAAO6I,EAAO7I,IAKrC,OAAOsW,GAGX,SAAS4N,EAAK/hB,GACV,OAAOA,EAAMA,EAAMT,OAAS,GAGhC,SAAS0R,EAAK9D,EAAKX,GACf,IAAK,IAAI3O,KAAOsP,EACZ,IAAI,IAAUX,EAAGW,EAAItP,GAAMA,GACvB,OAAO,EAGf,OAAO,EAGX,SAAS6oD,EAAO1mD,EAAOwP,GACnB,OAAOxP,EAAMgiB,MAAK,SAAU9O,EAAKyzC,GACzB,IAAIC,EAAQ1zC,EAAI1D,QAAsB,IAAVo3C,IAAmBA,EAAQ,GACvD,IAAIC,EAAQF,EAAMn3C,GAElB,YAFwC,IAAVq3C,IAAmBA,EAAQ,GAElDD,EAAQC,EACb,EACAA,EAAQD,GACH,EACD,KAKlB,SAASE,GAAS9mD,EAAOwP,GACrB,IAAIu3C,EAAO,IAAIC,IACf,OAAOhnD,EAAM4X,QAAO,SAAU1E,GAC1B,IAAIpC,EAAQoC,EAAI1D,GAEhB,OAAOu3C,EAAKh0B,IAAIjiB,KAEdi2C,EAAKziD,IAAIwM,KAAU,MAK7B,SAASm2C,GAAMpB,EAAQqB,EAAKje,GAIxB,YAHa,IAARie,IAAiBA,EAAM,QACf,IAARje,IAAiBA,EAAM,GAErB1mB,KAAK2kC,IAAI3kC,KAAK0mB,IAAI2c,EAASC,IAAW,EAAGqB,GAAMje,GAG1D,SAAShpC,MAET,SAASknD,GAAcC,EAAIC,GACvB,OAAOD,EAAG3c,KAAO4c,EAAGpgB,OAChBmgB,EAAGngB,MAAQogB,EAAG5c,MACd2c,EAAG39B,IAAM49B,EAAGC,QACZF,EAAGE,OAASD,EAAG59B,IAGvB,SAAS89B,GAAYC,EAAOnL,GACxB,OAAOmL,EAAMC,GAAKpL,EAAKpV,OACnBugB,EAAMC,GAAKpL,EAAK5R,MAChB+c,EAAME,GAAKrL,EAAKiL,QAChBE,EAAME,GAAKrL,EAAK5yB,IAGxB,IAAIk+B,GAAa,CAEbC,MAAO,SAASC,EAAYr4C,EAAMjS,GAC9B,IAAI4P,EAGA26C,EAAiB,UAATt4C,EAAmB,SAAW,QAE1C,OAASrC,EAAM,IAAQ26C,GAASD,EAAWr4C,GAAQ+S,KAAKilB,MAAMjqC,EAAQsqD,EAAWC,GAASD,EAAWr4C,IAASq4C,EAAWC,GAAQ36C,EAAIqC,GAAQjS,EAAO4P,GAGxJ46C,QAAS,SAASF,EAAYG,GAC1B,IAAI9tC,EAASlb,KASb,OALAiS,EAFA42C,EAAapB,EAAO,GAAIoB,IAEP,SAAU59C,EAAGuF,GAAQ,OAAOq4C,EAAaA,EAAWr4C,GAAQw4C,EAAcx4C,GACrF0K,EAAO0tC,MAAMC,EAAYr4C,EAAMw4C,EAAcx4C,IAC7Cq4C,KAGCA,GAGXI,MAAO,SAASJ,EAAYG,GACxB,IAAI9tC,EAASlb,KASb,OALAiS,EAFA42C,EAAa7oD,KAAK+oD,QAAQF,EAAYG,IAErB,SAAU/9C,EAAGuF,GAAQ,OAAOq4C,EAAaA,EAAWr4C,GAAQw4C,EAAcx4C,GACrF0K,EAAO0tC,MAAMC,EAAYr4C,EAAMw4C,EAAcx4C,IAC7Cq4C,KAGCA,IAKf,SAAShyC,GAAKowC,EAASppD,EAAMU,GAEzB,GAAIiT,EAAS3T,GACT,IAAK,IAAIgB,KAAOhB,EACZgZ,GAAKowC,EAASpoD,EAAKhB,EAAKgB,QAFhC,CAOA,GAAIoP,EAAY1P,GAEZ,OADA0oD,EAAUD,EAAOC,KACCA,EAAQ/3C,aAAarR,GAEvCqpD,EAAQD,GAASznC,SAAQ,SAAUynC,GAE3B11C,EAAWhT,KACXA,EAAQA,EAAMd,KAAKwpD,EAASpwC,GAAKowC,EAASppD,KAGhC,OAAVU,EACAyyC,GAAWiW,EAASppD,GAEpBopD,EAAQ5iD,aAAaxG,EAAMU,OAO3C,SAAS2qD,GAAQjC,EAASppD,GACtB,OAAOqpD,EAAQD,GAASlG,MAAK,SAAUkG,GAAW,OAAOA,EAAQkC,aAAatrD,MAGlF,SAASmzC,GAAWiW,EAASppD,GACzBopD,EAAUC,EAAQD,GAClBppD,EAAK8K,MAAM,KAAK6W,SAAQ,SAAU3hB,GAAQ,OAAOopD,EAAQznC,SAAQ,SAAUynC,GAAW,OAAOA,EAAQkC,aAAatrD,IAASopD,EAAQ93C,gBAAgBtR,SAKvJ,SAAS6M,GAAKu8C,EAAS3uC,GACnB,IAAK,IAAIhb,EAAI,EAAGya,EAAQ,CAACO,EAAY,QAAUA,GAAahb,EAAIya,EAAMxX,OAAQjD,IAC1E,GAAI4rD,GAAQjC,EAASlvC,EAAMza,IACvB,OAAOuZ,GAAKowC,EAASlvC,EAAMza,IAOvC,IAAI8rD,GAAO,gBAAgBxiD,KAAKlD,OAAO2lD,UAAUC,WAC7CC,GAAkD,QAA1C1yC,GAAK7T,SAAS6M,gBAAiB,OAEvC25C,GAAiB,iBAAkB9lD,OACnC+lD,GAAmB/lD,OAAOgmD,aAC1BC,GAAWH,IACR9lD,OAAOkmD,eAAiB5mD,oBAAoB4mD,eAC5CP,UAAUQ,eAEbC,GAAcL,GAAmB,cAAgBD,GAAiB,aAAe,YACjFO,GAAcN,GAAmB,cAAgBD,GAAiB,YAAc,YAChFQ,GAAYP,GAAmB,YAAcD,GAAiB,WAAa,UAC3ES,GAAeR,GAAmB,eAAiBD,GAAiB,GAAK,aACzEU,GAAeT,GAAmB,eAAiBD,GAAiB,GAAK,aACzEW,GAAgBV,GAAmB,gBAAkB,cAEzD,SAAS9wC,GAAM7V,EAAU4N,GACrB,OAAOs2C,EAAOlkD,IAAakoB,GAAKloB,EAAUsnD,GAAWtnD,EAAU4N,IAGnE,SAAS25C,GAASvnD,EAAU4N,GACxB,IAAI4tB,EAAQ4oB,EAAQpkD,GACpB,OAAOw7B,EAAM/9B,QAAU+9B,GAASgsB,GAAQxnD,EAAUsnD,GAAWtnD,EAAU4N,IAG3E,SAAS05C,GAAWtnD,EAAU4N,GAG1B,YAFiB,IAAZA,IAAqBA,EAAU1N,UAE7BunD,GAAkBznD,IAAaqjD,EAAWz1C,GAC3CA,EACAA,EAAQjB,cAGlB,SAASub,GAAKloB,EAAU4N,GACpB,OAAOs2C,EAAOwD,GAAO1nD,EAAU4N,EAAS,kBAG5C,SAAS45C,GAAQxnD,EAAU4N,GACvB,OAAOw2C,EAAQsD,GAAO1nD,EAAU4N,EAAS,qBAG7C,SAAS85C,GAAO1nD,EAAU4N,EAAS+5C,GAI/B,QAHiB,IAAZ/5C,IAAqBA,EAAU1N,WAG/BF,IAAa+O,EAAS/O,GACvB,OAAO,KAKX,IAAI4nD,EAEAH,GAJJznD,EAAWA,EAASwF,QAAQqiD,GAAmB,WAM3CD,EAAU,GAEV5nD,EA+DR,SAAuBA,GACnB,OAAOA,EAASkE,MAAM4jD,IAAYjlD,KAAI,SAAU7C,GAAY,OAAOA,EAASwF,QAAQ,KAAM,IAAI6B,UAhE/E0gD,CAAc/nD,GAAU6C,KAAI,SAAU7C,EAAUxF,GAEvD,IAAIyF,EAAM2N,EAEV,GAAoB,MAAhB5N,EAAS,GAAY,CAErB,IAAI6pB,EAAY7pB,EAAS4iD,OAAO,GAAGv7C,OAAOxB,MAAM,KAChD5F,EAAMkxB,GAAQ3gB,GAAO5C,GAAUic,EAAU,IACzC7pB,EAAW6pB,EAAUrmB,MAAM,GAAGT,KAAK,KAAKsE,OAI5C,GAAoB,MAAhBrH,EAAS,GAAY,CAErB,IAAIgoD,EAAchoD,EAAS4iD,OAAO,GAAGv7C,OAAOxB,MAAM,KAC9ClC,GAAQ1D,GAAO2N,GAASq6C,uBAC5BhoD,EAAMqhB,GAAQ3d,EAAM3D,EAAS4iD,OAAO,IAAMj/C,EAAO,KACjD3D,EAAWgoD,EAAYxkD,MAAM,GAAGT,KAAK,KAIzC,OAAK9C,GAIAA,EAAIgC,KACLhC,EAAIgC,GAAK,MAASwgB,KAAK+c,MAAShlC,EAChCotD,EAAQppD,MAAK,WAAc,OAAO0vC,GAAWjuC,EAAK,UAG9C,IAAOqpB,GAAOrpB,EAAIgC,IAAO,IAAMjC,GAR5B,QAUZ8V,OAAOuuC,SAASthD,KAAK,KAExB6K,EAAU1N,UAId,IAEI,OAAO0N,EAAQ+5C,GAAS3nD,GAE1B,MAAO/C,GAEL,OAAO,KAET,QAEE2qD,GAAWA,EAAQlrC,SAAQ,SAAUxZ,GAAU,OAAOA,QAM9D,IAAIglD,GAAoB,uBACpBL,GAAoB,gCAExB,SAASJ,GAAkBznD,GACvB,OAAO+O,EAAS/O,IAAaA,EAASkE,MAAMgkD,IAGhD,IAAIJ,GAAa,mBAMbK,GAAUC,QAAQhsD,UAClBisD,GAAYF,GAAQ7mC,SAAW6mC,GAAQ5/B,uBAAyB4/B,GAAQz/B,kBAE5E,SAASpH,GAAQ6iC,EAASnkD,GACtB,OAAOokD,EAAQD,GAASlG,MAAK,SAAUkG,GAAW,OAAOkE,GAAU1tD,KAAKwpD,EAASnkD,MAGrF,IAAIsoD,GAAYH,GAAQh3B,SAAW,SAAUnxB,GACzC,IAAIuoD,EAAWrrD,KAEf,GAEI,GAAIokB,GAAQinC,EAAUvoD,GAClB,OAAOuoD,QAGLA,EAAW/3C,GAAO+3C,KAGhC,SAASp3B,GAAQgzB,EAASnkD,GAMtB,OAJIoP,EAAWpP,EAAU,OACrBA,EAAWA,EAASwD,MAAM,IAGvBggD,EAAUW,GACXmE,GAAU3tD,KAAKwpD,EAASnkD,GACxBokD,EAAQD,GAASthD,KAAI,SAAUshD,GAAW,OAAOhzB,GAAQgzB,EAASnkD,MAAc8V,OAAOuuC,SAGjG,SAAS7zC,GAAO2zC,GAEZ,OADAA,EAAUD,EAAOC,KACCX,EAAUW,EAAQjiD,aAAeiiD,EAAQjiD,WAG/D,SAASovB,GAAQ6yB,EAASnkD,GAGtB,IAFA,IAAIopB,EAAW,GAEP+6B,EAAU3zC,GAAO2zC,IAChBnkD,IAAYshB,GAAQ6iC,EAASnkD,IAC9BopB,EAAS5qB,KAAK2lD,GAItB,OAAO/6B,EAGX,SAAS0H,GAASqzB,EAASnkD,GAEvB,IAAI8wB,GADJqzB,EAAUD,EAAOC,IACQC,EAAQD,EAAQrzB,UAAY,GACrD,OAAO9wB,EAAW8wB,EAAShb,QAAO,SAAUquC,GAAW,OAAO7iC,GAAQ6iC,EAASnkD,MAAgB8wB,EAGnG,IAAI03B,GAAW5nD,OAAO6nD,KAAOA,IAAIn/B,QAAU,SAAU7mB,GAAO,OAAOA,EAAI+C,QAAQ,wBAAwB,SAAUtB,GAAS,MAAQ,KAAOA,MACzI,SAASolB,GAAO7mB,GACZ,OAAOsM,EAAStM,GAAO+lD,GAAS7tD,KAAK,KAAM8H,GAAO,GAGtD,IAAIimD,GAAe,CACfC,MAAM,EACNh8B,MAAM,EACNi8B,IAAI,EACJ33C,KAAK,EACL43C,OAAO,EACPC,IAAI,EACJC,KAAK,EACL1gC,OAAO,EACP2gC,QAAQ,EACRC,MAAM,EACNC,UAAU,EACVC,MAAM,EACNjY,OAAO,EACPtsC,QAAQ,EACRwkD,OAAO,EACPC,KAAK,GAET,SAASC,GAAcnF,GACnB,OAAOC,EAAQD,GAASlG,MAAK,SAAUkG,GAAW,OAAOuE,GAAavE,EAAQ17C,QAAQwE,kBAG1F,SAASs8C,GAAUpF,GACf,OAAOC,EAAQD,GAASlG,MAAK,SAAUkG,GAAW,OAAOA,EAAQ3e,aAAe2e,EAAQ7M,cAAgB6M,EAAQnc,iBAAiBvqC,UAGrI,IAAI+rD,GAAW,+BACf,SAASC,GAAQtF,GACb,OAAOC,EAAQD,GAASlG,MAAK,SAAUkG,GAAW,OAAO7iC,GAAQ6iC,EAASqF,OAG9E,SAAS1zC,GAAOquC,EAASnkD,GACrB,OAAOokD,EAAQD,GAASruC,QAAO,SAAUquC,GAAW,OAAO7iC,GAAQ6iC,EAASnkD,MAGhF,SAAS0pD,GAAOvF,EAASnkD,GACrB,OAAQ+O,EAAS/O,GAIXshB,GAAQ6iC,EAASnkD,IAAamxB,GAAQgzB,EAASnkD,GAH/CmkD,IAAYnkD,IAAaqjD,EAAWrjD,GAChCA,EAAS+M,gBACTm3C,EAAOlkD,IAAWiP,SAASi1C,EAAOC,IAIhD,SAASnlD,KAEL,IADA,IAAIX,EAAO,GAAIR,EAAMU,UAAUd,OACvBI,KAAQQ,EAAMR,GAAQU,UAAWV,GAGzC,IAAIuT,EAAMu4C,GAAQtrD,GACd6yB,EAAU9f,EAAI,GACdgK,EAAOhK,EAAI,GACXpR,EAAWoR,EAAI,GACfw4C,EAAWx4C,EAAI,GACfy4C,EAAaz4C,EAAI,GAqBrB,OAnBA8f,EAAU44B,GAAe54B,GAErB04B,EAASnsD,OAAS,IAClBmsD,EAAW7pB,GAAO6pB,IAGlBC,GAAcA,EAAWr5B,OACzBo5B,EAAWG,GAAWH,IAGtB5pD,IACA4pD,EAAWtO,GAASpqB,EAASlxB,EAAU4pD,IAG3CC,EAAaG,GAAiBH,GAE9BzuC,EAAKvV,MAAM,KAAK6W,SAAQ,SAAUtB,GAAQ,OAAO8V,EAAQxU,SAAQ,SAAUrK,GAAU,OAAOA,EAAOW,iBAAiBoI,EAAMwuC,EAAUC,SAG7H,WAAc,OAAO1qD,GAAI+xB,EAAS9V,EAAMwuC,EAAUC,IAG7D,SAAS1qD,GAAI+xB,EAAS9V,EAAMwuC,EAAUC,QACd,IAAfA,IAAwBA,GAAa,GAE1CA,EAAaG,GAAiBH,GAC9B34B,EAAU44B,GAAe54B,GACzB9V,EAAKvV,MAAM,KAAK6W,SAAQ,SAAUtB,GAAQ,OAAO8V,EAAQxU,SAAQ,SAAUrK,GAAU,OAAOA,EAAOU,oBAAoBqI,EAAMwuC,EAAUC,SAK3I,SAAS3qD,KAEL,IADA,IAAIb,EAAO,GAAIR,EAAMU,UAAUd,OACvBI,KAAQQ,EAAMR,GAAQU,UAAWV,GAGzC,IAAIuT,EAAMu4C,GAAQtrD,GACd8lD,EAAU/yC,EAAI,GACdgK,EAAOhK,EAAI,GACXpR,EAAWoR,EAAI,GACfw4C,EAAWx4C,EAAI,GACfy4C,EAAaz4C,EAAI,GACjB64C,EAAY74C,EAAI,GAChBjS,EAAMH,GAAGmlD,EAAS/oC,EAAMpb,GAAU,SAAU/C,GAC5C,IAAIqtB,GAAU2/B,GAAaA,EAAUhtD,GACjCqtB,IACAnrB,IACAyqD,EAAS3sD,EAAGqtB,MAEjBu/B,GAEH,OAAO1qD,EAGX,SAAS0L,GAAQqmB,EAAS5mB,EAAOy1B,GAC7B,OAAO+pB,GAAe54B,GAAS5tB,QAAO,SAAU4mD,EAAa73C,GAAU,OAAO63C,GAAe73C,EAAO83C,cAAcC,GAAY9/C,GAAO,GAAM,EAAMy1B,OAC3I,GAGV,SAASqqB,GAAYntD,EAAG0iC,EAASC,EAAYG,GAIzC,QAHiB,IAAZJ,IAAqBA,GAAU,QAChB,IAAfC,IAAwBA,GAAa,GAEtC7wB,EAAS9R,GAAI,CACb,IAAIqN,EAAQpK,SAASkqD,YAAY,eACjC9/C,EAAM+/C,gBAAgBptD,EAAG0iC,EAASC,EAAYG,GAC9C9iC,EAAIqN,EAGR,OAAOrN,EAGX,SAAS0sD,GAAQtrD,GAIb,OAHIoQ,EAAWpQ,EAAK,KAChBA,EAAKsM,OAAO,EAAG,GAAG,GAEftM,EAGX,SAASi9C,GAASgP,EAAWtqD,EAAU4pD,GACnC,IAAIxxC,EAASlb,KAEb,OAAO,SAAUD,GAEbqtD,EAAU5tC,SAAQ,SAAU4+B,GAExB,IAAIvgC,EAA0B,MAAhB/a,EAAS,GACjBwnD,GAAQxnD,EAAUs7C,GAAUzpB,UAAU/b,QAAO,SAAUquC,GAAW,OAAOuF,GAAOzsD,EAAEoV,OAAQ8xC,MAAa,GACvGhzB,GAAQl0B,EAAEoV,OAAQrS,GAEpB+a,IACA9d,EAAEq+C,SAAWA,EACbr+C,EAAE8d,QAAUA,EAEZ6uC,EAASjvD,KAAKyd,EAAQnb,QAQtC,SAAS8iC,GAAO6pB,GACZ,OAAO,SAAU3sD,GAAK,OAAO4R,EAAQ5R,EAAE8iC,QAAU6pB,EAASnrD,WAAM,EAAQ,CAACxB,GAAGS,OAAOT,EAAE8iC,SAAW6pB,EAAS3sD,IAG7G,SAAS8sD,GAAWH,GAChB,OAAO,SAAU3sD,GACb,GAAIA,EAAEoV,SAAWpV,EAAEmV,eAAiBnV,EAAEoV,SAAWpV,EAAE8d,QAC/C,OAAO6uC,EAASjvD,KAAK,KAAMsC,IAKvC,SAAS+sD,GAAiBz6C,GACtB,OAAOA,GAAW+2C,KAAS5C,EAAUn0C,KAC7BA,EAAQg7C,QACVh7C,EAGV,SAASi7C,GAAcn4C,GACnB,OAAOA,GAAU,qBAAsBA,EAG3C,SAASo4C,GAAcp4C,GACnB,OAAOm4C,GAAcn4C,GAAUA,EAAS6xC,EAAO7xC,GAGnD,SAASy3C,GAAez3C,GACpB,OAAOxD,EAAQwD,GACLA,EAAOxP,IAAI4nD,IAAe30C,OAAOuuC,SACjCt1C,EAASsD,GACLm1C,GAAQn1C,GACRm4C,GAAcn4C,GACV,CAACA,GACD+xC,EAAQ/xC,GAG9B,SAASq4C,GAAQztD,GACb,MAAyB,UAAlBA,EAAE2jC,eAA6B3jC,EAAEgkC,QAG5C,SAAS0pB,GAAY1tD,EAAGyQ,QACN,IAATA,IAAkBA,EAAO,UAE9B,IAAIuzB,EAAUhkC,EAAEgkC,QACZpB,EAAiB5iC,EAAE4iC,eACnBzuB,EAAM6vB,GAAWA,EAAQ,IAAMpB,GAAkBA,EAAe,IAAM5iC,EAI1E,MAAO,CAAC0oD,EAHAv0C,EAAK1D,EAAO,KAGNk4C,EAFNx0C,EAAK1D,EAAO,MAOxB,IAAIk9C,GAAU,YAAahqD,OAASA,OAAOgqD,QAAUC,GAEjDr3B,GAAW,WACX,IAAIpb,EAASlb,KAEbA,KAAKq1B,QAAU,IAAIq4B,IAAQ,SAAUz4B,EAASC,GAC1Cha,EAAOga,OAASA,EAChBha,EAAO+Z,QAAUA,MAYrBmhB,GAAQ,iBAAkB1yC,OAAS4/C,EAAexjD,WAEtD,SAAS6tD,GAAUC,GAEf5tD,KAAKy2B,MANK,EAOVz2B,KAAKzB,WAAQoF,EACb3D,KAAK22B,SAAW,GAEhB,IAAItB,EAAUr1B,KAEd,IACI4tD,GACI,SAAUnF,GACNpzB,EAAQJ,QAAQwzB,MAEpB,SAAUrqD,GACNi3B,EAAQH,OAAO92B,MAGzB,MAAO2B,GACLs1B,EAAQH,OAAOn1B,IAIvB4tD,GAAUz4B,OAAS,SAAU92B,GACzB,OAAO,IAAIuvD,IAAU,SAAU14B,EAASC,GACpCA,EAAO92B,OAIfuvD,GAAU14B,QAAU,SAAUwzB,GAC1B,OAAO,IAAIkF,IAAU,SAAU14B,EAASC,GACpCD,EAAQwzB,OAIhBkF,GAAUh0B,IAAM,SAAak0B,GACzB,OAAO,IAAIF,IAAU,SAAU14B,EAASC,GACpC,IAAI9H,EAAS,GACT+N,EAAQ,EAMZ,SAAS2yB,EAASxwD,GACd,OAAO,SAAUmrD,GACbr7B,EAAO9vB,GAAKmrD,GACZttB,GAAS,KAEK0yB,EAASttD,QACnB00B,EAAQ7H,IAVI,IAApBygC,EAASttD,QACT00B,EAAQ7H,GAcZ,IAAK,IAAI9vB,EAAI,EAAGA,EAAIuwD,EAASttD,OAAQjD,GAAK,EACtCqwD,GAAU14B,QAAQ44B,EAASvwD,IAAIi4B,KAAKu4B,EAASxwD,GAAI43B,OAK7Dy4B,GAAUI,KAAO,SAAcF,GAC3B,OAAO,IAAIF,IAAU,SAAU14B,EAASC,GACpC,IAAK,IAAI53B,EAAI,EAAGA,EAAIuwD,EAASttD,OAAQjD,GAAK,EACtCqwD,GAAU14B,QAAQ44B,EAASvwD,IAAIi4B,KAAKN,EAASC,OAKzD,IAAI91B,GAAIuuD,GAAUzuD,UA2GlB,SAAS23C,GAAKb,EAAK3jC,GACf,OAAO,IAAIq7C,IAAQ,SAAUz4B,EAASC,GAElC,IAAIxzB,EAAM+lD,EAAO,CACb/8C,KAAM,KACN0qB,OAAQ,MACRsjB,QAAS,GACT2B,IAAK,IAAIC,eACT3B,WAAY13C,GACZo6C,aAAc,IACfhpC,GAEH3Q,EAAIi3C,WAAWj3C,GAEf,IAAI24C,EAAM34C,EAAI24C,IAEd,IAAK,IAAI7pC,KAAQ9O,EACb,GAAI8O,KAAQ6pC,EACR,IAEIA,EAAI7pC,GAAQ9O,EAAI8O,GAElB,MAAOzQ,IAMjB,IAAK,IAAIiuD,KAFT3T,EAAIQ,KAAKn5C,EAAI0zB,OAAO7iB,cAAeyjC,GAEhBt0C,EAAIg3C,QACnB2B,EAAItC,iBAAiBiW,EAAQtsD,EAAIg3C,QAAQsV,IAG7ClsD,GAAGu4C,EAAK,QAAQ,WAEO,IAAfA,EAAInC,QAAgBmC,EAAInC,QAAU,KAAOmC,EAAInC,OAAS,KAAsB,MAAfmC,EAAInC,OACjEjjB,EAAQolB,GAERnlB,EAAOuyB,EAAO/nD,MAAM26C,EAAIjC,YAAa,CACjCiC,IAAKA,EACLnC,OAAQmC,EAAInC,aAMxBp2C,GAAGu4C,EAAK,SAAS,WAAc,OAAOnlB,EAAOuyB,EAAO/nD,MAAM,iBAAkB,CAAC26C,IAAKA,QAClFv4C,GAAGu4C,EAAK,WAAW,WAAc,OAAOnlB,EAAOuyB,EAAO/nD,MAAM,mBAAoB,CAAC26C,IAAKA,QAEtFA,EAAIxB,KAAKn3C,EAAIgJ,SAIrB,SAASujD,GAAS3/C,EAAK4/C,EAAQC,GAE3B,OAAO,IAAIT,IAAQ,SAAUz4B,EAASC,GAClC,IAAI22B,EAAM,IAAIuC,MAEdvC,EAAI5Q,QAAU/lB,EACd22B,EAAI7Q,OAAS,WAAc,OAAO/lB,EAAQ42B,IAE1CsC,IAAUtC,EAAIsC,MAAQA,GACtBD,IAAWrC,EAAIqC,OAASA,GACxBrC,EAAIv9C,IAAMA,KAKlB,SAASmlB,GAAMpmB,GAEX,GAA4B,YAAxBrK,SAASi2B,WAKb,IAAIklB,EAASr8C,GAAGkB,SAAU,oBAAoB,WAC1Cm7C,IACA9wC,YANAA,IAUR,SAAS9D,GAAM09C,EAAS/yC,GACpB,OAAOA,EACDgzC,EAAQD,GAAS//C,QAAQ8/C,EAAO9yC,IAChC0f,GAAStgB,GAAO2zC,IAAU//C,QAAQ+/C,GAG5C,SAASoH,GAAS/wD,EAAG4uB,EAAUrO,EAASywC,QACnB,IAAZzwC,IAAqBA,EAAU,QACpB,IAAXywC,IAAoBA,GAAS,GAKlC,IAAI/tD,GAFJ2rB,EAAWg7B,EAAQh7B,IAEG3rB,OAUtB,OARAjD,EAAIohD,EAAUphD,GACRspD,EAAStpD,GACH,SAANA,EACIugB,EAAU,EACJ,aAANvgB,EACIugB,EAAU,EACVtU,GAAM2iB,EAAU5uB,GAE1BgxD,EACOrG,GAAM3qD,EAAG,EAAGiD,EAAS,IAGhCjD,GAAKiD,GAEM,EAAIjD,EAAIiD,EAASjD,EAGhC,SAAS44B,GAAM+wB,GAGX,OAFAA,EAAUpkD,GAAEokD,IACJlhD,UAAY,GACbkhD,EAGX,SAAS33C,GAAKgE,EAAQhE,GAElB,OADAgE,EAASzQ,GAAEyQ,GACJrF,EAAYqB,GACbgE,EAAOvN,UACPuV,GAAOhI,EAAOi7C,gBAAkBr4B,GAAM5iB,GAAUA,EAAQhE,GAclE,SAASgM,GAAOhI,EAAQ2zC,GAEpB,OADA3zC,EAASzQ,GAAEyQ,GACJk7C,GAAYvH,GAAS,SAAUA,GAAW,OAAO3zC,EAAOnO,YAAY8hD,MAG/E,SAAS7gB,GAAOlyB,EAAK+yC,GAEjB,OADA/yC,EAAMrR,GAAEqR,GACDs6C,GAAYvH,GAAS,SAAUA,GAAW,OAAO/yC,EAAIlP,WAAWqL,aAAa42C,EAAS/yC,MAGjG,SAASmyB,GAAMnyB,EAAK+yC,GAEhB,OADA/yC,EAAMrR,GAAEqR,GACDs6C,GAAYvH,GAAS,SAAUA,GAAW,OAAO/yC,EAAIrD,YACtDu1B,GAAOlyB,EAAIrD,YAAao2C,GACxB3rC,GAAOpH,EAAIlP,WAAYiiD,MAIjC,SAASuH,GAAYvH,EAAS55C,GAE1B,OADA45C,EAAUp1C,EAASo1C,GAAW5oB,GAAS4oB,GAAWA,GAE5C,WAAYA,EACRC,EAAQD,GAASthD,IAAI0H,GACrBA,EAAG45C,GACP,KAGV,SAASjhD,GAAOihD,GACZC,EAAQD,GAASthD,KAAI,SAAUshD,GAAW,OAAOA,EAAQjiD,YAAciiD,EAAQjiD,WAAW8W,YAAYmrC,MAG1G,SAASnN,GAAQmN,EAASlS,GAItB,IAFAA,EAAYiS,EAAO5gB,GAAO6gB,EAASlS,IAE5BA,EAAUnkC,YACbmkC,EAAYA,EAAUnkC,WAK1B,OAFA0K,GAAOy5B,EAAWkS,GAEXlS,EAGX,SAASiF,GAAUiN,EAASlS,GACxB,OAAOmS,EAAQA,EAAQD,GAASthD,KAAI,SAAUshD,GAAW,OAAOA,EAAQsH,cAAgBzU,GAAQoN,EAAQD,EAAQ7+B,YAAa2sB,GAAaz5B,GAAO2rC,EAASlS,OAI9J,SAASmF,GAAO+M,GACZC,EAAQD,GACHthD,IAAI2N,IACJsF,QAAO,SAAUra,EAAOgL,EAAO+pB,GAAQ,OAAOA,EAAKpsB,QAAQ3I,KAAWgL,KACtEiW,SAAQ,SAAUlM,GACf8yB,GAAO9yB,EAAQA,EAAO8U,YACtBpiB,GAAOsN,MAxSnBlU,GAAE61B,QAAU,SAAiBwzB,GACzB,IAAIpzB,EAAUr1B,KAEd,GA7EU,IA6ENq1B,EAAQoB,MAAmB,CAC3B,GAAIgyB,IAAMpzB,EACN,MAAM,IAAIqC,UAAU,gCAGxB,IAAI+2B,GAAS,EAEb,IACI,IAAIl5B,EAAOkzB,GAAKA,EAAElzB,KAElB,GAAU,OAANkzB,GAAcj3C,EAASi3C,IAAMl3C,EAAWgkB,GAgBxC,YAfAA,EAAK93B,KACDgrD,GACA,SAAUA,GACDgG,GACDp5B,EAAQJ,QAAQwzB,GAEpBgG,GAAS,KAEb,SAAUrwD,GACDqwD,GACDp5B,EAAQH,OAAO92B,GAEnBqwD,GAAS,KAKvB,MAAO1uD,GAIL,YAHK0uD,GACDp5B,EAAQH,OAAOn1B,IAKvBs1B,EAAQoB,MAlHD,EAmHPpB,EAAQ92B,MAAQkqD,EAChBpzB,EAAQ4B,WAIhB73B,GAAE81B,OAAS,SAAgBw5B,GAGvB,GAzHU,IAuHI1uD,KAEFy2B,MAAmB,CAC3B,GAAIi4B,IAHM1uD,KAIN,MAAM,IAAI03B,UAAU,gCAJd13B,KAOFy2B,MA/HD,EAwHGz2B,KAQFzB,MAAQmwD,EARN1uD,KASFi3B,WAIhB73B,GAAE63B,OAAS,WACP,IAAI/b,EAASlb,KAEbo2C,IAAM,WACF,GAxIM,IAwIFl7B,EAAOub,MACP,KAAOvb,EAAOyb,SAASp2B,QAAQ,CAC3B,IAAI2T,EAAMgH,EAAOyb,SAASvN,QACtBulC,EAAaz6C,EAAI,GACjBijB,EAAajjB,EAAI,GACjB+gB,EAAU/gB,EAAI,GACdghB,EAAShhB,EAAI,GAEjB,IAlJD,IAmJSgH,EAAOub,MACHllB,EAAWo9C,GACX15B,EAAQ05B,EAAWlxD,UAAKkG,EAAWuX,EAAO3c,QAE1C02B,EAAQ/Z,EAAO3c,OAtJ5B,IAwJgB2c,EAAOub,QACVllB,EAAW4lB,GACXlC,EAAQkC,EAAW15B,UAAKkG,EAAWuX,EAAO3c,QAE1C22B,EAAOha,EAAO3c,QAGxB,MAAOwB,GACLm1B,EAAOn1B,SAO3BX,GAAEm2B,KAAO,SAAco5B,EAAYx3B,GAC/B,IAAIjc,EAASlb,KAEb,OAAO,IAAI2tD,IAAU,SAAU14B,EAASC,GACpCha,EAAOyb,SAASr1B,KAAK,CAACqtD,EAAYx3B,EAAYlC,EAASC,IACvDha,EAAO+b,aAIf73B,GAAE05B,MAAQ,SAAU3B,GAChB,OAAOn3B,KAAKu1B,UAAK5xB,EAAWwzB,IAsMhC,IAAIy3B,GAAa,qBACbC,GAAc,6BAElB,SAASxwB,GAAS/uB,GAEd,IAAI8U,EAAUyqC,GAAYpqD,KAAK6K,GAC/B,GAAI8U,EACA,OAAOphB,SAASoB,cAAcggB,EAAQ,IAG1C,IAAI/U,EAAYrM,SAASoB,cAAc,OAOvC,OANIwqD,GAAWhoD,KAAK0I,GAChBD,EAAUy/C,mBAAmB,YAAax/C,EAAKnF,QAE/CkF,EAAUqd,YAAcpd,EAGrBD,EAAU+Y,WAAW7nB,OAAS,EAAI2mD,EAAQ73C,EAAU+Y,YAAc/Y,EAAUuB,WAIvF,SAASrP,GAAMiO,EAAMnC,GAEjB,GAAKi5C,EAAU92C,GAMf,IAFAnC,EAAGmC,GACHA,EAAOA,EAAKuqC,kBACLvqC,GAAM,CACT,IAAIvI,EAAOuI,EAAKu/C,mBAChBxtD,GAAMiO,EAAMnC,GACZmC,EAAOvI,GAIf,SAASpE,GAAEC,EAAU4N,GACjB,OAAQmB,EAAS/O,GAEXksD,GAAOlsD,GACHkkD,EAAO3oB,GAASv7B,IAChBkoB,GAAKloB,EAAU4N,GAHnBs2C,EAAOlkD,GAMjB,SAAS4L,GAAG5L,EAAU4N,GAClB,OAAQmB,EAAS/O,GAEXksD,GAAOlsD,GACHokD,EAAQ7oB,GAASv7B,IACjBwnD,GAAQxnD,EAAU4N,GAHtBw2C,EAAQpkD,GAMlB,SAASksD,GAAOjmD,GACZ,MAAkB,MAAXA,EAAI,IAAcA,EAAI/B,MAAM,SAGvC,SAAS8qC,GAASmV,GAEd,IADA,IAAI9lD,EAAO,GAAIR,EAAMU,UAAUd,OAAS,EAChCI,KAAQ,GAAIQ,EAAMR,GAAQU,UAAWV,EAAM,GAEnDsuD,GAAQhI,EAAS9lD,EAAM,OAG3B,SAASgxC,GAAY8U,GAEjB,IADA,IAAI9lD,EAAO,GAAIR,EAAMU,UAAUd,OAAS,EAChCI,KAAQ,GAAIQ,EAAMR,GAAQU,UAAWV,EAAM,GAEnDsuD,GAAQhI,EAAS9lD,EAAM,UAG3B,SAAS+tD,GAAcjI,EAASkI,GAC5Bt4C,GAAKowC,EAAS,SAAS,SAAU1oD,GAAS,OAAQA,GAAS,IAAI+J,QAAQ,IAAIV,OAAQ,MAAQunD,EAAM,MAAQ,KAAM,OAGnH,SAASC,GAAanI,GAElB,IADA,IAAI9lD,EAAO,GAAIR,EAAMU,UAAUd,OAAS,EAChCI,KAAQ,GAAIQ,EAAMR,GAAQU,UAAWV,EAAM,GAEnDQ,EAAK,IAAMgxC,GAAY8U,EAAS9lD,EAAK,IACrCA,EAAK,IAAM2wC,GAASmV,EAAS9lD,EAAK,IAGtC,SAASqxC,GAASyU,EAASkI,GACvB,OAAOA,GAAOjI,EAAQD,GAASlG,MAAK,SAAUkG,GAAW,OAAOA,EAAQoI,UAAUt9C,SAASo9C,EAAIxmD,MAAM,KAAK,OAG9G,SAASypC,GAAY6U,GAEjB,IADA,IAAI9lD,EAAO,GAAIR,EAAMU,UAAUd,OAAS,EAChCI,KAAQ,GAAIQ,EAAMR,GAAQU,UAAWV,EAAM,GAGnD,GAAKQ,EAAKZ,OAAV,CAMA,IAAIigD,EAAS3uC,EAASkR,EAFtB5hB,EAAOmuD,GAAUnuD,KAEgC,GAAbA,EAAK8kB,MAEzC9kB,EAAOA,EAAKyX,OAAOuuC,SAEnBD,EAAQD,GAASznC,SAAQ,SAAUtL,GAG/B,IAFA,IAAIm7C,EAAYn7C,EAAIm7C,UAEX/xD,EAAI,EAAGA,EAAI6D,EAAKZ,OAAQjD,IAC7BiyD,GAASC,MACHH,EAAUvyB,OAAOv7B,MAAM8tD,EAAW,CAACluD,EAAK7D,IAAIkD,OAAOggD,IAClD6O,GAAYphD,EAAYuyC,IAAkB6O,EAAUt9C,SAAS5Q,EAAK7D,IAAjCkjD,GAAwC,MAAQ,UAAUr/C,EAAK7D,QAMnH,SAAS2xD,GAAQhI,EAAS9lD,EAAMkM,IAC5BlM,EAAOmuD,GAAUnuD,GAAMyX,OAAOuuC,UAEzB5mD,QAAU2mD,EAAQD,GAASznC,SAAQ,SAAUtL,GAC9C,IAAIm7C,EAAYn7C,EAAIm7C,UAEpBE,GAASE,SACHJ,EAAUhiD,GAAI9L,MAAM8tD,EAAWluD,GAC/BA,EAAKqe,SAAQ,SAAU2vC,GAAO,OAAOE,EAAUhiD,GAAI8hD,SAIjE,SAASG,GAAUnuD,GACf,OAAOA,EAAKiF,QAAO,SAAUjF,EAAMmjB,GAAO,OAAOnjB,EAAKX,OAAO/C,KAAK0D,EAAM0Q,EAASyS,IAAQwhC,EAASxhC,EAAK,KAAOA,EAAIna,OAAOxB,MAAM,KAAO2b,KAChI,IAIV,IAAIirC,GAAW,CAEX,eACI,OAAOvvD,KAAK7B,IAAI,cAGpB,YACI,OAAO6B,KAAK7B,IAAI,WAGpBA,IAAK,SAASU,GAEV,IAAKwiB,EAAOrhB,KAAMnB,GAAM,CACpB,IACIwwD,EADMrsD,SAASoB,cAAc,KACbirD,UACpBA,EAAU/pD,IAAI,IAAK,KACnB+pD,EAAUvyB,OAAO,KAAK,GACtB98B,KAAK0vD,UAAYL,EAAUt9C,SAAS,KACpC/R,KAAK2vD,QAAUN,EAAUt9C,SAAS,KAGtC,OAAO/R,KAAKnB,KAKhBy9B,GAAY,CACZ,6BAA6B,EAC7B,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,SAAW,EACX,OAAS,EACT,SAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,QAAU,EACV,WAAW,EACX,MAAQ,GAGZ,SAAS/2B,GAAI0hD,EAAShoD,EAAUV,GAE5B,OAAO2oD,EAAQD,GAASthD,KAAI,SAAUshD,GAElC,GAAIp1C,EAAS5S,GAAW,CAIpB,GAFAA,EAAW2wD,GAAS3wD,GAEhBgP,EAAY1P,GACZ,OAAOsxD,GAAS5I,EAAShoD,GACjBV,GAAUkoD,EAASloD,GAG3B0oD,EAAQxhD,MAAMxG,GAAYy/C,EAAUngD,KAAW+9B,GAAUr9B,GAAaV,EAAQ,KAAQA,EAFtF0oD,EAAQxhD,MAAMqqD,eAAe7wD,OAK9B,IAAI0S,EAAQ1S,GAAW,CAE1B,IAAIqrC,EAASzD,GAAUogB,GAEvB,OAAOhoD,EAASmH,QAAO,SAAUkU,EAAOrb,GAEpC,OADAqb,EAAMrb,GAAYqrC,EAAOslB,GAAS3wD,IAC3Bqb,IACR,IAEI9I,EAASvS,IAChBgT,EAAKhT,GAAU,SAAUV,EAAOU,GAAY,OAAOsG,GAAI0hD,EAAShoD,EAAUV,MAG9E,OAAO0oD,KAER,GAIP,SAASpgB,GAAUogB,EAAS8I,GAExB,OADA9I,EAAUD,EAAOC,IACFx3C,cAAc+a,YAAYuc,iBAAiBkgB,EAAS8I,GAGvE,SAASF,GAAS5I,EAAShoD,EAAU8wD,GACjC,OAAOlpB,GAAUogB,EAAS8I,GAAW9wD,GAGzC,IAAI+wD,GAAO,GAEX,SAASC,GAAUpyD,GAEf,IAAIqyD,EAAQltD,SAAS6M,gBAErB,IAAKu5C,GACD,OAAOviB,GAAUqpB,GAAO5oB,iBAAkB,QAAUzpC,GAGxD,KAAMA,KAAQmyD,IAAO,CAIjB,IAAI/I,EAAU3rC,GAAO40C,EAAOltD,SAASoB,cAAc,QAEnD0tC,GAASmV,EAAU,MAAQppD,GAE3BmyD,GAAKnyD,GAAQgyD,GAAS5I,EAAS,UAAW,WAAW3+C,QAAQ,iBAAkB,MAE/EtC,GAAOihD,GAIX,OAAO+I,GAAKnyD,GAIhB,IAAIwrC,GAAW,GAEf,SAASumB,GAAS/xD,GAEd,IAAI4kB,EAAM4mB,GAASxrC,GAInB,OAHK4kB,IACDA,EAAM4mB,GAASxrC,GAOvB,SAAwBA,GAEpBA,EAAOinD,EAAUjnD,GAEjB,IACI4H,EADMzC,SAAS6M,gBACHpK,MAEhB,GAAI5H,KAAQ4H,EACR,OAAO5H,EAKX,IAFA,IAA4BsyD,EAAxB7yD,EAAI0rC,GAAYzoC,OAEbjD,KAEH,IADA6yD,EAAe,IAAOnnB,GAAY1rC,GAAM,IAAMO,KAC1B4H,EAChB,OAAO0qD,EAvBY5mB,CAAe1rC,IAASA,GAE5C4kB,EAGX,IAAIumB,GAAc,CAAC,SAAU,MAAO,MAuBpC,SAASonB,GAAWnJ,EAAS3sC,EAAO8xB,EAAUikB,GAK1C,YAJkB,IAAbjkB,IAAsBA,EAAW,UACtB,IAAXikB,IAAoBA,EAAS,UAG3B3C,GAAQ/zB,IAAIutB,EAAQD,GAASthD,KAAI,SAAUshD,GAAW,OAAO,IAAIyG,IAAQ,SAAUz4B,EAASC,GAE3F,IAAK,IAAIr3B,KAAQyc,EAAO,CACpB,IAAI/b,EAAQgH,GAAI0hD,EAASppD,GACX,KAAVU,GACAgH,GAAI0hD,EAASppD,EAAMU,GAI3B,IAAIkwC,EAAQ3uC,YAAW,WAAc,OAAO6N,GAAQs5C,EAAS,mBAAqB7a,GAElFpqC,GAAKilD,EAAS,oCAAoC,SAAU/yC,GACxD,IAAIgK,EAAOhK,EAAIgK,KAEfje,aAAawuC,GACb0D,GAAY8U,EAAS,iBACrB1hD,GAAI0hD,EAAS,CACTqJ,mBAAoB,GACpBC,mBAAoB,GACpBC,yBAA0B,KAErB,uBAATtyC,EAAgCgX,IAAWD,MAC5C,CAAC3B,MAAM,IAEVwe,GAASmV,EAAS,iBAClB1hD,GAAI0hD,EAASQ,EAAO,CAChB6I,mBAAoBtyD,OAAO0H,KAAK4U,GAAO3U,IAAIiqD,IAAU/pD,KAAK,KAC1D0qD,mBAAqBnkB,EAAW,KAChCokB,yBAA0BH,GAC3B/1C,WAOf,IAAIm2C,GAAa,CAEb5pD,MAAOupD,GAEPp1B,KAAM,SAASisB,GAEX,OADAt5C,GAAQs5C,EAAS,iBACVyG,GAAQz4B,WAGnBy7B,OAAQ,SAASzJ,GACbt5C,GAAQs5C,EAAS,uBAGrBna,WAAY,SAASma,GACjB,OAAOzU,GAASyU,EAAS,mBAQjC,SAAStX,GAAQsX,EAASvZ,EAAWtB,EAAUukB,EAAQC,GACnD,IAAI/iD,EAAcxM,UAIlB,YAHkB,IAAb+qC,IAAsBA,EAAW,KAG/BshB,GAAQ/zB,IAAIutB,EAAQD,GAASthD,KAAI,SAAUshD,GAAW,OAAO,IAAIyG,IAAQ,SAAUz4B,EAASC,GAE3F,GAAIsd,GAASyU,EATA,uBAUT/Z,uBAAsB,WAAc,OAAOwgB,GAAQz4B,UAAUM,MAAK,WAAc,OAAOoa,GAAQpuC,WAAM,EAAQsM,GAAa0nB,KAAKN,EAASC,aAD5I,CAOA,IAAIi6B,EAAMzhB,EAAY,kBAAyBkjB,EAAM,QAAU,SAE3D1+C,EAAWw7B,EAnBL,mBAqBFijB,IACAxB,GAAO,wBAA0BwB,GAGjCC,IACAzB,GAAO,0BAKf7/B,IAEAttB,GAAKilD,EAAS,gCAAgC,SAAU/yC,GACpD,IAAIgK,EAAOhK,EAAIgK,KAGX2yC,GAAW,EAEF,oBAAT3yC,GACAgX,IACA5F,MAEA2F,IACAy4B,GAAQz4B,UAAUM,MAAK,WACnBs7B,GAAW,EACXvhC,QAIR4d,uBAAsB,WACb2jB,IACD/e,GAASmV,EAnDR,uBAqDD/Z,uBAAsB,WAAc,OAAOiF,GAAY8U,EArDtD,gCAyDV,CAAC3zB,MAAM,IAEV/tB,GAAI0hD,EAAS,oBAAsB7a,EAAW,MAC9C0F,GAASmV,EAASkI,GAElB,SAAS7/B,IACL/pB,GAAI0hD,EAAS,oBAAqB,IAClCiI,GAAcjI,EAAS,6BAQvC,IAAIna,GAAa,IAAIllC,OAAO,8BACxB+lC,GAAY,CAEZmjB,GAAI,SAAS7J,EAASvZ,EAAWtB,EAAUukB,GACvC,OAAOhhB,GAAQsX,EAASvZ,EAAWtB,EAAUukB,GAAQ,IAGzDC,IAAK,SAAS3J,EAASvZ,EAAWtB,EAAUukB,GACxC,OAAOhhB,GAAQsX,EAASvZ,EAAWtB,EAAUukB,GAAQ,IAGzD7jB,WAAY,SAASma,GACjB,OAAOna,GAAWlmC,KAAKiQ,GAAKowC,EAAS,WAGzCyJ,OAAQ,SAASzJ,GACbt5C,GAAQs5C,EAAS,qBAKrB8J,GAAO,CACP5pB,MAAO,CAAC,IAAK,OAAQ,SACrBqG,OAAQ,CAAC,IAAK,MAAO,WAGzB,SAASwjB,GAAW/J,EAAS9xC,EAAQ87C,EAAUC,EAAcC,EAAUC,EAAcC,EAAMC,GAEvFL,EAAWM,GAAON,GAClBC,EAAeK,GAAOL,GAEtB,IAAIM,EAAU,CAACvK,QAASgK,EAAU97C,OAAQ+7C,GAE1C,IAAKjK,IAAY9xC,EACb,OAAOq8C,EAGX,IAAIC,EAAMC,GAAczK,GACpB0K,EAAYD,GAAcv8C,GAC1BizB,EAAWupB,EAcf,GAZAC,GAAOxpB,EAAU6oB,EAAUQ,GAAM,GACjCG,GAAOxpB,EAAU8oB,EAAcS,EAAW,GAE1CR,EAAWU,GAAWV,EAAUM,EAAItqB,MAAOsqB,EAAIjkB,QAC/C4jB,EAAeS,GAAWT,EAAcO,EAAUxqB,MAAOwqB,EAAUnkB,QAEnE2jB,EAAY,GAAKC,EAAgB,EACjCD,EAAY,GAAKC,EAAgB,EAEjChpB,EAASqD,MAAQ0lB,EAAY,EAC7B/oB,EAAS3d,KAAO0mC,EAAY,EAExBE,EAAM,CAEN,IAAIS,EAAa,CAACJ,GAActK,EAASH,KAErCqK,GACAQ,EAAW7lC,QAAQylC,GAAcJ,IAGrCr/C,EAAK8+C,IAAM,SAAU78C,EAAK1D,GACtB,IAAI7N,EAAMuR,EAAI,GACV69C,EAAQ79C,EAAI,GACZ89C,EAAY99C,EAAI,KAGL,IAATm9C,GAAiBvL,EAASuL,EAAM1uD,KAItCmvD,EAAW/Q,MAAK,SAAUuQ,GAEtB,IAAIW,EAAahB,EAAStuD,KAASovD,GAC5BN,EAAIjhD,GACLygD,EAAStuD,KAASqvD,EACdP,EAAIjhD,GACJ,EAEN4gD,EAAeF,EAAavuD,KAASovD,EACnCJ,EAAUnhD,GACV0gD,EAAavuD,KAASqvD,GACjBL,EAAUnhD,GACX,EAEV,GAAI43B,EAAS2pB,GAAST,EAASS,IAAU3pB,EAAS2pB,GAASN,EAAIjhD,GAAQ8gD,EAASU,GAAY,CAExF,IAAIE,EAAeT,EAAIjhD,GAAQ,EAC3B2hD,EAA2C,WAAtBjB,EAAavuD,IAAqBgvD,EAAUnhD,GAAQ,EAAI,EAEjF,MAAyB,WAAlBygD,EAAStuD,KACZpB,EAAM2wD,EAAcC,IACjB5wD,GAAO2wD,GAAeC,KACxB5wD,EAAM0wD,EAAYb,GAI3B,SAAS7vD,EAAM0wD,EAAYb,GAEvB,IAAIgB,EAAShqB,EAAS2pB,GAASE,EAAab,EAA+B,EAAhBD,EAASxuD,GAEpE,GAAIyvD,GAAUd,EAASS,IAAUK,EAASX,EAAIjhD,IAAS8gD,EAASU,GAW5D,OAVA5pB,EAAS2pB,GAASK,EAElB,CAAC,UAAW,UAAU5yC,SAAQ,SAAUvS,GACpCukD,EAAQvkD,GAAItK,GAAQsvD,EAEdT,EAAQvkD,GAAItK,KAASouD,GAAKvgD,GAAM,GAC5BugD,GAAKvgD,GAAM,GACXugD,GAAKvgD,GAAM,GAHfghD,EAAQvkD,GAAItK,OAMf,SAY3B,OAFAg6C,GAAOsK,EAAS7e,GAETopB,EAGX,SAAS7U,GAAOsK,EAASoL,GAErB,IAAKA,EACD,OAAOX,GAAczK,GAGzB,IAAIqL,EAAgB3V,GAAOsK,GACvBtgD,EAAMpB,GAAI0hD,EAAS,YAEvB,CAAC,OAAQ,OAAOznC,SAAQ,SAAUhP,GAC9B,GAAIA,KAAQ6hD,EAAa,CACrB,IAAI9zD,EAAQgH,GAAI0hD,EAASz2C,GACzBjL,GAAI0hD,EAASz2C,EAAM6hD,EAAY7hD,GAAQ8hD,EAAc9hD,GAC/Cu2C,EAAgB,aAARpgD,GAAgC,SAAVpI,EAC1B6pC,GAAS6e,GAASz2C,GAClBjS,QAMtB,SAASmzD,GAAczK,GAEnB,IAAKA,EACD,MAAO,GAGX,IAmBIxhD,EAAOwJ,EAnBPiF,EAAMkzC,EAASH,GACfx8B,EAAMvW,EAAIqpC,YACV9R,EAAOv3B,EAAIspC,YAEf,GAAI/7B,EAASwlC,GAAU,CAEnB,IAAIzZ,EAASyZ,EAAQsL,YACjBprB,EAAQ8f,EAAQuL,WAEpB,MAAO,CACH/nC,IAAKA,EACLghB,KAAMA,EACN+B,OAAQA,EACRrG,MAAOA,EACPmhB,OAAQ79B,EAAM+iB,EACdvF,MAAOwD,EAAOtE,GAMjBklB,GAAUpF,IAAwC,SAA5B1hD,GAAI0hD,EAAS,aAEpCxhD,EAAQoR,GAAKowC,EAAS,SACtBh4C,EAAS4H,GAAKowC,EAAS,UAEvBpwC,GAAKowC,EAAS,CACVxhD,OAASA,GAAS,IAAM,6BACxBwJ,OAAQ,QAMhB,IAAIouC,GAFJ4J,EAAUD,EAAOC,IAEE1b,wBAMnB,OAJKt9B,EAAYxI,IACboR,GAAKowC,EAAS,CAACxhD,MAAOA,EAAOwJ,OAAQA,IAGlC,CACHu+B,OAAQ6P,EAAK7P,OACbrG,MAAOkW,EAAKlW,MACZ1c,IAAK4yB,EAAK5yB,IAAMA,EAChBghB,KAAM4R,EAAK5R,KAAOA,EAClB6c,OAAQjL,EAAKiL,OAAS79B,EACtBwd,MAAOoV,EAAKpV,MAAQwD,GAI5B,SAASrD,GAAS6e,EAAS3zC,GACvB,IAAIm/C,EAAgB9V,GAAOsK,GACvBvJ,EAAef,GAAOrpC,GAAU0zC,EAAOC,GAASxJ,cAAgB2J,EAASH,GAASjkD,SAAS6M,iBAE/F,MAAO,CAAC4a,IAAKgoC,EAAchoC,IAAMizB,EAAajzB,IAAKghB,KAAMgnB,EAAchnB,KAAOiS,EAAajS,MAG/F,SAASinB,GAAezL,GACpB,IAAItK,EAAS,CAAC,EAAG,GAEjBsK,EAAUD,EAAOC,GAEjB,GAKI,GAHAtK,EAAO,IAAMsK,EAAQ0L,UACrBhW,EAAO,IAAMsK,EAAQ2L,WAEY,UAA7BrtD,GAAI0hD,EAAS,YAAyB,CACtC,IAAI3J,EAAM8J,EAASH,GAGnB,OAFAtK,EAAO,IAAMW,EAAIC,YACjBZ,EAAO,IAAMW,EAAIE,YACVb,SAGLsK,EAAUA,EAAQxJ,cAE5B,OAAOd,EAGX,IAAInP,GAASrD,GAAU,UACnBhD,GAAQgD,GAAU,SAEtB,SAASA,GAAU35B,GACf,IAAIo/C,EAAW1K,EAAQ10C,GACvB,OAAO,SAAUy2C,EAAS1oD,GAEtB,GAAI0P,EAAY1P,GAAQ,CAEpB,GAAIkjB,EAASwlC,GACT,OAAOA,EAAS,QAAU2I,GAG9B,GAAIzJ,EAAWc,GAAU,CACrB,IAAInlC,EAAMmlC,EAAQp3C,gBAClB,OAAO0T,KAAK0mB,IAAInoB,EAAK,SAAW8tC,GAAY9tC,EAAK,SAAW8tC,IAQhE,OAFArxD,EAAkB,UADlBA,EAAQgH,GAFR0hD,EAAUD,EAAOC,GAEIz2C,IACMy2C,EAAS,SAAW2I,GAAa7I,EAAQxoD,IAAU,GAE/Ds0D,GAAe5L,EAASz2C,GAIvCjL,GAAI0hD,EAASz2C,EAAOjS,GAAmB,IAAVA,GAEtBA,EAAQs0D,GAAe5L,EAASz2C,GAAQ,KADzC,KASlB,SAASqiD,GAAe5L,EAASz2C,EAAMsiD,GAGnC,YAFgB,IAAXA,IAAoBA,EAAS,cAE3BvtD,GAAI0hD,EAAS,eAAiB6L,EAC/B/B,GAAKvgD,GAAMlK,MAAM,GAAGX,IAAIu/C,GAAS9+C,QAAO,SAAU7H,EAAOiS,GAAQ,OAAOjS,EACpEwoD,EAAQxhD,GAAI0hD,EAAU,UAAYz2C,IAClCu2C,EAAQxhD,GAAI0hD,EAAU,SAAWz2C,EAAO,YACxC,GACJ,EAGV,SAASohD,GAAOxpB,EAAU2qB,EAAQtB,EAAKuB,GACnC/gD,EAAK8+C,IAAM,SAAU78C,EAAK1D,GACtB,IAAI7N,EAAMuR,EAAI,GACV69C,EAAQ79C,EAAI,GACZ89C,EAAY99C,EAAI,GAEhB6+C,EAAOpwD,KAASqvD,EAChB5pB,EAAS2pB,IAAUN,EAAIjhD,GAAQwiD,EACR,WAAhBD,EAAOpwD,KACdylC,EAAS2pB,IAAUN,EAAIjhD,GAAQwiD,EAAS,MAKpD,SAASzB,GAAO5qD,GAEZ,IAAI8hD,EAAI,oBACJC,EAAI,oBAYR,OARmB,KAFnB/hD,GAAOA,GAAO,IAAIgC,MAAM,MAEhBpI,SACJoG,EAAM8hD,EAAE7hD,KAAKD,EAAI,IACXA,EAAInG,OAAO,CAAC,WACZkoD,EAAE9hD,KAAKD,EAAI,IACP,CAAC,UAAUnG,OAAOmG,GAClB,CAAC,SAAU,WAGlB,CACH8hD,EAAGA,EAAE7hD,KAAKD,EAAI,IAAMA,EAAI,GAAK,SAC7B+hD,EAAGA,EAAE9hD,KAAKD,EAAI,IAAMA,EAAI,GAAK,UAIrC,SAASkrD,GAAWoB,EAAS9rB,EAAOqG,GAEhC,IAAIt5B,GAAO++C,GAAW,IAAItqD,MAAM,KAC5B8/C,EAAIv0C,EAAI,GACRw0C,EAAIx0C,EAAI,GAEZ,MAAO,CACHu0C,EAAGA,EAAI1B,EAAQ0B,IAAMhD,EAASgD,EAAG,KAAOthB,EAAQ,IAAM,GAAK,EAC3DuhB,EAAGA,EAAI3B,EAAQ2B,IAAMjD,EAASiD,EAAG,KAAOlb,EAAS,IAAM,GAAK,GAIpE,SAAS0lB,GAAavsD,GAClB,OAAQA,GACJ,IAAK,OACD,MAAO,QACX,IAAK,QACD,MAAO,OACX,IAAK,MACD,MAAO,SACX,IAAK,SACD,MAAO,MACX,QACI,OAAOA,GAInB,SAASwsD,GAAK50D,EAAOU,EAAUgoD,GAI3B,YAHkB,IAAbhoD,IAAsBA,EAAW,cACrB,IAAZgoD,IAAqBA,EAAUvjD,QAE7Bg7C,EAAUngD,IACVA,EACDknD,EAASlnD,EAAO,MACZ2tC,GAAQsB,GAAO4Z,EAASH,IAAW1oD,GACnCknD,EAASlnD,EAAO,MACZ2tC,GAAQ/E,GAAMigB,EAASH,IAAW1oD,GAClCknD,EAASlnD,EAAO,KACZ2tC,GAAQwlB,GAAczK,GAAShoD,GAAWV,GAC1CwoD,EAAQxoD,GAG9B,SAAS2tC,GAAQzc,EAAMlxB,GACnB,OAAOkxB,EAAOs3B,EAAQxoD,GAAS,IASnC,IAAI60D,GAAU,CAEVC,MAAO,GACPC,OAAQ,GAERC,KAAM,SAAS7O,GAGX,OAFA1kD,KAAKqzD,MAAM/xD,KAAKojD,GAChB8O,KACO9O,GAGX+O,MAAO,SAAS/O,GAGZ,OAFA1kD,KAAKszD,OAAOhyD,KAAKojD,GACjB8O,KACO9O,GAGXgP,MAAO,SAAShP,GACZ,OAAOiP,GAAS3zD,KAAKqzD,MAAO3O,IAASiP,GAAS3zD,KAAKszD,OAAQ5O,IAG/DkP,MAAOA,IAIX,SAASA,GAAMC,QACQ,IAAdA,IAAuBA,EAAY,GAExCC,GAASV,GAAQC,OACjBS,GAASV,GAAQE,OAAO7lD,OAAO,EAAG2lD,GAAQE,OAAO/yD,SAEjD6yD,GAAQW,WAAY,GAEhBX,GAAQC,MAAM9yD,QAAU6yD,GAAQE,OAAO/yD,SACvCizD,GAAcK,EAAY,GAKlC,SAASL,GAAcK,GACnB,IAAKT,GAAQW,UAAW,CAEpB,GADAX,GAAQW,WAAY,EAChBF,EAJU,EAKV,MAAM,IAAIn0D,MAAM,oCACTm0D,EACPnG,GAAQz4B,UAAUM,MAAK,WAAc,OAAOq+B,GAAMC,MAElD3mB,uBAAsB,WAAc,OAAO0mB,SAKvD,SAASE,GAASE,GAEd,IADA,IAAItP,EACIA,EAAOsP,EAAM5qC,SACjBs7B,IAIR,SAASiP,GAAS3yD,EAAOgR,GACrB,IAAIzI,EAAQvI,EAAMkG,QAAQ8K,GAC1B,SAAUzI,KAAWvI,EAAMyM,OAAOlE,EAAO,GAG7C,SAAS0qD,MAETA,GAAa/0D,UAAY,CAErBg1D,UAAW,GAEXt5C,KAAM,WACF,IAKIwtB,EALAltB,EAASlb,KAGbA,KAAKk0D,UAAY,GAGjBl0D,KAAKm+C,OAASr8C,GAAGkB,SAAU,aAAa,SAAUjD,GAAK,OAAOqoC,EAAWqlB,GAAY1tD,EAAG,WACxFC,KAAKmtC,SAAWwV,aAAY,WAEnBva,IAILltB,EAAOg5C,UAAU5yD,KAAK8mC,GAElBltB,EAAOg5C,UAAU3zD,OAAS,GAC1B2a,EAAOg5C,UAAU9qC,WAEtB,KAIPsnC,OAAQ,WACJ1wD,KAAKm+C,QAAUn+C,KAAKm+C,SACpBn+C,KAAKmtC,UAAYyV,cAAc5iD,KAAKmtC,WAGxCgnB,QAAS,SAASh/C,GAEd,GAAInV,KAAKk0D,UAAU3zD,OAAS,EACxB,OAAO,EAGX,IAAInB,EAAIu9C,GAAOxnC,GACXs2B,EAAOrsC,EAAEqsC,KACTxD,EAAQ7oC,EAAE6oC,MACVxd,EAAMrrB,EAAEqrB,IACR69B,EAASlpD,EAAEkpD,OAGX8L,EADMp0D,KAAKk0D,UACQ,GACnB9rB,EAAWrlB,EAAK/iB,KAAKk0D,WACrBlU,EAAO,CAACoU,EAAchsB,GAE1B,OAAImgB,GAAYngB,EAAUhpC,IAIV,CAAC,CAAC,CAACqpD,EAAGhd,EAAMid,EAAGj+B,GAAM,CAACg+B,EAAGxgB,EAAOygB,EAAGJ,IAAU,CAAC,CAACG,EAAGhd,EAAMid,EAAGJ,GAAS,CAACG,EAAGxgB,EAAOygB,EAAGj+B,KAEjFs2B,MAAK,SAAUsT,GAC5B,IAAIC,EAQhB,SAAmBpgD,EAAKyzC,GACpB,IAAI4M,EAAQrgD,EAAI,GACZsgD,EAAKD,EAAM9L,EACXgM,EAAKF,EAAM7L,EACXgM,EAAQxgD,EAAI,GACZygD,EAAKD,EAAMjM,EACXmM,EAAKF,EAAMhM,EACXmM,EAAUlN,EAAM,GAChBmN,EAAKD,EAAQpM,EACbsM,EAAKF,EAAQnM,EACbsM,EAAUrN,EAAM,GAChBsN,EAAKD,EAAQvM,EACbyM,EAAKF,EAAQtM,EAGbyM,GAAeD,EAAKH,IAAOJ,EAAKH,IAAOS,EAAKH,IAAOF,EAAKH,GAG5D,GAAoB,IAAhBU,EACA,OAAO,EAGX,IAAIC,IAAOH,EAAKH,IAAOL,EAAKM,IAAOG,EAAKH,IAAOP,EAAKM,IAAOK,EAE3D,QAAIC,EAAK,IAKF,CAAC3M,EAAG+L,EAAKY,GAAMT,EAAKH,GAAK9L,EAAG+L,EAAKW,GAAMR,EAAKH,IArCxBY,CAAUrV,EAAMqU,GACnC,OAAOC,GAAgB/L,GAAY+L,EAAcl1D,QAuC7D,IAAIk2D,GAAS,GAiEb,SAASC,GAAYC,EAAWC,EAAUC,GACtC,OAAOJ,GAAOpuB,SACV31B,EAAWikD,GACLA,EAAU/3D,KAAKi4D,EAAIA,GACnBF,EACNjkD,EAAWkkD,GACLA,EAASh4D,KAAKi4D,EAAIA,GAClBD,GAKd,SAASE,GAAYH,EAAWC,GAI5B,OAFAD,EAAYA,IAAc7jD,EAAQ6jD,GAAa,CAACA,GAAaA,EAEtDC,EACDD,EACIA,EAAUh1D,OAAOi1D,GACjB9jD,EAAQ8jD,GACJA,EACA,CAACA,GACTD,EAIV,SAASI,GAAaJ,EAAWC,GAC7B,OAAOxnD,EAAYwnD,GAAYD,EAAYC,EAG/C,SAASI,GAAaviD,EAAQH,EAAOuiD,GAEjC,IAAIrjD,EAAU,GAUd,GARId,EAAW4B,KACXA,EAAQA,EAAMd,SAGdc,EAAM2iD,UACNxiD,EAASuiD,GAAaviD,EAAQH,EAAM2iD,QAASJ,IAG7CviD,EAAMsG,OACN,IAAK,IAAInc,EAAI,EAAGC,EAAI4V,EAAMsG,OAAOlZ,OAAQjD,EAAIC,EAAGD,IAC5CgW,EAASuiD,GAAaviD,EAAQH,EAAMsG,OAAOnc,GAAIo4D,GAIvD,IAAK,IAAI72D,KAAOyU,EACZyiD,EAASl3D,GAGb,IAAK,IAAIm3D,KAAS7iD,EACTkO,EAAO/N,EAAQ0iD,IAChBD,EAASC,GAIjB,SAASD,EAASl3D,GACdwT,EAAQxT,IAAQy2D,GAAOz2D,IAAQ+2D,IAActiD,EAAOzU,GAAMsU,EAAMtU,GAAM62D,GAG1E,OAAOrjD,EAGX,SAAS4jD,GAAa5jD,EAASlR,GAC3B,IAAIgN,OAEU,IAAThN,IAAkBA,EAAO,IAE9B,IAEI,OAAQkR,EAEFH,EAAWG,EAAS,KAChBkF,KAAKgjB,MAAMloB,GACXlR,EAAKZ,SAAWulD,EAASzzC,EAAS,OAC3BlE,EAAM,IAAQhN,EAAK,IAAMkR,EAASlE,GACrCkE,EAAQ1J,MAAM,KAAKvC,QAAO,SAAUiM,EAAS8qB,GAC3C,IAAIjpB,EAAMipB,EAAOx0B,MAAM,SACnB9J,EAAMqV,EAAI,GACV3V,EAAQ2V,EAAI,GAIhB,OAHIrV,IAAQoP,EAAY1P,KACpB8T,EAAQxT,EAAIsL,QAAU5L,EAAM4L,QAEzBkI,IACR,IAbT,GAeR,MAAOtS,GACL,MAAO,IAxJfu1D,GAAOx1B,OACPw1B,GAAOY,QACPZ,GAAOa,cACPb,GAAOc,UACPd,GAAOe,iBACPf,GAAOgB,aACPhB,GAAOiB,QAAUZ,GAGjBL,GAAOn0D,KAAO,SAAUq0D,EAAWC,GAC/B,OAAoB,IAAbA,GAAsBE,GAAYF,GAAYD,IAIzDF,GAAO5/C,OAAS,SAAU8/C,EAAWC,GACjC,OAAO/N,EAAOiO,GAAYH,EAAWjkD,EAAWkkD,GAAY,CAAClC,KAAMkC,GAAYA,GAAW,UAI9FH,GAAOh7C,MAAQ,SAAUk7C,EAAWC,GAShC,OAPI9jD,EAAQ8jD,KACRA,EAAWA,EAASrvD,QAAO,SAAU7H,EAAOM,GAExC,OADAN,EAAMM,GAAO4oB,OACNlpB,IACR,KAGA+2D,GAAOkB,QAAQhB,EAAWC,IAIrCH,GAAOpuB,SACPouB,GAAOkB,QAAU,SAAUhB,EAAWC,GAClC,OAAOA,EACDD,EACI/N,EAAO,GAAI+N,EAAWC,GACtBA,EACJD,GAIVF,GAAO5qD,KAAO,SAAU8qD,EAAWC,EAAUC,GAEzC,OAAKA,EAgBEH,GAAYC,EAAWC,EAAUC,GAd/BD,EAIAD,EAIE,SAAUE,GACb,OAAOH,GAAYC,EAAWC,EAAUC,IAJjCD,EAJAD,GA8GnB,IAAIzwD,GAAK,EAEL0xD,GAAS,SAASxpD,GAClBjN,KAAK+E,KAAOA,GACZ/E,KAAKiN,GAAK+5C,EAAO/5C,IAqHrB,SAASypD,GAAKzpD,EAAI0pD,GACd,IACI1pD,EAAG2pD,cAAc3S,YAAY1sC,KAAKC,UAAUiwC,EAAO,CAACr6C,MAAO,WAAYupD,IAAO,KAChF,MAAO52D,KA6Bb,SAAS82D,GAAS5P,EAAS0L,EAAWC,GAKlC,QAJmB,IAAdD,IAAuBA,EAAY,QACpB,IAAfC,IAAwBA,EAAa,IAGrCvG,GAAUpF,GACX,OAAO,EAKX,IAFA,IAAI7yB,EAAU0iC,GAAgB7P,GAASzmD,OAAOymD,GAErC3pD,EAAI,EAAGA,EAAI82B,EAAQ7zB,OAAS,EAAGjD,IAAK,CACzC,IAAI4W,EAAMyoC,GAAOoa,GAAY3iC,EAAQ92B,KAKjC05D,EAAK,CACLvsC,IALMvW,EAAIuW,IAKCkoC,EACXlnB,KALOv3B,EAAIu3B,KAKEmnB,EACbtK,OALSp0C,EAAIo0C,OAKIqK,EACjB1qB,MALQ/zB,EAAI+zB,MAKG2qB,GAGfqE,EAASta,GAAOvoB,EAAQ92B,EAAI,IAEhC,IAAK6qD,GAAc8O,EAAQD,KAAQzO,GAAY,CAACE,EAAGwO,EAAOxrB,KAAMid,EAAGuO,EAAOxsC,KAAMusC,GAC5E,OAAO,EAIf,OAAO,EAGX,SAASzqB,GAAU0a,EAASx8B,IAGpBw8B,EADAxlC,EAASwlC,IAAYd,EAAWc,GACtBiQ,GAAoBjQ,GAEpBD,EAAOC,IAGb1a,UAAY9hB,EAGxB,SAAS0sC,GAAelQ,EAAS/yC,QAChB,IAARA,IAAiBA,EAAM,IAC5B,IAAIk4B,EAAWl4B,EAAIk4B,cAA4B,IAAbA,IAAsBA,EAAW,KACnE,IAAIuQ,EAASzoC,EAAIyoC,OAGjB,QAHyC,IAAXA,IAAoBA,EAAS,GAGtD0P,GAAUpF,GAAf,CAIA,IAAI7yB,EAAU0iC,GAAgB7P,GAASzmD,OAAOymD,GAC9C7a,GAAYhY,EAAQ7zB,OAAS,EAiC7B,IA/BA,IAAI80B,EAAUq4B,GAAQz4B,UAClBmiC,EAAO,SAAW95D,GAClB+3B,EAAUA,EAAQE,MAAK,WAAc,OAAO,IAAIm4B,IAAQ,SAAUz4B,GAE1D,IAAIoiC,EAAgBjjC,EAAQ92B,GACxB2pD,EAAU7yB,EAAQ92B,EAAI,GAEtBg6D,EAASD,EAAc9qB,UACvB9hB,EAAM2d,GAAS6e,EAAS8P,GAAYM,IAAgB5sC,IAAMkyB,EAE1D91C,EAAQ0e,KAAK+c,MACb+J,EAAO,WAEP,IAsBFzmC,EAtBMsmC,GAsBNtmC,EAtBqBqiD,IAAO1iC,KAAK+c,MAAQz7B,GAASulC,GAuBrD,IAAO,EAAI7oB,KAAKopB,IAAIppB,KAAKqpB,GAAKhnC,KArBzB2mC,GAAU8qB,EAAeC,EAAS7sC,EAAMyhB,GAGxB,IAAZA,EACAgB,sBAAsBb,GAEtBpX,KAKRoX,WAKH/uC,EAAI,EAAGA,EAAI82B,EAAQ7zB,OAAS,EAAGjD,IAAK85D,EAAM95D,GAEnD,OAAO+3B,GAQX,SAASkiC,GAAatQ,EAASuQ,GAI3B,QAHsB,IAAjBA,IAA0BA,EAAe,IAGzCnL,GAAUpF,GACX,OAAO,EAGX,IAAIoQ,EAAgBt0C,EAAK00C,GAAcxQ,IACnCyQ,EAAeL,EAAcK,aAC7BnrB,EAAY8qB,EAAc9qB,UAE1BorB,EAAiBhb,GADNoa,GAAYM,IACW7pB,OAClCoqB,EAAclF,GAAezL,GAAS,GAAK1a,EAAYmmB,GAAe2E,GAAe,GACrFQ,EAAet0C,KAAK2kC,IAAIyP,EAAgBC,EAAcrrB,GAS1D,OAAO0b,IAAO,GAPJ2P,EAAcC,GACbt0C,KAAK2kC,IACZvL,GAAOsK,GAASzZ,OAASgqB,EAAeK,EACxCH,GAAgBE,EAAcrrB,GAC9BmrB,EAAeC,IAMvB,SAASF,GAAcxQ,EAAS6Q,QACR,IAAfA,IAAwBA,EAAa,eAE1C,IAAIC,EAAWb,GAAoBjQ,GAC/BwQ,EAAgBrjC,GAAQ6yB,GAASruC,QAAO,SAAUtF,GAAU,OAAOA,IAAWykD,GAC3ED,EAAWlxD,KAAKrB,GAAI+N,EAAQ,cAC5BA,EAAOokD,aAAe/a,GAAOrpC,GAAQk6B,UAC1C7Y,UACF,OAAO8iC,EAAcl3D,OAASk3D,EAAgB,CAACM,GAGnD,SAAShB,GAAYM,GACjB,OAAOA,IAAkBH,GAAoBG,GAAiB3zD,OAAS2zD,EAG3E,SAASP,GAAgB7P,GACrB,OAAOwQ,GAAcxQ,EAAS,sBAGlC,SAASiQ,GAAoBjQ,GACzB,IACIjkD,EADMokD,EAASH,GACAjkD,SACnB,OAAOA,EAASg1D,kBAAoBh1D,EAAS6M,gBArSjD4mD,GAAOv3D,UAAU+4D,QAAU,WACvB,OAAOj4D,KAAKk4D,aAAel4D,KAAKm4D,WAAan4D,KAAKo4D,WAGtD3B,GAAOv3D,UAAUk5D,QAAU,WACvB,MAA2B,UAApBp4D,KAAKiN,GAAG1B,SAGnBkrD,GAAOv3D,UAAUm5D,SAAW,WACxB,MAA2B,WAApBr4D,KAAKiN,GAAG1B,SAGnBkrD,GAAOv3D,UAAUg5D,UAAY,WACzB,OAAOl4D,KAAKq4D,cAAgBr4D,KAAKiN,GAAGqB,IAAItH,MAAM,+EAGlDyvD,GAAOv3D,UAAUi5D,QAAU,WACvB,OAAOn4D,KAAKq4D,cAAgBr4D,KAAKiN,GAAGqB,IAAItH,MAAM,0BAGlDyvD,GAAOv3D,UAAUo5D,UAAY,WACrB,IAAIp9C,EAASlb,KAGjB,GAAIA,KAAKyzB,MACL,OAAOzzB,KAAKyzB,MAGhB,IAGI8kC,EAHAC,EAAUx4D,KAAKk4D,YACfO,EAAQz4D,KAAKm4D,UAIjB,OAAIK,GAAWC,EAEJz4D,KAAKyzB,MAAQ,IAAIi6B,IAAQ,SAAUz4B,GAqFlD,IAAgBznB,EAnFJxL,GAAKkZ,EAAOjO,GAAI,QAAQ,WACpB,GAAIurD,EAAS,CACT,IAAI9L,EAAW,WAAc,OAAOgK,GAAKx7C,EAAOjO,GAAI,CAACG,MAAO,YAAarI,GAAImW,EAAOnW,MACpFwzD,EAAS5V,YAAY+J,EAAU,KAC/BA,SA+EJl/C,EA3EG,SAAU9C,GAAQ,OAAO8tD,GAAW9tD,EAAK3F,KAAOmW,EAAOnW,IAAqB,YAAf2F,EAAK0C,OAAuBqrD,GAAS3R,OAAOp8C,EAAKguD,aAAex9C,EAAOnW,IA6E5I,IAAI2oD,IAAQ,SAAUz4B,GAEzBjzB,GAAK0B,OAAQ,WAAW,SAAUuH,EAAGP,GAAQ,OAAOuqB,EAAQvqB,MAAU,GAAO,SAAUwJ,GACnF,IAAIxJ,EAAOwJ,EAAIxJ,KAGf,GAAKA,GAASmH,EAASnH,GAAvB,CAIA,IACIA,EAAO6M,KAAKgjB,MAAM7vB,GACpB,MAAO3K,GACL,OAGJ,OAAO2K,GAAQ8C,EAAG9C,WA5Fb6qB,MAAK,WACFN,IACAsjC,GAAU3V,cAAc2V,MAGhC1hD,GAAKqE,EAAOjO,GAAI,MAAciO,EAAOjO,GAAM,KAAK64C,EAAS5qC,EAAOjO,GAAGqB,IAAK,KAAO,IAAM,MAAQkqD,EAAU,gBAAmB,mBAAsBt9C,EAAS,QAM1JwyC,GAAQz4B,WAInBwhC,GAAOv3D,UAAUy5D,KAAO,WAChB,IAAIz9C,EAASlb,KAGjB,GAAKA,KAAKi4D,UAIV,GAAIj4D,KAAKq4D,WACLr4D,KAAKs4D,YAAY/iC,MAAK,WAAc,OAAOmhC,GAAKx7C,EAAOjO,GAAI,CAACspB,KAAM,YAAanB,OAAQ,iBACpF,GAAIp1B,KAAKo4D,UACZ,IACI,IAAI/iC,EAAUr1B,KAAKiN,GAAG0rD,OAElBtjC,GACAA,EAAQyD,MAAM73B,IAEpB,MAAOlB,MAIjB02D,GAAOv3D,UAAU05D,MAAQ,WACjB,IAAI19C,EAASlb,KAGZA,KAAKi4D,YAINj4D,KAAKq4D,WACLr4D,KAAKs4D,YAAY/iC,MAAK,WAAc,OAAOmhC,GAAKx7C,EAAOjO,GAAI,CAACspB,KAAM,aAAcnB,OAAQ,aACjFp1B,KAAKo4D,WACZp4D,KAAKiN,GAAG2rD,UAIhBnC,GAAOv3D,UAAU25D,KAAO,WAChB,IAAI39C,EAASlb,KAGZA,KAAKi4D,YAINj4D,KAAKq4D,WACLr4D,KAAKs4D,YAAY/iC,MAAK,WAAc,OAAOmhC,GAAKx7C,EAAOjO,GAAI,CAACspB,KAAM,OAAQnB,OAAQ,YAAa72B,MAAO,OAC/FyB,KAAKo4D,YACZp4D,KAAKiN,GAAG6rD,OAAQ,EAChBjiD,GAAK7W,KAAKiN,GAAI,QAAS,OA2L/B,IAAI8rD,GAAuB,yBAA0Br1D,OAC/CA,OAAOq1D,qBACO,WAChB,SAASC,EAA0Bp2C,EAAU1O,GACzC,IAAIgH,EAASlb,UACA,IAARkU,IAAiBA,EAAM,IAC5B,IAAI+kD,EAAa/kD,EAAI+kD,gBAAgC,IAAfA,IAAwBA,EAAa,OAGvEj5D,KAAKg0B,QAAU,GAEf,IAOIklC,EAPAvR,GAASsR,GAAc,OAAOtwD,MAAM,KAAKhD,IAAIohD,GACjD4L,EAAYhL,EAAM,GAClBiL,EAAajL,EAAM,GAEnB3nD,KAAK2yD,UAAYA,EACjB3yD,KAAK4yD,WAAaA,EAGlB5yD,KAAKuB,MAAQ,WAEL23D,IAIJA,EAAUhsB,uBAAsB,WAAc,OAAOptC,YAAW,WAC5D,IAAIq5D,EAAUj+C,EAAOk+C,cAEjBD,EAAQ54D,QACRqiB,EAASu2C,EAASj+C,GAGtBg+C,GAAU,UAKlBl5D,KAAKiC,IAAMH,GAAG4B,OAAQ,qBAAsB1D,KAAKuB,MAAO,CAAC83D,SAAS,EAAMhM,SAAS,IAgCzF,OA5BI2L,EAA0B95D,UAAUk6D,YAAc,WAC9C,IAAIl+C,EAASlb,KAEb,OAAOA,KAAKg0B,QAAQpb,QAAO,SAAU0gD,GAEjC,IAAIC,EAAS1C,GAASyC,EAAMnkD,OAAQ+F,EAAOy3C,UAAWz3C,EAAO03C,YAE7D,GAA6B,OAAzB0G,EAAME,gBAA2BD,EAASD,EAAME,eAEhD,OADAF,EAAME,eAAiBD,GAChB,MAMnBP,EAA0B95D,UAAUu6D,QAAU,SAAUtkD,GACpDnV,KAAKg0B,QAAQ1yB,KAAK,CACd6T,OAAQA,EACRqkD,eAAgB,OAEpBx5D,KAAKuB,SAGTy3D,EAA0B95D,UAAUw6D,WAAa,WAC7C15D,KAAKg0B,QAAU,GACfh0B,KAAKiC,OAGN+2D,EAnEQ,GAq5BnB,SAASW,GAAiBrhD,GACtB,SAAOpG,EAAWoG,EAAW,SAAUpG,EAAWoG,EAAW,cACvD0sC,EAAS1sC,EAAUhQ,QAAQ,WAAY,IAAIA,QAAQ,MAAO,KAIpE,IAAIg5C,GAAQ,SAAUjvC,GAClBrS,KAAK45D,MAAMvnD,IAGfivC,GAAMzhC,KAv1BkB7hB,OAAO8S,OAAO,CAClC+oD,UAAW,KACXhjB,KAAMA,GACNoX,SAAUA,GACVmC,WAAYA,GACZK,WAAYA,GACZ9gB,QAASA,GACThC,UAAWA,GACX92B,KAAMA,GACNqyC,QAASA,GACTlY,WAAYA,GACZtmC,KAAMA,GACNonC,SAAUA,GACVK,YAAaA,GACb+c,cAAeA,GACfE,aAAcA,GACd5c,SAAUA,GACVJ,YAAaA,GACb4e,WAAYA,GACZrU,OAAQA,GACRvU,SAAUA,GACVsqB,eAAgBA,GAChBllB,OAAQA,GACRrG,MAAOA,GACP0rB,eAAgBA,GAChBK,aAAcA,GACdC,KAAMA,GACN1/B,MAAOA,GACPlqB,MAAOA,GACP8kD,SAAUA,GACVn4B,MAAOA,GACP5mB,KAAMA,GACN62B,QA9iDJ,SAAiB7yB,EAAQ2zC,GAIrB,OAFA3zC,EAASzQ,GAAEyQ,IAECi7C,gBAGDC,GAAYvH,GAAS,SAAUA,GAAW,OAAO3zC,EAAOjD,aAAa42C,EAAS3zC,EAAO1C,eAFrF0K,GAAOhI,EAAQ2zC,IA0iD1B3rC,OAAQA,GACR8qB,OAAQA,GACRC,MAAOA,GACPrgC,OAAQA,GACR8zC,QAASA,GACTE,UAAWA,GACXE,OAAQA,GACR7b,SAAUA,GACV98B,MAAOA,GACPsB,EAAGA,GACH6L,GAAIA,GACJ06C,KAAMA,GACNG,MAAOA,GACPI,SAAUA,GACVG,YAAaA,GACbC,YAAaA,GACbC,UAAWA,GACXC,aAAcA,GACdC,aAAcA,GACdC,cAAeA,GACfroD,GAAIA,GACJG,IAAKA,GACLD,KAAMA,GACN2L,QAASA,GACTu/C,YAAaA,GACbN,eAAgBA,GAChBY,QAASA,GACTC,YAAaA,GACb2F,QAASA,GACThH,cAAeA,GACfC,UAAWA,GACXC,SAAUA,GACVC,QAASA,GACT3zC,OAAQA,GACR4zC,OAAQA,GACRnrC,OAAQA,EACRyjC,UAAWA,EACXE,SAAUA,EACVE,QAASA,EACThzC,WAAYA,EACZuzC,SAAUA,EACVK,SAAUA,EACVG,UAAWA,EACXt0C,QAASA,EACTJ,WAAYA,EACZC,SAAUA,EACV6R,cAAeA,EACf5B,SAAUA,EACV0kC,WAAYA,EACZC,SAAUA,EACVC,OAAQA,EACRC,UAAWA,EACXC,iBAAkBA,EAClBC,UAAWA,EACX30C,SAAUA,EACV40C,SAAUA,EACV/H,UAAWA,EACXgI,QAASA,EACTz4C,YAAaA,EACb04C,UAAWA,EACXC,SAAUA,EACVG,QAASA,EACTC,OAAQA,EACRE,QAASA,EACTE,SAAUA,EACVC,OAAQA,EACRC,KAAMA,EACNC,QAASA,EACT3rB,KAAMA,EACN6rB,OAAQA,EACR1kC,KAAMA,EACN9Q,KAAMA,EACNy1C,OAAQA,EACRI,SAAUA,GACVG,MAAOA,GACPhnD,KAAMA,GACNknD,cAAeA,GACfI,YAAaA,GACbI,WAAYA,GACZsL,aAAcA,GACd4B,aAAcA,GACdI,aAAcA,GACdQ,OAAQA,GACR/I,QAASA,GACTp3B,SAAUA,GACVyiC,qBAAsBA,GACtBpgD,MAAOA,GACP0xC,SAAUA,GACVr/B,KAAMA,GACNs/B,QAASA,GACTlmC,QAASA,GACT6P,QAASA,GACT3gB,OAAQA,GACR8gB,QAASA,GACTR,SAAUA,GACVxH,OAAQA,GACR7mB,IAAKA,GACLshC,UAAWA,GACXgpB,SAAUA,GACVI,UAAWA,GACXL,SAAUA,GACViH,SAAUA,GACVtqB,UAAWA,GACX4qB,eAAgBA,GAChBI,aAAcA,GACdE,cAAeA,GACfV,YAAaA,KA6sBjBzV,GAAM52C,KAAO,YACb42C,GAAMzV,OAAS,MACfyV,GAAMjvC,QAAU,GAChBivC,GAAM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","file":"common.bundle.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 = 1465);\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","/* Riot v3.13.2, @license MIT */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.riot = {})));\n}(this, (function (exports) { 'use strict';\n\n /**\n * Shorter and fast way to select a single node in the DOM\n * @param { String } selector - unique dom selector\n * @param { Object } ctx - DOM node where the target of our search will is located\n * @returns { Object } dom node found\n */\n function $(selector, ctx) {\n return (ctx || document).querySelector(selector)\n }\n\n var\n // be aware, internal usage\n // ATTENTION: prefix the global dynamic variables with `__`\n // tags instances cache\n __TAGS_CACHE = [],\n // tags implementation cache\n __TAG_IMPL = {},\n YIELD_TAG = 'yield',\n\n /**\n * Const\n */\n GLOBAL_MIXIN = '__global_mixin',\n\n // riot specific prefixes or attributes\n ATTRS_PREFIX = 'riot-',\n\n // Riot Directives\n REF_DIRECTIVES = ['ref', 'data-ref'],\n IS_DIRECTIVE = 'data-is',\n CONDITIONAL_DIRECTIVE = 'if',\n LOOP_DIRECTIVE = 'each',\n LOOP_NO_REORDER_DIRECTIVE = 'no-reorder',\n SHOW_DIRECTIVE = 'show',\n HIDE_DIRECTIVE = 'hide',\n KEY_DIRECTIVE = 'key',\n RIOT_EVENTS_KEY = '__riot-events__',\n\n // for typeof == '' comparisons\n T_STRING = 'string',\n T_OBJECT = 'object',\n T_UNDEF = 'undefined',\n T_FUNCTION = 'function',\n\n XLINK_NS = 'http://www.w3.org/1999/xlink',\n SVG_NS = 'http://www.w3.org/2000/svg',\n XLINK_REGEX = /^xlink:(\\w+)/,\n\n WIN = typeof window === T_UNDEF ? /* istanbul ignore next */ undefined : window,\n\n // special native tags that cannot be treated like the others\n RE_SPECIAL_TAGS = /^(?:t(?:body|head|foot|[rhd])|caption|col(?:group)?|opt(?:ion|group))$/,\n RE_SPECIAL_TAGS_NO_OPTION = /^(?:t(?:body|head|foot|[rhd])|caption|col(?:group)?)$/,\n RE_EVENTS_PREFIX = /^on/,\n RE_HTML_ATTRS = /([-\\w]+) ?= ?(?:\"([^\"]*)|'([^']*)|({[^}]*}))/g,\n // some DOM attributes must be normalized\n CASE_SENSITIVE_ATTRIBUTES = {\n 'viewbox': 'viewBox',\n 'preserveaspectratio': 'preserveAspectRatio'\n },\n /**\n * Matches boolean HTML attributes in the riot tag definition.\n * With a long list like this, a regex is faster than `[].indexOf` in most browsers.\n * @const {RegExp}\n * @see [attributes.md](https://github.com/riot/compiler/blob/dev/doc/attributes.md)\n */\n RE_BOOL_ATTRS = /^(?:disabled|checked|readonly|required|allowfullscreen|auto(?:focus|play)|compact|controls|default|formnovalidate|hidden|ismap|itemscope|loop|multiple|muted|no(?:resize|shade|validate|wrap)?|open|reversed|seamless|selected|sortable|truespeed|typemustmatch)$/,\n // version# for IE 8-11, 0 for others\n IE_VERSION = (WIN && WIN.document || /* istanbul ignore next */ {}).documentMode | 0;\n\n /**\n * Create a generic DOM node\n * @param { String } name - name of the DOM node we want to create\n * @returns { Object } DOM node just created\n */\n function makeElement(name) {\n return name === 'svg' ? document.createElementNS(SVG_NS, name) : document.createElement(name)\n }\n\n /**\n * Set any DOM attribute\n * @param { Object } dom - DOM node we want to update\n * @param { String } name - name of the property we want to set\n * @param { String } val - value of the property we want to set\n */\n function setAttribute(dom, name, val) {\n var xlink = XLINK_REGEX.exec(name);\n if (xlink && xlink[1])\n { dom.setAttributeNS(XLINK_NS, xlink[1], val); }\n else\n { dom.setAttribute(name, val); }\n }\n\n var styleNode;\n // Create cache and shortcut to the correct property\n var cssTextProp;\n var byName = {};\n var needsInject = false;\n\n // skip the following code on the server\n if (WIN) {\n styleNode = ((function () {\n // create a new style element with the correct type\n var newNode = makeElement('style');\n // replace any user node or insert the new one into the head\n var userNode = $('style[type=riot]');\n\n setAttribute(newNode, 'type', 'text/css');\n /* istanbul ignore next */\n if (userNode) {\n if (userNode.id) { newNode.id = userNode.id; }\n userNode.parentNode.replaceChild(newNode, userNode);\n } else { document.head.appendChild(newNode); }\n\n return newNode\n }))();\n cssTextProp = styleNode.styleSheet;\n }\n\n /**\n * Object that will be used to inject and manage the css of every tag instance\n */\n var styleManager = {\n styleNode: styleNode,\n /**\n * Save a tag style to be later injected into DOM\n * @param { String } css - css string\n * @param { String } name - if it's passed we will map the css to a tagname\n */\n add: function add(css, name) {\n byName[name] = css;\n needsInject = true;\n },\n /**\n * Inject all previously saved tag styles into DOM\n * innerHTML seems slow: http://jsperf.com/riot-insert-style\n */\n inject: function inject() {\n if (!WIN || !needsInject) { return }\n needsInject = false;\n var style = Object.keys(byName)\n .map(function (k) { return byName[k]; })\n .join('\\n');\n /* istanbul ignore next */\n if (cssTextProp) { cssTextProp.cssText = style; }\n else { styleNode.innerHTML = style; }\n },\n\n /**\n * Remove a tag style of injected DOM later.\n * @param {String} name a registered tagname\n */\n remove: function remove(name) {\n delete byName[name];\n needsInject = true;\n }\n };\n\n /**\n * The riot template engine\n * @version v3.0.8\n */\n\n /* istanbul ignore next */\n var skipRegex = (function () { //eslint-disable-line no-unused-vars\n\n var beforeReChars = '[{(,;:?=|&!^~>%*/';\n\n var beforeReWords = [\n 'case',\n 'default',\n 'do',\n 'else',\n 'in',\n 'instanceof',\n 'prefix',\n 'return',\n 'typeof',\n 'void',\n 'yield'\n ];\n\n var wordsLastChar = beforeReWords.reduce(function (s, w) {\n return s + w.slice(-1)\n }, '');\n\n var RE_REGEX = /^\\/(?=[^*>/])[^[/\\\\]*(?:(?:\\\\.|\\[(?:\\\\.|[^\\]\\\\]*)*\\])[^[\\\\/]*)*?\\/[gimuy]*/;\n var RE_VN_CHAR = /[$\\w]/;\n\n function prev (code, pos) {\n while (--pos >= 0 && /\\s/.test(code[pos])){ }\n return pos\n }\n\n function _skipRegex (code, start) {\n\n var re = /.*/g;\n var pos = re.lastIndex = start++;\n var match = re.exec(code)[0].match(RE_REGEX);\n\n if (match) {\n var next = pos + match[0].length;\n\n pos = prev(code, pos);\n var c = code[pos];\n\n if (pos < 0 || ~beforeReChars.indexOf(c)) {\n return next\n }\n\n if (c === '.') {\n\n if (code[pos - 1] === '.') {\n start = next;\n }\n\n } else if (c === '+' || c === '-') {\n\n if (code[--pos] !== c ||\n (pos = prev(code, pos)) < 0 ||\n !RE_VN_CHAR.test(code[pos])) {\n start = next;\n }\n\n } else if (~wordsLastChar.indexOf(c)) {\n\n var end = pos + 1;\n\n while (--pos >= 0 && RE_VN_CHAR.test(code[pos])){ }\n if (~beforeReWords.indexOf(code.slice(pos + 1, end))) {\n start = next;\n }\n }\n }\n\n return start\n }\n\n return _skipRegex\n\n })();\n\n /**\n * riot.util.brackets\n *\n * - `brackets ` - Returns a string or regex based on its parameter\n * - `brackets.set` - Change the current riot brackets\n *\n * @module\n */\n\n /* global riot */\n\n /* istanbul ignore next */\n var brackets = (function (UNDEF) {\n\n var\n REGLOB = 'g',\n\n R_MLCOMMS = /\\/\\*[^*]*\\*+(?:[^*\\/][^*]*\\*+)*\\//g,\n\n R_STRINGS = /\"[^\"\\\\]*(?:\\\\[\\S\\s][^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\[\\S\\s][^'\\\\]*)*'|`[^`\\\\]*(?:\\\\[\\S\\s][^`\\\\]*)*`/g,\n\n S_QBLOCKS = R_STRINGS.source + '|' +\n /(?:\\breturn\\s+|(?:[$\\w\\)\\]]|\\+\\+|--)\\s*(\\/)(?![*\\/]))/.source + '|' +\n /\\/(?=[^*\\/])[^[\\/\\\\]*(?:(?:\\[(?:\\\\.|[^\\]\\\\]*)*\\]|\\\\.)[^[\\/\\\\]*)*?([^<]\\/)[gim]*/.source,\n\n UNSUPPORTED = RegExp('[\\\\' + 'x00-\\\\x1F<>a-zA-Z0-9\\'\",;\\\\\\\\]'),\n\n NEED_ESCAPE = /(?=[[\\]()*+?.^$|])/g,\n\n S_QBLOCK2 = R_STRINGS.source + '|' + /(\\/)(?![*\\/])/.source,\n\n FINDBRACES = {\n '(': RegExp('([()])|' + S_QBLOCK2, REGLOB),\n '[': RegExp('([[\\\\]])|' + S_QBLOCK2, REGLOB),\n '{': RegExp('([{}])|' + S_QBLOCK2, REGLOB)\n },\n\n DEFAULT = '{ }';\n\n var _pairs = [\n '{', '}',\n '{', '}',\n /{[^}]*}/,\n /\\\\([{}])/g,\n /\\\\({)|{/g,\n RegExp('\\\\\\\\(})|([[({])|(})|' + S_QBLOCK2, REGLOB),\n DEFAULT,\n /^\\s*{\\^?\\s*([$\\w]+)(?:\\s*,\\s*(\\S+))?\\s+in\\s+(\\S.*)\\s*}/,\n /(^|[^\\\\]){=[\\S\\s]*?}/\n ];\n\n var\n cachedBrackets = UNDEF,\n _regex,\n _cache = [],\n _settings;\n\n function _loopback (re) { return re }\n\n function _rewrite (re, bp) {\n if (!bp) { bp = _cache; }\n return new RegExp(\n re.source.replace(/{/g, bp[2]).replace(/}/g, bp[3]), re.global ? REGLOB : ''\n )\n }\n\n function _create (pair) {\n if (pair === DEFAULT) { return _pairs }\n\n var arr = pair.split(' ');\n\n if (arr.length !== 2 || UNSUPPORTED.test(pair)) {\n throw new Error('Unsupported brackets \"' + pair + '\"')\n }\n arr = arr.concat(pair.replace(NEED_ESCAPE, '\\\\').split(' '));\n\n arr[4] = _rewrite(arr[1].length > 1 ? /{[\\S\\s]*?}/ : _pairs[4], arr);\n arr[5] = _rewrite(pair.length > 3 ? /\\\\({|})/g : _pairs[5], arr);\n arr[6] = _rewrite(_pairs[6], arr);\n arr[7] = RegExp('\\\\\\\\(' + arr[3] + ')|([[({])|(' + arr[3] + ')|' + S_QBLOCK2, REGLOB);\n arr[8] = pair;\n return arr\n }\n\n function _brackets (reOrIdx) {\n return reOrIdx instanceof RegExp ? _regex(reOrIdx) : _cache[reOrIdx]\n }\n\n _brackets.split = function split (str, tmpl, _bp) {\n // istanbul ignore next: _bp is for the compiler\n if (!_bp) { _bp = _cache; }\n\n var\n parts = [],\n match,\n isexpr,\n start,\n pos,\n re = _bp[6];\n\n var qblocks = [];\n var prevStr = '';\n var mark, lastIndex;\n\n isexpr = start = re.lastIndex = 0;\n\n while ((match = re.exec(str))) {\n\n lastIndex = re.lastIndex;\n pos = match.index;\n\n if (isexpr) {\n\n if (match[2]) {\n\n var ch = match[2];\n var rech = FINDBRACES[ch];\n var ix = 1;\n\n rech.lastIndex = lastIndex;\n while ((match = rech.exec(str))) {\n if (match[1]) {\n if (match[1] === ch) { ++ix; }\n else if (!--ix) { break }\n } else {\n rech.lastIndex = pushQBlock(match.index, rech.lastIndex, match[2]);\n }\n }\n re.lastIndex = ix ? str.length : rech.lastIndex;\n continue\n }\n\n if (!match[3]) {\n re.lastIndex = pushQBlock(pos, lastIndex, match[4]);\n continue\n }\n }\n\n if (!match[1]) {\n unescapeStr(str.slice(start, pos));\n start = re.lastIndex;\n re = _bp[6 + (isexpr ^= 1)];\n re.lastIndex = start;\n }\n }\n\n if (str && start < str.length) {\n unescapeStr(str.slice(start));\n }\n\n parts.qblocks = qblocks;\n\n return parts\n\n function unescapeStr (s) {\n if (prevStr) {\n s = prevStr + s;\n prevStr = '';\n }\n if (tmpl || isexpr) {\n parts.push(s && s.replace(_bp[5], '$1'));\n } else {\n parts.push(s);\n }\n }\n\n function pushQBlock(_pos, _lastIndex, slash) { //eslint-disable-line\n if (slash) {\n _lastIndex = skipRegex(str, _pos);\n }\n\n if (tmpl && _lastIndex > _pos + 2) {\n mark = '\\u2057' + qblocks.length + '~';\n qblocks.push(str.slice(_pos, _lastIndex));\n prevStr += str.slice(start, _pos) + mark;\n start = _lastIndex;\n }\n return _lastIndex\n }\n };\n\n _brackets.hasExpr = function hasExpr (str) {\n return _cache[4].test(str)\n };\n\n _brackets.loopKeys = function loopKeys (expr) {\n var m = expr.match(_cache[9]);\n\n return m\n ? { key: m[1], pos: m[2], val: _cache[0] + m[3].trim() + _cache[1] }\n : { val: expr.trim() }\n };\n\n _brackets.array = function array (pair) {\n return pair ? _create(pair) : _cache\n };\n\n function _reset (pair) {\n if ((pair || (pair = DEFAULT)) !== _cache[8]) {\n _cache = _create(pair);\n _regex = pair === DEFAULT ? _loopback : _rewrite;\n _cache[9] = _regex(_pairs[9]);\n }\n cachedBrackets = pair;\n }\n\n function _setSettings (o) {\n var b;\n\n o = o || {};\n b = o.brackets;\n Object.defineProperty(o, 'brackets', {\n set: _reset,\n get: function () { return cachedBrackets },\n enumerable: true\n });\n _settings = o;\n _reset(b);\n }\n\n Object.defineProperty(_brackets, 'settings', {\n set: _setSettings,\n get: function () { return _settings }\n });\n\n /* istanbul ignore next: in the browser riot is always in the scope */\n _brackets.settings = typeof riot !== 'undefined' && riot.settings || {};\n _brackets.set = _reset;\n _brackets.skipRegex = skipRegex;\n\n _brackets.R_STRINGS = R_STRINGS;\n _brackets.R_MLCOMMS = R_MLCOMMS;\n _brackets.S_QBLOCKS = S_QBLOCKS;\n _brackets.S_QBLOCK2 = S_QBLOCK2;\n\n return _brackets\n\n })();\n\n /**\n * @module tmpl\n *\n * tmpl - Root function, returns the template value, render with data\n * tmpl.hasExpr - Test the existence of a expression inside a string\n * tmpl.loopKeys - Get the keys for an 'each' loop (used by `_each`)\n */\n\n /* istanbul ignore next */\n var tmpl = (function () {\n\n var _cache = {};\n\n function _tmpl (str, data) {\n if (!str) { return str }\n\n return (_cache[str] || (_cache[str] = _create(str))).call(\n data, _logErr.bind({\n data: data,\n tmpl: str\n })\n )\n }\n\n _tmpl.hasExpr = brackets.hasExpr;\n\n _tmpl.loopKeys = brackets.loopKeys;\n\n // istanbul ignore next\n _tmpl.clearCache = function () { _cache = {}; };\n\n _tmpl.errorHandler = null;\n\n function _logErr (err, ctx) {\n\n err.riotData = {\n tagName: ctx && ctx.__ && ctx.__.tagName,\n _riot_id: ctx && ctx._riot_id //eslint-disable-line camelcase\n };\n\n if (_tmpl.errorHandler) { _tmpl.errorHandler(err); }\n else if (\n typeof console !== 'undefined' &&\n typeof console.error === 'function'\n ) {\n console.error(err.message);\n console.log('<%s> %s', err.riotData.tagName || 'Unknown tag', this.tmpl); // eslint-disable-line\n console.log(this.data); // eslint-disable-line\n }\n }\n\n function _create (str) {\n var expr = _getTmpl(str);\n\n if (expr.slice(0, 11) !== 'try{return ') { expr = 'return ' + expr; }\n\n return new Function('E', expr + ';') // eslint-disable-line no-new-func\n }\n\n var RE_DQUOTE = /\\u2057/g;\n var RE_QBMARK = /\\u2057(\\d+)~/g;\n\n function _getTmpl (str) {\n var parts = brackets.split(str.replace(RE_DQUOTE, '\"'), 1);\n var qstr = parts.qblocks;\n var expr;\n\n if (parts.length > 2 || parts[0]) {\n var i, j, list = [];\n\n for (i = j = 0; i < parts.length; ++i) {\n\n expr = parts[i];\n\n if (expr && (expr = i & 1\n\n ? _parseExpr(expr, 1, qstr)\n\n : '\"' + expr\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\r\\n?|\\n/g, '\\\\n')\n .replace(/\"/g, '\\\\\"') +\n '\"'\n\n )) { list[j++] = expr; }\n\n }\n\n expr = j < 2 ? list[0]\n : '[' + list.join(',') + '].join(\"\")';\n\n } else {\n\n expr = _parseExpr(parts[1], 0, qstr);\n }\n\n if (qstr.length) {\n expr = expr.replace(RE_QBMARK, function (_, pos) {\n return qstr[pos]\n .replace(/\\r/g, '\\\\r')\n .replace(/\\n/g, '\\\\n')\n });\n }\n return expr\n }\n\n var RE_CSNAME = /^(?:(-?[_A-Za-z\\xA0-\\xFF][-\\w\\xA0-\\xFF]*)|\\u2057(\\d+)~):/;\n var\n RE_BREND = {\n '(': /[()]/g,\n '[': /[[\\]]/g,\n '{': /[{}]/g\n };\n\n function _parseExpr (expr, asText, qstr) {\n\n expr = expr\n .replace(/\\s+/g, ' ').trim()\n .replace(/\\ ?([[\\({},?\\.:])\\ ?/g, '$1');\n\n if (expr) {\n var\n list = [],\n cnt = 0,\n match;\n\n while (expr &&\n (match = expr.match(RE_CSNAME)) &&\n !match.index\n ) {\n var\n key,\n jsb,\n re = /,|([[{(])|$/g;\n\n expr = RegExp.rightContext;\n key = match[2] ? qstr[match[2]].slice(1, -1).trim().replace(/\\s+/g, ' ') : match[1];\n\n while (jsb = (match = re.exec(expr))[1]) { skipBraces(jsb, re); }\n\n jsb = expr.slice(0, match.index);\n expr = RegExp.rightContext;\n\n list[cnt++] = _wrapExpr(jsb, 1, key);\n }\n\n expr = !cnt ? _wrapExpr(expr, asText)\n : cnt > 1 ? '[' + list.join(',') + '].join(\" \").trim()' : list[0];\n }\n return expr\n\n function skipBraces (ch, re) {\n var\n mm,\n lv = 1,\n ir = RE_BREND[ch];\n\n ir.lastIndex = re.lastIndex;\n while (mm = ir.exec(expr)) {\n if (mm[0] === ch) { ++lv; }\n else if (!--lv) { break }\n }\n re.lastIndex = lv ? expr.length : ir.lastIndex;\n }\n }\n\n // istanbul ignore next: not both\n var // eslint-disable-next-line max-len\n JS_CONTEXT = '\"in this?this:' + (typeof window !== 'object' ? 'global' : 'window') + ').',\n JS_VARNAME = /[,{][\\$\\w]+(?=:)|(^ *|[^$\\w\\.{])(?!(?:typeof|true|false|null|undefined|in|instanceof|is(?:Finite|NaN)|void|NaN|new|Date|RegExp|Math)(?![$\\w]))([$_A-Za-z][$\\w]*)/g,\n JS_NOPROPS = /^(?=(\\.[$\\w]+))\\1(?:[^.[(]|$)/;\n\n function _wrapExpr (expr, asText, key) {\n var tb;\n\n expr = expr.replace(JS_VARNAME, function (match, p, mvar, pos, s) {\n if (mvar) {\n pos = tb ? 0 : pos + match.length;\n\n if (mvar !== 'this' && mvar !== 'global' && mvar !== 'window') {\n match = p + '(\"' + mvar + JS_CONTEXT + mvar;\n if (pos) { tb = (s = s[pos]) === '.' || s === '(' || s === '['; }\n } else if (pos) {\n tb = !JS_NOPROPS.test(s.slice(pos));\n }\n }\n return match\n });\n\n if (tb) {\n expr = 'try{return ' + expr + '}catch(e){E(e,this)}';\n }\n\n if (key) {\n\n expr = (tb\n ? 'function(){' + expr + '}.call(this)' : '(' + expr + ')'\n ) + '?\"' + key + '\":\"\"';\n\n } else if (asText) {\n\n expr = 'function(v){' + (tb\n ? expr.replace('return ', 'v=') : 'v=(' + expr + ')'\n ) + ';return v||v===0?v:\"\"}.call(this)';\n }\n\n return expr\n }\n\n _tmpl.version = brackets.version = 'v3.0.8';\n\n return _tmpl\n\n })();\n\n /* istanbul ignore next */\n var observable = function(el) {\n\n /**\n * Extend the original object or create a new empty one\n * @type { Object }\n */\n\n el = el || {};\n\n /**\n * Private variables\n */\n var callbacks = {},\n slice = Array.prototype.slice;\n\n /**\n * Public Api\n */\n\n // extend the el object adding the observable methods\n Object.defineProperties(el, {\n /**\n * Listen to the given `event` ands\n * execute the `callback` each time an event is triggered.\n * @param { String } event - event id\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n on: {\n value: function(event, fn) {\n if (typeof fn == 'function')\n { (callbacks[event] = callbacks[event] || []).push(fn); }\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Removes the given `event` listeners\n * @param { String } event - event id\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n off: {\n value: function(event, fn) {\n if (event == '*' && !fn) { callbacks = {}; }\n else {\n if (fn) {\n var arr = callbacks[event];\n for (var i = 0, cb; cb = arr && arr[i]; ++i) {\n if (cb == fn) { arr.splice(i--, 1); }\n }\n } else { delete callbacks[event]; }\n }\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Listen to the given `event` and\n * execute the `callback` at most once\n * @param { String } event - event id\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n one: {\n value: function(event, fn) {\n function on() {\n el.off(event, on);\n fn.apply(el, arguments);\n }\n return el.on(event, on)\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Execute all callback functions that listen to\n * the given `event`\n * @param { String } event - event id\n * @returns { Object } el\n */\n trigger: {\n value: function(event) {\n var arguments$1 = arguments;\n\n\n // getting the arguments\n var arglen = arguments.length - 1,\n args = new Array(arglen),\n fns,\n fn,\n i;\n\n for (i = 0; i < arglen; i++) {\n args[i] = arguments$1[i + 1]; // skip first argument\n }\n\n fns = slice.call(callbacks[event] || [], 0);\n\n for (i = 0; fn = fns[i]; ++i) {\n fn.apply(el, args);\n }\n\n if (callbacks['*'] && event != '*')\n { el.trigger.apply(el, ['*', event].concat(args)); }\n\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n }\n });\n\n return el\n\n };\n\n /**\n * Short alias for Object.getOwnPropertyDescriptor\n */\n function getPropDescriptor (o, k) {\n return Object.getOwnPropertyDescriptor(o, k)\n }\n\n /**\n * Check if passed argument is undefined\n * @param { * } value -\n * @returns { Boolean } -\n */\n function isUndefined(value) {\n return typeof value === T_UNDEF\n }\n\n /**\n * Check whether object's property could be overridden\n * @param { Object } obj - source object\n * @param { String } key - object property\n * @returns { Boolean } true if writable\n */\n function isWritable(obj, key) {\n var descriptor = getPropDescriptor(obj, key);\n return isUndefined(obj[key]) || descriptor && descriptor.writable\n }\n\n /**\n * Extend any object with other properties\n * @param { Object } src - source object\n * @returns { Object } the resulting extended object\n *\n * var obj = { foo: 'baz' }\n * extend(obj, {bar: 'bar', foo: 'bar'})\n * console.log(obj) => {bar: 'bar', foo: 'bar'}\n *\n */\n function extend(src) {\n var obj;\n var i = 1;\n var args = arguments;\n var l = args.length;\n\n for (; i < l; i++) {\n if (obj = args[i]) {\n for (var key in obj) {\n // check if this property of the source object could be overridden\n if (isWritable(src, key))\n { src[key] = obj[key]; }\n }\n }\n }\n return src\n }\n\n /**\n * Alias for Object.create\n */\n function create(src) {\n return Object.create(src)\n }\n\n var settings = extend(create(brackets.settings), {\n skipAnonymousTags: true,\n // the \"value\" attributes will be preserved\n keepValueAttributes: false,\n // handle the auto updates on any DOM event\n autoUpdate: true\n });\n\n /**\n * Shorter and fast way to select multiple nodes in the DOM\n * @param { String } selector - DOM selector\n * @param { Object } ctx - DOM node where the targets of our search will is located\n * @returns { Object } dom nodes found\n */\n function $$(selector, ctx) {\n return [].slice.call((ctx || document).querySelectorAll(selector))\n }\n\n /**\n * Create a document text node\n * @returns { Object } create a text node to use as placeholder\n */\n function createDOMPlaceholder() {\n return document.createTextNode('')\n }\n\n /**\n * Toggle the visibility of any DOM node\n * @param { Object } dom - DOM node we want to hide\n * @param { Boolean } show - do we want to show it?\n */\n\n function toggleVisibility(dom, show) {\n dom.style.display = show ? '' : 'none';\n dom.hidden = show ? false : true;\n }\n\n /**\n * Get the value of any DOM attribute on a node\n * @param { Object } dom - DOM node we want to parse\n * @param { String } name - name of the attribute we want to get\n * @returns { String | undefined } name of the node attribute whether it exists\n */\n function getAttribute(dom, name) {\n return dom.getAttribute(name)\n }\n\n /**\n * Remove any DOM attribute from a node\n * @param { Object } dom - DOM node we want to update\n * @param { String } name - name of the property we want to remove\n */\n function removeAttribute(dom, name) {\n dom.removeAttribute(name);\n }\n\n /**\n * Set the inner html of any DOM node SVGs included\n * @param { Object } container - DOM node where we'll inject new html\n * @param { String } html - html to inject\n * @param { Boolean } isSvg - svg tags should be treated a bit differently\n */\n /* istanbul ignore next */\n function setInnerHTML(container, html, isSvg) {\n // innerHTML is not supported on svg tags so we neet to treat them differently\n if (isSvg) {\n var node = container.ownerDocument.importNode(\n new DOMParser()\n .parseFromString((\"\" + html + \"\"), 'application/xml')\n .documentElement,\n true\n );\n\n container.appendChild(node);\n } else {\n container.innerHTML = html;\n }\n }\n\n /**\n * Minimize risk: only zero or one _space_ between attr & value\n * @param { String } html - html string we want to parse\n * @param { Function } fn - callback function to apply on any attribute found\n */\n function walkAttributes(html, fn) {\n if (!html) { return }\n var m;\n while (m = RE_HTML_ATTRS.exec(html))\n { fn(m[1].toLowerCase(), m[2] || m[3] || m[4]); }\n }\n\n /**\n * Create a document fragment\n * @returns { Object } document fragment\n */\n function createFragment() {\n return document.createDocumentFragment()\n }\n\n /**\n * Insert safely a tag to fix #1962 #1649\n * @param { HTMLElement } root - children container\n * @param { HTMLElement } curr - node to insert\n * @param { HTMLElement } next - node that should preceed the current node inserted\n */\n function safeInsert(root, curr, next) {\n root.insertBefore(curr, next.parentNode && next);\n }\n\n /**\n * Convert a style object to a string\n * @param { Object } style - style object we need to parse\n * @returns { String } resulting css string\n * @example\n * styleObjectToString({ color: 'red', height: '10px'}) // => 'color: red; height: 10px'\n */\n function styleObjectToString(style) {\n return Object.keys(style).reduce(function (acc, prop) {\n return (acc + \" \" + prop + \": \" + (style[prop]) + \";\")\n }, '')\n }\n\n /**\n * Walk down recursively all the children tags starting dom node\n * @param { Object } dom - starting node where we will start the recursion\n * @param { Function } fn - callback to transform the child node just found\n * @param { Object } context - fn can optionally return an object, which is passed to children\n */\n function walkNodes(dom, fn, context) {\n if (dom) {\n var res = fn(dom, context);\n var next;\n // stop the recursion\n if (res === false) { return }\n\n dom = dom.firstChild;\n\n while (dom) {\n next = dom.nextSibling;\n walkNodes(dom, fn, res);\n dom = next;\n }\n }\n }\n\n\n\n var dom = /*#__PURE__*/Object.freeze({\n $$: $$,\n $: $,\n createDOMPlaceholder: createDOMPlaceholder,\n mkEl: makeElement,\n setAttr: setAttribute,\n toggleVisibility: toggleVisibility,\n getAttr: getAttribute,\n remAttr: removeAttribute,\n setInnerHTML: setInnerHTML,\n walkAttrs: walkAttributes,\n createFrag: createFragment,\n safeInsert: safeInsert,\n styleObjectToString: styleObjectToString,\n walkNodes: walkNodes\n });\n\n /**\n * Check against the null and undefined values\n * @param { * } value -\n * @returns {Boolean} -\n */\n function isNil(value) {\n return isUndefined(value) || value === null\n }\n\n /**\n * Check if passed argument is empty. Different from falsy, because we dont consider 0 or false to be blank\n * @param { * } value -\n * @returns { Boolean } -\n */\n function isBlank(value) {\n return isNil(value) || value === ''\n }\n\n /**\n * Check if passed argument is a function\n * @param { * } value -\n * @returns { Boolean } -\n */\n function isFunction(value) {\n return typeof value === T_FUNCTION\n }\n\n /**\n * Check if passed argument is an object, exclude null\n * NOTE: use isObject(x) && !isArray(x) to excludes arrays.\n * @param { * } value -\n * @returns { Boolean } -\n */\n function isObject(value) {\n return value && typeof value === T_OBJECT // typeof null is 'object'\n }\n\n /**\n * Check if a DOM node is an svg tag or part of an svg\n * @param { HTMLElement } el - node we want to test\n * @returns {Boolean} true if it's an svg node\n */\n function isSvg(el) {\n var owner = el.ownerSVGElement;\n return !!owner || owner === null\n }\n\n /**\n * Check if passed argument is a kind of array\n * @param { * } value -\n * @returns { Boolean } -\n */\n function isArray(value) {\n return Array.isArray(value) || value instanceof Array\n }\n\n /**\n * Check if the passed argument is a boolean attribute\n * @param { String } value -\n * @returns { Boolean } -\n */\n function isBoolAttr(value) {\n return RE_BOOL_ATTRS.test(value)\n }\n\n /**\n * Check if passed argument is a string\n * @param { * } value -\n * @returns { Boolean } -\n */\n function isString(value) {\n return typeof value === T_STRING\n }\n\n\n\n var check = /*#__PURE__*/Object.freeze({\n isBlank: isBlank,\n isFunction: isFunction,\n isObject: isObject,\n isSvg: isSvg,\n isWritable: isWritable,\n isArray: isArray,\n isBoolAttr: isBoolAttr,\n isNil: isNil,\n isString: isString,\n isUndefined: isUndefined\n });\n\n /**\n * Check whether an array contains an item\n * @param { Array } array - target array\n * @param { * } item - item to test\n * @returns { Boolean } -\n */\n function contains(array, item) {\n return array.indexOf(item) !== -1\n }\n\n /**\n * Specialized function for looping an array-like collection with `each={}`\n * @param { Array } list - collection of items\n * @param {Function} fn - callback function\n * @returns { Array } the array looped\n */\n function each(list, fn) {\n var len = list ? list.length : 0;\n var i = 0;\n for (; i < len; i++) { fn(list[i], i); }\n return list\n }\n\n /**\n * Faster String startsWith alternative\n * @param { String } str - source string\n * @param { String } value - test string\n * @returns { Boolean } -\n */\n function startsWith(str, value) {\n return str.slice(0, value.length) === value\n }\n\n /**\n * Function returning always a unique identifier\n * @returns { Number } - number from 0...n\n */\n var uid = (function uid() {\n var i = -1;\n return function () { return ++i; }\n })();\n\n /**\n * Helper function to set an immutable property\n * @param { Object } el - object where the new property will be set\n * @param { String } key - object key where the new property will be stored\n * @param { * } value - value of the new property\n * @param { Object } options - set the propery overriding the default options\n * @returns { Object } - the initial object\n */\n function define(el, key, value, options) {\n Object.defineProperty(el, key, extend({\n value: value,\n enumerable: false,\n writable: false,\n configurable: true\n }, options));\n return el\n }\n\n /**\n * Convert a string containing dashes to camel case\n * @param { String } str - input string\n * @returns { String } my-string -> myString\n */\n function toCamel(str) {\n return str.replace(/-(\\w)/g, function (_, c) { return c.toUpperCase(); })\n }\n\n /**\n * Warn a message via console\n * @param {String} message - warning message\n */\n function warn(message) {\n if (console && console.warn) { console.warn(message); }\n }\n\n\n\n var misc = /*#__PURE__*/Object.freeze({\n contains: contains,\n each: each,\n getPropDescriptor: getPropDescriptor,\n startsWith: startsWith,\n uid: uid,\n defineProperty: define,\n objectCreate: create,\n extend: extend,\n toCamel: toCamel,\n warn: warn\n });\n\n /**\n * Set the property of an object for a given key. If something already\n * exists there, then it becomes an array containing both the old and new value.\n * @param { Object } obj - object on which to set the property\n * @param { String } key - property name\n * @param { Object } value - the value of the property to be set\n * @param { Boolean } ensureArray - ensure that the property remains an array\n * @param { Number } index - add the new item in a certain array position\n */\n function arrayishAdd(obj, key, value, ensureArray, index) {\n var dest = obj[key];\n var isArr = isArray(dest);\n var hasIndex = !isUndefined(index);\n\n if (dest && dest === value) { return }\n\n // if the key was never set, set it once\n if (!dest && ensureArray) { obj[key] = [value]; }\n else if (!dest) { obj[key] = value; }\n // if it was an array and not yet set\n else {\n if (isArr) {\n var oldIndex = dest.indexOf(value);\n // this item never changed its position\n if (oldIndex === index) { return }\n // remove the item from its old position\n if (oldIndex !== -1) { dest.splice(oldIndex, 1); }\n // move or add the item\n if (hasIndex) {\n dest.splice(index, 0, value);\n } else {\n dest.push(value);\n }\n } else { obj[key] = [dest, value]; }\n }\n }\n\n /**\n * Detect the tag implementation by a DOM node\n * @param { Object } dom - DOM node we need to parse to get its tag implementation\n * @returns { Object } it returns an object containing the implementation of a custom tag (template and boot function)\n */\n function get(dom) {\n return dom.tagName && __TAG_IMPL[getAttribute(dom, IS_DIRECTIVE) ||\n getAttribute(dom, IS_DIRECTIVE) || dom.tagName.toLowerCase()]\n }\n\n /**\n * Get the tag name of any DOM node\n * @param { Object } dom - DOM node we want to parse\n * @param { Boolean } skipDataIs - hack to ignore the data-is attribute when attaching to parent\n * @returns { String } name to identify this dom node in riot\n */\n function getName(dom, skipDataIs) {\n var child = get(dom);\n var namedTag = !skipDataIs && getAttribute(dom, IS_DIRECTIVE);\n return namedTag && !tmpl.hasExpr(namedTag) ?\n namedTag : child ? child.name : dom.tagName.toLowerCase()\n }\n\n /**\n * Return a temporary context containing also the parent properties\n * @this Tag\n * @param { Tag } - temporary tag context containing all the parent properties\n */\n function inheritParentProps() {\n if (this.parent) { return extend(create(this), this.parent) }\n return this\n }\n\n /*\n Includes hacks needed for the Internet Explorer version 9 and below\n See: http://kangax.github.io/compat-table/es5/#ie8\n http://codeplanet.io/dropping-ie8/\n */\n\n var\n reHasYield = /|>([\\S\\s]*?)<\\/yield\\s*>|>)/ig,\n reYieldSrc = /]*)['\"]\\s*>([\\S\\s]*?)<\\/yield\\s*>/ig,\n reYieldDest = /|>([\\S\\s]*?)<\\/yield\\s*>)/ig,\n rootEls = { tr: 'tbody', th: 'tr', td: 'tr', col: 'colgroup' },\n tblTags = IE_VERSION && IE_VERSION < 10 ? RE_SPECIAL_TAGS : RE_SPECIAL_TAGS_NO_OPTION,\n GENERIC = 'div',\n SVG = 'svg';\n\n\n /*\n Creates the root element for table or select child elements:\n tr/th/td/thead/tfoot/tbody/caption/col/colgroup/option/optgroup\n */\n function specialTags(el, tmpl, tagName) {\n\n var\n select = tagName[0] === 'o',\n parent = select ? 'select>' : 'table>';\n\n // trim() is important here, this ensures we don't have artifacts,\n // so we can check if we have only one element inside the parent\n el.innerHTML = '<' + parent + tmpl.trim() + ' 0 ) mixins[ len ] = arguments[ len + 1 ];\n\n each(mixins, function (mix) {\n var instance;\n var obj;\n var props = [];\n\n // properties blacklisted and will not be bound to the tag instance\n var propsBlacklist = ['init', '__proto__'];\n\n mix = isString(mix) ? mixin(mix) : mix;\n\n // check if the mixin is a function\n if (isFunction(mix)) {\n // create the new mixin instance\n instance = new mix();\n } else { instance = mix; }\n\n var proto = Object.getPrototypeOf(instance);\n\n // build multilevel prototype inheritance chain property list\n do { props = props.concat(Object.getOwnPropertyNames(obj || instance)); }\n while (obj = Object.getPrototypeOf(obj || instance))\n\n // loop the keys in the function prototype or the all object keys\n each(props, function (key) {\n // bind methods to tag\n // allow mixins to override other properties/parent mixins\n if (!contains(propsBlacklist, key)) {\n // check for getters/setters\n var descriptor = getPropDescriptor(instance, key) || getPropDescriptor(proto, key);\n var hasGetterSetter = descriptor && (descriptor.get || descriptor.set);\n\n // apply method only if it does not already exist on the instance\n if (!tag$$1.hasOwnProperty(key) && hasGetterSetter) {\n Object.defineProperty(tag$$1, key, descriptor);\n } else {\n tag$$1[key] = isFunction(instance[key]) ?\n instance[key].bind(tag$$1) :\n instance[key];\n }\n }\n });\n\n // init method will be called automatically\n if (instance.init)\n { instance.init.bind(tag$$1)(tag$$1.opts); }\n });\n\n return tag$$1\n }\n\n /**\n * Move the position of a custom tag in its parent tag\n * @this Tag\n * @param { String } tagName - key where the tag was stored\n * @param { Number } newPos - index where the new tag will be stored\n */\n function moveChild(tagName, newPos) {\n var parent = this.parent;\n var tags;\n // no parent no move\n if (!parent) { return }\n\n tags = parent.tags[tagName];\n\n if (isArray(tags))\n { tags.splice(newPos, 0, tags.splice(tags.indexOf(this), 1)[0]); }\n else { arrayishAdd(parent.tags, tagName, this); }\n }\n\n /**\n * Move virtual tag and all child nodes\n * @this Tag\n * @param { Node } src - the node that will do the inserting\n * @param { Tag } target - insert before this tag's first child\n */\n function moveVirtual(src, target) {\n var this$1 = this;\n\n var el = this.__.head;\n var sib;\n var frag = createFragment();\n\n while (el) {\n sib = el.nextSibling;\n frag.appendChild(el);\n el = sib;\n if (el === this$1.__.tail) {\n frag.appendChild(el);\n src.insertBefore(frag, target.__.head);\n break\n }\n }\n }\n\n /**\n * Convert the item looped into an object used to extend the child tag properties\n * @param { Object } expr - object containing the keys used to extend the children tags\n * @param { * } key - value to assign to the new object returned\n * @param { * } val - value containing the position of the item in the array\n * @returns { Object } - new object containing the values of the original item\n *\n * The variables 'key' and 'val' are arbitrary.\n * They depend on the collection type looped (Array, Object)\n * and on the expression used on the each tag\n *\n */\n function mkitem(expr, key, val) {\n var item = {};\n item[expr.key] = key;\n if (expr.pos) { item[expr.pos] = val; }\n return item\n }\n\n /**\n * Unmount the redundant tags\n * @param { Array } items - array containing the current items to loop\n * @param { Array } tags - array containing all the children tags\n */\n function unmountRedundant(items, tags, filteredItemsCount) {\n var i = tags.length;\n var j = items.length - filteredItemsCount;\n\n while (i > j) {\n i--;\n remove.apply(tags[i], [tags, i]);\n }\n }\n\n\n /**\n * Remove a child tag\n * @this Tag\n * @param { Array } tags - tags collection\n * @param { Number } i - index of the tag to remove\n */\n function remove(tags, i) {\n tags.splice(i, 1);\n this.unmount();\n arrayishRemove(this.parent, this, this.__.tagName, true);\n }\n\n /**\n * Move the nested custom tags in non custom loop tags\n * @this Tag\n * @param { Number } i - current position of the loop tag\n */\n function moveNestedTags(i) {\n var this$1 = this;\n\n each(Object.keys(this.tags), function (tagName) {\n moveChild.apply(this$1.tags[tagName], [tagName, i]);\n });\n }\n\n /**\n * Move a child tag\n * @this Tag\n * @param { HTMLElement } root - dom node containing all the loop children\n * @param { Tag } nextTag - instance of the next tag preceding the one we want to move\n * @param { Boolean } isVirtual - is it a virtual tag?\n */\n function move(root, nextTag, isVirtual) {\n if (isVirtual)\n { moveVirtual.apply(this, [root, nextTag]); }\n else\n { safeInsert(root, this.root, nextTag.root); }\n }\n\n /**\n * Insert and mount a child tag\n * @this Tag\n * @param { HTMLElement } root - dom node containing all the loop children\n * @param { Tag } nextTag - instance of the next tag preceding the one we want to insert\n * @param { Boolean } isVirtual - is it a virtual tag?\n */\n function insert(root, nextTag, isVirtual) {\n if (isVirtual)\n { makeVirtual.apply(this, [root, nextTag]); }\n else\n { safeInsert(root, this.root, nextTag.root); }\n }\n\n /**\n * Append a new tag into the DOM\n * @this Tag\n * @param { HTMLElement } root - dom node containing all the loop children\n * @param { Boolean } isVirtual - is it a virtual tag?\n */\n function append(root, isVirtual) {\n if (isVirtual)\n { makeVirtual.call(this, root); }\n else\n { root.appendChild(this.root); }\n }\n\n /**\n * Return the value we want to use to lookup the postion of our items in the collection\n * @param { String } keyAttr - lookup string or expression\n * @param { * } originalItem - original item from the collection\n * @param { Object } keyedItem - object created by riot via { item, i in collection }\n * @param { Boolean } hasKeyAttrExpr - flag to check whether the key is an expression\n * @returns { * } value that we will use to figure out the item position via collection.indexOf\n */\n function getItemId(keyAttr, originalItem, keyedItem, hasKeyAttrExpr) {\n if (keyAttr) {\n return hasKeyAttrExpr ? tmpl(keyAttr, keyedItem) : originalItem[keyAttr]\n }\n\n return originalItem\n }\n\n /**\n * Manage tags having the 'each'\n * @param { HTMLElement } dom - DOM node we need to loop\n * @param { Tag } parent - parent tag instance where the dom node is contained\n * @param { String } expr - string contained in the 'each' attribute\n * @returns { Object } expression object for this each loop\n */\n function _each(dom, parent, expr) {\n var mustReorder = typeof getAttribute(dom, LOOP_NO_REORDER_DIRECTIVE) !== T_STRING || removeAttribute(dom, LOOP_NO_REORDER_DIRECTIVE);\n var keyAttr = getAttribute(dom, KEY_DIRECTIVE);\n var hasKeyAttrExpr = keyAttr ? tmpl.hasExpr(keyAttr) : false;\n var tagName = getName(dom);\n var impl = __TAG_IMPL[tagName];\n var parentNode = dom.parentNode;\n var placeholder = createDOMPlaceholder();\n var child = get(dom);\n var ifExpr = getAttribute(dom, CONDITIONAL_DIRECTIVE);\n var tags = [];\n var isLoop = true;\n var innerHTML = dom.innerHTML;\n var isAnonymous = !__TAG_IMPL[tagName];\n var isVirtual = dom.tagName === 'VIRTUAL';\n var oldItems = [];\n\n // remove the each property from the original tag\n removeAttribute(dom, LOOP_DIRECTIVE);\n removeAttribute(dom, KEY_DIRECTIVE);\n\n // parse the each expression\n expr = tmpl.loopKeys(expr);\n expr.isLoop = true;\n\n if (ifExpr) { removeAttribute(dom, CONDITIONAL_DIRECTIVE); }\n\n // insert a marked where the loop tags will be injected\n parentNode.insertBefore(placeholder, dom);\n parentNode.removeChild(dom);\n\n expr.update = function updateEach() {\n // get the new items collection\n expr.value = tmpl(expr.val, parent);\n\n var items = expr.value;\n var frag = createFragment();\n var isObject = !isArray(items) && !isString(items);\n var root = placeholder.parentNode;\n var tmpItems = [];\n var hasKeys = isObject && !!items;\n\n // if this DOM was removed the update here is useless\n // this condition fixes also a weird async issue on IE in our unit test\n if (!root) { return }\n\n // object loop. any changes cause full redraw\n if (isObject) {\n items = items ? Object.keys(items).map(function (key) { return mkitem(expr, items[key], key); }) : [];\n }\n\n // store the amount of filtered items\n var filteredItemsCount = 0;\n\n // loop all the new items\n each(items, function (_item, index) {\n var i = index - filteredItemsCount;\n var item = !hasKeys && expr.key ? mkitem(expr, _item, index) : _item;\n\n // skip this item because it must be filtered\n if (ifExpr && !tmpl(ifExpr, extend(create(parent), item))) {\n filteredItemsCount ++;\n return\n }\n\n var itemId = getItemId(keyAttr, _item, item, hasKeyAttrExpr);\n // reorder only if the items are not objects\n // or a key attribute has been provided\n var doReorder = !isObject && mustReorder && typeof _item === T_OBJECT || keyAttr;\n var oldPos = oldItems.indexOf(itemId);\n var isNew = oldPos === -1;\n var pos = !isNew && doReorder ? oldPos : i;\n // does a tag exist in this position?\n var tag = tags[pos];\n var mustAppend = i >= oldItems.length;\n var mustCreate = doReorder && isNew || !doReorder && !tag || !tags[i];\n\n // new tag\n if (mustCreate) {\n tag = createTag(impl, {\n parent: parent,\n isLoop: isLoop,\n isAnonymous: isAnonymous,\n tagName: tagName,\n root: dom.cloneNode(isAnonymous),\n item: item,\n index: i,\n }, innerHTML);\n\n // mount the tag\n tag.mount();\n\n if (mustAppend)\n { append.apply(tag, [frag || root, isVirtual]); }\n else\n { insert.apply(tag, [root, tags[i], isVirtual]); }\n\n if (!mustAppend) { oldItems.splice(i, 0, item); }\n tags.splice(i, 0, tag);\n if (child) { arrayishAdd(parent.tags, tagName, tag, true); }\n } else if (pos !== i && doReorder) {\n // move\n if (keyAttr || contains(items, oldItems[pos])) {\n move.apply(tag, [root, tags[i], isVirtual]);\n // move the old tag instance\n tags.splice(i, 0, tags.splice(pos, 1)[0]);\n // move the old item\n oldItems.splice(i, 0, oldItems.splice(pos, 1)[0]);\n }\n\n // update the position attribute if it exists\n if (expr.pos) { tag[expr.pos] = i; }\n\n // if the loop tags are not custom\n // we need to move all their custom tags into the right position\n if (!child && tag.tags) { moveNestedTags.call(tag, i); }\n }\n\n // cache the original item to use it in the events bound to this node\n // and its children\n extend(tag.__, {\n item: item,\n index: i,\n parent: parent\n });\n\n tmpItems[i] = itemId;\n\n if (!mustCreate) { tag.update(item); }\n });\n\n // remove the redundant tags\n unmountRedundant(items, tags, filteredItemsCount);\n\n // clone the items array\n oldItems = tmpItems.slice();\n\n root.insertBefore(frag, placeholder);\n };\n\n expr.unmount = function () {\n each(tags, function (t) { t.unmount(); });\n };\n\n return expr\n }\n\n var RefExpr = {\n init: function init(dom, parent, attrName, attrValue) {\n this.dom = dom;\n this.attr = attrName;\n this.rawValue = attrValue;\n this.parent = parent;\n this.hasExp = tmpl.hasExpr(attrValue);\n return this\n },\n update: function update() {\n var old = this.value;\n var customParent = this.parent && getImmediateCustomParent(this.parent);\n // if the referenced element is a custom tag, then we set the tag itself, rather than DOM\n var tagOrDom = this.dom.__ref || this.tag || this.dom;\n\n this.value = this.hasExp ? tmpl(this.rawValue, this.parent) : this.rawValue;\n\n // the name changed, so we need to remove it from the old key (if present)\n if (!isBlank(old) && customParent) { arrayishRemove(customParent.refs, old, tagOrDom); }\n if (!isBlank(this.value) && isString(this.value)) {\n // add it to the refs of parent tag (this behavior was changed >=3.0)\n if (customParent) { arrayishAdd(\n customParent.refs,\n this.value,\n tagOrDom,\n // use an array if it's a looped node and the ref is not an expression\n null,\n this.parent.__.index\n ); }\n\n if (this.value !== old) {\n setAttribute(this.dom, this.attr, this.value);\n }\n } else {\n removeAttribute(this.dom, this.attr);\n }\n\n // cache the ref bound to this dom node\n // to reuse it in future (see also #2329)\n if (!this.dom.__ref) { this.dom.__ref = tagOrDom; }\n },\n unmount: function unmount() {\n var tagOrDom = this.tag || this.dom;\n var customParent = this.parent && getImmediateCustomParent(this.parent);\n if (!isBlank(this.value) && customParent)\n { arrayishRemove(customParent.refs, this.value, tagOrDom); }\n }\n };\n\n /**\n * Create a new ref directive\n * @param { HTMLElement } dom - dom node having the ref attribute\n * @param { Tag } context - tag instance where the DOM node is located\n * @param { String } attrName - either 'ref' or 'data-ref'\n * @param { String } attrValue - value of the ref attribute\n * @returns { RefExpr } a new RefExpr object\n */\n function createRefDirective(dom, tag, attrName, attrValue) {\n return create(RefExpr).init(dom, tag, attrName, attrValue)\n }\n\n /**\n * Trigger the unmount method on all the expressions\n * @param { Array } expressions - DOM expressions\n */\n function unmountAll(expressions) {\n each(expressions, function (expr) {\n if (expr.unmount) { expr.unmount(true); }\n else if (expr.tagName) { expr.tag.unmount(true); }\n else if (expr.unmount) { expr.unmount(); }\n });\n }\n\n var IfExpr = {\n init: function init(dom, tag, expr) {\n removeAttribute(dom, CONDITIONAL_DIRECTIVE);\n extend(this, { tag: tag, expr: expr, stub: createDOMPlaceholder(), pristine: dom });\n var p = dom.parentNode;\n p.insertBefore(this.stub, dom);\n p.removeChild(dom);\n\n return this\n },\n update: function update$$1() {\n this.value = tmpl(this.expr, this.tag);\n\n if (!this.stub.parentNode) { return }\n\n if (this.value && !this.current) { // insert\n this.current = this.pristine.cloneNode(true);\n this.stub.parentNode.insertBefore(this.current, this.stub);\n this.expressions = parseExpressions.apply(this.tag, [this.current, true]);\n } else if (!this.value && this.current) { // remove\n this.unmount();\n this.current = null;\n this.expressions = [];\n }\n\n if (this.value) { update.call(this.tag, this.expressions); }\n },\n unmount: function unmount() {\n if (this.current) {\n if (this.current._tag) {\n this.current._tag.unmount();\n } else if (this.current.parentNode) {\n this.current.parentNode.removeChild(this.current);\n }\n }\n\n unmountAll(this.expressions || []);\n }\n };\n\n /**\n * Create a new if directive\n * @param { HTMLElement } dom - if root dom node\n * @param { Tag } context - tag instance where the DOM node is located\n * @param { String } attr - if expression\n * @returns { IFExpr } a new IfExpr object\n */\n function createIfDirective(dom, tag, attr) {\n return create(IfExpr).init(dom, tag, attr)\n }\n\n /**\n * Walk the tag DOM to detect the expressions to evaluate\n * @this Tag\n * @param { HTMLElement } root - root tag where we will start digging the expressions\n * @param { Boolean } mustIncludeRoot - flag to decide whether the root must be parsed as well\n * @returns { Array } all the expressions found\n */\n function parseExpressions(root, mustIncludeRoot) {\n var this$1 = this;\n\n var expressions = [];\n\n walkNodes(root, function (dom) {\n var type = dom.nodeType;\n var attr;\n var tagImpl;\n\n if (!mustIncludeRoot && dom === root) { return }\n\n // text node\n if (type === 3 && dom.parentNode.tagName !== 'STYLE' && tmpl.hasExpr(dom.nodeValue))\n { expressions.push({dom: dom, expr: dom.nodeValue}); }\n\n if (type !== 1) { return }\n\n var isVirtual = dom.tagName === 'VIRTUAL';\n\n // loop. each does it's own thing (for now)\n if (attr = getAttribute(dom, LOOP_DIRECTIVE)) {\n if(isVirtual) { setAttribute(dom, 'loopVirtual', true); } // ignore here, handled in _each\n expressions.push(_each(dom, this$1, attr));\n return false\n }\n\n // if-attrs become the new parent. Any following expressions (either on the current\n // element, or below it) become children of this expression.\n if (attr = getAttribute(dom, CONDITIONAL_DIRECTIVE)) {\n expressions.push(createIfDirective(dom, this$1, attr));\n return false\n }\n\n if (attr = getAttribute(dom, IS_DIRECTIVE)) {\n if (tmpl.hasExpr(attr)) {\n expressions.push({\n isRtag: true,\n expr: attr,\n dom: dom,\n attrs: [].slice.call(dom.attributes)\n });\n\n return false\n }\n }\n\n // if this is a tag, stop traversing here.\n // we ignore the root, since parseExpressions is called while we're mounting that root\n tagImpl = get(dom);\n\n if(isVirtual) {\n if(getAttribute(dom, 'virtualized')) {dom.parentElement.removeChild(dom); } // tag created, remove from dom\n if(!tagImpl && !getAttribute(dom, 'virtualized') && !getAttribute(dom, 'loopVirtual')) // ok to create virtual tag\n { tagImpl = { tmpl: dom.outerHTML }; }\n }\n\n if (tagImpl && (dom !== root || mustIncludeRoot)) {\n var hasIsDirective = getAttribute(dom, IS_DIRECTIVE);\n if(isVirtual && !hasIsDirective) { // handled in update\n // can not remove attribute like directives\n // so flag for removal after creation to prevent maximum stack error\n setAttribute(dom, 'virtualized', true);\n var tag = createTag(\n {tmpl: dom.outerHTML},\n {root: dom, parent: this$1},\n dom.innerHTML\n );\n\n expressions.push(tag); // no return, anonymous tag, keep parsing\n } else {\n if (hasIsDirective && isVirtual)\n { warn((\"Virtual tags shouldn't be used together with the \\\"\" + IS_DIRECTIVE + \"\\\" attribute - https://github.com/riot/riot/issues/2511\")); }\n\n expressions.push(\n initChild(\n tagImpl,\n {\n root: dom,\n parent: this$1\n },\n dom.innerHTML,\n this$1\n )\n );\n return false\n }\n }\n\n // attribute expressions\n parseAttributes.apply(this$1, [dom, dom.attributes, function (attr, expr) {\n if (!expr) { return }\n expressions.push(expr);\n }]);\n });\n\n return expressions\n }\n\n /**\n * Calls `fn` for every attribute on an element. If that attr has an expression,\n * it is also passed to fn.\n * @this Tag\n * @param { HTMLElement } dom - dom node to parse\n * @param { Array } attrs - array of attributes\n * @param { Function } fn - callback to exec on any iteration\n */\n function parseAttributes(dom, attrs, fn) {\n var this$1 = this;\n\n each(attrs, function (attr) {\n if (!attr) { return false }\n\n var name = attr.name;\n var bool = isBoolAttr(name);\n var expr;\n\n if (contains(REF_DIRECTIVES, name) && dom.tagName.toLowerCase() !== YIELD_TAG) {\n expr = createRefDirective(dom, this$1, name, attr.value);\n } else if (tmpl.hasExpr(attr.value)) {\n expr = {dom: dom, expr: attr.value, attr: name, bool: bool};\n }\n\n fn(attr, expr);\n });\n }\n\n /**\n * Manage the mount state of a tag triggering also the observable events\n * @this Tag\n * @param { Boolean } value - ..of the isMounted flag\n */\n function setMountState(value) {\n var ref = this.__;\n var isAnonymous = ref.isAnonymous;\n var skipAnonymous = ref.skipAnonymous;\n\n define(this, 'isMounted', value);\n\n if (!isAnonymous || !skipAnonymous) {\n if (value) { this.trigger('mount'); }\n else {\n this.trigger('unmount');\n this.off('*');\n this.__.wasCreated = false;\n }\n }\n }\n\n /**\n * Mount the current tag instance\n * @returns { Tag } the current tag instance\n */\n function componentMount(tag$$1, dom, expressions, opts) {\n var __ = tag$$1.__;\n var root = __.root;\n root._tag = tag$$1; // keep a reference to the tag just created\n\n // Read all the attrs on this instance. This give us the info we need for updateOpts\n parseAttributes.apply(__.parent, [root, root.attributes, function (attr, expr) {\n if (!__.isAnonymous && RefExpr.isPrototypeOf(expr)) { expr.tag = tag$$1; }\n attr.expr = expr;\n __.instAttrs.push(attr);\n }]);\n\n // update the root adding custom attributes coming from the compiler\n walkAttributes(__.impl.attrs, function (k, v) { __.implAttrs.push({name: k, value: v}); });\n parseAttributes.apply(tag$$1, [root, __.implAttrs, function (attr, expr) {\n if (expr) { expressions.push(expr); }\n else { setAttribute(root, attr.name, attr.value); }\n }]);\n\n // initialiation\n updateOpts.apply(tag$$1, [__.isLoop, __.parent, __.isAnonymous, opts, __.instAttrs]);\n\n // add global mixins\n var globalMixin = mixin(GLOBAL_MIXIN);\n\n if (globalMixin && !__.skipAnonymous) {\n for (var i in globalMixin) {\n if (globalMixin.hasOwnProperty(i)) {\n tag$$1.mixin(globalMixin[i]);\n }\n }\n }\n\n if (__.impl.fn) { __.impl.fn.call(tag$$1, opts); }\n\n if (!__.skipAnonymous) { tag$$1.trigger('before-mount'); }\n\n // parse layout after init. fn may calculate args for nested custom tags\n each(parseExpressions.apply(tag$$1, [dom, __.isAnonymous]), function (e) { return expressions.push(e); });\n\n tag$$1.update(__.item);\n\n if (!__.isAnonymous && !__.isInline) {\n while (dom.firstChild) { root.appendChild(dom.firstChild); }\n }\n\n define(tag$$1, 'root', root);\n\n // if we need to wait that the parent \"mount\" or \"updated\" event gets triggered\n if (!__.skipAnonymous && tag$$1.parent) {\n var p = getImmediateCustomParent(tag$$1.parent);\n p.one(!p.isMounted ? 'mount' : 'updated', function () {\n setMountState.call(tag$$1, true);\n });\n } else {\n // otherwise it's not a child tag we can trigger its mount event\n setMountState.call(tag$$1, true);\n }\n\n tag$$1.__.wasCreated = true;\n\n return tag$$1\n }\n\n /**\n * Unmount the tag instance\n * @param { Boolean } mustKeepRoot - if it's true the root node will not be removed\n * @returns { Tag } the current tag instance\n */\n function tagUnmount(tag, mustKeepRoot, expressions) {\n var __ = tag.__;\n var root = __.root;\n var tagIndex = __TAGS_CACHE.indexOf(tag);\n var p = root.parentNode;\n\n if (!__.skipAnonymous) { tag.trigger('before-unmount'); }\n\n // clear all attributes coming from the mounted tag\n walkAttributes(__.impl.attrs, function (name) {\n if (startsWith(name, ATTRS_PREFIX))\n { name = name.slice(ATTRS_PREFIX.length); }\n\n removeAttribute(root, name);\n });\n\n // remove all the event listeners\n tag.__.listeners.forEach(function (dom) {\n Object.keys(dom[RIOT_EVENTS_KEY]).forEach(function (eventName) {\n dom.removeEventListener(eventName, dom[RIOT_EVENTS_KEY][eventName]);\n });\n });\n\n // remove tag instance from the global tags cache collection\n if (tagIndex !== -1) { __TAGS_CACHE.splice(tagIndex, 1); }\n\n // clean up the parent tags object\n if (__.parent && !__.isAnonymous) {\n var ptag = getImmediateCustomParent(__.parent);\n\n if (__.isVirtual) {\n Object\n .keys(tag.tags)\n .forEach(function (tagName) { return arrayishRemove(ptag.tags, tagName, tag.tags[tagName]); });\n } else {\n arrayishRemove(ptag.tags, __.tagName, tag);\n }\n }\n\n // unmount all the virtual directives\n if (tag.__.virts) {\n each(tag.__.virts, function (v) {\n if (v.parentNode) { v.parentNode.removeChild(v); }\n });\n }\n\n // allow expressions to unmount themselves\n unmountAll(expressions);\n each(__.instAttrs, function (a) { return a.expr && a.expr.unmount && a.expr.unmount(); });\n\n // clear the tag html if it's necessary\n if (mustKeepRoot) { setInnerHTML(root, ''); }\n // otherwise detach the root tag from the DOM\n else if (p) { p.removeChild(root); }\n\n // custom internal unmount function to avoid relying on the observable\n if (__.onUnmount) { __.onUnmount(); }\n\n // weird fix for a weird edge case #2409 and #2436\n // some users might use your software not as you've expected\n // so I need to add these dirty hacks to mitigate unexpected issues\n if (!tag.isMounted) { setMountState.call(tag, true); }\n\n setMountState.call(tag, false);\n\n delete root._tag;\n\n return tag\n }\n\n /**\n * Tag creation factory function\n * @constructor\n * @param { Object } impl - it contains the tag template, and logic\n * @param { Object } conf - tag options\n * @param { String } innerHTML - html that eventually we need to inject in the tag\n */\n function createTag(impl, conf, innerHTML) {\n if ( impl === void 0 ) impl = {};\n if ( conf === void 0 ) conf = {};\n\n var tag = conf.context || {};\n var opts = conf.opts || {};\n var parent = conf.parent;\n var isLoop = conf.isLoop;\n var isAnonymous = !!conf.isAnonymous;\n var skipAnonymous = settings.skipAnonymousTags && isAnonymous;\n var item = conf.item;\n // available only for the looped nodes\n var index = conf.index;\n // All attributes on the Tag when it's first parsed\n var instAttrs = [];\n // expressions on this type of Tag\n var implAttrs = [];\n var tmpl = impl.tmpl;\n var expressions = [];\n var root = conf.root;\n var tagName = conf.tagName || getName(root);\n var isVirtual = tagName === 'virtual';\n var isInline = !isVirtual && !tmpl;\n var dom;\n\n if (isInline || isLoop && isAnonymous) {\n dom = root;\n } else {\n if (!isVirtual) { root.innerHTML = ''; }\n dom = mkdom(tmpl, innerHTML, isSvg(root));\n }\n\n // make this tag observable\n if (!skipAnonymous) { observable(tag); }\n\n // only call unmount if we have a valid __TAG_IMPL (has name property)\n if (impl.name && root._tag) { root._tag.unmount(true); }\n\n define(tag, '__', {\n impl: impl,\n root: root,\n skipAnonymous: skipAnonymous,\n implAttrs: implAttrs,\n isAnonymous: isAnonymous,\n instAttrs: instAttrs,\n innerHTML: innerHTML,\n tagName: tagName,\n index: index,\n isLoop: isLoop,\n isInline: isInline,\n item: item,\n parent: parent,\n // tags having event listeners\n // it would be better to use weak maps here but we can not introduce breaking changes now\n listeners: [],\n // these vars will be needed only for the virtual tags\n virts: [],\n wasCreated: false,\n tail: null,\n head: null\n });\n\n // tag protected properties\n return [\n ['isMounted', false],\n // create a unique id to this tag\n // it could be handy to use it also to improve the virtual dom rendering speed\n ['_riot_id', uid()],\n ['root', root],\n ['opts', opts, { writable: true, enumerable: true }],\n ['parent', parent || null],\n // protect the \"tags\" and \"refs\" property from being overridden\n ['tags', {}],\n ['refs', {}],\n ['update', function (data) { return componentUpdate(tag, data, expressions); }],\n ['mixin', function () {\n var mixins = [], len = arguments.length;\n while ( len-- ) mixins[ len ] = arguments[ len ];\n\n return componentMixin.apply(void 0, [ tag ].concat( mixins ));\n }],\n ['mount', function () { return componentMount(tag, dom, expressions, opts); }],\n ['unmount', function (mustKeepRoot) { return tagUnmount(tag, mustKeepRoot, expressions); }]\n ].reduce(function (acc, ref) {\n var key = ref[0];\n var value = ref[1];\n var opts = ref[2];\n\n define(tag, key, value, opts);\n return acc\n }, extend(tag, item))\n }\n\n /**\n * Mount a tag creating new Tag instance\n * @param { Object } root - dom node where the tag will be mounted\n * @param { String } tagName - name of the riot tag we want to mount\n * @param { Object } opts - options to pass to the Tag instance\n * @param { Object } ctx - optional context that will be used to extend an existing class ( used in riot.Tag )\n * @returns { Tag } a new Tag instance\n */\n function mount$1(root, tagName, opts, ctx) {\n var impl = __TAG_IMPL[tagName];\n var implClass = __TAG_IMPL[tagName].class;\n var context = ctx || (implClass ? create(implClass.prototype) : {});\n // cache the inner HTML to fix #855\n var innerHTML = root._innerHTML = root._innerHTML || root.innerHTML;\n var conf = extend({ root: root, opts: opts, context: context }, { parent: opts ? opts.parent : null });\n var tag;\n\n if (impl && root) { tag = createTag(impl, conf, innerHTML); }\n\n if (tag && tag.mount) {\n tag.mount(true);\n // add this tag to the virtualDom variable\n if (!contains(__TAGS_CACHE, tag)) { __TAGS_CACHE.push(tag); }\n }\n\n return tag\n }\n\n\n\n var tags = /*#__PURE__*/Object.freeze({\n arrayishAdd: arrayishAdd,\n getTagName: getName,\n inheritParentProps: inheritParentProps,\n mountTo: mount$1,\n selectTags: query,\n arrayishRemove: arrayishRemove,\n getTag: get,\n initChildTag: initChild,\n moveChildTag: moveChild,\n makeReplaceVirtual: makeReplaceVirtual,\n getImmediateCustomParentTag: getImmediateCustomParent,\n makeVirtual: makeVirtual,\n moveVirtual: moveVirtual,\n unmountAll: unmountAll,\n createIfDirective: createIfDirective,\n createRefDirective: createRefDirective\n });\n\n /**\n * Riot public api\n */\n var settings$1 = settings;\n var util = {\n tmpl: tmpl,\n brackets: brackets,\n styleManager: styleManager,\n vdom: __TAGS_CACHE,\n styleNode: styleManager.styleNode,\n // export the riot internal utils as well\n dom: dom,\n check: check,\n misc: misc,\n tags: tags\n };\n\n // export the core props/methods\n var Tag$1 = Tag;\n var tag$1 = tag;\n var tag2$1 = tag2;\n var mount$2 = mount;\n var mixin$1 = mixin;\n var update$2 = update$1;\n var unregister$1 = unregister;\n var version$1 = version;\n var observable$1 = observable;\n\n var riot$1 = extend({}, core, {\n observable: observable,\n settings: settings$1,\n util: util,\n });\n\n exports.settings = settings$1;\n exports.util = util;\n exports.Tag = Tag$1;\n exports.tag = tag$1;\n exports.tag2 = tag2$1;\n exports.mount = mount$2;\n exports.mixin = mixin$1;\n exports.update = update$2;\n exports.unregister = unregister$1;\n exports.version = version$1;\n exports.observable = observable$1;\n exports.default = riot$1;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/*!\n * jQuery JavaScript Library v3.4.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2019-05-01T21:04Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.4.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code, options ) {\n\t\tDOMEval( code, { nonce: options && options.nonce } );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.4\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2019-04-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t(nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\") ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 && rdescend.test( selector ) ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement(\"fieldset\");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = (elem.ownerDocument || elem).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( typeof elem.contentDocument !== \"undefined\" ) {\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, \"\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t/* eslint-disable max-len */\n\n\t// See https://github.com/eslint/eslint/issues/3229\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t/* eslint-enable */\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t// This happens for inline elements with no explicit setting (gh-3571)\n\t// Support: Android <=4.1 - 4.3 only\n\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t// Support: IE 9-11 only\n\t// Also use offsetWidth/offsetHeight for when box sizing is unreliable\n\t// We use getClientRects() to check for hidden/disconnected.\n\t// In those cases, the computed value can be trusted to be border-box\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\t\tval === \"auto\" ||\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = Date.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce++ ) + uncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\n\njQuery._evalUrl = function( url, options ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"