{"version":3,"sources":["webpack:///webpack:///webpack:///webpack:///webpack:///webpack:///webpack:///webpack:///webpack:///../node_modules/jquery-mousewheel/jquery.mousewheel.js","webpack:///webpack:///webpack:///webpack:///webpack:///webpack:///webpack:///webpack:///webpack:///../node_modules/jquery/dist/jquery.js","webpack:///webpack:///webpack:///webpack:///webpack:///webpack:///webpack:///webpack:///webpack:///../node_modules/webpack/buildin/amd-options.js"],"names":["factory","define","$","toFix","toBind","document","documentMode","slice","Array","prototype","nullLowestDeltaTimeout","lowestDelta","event","fixHooks","i","length","mouseHooks","special","mousewheel","version","setup","addEventListener","handler","onmousewheel","data","getLineHeight","getPageHeight","teardown","removeEventListener","removeData","elem","$elem","$parent","fn","parseInt","css","height","settings","adjustOldDeltas","normalizeOffset","extend","bind","trigger","unmousewheel","unbind","orgEvent","window","args","call","arguments","delta","deltaX","deltaY","absDelta","offsetX","offsetY","fix","type","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaMode","lineHeight","pageHeight","Math","max","abs","shouldAdjustOldDeltas","getBoundingClientRect","boundingRect","clientX","left","clientY","top","deltaFactor","unshift","clearTimeout","setTimeout","nullLowestDelta","dispatch","handle","apply","global","module","exports","w","Error","noGlobal","arr","getProto","Object","getPrototypeOf","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","support","isFunction","obj","nodeType","isWindow","preservedScriptAttributes","src","noModule","DOMEval","code","doc","node","script","createElement","text","head","appendChild","parentNode","removeChild","toType","jQuery","selector","context","init","rtrim","jquery","constructor","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","first","eq","last","len","j","end","sort","splice","options","name","copy","copyIsArray","clone","target","deep","isPlainObject","isArray","undefined","expando","random","replace","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","isArrayLike","trim","makeArray","results","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","value","guid","Symbol","iterator","split","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","disabledAncestor","addCombinator","disabled","dir","next","childNodes","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","nodeName","getAttribute","setAttribute","toSelector","join","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","documentElement","hasCompare","subWindow","defaultView","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","elements","attr","val","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","matcher","unmatched","innerText","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","has","targets","l","closest","index","prevAll","add","addBack","sibling","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","createOptions","object","flag","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","fireWith","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Deferred","func","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","catch","readyWait","wait","completed","readyState","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isHiddenWithinTree","style","display","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","optgroup","tbody","tfoot","colgroup","caption","th","getAll","setGlobalEval","refElements","rhtml","buildFragment","scripts","selection","ignored","wrap","fragment","createDocumentFragment","nodes","createTextNode","htmlPrefilter","div","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","on","types","one","origFn","off","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","triggered","delegateType","bindType","namespace","delegateCount","mappedTypes","origCount","removeEvent","nativeEvent","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","focus","blur","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","rboxStyle","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","width","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","backgroundClip","clearCloneStyle","boxSizingReliable","pixelBoxStyles","pixelPosition","reliableMarginLeft","scrollboxSize","curCSS","computed","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","finalPropName","cssProps","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","ceil","getWidthOrHeight","valueIsBorderBox","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getClientRects","margin","padding","border","prefix","suffix","expand","expanded","parts","Tween","easing","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","defaultPrefilter","opts","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","properties","stopped","prefilters","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","complete","timer","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","stripAndCollapse","getClass","classesToArray","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","isTrigger","parentWindow","simulate","triggerHandler","attaches","nonce","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","throws","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","ajaxSetup","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","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","calculatePosition","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","hover","fnOver","fnOut","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","_jQuery","_$","noConflict"],"mappings":";;;;;;;;;AAAA;;;;;;;AAQC,WAAUA,OAAV,EAAmB;AAChB,MAAK,IAAL,EAAkD;AAC9C;AACAC,qCAAO,CAAC,0EAAD,CAAD,oCAAaD,OAAb;AAAA;AAAA;AAAA,oGAAN;AACH,GAHD,MAGO,EAMN;AACJ,CAXA,EAWC,UAAUE,CAAV,EAAa;AAEX,MAAIC,KAAK,GAAI,CAAC,OAAD,EAAU,YAAV,EAAwB,gBAAxB,EAA0C,qBAA1C,CAAb;AAAA,MACIC,MAAM,GAAK,aAAaC,QAAb,IAAyBA,QAAQ,CAACC,YAAT,IAAyB,CAApD,GACG,CAAC,OAAD,CADH,GACe,CAAC,YAAD,EAAe,gBAAf,EAAiC,qBAAjC,CAF5B;AAAA,MAGIC,KAAK,GAAIC,KAAK,CAACC,SAAN,CAAgBF,KAH7B;AAAA,MAIIG,sBAJJ;AAAA,MAI4BC,WAJ5B;;AAMA,MAAKT,CAAC,CAACU,KAAF,CAAQC,QAAb,EAAwB;AACpB,SAAM,IAAIC,CAAC,GAAGX,KAAK,CAACY,MAApB,EAA4BD,CAA5B,GAAiC;AAC7BZ,OAAC,CAACU,KAAF,CAAQC,QAAR,CAAkBV,KAAK,CAAC,EAAEW,CAAH,CAAvB,IAAiCZ,CAAC,CAACU,KAAF,CAAQI,UAAzC;AACH;AACJ;;AAED,MAAIC,OAAO,GAAGf,CAAC,CAACU,KAAF,CAAQK,OAAR,CAAgBC,UAAhB,GAA6B;AACvCC,WAAO,EAAE,QAD8B;AAGvCC,SAAK,EAAE,YAAW;AACd,UAAK,KAAKC,gBAAV,EAA6B;AACzB,aAAM,IAAIP,CAAC,GAAGV,MAAM,CAACW,MAArB,EAA6BD,CAA7B,GAAkC;AAC9B,eAAKO,gBAAL,CAAuBjB,MAAM,CAAC,EAAEU,CAAH,CAA7B,EAAoCQ,OAApC,EAA6C,KAA7C;AACH;AACJ,OAJD,MAIO;AACH,aAAKC,YAAL,GAAoBD,OAApB;AACH,OAPa,CAQd;;;AACApB,OAAC,CAACsB,IAAF,CAAO,IAAP,EAAa,wBAAb,EAAuCP,OAAO,CAACQ,aAAR,CAAsB,IAAtB,CAAvC;AACAvB,OAAC,CAACsB,IAAF,CAAO,IAAP,EAAa,wBAAb,EAAuCP,OAAO,CAACS,aAAR,CAAsB,IAAtB,CAAvC;AACH,KAdsC;AAgBvCC,YAAQ,EAAE,YAAW;AACjB,UAAK,KAAKC,mBAAV,EAAgC;AAC5B,aAAM,IAAId,CAAC,GAAGV,MAAM,CAACW,MAArB,EAA6BD,CAA7B,GAAkC;AAC9B,eAAKc,mBAAL,CAA0BxB,MAAM,CAAC,EAAEU,CAAH,CAAhC,EAAuCQ,OAAvC,EAAgD,KAAhD;AACH;AACJ,OAJD,MAIO;AACH,aAAKC,YAAL,GAAoB,IAApB;AACH,OAPgB,CAQjB;;;AACArB,OAAC,CAAC2B,UAAF,CAAa,IAAb,EAAmB,wBAAnB;AACA3B,OAAC,CAAC2B,UAAF,CAAa,IAAb,EAAmB,wBAAnB;AACH,KA3BsC;AA6BvCJ,iBAAa,EAAE,UAASK,IAAT,EAAe;AAC1B,UAAIC,KAAK,GAAG7B,CAAC,CAAC4B,IAAD,CAAb;AAAA,UACIE,OAAO,GAAGD,KAAK,CAAC,kBAAkB7B,CAAC,CAAC+B,EAApB,GAAyB,cAAzB,GAA0C,QAA3C,CAAL,EADd;;AAEA,UAAI,CAACD,OAAO,CAACjB,MAAb,EAAqB;AACjBiB,eAAO,GAAG9B,CAAC,CAAC,MAAD,CAAX;AACH;;AACD,aAAOgC,QAAQ,CAACF,OAAO,CAACG,GAAR,CAAY,UAAZ,CAAD,EAA0B,EAA1B,CAAR,IAAyCD,QAAQ,CAACH,KAAK,CAACI,GAAN,CAAU,UAAV,CAAD,EAAwB,EAAxB,CAAjD,IAAgF,EAAvF;AACH,KApCsC;AAsCvCT,iBAAa,EAAE,UAASI,IAAT,EAAe;AAC1B,aAAO5B,CAAC,CAAC4B,IAAD,CAAD,CAAQM,MAAR,EAAP;AACH,KAxCsC;AA0CvCC,YAAQ,EAAE;AACNC,qBAAe,EAAE,IADX;AACiB;AACvBC,qBAAe,EAAE,IAFX,CAEiB;;AAFjB;AA1C6B,GAA3C;AAgDArC,GAAC,CAAC+B,EAAF,CAAKO,MAAL,CAAY;AACRtB,cAAU,EAAE,UAASe,EAAT,EAAa;AACrB,aAAOA,EAAE,GAAG,KAAKQ,IAAL,CAAU,YAAV,EAAwBR,EAAxB,CAAH,GAAiC,KAAKS,OAAL,CAAa,YAAb,CAA1C;AACH,KAHO;AAKRC,gBAAY,EAAE,UAASV,EAAT,EAAa;AACvB,aAAO,KAAKW,MAAL,CAAY,YAAZ,EAA0BX,EAA1B,CAAP;AACH;AAPO,GAAZ;;AAWA,WAASX,OAAT,CAAiBV,KAAjB,EAAwB;AACpB,QAAIiC,QAAQ,GAAKjC,KAAK,IAAIkC,MAAM,CAAClC,KAAjC;AAAA,QACImC,IAAI,GAASxC,KAAK,CAACyC,IAAN,CAAWC,SAAX,EAAsB,CAAtB,CADjB;AAAA,QAEIC,KAAK,GAAQ,CAFjB;AAAA,QAGIC,MAAM,GAAO,CAHjB;AAAA,QAIIC,MAAM,GAAO,CAJjB;AAAA,QAKIC,QAAQ,GAAK,CALjB;AAAA,QAMIC,OAAO,GAAM,CANjB;AAAA,QAOIC,OAAO,GAAM,CAPjB;AAQA3C,SAAK,GAAGV,CAAC,CAACU,KAAF,CAAQ4C,GAAR,CAAYX,QAAZ,CAAR;AACAjC,SAAK,CAAC6C,IAAN,GAAa,YAAb,CAVoB,CAYpB;;AACA,QAAK,YAAiBZ,QAAtB,EAAiC;AAAEO,YAAM,GAAGP,QAAQ,CAACa,MAAT,GAAkB,CAAC,CAA5B;AAAqC;;AACxE,QAAK,gBAAiBb,QAAtB,EAAiC;AAAEO,YAAM,GAAGP,QAAQ,CAACc,UAAlB;AAAqC;;AACxE,QAAK,iBAAiBd,QAAtB,EAAiC;AAAEO,YAAM,GAAGP,QAAQ,CAACe,WAAlB;AAAqC;;AACxE,QAAK,iBAAiBf,QAAtB,EAAiC;AAAEM,YAAM,GAAGN,QAAQ,CAACgB,WAAT,GAAuB,CAAC,CAAjC;AAAqC,KAhBpD,CAkBpB;;;AACA,QAAK,UAAUhB,QAAV,IAAsBA,QAAQ,CAACiB,IAAT,KAAkBjB,QAAQ,CAACkB,eAAtD,EAAwE;AACpEZ,YAAM,GAAGC,MAAM,GAAG,CAAC,CAAnB;AACAA,YAAM,GAAG,CAAT;AACH,KAtBmB,CAwBpB;;;AACAF,SAAK,GAAGE,MAAM,KAAK,CAAX,GAAeD,MAAf,GAAwBC,MAAhC,CAzBoB,CA2BpB;;AACA,QAAK,YAAYP,QAAjB,EAA4B;AACxBO,YAAM,GAAGP,QAAQ,CAACO,MAAT,GAAkB,CAAC,CAA5B;AACAF,WAAK,GAAIE,MAAT;AACH;;AACD,QAAK,YAAYP,QAAjB,EAA4B;AACxBM,YAAM,GAAGN,QAAQ,CAACM,MAAlB;;AACA,UAAKC,MAAM,KAAK,CAAhB,EAAoB;AAAEF,aAAK,GAAIC,MAAM,GAAG,CAAC,CAAnB;AAAuB;AAChD,KAnCmB,CAqCpB;;;AACA,QAAKC,MAAM,KAAK,CAAX,IAAgBD,MAAM,KAAK,CAAhC,EAAoC;AAAE;AAAS,KAtC3B,CAwCpB;AACA;AACA;AACA;AACA;;;AACA,QAAKN,QAAQ,CAACmB,SAAT,KAAuB,CAA5B,EAAgC;AAC5B,UAAIC,UAAU,GAAG/D,CAAC,CAACsB,IAAF,CAAO,IAAP,EAAa,wBAAb,CAAjB;AACA0B,WAAK,IAAKe,UAAV;AACAb,YAAM,IAAIa,UAAV;AACAd,YAAM,IAAIc,UAAV;AACH,KALD,MAKO,IAAKpB,QAAQ,CAACmB,SAAT,KAAuB,CAA5B,EAAgC;AACnC,UAAIE,UAAU,GAAGhE,CAAC,CAACsB,IAAF,CAAO,IAAP,EAAa,wBAAb,CAAjB;AACA0B,WAAK,IAAKgB,UAAV;AACAd,YAAM,IAAIc,UAAV;AACAf,YAAM,IAAIe,UAAV;AACH,KAvDmB,CAyDpB;;;AACAb,YAAQ,GAAGc,IAAI,CAACC,GAAL,CAAUD,IAAI,CAACE,GAAL,CAASjB,MAAT,CAAV,EAA4Be,IAAI,CAACE,GAAL,CAASlB,MAAT,CAA5B,CAAX;;AAEA,QAAK,CAACxC,WAAD,IAAgB0C,QAAQ,GAAG1C,WAAhC,EAA8C;AAC1CA,iBAAW,GAAG0C,QAAd,CAD0C,CAG1C;;AACA,UAAKiB,qBAAqB,CAACzB,QAAD,EAAWQ,QAAX,CAA1B,EAAiD;AAC7C1C,mBAAW,IAAI,EAAf;AACH;AACJ,KAnEmB,CAqEpB;;;AACA,QAAK2D,qBAAqB,CAACzB,QAAD,EAAWQ,QAAX,CAA1B,EAAiD;AAC7C;AACAH,WAAK,IAAK,EAAV;AACAC,YAAM,IAAI,EAAV;AACAC,YAAM,IAAI,EAAV;AACH,KA3EmB,CA6EpB;;;AACAF,SAAK,GAAIiB,IAAI,CAAEjB,KAAK,IAAK,CAAV,GAAc,OAAd,GAAwB,MAA1B,CAAJ,CAAuCA,KAAK,GAAIvC,WAAhD,CAAT;AACAwC,UAAM,GAAGgB,IAAI,CAAEhB,MAAM,IAAI,CAAV,GAAc,OAAd,GAAwB,MAA1B,CAAJ,CAAuCA,MAAM,GAAGxC,WAAhD,CAAT;AACAyC,UAAM,GAAGe,IAAI,CAAEf,MAAM,IAAI,CAAV,GAAc,OAAd,GAAwB,MAA1B,CAAJ,CAAuCA,MAAM,GAAGzC,WAAhD,CAAT,CAhFoB,CAkFpB;;AACA,QAAKM,OAAO,CAACoB,QAAR,CAAiBE,eAAjB,IAAoC,KAAKgC,qBAA9C,EAAsE;AAClE,UAAIC,YAAY,GAAG,KAAKD,qBAAL,EAAnB;AACAjB,aAAO,GAAG1C,KAAK,CAAC6D,OAAN,GAAgBD,YAAY,CAACE,IAAvC;AACAnB,aAAO,GAAG3C,KAAK,CAAC+D,OAAN,GAAgBH,YAAY,CAACI,GAAvC;AACH,KAvFmB,CAyFpB;;;AACAhE,SAAK,CAACuC,MAAN,GAAeA,MAAf;AACAvC,SAAK,CAACwC,MAAN,GAAeA,MAAf;AACAxC,SAAK,CAACiE,WAAN,GAAoBlE,WAApB;AACAC,SAAK,CAAC0C,OAAN,GAAgBA,OAAhB;AACA1C,SAAK,CAAC2C,OAAN,GAAgBA,OAAhB,CA9FoB,CA+FpB;AACA;AACA;;AACA3C,SAAK,CAACoD,SAAN,GAAkB,CAAlB,CAlGoB,CAoGpB;;AACAjB,QAAI,CAAC+B,OAAL,CAAalE,KAAb,EAAoBsC,KAApB,EAA2BC,MAA3B,EAAmCC,MAAnC,EArGoB,CAuGpB;AACA;AACA;AACA;;AACA,QAAI1C,sBAAJ,EAA4B;AAAEqE,kBAAY,CAACrE,sBAAD,CAAZ;AAAuC;;AACrEA,0BAAsB,GAAGsE,UAAU,CAACC,eAAD,EAAkB,GAAlB,CAAnC;AAEA,WAAO,CAAC/E,CAAC,CAACU,KAAF,CAAQsE,QAAR,IAAoBhF,CAAC,CAACU,KAAF,CAAQuE,MAA7B,EAAqCC,KAArC,CAA2C,IAA3C,EAAiDrC,IAAjD,CAAP;AACH;;AAED,WAASkC,eAAT,GAA2B;AACvBtE,eAAW,GAAG,IAAd;AACH;;AAED,WAAS2D,qBAAT,CAA+BzB,QAA/B,EAAyCQ,QAAzC,EAAmD;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAOpC,OAAO,CAACoB,QAAR,CAAiBC,eAAjB,IAAoCO,QAAQ,CAACY,IAAT,KAAkB,YAAtD,IAAsEJ,QAAQ,GAAG,GAAX,KAAmB,CAAhG;AACH;AAEJ,CApNA,CAAD,C;;;;;;;;;;;ACRA;;;;;;;;;;;;;AAaA,CAAE,UAAUgC,MAAV,EAAkBrF,OAAlB,EAA4B;AAE7B;;AAEA,MAAK,SAA8B,OAAOsF,MAAM,CAACC,OAAd,KAA0B,QAA7D,EAAwE;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;AACAD,UAAM,CAACC,OAAP,GAAiBF,MAAM,CAAChF,QAAP,GAChBL,OAAO,CAAEqF,MAAF,EAAU,IAAV,CADS,GAEhB,UAAUG,CAAV,EAAc;AACb,UAAK,CAACA,CAAC,CAACnF,QAAR,EAAmB;AAClB,cAAM,IAAIoF,KAAJ,CAAW,0CAAX,CAAN;AACA;;AACD,aAAOzF,OAAO,CAAEwF,CAAF,CAAd;AACA,KAPF;AAQA,GAjBD,MAiBO;AACNxF,WAAO,CAAEqF,MAAF,CAAP;AACA,GAvB4B,CAyB9B;;AACC,CA1BD,EA0BK,OAAOvC,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyC,IA1B9C,EA0BoD,UAAUA,MAAV,EAAkB4C,QAAlB,EAA6B;AAEjF;AACA;AACA;AACA;AACA;;AAEA,MAAIC,GAAG,GAAG,EAAV;AAEA,MAAItF,QAAQ,GAAGyC,MAAM,CAACzC,QAAtB;AAEA,MAAIuF,QAAQ,GAAGC,MAAM,CAACC,cAAtB;AAEA,MAAIvF,KAAK,GAAGoF,GAAG,CAACpF,KAAhB;AAEA,MAAIwF,MAAM,GAAGJ,GAAG,CAACI,MAAjB;AAEA,MAAIC,IAAI,GAAGL,GAAG,CAACK,IAAf;AAEA,MAAIC,OAAO,GAAGN,GAAG,CAACM,OAAlB;AAEA,MAAIC,UAAU,GAAG,EAAjB;AAEA,MAAIC,QAAQ,GAAGD,UAAU,CAACC,QAA1B;AAEA,MAAIC,MAAM,GAAGF,UAAU,CAACG,cAAxB;AAEA,MAAIC,UAAU,GAAGF,MAAM,CAACD,QAAxB;AAEA,MAAII,oBAAoB,GAAGD,UAAU,CAACtD,IAAX,CAAiB6C,MAAjB,CAA3B;AAEA,MAAIW,OAAO,GAAG,EAAd;;AAEA,MAAIC,UAAU,GAAG,SAASA,UAAT,CAAqBC,GAArB,EAA2B;AAEtC;AACA;AACA;AACA;AACA,WAAO,OAAOA,GAAP,KAAe,UAAf,IAA6B,OAAOA,GAAG,CAACC,QAAX,KAAwB,QAA5D;AACH,GAPH;;AAUA,MAAIC,QAAQ,GAAG,SAASA,QAAT,CAAmBF,GAAnB,EAAyB;AACtC,WAAOA,GAAG,IAAI,IAAP,IAAeA,GAAG,KAAKA,GAAG,CAAC5D,MAAlC;AACA,GAFF;;AAOC,MAAI+D,yBAAyB,GAAG;AAC/BpD,QAAI,EAAE,IADyB;AAE/BqD,OAAG,EAAE,IAF0B;AAG/BC,YAAQ,EAAE;AAHqB,GAAhC;;AAMA,WAASC,OAAT,CAAkBC,IAAlB,EAAwBC,GAAxB,EAA6BC,IAA7B,EAAoC;AACnCD,OAAG,GAAGA,GAAG,IAAI7G,QAAb;AAEA,QAAIS,CAAJ;AAAA,QACCsG,MAAM,GAAGF,GAAG,CAACG,aAAJ,CAAmB,QAAnB,CADV;AAGAD,UAAM,CAACE,IAAP,GAAcL,IAAd;;AACA,QAAKE,IAAL,EAAY;AACX,WAAMrG,CAAN,IAAW+F,yBAAX,EAAuC;AACtC,YAAKM,IAAI,CAAErG,CAAF,CAAT,EAAiB;AAChBsG,gBAAM,CAAEtG,CAAF,CAAN,GAAcqG,IAAI,CAAErG,CAAF,CAAlB;AACA;AACD;AACD;;AACDoG,OAAG,CAACK,IAAJ,CAASC,WAAT,CAAsBJ,MAAtB,EAA+BK,UAA/B,CAA0CC,WAA1C,CAAuDN,MAAvD;AACA;;AAGF,WAASO,MAAT,CAAiBjB,GAAjB,EAAuB;AACtB,QAAKA,GAAG,IAAI,IAAZ,EAAmB;AAClB,aAAOA,GAAG,GAAG,EAAb;AACA,KAHqB,CAKtB;;;AACA,WAAO,OAAOA,GAAP,KAAe,QAAf,IAA2B,OAAOA,GAAP,KAAe,UAA1C,GACNR,UAAU,CAAEC,QAAQ,CAACnD,IAAT,CAAe0D,GAAf,CAAF,CAAV,IAAsC,QADhC,GAEN,OAAOA,GAFR;AAGA;AACD;AACA;AACA;;;AAIA,MACCvF,OAAO,GAAG,OADX;AAAA,MAGC;AACAyG,QAAM,GAAG,UAAUC,QAAV,EAAoBC,OAApB,EAA8B;AAEtC;AACA;AACA,WAAO,IAAIF,MAAM,CAAC3F,EAAP,CAAU8F,IAAd,CAAoBF,QAApB,EAA8BC,OAA9B,CAAP;AACA,GATF;AAAA,MAWC;AACA;AACAE,OAAK,GAAG,oCAbT;;AAeAJ,QAAM,CAAC3F,EAAP,GAAY2F,MAAM,CAACnH,SAAP,GAAmB;AAE9B;AACAwH,UAAM,EAAE9G,OAHsB;AAK9B+G,eAAW,EAAEN,MALiB;AAO9B;AACA7G,UAAM,EAAE,CARsB;AAU9BoH,WAAO,EAAE,YAAW;AACnB,aAAO5H,KAAK,CAACyC,IAAN,CAAY,IAAZ,CAAP;AACA,KAZ6B;AAc9B;AACA;AACAoF,OAAG,EAAE,UAAUC,GAAV,EAAgB;AAEpB;AACA,UAAKA,GAAG,IAAI,IAAZ,EAAmB;AAClB,eAAO9H,KAAK,CAACyC,IAAN,CAAY,IAAZ,CAAP;AACA,OALmB,CAOpB;;;AACA,aAAOqF,GAAG,GAAG,CAAN,GAAU,KAAMA,GAAG,GAAG,KAAKtH,MAAjB,CAAV,GAAsC,KAAMsH,GAAN,CAA7C;AACA,KAzB6B;AA2B9B;AACA;AACAC,aAAS,EAAE,UAAUC,KAAV,EAAkB;AAE5B;AACA,UAAIC,GAAG,GAAGZ,MAAM,CAACa,KAAP,CAAc,KAAKP,WAAL,EAAd,EAAkCK,KAAlC,CAAV,CAH4B,CAK5B;;AACAC,SAAG,CAACE,UAAJ,GAAiB,IAAjB,CAN4B,CAQ5B;;AACA,aAAOF,GAAP;AACA,KAvC6B;AAyC9B;AACAG,QAAI,EAAE,UAAUC,QAAV,EAAqB;AAC1B,aAAOhB,MAAM,CAACe,IAAP,CAAa,IAAb,EAAmBC,QAAnB,CAAP;AACA,KA5C6B;AA8C9BC,OAAG,EAAE,UAAUD,QAAV,EAAqB;AACzB,aAAO,KAAKN,SAAL,CAAgBV,MAAM,CAACiB,GAAP,CAAY,IAAZ,EAAkB,UAAU/G,IAAV,EAAgBhB,CAAhB,EAAoB;AAC5D,eAAO8H,QAAQ,CAAC5F,IAAT,CAAelB,IAAf,EAAqBhB,CAArB,EAAwBgB,IAAxB,CAAP;AACA,OAFsB,CAAhB,CAAP;AAGA,KAlD6B;AAoD9BvB,SAAK,EAAE,YAAW;AACjB,aAAO,KAAK+H,SAAL,CAAgB/H,KAAK,CAAC6E,KAAN,CAAa,IAAb,EAAmBnC,SAAnB,CAAhB,CAAP;AACA,KAtD6B;AAwD9B6F,SAAK,EAAE,YAAW;AACjB,aAAO,KAAKC,EAAL,CAAS,CAAT,CAAP;AACA,KA1D6B;AA4D9BC,QAAI,EAAE,YAAW;AAChB,aAAO,KAAKD,EAAL,CAAS,CAAC,CAAV,CAAP;AACA,KA9D6B;AAgE9BA,MAAE,EAAE,UAAUjI,CAAV,EAAc;AACjB,UAAImI,GAAG,GAAG,KAAKlI,MAAf;AAAA,UACCmI,CAAC,GAAG,CAACpI,CAAD,IAAOA,CAAC,GAAG,CAAJ,GAAQmI,GAAR,GAAc,CAArB,CADL;AAEA,aAAO,KAAKX,SAAL,CAAgBY,CAAC,IAAI,CAAL,IAAUA,CAAC,GAAGD,GAAd,GAAoB,CAAE,KAAMC,CAAN,CAAF,CAApB,GAAoC,EAApD,CAAP;AACA,KApE6B;AAsE9BC,OAAG,EAAE,YAAW;AACf,aAAO,KAAKT,UAAL,IAAmB,KAAKR,WAAL,EAA1B;AACA,KAxE6B;AA0E9B;AACA;AACAlC,QAAI,EAAEA,IA5EwB;AA6E9BoD,QAAI,EAAEzD,GAAG,CAACyD,IA7EoB;AA8E9BC,UAAM,EAAE1D,GAAG,CAAC0D;AA9EkB,GAA/B;;AAiFAzB,QAAM,CAACpF,MAAP,GAAgBoF,MAAM,CAAC3F,EAAP,CAAUO,MAAV,GAAmB,YAAW;AAC7C,QAAI8G,OAAJ;AAAA,QAAaC,IAAb;AAAA,QAAmBzC,GAAnB;AAAA,QAAwB0C,IAAxB;AAAA,QAA8BC,WAA9B;AAAA,QAA2CC,KAA3C;AAAA,QACCC,MAAM,GAAG1G,SAAS,CAAE,CAAF,CAAT,IAAkB,EAD5B;AAAA,QAECnC,CAAC,GAAG,CAFL;AAAA,QAGCC,MAAM,GAAGkC,SAAS,CAAClC,MAHpB;AAAA,QAIC6I,IAAI,GAAG,KAJR,CAD6C,CAO7C;;AACA,QAAK,OAAOD,MAAP,KAAkB,SAAvB,EAAmC;AAClCC,UAAI,GAAGD,MAAP,CADkC,CAGlC;;AACAA,YAAM,GAAG1G,SAAS,CAAEnC,CAAF,CAAT,IAAkB,EAA3B;AACAA,OAAC;AACD,KAd4C,CAgB7C;;;AACA,QAAK,OAAO6I,MAAP,KAAkB,QAAlB,IAA8B,CAAClD,UAAU,CAAEkD,MAAF,CAA9C,EAA2D;AAC1DA,YAAM,GAAG,EAAT;AACA,KAnB4C,CAqB7C;;;AACA,QAAK7I,CAAC,KAAKC,MAAX,EAAoB;AACnB4I,YAAM,GAAG,IAAT;AACA7I,OAAC;AACD;;AAED,WAAQA,CAAC,GAAGC,MAAZ,EAAoBD,CAAC,EAArB,EAA0B;AAEzB;AACA,UAAK,CAAEwI,OAAO,GAAGrG,SAAS,CAAEnC,CAAF,CAArB,KAAgC,IAArC,EAA4C;AAE3C;AACA,aAAMyI,IAAN,IAAcD,OAAd,EAAwB;AACvBxC,aAAG,GAAG6C,MAAM,CAAEJ,IAAF,CAAZ;AACAC,cAAI,GAAGF,OAAO,CAAEC,IAAF,CAAd,CAFuB,CAIvB;;AACA,cAAKI,MAAM,KAAKH,IAAhB,EAAuB;AACtB;AACA,WAPsB,CASvB;;;AACA,cAAKI,IAAI,IAAIJ,IAAR,KAAkB5B,MAAM,CAACiC,aAAP,CAAsBL,IAAtB,MACpBC,WAAW,GAAGjJ,KAAK,CAACsJ,OAAN,CAAeN,IAAf,CADM,CAAlB,CAAL,EAC6C;AAE5C,gBAAKC,WAAL,EAAmB;AAClBA,yBAAW,GAAG,KAAd;AACAC,mBAAK,GAAG5C,GAAG,IAAItG,KAAK,CAACsJ,OAAN,CAAehD,GAAf,CAAP,GAA8BA,GAA9B,GAAoC,EAA5C;AAEA,aAJD,MAIO;AACN4C,mBAAK,GAAG5C,GAAG,IAAIc,MAAM,CAACiC,aAAP,CAAsB/C,GAAtB,CAAP,GAAqCA,GAArC,GAA2C,EAAnD;AACA,aAR2C,CAU5C;;;AACA6C,kBAAM,CAAEJ,IAAF,CAAN,GAAiB3B,MAAM,CAACpF,MAAP,CAAeoH,IAAf,EAAqBF,KAArB,EAA4BF,IAA5B,CAAjB,CAX4C,CAa7C;AACC,WAfD,MAeO,IAAKA,IAAI,KAAKO,SAAd,EAA0B;AAChCJ,kBAAM,CAAEJ,IAAF,CAAN,GAAiBC,IAAjB;AACA;AACD;AACD;AACD,KA/D4C,CAiE7C;;;AACA,WAAOG,MAAP;AACA,GAnED;;AAqEA/B,QAAM,CAACpF,MAAP,CAAe;AAEd;AACAwH,WAAO,EAAE,WAAW,CAAE7I,OAAO,GAAGgD,IAAI,CAAC8F,MAAL,EAAZ,EAA4BC,OAA5B,CAAqC,KAArC,EAA4C,EAA5C,CAHN;AAKd;AACAC,WAAO,EAAE,IANK;AAQdC,SAAK,EAAE,UAAUC,GAAV,EAAgB;AACtB,YAAM,IAAI5E,KAAJ,CAAW4E,GAAX,CAAN;AACA,KAVa;AAYdC,QAAI,EAAE,YAAW,CAAE,CAZL;AAcdT,iBAAa,EAAE,UAAUnD,GAAV,EAAgB;AAC9B,UAAI6D,KAAJ,EAAWC,IAAX,CAD8B,CAG9B;AACA;;AACA,UAAK,CAAC9D,GAAD,IAAQP,QAAQ,CAACnD,IAAT,CAAe0D,GAAf,MAAyB,iBAAtC,EAA0D;AACzD,eAAO,KAAP;AACA;;AAED6D,WAAK,GAAG3E,QAAQ,CAAEc,GAAF,CAAhB,CAT8B,CAW9B;;AACA,UAAK,CAAC6D,KAAN,EAAc;AACb,eAAO,IAAP;AACA,OAd6B,CAgB9B;;;AACAC,UAAI,GAAGpE,MAAM,CAACpD,IAAP,CAAauH,KAAb,EAAoB,aAApB,KAAuCA,KAAK,CAACrC,WAApD;AACA,aAAO,OAAOsC,IAAP,KAAgB,UAAhB,IAA8BlE,UAAU,CAACtD,IAAX,CAAiBwH,IAAjB,MAA4BjE,oBAAjE;AACA,KAjCa;AAmCdkE,iBAAa,EAAE,UAAU/D,GAAV,EAAgB;AAE9B;AACA;AACA,UAAI6C,IAAJ;;AAEA,WAAMA,IAAN,IAAc7C,GAAd,EAAoB;AACnB,eAAO,KAAP;AACA;;AACD,aAAO,IAAP;AACA,KA7Ca;AA+Cd;AACAgE,cAAU,EAAE,UAAUzD,IAAV,EAAiB;AAC5BD,aAAO,CAAEC,IAAF,CAAP;AACA,KAlDa;AAoDd0B,QAAI,EAAE,UAAUjC,GAAV,EAAekC,QAAf,EAA0B;AAC/B,UAAI7H,MAAJ;AAAA,UAAYD,CAAC,GAAG,CAAhB;;AAEA,UAAK6J,WAAW,CAAEjE,GAAF,CAAhB,EAA0B;AACzB3F,cAAM,GAAG2F,GAAG,CAAC3F,MAAb;;AACA,eAAQD,CAAC,GAAGC,MAAZ,EAAoBD,CAAC,EAArB,EAA0B;AACzB,cAAK8H,QAAQ,CAAC5F,IAAT,CAAe0D,GAAG,CAAE5F,CAAF,CAAlB,EAAyBA,CAAzB,EAA4B4F,GAAG,CAAE5F,CAAF,CAA/B,MAA2C,KAAhD,EAAwD;AACvD;AACA;AACD;AACD,OAPD,MAOO;AACN,aAAMA,CAAN,IAAW4F,GAAX,EAAiB;AAChB,cAAKkC,QAAQ,CAAC5F,IAAT,CAAe0D,GAAG,CAAE5F,CAAF,CAAlB,EAAyBA,CAAzB,EAA4B4F,GAAG,CAAE5F,CAAF,CAA/B,MAA2C,KAAhD,EAAwD;AACvD;AACA;AACD;AACD;;AAED,aAAO4F,GAAP;AACA,KAvEa;AAyEd;AACAkE,QAAI,EAAE,UAAUtD,IAAV,EAAiB;AACtB,aAAOA,IAAI,IAAI,IAAR,GACN,EADM,GAEN,CAAEA,IAAI,GAAG,EAAT,EAAc4C,OAAd,CAAuBlC,KAAvB,EAA8B,EAA9B,CAFD;AAGA,KA9Ea;AAgFd;AACA6C,aAAS,EAAE,UAAUlF,GAAV,EAAemF,OAAf,EAAyB;AACnC,UAAItC,GAAG,GAAGsC,OAAO,IAAI,EAArB;;AAEA,UAAKnF,GAAG,IAAI,IAAZ,EAAmB;AAClB,YAAKgF,WAAW,CAAE9E,MAAM,CAAEF,GAAF,CAAR,CAAhB,EAAoC;AACnCiC,gBAAM,CAACa,KAAP,CAAcD,GAAd,EACC,OAAO7C,GAAP,KAAe,QAAf,GACA,CAAEA,GAAF,CADA,GACUA,GAFX;AAIA,SALD,MAKO;AACNK,cAAI,CAAChD,IAAL,CAAWwF,GAAX,EAAgB7C,GAAhB;AACA;AACD;;AAED,aAAO6C,GAAP;AACA,KAhGa;AAkGduC,WAAO,EAAE,UAAUjJ,IAAV,EAAgB6D,GAAhB,EAAqB7E,CAArB,EAAyB;AACjC,aAAO6E,GAAG,IAAI,IAAP,GAAc,CAAC,CAAf,GAAmBM,OAAO,CAACjD,IAAR,CAAc2C,GAAd,EAAmB7D,IAAnB,EAAyBhB,CAAzB,CAA1B;AACA,KApGa;AAsGd;AACA;AACA2H,SAAK,EAAE,UAAUK,KAAV,EAAiBkC,MAAjB,EAA0B;AAChC,UAAI/B,GAAG,GAAG,CAAC+B,MAAM,CAACjK,MAAlB;AAAA,UACCmI,CAAC,GAAG,CADL;AAAA,UAECpI,CAAC,GAAGgI,KAAK,CAAC/H,MAFX;;AAIA,aAAQmI,CAAC,GAAGD,GAAZ,EAAiBC,CAAC,EAAlB,EAAuB;AACtBJ,aAAK,CAAEhI,CAAC,EAAH,CAAL,GAAekK,MAAM,CAAE9B,CAAF,CAArB;AACA;;AAEDJ,WAAK,CAAC/H,MAAN,GAAeD,CAAf;AAEA,aAAOgI,KAAP;AACA,KApHa;AAsHdmC,QAAI,EAAE,UAAU1C,KAAV,EAAiBK,QAAjB,EAA2BsC,MAA3B,EAAoC;AACzC,UAAIC,eAAJ;AAAA,UACCC,OAAO,GAAG,EADX;AAAA,UAECtK,CAAC,GAAG,CAFL;AAAA,UAGCC,MAAM,GAAGwH,KAAK,CAACxH,MAHhB;AAAA,UAICsK,cAAc,GAAG,CAACH,MAJnB,CADyC,CAOzC;AACA;;AACA,aAAQpK,CAAC,GAAGC,MAAZ,EAAoBD,CAAC,EAArB,EAA0B;AACzBqK,uBAAe,GAAG,CAACvC,QAAQ,CAAEL,KAAK,CAAEzH,CAAF,CAAP,EAAcA,CAAd,CAA3B;;AACA,YAAKqK,eAAe,KAAKE,cAAzB,EAA0C;AACzCD,iBAAO,CAACpF,IAAR,CAAcuC,KAAK,CAAEzH,CAAF,CAAnB;AACA;AACD;;AAED,aAAOsK,OAAP;AACA,KAvIa;AAyId;AACAvC,OAAG,EAAE,UAAUN,KAAV,EAAiBK,QAAjB,EAA2B0C,GAA3B,EAAiC;AACrC,UAAIvK,MAAJ;AAAA,UAAYwK,KAAZ;AAAA,UACCzK,CAAC,GAAG,CADL;AAAA,UAEC0H,GAAG,GAAG,EAFP,CADqC,CAKrC;;AACA,UAAKmC,WAAW,CAAEpC,KAAF,CAAhB,EAA4B;AAC3BxH,cAAM,GAAGwH,KAAK,CAACxH,MAAf;;AACA,eAAQD,CAAC,GAAGC,MAAZ,EAAoBD,CAAC,EAArB,EAA0B;AACzByK,eAAK,GAAG3C,QAAQ,CAAEL,KAAK,CAAEzH,CAAF,CAAP,EAAcA,CAAd,EAAiBwK,GAAjB,CAAhB;;AAEA,cAAKC,KAAK,IAAI,IAAd,EAAqB;AACpB/C,eAAG,CAACxC,IAAJ,CAAUuF,KAAV;AACA;AACD,SAR0B,CAU5B;;AACC,OAXD,MAWO;AACN,aAAMzK,CAAN,IAAWyH,KAAX,EAAmB;AAClBgD,eAAK,GAAG3C,QAAQ,CAAEL,KAAK,CAAEzH,CAAF,CAAP,EAAcA,CAAd,EAAiBwK,GAAjB,CAAhB;;AAEA,cAAKC,KAAK,IAAI,IAAd,EAAqB;AACpB/C,eAAG,CAACxC,IAAJ,CAAUuF,KAAV;AACA;AACD;AACD,OAzBoC,CA2BrC;;;AACA,aAAOxF,MAAM,CAACX,KAAP,CAAc,EAAd,EAAkBoD,GAAlB,CAAP;AACA,KAvKa;AAyKd;AACAgD,QAAI,EAAE,CA1KQ;AA4Kd;AACA;AACAhF,WAAO,EAAEA;AA9KK,GAAf;;AAiLA,MAAK,OAAOiF,MAAP,KAAkB,UAAvB,EAAoC;AACnC7D,UAAM,CAAC3F,EAAP,CAAWwJ,MAAM,CAACC,QAAlB,IAA+B/F,GAAG,CAAE8F,MAAM,CAACC,QAAT,CAAlC;AACA,GAnbgF,CAqbjF;;;AACA9D,QAAM,CAACe,IAAP,CAAa,uEAAuEgD,KAAvE,CAA8E,GAA9E,CAAb,EACA,UAAU7K,CAAV,EAAayI,IAAb,EAAoB;AACnBrD,cAAU,CAAE,aAAaqD,IAAb,GAAoB,GAAtB,CAAV,GAAwCA,IAAI,CAACqC,WAAL,EAAxC;AACA,GAHD;;AAKA,WAASjB,WAAT,CAAsBjE,GAAtB,EAA4B;AAE3B;AACA;AACA;AACA;AACA,QAAI3F,MAAM,GAAG,CAAC,CAAC2F,GAAF,IAAS,YAAYA,GAArB,IAA4BA,GAAG,CAAC3F,MAA7C;AAAA,QACC0C,IAAI,GAAGkE,MAAM,CAAEjB,GAAF,CADd;;AAGA,QAAKD,UAAU,CAAEC,GAAF,CAAV,IAAqBE,QAAQ,CAAEF,GAAF,CAAlC,EAA4C;AAC3C,aAAO,KAAP;AACA;;AAED,WAAOjD,IAAI,KAAK,OAAT,IAAoB1C,MAAM,KAAK,CAA/B,IACN,OAAOA,MAAP,KAAkB,QAAlB,IAA8BA,MAAM,GAAG,CAAvC,IAA8CA,MAAM,GAAG,CAAX,IAAkB2F,GAD/D;AAEA;;AACD,MAAImF,MAAM;AACV;;;;;;;;;;AAUC,YAAU/I,MAAV,EAAmB;AAEpB,QAAIhC,CAAJ;AAAA,QACC0F,OADD;AAAA,QAECsF,IAFD;AAAA,QAGCC,OAHD;AAAA,QAICC,KAJD;AAAA,QAKCC,QALD;AAAA,QAMCC,OAND;AAAA,QAOCC,MAPD;AAAA,QAQCC,gBARD;AAAA,QASCC,SATD;AAAA,QAUCC,YAVD;AAAA,QAYC;AACAC,eAbD;AAAA,QAcClM,QAdD;AAAA,QAeCmM,OAfD;AAAA,QAgBCC,cAhBD;AAAA,QAiBCC,SAjBD;AAAA,QAkBCC,aAlBD;AAAA,QAmBCvB,OAnBD;AAAA,QAoBCwB,QApBD;AAAA,QAsBC;AACA5C,WAAO,GAAG,WAAW,IAAI,IAAI6C,IAAJ,EAvB1B;AAAA,QAwBCC,YAAY,GAAGhK,MAAM,CAACzC,QAxBvB;AAAA,QAyBC0M,OAAO,GAAG,CAzBX;AAAA,QA0BCC,IAAI,GAAG,CA1BR;AAAA,QA2BCC,UAAU,GAAGC,WAAW,EA3BzB;AAAA,QA4BCC,UAAU,GAAGD,WAAW,EA5BzB;AAAA,QA6BCE,aAAa,GAAGF,WAAW,EA7B5B;AAAA,QA8BCG,SAAS,GAAG,UAAUC,CAAV,EAAaC,CAAb,EAAiB;AAC5B,UAAKD,CAAC,KAAKC,CAAX,EAAe;AACdjB,oBAAY,GAAG,IAAf;AACA;;AACD,aAAO,CAAP;AACA,KAnCF;AAAA,QAqCC;AACAlG,UAAM,GAAI,EAAD,CAAKC,cAtCf;AAAA,QAuCCV,GAAG,GAAG,EAvCP;AAAA,QAwCC6H,GAAG,GAAG7H,GAAG,CAAC6H,GAxCX;AAAA,QAyCCC,WAAW,GAAG9H,GAAG,CAACK,IAzCnB;AAAA,QA0CCA,IAAI,GAAGL,GAAG,CAACK,IA1CZ;AAAA,QA2CCzF,KAAK,GAAGoF,GAAG,CAACpF,KA3Cb;AAAA,QA4CC;AACA;AACA0F,WAAO,GAAG,UAAUyH,IAAV,EAAgB5L,IAAhB,EAAuB;AAChC,UAAIhB,CAAC,GAAG,CAAR;AAAA,UACCmI,GAAG,GAAGyE,IAAI,CAAC3M,MADZ;;AAEA,aAAQD,CAAC,GAAGmI,GAAZ,EAAiBnI,CAAC,EAAlB,EAAuB;AACtB,YAAK4M,IAAI,CAAC5M,CAAD,CAAJ,KAAYgB,IAAjB,EAAwB;AACvB,iBAAOhB,CAAP;AACA;AACD;;AACD,aAAO,CAAC,CAAR;AACA,KAvDF;AAAA,QAyDC6M,QAAQ,GAAG,4HAzDZ;AAAA,QA2DC;AAEA;AACAC,cAAU,GAAG,qBA9Dd;AAAA,QAgEC;AACAC,cAAU,GAAG,+BAjEd;AAAA,QAmEC;AACAC,cAAU,GAAG,QAAQF,UAAR,GAAqB,IAArB,GAA4BC,UAA5B,GAAyC,MAAzC,GAAkDD,UAAlD,GACZ;AACA,mBAFY,GAEMA,UAFN,GAGZ;AACA,8DAJY,GAIiDC,UAJjD,GAI8D,MAJ9D,GAIuED,UAJvE,GAKZ,MAzEF;AAAA,QA2ECG,OAAO,GAAG,OAAOF,UAAP,GAAoB,UAApB,GACT;AACA;AACA,2DAHS,GAIT;AACA,8BALS,GAKoBC,UALpB,GAKiC,MALjC,GAMT;AACA,QAPS,GAQT,QAnFF;AAAA,QAqFC;AACAE,eAAW,GAAG,IAAIC,MAAJ,CAAYL,UAAU,GAAG,GAAzB,EAA8B,GAA9B,CAtFf;AAAA,QAuFC5F,KAAK,GAAG,IAAIiG,MAAJ,CAAY,MAAML,UAAN,GAAmB,6BAAnB,GAAmDA,UAAnD,GAAgE,IAA5E,EAAkF,GAAlF,CAvFT;AAAA,QAyFCM,MAAM,GAAG,IAAID,MAAJ,CAAY,MAAML,UAAN,GAAmB,IAAnB,GAA0BA,UAA1B,GAAuC,GAAnD,CAzFV;AAAA,QA0FCO,YAAY,GAAG,IAAIF,MAAJ,CAAY,MAAML,UAAN,GAAmB,UAAnB,GAAgCA,UAAhC,GAA6C,GAA7C,GAAmDA,UAAnD,GAAgE,GAA5E,CA1FhB;AAAA,QA4FCQ,gBAAgB,GAAG,IAAIH,MAAJ,CAAY,MAAML,UAAN,GAAmB,gBAAnB,GAAsCA,UAAtC,GAAmD,MAA/D,EAAuE,GAAvE,CA5FpB;AAAA,QA8FCS,OAAO,GAAG,IAAIJ,MAAJ,CAAYF,OAAZ,CA9FX;AAAA,QA+FCO,WAAW,GAAG,IAAIL,MAAJ,CAAY,MAAMJ,UAAN,GAAmB,GAA/B,CA/Ff;AAAA,QAiGCU,SAAS,GAAG;AACX,YAAM,IAAIN,MAAJ,CAAY,QAAQJ,UAAR,GAAqB,GAAjC,CADK;AAEX,eAAS,IAAII,MAAJ,CAAY,UAAUJ,UAAV,GAAuB,GAAnC,CAFE;AAGX,aAAO,IAAII,MAAJ,CAAY,OAAOJ,UAAP,GAAoB,OAAhC,CAHI;AAIX,cAAQ,IAAII,MAAJ,CAAY,MAAMH,UAAlB,CAJG;AAKX,gBAAU,IAAIG,MAAJ,CAAY,MAAMF,OAAlB,CALC;AAMX,eAAS,IAAIE,MAAJ,CAAY,2DAA2DL,UAA3D,GACpB,8BADoB,GACaA,UADb,GAC0B,aAD1B,GAC0CA,UAD1C,GAEpB,YAFoB,GAELA,UAFK,GAEQ,QAFpB,EAE8B,GAF9B,CANE;AASX,cAAQ,IAAIK,MAAJ,CAAY,SAASN,QAAT,GAAoB,IAAhC,EAAsC,GAAtC,CATG;AAUX;AACA;AACA,sBAAgB,IAAIM,MAAJ,CAAY,MAAML,UAAN,GAAmB,kDAAnB,GAC3BA,UAD2B,GACd,kBADc,GACOA,UADP,GACoB,kBADhC,EACoD,GADpD;AAZL,KAjGb;AAAA,QAiHCY,OAAO,GAAG,qCAjHX;AAAA,QAkHCC,OAAO,GAAG,QAlHX;AAAA,QAoHCC,OAAO,GAAG,wBApHX;AAAA,QAsHC;AACAC,cAAU,GAAG,kCAvHd;AAAA,QAyHCC,QAAQ,GAAG,MAzHZ;AAAA,QA2HC;AACA;AACAC,aAAS,GAAG,IAAIZ,MAAJ,CAAY,uBAAuBL,UAAvB,GAAoC,KAApC,GAA4CA,UAA5C,GAAyD,MAArE,EAA6E,IAA7E,CA7Hb;AAAA,QA8HCkB,SAAS,GAAG,UAAUC,CAAV,EAAaC,OAAb,EAAsBC,iBAAtB,EAA0C;AACrD,UAAIC,IAAI,GAAG,OAAOF,OAAP,GAAiB,OAA5B,CADqD,CAErD;AACA;AACA;;AACA,aAAOE,IAAI,KAAKA,IAAT,IAAiBD,iBAAjB,GACND,OADM,GAENE,IAAI,GAAG,CAAP,GACC;AACAC,YAAM,CAACC,YAAP,CAAqBF,IAAI,GAAG,OAA5B,CAFD,GAGC;AACAC,YAAM,CAACC,YAAP,CAAqBF,IAAI,IAAI,EAAR,GAAa,MAAlC,EAA0CA,IAAI,GAAG,KAAP,GAAe,MAAzD,CANF;AAOA,KA1IF;AAAA,QA4IC;AACA;AACAG,cAAU,GAAG,qDA9Id;AAAA,QA+ICC,UAAU,GAAG,UAAUC,EAAV,EAAcC,WAAd,EAA4B;AACxC,UAAKA,WAAL,EAAmB;AAElB;AACA,YAAKD,EAAE,KAAK,IAAZ,EAAmB;AAClB,iBAAO,QAAP;AACA,SALiB,CAOlB;;;AACA,eAAOA,EAAE,CAAChP,KAAH,CAAU,CAAV,EAAa,CAAC,CAAd,IAAoB,IAApB,GAA2BgP,EAAE,CAACE,UAAH,CAAeF,EAAE,CAACxO,MAAH,GAAY,CAA3B,EAA+BoF,QAA/B,CAAyC,EAAzC,CAA3B,GAA2E,GAAlF;AACA,OAVuC,CAYxC;;;AACA,aAAO,OAAOoJ,EAAd;AACA,KA7JF;AAAA,QA+JC;AACA;AACA;AACA;AACAG,iBAAa,GAAG,YAAW;AAC1BnD,iBAAW;AACX,KArKF;AAAA,QAuKCoD,gBAAgB,GAAGC,aAAa,CAC/B,UAAU9N,IAAV,EAAiB;AAChB,aAAOA,IAAI,CAAC+N,QAAL,KAAkB,IAAlB,KAA2B,UAAU/N,IAAV,IAAkB,WAAWA,IAAxD,CAAP;AACA,KAH8B,EAI/B;AAAEgO,SAAG,EAAE,YAAP;AAAqBC,UAAI,EAAE;AAA3B,KAJ+B,CAvKjC,CAFoB,CAgLpB;;;AACA,QAAI;AACH/J,UAAI,CAACZ,KAAL,CACEO,GAAG,GAAGpF,KAAK,CAACyC,IAAN,CAAY8J,YAAY,CAACkD,UAAzB,CADR,EAEClD,YAAY,CAACkD,UAFd,EADG,CAKH;AACA;;AACArK,SAAG,CAAEmH,YAAY,CAACkD,UAAb,CAAwBjP,MAA1B,CAAH,CAAsC4F,QAAtC;AACA,KARD,CAQE,OAAQsJ,CAAR,EAAY;AACbjK,UAAI,GAAG;AAAEZ,aAAK,EAAEO,GAAG,CAAC5E,MAAJ,GAEf;AACA,kBAAU4I,MAAV,EAAkBuG,GAAlB,EAAwB;AACvBzC,qBAAW,CAACrI,KAAZ,CAAmBuE,MAAnB,EAA2BpJ,KAAK,CAACyC,IAAN,CAAWkN,GAAX,CAA3B;AACA,SALc,GAOf;AACA;AACA,kBAAUvG,MAAV,EAAkBuG,GAAlB,EAAwB;AACvB,cAAIhH,CAAC,GAAGS,MAAM,CAAC5I,MAAf;AAAA,cACCD,CAAC,GAAG,CADL,CADuB,CAGvB;;AACA,iBAAS6I,MAAM,CAACT,CAAC,EAAF,CAAN,GAAcgH,GAAG,CAACpP,CAAC,EAAF,CAA1B,EAAmC,CAAE;;AACrC6I,gBAAM,CAAC5I,MAAP,GAAgBmI,CAAC,GAAG,CAApB;AACA;AAfK,OAAP;AAiBA;;AAED,aAAS2C,MAAT,CAAiBhE,QAAjB,EAA2BC,OAA3B,EAAoCgD,OAApC,EAA6CqF,IAA7C,EAAoD;AACnD,UAAIC,CAAJ;AAAA,UAAOtP,CAAP;AAAA,UAAUgB,IAAV;AAAA,UAAgBuO,GAAhB;AAAA,UAAqBC,KAArB;AAAA,UAA4BC,MAA5B;AAAA,UAAoCC,WAApC;AAAA,UACCC,UAAU,GAAG3I,OAAO,IAAIA,OAAO,CAAC4I,aADjC;AAAA,UAGC;AACA/J,cAAQ,GAAGmB,OAAO,GAAGA,OAAO,CAACnB,QAAX,GAAsB,CAJzC;AAMAmE,aAAO,GAAGA,OAAO,IAAI,EAArB,CAPmD,CASnD;;AACA,UAAK,OAAOjD,QAAP,KAAoB,QAApB,IAAgC,CAACA,QAAjC,IACJlB,QAAQ,KAAK,CAAb,IAAkBA,QAAQ,KAAK,CAA/B,IAAoCA,QAAQ,KAAK,EADlD,EACuD;AAEtD,eAAOmE,OAAP;AACA,OAdkD,CAgBnD;;;AACA,UAAK,CAACqF,IAAN,EAAa;AAEZ,YAAK,CAAErI,OAAO,GAAGA,OAAO,CAAC4I,aAAR,IAAyB5I,OAA5B,GAAsCgF,YAA/C,MAAkEzM,QAAvE,EAAkF;AACjFkM,qBAAW,CAAEzE,OAAF,CAAX;AACA;;AACDA,eAAO,GAAGA,OAAO,IAAIzH,QAArB;;AAEA,YAAKoM,cAAL,EAAsB;AAErB;AACA;AACA,cAAK9F,QAAQ,KAAK,EAAb,KAAoB2J,KAAK,GAAG3B,UAAU,CAACgC,IAAX,CAAiB9I,QAAjB,CAA5B,CAAL,EAAgE;AAE/D;AACA,gBAAMuI,CAAC,GAAGE,KAAK,CAAC,CAAD,CAAf,EAAsB;AAErB;AACA,kBAAK3J,QAAQ,KAAK,CAAlB,EAAsB;AACrB,oBAAM7E,IAAI,GAAGgG,OAAO,CAAC8I,cAAR,CAAwBR,CAAxB,CAAb,EAA4C;AAE3C;AACA;AACA;AACA,sBAAKtO,IAAI,CAAC+O,EAAL,KAAYT,CAAjB,EAAqB;AACpBtF,2BAAO,CAAC9E,IAAR,CAAclE,IAAd;AACA,2BAAOgJ,OAAP;AACA;AACD,iBATD,MASO;AACN,yBAAOA,OAAP;AACA,iBAZoB,CActB;;AACC,eAfD,MAeO;AAEN;AACA;AACA;AACA,oBAAK2F,UAAU,KAAK3O,IAAI,GAAG2O,UAAU,CAACG,cAAX,CAA2BR,CAA3B,CAAZ,CAAV,IACJxD,QAAQ,CAAE9E,OAAF,EAAWhG,IAAX,CADJ,IAEJA,IAAI,CAAC+O,EAAL,KAAYT,CAFb,EAEiB;AAEhBtF,yBAAO,CAAC9E,IAAR,CAAclE,IAAd;AACA,yBAAOgJ,OAAP;AACA;AACD,eA9BoB,CAgCtB;;AACC,aAjCD,MAiCO,IAAKwF,KAAK,CAAC,CAAD,CAAV,EAAgB;AACtBtK,kBAAI,CAACZ,KAAL,CAAY0F,OAAZ,EAAqBhD,OAAO,CAACgJ,oBAAR,CAA8BjJ,QAA9B,CAArB;AACA,qBAAOiD,OAAP,CAFsB,CAIvB;AACC,aALM,MAKA,IAAK,CAACsF,CAAC,GAAGE,KAAK,CAAC,CAAD,CAAV,KAAkB9J,OAAO,CAACuK,sBAA1B,IACXjJ,OAAO,CAACiJ,sBADF,EAC2B;AAEjC/K,kBAAI,CAACZ,KAAL,CAAY0F,OAAZ,EAAqBhD,OAAO,CAACiJ,sBAAR,CAAgCX,CAAhC,CAArB;AACA,qBAAOtF,OAAP;AACA;AACD,WAnDoB,CAqDrB;;;AACA,cAAKtE,OAAO,CAACwK,GAAR,IACJ,CAAC5D,aAAa,CAAEvF,QAAQ,GAAG,GAAb,CADV,KAEH,CAAC6E,SAAD,IAAc,CAACA,SAAS,CAACuE,IAAV,CAAgBpJ,QAAhB,CAFZ,CAAL,EAE+C;AAE9C,gBAAKlB,QAAQ,KAAK,CAAlB,EAAsB;AACrB8J,wBAAU,GAAG3I,OAAb;AACA0I,yBAAW,GAAG3I,QAAd,CAFqB,CAItB;AACA;AACA;AACA;AACC,aARD,MAQO,IAAKC,OAAO,CAACoJ,QAAR,CAAiBtF,WAAjB,OAAmC,QAAxC,EAAmD;AAEzD;AACA,kBAAMyE,GAAG,GAAGvI,OAAO,CAACqJ,YAAR,CAAsB,IAAtB,CAAZ,EAA4C;AAC3Cd,mBAAG,GAAGA,GAAG,CAACnG,OAAJ,CAAamF,UAAb,EAAyBC,UAAzB,CAAN;AACA,eAFD,MAEO;AACNxH,uBAAO,CAACsJ,YAAR,CAAsB,IAAtB,EAA6Bf,GAAG,GAAGrG,OAAnC;AACA,eAPwD,CASzD;;;AACAuG,oBAAM,GAAGtE,QAAQ,CAAEpE,QAAF,CAAjB;AACA/G,eAAC,GAAGyP,MAAM,CAACxP,MAAX;;AACA,qBAAQD,CAAC,EAAT,EAAc;AACbyP,sBAAM,CAACzP,CAAD,CAAN,GAAY,MAAMuP,GAAN,GAAY,GAAZ,GAAkBgB,UAAU,CAAEd,MAAM,CAACzP,CAAD,CAAR,CAAxC;AACA;;AACD0P,yBAAW,GAAGD,MAAM,CAACe,IAAP,CAAa,GAAb,CAAd,CAfyD,CAiBzD;;AACAb,wBAAU,GAAG7B,QAAQ,CAACqC,IAAT,CAAepJ,QAAf,KAA6B0J,WAAW,CAAEzJ,OAAO,CAACL,UAAV,CAAxC,IACZK,OADD;AAEA;;AAED,gBAAK0I,WAAL,EAAmB;AAClB,kBAAI;AACHxK,oBAAI,CAACZ,KAAL,CAAY0F,OAAZ,EACC2F,UAAU,CAACe,gBAAX,CAA6BhB,WAA7B,CADD;AAGA,uBAAO1F,OAAP;AACA,eALD,CAKE,OAAQ2G,QAAR,EAAmB,CACpB,CAND,SAMU;AACT,oBAAKpB,GAAG,KAAKrG,OAAb,EAAuB;AACtBlC,yBAAO,CAAC4J,eAAR,CAAyB,IAAzB;AACA;AACD;AACD;AACD;AACD;AACD,OA/HkD,CAiInD;;;AACA,aAAOvF,MAAM,CAAEtE,QAAQ,CAACqC,OAAT,CAAkBlC,KAAlB,EAAyB,IAAzB,CAAF,EAAmCF,OAAnC,EAA4CgD,OAA5C,EAAqDqF,IAArD,CAAb;AACA;AAED;;;;;;;;AAMA,aAASjD,WAAT,GAAuB;AACtB,UAAIyE,IAAI,GAAG,EAAX;;AAEA,eAASC,KAAT,CAAgBC,GAAhB,EAAqBtG,KAArB,EAA6B;AAC5B;AACA,YAAKoG,IAAI,CAAC3L,IAAL,CAAW6L,GAAG,GAAG,GAAjB,IAAyB/F,IAAI,CAACgG,WAAnC,EAAiD;AAChD;AACA,iBAAOF,KAAK,CAAED,IAAI,CAACI,KAAL,EAAF,CAAZ;AACA;;AACD,eAAQH,KAAK,CAAEC,GAAG,GAAG,GAAR,CAAL,GAAqBtG,KAA7B;AACA;;AACD,aAAOqG,KAAP;AACA;AAED;;;;;;AAIA,aAASI,YAAT,CAAuB/P,EAAvB,EAA4B;AAC3BA,QAAE,CAAE+H,OAAF,CAAF,GAAgB,IAAhB;AACA,aAAO/H,EAAP;AACA;AAED;;;;;;AAIA,aAASgQ,MAAT,CAAiBhQ,EAAjB,EAAsB;AACrB,UAAIiQ,EAAE,GAAG7R,QAAQ,CAACgH,aAAT,CAAuB,UAAvB,CAAT;;AAEA,UAAI;AACH,eAAO,CAAC,CAACpF,EAAE,CAAEiQ,EAAF,CAAX;AACA,OAFD,CAEE,OAAOjC,CAAP,EAAU;AACX,eAAO,KAAP;AACA,OAJD,SAIU;AACT;AACA,YAAKiC,EAAE,CAACzK,UAAR,EAAqB;AACpByK,YAAE,CAACzK,UAAH,CAAcC,WAAd,CAA2BwK,EAA3B;AACA,SAJQ,CAKT;;;AACAA,UAAE,GAAG,IAAL;AACA;AACD;AAED;;;;;;;AAKA,aAASC,SAAT,CAAoBC,KAApB,EAA2B9Q,OAA3B,EAAqC;AACpC,UAAIqE,GAAG,GAAGyM,KAAK,CAACzG,KAAN,CAAY,GAAZ,CAAV;AAAA,UACC7K,CAAC,GAAG6E,GAAG,CAAC5E,MADT;;AAGA,aAAQD,CAAC,EAAT,EAAc;AACbgL,YAAI,CAACuG,UAAL,CAAiB1M,GAAG,CAAC7E,CAAD,CAApB,IAA4BQ,OAA5B;AACA;AACD;AAED;;;;;;;;AAMA,aAASgR,YAAT,CAAuBhF,CAAvB,EAA0BC,CAA1B,EAA8B;AAC7B,UAAIgF,GAAG,GAAGhF,CAAC,IAAID,CAAf;AAAA,UACCkF,IAAI,GAAGD,GAAG,IAAIjF,CAAC,CAAC3G,QAAF,KAAe,CAAtB,IAA2B4G,CAAC,CAAC5G,QAAF,KAAe,CAA1C,IACN2G,CAAC,CAACmF,WAAF,GAAgBlF,CAAC,CAACkF,WAFpB,CAD6B,CAK7B;;AACA,UAAKD,IAAL,EAAY;AACX,eAAOA,IAAP;AACA,OAR4B,CAU7B;;;AACA,UAAKD,GAAL,EAAW;AACV,eAASA,GAAG,GAAGA,GAAG,CAACG,WAAnB,EAAkC;AACjC,cAAKH,GAAG,KAAKhF,CAAb,EAAiB;AAChB,mBAAO,CAAC,CAAR;AACA;AACD;AACD;;AAED,aAAOD,CAAC,GAAG,CAAH,GAAO,CAAC,CAAhB;AACA;AAED;;;;;;AAIA,aAASqF,iBAAT,CAA4BlP,IAA5B,EAAmC;AAClC,aAAO,UAAU3B,IAAV,EAAiB;AACvB,YAAIyH,IAAI,GAAGzH,IAAI,CAACoP,QAAL,CAActF,WAAd,EAAX;AACA,eAAOrC,IAAI,KAAK,OAAT,IAAoBzH,IAAI,CAAC2B,IAAL,KAAcA,IAAzC;AACA,OAHD;AAIA;AAED;;;;;;AAIA,aAASmP,kBAAT,CAA6BnP,IAA7B,EAAoC;AACnC,aAAO,UAAU3B,IAAV,EAAiB;AACvB,YAAIyH,IAAI,GAAGzH,IAAI,CAACoP,QAAL,CAActF,WAAd,EAAX;AACA,eAAO,CAACrC,IAAI,KAAK,OAAT,IAAoBA,IAAI,KAAK,QAA9B,KAA2CzH,IAAI,CAAC2B,IAAL,KAAcA,IAAhE;AACA,OAHD;AAIA;AAED;;;;;;AAIA,aAASoP,oBAAT,CAA+BhD,QAA/B,EAA0C;AAEzC;AACA,aAAO,UAAU/N,IAAV,EAAiB;AAEvB;AACA;AACA;AACA,YAAK,UAAUA,IAAf,EAAsB;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAKA,IAAI,CAAC2F,UAAL,IAAmB3F,IAAI,CAAC+N,QAAL,KAAkB,KAA1C,EAAkD;AAEjD;AACA,gBAAK,WAAW/N,IAAhB,EAAuB;AACtB,kBAAK,WAAWA,IAAI,CAAC2F,UAArB,EAAkC;AACjC,uBAAO3F,IAAI,CAAC2F,UAAL,CAAgBoI,QAAhB,KAA6BA,QAApC;AACA,eAFD,MAEO;AACN,uBAAO/N,IAAI,CAAC+N,QAAL,KAAkBA,QAAzB;AACA;AACD,aATgD,CAWjD;AACA;;;AACA,mBAAO/N,IAAI,CAACgR,UAAL,KAAoBjD,QAApB,IAEN;;AACA;AACA/N,gBAAI,CAACgR,UAAL,KAAoB,CAACjD,QAArB,IACCF,gBAAgB,CAAE7N,IAAF,CAAhB,KAA6B+N,QAL/B;AAMA;;AAED,iBAAO/N,IAAI,CAAC+N,QAAL,KAAkBA,QAAzB,CA9BqB,CAgCtB;AACA;AACA;AACC,SAnCD,MAmCO,IAAK,WAAW/N,IAAhB,EAAuB;AAC7B,iBAAOA,IAAI,CAAC+N,QAAL,KAAkBA,QAAzB;AACA,SA1CsB,CA4CvB;;;AACA,eAAO,KAAP;AACA,OA9CD;AA+CA;AAED;;;;;;AAIA,aAASkD,sBAAT,CAAiC9Q,EAAjC,EAAsC;AACrC,aAAO+P,YAAY,CAAC,UAAUgB,QAAV,EAAqB;AACxCA,gBAAQ,GAAG,CAACA,QAAZ;AACA,eAAOhB,YAAY,CAAC,UAAU7B,IAAV,EAAgB/E,OAAhB,EAA0B;AAC7C,cAAIlC,CAAJ;AAAA,cACC+J,YAAY,GAAGhR,EAAE,CAAE,EAAF,EAAMkO,IAAI,CAACpP,MAAX,EAAmBiS,QAAnB,CADlB;AAAA,cAEClS,CAAC,GAAGmS,YAAY,CAAClS,MAFlB,CAD6C,CAK7C;;AACA,iBAAQD,CAAC,EAAT,EAAc;AACb,gBAAKqP,IAAI,CAAGjH,CAAC,GAAG+J,YAAY,CAACnS,CAAD,CAAnB,CAAT,EAAqC;AACpCqP,kBAAI,CAACjH,CAAD,CAAJ,GAAU,EAAEkC,OAAO,CAAClC,CAAD,CAAP,GAAaiH,IAAI,CAACjH,CAAD,CAAnB,CAAV;AACA;AACD;AACD,SAXkB,CAAnB;AAYA,OAdkB,CAAnB;AAeA;AAED;;;;;;;AAKA,aAASqI,WAAT,CAAsBzJ,OAAtB,EAAgC;AAC/B,aAAOA,OAAO,IAAI,OAAOA,OAAO,CAACgJ,oBAAf,KAAwC,WAAnD,IAAkEhJ,OAAzE;AACA,KAzhBmB,CA2hBpB;;;AACAtB,WAAO,GAAGqF,MAAM,CAACrF,OAAP,GAAiB,EAA3B;AAEA;;;;;;AAKAwF,SAAK,GAAGH,MAAM,CAACG,KAAP,GAAe,UAAUlK,IAAV,EAAiB;AACvC;AACA;AACA,UAAIoR,eAAe,GAAGpR,IAAI,IAAI,CAACA,IAAI,CAAC4O,aAAL,IAAsB5O,IAAvB,EAA6BoR,eAA3D;AACA,aAAOA,eAAe,GAAGA,eAAe,CAAChC,QAAhB,KAA6B,MAAhC,GAAyC,KAA/D;AACA,KALD;AAOA;;;;;;;AAKA3E,eAAW,GAAGV,MAAM,CAACU,WAAP,GAAqB,UAAUpF,IAAV,EAAiB;AACnD,UAAIgM,UAAJ;AAAA,UAAgBC,SAAhB;AAAA,UACClM,GAAG,GAAGC,IAAI,GAAGA,IAAI,CAACuJ,aAAL,IAAsBvJ,IAAzB,GAAgC2F,YAD3C,CADmD,CAInD;;AACA,UAAK5F,GAAG,KAAK7G,QAAR,IAAoB6G,GAAG,CAACP,QAAJ,KAAiB,CAArC,IAA0C,CAACO,GAAG,CAACgM,eAApD,EAAsE;AACrE,eAAO7S,QAAP;AACA,OAPkD,CASnD;;;AACAA,cAAQ,GAAG6G,GAAX;AACAsF,aAAO,GAAGnM,QAAQ,CAAC6S,eAAnB;AACAzG,oBAAc,GAAG,CAACT,KAAK,CAAE3L,QAAF,CAAvB,CAZmD,CAcnD;AACA;;AACA,UAAKyM,YAAY,KAAKzM,QAAjB,KACH+S,SAAS,GAAG/S,QAAQ,CAACgT,WADlB,KACkCD,SAAS,CAACxO,GAAV,KAAkBwO,SADzD,EACqE;AAEpE;AACA,YAAKA,SAAS,CAAC/R,gBAAf,EAAkC;AACjC+R,mBAAS,CAAC/R,gBAAV,CAA4B,QAA5B,EAAsCqO,aAAtC,EAAqD,KAArD,EADiC,CAGlC;AACC,SAJD,MAIO,IAAK0D,SAAS,CAACE,WAAf,EAA6B;AACnCF,mBAAS,CAACE,WAAV,CAAuB,UAAvB,EAAmC5D,aAAnC;AACA;AACD;AAED;;AAGA;AACA;AACA;;;AACAlJ,aAAO,CAACsH,UAAR,GAAqBmE,MAAM,CAAC,UAAUC,EAAV,EAAe;AAC1CA,UAAE,CAACqB,SAAH,GAAe,GAAf;AACA,eAAO,CAACrB,EAAE,CAACf,YAAH,CAAgB,WAAhB,CAAR;AACA,OAH0B,CAA3B;AAKA;;AAGA;;AACA3K,aAAO,CAACsK,oBAAR,GAA+BmB,MAAM,CAAC,UAAUC,EAAV,EAAe;AACpDA,UAAE,CAAC1K,WAAH,CAAgBnH,QAAQ,CAACmT,aAAT,CAAuB,EAAvB,CAAhB;AACA,eAAO,CAACtB,EAAE,CAACpB,oBAAH,CAAwB,GAAxB,EAA6B/P,MAArC;AACA,OAHoC,CAArC,CA5CmD,CAiDnD;;AACAyF,aAAO,CAACuK,sBAAR,GAAiCrC,OAAO,CAACuC,IAAR,CAAc5Q,QAAQ,CAAC0Q,sBAAvB,CAAjC,CAlDmD,CAoDnD;AACA;AACA;AACA;;AACAvK,aAAO,CAACiN,OAAR,GAAkBxB,MAAM,CAAC,UAAUC,EAAV,EAAe;AACvC1F,eAAO,CAAChF,WAAR,CAAqB0K,EAArB,EAA0BrB,EAA1B,GAA+B7G,OAA/B;AACA,eAAO,CAAC3J,QAAQ,CAACqT,iBAAV,IAA+B,CAACrT,QAAQ,CAACqT,iBAAT,CAA4B1J,OAA5B,EAAsCjJ,MAA7E;AACA,OAHuB,CAAxB,CAxDmD,CA6DnD;;AACA,UAAKyF,OAAO,CAACiN,OAAb,EAAuB;AACtB3H,YAAI,CAAC6H,MAAL,CAAY,IAAZ,IAAoB,UAAU9C,EAAV,EAAe;AAClC,cAAI+C,MAAM,GAAG/C,EAAE,CAAC3G,OAAH,CAAY2E,SAAZ,EAAuBC,SAAvB,CAAb;AACA,iBAAO,UAAUhN,IAAV,EAAiB;AACvB,mBAAOA,IAAI,CAACqP,YAAL,CAAkB,IAAlB,MAA4ByC,MAAnC;AACA,WAFD;AAGA,SALD;;AAMA9H,YAAI,CAAC+H,IAAL,CAAU,IAAV,IAAkB,UAAUhD,EAAV,EAAc/I,OAAd,EAAwB;AACzC,cAAK,OAAOA,OAAO,CAAC8I,cAAf,KAAkC,WAAlC,IAAiDnE,cAAtD,EAAuE;AACtE,gBAAI3K,IAAI,GAAGgG,OAAO,CAAC8I,cAAR,CAAwBC,EAAxB,CAAX;AACA,mBAAO/O,IAAI,GAAG,CAAEA,IAAF,CAAH,GAAc,EAAzB;AACA;AACD,SALD;AAMA,OAbD,MAaO;AACNgK,YAAI,CAAC6H,MAAL,CAAY,IAAZ,IAAqB,UAAU9C,EAAV,EAAe;AACnC,cAAI+C,MAAM,GAAG/C,EAAE,CAAC3G,OAAH,CAAY2E,SAAZ,EAAuBC,SAAvB,CAAb;AACA,iBAAO,UAAUhN,IAAV,EAAiB;AACvB,gBAAIqF,IAAI,GAAG,OAAOrF,IAAI,CAACgS,gBAAZ,KAAiC,WAAjC,IACVhS,IAAI,CAACgS,gBAAL,CAAsB,IAAtB,CADD;AAEA,mBAAO3M,IAAI,IAAIA,IAAI,CAACoE,KAAL,KAAeqI,MAA9B;AACA,WAJD;AAKA,SAPD,CADM,CAUN;AACA;;;AACA9H,YAAI,CAAC+H,IAAL,CAAU,IAAV,IAAkB,UAAUhD,EAAV,EAAc/I,OAAd,EAAwB;AACzC,cAAK,OAAOA,OAAO,CAAC8I,cAAf,KAAkC,WAAlC,IAAiDnE,cAAtD,EAAuE;AACtE,gBAAItF,IAAJ;AAAA,gBAAUrG,CAAV;AAAA,gBAAayH,KAAb;AAAA,gBACCzG,IAAI,GAAGgG,OAAO,CAAC8I,cAAR,CAAwBC,EAAxB,CADR;;AAGA,gBAAK/O,IAAL,EAAY;AAEX;AACAqF,kBAAI,GAAGrF,IAAI,CAACgS,gBAAL,CAAsB,IAAtB,CAAP;;AACA,kBAAK3M,IAAI,IAAIA,IAAI,CAACoE,KAAL,KAAesF,EAA5B,EAAiC;AAChC,uBAAO,CAAE/O,IAAF,CAAP;AACA,eANU,CAQX;;;AACAyG,mBAAK,GAAGT,OAAO,CAAC4L,iBAAR,CAA2B7C,EAA3B,CAAR;AACA/P,eAAC,GAAG,CAAJ;;AACA,qBAASgB,IAAI,GAAGyG,KAAK,CAACzH,CAAC,EAAF,CAArB,EAA8B;AAC7BqG,oBAAI,GAAGrF,IAAI,CAACgS,gBAAL,CAAsB,IAAtB,CAAP;;AACA,oBAAK3M,IAAI,IAAIA,IAAI,CAACoE,KAAL,KAAesF,EAA5B,EAAiC;AAChC,yBAAO,CAAE/O,IAAF,CAAP;AACA;AACD;AACD;;AAED,mBAAO,EAAP;AACA;AACD,SA1BD;AA2BA,OAlHkD,CAoHnD;;;AACAgK,UAAI,CAAC+H,IAAL,CAAU,KAAV,IAAmBrN,OAAO,CAACsK,oBAAR,GAClB,UAAUiD,GAAV,EAAejM,OAAf,EAAyB;AACxB,YAAK,OAAOA,OAAO,CAACgJ,oBAAf,KAAwC,WAA7C,EAA2D;AAC1D,iBAAOhJ,OAAO,CAACgJ,oBAAR,CAA8BiD,GAA9B,CAAP,CAD0D,CAG3D;AACC,SAJD,MAIO,IAAKvN,OAAO,CAACwK,GAAb,EAAmB;AACzB,iBAAOlJ,OAAO,CAAC0J,gBAAR,CAA0BuC,GAA1B,CAAP;AACA;AACD,OATiB,GAWlB,UAAUA,GAAV,EAAejM,OAAf,EAAyB;AACxB,YAAIhG,IAAJ;AAAA,YACCkS,GAAG,GAAG,EADP;AAAA,YAEClT,CAAC,GAAG,CAFL;AAAA,YAGC;AACAgK,eAAO,GAAGhD,OAAO,CAACgJ,oBAAR,CAA8BiD,GAA9B,CAJX,CADwB,CAOxB;;AACA,YAAKA,GAAG,KAAK,GAAb,EAAmB;AAClB,iBAASjS,IAAI,GAAGgJ,OAAO,CAAChK,CAAC,EAAF,CAAvB,EAAgC;AAC/B,gBAAKgB,IAAI,CAAC6E,QAAL,KAAkB,CAAvB,EAA2B;AAC1BqN,iBAAG,CAAChO,IAAJ,CAAUlE,IAAV;AACA;AACD;;AAED,iBAAOkS,GAAP;AACA;;AACD,eAAOlJ,OAAP;AACA,OA7BF,CArHmD,CAoJnD;;AACAgB,UAAI,CAAC+H,IAAL,CAAU,OAAV,IAAqBrN,OAAO,CAACuK,sBAAR,IAAkC,UAAUwC,SAAV,EAAqBzL,OAArB,EAA+B;AACrF,YAAK,OAAOA,OAAO,CAACiJ,sBAAf,KAA0C,WAA1C,IAAyDtE,cAA9D,EAA+E;AAC9E,iBAAO3E,OAAO,CAACiJ,sBAAR,CAAgCwC,SAAhC,CAAP;AACA;AACD,OAJD;AAMA;;AAGA;AAEA;;;AACA5G,mBAAa,GAAG,EAAhB,CAjKmD,CAmKnD;AACA;AACA;AACA;AACA;;AACAD,eAAS,GAAG,EAAZ;;AAEA,UAAMlG,OAAO,CAACwK,GAAR,GAActC,OAAO,CAACuC,IAAR,CAAc5Q,QAAQ,CAACmR,gBAAvB,CAApB,EAAiE;AAChE;AACA;AACAS,cAAM,CAAC,UAAUC,EAAV,EAAe;AACrB;AACA;AACA;AACA;AACA;AACA1F,iBAAO,CAAChF,WAAR,CAAqB0K,EAArB,EAA0B+B,SAA1B,GAAsC,YAAYjK,OAAZ,GAAsB,QAAtB,GACrC,cADqC,GACpBA,OADoB,GACV,2BADU,GAErC,wCAFD,CANqB,CAUrB;AACA;AACA;AACA;;AACA,cAAKkI,EAAE,CAACV,gBAAH,CAAoB,sBAApB,EAA4CzQ,MAAjD,EAA0D;AACzD2L,qBAAS,CAAC1G,IAAV,CAAgB,WAAW4H,UAAX,GAAwB,cAAxC;AACA,WAhBoB,CAkBrB;AACA;;;AACA,cAAK,CAACsE,EAAE,CAACV,gBAAH,CAAoB,YAApB,EAAkCzQ,MAAxC,EAAiD;AAChD2L,qBAAS,CAAC1G,IAAV,CAAgB,QAAQ4H,UAAR,GAAqB,YAArB,GAAoCD,QAApC,GAA+C,GAA/D;AACA,WAtBoB,CAwBrB;;;AACA,cAAK,CAACuE,EAAE,CAACV,gBAAH,CAAqB,UAAUxH,OAAV,GAAoB,IAAzC,EAAgDjJ,MAAtD,EAA+D;AAC9D2L,qBAAS,CAAC1G,IAAV,CAAe,IAAf;AACA,WA3BoB,CA6BrB;AACA;AACA;;;AACA,cAAK,CAACkM,EAAE,CAACV,gBAAH,CAAoB,UAApB,EAAgCzQ,MAAtC,EAA+C;AAC9C2L,qBAAS,CAAC1G,IAAV,CAAe,UAAf;AACA,WAlCoB,CAoCrB;AACA;AACA;;;AACA,cAAK,CAACkM,EAAE,CAACV,gBAAH,CAAqB,OAAOxH,OAAP,GAAiB,IAAtC,EAA6CjJ,MAAnD,EAA4D;AAC3D2L,qBAAS,CAAC1G,IAAV,CAAe,UAAf;AACA;AACD,SA1CK,CAAN;AA4CAiM,cAAM,CAAC,UAAUC,EAAV,EAAe;AACrBA,YAAE,CAAC+B,SAAH,GAAe,wCACd,gDADD,CADqB,CAIrB;AACA;;AACA,cAAIC,KAAK,GAAG7T,QAAQ,CAACgH,aAAT,CAAuB,OAAvB,CAAZ;AACA6M,eAAK,CAAC9C,YAAN,CAAoB,MAApB,EAA4B,QAA5B;AACAc,YAAE,CAAC1K,WAAH,CAAgB0M,KAAhB,EAAwB9C,YAAxB,CAAsC,MAAtC,EAA8C,GAA9C,EARqB,CAUrB;AACA;;AACA,cAAKc,EAAE,CAACV,gBAAH,CAAoB,UAApB,EAAgCzQ,MAArC,EAA8C;AAC7C2L,qBAAS,CAAC1G,IAAV,CAAgB,SAAS4H,UAAT,GAAsB,aAAtC;AACA,WAdoB,CAgBrB;AACA;;;AACA,cAAKsE,EAAE,CAACV,gBAAH,CAAoB,UAApB,EAAgCzQ,MAAhC,KAA2C,CAAhD,EAAoD;AACnD2L,qBAAS,CAAC1G,IAAV,CAAgB,UAAhB,EAA4B,WAA5B;AACA,WApBoB,CAsBrB;AACA;;;AACAwG,iBAAO,CAAChF,WAAR,CAAqB0K,EAArB,EAA0BrC,QAA1B,GAAqC,IAArC;;AACA,cAAKqC,EAAE,CAACV,gBAAH,CAAoB,WAApB,EAAiCzQ,MAAjC,KAA4C,CAAjD,EAAqD;AACpD2L,qBAAS,CAAC1G,IAAV,CAAgB,UAAhB,EAA4B,WAA5B;AACA,WA3BoB,CA6BrB;;;AACAkM,YAAE,CAACV,gBAAH,CAAoB,MAApB;AACA9E,mBAAS,CAAC1G,IAAV,CAAe,MAAf;AACA,SAhCK,CAAN;AAiCA;;AAED,UAAMQ,OAAO,CAAC2N,eAAR,GAA0BzF,OAAO,CAACuC,IAAR,CAAe7F,OAAO,GAAGoB,OAAO,CAACpB,OAAR,IACxDoB,OAAO,CAAC4H,qBADgD,IAExD5H,OAAO,CAAC6H,kBAFgD,IAGxD7H,OAAO,CAAC8H,gBAHgD,IAIxD9H,OAAO,CAAC+H,iBAJuB,CAAhC,EAIiC;AAEhCtC,cAAM,CAAC,UAAUC,EAAV,EAAe;AACrB;AACA;AACA1L,iBAAO,CAACgO,iBAAR,GAA4BpJ,OAAO,CAACpI,IAAR,CAAckP,EAAd,EAAkB,GAAlB,CAA5B,CAHqB,CAKrB;AACA;;AACA9G,iBAAO,CAACpI,IAAR,CAAckP,EAAd,EAAkB,WAAlB;AACAvF,uBAAa,CAAC3G,IAAd,CAAoB,IAApB,EAA0B+H,OAA1B;AACA,SATK,CAAN;AAUA;;AAEDrB,eAAS,GAAGA,SAAS,CAAC3L,MAAV,IAAoB,IAAIkN,MAAJ,CAAYvB,SAAS,CAAC4E,IAAV,CAAe,GAAf,CAAZ,CAAhC;AACA3E,mBAAa,GAAGA,aAAa,CAAC5L,MAAd,IAAwB,IAAIkN,MAAJ,CAAYtB,aAAa,CAAC2E,IAAd,CAAmB,GAAnB,CAAZ,CAAxC;AAEA;;;AAEA6B,gBAAU,GAAGzE,OAAO,CAACuC,IAAR,CAAczE,OAAO,CAACiI,uBAAtB,CAAb,CAnRmD,CAqRnD;AACA;AACA;;AACA7H,cAAQ,GAAGuG,UAAU,IAAIzE,OAAO,CAACuC,IAAR,CAAczE,OAAO,CAACI,QAAtB,CAAd,GACV,UAAUU,CAAV,EAAaC,CAAb,EAAiB;AAChB,YAAImH,KAAK,GAAGpH,CAAC,CAAC3G,QAAF,KAAe,CAAf,GAAmB2G,CAAC,CAAC4F,eAArB,GAAuC5F,CAAnD;AAAA,YACCqH,GAAG,GAAGpH,CAAC,IAAIA,CAAC,CAAC9F,UADd;AAEA,eAAO6F,CAAC,KAAKqH,GAAN,IAAa,CAAC,EAAGA,GAAG,IAAIA,GAAG,CAAChO,QAAJ,KAAiB,CAAxB,KACvB+N,KAAK,CAAC9H,QAAN,GACC8H,KAAK,CAAC9H,QAAN,CAAgB+H,GAAhB,CADD,GAECrH,CAAC,CAACmH,uBAAF,IAA6BnH,CAAC,CAACmH,uBAAF,CAA2BE,GAA3B,IAAmC,EAH1C,CAAH,CAArB;AAKA,OATS,GAUV,UAAUrH,CAAV,EAAaC,CAAb,EAAiB;AAChB,YAAKA,CAAL,EAAS;AACR,iBAASA,CAAC,GAAGA,CAAC,CAAC9F,UAAf,EAA6B;AAC5B,gBAAK8F,CAAC,KAAKD,CAAX,EAAe;AACd,qBAAO,IAAP;AACA;AACD;AACD;;AACD,eAAO,KAAP;AACA,OAnBF;AAqBA;;AAGA;;AACAD,eAAS,GAAG8F,UAAU,GACtB,UAAU7F,CAAV,EAAaC,CAAb,EAAiB;AAEhB;AACA,YAAKD,CAAC,KAAKC,CAAX,EAAe;AACdjB,sBAAY,GAAG,IAAf;AACA,iBAAO,CAAP;AACA,SANe,CAQhB;;;AACA,YAAIsI,OAAO,GAAG,CAACtH,CAAC,CAACmH,uBAAH,GAA6B,CAAClH,CAAC,CAACkH,uBAA9C;;AACA,YAAKG,OAAL,EAAe;AACd,iBAAOA,OAAP;AACA,SAZe,CAchB;;;AACAA,eAAO,GAAG,CAAEtH,CAAC,CAACoD,aAAF,IAAmBpD,CAArB,OAA+BC,CAAC,CAACmD,aAAF,IAAmBnD,CAAlD,IACTD,CAAC,CAACmH,uBAAF,CAA2BlH,CAA3B,CADS,GAGT;AACA,SAJD,CAfgB,CAqBhB;;AACA,YAAKqH,OAAO,GAAG,CAAV,IACH,CAACpO,OAAO,CAACqO,YAAT,IAAyBtH,CAAC,CAACkH,uBAAF,CAA2BnH,CAA3B,MAAmCsH,OAD9D,EACyE;AAExE;AACA,cAAKtH,CAAC,KAAKjN,QAAN,IAAkBiN,CAAC,CAACoD,aAAF,KAAoB5D,YAApB,IAAoCF,QAAQ,CAACE,YAAD,EAAeQ,CAAf,CAAnE,EAAuF;AACtF,mBAAO,CAAC,CAAR;AACA;;AACD,cAAKC,CAAC,KAAKlN,QAAN,IAAkBkN,CAAC,CAACmD,aAAF,KAAoB5D,YAApB,IAAoCF,QAAQ,CAACE,YAAD,EAAeS,CAAf,CAAnE,EAAuF;AACtF,mBAAO,CAAP;AACA,WARuE,CAUxE;;;AACA,iBAAOlB,SAAS,GACbpG,OAAO,CAAEoG,SAAF,EAAaiB,CAAb,CAAP,GAA0BrH,OAAO,CAAEoG,SAAF,EAAakB,CAAb,CADpB,GAEf,CAFD;AAGA;;AAED,eAAOqH,OAAO,GAAG,CAAV,GAAc,CAAC,CAAf,GAAmB,CAA1B;AACA,OAzCqB,GA0CtB,UAAUtH,CAAV,EAAaC,CAAb,EAAiB;AAChB;AACA,YAAKD,CAAC,KAAKC,CAAX,EAAe;AACdjB,sBAAY,GAAG,IAAf;AACA,iBAAO,CAAP;AACA;;AAED,YAAIiG,GAAJ;AAAA,YACCzR,CAAC,GAAG,CADL;AAAA,YAECgU,GAAG,GAAGxH,CAAC,CAAC7F,UAFT;AAAA,YAGCkN,GAAG,GAAGpH,CAAC,CAAC9F,UAHT;AAAA,YAICsN,EAAE,GAAG,CAAEzH,CAAF,CAJN;AAAA,YAKC0H,EAAE,GAAG,CAAEzH,CAAF,CALN,CAPgB,CAchB;;AACA,YAAK,CAACuH,GAAD,IAAQ,CAACH,GAAd,EAAoB;AACnB,iBAAOrH,CAAC,KAAKjN,QAAN,GAAiB,CAAC,CAAlB,GACNkN,CAAC,KAAKlN,QAAN,GAAiB,CAAjB,GACAyU,GAAG,GAAG,CAAC,CAAJ,GACHH,GAAG,GAAG,CAAH,GACHtI,SAAS,GACPpG,OAAO,CAAEoG,SAAF,EAAaiB,CAAb,CAAP,GAA0BrH,OAAO,CAAEoG,SAAF,EAAakB,CAAb,CAD1B,GAET,CAND,CADmB,CASpB;AACC,SAVD,MAUO,IAAKuH,GAAG,KAAKH,GAAb,EAAmB;AACzB,iBAAOrC,YAAY,CAAEhF,CAAF,EAAKC,CAAL,CAAnB;AACA,SA3Be,CA6BhB;;;AACAgF,WAAG,GAAGjF,CAAN;;AACA,eAASiF,GAAG,GAAGA,GAAG,CAAC9K,UAAnB,EAAiC;AAChCsN,YAAE,CAACjQ,OAAH,CAAYyN,GAAZ;AACA;;AACDA,WAAG,GAAGhF,CAAN;;AACA,eAASgF,GAAG,GAAGA,GAAG,CAAC9K,UAAnB,EAAiC;AAChCuN,YAAE,CAAClQ,OAAH,CAAYyN,GAAZ;AACA,SArCe,CAuChB;;;AACA,eAAQwC,EAAE,CAACjU,CAAD,CAAF,KAAUkU,EAAE,CAAClU,CAAD,CAApB,EAA0B;AACzBA,WAAC;AACD;;AAED,eAAOA,CAAC,GACP;AACAwR,oBAAY,CAAEyC,EAAE,CAACjU,CAAD,CAAJ,EAASkU,EAAE,CAAClU,CAAD,CAAX,CAFL,GAIP;AACAiU,UAAE,CAACjU,CAAD,CAAF,KAAUgM,YAAV,GAAyB,CAAC,CAA1B,GACAkI,EAAE,CAAClU,CAAD,CAAF,KAAUgM,YAAV,GAAyB,CAAzB,GACA,CAPD;AAQA,OA9FD;AAgGA,aAAOzM,QAAP;AACA,KAlZD;;AAoZAwL,UAAM,CAACT,OAAP,GAAiB,UAAU6J,IAAV,EAAgBC,QAAhB,EAA2B;AAC3C,aAAOrJ,MAAM,CAAEoJ,IAAF,EAAQ,IAAR,EAAc,IAAd,EAAoBC,QAApB,CAAb;AACA,KAFD;;AAIArJ,UAAM,CAACsI,eAAP,GAAyB,UAAUrS,IAAV,EAAgBmT,IAAhB,EAAuB;AAC/C;AACA,UAAK,CAAEnT,IAAI,CAAC4O,aAAL,IAAsB5O,IAAxB,MAAmCzB,QAAxC,EAAmD;AAClDkM,mBAAW,CAAEzK,IAAF,CAAX;AACA,OAJ8C,CAM/C;;;AACAmT,UAAI,GAAGA,IAAI,CAAC/K,OAAL,CAAckE,gBAAd,EAAgC,QAAhC,CAAP;;AAEA,UAAK5H,OAAO,CAAC2N,eAAR,IAA2B1H,cAA3B,IACJ,CAACW,aAAa,CAAE6H,IAAI,GAAG,GAAT,CADV,KAEF,CAACtI,aAAD,IAAkB,CAACA,aAAa,CAACsE,IAAd,CAAoBgE,IAApB,CAFjB,MAGF,CAACvI,SAAD,IAAkB,CAACA,SAAS,CAACuE,IAAV,CAAgBgE,IAAhB,CAHjB,CAAL,EAGiD;AAEhD,YAAI;AACH,cAAIzM,GAAG,GAAG4C,OAAO,CAACpI,IAAR,CAAclB,IAAd,EAAoBmT,IAApB,CAAV,CADG,CAGH;;AACA,cAAKzM,GAAG,IAAIhC,OAAO,CAACgO,iBAAf,IACH;AACA;AACA1S,cAAI,CAACzB,QAAL,IAAiByB,IAAI,CAACzB,QAAL,CAAcsG,QAAd,KAA2B,EAH9C,EAGmD;AAClD,mBAAO6B,GAAP;AACA;AACD,SAVD,CAUE,OAAOyH,CAAP,EAAU,CAAE;AACd;;AAED,aAAOpE,MAAM,CAAEoJ,IAAF,EAAQ5U,QAAR,EAAkB,IAAlB,EAAwB,CAAEyB,IAAF,CAAxB,CAAN,CAAyCf,MAAzC,GAAkD,CAAzD;AACA,KA5BD;;AA8BA8K,UAAM,CAACe,QAAP,GAAkB,UAAU9E,OAAV,EAAmBhG,IAAnB,EAA0B;AAC3C;AACA,UAAK,CAAEgG,OAAO,CAAC4I,aAAR,IAAyB5I,OAA3B,MAAyCzH,QAA9C,EAAyD;AACxDkM,mBAAW,CAAEzE,OAAF,CAAX;AACA;;AACD,aAAO8E,QAAQ,CAAE9E,OAAF,EAAWhG,IAAX,CAAf;AACA,KAND;;AAQA+J,UAAM,CAACsJ,IAAP,GAAc,UAAUrT,IAAV,EAAgByH,IAAhB,EAAuB;AACpC;AACA,UAAK,CAAEzH,IAAI,CAAC4O,aAAL,IAAsB5O,IAAxB,MAAmCzB,QAAxC,EAAmD;AAClDkM,mBAAW,CAAEzK,IAAF,CAAX;AACA;;AAED,UAAIG,EAAE,GAAG6J,IAAI,CAACuG,UAAL,CAAiB9I,IAAI,CAACqC,WAAL,EAAjB,CAAT;AAAA,UACC;AACAwJ,SAAG,GAAGnT,EAAE,IAAImE,MAAM,CAACpD,IAAP,CAAa8I,IAAI,CAACuG,UAAlB,EAA8B9I,IAAI,CAACqC,WAAL,EAA9B,CAAN,GACL3J,EAAE,CAAEH,IAAF,EAAQyH,IAAR,EAAc,CAACkD,cAAf,CADG,GAEL1C,SAJF;AAMA,aAAOqL,GAAG,KAAKrL,SAAR,GACNqL,GADM,GAEN5O,OAAO,CAACsH,UAAR,IAAsB,CAACrB,cAAvB,GACC3K,IAAI,CAACqP,YAAL,CAAmB5H,IAAnB,CADD,GAEC,CAAC6L,GAAG,GAAGtT,IAAI,CAACgS,gBAAL,CAAsBvK,IAAtB,CAAP,KAAuC6L,GAAG,CAACC,SAA3C,GACCD,GAAG,CAAC7J,KADL,GAEC,IANH;AAOA,KAnBD;;AAqBAM,UAAM,CAACyJ,MAAP,GAAgB,UAAUC,GAAV,EAAgB;AAC/B,aAAO,CAACA,GAAG,GAAG,EAAP,EAAWrL,OAAX,CAAoBmF,UAApB,EAAgCC,UAAhC,CAAP;AACA,KAFD;;AAIAzD,UAAM,CAACzB,KAAP,GAAe,UAAUC,GAAV,EAAgB;AAC9B,YAAM,IAAI5E,KAAJ,CAAW,4CAA4C4E,GAAvD,CAAN;AACA,KAFD;AAIA;;;;;;AAIAwB,UAAM,CAAC2J,UAAP,GAAoB,UAAU1K,OAAV,EAAoB;AACvC,UAAIhJ,IAAJ;AAAA,UACC2T,UAAU,GAAG,EADd;AAAA,UAECvM,CAAC,GAAG,CAFL;AAAA,UAGCpI,CAAC,GAAG,CAHL,CADuC,CAMvC;;AACAwL,kBAAY,GAAG,CAAC9F,OAAO,CAACkP,gBAAxB;AACArJ,eAAS,GAAG,CAAC7F,OAAO,CAACmP,UAAT,IAAuB7K,OAAO,CAACvK,KAAR,CAAe,CAAf,CAAnC;AACAuK,aAAO,CAAC1B,IAAR,CAAciE,SAAd;;AAEA,UAAKf,YAAL,EAAoB;AACnB,eAASxK,IAAI,GAAGgJ,OAAO,CAAChK,CAAC,EAAF,CAAvB,EAAgC;AAC/B,cAAKgB,IAAI,KAAKgJ,OAAO,CAAEhK,CAAF,CAArB,EAA6B;AAC5BoI,aAAC,GAAGuM,UAAU,CAACzP,IAAX,CAAiBlF,CAAjB,CAAJ;AACA;AACD;;AACD,eAAQoI,CAAC,EAAT,EAAc;AACb4B,iBAAO,CAACzB,MAAR,CAAgBoM,UAAU,CAAEvM,CAAF,CAA1B,EAAiC,CAAjC;AACA;AACD,OApBsC,CAsBvC;AACA;;;AACAmD,eAAS,GAAG,IAAZ;AAEA,aAAOvB,OAAP;AACA,KA3BD;AA6BA;;;;;;AAIAiB,WAAO,GAAGF,MAAM,CAACE,OAAP,GAAiB,UAAUjK,IAAV,EAAiB;AAC3C,UAAIqF,IAAJ;AAAA,UACCqB,GAAG,GAAG,EADP;AAAA,UAEC1H,CAAC,GAAG,CAFL;AAAA,UAGC6F,QAAQ,GAAG7E,IAAI,CAAC6E,QAHjB;;AAKA,UAAK,CAACA,QAAN,EAAiB;AAChB;AACA,eAASQ,IAAI,GAAGrF,IAAI,CAAChB,CAAC,EAAF,CAApB,EAA6B;AAC5B;AACA0H,aAAG,IAAIuD,OAAO,CAAE5E,IAAF,CAAd;AACA;AACD,OAND,MAMO,IAAKR,QAAQ,KAAK,CAAb,IAAkBA,QAAQ,KAAK,CAA/B,IAAoCA,QAAQ,KAAK,EAAtD,EAA2D;AACjE;AACA;AACA,YAAK,OAAO7E,IAAI,CAAC8T,WAAZ,KAA4B,QAAjC,EAA4C;AAC3C,iBAAO9T,IAAI,CAAC8T,WAAZ;AACA,SAFD,MAEO;AACN;AACA,eAAM9T,IAAI,GAAGA,IAAI,CAAC+T,UAAlB,EAA8B/T,IAA9B,EAAoCA,IAAI,GAAGA,IAAI,CAAC4Q,WAAhD,EAA8D;AAC7DlK,eAAG,IAAIuD,OAAO,CAAEjK,IAAF,CAAd;AACA;AACD;AACD,OAXM,MAWA,IAAK6E,QAAQ,KAAK,CAAb,IAAkBA,QAAQ,KAAK,CAApC,EAAwC;AAC9C,eAAO7E,IAAI,CAACgU,SAAZ;AACA,OAzB0C,CA0B3C;;;AAEA,aAAOtN,GAAP;AACA,KA7BD;;AA+BAsD,QAAI,GAAGD,MAAM,CAACkK,SAAP,GAAmB;AAEzB;AACAjE,iBAAW,EAAE,EAHY;AAKzBkE,kBAAY,EAAEhE,YALW;AAOzB1B,WAAK,EAAE/B,SAPkB;AASzB8D,gBAAU,EAAE,EATa;AAWzBwB,UAAI,EAAE,EAXmB;AAazBoC,cAAQ,EAAE;AACT,aAAK;AAAEnG,aAAG,EAAE,YAAP;AAAqBhH,eAAK,EAAE;AAA5B,SADI;AAET,aAAK;AAAEgH,aAAG,EAAE;AAAP,SAFI;AAGT,aAAK;AAAEA,aAAG,EAAE,iBAAP;AAA0BhH,eAAK,EAAE;AAAjC,SAHI;AAIT,aAAK;AAAEgH,aAAG,EAAE;AAAP;AAJI,OAbe;AAoBzBoG,eAAS,EAAE;AACV,gBAAQ,UAAU5F,KAAV,EAAkB;AACzBA,eAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAL,CAASpG,OAAT,CAAkB2E,SAAlB,EAA6BC,SAA7B,CAAX,CADyB,CAGzB;;AACAwB,eAAK,CAAC,CAAD,CAAL,GAAW,CAAEA,KAAK,CAAC,CAAD,CAAL,IAAYA,KAAK,CAAC,CAAD,CAAjB,IAAwBA,KAAK,CAAC,CAAD,CAA7B,IAAoC,EAAtC,EAA2CpG,OAA3C,CAAoD2E,SAApD,EAA+DC,SAA/D,CAAX;;AAEA,cAAKwB,KAAK,CAAC,CAAD,CAAL,KAAa,IAAlB,EAAyB;AACxBA,iBAAK,CAAC,CAAD,CAAL,GAAW,MAAMA,KAAK,CAAC,CAAD,CAAX,GAAiB,GAA5B;AACA;;AAED,iBAAOA,KAAK,CAAC/P,KAAN,CAAa,CAAb,EAAgB,CAAhB,CAAP;AACA,SAZS;AAcV,iBAAS,UAAU+P,KAAV,EAAkB;AAC1B;;;;;;;;;;AAUAA,eAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAL,CAAS1E,WAAT,EAAX;;AAEA,cAAK0E,KAAK,CAAC,CAAD,CAAL,CAAS/P,KAAT,CAAgB,CAAhB,EAAmB,CAAnB,MAA2B,KAAhC,EAAwC;AACvC;AACA,gBAAK,CAAC+P,KAAK,CAAC,CAAD,CAAX,EAAiB;AAChBzE,oBAAM,CAACzB,KAAP,CAAckG,KAAK,CAAC,CAAD,CAAnB;AACA,aAJsC,CAMvC;AACA;;;AACAA,iBAAK,CAAC,CAAD,CAAL,GAAW,EAAGA,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAL,IAAYA,KAAK,CAAC,CAAD,CAAL,IAAY,CAAxB,CAAX,GAAwC,KAAMA,KAAK,CAAC,CAAD,CAAL,KAAa,MAAb,IAAuBA,KAAK,CAAC,CAAD,CAAL,KAAa,KAA1C,CAA3C,CAAX;AACAA,iBAAK,CAAC,CAAD,CAAL,GAAW,EAAKA,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAlB,IAA2BA,KAAK,CAAC,CAAD,CAAL,KAAa,KAA3C,CAAX,CATuC,CAWxC;AACC,WAZD,MAYO,IAAKA,KAAK,CAAC,CAAD,CAAV,EAAgB;AACtBzE,kBAAM,CAACzB,KAAP,CAAckG,KAAK,CAAC,CAAD,CAAnB;AACA;;AAED,iBAAOA,KAAP;AACA,SA5CS;AA8CV,kBAAU,UAAUA,KAAV,EAAkB;AAC3B,cAAI6F,MAAJ;AAAA,cACCC,QAAQ,GAAG,CAAC9F,KAAK,CAAC,CAAD,CAAN,IAAaA,KAAK,CAAC,CAAD,CAD9B;;AAGA,cAAK/B,SAAS,CAAC,OAAD,CAAT,CAAmB0C,IAAnB,CAAyBX,KAAK,CAAC,CAAD,CAA9B,CAAL,EAA2C;AAC1C,mBAAO,IAAP;AACA,WAN0B,CAQ3B;;;AACA,cAAKA,KAAK,CAAC,CAAD,CAAV,EAAgB;AACfA,iBAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAL,IAAYA,KAAK,CAAC,CAAD,CAAjB,IAAwB,EAAnC,CADe,CAGhB;AACC,WAJD,MAIO,IAAK8F,QAAQ,IAAI/H,OAAO,CAAC4C,IAAR,CAAcmF,QAAd,CAAZ,MACX;AACCD,gBAAM,GAAGlK,QAAQ,CAAEmK,QAAF,EAAY,IAAZ,CAFP,OAGX;AACCD,gBAAM,GAAGC,QAAQ,CAACnQ,OAAT,CAAkB,GAAlB,EAAuBmQ,QAAQ,CAACrV,MAAT,GAAkBoV,MAAzC,IAAoDC,QAAQ,CAACrV,MAJ5D,CAAL,EAI2E;AAEjF;AACAuP,iBAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAL,CAAS/P,KAAT,CAAgB,CAAhB,EAAmB4V,MAAnB,CAAX;AACA7F,iBAAK,CAAC,CAAD,CAAL,GAAW8F,QAAQ,CAAC7V,KAAT,CAAgB,CAAhB,EAAmB4V,MAAnB,CAAX;AACA,WAtB0B,CAwB3B;;;AACA,iBAAO7F,KAAK,CAAC/P,KAAN,CAAa,CAAb,EAAgB,CAAhB,CAAP;AACA;AAxES,OApBc;AA+FzBoT,YAAM,EAAE;AAEP,eAAO,UAAU0C,gBAAV,EAA6B;AACnC,cAAInF,QAAQ,GAAGmF,gBAAgB,CAACnM,OAAjB,CAA0B2E,SAA1B,EAAqCC,SAArC,EAAiDlD,WAAjD,EAAf;AACA,iBAAOyK,gBAAgB,KAAK,GAArB,GACN,YAAW;AAAE,mBAAO,IAAP;AAAc,WADrB,GAEN,UAAUvU,IAAV,EAAiB;AAChB,mBAAOA,IAAI,CAACoP,QAAL,IAAiBpP,IAAI,CAACoP,QAAL,CAActF,WAAd,OAAgCsF,QAAxD;AACA,WAJF;AAKA,SATM;AAWP,iBAAS,UAAUqC,SAAV,EAAsB;AAC9B,cAAI+C,OAAO,GAAGrJ,UAAU,CAAEsG,SAAS,GAAG,GAAd,CAAxB;AAEA,iBAAO+C,OAAO,IACb,CAACA,OAAO,GAAG,IAAIrI,MAAJ,CAAY,QAAQL,UAAR,GAAqB,GAArB,GAA2B2F,SAA3B,GAAuC,GAAvC,GAA6C3F,UAA7C,GAA0D,KAAtE,CAAX,KACAX,UAAU,CAAEsG,SAAF,EAAa,UAAUzR,IAAV,EAAiB;AACvC,mBAAOwU,OAAO,CAACrF,IAAR,CAAc,OAAOnP,IAAI,CAACyR,SAAZ,KAA0B,QAA1B,IAAsCzR,IAAI,CAACyR,SAA3C,IAAwD,OAAOzR,IAAI,CAACqP,YAAZ,KAA6B,WAA7B,IAA4CrP,IAAI,CAACqP,YAAL,CAAkB,OAAlB,CAApG,IAAkI,EAAhJ,CAAP;AACA,WAFS,CAFX;AAKA,SAnBM;AAqBP,gBAAQ,UAAU5H,IAAV,EAAgBgN,QAAhB,EAA0BC,KAA1B,EAAkC;AACzC,iBAAO,UAAU1U,IAAV,EAAiB;AACvB,gBAAI2U,MAAM,GAAG5K,MAAM,CAACsJ,IAAP,CAAarT,IAAb,EAAmByH,IAAnB,CAAb;;AAEA,gBAAKkN,MAAM,IAAI,IAAf,EAAsB;AACrB,qBAAOF,QAAQ,KAAK,IAApB;AACA;;AACD,gBAAK,CAACA,QAAN,EAAiB;AAChB,qBAAO,IAAP;AACA;;AAEDE,kBAAM,IAAI,EAAV;AAEA,mBAAOF,QAAQ,KAAK,GAAb,GAAmBE,MAAM,KAAKD,KAA9B,GACND,QAAQ,KAAK,IAAb,GAAoBE,MAAM,KAAKD,KAA/B,GACAD,QAAQ,KAAK,IAAb,GAAoBC,KAAK,IAAIC,MAAM,CAACxQ,OAAP,CAAgBuQ,KAAhB,MAA4B,CAAzD,GACAD,QAAQ,KAAK,IAAb,GAAoBC,KAAK,IAAIC,MAAM,CAACxQ,OAAP,CAAgBuQ,KAAhB,IAA0B,CAAC,CAAxD,GACAD,QAAQ,KAAK,IAAb,GAAoBC,KAAK,IAAIC,MAAM,CAAClW,KAAP,CAAc,CAACiW,KAAK,CAACzV,MAArB,MAAkCyV,KAA/D,GACAD,QAAQ,KAAK,IAAb,GAAoB,CAAE,MAAME,MAAM,CAACvM,OAAP,CAAgB8D,WAAhB,EAA6B,GAA7B,CAAN,GAA2C,GAA7C,EAAmD/H,OAAnD,CAA4DuQ,KAA5D,IAAsE,CAAC,CAA3F,GACAD,QAAQ,KAAK,IAAb,GAAoBE,MAAM,KAAKD,KAAX,IAAoBC,MAAM,CAAClW,KAAP,CAAc,CAAd,EAAiBiW,KAAK,CAACzV,MAAN,GAAe,CAAhC,MAAwCyV,KAAK,GAAG,GAAxF,GACA,KAPD;AAQA,WApBD;AAqBA,SA3CM;AA6CP,iBAAS,UAAU/S,IAAV,EAAgBiT,IAAhB,EAAsB1D,QAAtB,EAAgClK,KAAhC,EAAuCE,IAAvC,EAA8C;AACtD,cAAI2N,MAAM,GAAGlT,IAAI,CAAClD,KAAL,CAAY,CAAZ,EAAe,CAAf,MAAuB,KAApC;AAAA,cACCqW,OAAO,GAAGnT,IAAI,CAAClD,KAAL,CAAY,CAAC,CAAb,MAAqB,MADhC;AAAA,cAECsW,MAAM,GAAGH,IAAI,KAAK,SAFnB;AAIA,iBAAO5N,KAAK,KAAK,CAAV,IAAeE,IAAI,KAAK,CAAxB,GAEN;AACA,oBAAUlH,IAAV,EAAiB;AAChB,mBAAO,CAAC,CAACA,IAAI,CAAC2F,UAAd;AACA,WALK,GAON,UAAU3F,IAAV,EAAgBgG,OAAhB,EAAyBgP,GAAzB,EAA+B;AAC9B,gBAAIlF,KAAJ;AAAA,gBAAWmF,WAAX;AAAA,gBAAwBC,UAAxB;AAAA,gBAAoC7P,IAApC;AAAA,gBAA0C8P,SAA1C;AAAA,gBAAqDC,KAArD;AAAA,gBACCpH,GAAG,GAAG6G,MAAM,KAAKC,OAAX,GAAqB,aAArB,GAAqC,iBAD5C;AAAA,gBAECO,MAAM,GAAGrV,IAAI,CAAC2F,UAFf;AAAA,gBAGC8B,IAAI,GAAGsN,MAAM,IAAI/U,IAAI,CAACoP,QAAL,CAActF,WAAd,EAHlB;AAAA,gBAICwL,QAAQ,GAAG,CAACN,GAAD,IAAQ,CAACD,MAJrB;AAAA,gBAKCrE,IAAI,GAAG,KALR;;AAOA,gBAAK2E,MAAL,EAAc;AAEb;AACA,kBAAKR,MAAL,EAAc;AACb,uBAAQ7G,GAAR,EAAc;AACb3I,sBAAI,GAAGrF,IAAP;;AACA,yBAASqF,IAAI,GAAGA,IAAI,CAAE2I,GAAF,CAApB,EAA+B;AAC9B,wBAAK+G,MAAM,GACV1P,IAAI,CAAC+J,QAAL,CAActF,WAAd,OAAgCrC,IADtB,GAEVpC,IAAI,CAACR,QAAL,KAAkB,CAFnB,EAEuB;AAEtB,6BAAO,KAAP;AACA;AACD,mBATY,CAUb;;;AACAuQ,uBAAK,GAAGpH,GAAG,GAAGrM,IAAI,KAAK,MAAT,IAAmB,CAACyT,KAApB,IAA6B,aAA3C;AACA;;AACD,uBAAO,IAAP;AACA;;AAEDA,mBAAK,GAAG,CAAEN,OAAO,GAAGO,MAAM,CAACtB,UAAV,GAAuBsB,MAAM,CAACE,SAAvC,CAAR,CApBa,CAsBb;;AACA,kBAAKT,OAAO,IAAIQ,QAAhB,EAA2B;AAE1B;AAEA;AACAjQ,oBAAI,GAAGgQ,MAAP;AACAH,0BAAU,GAAG7P,IAAI,CAAE6C,OAAF,CAAJ,KAAoB7C,IAAI,CAAE6C,OAAF,CAAJ,GAAkB,EAAtC,CAAb,CAN0B,CAQ1B;AACA;;AACA+M,2BAAW,GAAGC,UAAU,CAAE7P,IAAI,CAACmQ,QAAP,CAAV,KACZN,UAAU,CAAE7P,IAAI,CAACmQ,QAAP,CAAV,GAA8B,EADlB,CAAd;AAGA1F,qBAAK,GAAGmF,WAAW,CAAEtT,IAAF,CAAX,IAAuB,EAA/B;AACAwT,yBAAS,GAAGrF,KAAK,CAAE,CAAF,CAAL,KAAe7E,OAAf,IAA0B6E,KAAK,CAAE,CAAF,CAA3C;AACAY,oBAAI,GAAGyE,SAAS,IAAIrF,KAAK,CAAE,CAAF,CAAzB;AACAzK,oBAAI,GAAG8P,SAAS,IAAIE,MAAM,CAACnH,UAAP,CAAmBiH,SAAnB,CAApB;;AAEA,uBAAS9P,IAAI,GAAG,EAAE8P,SAAF,IAAe9P,IAAf,IAAuBA,IAAI,CAAE2I,GAAF,CAA3B,MAEf;AACC0C,oBAAI,GAAGyE,SAAS,GAAG,CAHL,KAGWC,KAAK,CAAC1J,GAAN,EAH3B,EAG0C;AAEzC;AACA,sBAAKrG,IAAI,CAACR,QAAL,KAAkB,CAAlB,IAAuB,EAAE6L,IAAzB,IAAiCrL,IAAI,KAAKrF,IAA/C,EAAsD;AACrDiV,+BAAW,CAAEtT,IAAF,CAAX,GAAsB,CAAEsJ,OAAF,EAAWkK,SAAX,EAAsBzE,IAAtB,CAAtB;AACA;AACA;AACD;AAED,eA9BD,MA8BO;AACN;AACA,oBAAK4E,QAAL,EAAgB;AACf;AACAjQ,sBAAI,GAAGrF,IAAP;AACAkV,4BAAU,GAAG7P,IAAI,CAAE6C,OAAF,CAAJ,KAAoB7C,IAAI,CAAE6C,OAAF,CAAJ,GAAkB,EAAtC,CAAb,CAHe,CAKf;AACA;;AACA+M,6BAAW,GAAGC,UAAU,CAAE7P,IAAI,CAACmQ,QAAP,CAAV,KACZN,UAAU,CAAE7P,IAAI,CAACmQ,QAAP,CAAV,GAA8B,EADlB,CAAd;AAGA1F,uBAAK,GAAGmF,WAAW,CAAEtT,IAAF,CAAX,IAAuB,EAA/B;AACAwT,2BAAS,GAAGrF,KAAK,CAAE,CAAF,CAAL,KAAe7E,OAAf,IAA0B6E,KAAK,CAAE,CAAF,CAA3C;AACAY,sBAAI,GAAGyE,SAAP;AACA,iBAfK,CAiBN;AACA;;;AACA,oBAAKzE,IAAI,KAAK,KAAd,EAAsB;AACrB;AACA,yBAASrL,IAAI,GAAG,EAAE8P,SAAF,IAAe9P,IAAf,IAAuBA,IAAI,CAAE2I,GAAF,CAA3B,KACd0C,IAAI,GAAGyE,SAAS,GAAG,CADL,KACWC,KAAK,CAAC1J,GAAN,EAD3B,EAC0C;AAEzC,wBAAK,CAAEqJ,MAAM,GACZ1P,IAAI,CAAC+J,QAAL,CAActF,WAAd,OAAgCrC,IADpB,GAEZpC,IAAI,CAACR,QAAL,KAAkB,CAFd,KAGJ,EAAE6L,IAHH,EAGU;AAET;AACA,0BAAK4E,QAAL,EAAgB;AACfJ,kCAAU,GAAG7P,IAAI,CAAE6C,OAAF,CAAJ,KAAoB7C,IAAI,CAAE6C,OAAF,CAAJ,GAAkB,EAAtC,CAAb,CADe,CAGf;AACA;;AACA+M,mCAAW,GAAGC,UAAU,CAAE7P,IAAI,CAACmQ,QAAP,CAAV,KACZN,UAAU,CAAE7P,IAAI,CAACmQ,QAAP,CAAV,GAA8B,EADlB,CAAd;AAGAP,mCAAW,CAAEtT,IAAF,CAAX,GAAsB,CAAEsJ,OAAF,EAAWyF,IAAX,CAAtB;AACA;;AAED,0BAAKrL,IAAI,KAAKrF,IAAd,EAAqB;AACpB;AACA;AACD;AACD;AACD;AACD,eApGY,CAsGb;;;AACA0Q,kBAAI,IAAIxJ,IAAR;AACA,qBAAOwJ,IAAI,KAAK1J,KAAT,IAAoB0J,IAAI,GAAG1J,KAAP,KAAiB,CAAjB,IAAsB0J,IAAI,GAAG1J,KAAP,IAAgB,CAAjE;AACA;AACD,WAzHF;AA0HA,SA5KM;AA8KP,kBAAU,UAAUyO,MAAV,EAAkBvE,QAAlB,EAA6B;AACtC;AACA;AACA;AACA;AACA,cAAIjQ,IAAJ;AAAA,cACCd,EAAE,GAAG6J,IAAI,CAACiC,OAAL,CAAcwJ,MAAd,KAA0BzL,IAAI,CAAC0L,UAAL,CAAiBD,MAAM,CAAC3L,WAAP,EAAjB,CAA1B,IACJC,MAAM,CAACzB,KAAP,CAAc,yBAAyBmN,MAAvC,CAFF,CALsC,CAStC;AACA;AACA;;AACA,cAAKtV,EAAE,CAAE+H,OAAF,CAAP,EAAqB;AACpB,mBAAO/H,EAAE,CAAE+Q,QAAF,CAAT;AACA,WAdqC,CAgBtC;;;AACA,cAAK/Q,EAAE,CAAClB,MAAH,GAAY,CAAjB,EAAqB;AACpBgC,gBAAI,GAAG,CAAEwU,MAAF,EAAUA,MAAV,EAAkB,EAAlB,EAAsBvE,QAAtB,CAAP;AACA,mBAAOlH,IAAI,CAAC0L,UAAL,CAAgBnR,cAAhB,CAAgCkR,MAAM,CAAC3L,WAAP,EAAhC,IACNoG,YAAY,CAAC,UAAU7B,IAAV,EAAgB/E,OAAhB,EAA0B;AACtC,kBAAIqM,GAAJ;AAAA,kBACCC,OAAO,GAAGzV,EAAE,CAAEkO,IAAF,EAAQ6C,QAAR,CADb;AAAA,kBAEClS,CAAC,GAAG4W,OAAO,CAAC3W,MAFb;;AAGA,qBAAQD,CAAC,EAAT,EAAc;AACb2W,mBAAG,GAAGxR,OAAO,CAAEkK,IAAF,EAAQuH,OAAO,CAAC5W,CAAD,CAAf,CAAb;AACAqP,oBAAI,CAAEsH,GAAF,CAAJ,GAAc,EAAGrM,OAAO,CAAEqM,GAAF,CAAP,GAAiBC,OAAO,CAAC5W,CAAD,CAA3B,CAAd;AACA;AACD,aARW,CADN,GAUN,UAAUgB,IAAV,EAAiB;AAChB,qBAAOG,EAAE,CAAEH,IAAF,EAAQ,CAAR,EAAWiB,IAAX,CAAT;AACA,aAZF;AAaA;;AAED,iBAAOd,EAAP;AACA;AAjNM,OA/FiB;AAmTzB8L,aAAO,EAAE;AACR;AACA,eAAOiE,YAAY,CAAC,UAAUnK,QAAV,EAAqB;AACxC;AACA;AACA;AACA,cAAIqM,KAAK,GAAG,EAAZ;AAAA,cACCpJ,OAAO,GAAG,EADX;AAAA,cAEC6M,OAAO,GAAGzL,OAAO,CAAErE,QAAQ,CAACqC,OAAT,CAAkBlC,KAAlB,EAAyB,IAAzB,CAAF,CAFlB;AAIA,iBAAO2P,OAAO,CAAE3N,OAAF,CAAP,GACNgI,YAAY,CAAC,UAAU7B,IAAV,EAAgB/E,OAAhB,EAAyBtD,OAAzB,EAAkCgP,GAAlC,EAAwC;AACpD,gBAAIhV,IAAJ;AAAA,gBACC8V,SAAS,GAAGD,OAAO,CAAExH,IAAF,EAAQ,IAAR,EAAc2G,GAAd,EAAmB,EAAnB,CADpB;AAAA,gBAEChW,CAAC,GAAGqP,IAAI,CAACpP,MAFV,CADoD,CAKpD;;AACA,mBAAQD,CAAC,EAAT,EAAc;AACb,kBAAMgB,IAAI,GAAG8V,SAAS,CAAC9W,CAAD,CAAtB,EAA6B;AAC5BqP,oBAAI,CAACrP,CAAD,CAAJ,GAAU,EAAEsK,OAAO,CAACtK,CAAD,CAAP,GAAagB,IAAf,CAAV;AACA;AACD;AACD,WAXW,CADN,GAaN,UAAUA,IAAV,EAAgBgG,OAAhB,EAAyBgP,GAAzB,EAA+B;AAC9B5C,iBAAK,CAAC,CAAD,CAAL,GAAWpS,IAAX;AACA6V,mBAAO,CAAEzD,KAAF,EAAS,IAAT,EAAe4C,GAAf,EAAoBhM,OAApB,CAAP,CAF8B,CAG9B;;AACAoJ,iBAAK,CAAC,CAAD,CAAL,GAAW,IAAX;AACA,mBAAO,CAACpJ,OAAO,CAAC0C,GAAR,EAAR;AACA,WAnBF;AAoBA,SA5BkB,CAFX;AAgCR,eAAOwE,YAAY,CAAC,UAAUnK,QAAV,EAAqB;AACxC,iBAAO,UAAU/F,IAAV,EAAiB;AACvB,mBAAO+J,MAAM,CAAEhE,QAAF,EAAY/F,IAAZ,CAAN,CAAyBf,MAAzB,GAAkC,CAAzC;AACA,WAFD;AAGA,SAJkB,CAhCX;AAsCR,oBAAYiR,YAAY,CAAC,UAAU1K,IAAV,EAAiB;AACzCA,cAAI,GAAGA,IAAI,CAAC4C,OAAL,CAAc2E,SAAd,EAAyBC,SAAzB,CAAP;AACA,iBAAO,UAAUhN,IAAV,EAAiB;AACvB,mBAAO,CAAEA,IAAI,CAAC8T,WAAL,IAAoB9T,IAAI,CAAC+V,SAAzB,IAAsC9L,OAAO,CAAEjK,IAAF,CAA/C,EAA0DmE,OAA1D,CAAmEqB,IAAnE,IAA4E,CAAC,CAApF;AACA,WAFD;AAGA,SALuB,CAtChB;AA6CR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ0K,YAAY,CAAE,UAAU8F,IAAV,EAAiB;AACtC;AACA,cAAK,CAACxJ,WAAW,CAAC2C,IAAZ,CAAiB6G,IAAI,IAAI,EAAzB,CAAN,EAAqC;AACpCjM,kBAAM,CAACzB,KAAP,CAAc,uBAAuB0N,IAArC;AACA;;AACDA,cAAI,GAAGA,IAAI,CAAC5N,OAAL,CAAc2E,SAAd,EAAyBC,SAAzB,EAAqClD,WAArC,EAAP;AACA,iBAAO,UAAU9J,IAAV,EAAiB;AACvB,gBAAIiW,QAAJ;;AACA,eAAG;AACF,kBAAMA,QAAQ,GAAGtL,cAAc,GAC9B3K,IAAI,CAACgW,IADyB,GAE9BhW,IAAI,CAACqP,YAAL,CAAkB,UAAlB,KAAiCrP,IAAI,CAACqP,YAAL,CAAkB,MAAlB,CAFlC,EAE+D;AAE9D4G,wBAAQ,GAAGA,QAAQ,CAACnM,WAAT,EAAX;AACA,uBAAOmM,QAAQ,KAAKD,IAAb,IAAqBC,QAAQ,CAAC9R,OAAT,CAAkB6R,IAAI,GAAG,GAAzB,MAAmC,CAA/D;AACA;AACD,aARD,QAQU,CAAChW,IAAI,GAAGA,IAAI,CAAC2F,UAAb,KAA4B3F,IAAI,CAAC6E,QAAL,KAAkB,CARxD;;AASA,mBAAO,KAAP;AACA,WAZD;AAaA,SAnBmB,CApDZ;AAyER;AACA,kBAAU,UAAU7E,IAAV,EAAiB;AAC1B,cAAIkW,IAAI,GAAGlV,MAAM,CAACmV,QAAP,IAAmBnV,MAAM,CAACmV,QAAP,CAAgBD,IAA9C;AACA,iBAAOA,IAAI,IAAIA,IAAI,CAACzX,KAAL,CAAY,CAAZ,MAAoBuB,IAAI,CAAC+O,EAAxC;AACA,SA7EO;AA+ER,gBAAQ,UAAU/O,IAAV,EAAiB;AACxB,iBAAOA,IAAI,KAAK0K,OAAhB;AACA,SAjFO;AAmFR,iBAAS,UAAU1K,IAAV,EAAiB;AACzB,iBAAOA,IAAI,KAAKzB,QAAQ,CAAC6X,aAAlB,KAAoC,CAAC7X,QAAQ,CAAC8X,QAAV,IAAsB9X,QAAQ,CAAC8X,QAAT,EAA1D,KAAkF,CAAC,EAAErW,IAAI,CAAC2B,IAAL,IAAa3B,IAAI,CAACsW,IAAlB,IAA0B,CAACtW,IAAI,CAACuW,QAAlC,CAA1F;AACA,SArFO;AAuFR;AACA,mBAAWxF,oBAAoB,CAAE,KAAF,CAxFvB;AAyFR,oBAAYA,oBAAoB,CAAE,IAAF,CAzFxB;AA2FR,mBAAW,UAAU/Q,IAAV,EAAiB;AAC3B;AACA;AACA,cAAIoP,QAAQ,GAAGpP,IAAI,CAACoP,QAAL,CAActF,WAAd,EAAf;AACA,iBAAQsF,QAAQ,KAAK,OAAb,IAAwB,CAAC,CAACpP,IAAI,CAACwW,OAAhC,IAA6CpH,QAAQ,KAAK,QAAb,IAAyB,CAAC,CAACpP,IAAI,CAACyW,QAApF;AACA,SAhGO;AAkGR,oBAAY,UAAUzW,IAAV,EAAiB;AAC5B;AACA;AACA,cAAKA,IAAI,CAAC2F,UAAV,EAAuB;AACtB3F,gBAAI,CAAC2F,UAAL,CAAgB+Q,aAAhB;AACA;;AAED,iBAAO1W,IAAI,CAACyW,QAAL,KAAkB,IAAzB;AACA,SA1GO;AA4GR;AACA,iBAAS,UAAUzW,IAAV,EAAiB;AACzB;AACA;AACA;AACA;AACA,eAAMA,IAAI,GAAGA,IAAI,CAAC+T,UAAlB,EAA8B/T,IAA9B,EAAoCA,IAAI,GAAGA,IAAI,CAAC4Q,WAAhD,EAA8D;AAC7D,gBAAK5Q,IAAI,CAAC6E,QAAL,GAAgB,CAArB,EAAyB;AACxB,qBAAO,KAAP;AACA;AACD;;AACD,iBAAO,IAAP;AACA,SAxHO;AA0HR,kBAAU,UAAU7E,IAAV,EAAiB;AAC1B,iBAAO,CAACgK,IAAI,CAACiC,OAAL,CAAa,OAAb,EAAuBjM,IAAvB,CAAR;AACA,SA5HO;AA8HR;AACA,kBAAU,UAAUA,IAAV,EAAiB;AAC1B,iBAAO2M,OAAO,CAACwC,IAAR,CAAcnP,IAAI,CAACoP,QAAnB,CAAP;AACA,SAjIO;AAmIR,iBAAS,UAAUpP,IAAV,EAAiB;AACzB,iBAAO0M,OAAO,CAACyC,IAAR,CAAcnP,IAAI,CAACoP,QAAnB,CAAP;AACA,SArIO;AAuIR,kBAAU,UAAUpP,IAAV,EAAiB;AAC1B,cAAIyH,IAAI,GAAGzH,IAAI,CAACoP,QAAL,CAActF,WAAd,EAAX;AACA,iBAAOrC,IAAI,KAAK,OAAT,IAAoBzH,IAAI,CAAC2B,IAAL,KAAc,QAAlC,IAA8C8F,IAAI,KAAK,QAA9D;AACA,SA1IO;AA4IR,gBAAQ,UAAUzH,IAAV,EAAiB;AACxB,cAAIqT,IAAJ;AACA,iBAAOrT,IAAI,CAACoP,QAAL,CAActF,WAAd,OAAgC,OAAhC,IACN9J,IAAI,CAAC2B,IAAL,KAAc,MADR,MAGN;AACA;AACE,WAAC0R,IAAI,GAAGrT,IAAI,CAACqP,YAAL,CAAkB,MAAlB,CAAR,KAAsC,IAAtC,IAA8CgE,IAAI,CAACvJ,WAAL,OAAuB,MALjE,CAAP;AAMA,SApJO;AAsJR;AACA,iBAASmH,sBAAsB,CAAC,YAAW;AAC1C,iBAAO,CAAE,CAAF,CAAP;AACA,SAF8B,CAvJvB;AA2JR,gBAAQA,sBAAsB,CAAC,UAAUE,YAAV,EAAwBlS,MAAxB,EAAiC;AAC/D,iBAAO,CAAEA,MAAM,GAAG,CAAX,CAAP;AACA,SAF6B,CA3JtB;AA+JR,cAAMgS,sBAAsB,CAAC,UAAUE,YAAV,EAAwBlS,MAAxB,EAAgCiS,QAAhC,EAA2C;AACvE,iBAAO,CAAEA,QAAQ,GAAG,CAAX,GAAeA,QAAQ,GAAGjS,MAA1B,GAAmCiS,QAArC,CAAP;AACA,SAF2B,CA/JpB;AAmKR,gBAAQD,sBAAsB,CAAC,UAAUE,YAAV,EAAwBlS,MAAxB,EAAiC;AAC/D,cAAID,CAAC,GAAG,CAAR;;AACA,iBAAQA,CAAC,GAAGC,MAAZ,EAAoBD,CAAC,IAAI,CAAzB,EAA6B;AAC5BmS,wBAAY,CAACjN,IAAb,CAAmBlF,CAAnB;AACA;;AACD,iBAAOmS,YAAP;AACA,SAN6B,CAnKtB;AA2KR,eAAOF,sBAAsB,CAAC,UAAUE,YAAV,EAAwBlS,MAAxB,EAAiC;AAC9D,cAAID,CAAC,GAAG,CAAR;;AACA,iBAAQA,CAAC,GAAGC,MAAZ,EAAoBD,CAAC,IAAI,CAAzB,EAA6B;AAC5BmS,wBAAY,CAACjN,IAAb,CAAmBlF,CAAnB;AACA;;AACD,iBAAOmS,YAAP;AACA,SAN4B,CA3KrB;AAmLR,cAAMF,sBAAsB,CAAC,UAAUE,YAAV,EAAwBlS,MAAxB,EAAgCiS,QAAhC,EAA2C;AACvE,cAAIlS,CAAC,GAAGkS,QAAQ,GAAG,CAAX,GAAeA,QAAQ,GAAGjS,MAA1B,GAAmCiS,QAA3C;;AACA,iBAAQ,EAAElS,CAAF,IAAO,CAAf,GAAoB;AACnBmS,wBAAY,CAACjN,IAAb,CAAmBlF,CAAnB;AACA;;AACD,iBAAOmS,YAAP;AACA,SAN2B,CAnLpB;AA2LR,cAAMF,sBAAsB,CAAC,UAAUE,YAAV,EAAwBlS,MAAxB,EAAgCiS,QAAhC,EAA2C;AACvE,cAAIlS,CAAC,GAAGkS,QAAQ,GAAG,CAAX,GAAeA,QAAQ,GAAGjS,MAA1B,GAAmCiS,QAA3C;;AACA,iBAAQ,EAAElS,CAAF,GAAMC,MAAd,GAAwB;AACvBkS,wBAAY,CAACjN,IAAb,CAAmBlF,CAAnB;AACA;;AACD,iBAAOmS,YAAP;AACA,SAN2B;AA3LpB;AAnTgB,KAA1B;AAwfAnH,QAAI,CAACiC,OAAL,CAAa,KAAb,IAAsBjC,IAAI,CAACiC,OAAL,CAAa,IAAb,CAAtB,CAtkDoB,CAwkDpB;;AACA,SAAMjN,CAAN,IAAW;AAAE2X,WAAK,EAAE,IAAT;AAAeC,cAAQ,EAAE,IAAzB;AAA+BC,UAAI,EAAE,IAArC;AAA2CC,cAAQ,EAAE,IAArD;AAA2DC,WAAK,EAAE;AAAlE,KAAX,EAAsF;AACrF/M,UAAI,CAACiC,OAAL,CAAcjN,CAAd,IAAoB6R,iBAAiB,CAAE7R,CAAF,CAArC;AACA;;AACD,SAAMA,CAAN,IAAW;AAAEgY,YAAM,EAAE,IAAV;AAAgBC,WAAK,EAAE;AAAvB,KAAX,EAA2C;AAC1CjN,UAAI,CAACiC,OAAL,CAAcjN,CAAd,IAAoB8R,kBAAkB,CAAE9R,CAAF,CAAtC;AACA,KA9kDmB,CAglDpB;;;AACA,aAAS0W,UAAT,GAAsB,CAAE;;AACxBA,cAAU,CAAC/W,SAAX,GAAuBqL,IAAI,CAACkN,OAAL,GAAelN,IAAI,CAACiC,OAA3C;AACAjC,QAAI,CAAC0L,UAAL,GAAkB,IAAIA,UAAJ,EAAlB;;AAEAvL,YAAQ,GAAGJ,MAAM,CAACI,QAAP,GAAkB,UAAUpE,QAAV,EAAoBoR,SAApB,EAAgC;AAC5D,UAAIvB,OAAJ;AAAA,UAAapH,KAAb;AAAA,UAAoB4I,MAApB;AAAA,UAA4BzV,IAA5B;AAAA,UACC0V,KADD;AAAA,UACQ5I,MADR;AAAA,UACgB6I,UADhB;AAAA,UAECC,MAAM,GAAGlM,UAAU,CAAEtF,QAAQ,GAAG,GAAb,CAFpB;;AAIA,UAAKwR,MAAL,EAAc;AACb,eAAOJ,SAAS,GAAG,CAAH,GAAOI,MAAM,CAAC9Y,KAAP,CAAc,CAAd,CAAvB;AACA;;AAED4Y,WAAK,GAAGtR,QAAR;AACA0I,YAAM,GAAG,EAAT;AACA6I,gBAAU,GAAGtN,IAAI,CAACoK,SAAlB;;AAEA,aAAQiD,KAAR,EAAgB;AAEf;AACA,YAAK,CAACzB,OAAD,KAAapH,KAAK,GAAGpC,MAAM,CAACyC,IAAP,CAAawI,KAAb,CAArB,CAAL,EAAkD;AACjD,cAAK7I,KAAL,EAAa;AACZ;AACA6I,iBAAK,GAAGA,KAAK,CAAC5Y,KAAN,CAAa+P,KAAK,CAAC,CAAD,CAAL,CAASvP,MAAtB,KAAkCoY,KAA1C;AACA;;AACD5I,gBAAM,CAACvK,IAAP,CAAckT,MAAM,GAAG,EAAvB;AACA;;AAEDxB,eAAO,GAAG,KAAV,CAXe,CAaf;;AACA,YAAMpH,KAAK,GAAGnC,YAAY,CAACwC,IAAb,CAAmBwI,KAAnB,CAAd,EAA4C;AAC3CzB,iBAAO,GAAGpH,KAAK,CAACyB,KAAN,EAAV;AACAmH,gBAAM,CAAClT,IAAP,CAAY;AACXuF,iBAAK,EAAEmM,OADI;AAEX;AACAjU,gBAAI,EAAE6M,KAAK,CAAC,CAAD,CAAL,CAASpG,OAAT,CAAkBlC,KAAlB,EAAyB,GAAzB;AAHK,WAAZ;AAKAmR,eAAK,GAAGA,KAAK,CAAC5Y,KAAN,CAAamX,OAAO,CAAC3W,MAArB,CAAR;AACA,SAtBc,CAwBf;;;AACA,aAAM0C,IAAN,IAAcqI,IAAI,CAAC6H,MAAnB,EAA4B;AAC3B,cAAK,CAACrD,KAAK,GAAG/B,SAAS,CAAE9K,IAAF,CAAT,CAAkBkN,IAAlB,CAAwBwI,KAAxB,CAAT,MAA8C,CAACC,UAAU,CAAE3V,IAAF,CAAX,KACjD6M,KAAK,GAAG8I,UAAU,CAAE3V,IAAF,CAAV,CAAoB6M,KAApB,CADyC,CAA9C,CAAL,EAC0C;AACzCoH,mBAAO,GAAGpH,KAAK,CAACyB,KAAN,EAAV;AACAmH,kBAAM,CAAClT,IAAP,CAAY;AACXuF,mBAAK,EAAEmM,OADI;AAEXjU,kBAAI,EAAEA,IAFK;AAGX2H,qBAAO,EAAEkF;AAHE,aAAZ;AAKA6I,iBAAK,GAAGA,KAAK,CAAC5Y,KAAN,CAAamX,OAAO,CAAC3W,MAArB,CAAR;AACA;AACD;;AAED,YAAK,CAAC2W,OAAN,EAAgB;AACf;AACA;AACD,OAtD2D,CAwD5D;AACA;AACA;;;AACA,aAAOuB,SAAS,GACfE,KAAK,CAACpY,MADS,GAEfoY,KAAK,GACJtN,MAAM,CAACzB,KAAP,CAAcvC,QAAd,CADI,GAEJ;AACAsF,gBAAU,CAAEtF,QAAF,EAAY0I,MAAZ,CAAV,CAA+BhQ,KAA/B,CAAsC,CAAtC,CALF;AAMA,KAjED;;AAmEA,aAAS8Q,UAAT,CAAqB6H,MAArB,EAA8B;AAC7B,UAAIpY,CAAC,GAAG,CAAR;AAAA,UACCmI,GAAG,GAAGiQ,MAAM,CAACnY,MADd;AAAA,UAEC8G,QAAQ,GAAG,EAFZ;;AAGA,aAAQ/G,CAAC,GAAGmI,GAAZ,EAAiBnI,CAAC,EAAlB,EAAuB;AACtB+G,gBAAQ,IAAIqR,MAAM,CAACpY,CAAD,CAAN,CAAUyK,KAAtB;AACA;;AACD,aAAO1D,QAAP;AACA;;AAED,aAAS+H,aAAT,CAAwB+H,OAAxB,EAAiC2B,UAAjC,EAA6CC,IAA7C,EAAoD;AACnD,UAAIzJ,GAAG,GAAGwJ,UAAU,CAACxJ,GAArB;AAAA,UACC0J,IAAI,GAAGF,UAAU,CAACvJ,IADnB;AAAA,UAEC8B,GAAG,GAAG2H,IAAI,IAAI1J,GAFf;AAAA,UAGC2J,gBAAgB,GAAGF,IAAI,IAAI1H,GAAG,KAAK,YAHpC;AAAA,UAIC6H,QAAQ,GAAG1M,IAAI,EAJhB;AAMA,aAAOsM,UAAU,CAACxQ,KAAX,GACN;AACA,gBAAUhH,IAAV,EAAgBgG,OAAhB,EAAyBgP,GAAzB,EAA+B;AAC9B,eAAShV,IAAI,GAAGA,IAAI,CAAEgO,GAAF,CAApB,EAA+B;AAC9B,cAAKhO,IAAI,CAAC6E,QAAL,KAAkB,CAAlB,IAAuB8S,gBAA5B,EAA+C;AAC9C,mBAAO9B,OAAO,CAAE7V,IAAF,EAAQgG,OAAR,EAAiBgP,GAAjB,CAAd;AACA;AACD;;AACD,eAAO,KAAP;AACA,OATK,GAWN;AACA,gBAAUhV,IAAV,EAAgBgG,OAAhB,EAAyBgP,GAAzB,EAA+B;AAC9B,YAAI6C,QAAJ;AAAA,YAAc5C,WAAd;AAAA,YAA2BC,UAA3B;AAAA,YACC4C,QAAQ,GAAG,CAAE7M,OAAF,EAAW2M,QAAX,CADZ,CAD8B,CAI9B;;AACA,YAAK5C,GAAL,EAAW;AACV,iBAAShV,IAAI,GAAGA,IAAI,CAAEgO,GAAF,CAApB,EAA+B;AAC9B,gBAAKhO,IAAI,CAAC6E,QAAL,KAAkB,CAAlB,IAAuB8S,gBAA5B,EAA+C;AAC9C,kBAAK9B,OAAO,CAAE7V,IAAF,EAAQgG,OAAR,EAAiBgP,GAAjB,CAAZ,EAAqC;AACpC,uBAAO,IAAP;AACA;AACD;AACD;AACD,SARD,MAQO;AACN,iBAAShV,IAAI,GAAGA,IAAI,CAAEgO,GAAF,CAApB,EAA+B;AAC9B,gBAAKhO,IAAI,CAAC6E,QAAL,KAAkB,CAAlB,IAAuB8S,gBAA5B,EAA+C;AAC9CzC,wBAAU,GAAGlV,IAAI,CAAEkI,OAAF,CAAJ,KAAoBlI,IAAI,CAAEkI,OAAF,CAAJ,GAAkB,EAAtC,CAAb,CAD8C,CAG9C;AACA;;AACA+M,yBAAW,GAAGC,UAAU,CAAElV,IAAI,CAACwV,QAAP,CAAV,KAAgCN,UAAU,CAAElV,IAAI,CAACwV,QAAP,CAAV,GAA8B,EAA9D,CAAd;;AAEA,kBAAKkC,IAAI,IAAIA,IAAI,KAAK1X,IAAI,CAACoP,QAAL,CAActF,WAAd,EAAtB,EAAoD;AACnD9J,oBAAI,GAAGA,IAAI,CAAEgO,GAAF,CAAJ,IAAehO,IAAtB;AACA,eAFD,MAEO,IAAK,CAAC6X,QAAQ,GAAG5C,WAAW,CAAElF,GAAF,CAAvB,KACX8H,QAAQ,CAAE,CAAF,CAAR,KAAkB5M,OADP,IACkB4M,QAAQ,CAAE,CAAF,CAAR,KAAkBD,QADzC,EACoD;AAE1D;AACA,uBAAQE,QAAQ,CAAE,CAAF,CAAR,GAAgBD,QAAQ,CAAE,CAAF,CAAhC;AACA,eALM,MAKA;AACN;AACA5C,2BAAW,CAAElF,GAAF,CAAX,GAAqB+H,QAArB,CAFM,CAIN;;AACA,oBAAMA,QAAQ,CAAE,CAAF,CAAR,GAAgBjC,OAAO,CAAE7V,IAAF,EAAQgG,OAAR,EAAiBgP,GAAjB,CAA7B,EAAuD;AACtD,yBAAO,IAAP;AACA;AACD;AACD;AACD;AACD;;AACD,eAAO,KAAP;AACA,OAtDF;AAuDA;;AAED,aAAS+C,cAAT,CAAyBC,QAAzB,EAAoC;AACnC,aAAOA,QAAQ,CAAC/Y,MAAT,GAAkB,CAAlB,GACN,UAAUe,IAAV,EAAgBgG,OAAhB,EAAyBgP,GAAzB,EAA+B;AAC9B,YAAIhW,CAAC,GAAGgZ,QAAQ,CAAC/Y,MAAjB;;AACA,eAAQD,CAAC,EAAT,EAAc;AACb,cAAK,CAACgZ,QAAQ,CAAChZ,CAAD,CAAR,CAAagB,IAAb,EAAmBgG,OAAnB,EAA4BgP,GAA5B,CAAN,EAA0C;AACzC,mBAAO,KAAP;AACA;AACD;;AACD,eAAO,IAAP;AACA,OATK,GAUNgD,QAAQ,CAAC,CAAD,CAVT;AAWA;;AAED,aAASC,gBAAT,CAA2BlS,QAA3B,EAAqCmS,QAArC,EAA+ClP,OAA/C,EAAyD;AACxD,UAAIhK,CAAC,GAAG,CAAR;AAAA,UACCmI,GAAG,GAAG+Q,QAAQ,CAACjZ,MADhB;;AAEA,aAAQD,CAAC,GAAGmI,GAAZ,EAAiBnI,CAAC,EAAlB,EAAuB;AACtB+K,cAAM,CAAEhE,QAAF,EAAYmS,QAAQ,CAAClZ,CAAD,CAApB,EAAyBgK,OAAzB,CAAN;AACA;;AACD,aAAOA,OAAP;AACA;;AAED,aAASmP,QAAT,CAAmBrC,SAAnB,EAA8B/O,GAA9B,EAAmC8K,MAAnC,EAA2C7L,OAA3C,EAAoDgP,GAApD,EAA0D;AACzD,UAAIhV,IAAJ;AAAA,UACCoY,YAAY,GAAG,EADhB;AAAA,UAECpZ,CAAC,GAAG,CAFL;AAAA,UAGCmI,GAAG,GAAG2O,SAAS,CAAC7W,MAHjB;AAAA,UAICoZ,MAAM,GAAGtR,GAAG,IAAI,IAJjB;;AAMA,aAAQ/H,CAAC,GAAGmI,GAAZ,EAAiBnI,CAAC,EAAlB,EAAuB;AACtB,YAAMgB,IAAI,GAAG8V,SAAS,CAAC9W,CAAD,CAAtB,EAA6B;AAC5B,cAAK,CAAC6S,MAAD,IAAWA,MAAM,CAAE7R,IAAF,EAAQgG,OAAR,EAAiBgP,GAAjB,CAAtB,EAA+C;AAC9CoD,wBAAY,CAAClU,IAAb,CAAmBlE,IAAnB;;AACA,gBAAKqY,MAAL,EAAc;AACbtR,iBAAG,CAAC7C,IAAJ,CAAUlF,CAAV;AACA;AACD;AACD;AACD;;AAED,aAAOoZ,YAAP;AACA;;AAED,aAASE,UAAT,CAAqBlE,SAArB,EAAgCrO,QAAhC,EAA0C8P,OAA1C,EAAmD0C,UAAnD,EAA+DC,UAA/D,EAA2EC,YAA3E,EAA0F;AACzF,UAAKF,UAAU,IAAI,CAACA,UAAU,CAAErQ,OAAF,CAA9B,EAA4C;AAC3CqQ,kBAAU,GAAGD,UAAU,CAAEC,UAAF,CAAvB;AACA;;AACD,UAAKC,UAAU,IAAI,CAACA,UAAU,CAAEtQ,OAAF,CAA9B,EAA4C;AAC3CsQ,kBAAU,GAAGF,UAAU,CAAEE,UAAF,EAAcC,YAAd,CAAvB;AACA;;AACD,aAAOvI,YAAY,CAAC,UAAU7B,IAAV,EAAgBrF,OAAhB,EAAyBhD,OAAzB,EAAkCgP,GAAlC,EAAwC;AAC3D,YAAI0D,IAAJ;AAAA,YAAU1Z,CAAV;AAAA,YAAagB,IAAb;AAAA,YACC2Y,MAAM,GAAG,EADV;AAAA,YAECC,OAAO,GAAG,EAFX;AAAA,YAGCC,WAAW,GAAG7P,OAAO,CAAC/J,MAHvB;AAAA,YAKC;AACAwH,aAAK,GAAG4H,IAAI,IAAI4J,gBAAgB,CAAElS,QAAQ,IAAI,GAAd,EAAmBC,OAAO,CAACnB,QAAR,GAAmB,CAAEmB,OAAF,CAAnB,GAAiCA,OAApD,EAA6D,EAA7D,CANjC;AAAA,YAQC;AACA8S,iBAAS,GAAG1E,SAAS,KAAM/F,IAAI,IAAI,CAACtI,QAAf,CAAT,GACXoS,QAAQ,CAAE1R,KAAF,EAASkS,MAAT,EAAiBvE,SAAjB,EAA4BpO,OAA5B,EAAqCgP,GAArC,CADG,GAEXvO,KAXF;AAAA,YAaCsS,UAAU,GAAGlD,OAAO,GACnB;AACA2C,kBAAU,KAAMnK,IAAI,GAAG+F,SAAH,GAAeyE,WAAW,IAAIN,UAAxC,CAAV,GAEC;AACA,UAHD,GAKC;AACAvP,eARkB,GASnB8P,SAtBF,CAD2D,CAyB3D;;AACA,YAAKjD,OAAL,EAAe;AACdA,iBAAO,CAAEiD,SAAF,EAAaC,UAAb,EAAyB/S,OAAzB,EAAkCgP,GAAlC,CAAP;AACA,SA5B0D,CA8B3D;;;AACA,YAAKuD,UAAL,EAAkB;AACjBG,cAAI,GAAGP,QAAQ,CAAEY,UAAF,EAAcH,OAAd,CAAf;AACAL,oBAAU,CAAEG,IAAF,EAAQ,EAAR,EAAY1S,OAAZ,EAAqBgP,GAArB,CAAV,CAFiB,CAIjB;;AACAhW,WAAC,GAAG0Z,IAAI,CAACzZ,MAAT;;AACA,iBAAQD,CAAC,EAAT,EAAc;AACb,gBAAMgB,IAAI,GAAG0Y,IAAI,CAAC1Z,CAAD,CAAjB,EAAwB;AACvB+Z,wBAAU,CAAEH,OAAO,CAAC5Z,CAAD,CAAT,CAAV,GAA2B,EAAE8Z,SAAS,CAAEF,OAAO,CAAC5Z,CAAD,CAAT,CAAT,GAA0BgB,IAA5B,CAA3B;AACA;AACD;AACD;;AAED,YAAKqO,IAAL,EAAY;AACX,cAAKmK,UAAU,IAAIpE,SAAnB,EAA+B;AAC9B,gBAAKoE,UAAL,EAAkB;AACjB;AACAE,kBAAI,GAAG,EAAP;AACA1Z,eAAC,GAAG+Z,UAAU,CAAC9Z,MAAf;;AACA,qBAAQD,CAAC,EAAT,EAAc;AACb,oBAAMgB,IAAI,GAAG+Y,UAAU,CAAC/Z,CAAD,CAAvB,EAA8B;AAC7B;AACA0Z,sBAAI,CAACxU,IAAL,CAAY4U,SAAS,CAAC9Z,CAAD,CAAT,GAAegB,IAA3B;AACA;AACD;;AACDwY,wBAAU,CAAE,IAAF,EAASO,UAAU,GAAG,EAAtB,EAA2BL,IAA3B,EAAiC1D,GAAjC,CAAV;AACA,aAZ6B,CAc9B;;;AACAhW,aAAC,GAAG+Z,UAAU,CAAC9Z,MAAf;;AACA,mBAAQD,CAAC,EAAT,EAAc;AACb,kBAAK,CAACgB,IAAI,GAAG+Y,UAAU,CAAC/Z,CAAD,CAAlB,KACJ,CAAC0Z,IAAI,GAAGF,UAAU,GAAGrU,OAAO,CAAEkK,IAAF,EAAQrO,IAAR,CAAV,GAA2B2Y,MAAM,CAAC3Z,CAAD,CAAnD,IAA0D,CAAC,CAD5D,EACgE;AAE/DqP,oBAAI,CAACqK,IAAD,CAAJ,GAAa,EAAE1P,OAAO,CAAC0P,IAAD,CAAP,GAAgB1Y,IAAlB,CAAb;AACA;AACD;AACD,WAxBU,CA0BZ;;AACC,SA3BD,MA2BO;AACN+Y,oBAAU,GAAGZ,QAAQ,CACpBY,UAAU,KAAK/P,OAAf,GACC+P,UAAU,CAACxR,MAAX,CAAmBsR,WAAnB,EAAgCE,UAAU,CAAC9Z,MAA3C,CADD,GAEC8Z,UAHmB,CAArB;;AAKA,cAAKP,UAAL,EAAkB;AACjBA,sBAAU,CAAE,IAAF,EAAQxP,OAAR,EAAiB+P,UAAjB,EAA6B/D,GAA7B,CAAV;AACA,WAFD,MAEO;AACN9Q,gBAAI,CAACZ,KAAL,CAAY0F,OAAZ,EAAqB+P,UAArB;AACA;AACD;AACD,OAnFkB,CAAnB;AAoFA;;AAED,aAASC,iBAAT,CAA4B5B,MAA5B,EAAqC;AACpC,UAAI6B,YAAJ;AAAA,UAAkBpD,OAAlB;AAAA,UAA2BzO,CAA3B;AAAA,UACCD,GAAG,GAAGiQ,MAAM,CAACnY,MADd;AAAA,UAECia,eAAe,GAAGlP,IAAI,CAACmK,QAAL,CAAeiD,MAAM,CAAC,CAAD,CAAN,CAAUzV,IAAzB,CAFnB;AAAA,UAGCwX,gBAAgB,GAAGD,eAAe,IAAIlP,IAAI,CAACmK,QAAL,CAAc,GAAd,CAHvC;AAAA,UAICnV,CAAC,GAAGka,eAAe,GAAG,CAAH,GAAO,CAJ3B;AAAA,UAMC;AACAE,kBAAY,GAAGtL,aAAa,CAAE,UAAU9N,IAAV,EAAiB;AAC9C,eAAOA,IAAI,KAAKiZ,YAAhB;AACA,OAF2B,EAEzBE,gBAFyB,EAEP,IAFO,CAP7B;AAAA,UAUCE,eAAe,GAAGvL,aAAa,CAAE,UAAU9N,IAAV,EAAiB;AACjD,eAAOmE,OAAO,CAAE8U,YAAF,EAAgBjZ,IAAhB,CAAP,GAAgC,CAAC,CAAxC;AACA,OAF8B,EAE5BmZ,gBAF4B,EAEV,IAFU,CAVhC;AAAA,UAaCnB,QAAQ,GAAG,CAAE,UAAUhY,IAAV,EAAgBgG,OAAhB,EAAyBgP,GAAzB,EAA+B;AAC3C,YAAItO,GAAG,GAAK,CAACwS,eAAD,KAAsBlE,GAAG,IAAIhP,OAAO,KAAKsE,gBAAzC,CAAF,KACT,CAAC2O,YAAY,GAAGjT,OAAhB,EAAyBnB,QAAzB,GACCuU,YAAY,CAAEpZ,IAAF,EAAQgG,OAAR,EAAiBgP,GAAjB,CADb,GAECqE,eAAe,CAAErZ,IAAF,EAAQgG,OAAR,EAAiBgP,GAAjB,CAHP,CAAV,CAD2C,CAK3C;;AACAiE,oBAAY,GAAG,IAAf;AACA,eAAOvS,GAAP;AACA,OARU,CAbZ;;AAuBA,aAAQ1H,CAAC,GAAGmI,GAAZ,EAAiBnI,CAAC,EAAlB,EAAuB;AACtB,YAAM6W,OAAO,GAAG7L,IAAI,CAACmK,QAAL,CAAeiD,MAAM,CAACpY,CAAD,CAAN,CAAU2C,IAAzB,CAAhB,EAAmD;AAClDqW,kBAAQ,GAAG,CAAElK,aAAa,CAACiK,cAAc,CAAEC,QAAF,CAAf,EAA6BnC,OAA7B,CAAf,CAAX;AACA,SAFD,MAEO;AACNA,iBAAO,GAAG7L,IAAI,CAAC6H,MAAL,CAAauF,MAAM,CAACpY,CAAD,CAAN,CAAU2C,IAAvB,EAA8B2B,KAA9B,CAAqC,IAArC,EAA2C8T,MAAM,CAACpY,CAAD,CAAN,CAAUsK,OAArD,CAAV,CADM,CAGN;;AACA,cAAKuM,OAAO,CAAE3N,OAAF,CAAZ,EAA0B;AACzB;AACAd,aAAC,GAAG,EAAEpI,CAAN;;AACA,mBAAQoI,CAAC,GAAGD,GAAZ,EAAiBC,CAAC,EAAlB,EAAuB;AACtB,kBAAK4C,IAAI,CAACmK,QAAL,CAAeiD,MAAM,CAAChQ,CAAD,CAAN,CAAUzF,IAAzB,CAAL,EAAuC;AACtC;AACA;AACD;;AACD,mBAAO2W,UAAU,CAChBtZ,CAAC,GAAG,CAAJ,IAAS+Y,cAAc,CAAEC,QAAF,CADP,EAEhBhZ,CAAC,GAAG,CAAJ,IAASuQ,UAAU,EAClB;AACA6H,kBAAM,CAAC3Y,KAAP,CAAc,CAAd,EAAiBO,CAAC,GAAG,CAArB,EAAyBiF,MAAzB,CAAgC;AAAEwF,mBAAK,EAAE2N,MAAM,CAAEpY,CAAC,GAAG,CAAN,CAAN,CAAgB2C,IAAhB,KAAyB,GAAzB,GAA+B,GAA/B,GAAqC;AAA9C,aAAhC,CAFkB,CAAV,CAGPyG,OAHO,CAGElC,KAHF,EAGS,IAHT,CAFO,EAMhB2P,OANgB,EAOhB7W,CAAC,GAAGoI,CAAJ,IAAS4R,iBAAiB,CAAE5B,MAAM,CAAC3Y,KAAP,CAAcO,CAAd,EAAiBoI,CAAjB,CAAF,CAPV,EAQhBA,CAAC,GAAGD,GAAJ,IAAW6R,iBAAiB,CAAG5B,MAAM,GAAGA,MAAM,CAAC3Y,KAAP,CAAc2I,CAAd,CAAZ,CARZ,EAShBA,CAAC,GAAGD,GAAJ,IAAWoI,UAAU,CAAE6H,MAAF,CATL,CAAjB;AAWA;;AACDY,kBAAQ,CAAC9T,IAAT,CAAe2R,OAAf;AACA;AACD;;AAED,aAAOkC,cAAc,CAAEC,QAAF,CAArB;AACA;;AAED,aAASsB,wBAAT,CAAmCC,eAAnC,EAAoDC,WAApD,EAAkE;AACjE,UAAIC,KAAK,GAAGD,WAAW,CAACva,MAAZ,GAAqB,CAAjC;AAAA,UACCya,SAAS,GAAGH,eAAe,CAACta,MAAhB,GAAyB,CADtC;AAAA,UAEC0a,YAAY,GAAG,UAAUtL,IAAV,EAAgBrI,OAAhB,EAAyBgP,GAAzB,EAA8BhM,OAA9B,EAAuC4Q,SAAvC,EAAmD;AACjE,YAAI5Z,IAAJ;AAAA,YAAUoH,CAAV;AAAA,YAAayO,OAAb;AAAA,YACCgE,YAAY,GAAG,CADhB;AAAA,YAEC7a,CAAC,GAAG,GAFL;AAAA,YAGC8W,SAAS,GAAGzH,IAAI,IAAI,EAHrB;AAAA,YAICyL,UAAU,GAAG,EAJd;AAAA,YAKCC,aAAa,GAAGzP,gBALjB;AAAA,YAMC;AACA7D,aAAK,GAAG4H,IAAI,IAAIqL,SAAS,IAAI1P,IAAI,CAAC+H,IAAL,CAAU,KAAV,EAAkB,GAAlB,EAAuB6H,SAAvB,CAP9B;AAAA,YAQC;AACAI,qBAAa,GAAI/O,OAAO,IAAI8O,aAAa,IAAI,IAAjB,GAAwB,CAAxB,GAA4B1X,IAAI,CAAC8F,MAAL,MAAiB,GAT1E;AAAA,YAUChB,GAAG,GAAGV,KAAK,CAACxH,MAVb;;AAYA,YAAK2a,SAAL,EAAiB;AAChBtP,0BAAgB,GAAGtE,OAAO,KAAKzH,QAAZ,IAAwByH,OAAxB,IAAmC4T,SAAtD;AACA,SAfgE,CAiBjE;AACA;AACA;;;AACA,eAAQ5a,CAAC,KAAKmI,GAAN,IAAa,CAACnH,IAAI,GAAGyG,KAAK,CAACzH,CAAD,CAAb,KAAqB,IAA1C,EAAgDA,CAAC,EAAjD,EAAsD;AACrD,cAAK0a,SAAS,IAAI1Z,IAAlB,EAAyB;AACxBoH,aAAC,GAAG,CAAJ;;AACA,gBAAK,CAACpB,OAAD,IAAYhG,IAAI,CAAC4O,aAAL,KAAuBrQ,QAAxC,EAAmD;AAClDkM,yBAAW,CAAEzK,IAAF,CAAX;AACAgV,iBAAG,GAAG,CAACrK,cAAP;AACA;;AACD,mBAASkL,OAAO,GAAG0D,eAAe,CAACnS,CAAC,EAAF,CAAlC,EAA2C;AAC1C,kBAAKyO,OAAO,CAAE7V,IAAF,EAAQgG,OAAO,IAAIzH,QAAnB,EAA6ByW,GAA7B,CAAZ,EAAgD;AAC/ChM,uBAAO,CAAC9E,IAAR,CAAclE,IAAd;AACA;AACA;AACD;;AACD,gBAAK4Z,SAAL,EAAiB;AAChB3O,qBAAO,GAAG+O,aAAV;AACA;AACD,WAhBoD,CAkBrD;;;AACA,cAAKP,KAAL,EAAa;AACZ;AACA,gBAAMzZ,IAAI,GAAG,CAAC6V,OAAD,IAAY7V,IAAzB,EAAiC;AAChC6Z,0BAAY;AACZ,aAJW,CAMZ;;;AACA,gBAAKxL,IAAL,EAAY;AACXyH,uBAAS,CAAC5R,IAAV,CAAgBlE,IAAhB;AACA;AACD;AACD,SAlDgE,CAoDjE;AACA;;;AACA6Z,oBAAY,IAAI7a,CAAhB,CAtDiE,CAwDjE;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,YAAKya,KAAK,IAAIza,CAAC,KAAK6a,YAApB,EAAmC;AAClCzS,WAAC,GAAG,CAAJ;;AACA,iBAASyO,OAAO,GAAG2D,WAAW,CAACpS,CAAC,EAAF,CAA9B,EAAuC;AACtCyO,mBAAO,CAAEC,SAAF,EAAagE,UAAb,EAAyB9T,OAAzB,EAAkCgP,GAAlC,CAAP;AACA;;AAED,cAAK3G,IAAL,EAAY;AACX;AACA,gBAAKwL,YAAY,GAAG,CAApB,EAAwB;AACvB,qBAAQ7a,CAAC,EAAT,EAAc;AACb,oBAAK,EAAE8W,SAAS,CAAC9W,CAAD,CAAT,IAAgB8a,UAAU,CAAC9a,CAAD,CAA5B,CAAL,EAAwC;AACvC8a,4BAAU,CAAC9a,CAAD,CAAV,GAAgB0M,GAAG,CAACxK,IAAJ,CAAU8H,OAAV,CAAhB;AACA;AACD;AACD,aARU,CAUX;;;AACA8Q,sBAAU,GAAG3B,QAAQ,CAAE2B,UAAF,CAArB;AACA,WAlBiC,CAoBlC;;;AACA5V,cAAI,CAACZ,KAAL,CAAY0F,OAAZ,EAAqB8Q,UAArB,EArBkC,CAuBlC;;AACA,cAAKF,SAAS,IAAI,CAACvL,IAAd,IAAsByL,UAAU,CAAC7a,MAAX,GAAoB,CAA1C,IACF4a,YAAY,GAAGL,WAAW,CAACva,MAA7B,GAAwC,CADzC,EAC6C;AAE5C8K,kBAAM,CAAC2J,UAAP,CAAmB1K,OAAnB;AACA;AACD,SA5FgE,CA8FjE;;;AACA,YAAK4Q,SAAL,EAAiB;AAChB3O,iBAAO,GAAG+O,aAAV;AACA1P,0BAAgB,GAAGyP,aAAnB;AACA;;AAED,eAAOjE,SAAP;AACA,OAvGF;;AAyGA,aAAO2D,KAAK,GACXvJ,YAAY,CAAEyJ,YAAF,CADD,GAEXA,YAFD;AAGA;;AAEDvP,WAAO,GAAGL,MAAM,CAACK,OAAP,GAAiB,UAAUrE,QAAV,EAAoByI;AAAM;AAA1B,MAAoD;AAC9E,UAAIxP,CAAJ;AAAA,UACCwa,WAAW,GAAG,EADf;AAAA,UAECD,eAAe,GAAG,EAFnB;AAAA,UAGChC,MAAM,GAAGjM,aAAa,CAAEvF,QAAQ,GAAG,GAAb,CAHvB;;AAKA,UAAK,CAACwR,MAAN,EAAe;AACd;AACA,YAAK,CAAC/I,KAAN,EAAc;AACbA,eAAK,GAAGrE,QAAQ,CAAEpE,QAAF,CAAhB;AACA;;AACD/G,SAAC,GAAGwP,KAAK,CAACvP,MAAV;;AACA,eAAQD,CAAC,EAAT,EAAc;AACbuY,gBAAM,GAAGyB,iBAAiB,CAAExK,KAAK,CAACxP,CAAD,CAAP,CAA1B;;AACA,cAAKuY,MAAM,CAAErP,OAAF,CAAX,EAAyB;AACxBsR,uBAAW,CAACtV,IAAZ,CAAkBqT,MAAlB;AACA,WAFD,MAEO;AACNgC,2BAAe,CAACrV,IAAhB,CAAsBqT,MAAtB;AACA;AACD,SAba,CAed;;;AACAA,cAAM,GAAGjM,aAAa,CAAEvF,QAAF,EAAYuT,wBAAwB,CAAEC,eAAF,EAAmBC,WAAnB,CAApC,CAAtB,CAhBc,CAkBd;;AACAjC,cAAM,CAACxR,QAAP,GAAkBA,QAAlB;AACA;;AACD,aAAOwR,MAAP;AACA,KA5BD;AA8BA;;;;;;;;;;;AASAlN,UAAM,GAAGN,MAAM,CAACM,MAAP,GAAgB,UAAUtE,QAAV,EAAoBC,OAApB,EAA6BgD,OAA7B,EAAsCqF,IAAtC,EAA6C;AACrE,UAAIrP,CAAJ;AAAA,UAAOoY,MAAP;AAAA,UAAe6C,KAAf;AAAA,UAAsBtY,IAAtB;AAAA,UAA4BoQ,IAA5B;AAAA,UACCmI,QAAQ,GAAG,OAAOnU,QAAP,KAAoB,UAApB,IAAkCA,QAD9C;AAAA,UAECyI,KAAK,GAAG,CAACH,IAAD,IAASlE,QAAQ,CAAGpE,QAAQ,GAAGmU,QAAQ,CAACnU,QAAT,IAAqBA,QAAnC,CAF1B;AAIAiD,aAAO,GAAGA,OAAO,IAAI,EAArB,CALqE,CAOrE;AACA;;AACA,UAAKwF,KAAK,CAACvP,MAAN,KAAiB,CAAtB,EAA0B;AAEzB;AACAmY,cAAM,GAAG5I,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAL,CAAS/P,KAAT,CAAgB,CAAhB,CAApB;;AACA,YAAK2Y,MAAM,CAACnY,MAAP,GAAgB,CAAhB,IAAqB,CAACgb,KAAK,GAAG7C,MAAM,CAAC,CAAD,CAAf,EAAoBzV,IAApB,KAA6B,IAAlD,IACHqE,OAAO,CAACnB,QAAR,KAAqB,CADlB,IACuB8F,cADvB,IACyCX,IAAI,CAACmK,QAAL,CAAeiD,MAAM,CAAC,CAAD,CAAN,CAAUzV,IAAzB,CAD9C,EACgF;AAE/EqE,iBAAO,GAAG,CAAEgE,IAAI,CAAC+H,IAAL,CAAU,IAAV,EAAiBkI,KAAK,CAAC3Q,OAAN,CAAc,CAAd,EAAiBlB,OAAjB,CAAyB2E,SAAzB,EAAoCC,SAApC,CAAjB,EAAiEhH,OAAjE,KAA8E,EAAhF,EAAqF,CAArF,CAAV;;AACA,cAAK,CAACA,OAAN,EAAgB;AACf,mBAAOgD,OAAP,CADe,CAGhB;AACC,WAJD,MAIO,IAAKkR,QAAL,EAAgB;AACtBlU,mBAAO,GAAGA,OAAO,CAACL,UAAlB;AACA;;AAEDI,kBAAQ,GAAGA,QAAQ,CAACtH,KAAT,CAAgB2Y,MAAM,CAACnH,KAAP,GAAexG,KAAf,CAAqBxK,MAArC,CAAX;AACA,SAjBwB,CAmBzB;;;AACAD,SAAC,GAAGyN,SAAS,CAAC,cAAD,CAAT,CAA0B0C,IAA1B,CAAgCpJ,QAAhC,IAA6C,CAA7C,GAAiDqR,MAAM,CAACnY,MAA5D;;AACA,eAAQD,CAAC,EAAT,EAAc;AACbib,eAAK,GAAG7C,MAAM,CAACpY,CAAD,CAAd,CADa,CAGb;;AACA,cAAKgL,IAAI,CAACmK,QAAL,CAAgBxS,IAAI,GAAGsY,KAAK,CAACtY,IAA7B,CAAL,EAA4C;AAC3C;AACA;;AACD,cAAMoQ,IAAI,GAAG/H,IAAI,CAAC+H,IAAL,CAAWpQ,IAAX,CAAb,EAAkC;AACjC;AACA,gBAAM0M,IAAI,GAAG0D,IAAI,CAChBkI,KAAK,CAAC3Q,OAAN,CAAc,CAAd,EAAiBlB,OAAjB,CAA0B2E,SAA1B,EAAqCC,SAArC,CADgB,EAEhBF,QAAQ,CAACqC,IAAT,CAAeiI,MAAM,CAAC,CAAD,CAAN,CAAUzV,IAAzB,KAAmC8N,WAAW,CAAEzJ,OAAO,CAACL,UAAV,CAA9C,IAAwEK,OAFxD,CAAjB,EAGK;AAEJ;AACAoR,oBAAM,CAAC7P,MAAP,CAAevI,CAAf,EAAkB,CAAlB;AACA+G,sBAAQ,GAAGsI,IAAI,CAACpP,MAAL,IAAesQ,UAAU,CAAE6H,MAAF,CAApC;;AACA,kBAAK,CAACrR,QAAN,EAAiB;AAChB7B,oBAAI,CAACZ,KAAL,CAAY0F,OAAZ,EAAqBqF,IAArB;AACA,uBAAOrF,OAAP;AACA;;AAED;AACA;AACD;AACD;AACD,OAxDoE,CA0DrE;AACA;;;AACA,OAAEkR,QAAQ,IAAI9P,OAAO,CAAErE,QAAF,EAAYyI,KAAZ,CAArB,EACCH,IADD,EAECrI,OAFD,EAGC,CAAC2E,cAHF,EAIC3B,OAJD,EAKC,CAAChD,OAAD,IAAY8G,QAAQ,CAACqC,IAAT,CAAepJ,QAAf,KAA6B0J,WAAW,CAAEzJ,OAAO,CAACL,UAAV,CAApD,IAA8EK,OAL/E;AAOA,aAAOgD,OAAP;AACA,KApED,CA3jEoB,CAioEpB;AAEA;;;AACAtE,WAAO,CAACmP,UAAR,GAAqB3L,OAAO,CAAC2B,KAAR,CAAc,EAAd,EAAkBvC,IAAlB,CAAwBiE,SAAxB,EAAoCiE,IAApC,CAAyC,EAAzC,MAAiDtH,OAAtE,CApoEoB,CAsoEpB;AACA;;AACAxD,WAAO,CAACkP,gBAAR,GAA2B,CAAC,CAACpJ,YAA7B,CAxoEoB,CA0oEpB;;AACAC,eAAW,GA3oES,CA6oEpB;AACA;;AACA/F,WAAO,CAACqO,YAAR,GAAuB5C,MAAM,CAAC,UAAUC,EAAV,EAAe;AAC5C;AACA,aAAOA,EAAE,CAACuC,uBAAH,CAA4BpU,QAAQ,CAACgH,aAAT,CAAuB,UAAvB,CAA5B,IAAmE,CAA1E;AACA,KAH4B,CAA7B,CA/oEoB,CAopEpB;AACA;AACA;;AACA,QAAK,CAAC4K,MAAM,CAAC,UAAUC,EAAV,EAAe;AAC3BA,QAAE,CAAC+B,SAAH,GAAe,kBAAf;AACA,aAAO/B,EAAE,CAAC2D,UAAH,CAAc1E,YAAd,CAA2B,MAA3B,MAAuC,GAA9C;AACA,KAHW,CAAZ,EAGK;AACJgB,eAAS,CAAE,wBAAF,EAA4B,UAAUrQ,IAAV,EAAgByH,IAAhB,EAAsByC,KAAtB,EAA8B;AAClE,YAAK,CAACA,KAAN,EAAc;AACb,iBAAOlK,IAAI,CAACqP,YAAL,CAAmB5H,IAAnB,EAAyBA,IAAI,CAACqC,WAAL,OAAuB,MAAvB,GAAgC,CAAhC,GAAoC,CAA7D,CAAP;AACA;AACD,OAJQ,CAAT;AAKA,KAhqEmB,CAkqEpB;AACA;;;AACA,QAAK,CAACpF,OAAO,CAACsH,UAAT,IAAuB,CAACmE,MAAM,CAAC,UAAUC,EAAV,EAAe;AAClDA,QAAE,CAAC+B,SAAH,GAAe,UAAf;AACA/B,QAAE,CAAC2D,UAAH,CAAczE,YAAd,CAA4B,OAA5B,EAAqC,EAArC;AACA,aAAOc,EAAE,CAAC2D,UAAH,CAAc1E,YAAd,CAA4B,OAA5B,MAA0C,EAAjD;AACA,KAJkC,CAAnC,EAIK;AACJgB,eAAS,CAAE,OAAF,EAAW,UAAUrQ,IAAV,EAAgByH,IAAhB,EAAsByC,KAAtB,EAA8B;AACjD,YAAK,CAACA,KAAD,IAAUlK,IAAI,CAACoP,QAAL,CAActF,WAAd,OAAgC,OAA/C,EAAyD;AACxD,iBAAO9J,IAAI,CAACma,YAAZ;AACA;AACD,OAJQ,CAAT;AAKA,KA9qEmB,CAgrEpB;AACA;;;AACA,QAAK,CAAChK,MAAM,CAAC,UAAUC,EAAV,EAAe;AAC3B,aAAOA,EAAE,CAACf,YAAH,CAAgB,UAAhB,KAA+B,IAAtC;AACA,KAFW,CAAZ,EAEK;AACJgB,eAAS,CAAExE,QAAF,EAAY,UAAU7L,IAAV,EAAgByH,IAAhB,EAAsByC,KAAtB,EAA8B;AAClD,YAAIoJ,GAAJ;;AACA,YAAK,CAACpJ,KAAN,EAAc;AACb,iBAAOlK,IAAI,CAAEyH,IAAF,CAAJ,KAAiB,IAAjB,GAAwBA,IAAI,CAACqC,WAAL,EAAxB,GACL,CAACwJ,GAAG,GAAGtT,IAAI,CAACgS,gBAAL,CAAuBvK,IAAvB,CAAP,KAAyC6L,GAAG,CAACC,SAA7C,GACAD,GAAG,CAAC7J,KADJ,GAED,IAHD;AAIA;AACD,OARQ,CAAT;AASA;;AAED,WAAOM,MAAP;AAEC,GAlsED,CAksEI/I,MAlsEJ,CAXA;;AAitEA8E,QAAM,CAACiM,IAAP,GAAchI,MAAd;AACAjE,QAAM,CAACqN,IAAP,GAAcpJ,MAAM,CAACkK,SAArB,CA7pFiF,CA+pFjF;;AACAnO,QAAM,CAACqN,IAAP,CAAa,GAAb,IAAqBrN,MAAM,CAACqN,IAAP,CAAYlH,OAAjC;AACAnG,QAAM,CAAC4N,UAAP,GAAoB5N,MAAM,CAACsU,MAAP,GAAgBrQ,MAAM,CAAC2J,UAA3C;AACA5N,QAAM,CAACN,IAAP,GAAcuE,MAAM,CAACE,OAArB;AACAnE,QAAM,CAACuU,QAAP,GAAkBtQ,MAAM,CAACG,KAAzB;AACApE,QAAM,CAACgF,QAAP,GAAkBf,MAAM,CAACe,QAAzB;AACAhF,QAAM,CAACwU,cAAP,GAAwBvQ,MAAM,CAACyJ,MAA/B;;AAKA,MAAIxF,GAAG,GAAG,UAAUhO,IAAV,EAAgBgO,GAAhB,EAAqBuM,KAArB,EAA6B;AACtC,QAAI3E,OAAO,GAAG,EAAd;AAAA,QACC4E,QAAQ,GAAGD,KAAK,KAAKtS,SADtB;;AAGA,WAAQ,CAAEjI,IAAI,GAAGA,IAAI,CAAEgO,GAAF,CAAb,KAA0BhO,IAAI,CAAC6E,QAAL,KAAkB,CAApD,EAAwD;AACvD,UAAK7E,IAAI,CAAC6E,QAAL,KAAkB,CAAvB,EAA2B;AAC1B,YAAK2V,QAAQ,IAAI1U,MAAM,CAAE9F,IAAF,CAAN,CAAeya,EAAf,CAAmBF,KAAnB,CAAjB,EAA8C;AAC7C;AACA;;AACD3E,eAAO,CAAC1R,IAAR,CAAclE,IAAd;AACA;AACD;;AACD,WAAO4V,OAAP;AACA,GAbD;;AAgBA,MAAI8E,QAAQ,GAAG,UAAUC,CAAV,EAAa3a,IAAb,EAAoB;AAClC,QAAI4V,OAAO,GAAG,EAAd;;AAEA,WAAQ+E,CAAR,EAAWA,CAAC,GAAGA,CAAC,CAAC/J,WAAjB,EAA+B;AAC9B,UAAK+J,CAAC,CAAC9V,QAAF,KAAe,CAAf,IAAoB8V,CAAC,KAAK3a,IAA/B,EAAsC;AACrC4V,eAAO,CAAC1R,IAAR,CAAcyW,CAAd;AACA;AACD;;AAED,WAAO/E,OAAP;AACA,GAVD;;AAaA,MAAIgF,aAAa,GAAG9U,MAAM,CAACqN,IAAP,CAAY3E,KAAZ,CAAkBqM,YAAtC;;AAIA,WAASzL,QAAT,CAAmBpP,IAAnB,EAAyByH,IAAzB,EAAgC;AAE9B,WAAOzH,IAAI,CAACoP,QAAL,IAAiBpP,IAAI,CAACoP,QAAL,CAActF,WAAd,OAAgCrC,IAAI,CAACqC,WAAL,EAAxD;AAED;;AAAA;AACD,MAAIgR,UAAU,GAAK,iEAAnB,CAhtFiF,CAotFjF;;AACA,WAASC,MAAT,CAAiB3H,QAAjB,EAA2B4H,SAA3B,EAAsCC,GAAtC,EAA4C;AAC3C,QAAKtW,UAAU,CAAEqW,SAAF,CAAf,EAA+B;AAC9B,aAAOlV,MAAM,CAACqD,IAAP,CAAaiK,QAAb,EAAuB,UAAUpT,IAAV,EAAgBhB,CAAhB,EAAoB;AACjD,eAAO,CAAC,CAACgc,SAAS,CAAC9Z,IAAV,CAAgBlB,IAAhB,EAAsBhB,CAAtB,EAAyBgB,IAAzB,CAAF,KAAsCib,GAA7C;AACA,OAFM,CAAP;AAGA,KAL0C,CAO3C;;;AACA,QAAKD,SAAS,CAACnW,QAAf,EAA0B;AACzB,aAAOiB,MAAM,CAACqD,IAAP,CAAaiK,QAAb,EAAuB,UAAUpT,IAAV,EAAiB;AAC9C,eAASA,IAAI,KAAKgb,SAAX,KAA2BC,GAAlC;AACA,OAFM,CAAP;AAGA,KAZ0C,CAc3C;;;AACA,QAAK,OAAOD,SAAP,KAAqB,QAA1B,EAAqC;AACpC,aAAOlV,MAAM,CAACqD,IAAP,CAAaiK,QAAb,EAAuB,UAAUpT,IAAV,EAAiB;AAC9C,eAASmE,OAAO,CAACjD,IAAR,CAAc8Z,SAAd,EAAyBhb,IAAzB,IAAkC,CAAC,CAArC,KAA6Cib,GAApD;AACA,OAFM,CAAP;AAGA,KAnB0C,CAqB3C;;;AACA,WAAOnV,MAAM,CAAC+L,MAAP,CAAemJ,SAAf,EAA0B5H,QAA1B,EAAoC6H,GAApC,CAAP;AACA;;AAEDnV,QAAM,CAAC+L,MAAP,GAAgB,UAAUsB,IAAV,EAAgB1M,KAAhB,EAAuBwU,GAAvB,EAA6B;AAC5C,QAAIjb,IAAI,GAAGyG,KAAK,CAAE,CAAF,CAAhB;;AAEA,QAAKwU,GAAL,EAAW;AACV9H,UAAI,GAAG,UAAUA,IAAV,GAAiB,GAAxB;AACA;;AAED,QAAK1M,KAAK,CAACxH,MAAN,KAAiB,CAAjB,IAAsBe,IAAI,CAAC6E,QAAL,KAAkB,CAA7C,EAAiD;AAChD,aAAOiB,MAAM,CAACiM,IAAP,CAAYM,eAAZ,CAA6BrS,IAA7B,EAAmCmT,IAAnC,IAA4C,CAAEnT,IAAF,CAA5C,GAAuD,EAA9D;AACA;;AAED,WAAO8F,MAAM,CAACiM,IAAP,CAAYzI,OAAZ,CAAqB6J,IAArB,EAA2BrN,MAAM,CAACqD,IAAP,CAAa1C,KAAb,EAAoB,UAAUzG,IAAV,EAAiB;AACtE,aAAOA,IAAI,CAAC6E,QAAL,KAAkB,CAAzB;AACA,KAFiC,CAA3B,CAAP;AAGA,GAdD;;AAgBAiB,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjBqR,QAAI,EAAE,UAAUhM,QAAV,EAAqB;AAC1B,UAAI/G,CAAJ;AAAA,UAAO0H,GAAP;AAAA,UACCS,GAAG,GAAG,KAAKlI,MADZ;AAAA,UAECic,IAAI,GAAG,IAFR;;AAIA,UAAK,OAAOnV,QAAP,KAAoB,QAAzB,EAAoC;AACnC,eAAO,KAAKS,SAAL,CAAgBV,MAAM,CAAEC,QAAF,CAAN,CAAmB8L,MAAnB,CAA2B,YAAW;AAC5D,eAAM7S,CAAC,GAAG,CAAV,EAAaA,CAAC,GAAGmI,GAAjB,EAAsBnI,CAAC,EAAvB,EAA4B;AAC3B,gBAAK8G,MAAM,CAACgF,QAAP,CAAiBoQ,IAAI,CAAElc,CAAF,CAArB,EAA4B,IAA5B,CAAL,EAA0C;AACzC,qBAAO,IAAP;AACA;AACD;AACD,SANsB,CAAhB,CAAP;AAOA;;AAED0H,SAAG,GAAG,KAAKF,SAAL,CAAgB,EAAhB,CAAN;;AAEA,WAAMxH,CAAC,GAAG,CAAV,EAAaA,CAAC,GAAGmI,GAAjB,EAAsBnI,CAAC,EAAvB,EAA4B;AAC3B8G,cAAM,CAACiM,IAAP,CAAahM,QAAb,EAAuBmV,IAAI,CAAElc,CAAF,CAA3B,EAAkC0H,GAAlC;AACA;;AAED,aAAOS,GAAG,GAAG,CAAN,GAAUrB,MAAM,CAAC4N,UAAP,CAAmBhN,GAAnB,CAAV,GAAqCA,GAA5C;AACA,KAvBgB;AAwBjBmL,UAAM,EAAE,UAAU9L,QAAV,EAAqB;AAC5B,aAAO,KAAKS,SAAL,CAAgBuU,MAAM,CAAE,IAAF,EAAQhV,QAAQ,IAAI,EAApB,EAAwB,KAAxB,CAAtB,CAAP;AACA,KA1BgB;AA2BjBkV,OAAG,EAAE,UAAUlV,QAAV,EAAqB;AACzB,aAAO,KAAKS,SAAL,CAAgBuU,MAAM,CAAE,IAAF,EAAQhV,QAAQ,IAAI,EAApB,EAAwB,IAAxB,CAAtB,CAAP;AACA,KA7BgB;AA8BjB0U,MAAE,EAAE,UAAU1U,QAAV,EAAqB;AACxB,aAAO,CAAC,CAACgV,MAAM,CACd,IADc,EAGd;AACA;AACA,aAAOhV,QAAP,KAAoB,QAApB,IAAgC6U,aAAa,CAACzL,IAAd,CAAoBpJ,QAApB,CAAhC,GACCD,MAAM,CAAEC,QAAF,CADP,GAECA,QAAQ,IAAI,EAPC,EAQd,KARc,CAAN,CASP9G,MATF;AAUA;AAzCgB,GAAlB,EA9vFiF,CA2yFjF;AAGA;;AACA,MAAIkc,UAAJ;AAAA,MAEC;AACA;AACA;AACA;AACAtO,YAAU,GAAG,qCANd;AAAA,MAQC5G,IAAI,GAAGH,MAAM,CAAC3F,EAAP,CAAU8F,IAAV,GAAiB,UAAUF,QAAV,EAAoBC,OAApB,EAA6BoV,IAA7B,EAAoC;AAC3D,QAAI5M,KAAJ,EAAWxO,IAAX,CAD2D,CAG3D;;AACA,QAAK,CAAC+F,QAAN,EAAiB;AAChB,aAAO,IAAP;AACA,KAN0D,CAQ3D;AACA;;;AACAqV,QAAI,GAAGA,IAAI,IAAID,UAAf,CAV2D,CAY3D;;AACA,QAAK,OAAOpV,QAAP,KAAoB,QAAzB,EAAoC;AACnC,UAAKA,QAAQ,CAAE,CAAF,CAAR,KAAkB,GAAlB,IACJA,QAAQ,CAAEA,QAAQ,CAAC9G,MAAT,GAAkB,CAApB,CAAR,KAAoC,GADhC,IAEJ8G,QAAQ,CAAC9G,MAAT,IAAmB,CAFpB,EAEwB;AAEvB;AACAuP,aAAK,GAAG,CAAE,IAAF,EAAQzI,QAAR,EAAkB,IAAlB,CAAR;AAEA,OAPD,MAOO;AACNyI,aAAK,GAAG3B,UAAU,CAACgC,IAAX,CAAiB9I,QAAjB,CAAR;AACA,OAVkC,CAYnC;;;AACA,UAAKyI,KAAK,KAAMA,KAAK,CAAE,CAAF,CAAL,IAAc,CAACxI,OAArB,CAAV,EAA2C;AAE1C;AACA,YAAKwI,KAAK,CAAE,CAAF,CAAV,EAAkB;AACjBxI,iBAAO,GAAGA,OAAO,YAAYF,MAAnB,GAA4BE,OAAO,CAAE,CAAF,CAAnC,GAA2CA,OAArD,CADiB,CAGjB;AACA;;AACAF,gBAAM,CAACa,KAAP,CAAc,IAAd,EAAoBb,MAAM,CAACuV,SAAP,CACnB7M,KAAK,CAAE,CAAF,CADc,EAEnBxI,OAAO,IAAIA,OAAO,CAACnB,QAAnB,GAA8BmB,OAAO,CAAC4I,aAAR,IAAyB5I,OAAvD,GAAiEzH,QAF9C,EAGnB,IAHmB,CAApB,EALiB,CAWjB;;AACA,cAAKuc,UAAU,CAAC3L,IAAX,CAAiBX,KAAK,CAAE,CAAF,CAAtB,KAAiC1I,MAAM,CAACiC,aAAP,CAAsB/B,OAAtB,CAAtC,EAAwE;AACvE,iBAAMwI,KAAN,IAAexI,OAAf,EAAyB;AAExB;AACA,kBAAKrB,UAAU,CAAE,KAAM6J,KAAN,CAAF,CAAf,EAAmC;AAClC,qBAAMA,KAAN,EAAexI,OAAO,CAAEwI,KAAF,CAAtB,EADkC,CAGnC;AACC,eAJD,MAIO;AACN,qBAAK6E,IAAL,CAAW7E,KAAX,EAAkBxI,OAAO,CAAEwI,KAAF,CAAzB;AACA;AACD;AACD;;AAED,iBAAO,IAAP,CA1BiB,CA4BlB;AACC,SA7BD,MA6BO;AACNxO,cAAI,GAAGzB,QAAQ,CAACuQ,cAAT,CAAyBN,KAAK,CAAE,CAAF,CAA9B,CAAP;;AAEA,cAAKxO,IAAL,EAAY;AAEX;AACA,iBAAM,CAAN,IAAYA,IAAZ;AACA,iBAAKf,MAAL,GAAc,CAAd;AACA;;AACD,iBAAO,IAAP;AACA,SA1CyC,CA4C3C;;AACC,OA7CD,MA6CO,IAAK,CAAC+G,OAAD,IAAYA,OAAO,CAACG,MAAzB,EAAkC;AACxC,eAAO,CAAEH,OAAO,IAAIoV,IAAb,EAAoBrJ,IAApB,CAA0BhM,QAA1B,CAAP,CADwC,CAGzC;AACA;AACC,OALM,MAKA;AACN,eAAO,KAAKK,WAAL,CAAkBJ,OAAlB,EAA4B+L,IAA5B,CAAkChM,QAAlC,CAAP;AACA,OAjEkC,CAmEpC;;AACC,KApED,MAoEO,IAAKA,QAAQ,CAAClB,QAAd,EAAyB;AAC/B,WAAM,CAAN,IAAYkB,QAAZ;AACA,WAAK9G,MAAL,GAAc,CAAd;AACA,aAAO,IAAP,CAH+B,CAKhC;AACA;AACC,KAPM,MAOA,IAAK0F,UAAU,CAAEoB,QAAF,CAAf,EAA8B;AACpC,aAAOqV,IAAI,CAACE,KAAL,KAAerT,SAAf,GACNmT,IAAI,CAACE,KAAL,CAAYvV,QAAZ,CADM,GAGN;AACAA,cAAQ,CAAED,MAAF,CAJT;AAKA;;AAED,WAAOA,MAAM,CAACiD,SAAP,CAAkBhD,QAAlB,EAA4B,IAA5B,CAAP;AACA,GAzGF,CA/yFiF,CA05FjF;;;AACAE,MAAI,CAACtH,SAAL,GAAiBmH,MAAM,CAAC3F,EAAxB,CA35FiF,CA65FjF;;AACAgb,YAAU,GAAGrV,MAAM,CAAEvH,QAAF,CAAnB;AAGA,MAAIgd,YAAY,GAAG,gCAAnB;AAAA,MAEC;AACAC,kBAAgB,GAAG;AAClBC,YAAQ,EAAE,IADQ;AAElBC,YAAQ,EAAE,IAFQ;AAGlBzN,QAAI,EAAE,IAHY;AAIlB0N,QAAI,EAAE;AAJY,GAHpB;AAUA7V,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjBkb,OAAG,EAAE,UAAU/T,MAAV,EAAmB;AACvB,UAAIgU,OAAO,GAAG/V,MAAM,CAAE+B,MAAF,EAAU,IAAV,CAApB;AAAA,UACCiU,CAAC,GAAGD,OAAO,CAAC5c,MADb;AAGA,aAAO,KAAK4S,MAAL,CAAa,YAAW;AAC9B,YAAI7S,CAAC,GAAG,CAAR;;AACA,eAAQA,CAAC,GAAG8c,CAAZ,EAAe9c,CAAC,EAAhB,EAAqB;AACpB,cAAK8G,MAAM,CAACgF,QAAP,CAAiB,IAAjB,EAAuB+Q,OAAO,CAAE7c,CAAF,CAA9B,CAAL,EAA6C;AAC5C,mBAAO,IAAP;AACA;AACD;AACD,OAPM,CAAP;AAQA,KAbgB;AAejB+c,WAAO,EAAE,UAAU9H,SAAV,EAAqBjO,OAArB,EAA+B;AACvC,UAAIyK,GAAJ;AAAA,UACCzR,CAAC,GAAG,CADL;AAAA,UAEC8c,CAAC,GAAG,KAAK7c,MAFV;AAAA,UAGC2W,OAAO,GAAG,EAHX;AAAA,UAICiG,OAAO,GAAG,OAAO5H,SAAP,KAAqB,QAArB,IAAiCnO,MAAM,CAAEmO,SAAF,CAJlD,CADuC,CAOvC;;AACA,UAAK,CAAC2G,aAAa,CAACzL,IAAd,CAAoB8E,SAApB,CAAN,EAAwC;AACvC,eAAQjV,CAAC,GAAG8c,CAAZ,EAAe9c,CAAC,EAAhB,EAAqB;AACpB,eAAMyR,GAAG,GAAG,KAAMzR,CAAN,CAAZ,EAAuByR,GAAG,IAAIA,GAAG,KAAKzK,OAAtC,EAA+CyK,GAAG,GAAGA,GAAG,CAAC9K,UAAzD,EAAsE;AAErE;AACA,gBAAK8K,GAAG,CAAC5L,QAAJ,GAAe,EAAf,KAAuBgX,OAAO,GAClCA,OAAO,CAACG,KAAR,CAAevL,GAAf,IAAuB,CAAC,CADU,GAGlC;AACAA,eAAG,CAAC5L,QAAJ,KAAiB,CAAjB,IACCiB,MAAM,CAACiM,IAAP,CAAYM,eAAZ,CAA6B5B,GAA7B,EAAkCwD,SAAlC,CALG,CAAL,EAKoD;AAEnD2B,qBAAO,CAAC1R,IAAR,CAAcuM,GAAd;AACA;AACA;AACD;AACD;AACD;;AAED,aAAO,KAAKjK,SAAL,CAAgBoP,OAAO,CAAC3W,MAAR,GAAiB,CAAjB,GAAqB6G,MAAM,CAAC4N,UAAP,CAAmBkC,OAAnB,CAArB,GAAoDA,OAApE,CAAP;AACA,KA3CgB;AA6CjB;AACAoG,SAAK,EAAE,UAAUhc,IAAV,EAAiB;AAEvB;AACA,UAAK,CAACA,IAAN,EAAa;AACZ,eAAS,KAAM,CAAN,KAAa,KAAM,CAAN,EAAU2F,UAAzB,GAAwC,KAAKqB,KAAL,GAAaiV,OAAb,GAAuBhd,MAA/D,GAAwE,CAAC,CAAhF;AACA,OALsB,CAOvB;;;AACA,UAAK,OAAOe,IAAP,KAAgB,QAArB,EAAgC;AAC/B,eAAOmE,OAAO,CAACjD,IAAR,CAAc4E,MAAM,CAAE9F,IAAF,CAApB,EAA8B,KAAM,CAAN,CAA9B,CAAP;AACA,OAVsB,CAYvB;;;AACA,aAAOmE,OAAO,CAACjD,IAAR,CAAc,IAAd,EAEN;AACAlB,UAAI,CAACmG,MAAL,GAAcnG,IAAI,CAAE,CAAF,CAAlB,GAA0BA,IAHpB,CAAP;AAKA,KAhEgB;AAkEjBkc,OAAG,EAAE,UAAUnW,QAAV,EAAoBC,OAApB,EAA8B;AAClC,aAAO,KAAKQ,SAAL,CACNV,MAAM,CAAC4N,UAAP,CACC5N,MAAM,CAACa,KAAP,CAAc,KAAKL,GAAL,EAAd,EAA0BR,MAAM,CAAEC,QAAF,EAAYC,OAAZ,CAAhC,CADD,CADM,CAAP;AAKA,KAxEgB;AA0EjBmW,WAAO,EAAE,UAAUpW,QAAV,EAAqB;AAC7B,aAAO,KAAKmW,GAAL,CAAUnW,QAAQ,IAAI,IAAZ,GAChB,KAAKa,UADW,GACE,KAAKA,UAAL,CAAgBiL,MAAhB,CAAwB9L,QAAxB,CADZ,CAAP;AAGA;AA9EgB,GAAlB;;AAiFA,WAASqW,OAAT,CAAkB3L,GAAlB,EAAuBzC,GAAvB,EAA6B;AAC5B,WAAQ,CAAEyC,GAAG,GAAGA,GAAG,CAAEzC,GAAF,CAAX,KAAwByC,GAAG,CAAC5L,QAAJ,KAAiB,CAAjD,EAAqD,CAAE;;AACvD,WAAO4L,GAAP;AACA;;AAED3K,QAAM,CAACe,IAAP,CAAa;AACZwO,UAAM,EAAE,UAAUrV,IAAV,EAAiB;AACxB,UAAIqV,MAAM,GAAGrV,IAAI,CAAC2F,UAAlB;AACA,aAAO0P,MAAM,IAAIA,MAAM,CAACxQ,QAAP,KAAoB,EAA9B,GAAmCwQ,MAAnC,GAA4C,IAAnD;AACA,KAJW;AAKZgH,WAAO,EAAE,UAAUrc,IAAV,EAAiB;AACzB,aAAOgO,GAAG,CAAEhO,IAAF,EAAQ,YAAR,CAAV;AACA,KAPW;AAQZsc,gBAAY,EAAE,UAAUtc,IAAV,EAAgBhB,CAAhB,EAAmBub,KAAnB,EAA2B;AACxC,aAAOvM,GAAG,CAAEhO,IAAF,EAAQ,YAAR,EAAsBua,KAAtB,CAAV;AACA,KAVW;AAWZtM,QAAI,EAAE,UAAUjO,IAAV,EAAiB;AACtB,aAAOoc,OAAO,CAAEpc,IAAF,EAAQ,aAAR,CAAd;AACA,KAbW;AAcZ2b,QAAI,EAAE,UAAU3b,IAAV,EAAiB;AACtB,aAAOoc,OAAO,CAAEpc,IAAF,EAAQ,iBAAR,CAAd;AACA,KAhBW;AAiBZuc,WAAO,EAAE,UAAUvc,IAAV,EAAiB;AACzB,aAAOgO,GAAG,CAAEhO,IAAF,EAAQ,aAAR,CAAV;AACA,KAnBW;AAoBZic,WAAO,EAAE,UAAUjc,IAAV,EAAiB;AACzB,aAAOgO,GAAG,CAAEhO,IAAF,EAAQ,iBAAR,CAAV;AACA,KAtBW;AAuBZwc,aAAS,EAAE,UAAUxc,IAAV,EAAgBhB,CAAhB,EAAmBub,KAAnB,EAA2B;AACrC,aAAOvM,GAAG,CAAEhO,IAAF,EAAQ,aAAR,EAAuBua,KAAvB,CAAV;AACA,KAzBW;AA0BZkC,aAAS,EAAE,UAAUzc,IAAV,EAAgBhB,CAAhB,EAAmBub,KAAnB,EAA2B;AACrC,aAAOvM,GAAG,CAAEhO,IAAF,EAAQ,iBAAR,EAA2Bua,KAA3B,CAAV;AACA,KA5BW;AA6BZG,YAAQ,EAAE,UAAU1a,IAAV,EAAiB;AAC1B,aAAO0a,QAAQ,CAAE,CAAE1a,IAAI,CAAC2F,UAAL,IAAmB,EAArB,EAA0BoO,UAA5B,EAAwC/T,IAAxC,CAAf;AACA,KA/BW;AAgCZyb,YAAQ,EAAE,UAAUzb,IAAV,EAAiB;AAC1B,aAAO0a,QAAQ,CAAE1a,IAAI,CAAC+T,UAAP,CAAf;AACA,KAlCW;AAmCZ2H,YAAQ,EAAE,UAAU1b,IAAV,EAAiB;AACpB,UAAKoP,QAAQ,CAAEpP,IAAF,EAAQ,QAAR,CAAb,EAAkC;AAC9B,eAAOA,IAAI,CAAC0c,eAAZ;AACH,OAHmB,CAKpB;AACA;AACA;;;AACA,UAAKtN,QAAQ,CAAEpP,IAAF,EAAQ,UAAR,CAAb,EAAoC;AAChCA,YAAI,GAAGA,IAAI,CAAC2c,OAAL,IAAgB3c,IAAvB;AACH;;AAED,aAAO8F,MAAM,CAACa,KAAP,CAAc,EAAd,EAAkB3G,IAAI,CAACkO,UAAvB,CAAP;AACN;AAhDW,GAAb,EAiDG,UAAUzG,IAAV,EAAgBtH,EAAhB,EAAqB;AACvB2F,UAAM,CAAC3F,EAAP,CAAWsH,IAAX,IAAoB,UAAU8S,KAAV,EAAiBxU,QAAjB,EAA4B;AAC/C,UAAI6P,OAAO,GAAG9P,MAAM,CAACiB,GAAP,CAAY,IAAZ,EAAkB5G,EAAlB,EAAsBoa,KAAtB,CAAd;;AAEA,UAAK9S,IAAI,CAAChJ,KAAL,CAAY,CAAC,CAAb,MAAqB,OAA1B,EAAoC;AACnCsH,gBAAQ,GAAGwU,KAAX;AACA;;AAED,UAAKxU,QAAQ,IAAI,OAAOA,QAAP,KAAoB,QAArC,EAAgD;AAC/C6P,eAAO,GAAG9P,MAAM,CAAC+L,MAAP,CAAe9L,QAAf,EAAyB6P,OAAzB,CAAV;AACA;;AAED,UAAK,KAAK3W,MAAL,GAAc,CAAnB,EAAuB;AAEtB;AACA,YAAK,CAACuc,gBAAgB,CAAE/T,IAAF,CAAtB,EAAiC;AAChC3B,gBAAM,CAAC4N,UAAP,CAAmBkC,OAAnB;AACA,SALqB,CAOtB;;;AACA,YAAK2F,YAAY,CAACpM,IAAb,CAAmB1H,IAAnB,CAAL,EAAiC;AAChCmO,iBAAO,CAACgH,OAAR;AACA;AACD;;AAED,aAAO,KAAKpW,SAAL,CAAgBoP,OAAhB,CAAP;AACA,KAzBD;AA0BA,GA5ED;AA6EA,MAAIiH,aAAa,GAAK,mBAAtB,CA9kGiF,CAklGjF;;AACA,WAASC,aAAT,CAAwBtV,OAAxB,EAAkC;AACjC,QAAIuV,MAAM,GAAG,EAAb;AACAjX,UAAM,CAACe,IAAP,CAAaW,OAAO,CAACgH,KAAR,CAAeqO,aAAf,KAAkC,EAA/C,EAAmD,UAAU5P,CAAV,EAAa+P,IAAb,EAAoB;AACtED,YAAM,CAAEC,IAAF,CAAN,GAAiB,IAAjB;AACA,KAFD;AAGA,WAAOD,MAAP;AACA;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAsBAjX,QAAM,CAACmX,SAAP,GAAmB,UAAUzV,OAAV,EAAoB;AAEtC;AACA;AACAA,WAAO,GAAG,OAAOA,OAAP,KAAmB,QAAnB,GACTsV,aAAa,CAAEtV,OAAF,CADJ,GAET1B,MAAM,CAACpF,MAAP,CAAe,EAAf,EAAmB8G,OAAnB,CAFD;;AAIA,QAAI;AACH0V,UADD;AAAA,QAGC;AACAC,UAJD;AAAA,QAMC;AACAC,SAPD;AAAA,QASC;AACAC,UAVD;AAAA,QAYC;AACAzR,QAAI,GAAG,EAbR;AAAA,QAeC;AACA0R,SAAK,GAAG,EAhBT;AAAA,QAkBC;AACAC,eAAW,GAAG,CAAC,CAnBhB;AAAA,QAqBC;AACAC,QAAI,GAAG,YAAW;AAEjB;AACAH,YAAM,GAAGA,MAAM,IAAI7V,OAAO,CAACiW,IAA3B,CAHiB,CAKjB;AACA;;AACAL,WAAK,GAAGF,MAAM,GAAG,IAAjB;;AACA,aAAQI,KAAK,CAACre,MAAd,EAAsBse,WAAW,GAAG,CAAC,CAArC,EAAyC;AACxCJ,cAAM,GAAGG,KAAK,CAACrN,KAAN,EAAT;;AACA,eAAQ,EAAEsN,WAAF,GAAgB3R,IAAI,CAAC3M,MAA7B,EAAsC;AAErC;AACA,cAAK2M,IAAI,CAAE2R,WAAF,CAAJ,CAAoBja,KAApB,CAA2B6Z,MAAM,CAAE,CAAF,CAAjC,EAAwCA,MAAM,CAAE,CAAF,CAA9C,MAA0D,KAA1D,IACJ3V,OAAO,CAACkW,WADT,EACuB;AAEtB;AACAH,uBAAW,GAAG3R,IAAI,CAAC3M,MAAnB;AACAke,kBAAM,GAAG,KAAT;AACA;AACD;AACD,OArBgB,CAuBjB;;;AACA,UAAK,CAAC3V,OAAO,CAAC2V,MAAd,EAAuB;AACtBA,cAAM,GAAG,KAAT;AACA;;AAEDD,YAAM,GAAG,KAAT,CA5BiB,CA8BjB;;AACA,UAAKG,MAAL,EAAc;AAEb;AACA,YAAKF,MAAL,EAAc;AACbvR,cAAI,GAAG,EAAP,CADa,CAGd;AACC,SAJD,MAIO;AACNA,cAAI,GAAG,EAAP;AACA;AACD;AACD,KAhEF;AAAA,QAkEC;AACAsP,QAAI,GAAG;AAEN;AACAgB,SAAG,EAAE,YAAW;AACf,YAAKtQ,IAAL,EAAY;AAEX;AACA,cAAKuR,MAAM,IAAI,CAACD,MAAhB,EAAyB;AACxBK,uBAAW,GAAG3R,IAAI,CAAC3M,MAAL,GAAc,CAA5B;AACAqe,iBAAK,CAACpZ,IAAN,CAAYiZ,MAAZ;AACA;;AAED,WAAE,SAASjB,GAAT,CAAcjb,IAAd,EAAqB;AACtB6E,kBAAM,CAACe,IAAP,CAAa5F,IAAb,EAAmB,UAAUgM,CAAV,EAAazD,GAAb,EAAmB;AACrC,kBAAK7E,UAAU,CAAE6E,GAAF,CAAf,EAAyB;AACxB,oBAAK,CAAChC,OAAO,CAAC4S,MAAT,IAAmB,CAACc,IAAI,CAACU,GAAL,CAAUpS,GAAV,CAAzB,EAA2C;AAC1CoC,sBAAI,CAAC1H,IAAL,CAAWsF,GAAX;AACA;AACD,eAJD,MAIO,IAAKA,GAAG,IAAIA,GAAG,CAACvK,MAAX,IAAqB4G,MAAM,CAAE2D,GAAF,CAAN,KAAkB,QAA5C,EAAuD;AAE7D;AACA0S,mBAAG,CAAE1S,GAAF,CAAH;AACA;AACD,aAVD;AAWA,WAZD,EAYKrI,SAZL;;AAcA,cAAKgc,MAAM,IAAI,CAACD,MAAhB,EAAyB;AACxBM,gBAAI;AACJ;AACD;;AACD,eAAO,IAAP;AACA,OA/BK;AAiCN;AACAG,YAAM,EAAE,YAAW;AAClB7X,cAAM,CAACe,IAAP,CAAa1F,SAAb,EAAwB,UAAU8L,CAAV,EAAazD,GAAb,EAAmB;AAC1C,cAAIwS,KAAJ;;AACA,iBAAQ,CAAEA,KAAK,GAAGlW,MAAM,CAACmD,OAAP,CAAgBO,GAAhB,EAAqBoC,IAArB,EAA2BoQ,KAA3B,CAAV,IAAiD,CAAC,CAA1D,EAA8D;AAC7DpQ,gBAAI,CAACrE,MAAL,CAAayU,KAAb,EAAoB,CAApB,EAD6D,CAG7D;;AACA,gBAAKA,KAAK,IAAIuB,WAAd,EAA4B;AAC3BA,yBAAW;AACX;AACD;AACD,SAVD;AAWA,eAAO,IAAP;AACA,OA/CK;AAiDN;AACA;AACA3B,SAAG,EAAE,UAAUzb,EAAV,EAAe;AACnB,eAAOA,EAAE,GACR2F,MAAM,CAACmD,OAAP,CAAgB9I,EAAhB,EAAoByL,IAApB,IAA6B,CAAC,CADtB,GAERA,IAAI,CAAC3M,MAAL,GAAc,CAFf;AAGA,OAvDK;AAyDN;AACA2e,WAAK,EAAE,YAAW;AACjB,YAAKhS,IAAL,EAAY;AACXA,cAAI,GAAG,EAAP;AACA;;AACD,eAAO,IAAP;AACA,OA/DK;AAiEN;AACA;AACA;AACAiS,aAAO,EAAE,YAAW;AACnBR,cAAM,GAAGC,KAAK,GAAG,EAAjB;AACA1R,YAAI,GAAGuR,MAAM,GAAG,EAAhB;AACA,eAAO,IAAP;AACA,OAxEK;AAyENpP,cAAQ,EAAE,YAAW;AACpB,eAAO,CAACnC,IAAR;AACA,OA3EK;AA6EN;AACA;AACA;AACAkS,UAAI,EAAE,YAAW;AAChBT,cAAM,GAAGC,KAAK,GAAG,EAAjB;;AACA,YAAK,CAACH,MAAD,IAAW,CAACD,MAAjB,EAA0B;AACzBtR,cAAI,GAAGuR,MAAM,GAAG,EAAhB;AACA;;AACD,eAAO,IAAP;AACA,OAtFK;AAuFNE,YAAM,EAAE,YAAW;AAClB,eAAO,CAAC,CAACA,MAAT;AACA,OAzFK;AA2FN;AACAU,cAAQ,EAAE,UAAU/X,OAAV,EAAmB/E,IAAnB,EAA0B;AACnC,YAAK,CAACoc,MAAN,EAAe;AACdpc,cAAI,GAAGA,IAAI,IAAI,EAAf;AACAA,cAAI,GAAG,CAAE+E,OAAF,EAAW/E,IAAI,CAACxC,KAAL,GAAawC,IAAI,CAACxC,KAAL,EAAb,GAA4BwC,IAAvC,CAAP;AACAqc,eAAK,CAACpZ,IAAN,CAAYjD,IAAZ;;AACA,cAAK,CAACic,MAAN,EAAe;AACdM,gBAAI;AACJ;AACD;;AACD,eAAO,IAAP;AACA,OAtGK;AAwGN;AACAA,UAAI,EAAE,YAAW;AAChBtC,YAAI,CAAC6C,QAAL,CAAe,IAAf,EAAqB5c,SAArB;AACA,eAAO,IAAP;AACA,OA5GK;AA8GN;AACAic,WAAK,EAAE,YAAW;AACjB,eAAO,CAAC,CAACA,KAAT;AACA;AAjHK,KAnER;;AAuLA,WAAOlC,IAAP;AACA,GAhMD;;AAmMA,WAAS8C,QAAT,CAAmBC,CAAnB,EAAuB;AACtB,WAAOA,CAAP;AACA;;AACD,WAASC,OAAT,CAAkBC,EAAlB,EAAuB;AACtB,UAAMA,EAAN;AACA;;AAED,WAASC,UAAT,CAAqB3U,KAArB,EAA4B4U,OAA5B,EAAqCC,MAArC,EAA6CC,OAA7C,EAAuD;AACtD,QAAIC,MAAJ;;AAEA,QAAI;AAEH;AACA,UAAK/U,KAAK,IAAI9E,UAAU,CAAI6Z,MAAM,GAAG/U,KAAK,CAACgV,OAAnB,CAAxB,EAAyD;AACxDD,cAAM,CAACtd,IAAP,CAAauI,KAAb,EAAqByB,IAArB,CAA2BmT,OAA3B,EAAqCK,IAArC,CAA2CJ,MAA3C,EADwD,CAGzD;AACC,OAJD,MAIO,IAAK7U,KAAK,IAAI9E,UAAU,CAAI6Z,MAAM,GAAG/U,KAAK,CAACkV,IAAnB,CAAxB,EAAsD;AAC5DH,cAAM,CAACtd,IAAP,CAAauI,KAAb,EAAoB4U,OAApB,EAA6BC,MAA7B,EAD4D,CAG7D;AACC,OAJM,MAIA;AAEN;AACA;AACA;AACAD,eAAO,CAAC/a,KAAR,CAAe2E,SAAf,EAA0B,CAAEwB,KAAF,EAAUhL,KAAV,CAAiB8f,OAAjB,CAA1B;AACA,OAjBE,CAmBJ;AACA;AACA;;AACC,KAtBD,CAsBE,OAAQ9U,KAAR,EAAgB;AAEjB;AACA;AACA6U,YAAM,CAAChb,KAAP,CAAc2E,SAAd,EAAyB,CAAEwB,KAAF,CAAzB;AACA;AACD;;AAED3D,QAAM,CAACpF,MAAP,CAAe;AAEdke,YAAQ,EAAE,UAAUC,IAAV,EAAiB;AAC1B,UAAIC,MAAM,GAAG,CAEX;AACA;AACA,OAAE,QAAF,EAAY,UAAZ,EAAwBhZ,MAAM,CAACmX,SAAP,CAAkB,QAAlB,CAAxB,EACCnX,MAAM,CAACmX,SAAP,CAAkB,QAAlB,CADD,EAC+B,CAD/B,CAJW,EAMX,CAAE,SAAF,EAAa,MAAb,EAAqBnX,MAAM,CAACmX,SAAP,CAAkB,aAAlB,CAArB,EACCnX,MAAM,CAACmX,SAAP,CAAkB,aAAlB,CADD,EACoC,CADpC,EACuC,UADvC,CANW,EAQX,CAAE,QAAF,EAAY,MAAZ,EAAoBnX,MAAM,CAACmX,SAAP,CAAkB,aAAlB,CAApB,EACCnX,MAAM,CAACmX,SAAP,CAAkB,aAAlB,CADD,EACoC,CADpC,EACuC,UADvC,CARW,CAAb;AAAA,UAWC8B,KAAK,GAAG,SAXT;AAAA,UAYCN,OAAO,GAAG;AACTM,aAAK,EAAE,YAAW;AACjB,iBAAOA,KAAP;AACA,SAHQ;AAITC,cAAM,EAAE,YAAW;AAClBC,kBAAQ,CAAC/T,IAAT,CAAe/J,SAAf,EAA2Bud,IAA3B,CAAiCvd,SAAjC;AACA,iBAAO,IAAP;AACA,SAPQ;AAQT,iBAAS,UAAUhB,EAAV,EAAe;AACvB,iBAAOse,OAAO,CAACE,IAAR,CAAc,IAAd,EAAoBxe,EAApB,CAAP;AACA,SAVQ;AAYT;AACA+e,YAAI,EAAE;AAAU;AAAmC;AAClD,cAAIC,GAAG,GAAGhe,SAAV;AAEA,iBAAO2E,MAAM,CAAC8Y,QAAP,CAAiB,UAAUQ,QAAV,EAAqB;AAC5CtZ,kBAAM,CAACe,IAAP,CAAaiY,MAAb,EAAqB,UAAU9f,CAAV,EAAaqgB,KAAb,EAAqB;AAEzC;AACA,kBAAIlf,EAAE,GAAGwE,UAAU,CAAEwa,GAAG,CAAEE,KAAK,CAAE,CAAF,CAAP,CAAL,CAAV,IAAmCF,GAAG,CAAEE,KAAK,CAAE,CAAF,CAAP,CAA/C,CAHyC,CAKzC;AACA;AACA;;AACAJ,sBAAQ,CAAEI,KAAK,CAAE,CAAF,CAAP,CAAR,CAAwB,YAAW;AAClC,oBAAIC,QAAQ,GAAGnf,EAAE,IAAIA,EAAE,CAACmD,KAAH,CAAU,IAAV,EAAgBnC,SAAhB,CAArB;;AACA,oBAAKme,QAAQ,IAAI3a,UAAU,CAAE2a,QAAQ,CAACb,OAAX,CAA3B,EAAkD;AACjDa,0BAAQ,CAACb,OAAT,GACEc,QADF,CACYH,QAAQ,CAACI,MADrB,EAEEtU,IAFF,CAEQkU,QAAQ,CAACf,OAFjB,EAGEK,IAHF,CAGQU,QAAQ,CAACd,MAHjB;AAIA,iBALD,MAKO;AACNc,0BAAQ,CAAEC,KAAK,CAAE,CAAF,CAAL,GAAa,MAAf,CAAR,CACC,IADD,EAEClf,EAAE,GAAG,CAAEmf,QAAF,CAAH,GAAkBne,SAFrB;AAIA;AACD,eAbD;AAcA,aAtBD;AAuBAge,eAAG,GAAG,IAAN;AACA,WAzBM,EAyBHV,OAzBG,EAAP;AA0BA,SA1CQ;AA2CTE,YAAI,EAAE,UAAUc,WAAV,EAAuBC,UAAvB,EAAmCC,UAAnC,EAAgD;AACrD,cAAIC,QAAQ,GAAG,CAAf;;AACA,mBAASvB,OAAT,CAAkBwB,KAAlB,EAAyBZ,QAAzB,EAAmCzf,OAAnC,EAA4CL,OAA5C,EAAsD;AACrD,mBAAO,YAAW;AACjB,kBAAI2gB,IAAI,GAAG,IAAX;AAAA,kBACC7e,IAAI,GAAGE,SADR;AAAA,kBAEC4e,UAAU,GAAG,YAAW;AACvB,oBAAIT,QAAJ,EAAcX,IAAd,CADuB,CAGvB;AACA;AACA;;AACA,oBAAKkB,KAAK,GAAGD,QAAb,EAAwB;AACvB;AACA;;AAEDN,wBAAQ,GAAG9f,OAAO,CAAC8D,KAAR,CAAewc,IAAf,EAAqB7e,IAArB,CAAX,CAVuB,CAYvB;AACA;;AACA,oBAAKqe,QAAQ,KAAKL,QAAQ,CAACR,OAAT,EAAlB,EAAuC;AACtC,wBAAM,IAAIuB,SAAJ,CAAe,0BAAf,CAAN;AACA,iBAhBsB,CAkBvB;AACA;AACA;AACA;;;AACArB,oBAAI,GAAGW,QAAQ,MAEd;AACA;AACA;AACE,uBAAOA,QAAP,KAAoB,QAApB,IACD,OAAOA,QAAP,KAAoB,UANP,CAAR,IAONA,QAAQ,CAACX,IAPV,CAtBuB,CA+BvB;;AACA,oBAAKha,UAAU,CAAEga,IAAF,CAAf,EAA0B;AAEzB;AACA,sBAAKxf,OAAL,EAAe;AACdwf,wBAAI,CAACzd,IAAL,CACCoe,QADD,EAECjB,OAAO,CAAEuB,QAAF,EAAYX,QAAZ,EAAsBjB,QAAtB,EAAgC7e,OAAhC,CAFR,EAGCkf,OAAO,CAAEuB,QAAF,EAAYX,QAAZ,EAAsBf,OAAtB,EAA+B/e,OAA/B,CAHR,EADc,CAOf;AACC,mBARD,MAQO;AAEN;AACAygB,4BAAQ;AAERjB,wBAAI,CAACzd,IAAL,CACCoe,QADD,EAECjB,OAAO,CAAEuB,QAAF,EAAYX,QAAZ,EAAsBjB,QAAtB,EAAgC7e,OAAhC,CAFR,EAGCkf,OAAO,CAAEuB,QAAF,EAAYX,QAAZ,EAAsBf,OAAtB,EAA+B/e,OAA/B,CAHR,EAICkf,OAAO,CAAEuB,QAAF,EAAYX,QAAZ,EAAsBjB,QAAtB,EACNiB,QAAQ,CAACgB,UADH,CAJR;AAOA,mBAvBwB,CAyB1B;;AACC,iBA1BD,MA0BO;AAEN;AACA;AACA,sBAAKzgB,OAAO,KAAKwe,QAAjB,EAA4B;AAC3B8B,wBAAI,GAAG7X,SAAP;AACAhH,wBAAI,GAAG,CAAEqe,QAAF,CAAP;AACA,mBAPK,CASN;AACA;;;AACA,mBAAEngB,OAAO,IAAI8f,QAAQ,CAACiB,WAAtB,EAAqCJ,IAArC,EAA2C7e,IAA3C;AACA;AACD,eAzEF;AAAA,kBA2EC;AACAkf,qBAAO,GAAGhhB,OAAO,GAChB4gB,UADgB,GAEhB,YAAW;AACV,oBAAI;AACHA,4BAAU;AACV,iBAFD,CAEE,OAAQ5R,CAAR,EAAY;AAEb,sBAAKrI,MAAM,CAAC8Y,QAAP,CAAgBwB,aAArB,EAAqC;AACpCta,0BAAM,CAAC8Y,QAAP,CAAgBwB,aAAhB,CAA+BjS,CAA/B,EACCgS,OAAO,CAACE,UADT;AAEA,mBALY,CAOb;AACA;AACA;;;AACA,sBAAKR,KAAK,GAAG,CAAR,IAAaD,QAAlB,EAA6B;AAE5B;AACA;AACA,wBAAKpgB,OAAO,KAAK0e,OAAjB,EAA2B;AAC1B4B,0BAAI,GAAG7X,SAAP;AACAhH,0BAAI,GAAG,CAAEkN,CAAF,CAAP;AACA;;AAED8Q,4BAAQ,CAACqB,UAAT,CAAqBR,IAArB,EAA2B7e,IAA3B;AACA;AACD;AACD,eAvGH,CADiB,CA0GjB;AACA;AACA;AACA;;;AACA,kBAAK4e,KAAL,EAAa;AACZM,uBAAO;AACP,eAFD,MAEO;AAEN;AACA;AACA,oBAAKra,MAAM,CAAC8Y,QAAP,CAAgB2B,YAArB,EAAoC;AACnCJ,yBAAO,CAACE,UAAR,GAAqBva,MAAM,CAAC8Y,QAAP,CAAgB2B,YAAhB,EAArB;AACA;;AACDvf,sBAAM,CAACkC,UAAP,CAAmBid,OAAnB;AACA;AACD,aAzHD;AA0HA;;AAED,iBAAOra,MAAM,CAAC8Y,QAAP,CAAiB,UAAUQ,QAAV,EAAqB;AAE5C;AACAN,kBAAM,CAAE,CAAF,CAAN,CAAa,CAAb,EAAiB5C,GAAjB,CACCmC,OAAO,CACN,CADM,EAENe,QAFM,EAGNza,UAAU,CAAEgb,UAAF,CAAV,GACCA,UADD,GAEC3B,QALK,EAMNoB,QAAQ,CAACa,UANH,CADR,EAH4C,CAc5C;;AACAnB,kBAAM,CAAE,CAAF,CAAN,CAAa,CAAb,EAAiB5C,GAAjB,CACCmC,OAAO,CACN,CADM,EAENe,QAFM,EAGNza,UAAU,CAAE8a,WAAF,CAAV,GACCA,WADD,GAECzB,QALK,CADR,EAf4C,CAyB5C;;AACAc,kBAAM,CAAE,CAAF,CAAN,CAAa,CAAb,EAAiB5C,GAAjB,CACCmC,OAAO,CACN,CADM,EAENe,QAFM,EAGNza,UAAU,CAAE+a,UAAF,CAAV,GACCA,UADD,GAECxB,OALK,CADR;AASA,WAnCM,EAmCHO,OAnCG,EAAP;AAoCA,SA9MQ;AAgNT;AACA;AACAA,eAAO,EAAE,UAAU7Z,GAAV,EAAgB;AACxB,iBAAOA,GAAG,IAAI,IAAP,GAAckB,MAAM,CAACpF,MAAP,CAAekE,GAAf,EAAoB6Z,OAApB,CAAd,GAA8CA,OAArD;AACA;AApNQ,OAZX;AAAA,UAkOCQ,QAAQ,GAAG,EAlOZ,CAD0B,CAqO1B;;AACAnZ,YAAM,CAACe,IAAP,CAAaiY,MAAb,EAAqB,UAAU9f,CAAV,EAAaqgB,KAAb,EAAqB;AACzC,YAAIzT,IAAI,GAAGyT,KAAK,CAAE,CAAF,CAAhB;AAAA,YACCmB,WAAW,GAAGnB,KAAK,CAAE,CAAF,CADpB,CADyC,CAIzC;AACA;AACA;;AACAZ,eAAO,CAAEY,KAAK,CAAE,CAAF,CAAP,CAAP,GAAwBzT,IAAI,CAACsQ,GAA7B,CAPyC,CASzC;;AACA,YAAKsE,WAAL,EAAmB;AAClB5U,cAAI,CAACsQ,GAAL,CACC,YAAW;AAEV;AACA;AACA6C,iBAAK,GAAGyB,WAAR;AACA,WANF,EAQC;AACA;AACA1B,gBAAM,CAAE,IAAI9f,CAAN,CAAN,CAAiB,CAAjB,EAAqB6e,OAVtB,EAYC;AACA;AACAiB,gBAAM,CAAE,IAAI9f,CAAN,CAAN,CAAiB,CAAjB,EAAqB6e,OAdtB,EAgBC;AACAiB,gBAAM,CAAE,CAAF,CAAN,CAAa,CAAb,EAAiBhB,IAjBlB,EAmBC;AACAgB,gBAAM,CAAE,CAAF,CAAN,CAAa,CAAb,EAAiBhB,IApBlB;AAsBA,SAjCwC,CAmCzC;AACA;AACA;;;AACAlS,YAAI,CAACsQ,GAAL,CAAUmD,KAAK,CAAE,CAAF,CAAL,CAAW7B,IAArB,EAtCyC,CAwCzC;AACA;AACA;;AACAyB,gBAAQ,CAAEI,KAAK,CAAE,CAAF,CAAP,CAAR,GAAyB,YAAW;AACnCJ,kBAAQ,CAAEI,KAAK,CAAE,CAAF,CAAL,GAAa,MAAf,CAAR,CAAiC,SAASJ,QAAT,GAAoBhX,SAApB,GAAgC,IAAjE,EAAuE9G,SAAvE;AACA,iBAAO,IAAP;AACA,SAHD,CA3CyC,CAgDzC;AACA;AACA;;;AACA8d,gBAAQ,CAAEI,KAAK,CAAE,CAAF,CAAL,GAAa,MAAf,CAAR,GAAkCzT,IAAI,CAACmS,QAAvC;AACA,OApDD,EAtO0B,CA4R1B;;AACAU,aAAO,CAACA,OAAR,CAAiBQ,QAAjB,EA7R0B,CA+R1B;;AACA,UAAKJ,IAAL,EAAY;AACXA,YAAI,CAAC3d,IAAL,CAAW+d,QAAX,EAAqBA,QAArB;AACA,OAlSyB,CAoS1B;;;AACA,aAAOA,QAAP;AACA,KAxSa;AA0Sd;AACAwB,QAAI,EAAE,UAAUC,WAAV,EAAwB;AAC7B,UAEC;AACAC,eAAS,GAAGxf,SAAS,CAAClC,MAHvB;AAAA,UAKC;AACAD,OAAC,GAAG2hB,SANL;AAAA,UAQC;AACAC,qBAAe,GAAGliB,KAAK,CAAEM,CAAF,CATxB;AAAA,UAUC6hB,aAAa,GAAGpiB,KAAK,CAACyC,IAAN,CAAYC,SAAZ,CAVjB;AAAA,UAYC;AACA2f,YAAM,GAAGhb,MAAM,CAAC8Y,QAAP,EAbV;AAAA,UAeC;AACAmC,gBAAU,GAAG,UAAU/hB,CAAV,EAAc;AAC1B,eAAO,UAAUyK,KAAV,EAAkB;AACxBmX,yBAAe,CAAE5hB,CAAF,CAAf,GAAuB,IAAvB;AACA6hB,uBAAa,CAAE7hB,CAAF,CAAb,GAAqBmC,SAAS,CAAClC,MAAV,GAAmB,CAAnB,GAAuBR,KAAK,CAACyC,IAAN,CAAYC,SAAZ,CAAvB,GAAiDsI,KAAtE;;AACA,cAAK,CAAG,GAAEkX,SAAV,EAAwB;AACvBG,kBAAM,CAACZ,WAAP,CAAoBU,eAApB,EAAqCC,aAArC;AACA;AACD,SAND;AAOA,OAxBF,CAD6B,CA2B7B;;;AACA,UAAKF,SAAS,IAAI,CAAlB,EAAsB;AACrBvC,kBAAU,CAAEsC,WAAF,EAAeI,MAAM,CAAC5V,IAAP,CAAa6V,UAAU,CAAE/hB,CAAF,CAAvB,EAA+Bqf,OAA9C,EAAuDyC,MAAM,CAACxC,MAA9D,EACT,CAACqC,SADQ,CAAV,CADqB,CAIrB;;AACA,YAAKG,MAAM,CAAC/B,KAAP,OAAmB,SAAnB,IACJpa,UAAU,CAAEkc,aAAa,CAAE7hB,CAAF,CAAb,IAAsB6hB,aAAa,CAAE7hB,CAAF,CAAb,CAAmB2f,IAA3C,CADX,EAC+D;AAE9D,iBAAOmC,MAAM,CAACnC,IAAP,EAAP;AACA;AACD,OAtC4B,CAwC7B;;;AACA,aAAQ3f,CAAC,EAAT,EAAc;AACbof,kBAAU,CAAEyC,aAAa,CAAE7hB,CAAF,CAAf,EAAsB+hB,UAAU,CAAE/hB,CAAF,CAAhC,EAAuC8hB,MAAM,CAACxC,MAA9C,CAAV;AACA;;AAED,aAAOwC,MAAM,CAACrC,OAAP,EAAP;AACA;AAzVa,GAAf,EA51GiF,CAyrHjF;AACA;;AACA,MAAIuC,WAAW,GAAG,wDAAlB;;AAEAlb,QAAM,CAAC8Y,QAAP,CAAgBwB,aAAhB,GAAgC,UAAU9X,KAAV,EAAiB2Y,KAAjB,EAAyB;AAExD;AACA;AACA,QAAKjgB,MAAM,CAACkgB,OAAP,IAAkBlgB,MAAM,CAACkgB,OAAP,CAAeC,IAAjC,IAAyC7Y,KAAzC,IAAkD0Y,WAAW,CAAC7R,IAAZ,CAAkB7G,KAAK,CAACb,IAAxB,CAAvD,EAAwF;AACvFzG,YAAM,CAACkgB,OAAP,CAAeC,IAAf,CAAqB,gCAAgC7Y,KAAK,CAAC8Y,OAA3D,EAAoE9Y,KAAK,CAAC2Y,KAA1E,EAAiFA,KAAjF;AACA;AACD,GAPD;;AAYAnb,QAAM,CAACub,cAAP,GAAwB,UAAU/Y,KAAV,EAAkB;AACzCtH,UAAM,CAACkC,UAAP,CAAmB,YAAW;AAC7B,YAAMoF,KAAN;AACA,KAFD;AAGA,GAJD,CAzsHiF,CAktHjF;;;AACA,MAAIgZ,SAAS,GAAGxb,MAAM,CAAC8Y,QAAP,EAAhB;;AAEA9Y,QAAM,CAAC3F,EAAP,CAAUmb,KAAV,GAAkB,UAAUnb,EAAV,EAAe;AAEhCmhB,aAAS,CACP3C,IADF,CACQxe,EADR,EAGC;AACA;AACA;AALD,KAMEohB,KANF,CAMS,UAAUjZ,KAAV,EAAkB;AACzBxC,YAAM,CAACub,cAAP,CAAuB/Y,KAAvB;AACA,KARF;AAUA,WAAO,IAAP;AACA,GAbD;;AAeAxC,QAAM,CAACpF,MAAP,CAAe;AAEd;AACA2H,WAAO,EAAE,KAHK;AAKd;AACA;AACAmZ,aAAS,EAAE,CAPG;AASd;AACAlG,SAAK,EAAE,UAAUmG,IAAV,EAAiB;AAEvB;AACA,UAAKA,IAAI,KAAK,IAAT,GAAgB,EAAE3b,MAAM,CAAC0b,SAAzB,GAAqC1b,MAAM,CAACuC,OAAjD,EAA2D;AAC1D;AACA,OALsB,CAOvB;;;AACAvC,YAAM,CAACuC,OAAP,GAAiB,IAAjB,CARuB,CAUvB;;AACA,UAAKoZ,IAAI,KAAK,IAAT,IAAiB,EAAE3b,MAAM,CAAC0b,SAAT,GAAqB,CAA3C,EAA+C;AAC9C;AACA,OAbsB,CAevB;;;AACAF,eAAS,CAACpB,WAAV,CAAuB3hB,QAAvB,EAAiC,CAAEuH,MAAF,CAAjC;AACA;AA3Ba,GAAf;AA8BAA,QAAM,CAACwV,KAAP,CAAaqD,IAAb,GAAoB2C,SAAS,CAAC3C,IAA9B,CAlwHiF,CAowHjF;;AACA,WAAS+C,SAAT,GAAqB;AACpBnjB,YAAQ,CAACuB,mBAAT,CAA8B,kBAA9B,EAAkD4hB,SAAlD;AACA1gB,UAAM,CAAClB,mBAAP,CAA4B,MAA5B,EAAoC4hB,SAApC;AACA5b,UAAM,CAACwV,KAAP;AACA,GAzwHgF,CA2wHjF;AACA;AACA;AACA;;;AACA,MAAK/c,QAAQ,CAACojB,UAAT,KAAwB,UAAxB,IACFpjB,QAAQ,CAACojB,UAAT,KAAwB,SAAxB,IAAqC,CAACpjB,QAAQ,CAAC6S,eAAT,CAAyBwQ,QADlE,EAC+E;AAE9E;AACA5gB,UAAM,CAACkC,UAAP,CAAmB4C,MAAM,CAACwV,KAA1B;AAEA,GAND,MAMO;AAEN;AACA/c,YAAQ,CAACgB,gBAAT,CAA2B,kBAA3B,EAA+CmiB,SAA/C,EAHM,CAKN;;AACA1gB,UAAM,CAACzB,gBAAP,CAAyB,MAAzB,EAAiCmiB,SAAjC;AACA,GA5xHgF,CAiyHjF;AACA;;;AACA,MAAIG,MAAM,GAAG,UAAUpb,KAAV,EAAiBtG,EAAjB,EAAqB4P,GAArB,EAA0BtG,KAA1B,EAAiCqY,SAAjC,EAA4CC,QAA5C,EAAsDC,GAAtD,EAA4D;AACxE,QAAIhjB,CAAC,GAAG,CAAR;AAAA,QACCmI,GAAG,GAAGV,KAAK,CAACxH,MADb;AAAA,QAECgjB,IAAI,GAAGlS,GAAG,IAAI,IAFf,CADwE,CAKxE;;AACA,QAAKlK,MAAM,CAAEkK,GAAF,CAAN,KAAkB,QAAvB,EAAkC;AACjC+R,eAAS,GAAG,IAAZ;;AACA,WAAM9iB,CAAN,IAAW+Q,GAAX,EAAiB;AAChB8R,cAAM,CAAEpb,KAAF,EAAStG,EAAT,EAAanB,CAAb,EAAgB+Q,GAAG,CAAE/Q,CAAF,CAAnB,EAA0B,IAA1B,EAAgC+iB,QAAhC,EAA0CC,GAA1C,CAAN;AACA,OAJgC,CAMlC;;AACC,KAPD,MAOO,IAAKvY,KAAK,KAAKxB,SAAf,EAA2B;AACjC6Z,eAAS,GAAG,IAAZ;;AAEA,UAAK,CAACnd,UAAU,CAAE8E,KAAF,CAAhB,EAA4B;AAC3BuY,WAAG,GAAG,IAAN;AACA;;AAED,UAAKC,IAAL,EAAY;AAEX;AACA,YAAKD,GAAL,EAAW;AACV7hB,YAAE,CAACe,IAAH,CAASuF,KAAT,EAAgBgD,KAAhB;AACAtJ,YAAE,GAAG,IAAL,CAFU,CAIX;AACC,SALD,MAKO;AACN8hB,cAAI,GAAG9hB,EAAP;;AACAA,YAAE,GAAG,UAAUH,IAAV,EAAgB+P,GAAhB,EAAqBtG,KAArB,EAA6B;AACjC,mBAAOwY,IAAI,CAAC/gB,IAAL,CAAW4E,MAAM,CAAE9F,IAAF,CAAjB,EAA2ByJ,KAA3B,CAAP;AACA,WAFD;AAGA;AACD;;AAED,UAAKtJ,EAAL,EAAU;AACT,eAAQnB,CAAC,GAAGmI,GAAZ,EAAiBnI,CAAC,EAAlB,EAAuB;AACtBmB,YAAE,CACDsG,KAAK,CAAEzH,CAAF,CADJ,EACW+Q,GADX,EACgBiS,GAAG,GACpBvY,KADoB,GAEpBA,KAAK,CAACvI,IAAN,CAAYuF,KAAK,CAAEzH,CAAF,CAAjB,EAAwBA,CAAxB,EAA2BmB,EAAE,CAAEsG,KAAK,CAAEzH,CAAF,CAAP,EAAc+Q,GAAd,CAA7B,CAHC,CAAF;AAKA;AACD;AACD;;AAED,QAAK+R,SAAL,EAAiB;AAChB,aAAOrb,KAAP;AACA,KAjDuE,CAmDxE;;;AACA,QAAKwb,IAAL,EAAY;AACX,aAAO9hB,EAAE,CAACe,IAAH,CAASuF,KAAT,CAAP;AACA;;AAED,WAAOU,GAAG,GAAGhH,EAAE,CAAEsG,KAAK,CAAE,CAAF,CAAP,EAAcsJ,GAAd,CAAL,GAA2BgS,QAArC;AACA,GAzDD,CAnyHiF,CA+1HjF;;;AACA,MAAIG,SAAS,GAAG,OAAhB;AAAA,MACCC,UAAU,GAAG,WADd,CAh2HiF,CAm2HjF;;AACA,WAASC,UAAT,CAAqBC,GAArB,EAA0BC,MAA1B,EAAmC;AAClC,WAAOA,MAAM,CAACC,WAAP,EAAP;AACA,GAt2HgF,CAw2HjF;AACA;AACA;;;AACA,WAASC,SAAT,CAAoBC,MAApB,EAA6B;AAC5B,WAAOA,MAAM,CAACra,OAAP,CAAgB8Z,SAAhB,EAA2B,KAA3B,EAAmC9Z,OAAnC,CAA4C+Z,UAA5C,EAAwDC,UAAxD,CAAP;AACA;;AACD,MAAIM,UAAU,GAAG,UAAUC,KAAV,EAAkB;AAElC;AACA;AACA;AACA;AACA;AACA;AACA,WAAOA,KAAK,CAAC9d,QAAN,KAAmB,CAAnB,IAAwB8d,KAAK,CAAC9d,QAAN,KAAmB,CAA3C,IAAgD,CAAG,CAAC8d,KAAK,CAAC9d,QAAjE;AACA,GATD;;AAcA,WAAS+d,IAAT,GAAgB;AACf,SAAK1a,OAAL,GAAepC,MAAM,CAACoC,OAAP,GAAiB0a,IAAI,CAACC,GAAL,EAAhC;AACA;;AAEDD,MAAI,CAACC,GAAL,GAAW,CAAX;AAEAD,MAAI,CAACjkB,SAAL,GAAiB;AAEhBmR,SAAK,EAAE,UAAU6S,KAAV,EAAkB;AAExB;AACA,UAAIlZ,KAAK,GAAGkZ,KAAK,CAAE,KAAKza,OAAP,CAAjB,CAHwB,CAKxB;;AACA,UAAK,CAACuB,KAAN,EAAc;AACbA,aAAK,GAAG,EAAR,CADa,CAGb;AACA;AACA;;AACA,YAAKiZ,UAAU,CAAEC,KAAF,CAAf,EAA2B;AAE1B;AACA;AACA,cAAKA,KAAK,CAAC9d,QAAX,EAAsB;AACrB8d,iBAAK,CAAE,KAAKza,OAAP,CAAL,GAAwBuB,KAAxB,CADqB,CAGtB;AACA;AACA;AACC,WAND,MAMO;AACN1F,kBAAM,CAAC+e,cAAP,CAAuBH,KAAvB,EAA8B,KAAKza,OAAnC,EAA4C;AAC3CuB,mBAAK,EAAEA,KADoC;AAE3CsZ,0BAAY,EAAE;AAF6B,aAA5C;AAIA;AACD;AACD;;AAED,aAAOtZ,KAAP;AACA,KAlCe;AAmChBuZ,OAAG,EAAE,UAAUL,KAAV,EAAiBjjB,IAAjB,EAAuB+J,KAAvB,EAA+B;AACnC,UAAIwZ,IAAJ;AAAA,UACCnT,KAAK,GAAG,KAAKA,KAAL,CAAY6S,KAAZ,CADT,CADmC,CAInC;AACA;;AACA,UAAK,OAAOjjB,IAAP,KAAgB,QAArB,EAAgC;AAC/BoQ,aAAK,CAAE0S,SAAS,CAAE9iB,IAAF,CAAX,CAAL,GAA6B+J,KAA7B,CAD+B,CAGhC;AACC,OAJD,MAIO;AAEN;AACA,aAAMwZ,IAAN,IAAcvjB,IAAd,EAAqB;AACpBoQ,eAAK,CAAE0S,SAAS,CAAES,IAAF,CAAX,CAAL,GAA6BvjB,IAAI,CAAEujB,IAAF,CAAjC;AACA;AACD;;AACD,aAAOnT,KAAP;AACA,KArDe;AAsDhBxJ,OAAG,EAAE,UAAUqc,KAAV,EAAiB5S,GAAjB,EAAuB;AAC3B,aAAOA,GAAG,KAAK9H,SAAR,GACN,KAAK6H,KAAL,CAAY6S,KAAZ,CADM,GAGN;AACAA,WAAK,CAAE,KAAKza,OAAP,CAAL,IAAyBya,KAAK,CAAE,KAAKza,OAAP,CAAL,CAAuBsa,SAAS,CAAEzS,GAAF,CAAhC,CAJ1B;AAKA,KA5De;AA6DhB8R,UAAM,EAAE,UAAUc,KAAV,EAAiB5S,GAAjB,EAAsBtG,KAAtB,EAA8B;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAKsG,GAAG,KAAK9H,SAAR,IACC8H,GAAG,IAAI,OAAOA,GAAP,KAAe,QAAxB,IAAsCtG,KAAK,KAAKxB,SADpD,EACkE;AAEjE,eAAO,KAAK3B,GAAL,CAAUqc,KAAV,EAAiB5S,GAAjB,CAAP;AACA,OAjBoC,CAmBrC;AACA;AACA;AACA;AACA;AACA;;;AACA,WAAKiT,GAAL,CAAUL,KAAV,EAAiB5S,GAAjB,EAAsBtG,KAAtB,EAzBqC,CA2BrC;AACA;;AACA,aAAOA,KAAK,KAAKxB,SAAV,GAAsBwB,KAAtB,GAA8BsG,GAArC;AACA,KA3Fe;AA4FhB4N,UAAM,EAAE,UAAUgF,KAAV,EAAiB5S,GAAjB,EAAuB;AAC9B,UAAI/Q,CAAJ;AAAA,UACC8Q,KAAK,GAAG6S,KAAK,CAAE,KAAKza,OAAP,CADd;;AAGA,UAAK4H,KAAK,KAAK7H,SAAf,EAA2B;AAC1B;AACA;;AAED,UAAK8H,GAAG,KAAK9H,SAAb,EAAyB;AAExB;AACA,YAAKvJ,KAAK,CAACsJ,OAAN,CAAe+H,GAAf,CAAL,EAA4B;AAE3B;AACA;AACAA,aAAG,GAAGA,GAAG,CAAChJ,GAAJ,CAASyb,SAAT,CAAN;AACA,SALD,MAKO;AACNzS,aAAG,GAAGyS,SAAS,CAAEzS,GAAF,CAAf,CADM,CAGN;AACA;;AACAA,aAAG,GAAGA,GAAG,IAAID,KAAP,GACL,CAAEC,GAAF,CADK,GAEHA,GAAG,CAACvB,KAAJ,CAAWqO,aAAX,KAA8B,EAFjC;AAGA;;AAED7d,SAAC,GAAG+Q,GAAG,CAAC9Q,MAAR;;AAEA,eAAQD,CAAC,EAAT,EAAc;AACb,iBAAO8Q,KAAK,CAAEC,GAAG,CAAE/Q,CAAF,CAAL,CAAZ;AACA;AACD,OA/B6B,CAiC9B;;;AACA,UAAK+Q,GAAG,KAAK9H,SAAR,IAAqBnC,MAAM,CAAC6C,aAAP,CAAsBmH,KAAtB,CAA1B,EAA0D;AAEzD;AACA;AACA;AACA;AACA,YAAK6S,KAAK,CAAC9d,QAAX,EAAsB;AACrB8d,eAAK,CAAE,KAAKza,OAAP,CAAL,GAAwBD,SAAxB;AACA,SAFD,MAEO;AACN,iBAAO0a,KAAK,CAAE,KAAKza,OAAP,CAAZ;AACA;AACD;AACD,KA1Ie;AA2IhBgb,WAAO,EAAE,UAAUP,KAAV,EAAkB;AAC1B,UAAI7S,KAAK,GAAG6S,KAAK,CAAE,KAAKza,OAAP,CAAjB;AACA,aAAO4H,KAAK,KAAK7H,SAAV,IAAuB,CAACnC,MAAM,CAAC6C,aAAP,CAAsBmH,KAAtB,CAA/B;AACA;AA9Ie,GAAjB;AAgJA,MAAIqT,QAAQ,GAAG,IAAIP,IAAJ,EAAf;AAEA,MAAIQ,QAAQ,GAAG,IAAIR,IAAJ,EAAf,CAphIiF,CAwhIjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIS,MAAM,GAAG,+BAAb;AAAA,MACCC,UAAU,GAAG,QADd;;AAGA,WAASC,OAAT,CAAkB7jB,IAAlB,EAAyB;AACxB,QAAKA,IAAI,KAAK,MAAd,EAAuB;AACtB,aAAO,IAAP;AACA;;AAED,QAAKA,IAAI,KAAK,OAAd,EAAwB;AACvB,aAAO,KAAP;AACA;;AAED,QAAKA,IAAI,KAAK,MAAd,EAAuB;AACtB,aAAO,IAAP;AACA,KAXuB,CAaxB;;;AACA,QAAKA,IAAI,KAAK,CAACA,IAAD,GAAQ,EAAtB,EAA2B;AAC1B,aAAO,CAACA,IAAR;AACA;;AAED,QAAK2jB,MAAM,CAAClU,IAAP,CAAazP,IAAb,CAAL,EAA2B;AAC1B,aAAO8jB,IAAI,CAACC,KAAL,CAAY/jB,IAAZ,CAAP;AACA;;AAED,WAAOA,IAAP;AACA;;AAED,WAASgkB,QAAT,CAAmB1jB,IAAnB,EAAyB+P,GAAzB,EAA8BrQ,IAA9B,EAAqC;AACpC,QAAI+H,IAAJ,CADoC,CAGpC;AACA;;AACA,QAAK/H,IAAI,KAAKuI,SAAT,IAAsBjI,IAAI,CAAC6E,QAAL,KAAkB,CAA7C,EAAiD;AAChD4C,UAAI,GAAG,UAAUsI,GAAG,CAAC3H,OAAJ,CAAakb,UAAb,EAAyB,KAAzB,EAAiCxZ,WAAjC,EAAjB;AACApK,UAAI,GAAGM,IAAI,CAACqP,YAAL,CAAmB5H,IAAnB,CAAP;;AAEA,UAAK,OAAO/H,IAAP,KAAgB,QAArB,EAAgC;AAC/B,YAAI;AACHA,cAAI,GAAG6jB,OAAO,CAAE7jB,IAAF,CAAd;AACA,SAFD,CAEE,OAAQyO,CAAR,EAAY,CAAE,CAHe,CAK/B;;;AACAiV,gBAAQ,CAACJ,GAAT,CAAchjB,IAAd,EAAoB+P,GAApB,EAAyBrQ,IAAzB;AACA,OAPD,MAOO;AACNA,YAAI,GAAGuI,SAAP;AACA;AACD;;AACD,WAAOvI,IAAP;AACA;;AAEDoG,QAAM,CAACpF,MAAP,CAAe;AACdwiB,WAAO,EAAE,UAAUljB,IAAV,EAAiB;AACzB,aAAOojB,QAAQ,CAACF,OAAT,CAAkBljB,IAAlB,KAA4BmjB,QAAQ,CAACD,OAAT,CAAkBljB,IAAlB,CAAnC;AACA,KAHa;AAKdN,QAAI,EAAE,UAAUM,IAAV,EAAgByH,IAAhB,EAAsB/H,IAAtB,EAA6B;AAClC,aAAO0jB,QAAQ,CAACvB,MAAT,CAAiB7hB,IAAjB,EAAuByH,IAAvB,EAA6B/H,IAA7B,CAAP;AACA,KAPa;AASdK,cAAU,EAAE,UAAUC,IAAV,EAAgByH,IAAhB,EAAuB;AAClC2b,cAAQ,CAACzF,MAAT,CAAiB3d,IAAjB,EAAuByH,IAAvB;AACA,KAXa;AAad;AACA;AACAkc,SAAK,EAAE,UAAU3jB,IAAV,EAAgByH,IAAhB,EAAsB/H,IAAtB,EAA6B;AACnC,aAAOyjB,QAAQ,CAACtB,MAAT,CAAiB7hB,IAAjB,EAAuByH,IAAvB,EAA6B/H,IAA7B,CAAP;AACA,KAjBa;AAmBdkkB,eAAW,EAAE,UAAU5jB,IAAV,EAAgByH,IAAhB,EAAuB;AACnC0b,cAAQ,CAACxF,MAAT,CAAiB3d,IAAjB,EAAuByH,IAAvB;AACA;AArBa,GAAf;AAwBA3B,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjBhB,QAAI,EAAE,UAAUqQ,GAAV,EAAetG,KAAf,EAAuB;AAC5B,UAAIzK,CAAJ;AAAA,UAAOyI,IAAP;AAAA,UAAa/H,IAAb;AAAA,UACCM,IAAI,GAAG,KAAM,CAAN,CADR;AAAA,UAECsQ,KAAK,GAAGtQ,IAAI,IAAIA,IAAI,CAACgM,UAFtB,CAD4B,CAK5B;;AACA,UAAK+D,GAAG,KAAK9H,SAAb,EAAyB;AACxB,YAAK,KAAKhJ,MAAV,EAAmB;AAClBS,cAAI,GAAG0jB,QAAQ,CAAC9c,GAAT,CAActG,IAAd,CAAP;;AAEA,cAAKA,IAAI,CAAC6E,QAAL,KAAkB,CAAlB,IAAuB,CAACse,QAAQ,CAAC7c,GAAT,CAActG,IAAd,EAAoB,cAApB,CAA7B,EAAoE;AACnEhB,aAAC,GAAGsR,KAAK,CAACrR,MAAV;;AACA,mBAAQD,CAAC,EAAT,EAAc;AAEb;AACA;AACA,kBAAKsR,KAAK,CAAEtR,CAAF,CAAV,EAAkB;AACjByI,oBAAI,GAAG6I,KAAK,CAAEtR,CAAF,CAAL,CAAWyI,IAAlB;;AACA,oBAAKA,IAAI,CAACtD,OAAL,CAAc,OAAd,MAA4B,CAAjC,EAAqC;AACpCsD,sBAAI,GAAG+a,SAAS,CAAE/a,IAAI,CAAChJ,KAAL,CAAY,CAAZ,CAAF,CAAhB;AACAilB,0BAAQ,CAAE1jB,IAAF,EAAQyH,IAAR,EAAc/H,IAAI,CAAE+H,IAAF,CAAlB,CAAR;AACA;AACD;AACD;;AACD0b,oBAAQ,CAACH,GAAT,CAAchjB,IAAd,EAAoB,cAApB,EAAoC,IAApC;AACA;AACD;;AAED,eAAON,IAAP;AACA,OA7B2B,CA+B5B;;;AACA,UAAK,OAAOqQ,GAAP,KAAe,QAApB,EAA+B;AAC9B,eAAO,KAAKlJ,IAAL,CAAW,YAAW;AAC5Buc,kBAAQ,CAACJ,GAAT,CAAc,IAAd,EAAoBjT,GAApB;AACA,SAFM,CAAP;AAGA;;AAED,aAAO8R,MAAM,CAAE,IAAF,EAAQ,UAAUpY,KAAV,EAAkB;AACtC,YAAI/J,IAAJ,CADsC,CAGtC;AACA;AACA;AACA;AACA;;AACA,YAAKM,IAAI,IAAIyJ,KAAK,KAAKxB,SAAvB,EAAmC;AAElC;AACA;AACAvI,cAAI,GAAG0jB,QAAQ,CAAC9c,GAAT,CAActG,IAAd,EAAoB+P,GAApB,CAAP;;AACA,cAAKrQ,IAAI,KAAKuI,SAAd,EAA0B;AACzB,mBAAOvI,IAAP;AACA,WAPiC,CASlC;AACA;;;AACAA,cAAI,GAAGgkB,QAAQ,CAAE1jB,IAAF,EAAQ+P,GAAR,CAAf;;AACA,cAAKrQ,IAAI,KAAKuI,SAAd,EAA0B;AACzB,mBAAOvI,IAAP;AACA,WAdiC,CAgBlC;;;AACA;AACA,SA1BqC,CA4BtC;;;AACA,aAAKmH,IAAL,CAAW,YAAW;AAErB;AACAuc,kBAAQ,CAACJ,GAAT,CAAc,IAAd,EAAoBjT,GAApB,EAAyBtG,KAAzB;AACA,SAJD;AAKA,OAlCY,EAkCV,IAlCU,EAkCJA,KAlCI,EAkCGtI,SAAS,CAAClC,MAAV,GAAmB,CAlCtB,EAkCyB,IAlCzB,EAkC+B,IAlC/B,CAAb;AAmCA,KA1EgB;AA4EjBc,cAAU,EAAE,UAAUgQ,GAAV,EAAgB;AAC3B,aAAO,KAAKlJ,IAAL,CAAW,YAAW;AAC5Buc,gBAAQ,CAACzF,MAAT,CAAiB,IAAjB,EAAuB5N,GAAvB;AACA,OAFM,CAAP;AAGA;AAhFgB,GAAlB;AAoFAjK,QAAM,CAACpF,MAAP,CAAe;AACd4c,SAAK,EAAE,UAAUtd,IAAV,EAAgB2B,IAAhB,EAAsBjC,IAAtB,EAA6B;AACnC,UAAI4d,KAAJ;;AAEA,UAAKtd,IAAL,EAAY;AACX2B,YAAI,GAAG,CAAEA,IAAI,IAAI,IAAV,IAAmB,OAA1B;AACA2b,aAAK,GAAG6F,QAAQ,CAAC7c,GAAT,CAActG,IAAd,EAAoB2B,IAApB,CAAR,CAFW,CAIX;;AACA,YAAKjC,IAAL,EAAY;AACX,cAAK,CAAC4d,KAAD,IAAU5e,KAAK,CAACsJ,OAAN,CAAetI,IAAf,CAAf,EAAuC;AACtC4d,iBAAK,GAAG6F,QAAQ,CAACtB,MAAT,CAAiB7hB,IAAjB,EAAuB2B,IAAvB,EAA6BmE,MAAM,CAACiD,SAAP,CAAkBrJ,IAAlB,CAA7B,CAAR;AACA,WAFD,MAEO;AACN4d,iBAAK,CAACpZ,IAAN,CAAYxE,IAAZ;AACA;AACD;;AACD,eAAO4d,KAAK,IAAI,EAAhB;AACA;AACD,KAlBa;AAoBduG,WAAO,EAAE,UAAU7jB,IAAV,EAAgB2B,IAAhB,EAAuB;AAC/BA,UAAI,GAAGA,IAAI,IAAI,IAAf;;AAEA,UAAI2b,KAAK,GAAGxX,MAAM,CAACwX,KAAP,CAActd,IAAd,EAAoB2B,IAApB,CAAZ;AAAA,UACCmiB,WAAW,GAAGxG,KAAK,CAACre,MADrB;AAAA,UAECkB,EAAE,GAAGmd,KAAK,CAACrN,KAAN,EAFN;AAAA,UAGC8T,KAAK,GAAGje,MAAM,CAACke,WAAP,CAAoBhkB,IAApB,EAA0B2B,IAA1B,CAHT;AAAA,UAICsM,IAAI,GAAG,YAAW;AACjBnI,cAAM,CAAC+d,OAAP,CAAgB7jB,IAAhB,EAAsB2B,IAAtB;AACA,OANF,CAH+B,CAW/B;;;AACA,UAAKxB,EAAE,KAAK,YAAZ,EAA2B;AAC1BA,UAAE,GAAGmd,KAAK,CAACrN,KAAN,EAAL;AACA6T,mBAAW;AACX;;AAED,UAAK3jB,EAAL,EAAU;AAET;AACA;AACA,YAAKwB,IAAI,KAAK,IAAd,EAAqB;AACpB2b,eAAK,CAACta,OAAN,CAAe,YAAf;AACA,SANQ,CAQT;;;AACA,eAAO+gB,KAAK,CAACE,IAAb;AACA9jB,UAAE,CAACe,IAAH,CAASlB,IAAT,EAAeiO,IAAf,EAAqB8V,KAArB;AACA;;AAED,UAAK,CAACD,WAAD,IAAgBC,KAArB,EAA6B;AAC5BA,aAAK,CAACnG,KAAN,CAAYJ,IAAZ;AACA;AACD,KArDa;AAuDd;AACAwG,eAAW,EAAE,UAAUhkB,IAAV,EAAgB2B,IAAhB,EAAuB;AACnC,UAAIoO,GAAG,GAAGpO,IAAI,GAAG,YAAjB;AACA,aAAOwhB,QAAQ,CAAC7c,GAAT,CAActG,IAAd,EAAoB+P,GAApB,KAA6BoT,QAAQ,CAACtB,MAAT,CAAiB7hB,IAAjB,EAAuB+P,GAAvB,EAA4B;AAC/D6N,aAAK,EAAE9X,MAAM,CAACmX,SAAP,CAAkB,aAAlB,EAAkCf,GAAlC,CAAuC,YAAW;AACxDiH,kBAAQ,CAACxF,MAAT,CAAiB3d,IAAjB,EAAuB,CAAE2B,IAAI,GAAG,OAAT,EAAkBoO,GAAlB,CAAvB;AACA,SAFM;AADwD,OAA5B,CAApC;AAKA;AA/Da,GAAf;AAkEAjK,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjB4c,SAAK,EAAE,UAAU3b,IAAV,EAAgBjC,IAAhB,EAAuB;AAC7B,UAAIwkB,MAAM,GAAG,CAAb;;AAEA,UAAK,OAAOviB,IAAP,KAAgB,QAArB,EAAgC;AAC/BjC,YAAI,GAAGiC,IAAP;AACAA,YAAI,GAAG,IAAP;AACAuiB,cAAM;AACN;;AAED,UAAK/iB,SAAS,CAAClC,MAAV,GAAmBilB,MAAxB,EAAiC;AAChC,eAAOpe,MAAM,CAACwX,KAAP,CAAc,KAAM,CAAN,CAAd,EAAyB3b,IAAzB,CAAP;AACA;;AAED,aAAOjC,IAAI,KAAKuI,SAAT,GACN,IADM,GAEN,KAAKpB,IAAL,CAAW,YAAW;AACrB,YAAIyW,KAAK,GAAGxX,MAAM,CAACwX,KAAP,CAAc,IAAd,EAAoB3b,IAApB,EAA0BjC,IAA1B,CAAZ,CADqB,CAGrB;;AACAoG,cAAM,CAACke,WAAP,CAAoB,IAApB,EAA0BriB,IAA1B;;AAEA,YAAKA,IAAI,KAAK,IAAT,IAAiB2b,KAAK,CAAE,CAAF,CAAL,KAAe,YAArC,EAAoD;AACnDxX,gBAAM,CAAC+d,OAAP,CAAgB,IAAhB,EAAsBliB,IAAtB;AACA;AACD,OATD,CAFD;AAYA,KA1BgB;AA2BjBkiB,WAAO,EAAE,UAAUliB,IAAV,EAAiB;AACzB,aAAO,KAAKkF,IAAL,CAAW,YAAW;AAC5Bf,cAAM,CAAC+d,OAAP,CAAgB,IAAhB,EAAsBliB,IAAtB;AACA,OAFM,CAAP;AAGA,KA/BgB;AAgCjBwiB,cAAU,EAAE,UAAUxiB,IAAV,EAAiB;AAC5B,aAAO,KAAK2b,KAAL,CAAY3b,IAAI,IAAI,IAApB,EAA0B,EAA1B,CAAP;AACA,KAlCgB;AAoCjB;AACA;AACA8c,WAAO,EAAE,UAAU9c,IAAV,EAAgBiD,GAAhB,EAAsB;AAC9B,UAAIsN,GAAJ;AAAA,UACCkS,KAAK,GAAG,CADT;AAAA,UAECC,KAAK,GAAGve,MAAM,CAAC8Y,QAAP,EAFT;AAAA,UAGCxL,QAAQ,GAAG,IAHZ;AAAA,UAICpU,CAAC,GAAG,KAAKC,MAJV;AAAA,UAKCof,OAAO,GAAG,YAAW;AACpB,YAAK,CAAG,GAAE+F,KAAV,EAAoB;AACnBC,eAAK,CAACnE,WAAN,CAAmB9M,QAAnB,EAA6B,CAAEA,QAAF,CAA7B;AACA;AACD,OATF;;AAWA,UAAK,OAAOzR,IAAP,KAAgB,QAArB,EAAgC;AAC/BiD,WAAG,GAAGjD,IAAN;AACAA,YAAI,GAAGsG,SAAP;AACA;;AACDtG,UAAI,GAAGA,IAAI,IAAI,IAAf;;AAEA,aAAQ3C,CAAC,EAAT,EAAc;AACbkT,WAAG,GAAGiR,QAAQ,CAAC7c,GAAT,CAAc8M,QAAQ,CAAEpU,CAAF,CAAtB,EAA6B2C,IAAI,GAAG,YAApC,CAAN;;AACA,YAAKuQ,GAAG,IAAIA,GAAG,CAAC0L,KAAhB,EAAwB;AACvBwG,eAAK;AACLlS,aAAG,CAAC0L,KAAJ,CAAU1B,GAAV,CAAemC,OAAf;AACA;AACD;;AACDA,aAAO;AACP,aAAOgG,KAAK,CAAC5F,OAAN,CAAe7Z,GAAf,CAAP;AACA;AAjEgB,GAAlB;AAmEA,MAAI0f,IAAI,GAAK,qCAAF,CAA0CC,MAArD;AAEA,MAAIC,OAAO,GAAG,IAAIrY,MAAJ,CAAY,mBAAmBmY,IAAnB,GAA0B,aAAtC,EAAqD,GAArD,CAAd;AAGA,MAAIG,SAAS,GAAG,CAAE,KAAF,EAAS,OAAT,EAAkB,QAAlB,EAA4B,MAA5B,CAAhB;;AAEA,MAAIC,kBAAkB,GAAG,UAAU1kB,IAAV,EAAgBoQ,EAAhB,EAAqB;AAE5C;AACA;AACApQ,QAAI,GAAGoQ,EAAE,IAAIpQ,IAAb,CAJ4C,CAM5C;;AACA,WAAOA,IAAI,CAAC2kB,KAAL,CAAWC,OAAX,KAAuB,MAAvB,IACN5kB,IAAI,CAAC2kB,KAAL,CAAWC,OAAX,KAAuB,EAAvB,IAEA;AACA;AACA;AACA;AACA9e,UAAM,CAACgF,QAAP,CAAiB9K,IAAI,CAAC4O,aAAtB,EAAqC5O,IAArC,CANA,IAQA8F,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,SAAlB,MAAkC,MATnC;AAUA,GAjBF;;AAmBA,MAAI6kB,IAAI,GAAG,UAAU7kB,IAAV,EAAgBwH,OAAhB,EAAyBV,QAAzB,EAAmC7F,IAAnC,EAA0C;AACpD,QAAIyF,GAAJ;AAAA,QAASe,IAAT;AAAA,QACCqd,GAAG,GAAG,EADP,CADoD,CAIpD;;AACA,SAAMrd,IAAN,IAAcD,OAAd,EAAwB;AACvBsd,SAAG,CAAErd,IAAF,CAAH,GAAczH,IAAI,CAAC2kB,KAAL,CAAYld,IAAZ,CAAd;AACAzH,UAAI,CAAC2kB,KAAL,CAAYld,IAAZ,IAAqBD,OAAO,CAAEC,IAAF,CAA5B;AACA;;AAEDf,OAAG,GAAGI,QAAQ,CAACxD,KAAT,CAAgBtD,IAAhB,EAAsBiB,IAAI,IAAI,EAA9B,CAAN,CAVoD,CAYpD;;AACA,SAAMwG,IAAN,IAAcD,OAAd,EAAwB;AACvBxH,UAAI,CAAC2kB,KAAL,CAAYld,IAAZ,IAAqBqd,GAAG,CAAErd,IAAF,CAAxB;AACA;;AAED,WAAOf,GAAP;AACA,GAlBD;;AAuBA,WAASqe,SAAT,CAAoB/kB,IAApB,EAA0BijB,IAA1B,EAAgC+B,UAAhC,EAA4CC,KAA5C,EAAoD;AACnD,QAAIC,QAAJ;AAAA,QAAcC,KAAd;AAAA,QACCC,aAAa,GAAG,EADjB;AAAA,QAECC,YAAY,GAAGJ,KAAK,GACnB,YAAW;AACV,aAAOA,KAAK,CAACxU,GAAN,EAAP;AACA,KAHkB,GAInB,YAAW;AACV,aAAO3K,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkBijB,IAAlB,EAAwB,EAAxB,CAAP;AACA,KARH;AAAA,QASCqC,OAAO,GAAGD,YAAY,EATvB;AAAA,QAUCE,IAAI,GAAGP,UAAU,IAAIA,UAAU,CAAE,CAAF,CAAxB,KAAmClf,MAAM,CAAC0f,SAAP,CAAkBvC,IAAlB,IAA2B,EAA3B,GAAgC,IAAnE,CAVR;AAAA,QAYC;AACAwC,iBAAa,GAAG,CAAE3f,MAAM,CAAC0f,SAAP,CAAkBvC,IAAlB,KAA4BsC,IAAI,KAAK,IAAT,IAAiB,CAACD,OAAhD,KACfd,OAAO,CAAC3V,IAAR,CAAc/I,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkBijB,IAAlB,CAAd,CAdF;;AAgBA,QAAKwC,aAAa,IAAIA,aAAa,CAAE,CAAF,CAAb,KAAuBF,IAA7C,EAAoD;AAEnD;AACA;AACAD,aAAO,GAAGA,OAAO,GAAG,CAApB,CAJmD,CAMnD;;AACAC,UAAI,GAAGA,IAAI,IAAIE,aAAa,CAAE,CAAF,CAA5B,CAPmD,CASnD;;AACAA,mBAAa,GAAG,CAACH,OAAD,IAAY,CAA5B;;AAEA,aAAQF,aAAa,EAArB,EAA0B;AAEzB;AACA;AACAtf,cAAM,CAAC6e,KAAP,CAAc3kB,IAAd,EAAoBijB,IAApB,EAA0BwC,aAAa,GAAGF,IAA1C;;AACA,YAAK,CAAE,IAAIJ,KAAN,KAAkB,KAAMA,KAAK,GAAGE,YAAY,KAAKC,OAAjB,IAA4B,GAA1C,CAAlB,KAAuE,CAA5E,EAAgF;AAC/EF,uBAAa,GAAG,CAAhB;AACA;;AACDK,qBAAa,GAAGA,aAAa,GAAGN,KAAhC;AAEA;;AAEDM,mBAAa,GAAGA,aAAa,GAAG,CAAhC;AACA3f,YAAM,CAAC6e,KAAP,CAAc3kB,IAAd,EAAoBijB,IAApB,EAA0BwC,aAAa,GAAGF,IAA1C,EAzBmD,CA2BnD;;AACAP,gBAAU,GAAGA,UAAU,IAAI,EAA3B;AACA;;AAED,QAAKA,UAAL,EAAkB;AACjBS,mBAAa,GAAG,CAACA,aAAD,IAAkB,CAACH,OAAnB,IAA8B,CAA9C,CADiB,CAGjB;;AACAJ,cAAQ,GAAGF,UAAU,CAAE,CAAF,CAAV,GACVS,aAAa,GAAG,CAAET,UAAU,CAAE,CAAF,CAAV,GAAkB,CAApB,IAA0BA,UAAU,CAAE,CAAF,CAD1C,GAEV,CAACA,UAAU,CAAE,CAAF,CAFZ;;AAGA,UAAKC,KAAL,EAAa;AACZA,aAAK,CAACM,IAAN,GAAaA,IAAb;AACAN,aAAK,CAAC7P,KAAN,GAAcqQ,aAAd;AACAR,aAAK,CAAC5d,GAAN,GAAY6d,QAAZ;AACA;AACD;;AACD,WAAOA,QAAP;AACA;;AAGD,MAAIQ,iBAAiB,GAAG,EAAxB;;AAEA,WAASC,iBAAT,CAA4B3lB,IAA5B,EAAmC;AAClC,QAAI0Y,IAAJ;AAAA,QACCtT,GAAG,GAAGpF,IAAI,CAAC4O,aADZ;AAAA,QAECQ,QAAQ,GAAGpP,IAAI,CAACoP,QAFjB;AAAA,QAGCwV,OAAO,GAAGc,iBAAiB,CAAEtW,QAAF,CAH5B;;AAKA,QAAKwV,OAAL,EAAe;AACd,aAAOA,OAAP;AACA;;AAEDlM,QAAI,GAAGtT,GAAG,CAACwgB,IAAJ,CAASlgB,WAAT,CAAsBN,GAAG,CAACG,aAAJ,CAAmB6J,QAAnB,CAAtB,CAAP;AACAwV,WAAO,GAAG9e,MAAM,CAACzF,GAAP,CAAYqY,IAAZ,EAAkB,SAAlB,CAAV;AAEAA,QAAI,CAAC/S,UAAL,CAAgBC,WAAhB,CAA6B8S,IAA7B;;AAEA,QAAKkM,OAAO,KAAK,MAAjB,EAA0B;AACzBA,aAAO,GAAG,OAAV;AACA;;AACDc,qBAAiB,CAAEtW,QAAF,CAAjB,GAAgCwV,OAAhC;AAEA,WAAOA,OAAP;AACA;;AAED,WAASiB,QAAT,CAAmBzS,QAAnB,EAA6B0S,IAA7B,EAAoC;AACnC,QAAIlB,OAAJ;AAAA,QAAa5kB,IAAb;AAAA,QACC+lB,MAAM,GAAG,EADV;AAAA,QAEC/J,KAAK,GAAG,CAFT;AAAA,QAGC/c,MAAM,GAAGmU,QAAQ,CAACnU,MAHnB,CADmC,CAMnC;;AACA,WAAQ+c,KAAK,GAAG/c,MAAhB,EAAwB+c,KAAK,EAA7B,EAAkC;AACjChc,UAAI,GAAGoT,QAAQ,CAAE4I,KAAF,CAAf;;AACA,UAAK,CAAChc,IAAI,CAAC2kB,KAAX,EAAmB;AAClB;AACA;;AAEDC,aAAO,GAAG5kB,IAAI,CAAC2kB,KAAL,CAAWC,OAArB;;AACA,UAAKkB,IAAL,EAAY;AAEX;AACA;AACA;AACA,YAAKlB,OAAO,KAAK,MAAjB,EAA0B;AACzBmB,gBAAM,CAAE/J,KAAF,CAAN,GAAkBmH,QAAQ,CAAC7c,GAAT,CAActG,IAAd,EAAoB,SAApB,KAAmC,IAArD;;AACA,cAAK,CAAC+lB,MAAM,CAAE/J,KAAF,CAAZ,EAAwB;AACvBhc,gBAAI,CAAC2kB,KAAL,CAAWC,OAAX,GAAqB,EAArB;AACA;AACD;;AACD,YAAK5kB,IAAI,CAAC2kB,KAAL,CAAWC,OAAX,KAAuB,EAAvB,IAA6BF,kBAAkB,CAAE1kB,IAAF,CAApD,EAA+D;AAC9D+lB,gBAAM,CAAE/J,KAAF,CAAN,GAAkB2J,iBAAiB,CAAE3lB,IAAF,CAAnC;AACA;AACD,OAdD,MAcO;AACN,YAAK4kB,OAAO,KAAK,MAAjB,EAA0B;AACzBmB,gBAAM,CAAE/J,KAAF,CAAN,GAAkB,MAAlB,CADyB,CAGzB;;AACAmH,kBAAQ,CAACH,GAAT,CAAchjB,IAAd,EAAoB,SAApB,EAA+B4kB,OAA/B;AACA;AACD;AACD,KApCkC,CAsCnC;;;AACA,SAAM5I,KAAK,GAAG,CAAd,EAAiBA,KAAK,GAAG/c,MAAzB,EAAiC+c,KAAK,EAAtC,EAA2C;AAC1C,UAAK+J,MAAM,CAAE/J,KAAF,CAAN,IAAmB,IAAxB,EAA+B;AAC9B5I,gBAAQ,CAAE4I,KAAF,CAAR,CAAkB2I,KAAlB,CAAwBC,OAAxB,GAAkCmB,MAAM,CAAE/J,KAAF,CAAxC;AACA;AACD;;AAED,WAAO5I,QAAP;AACA;;AAEDtN,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjBolB,QAAI,EAAE,YAAW;AAChB,aAAOD,QAAQ,CAAE,IAAF,EAAQ,IAAR,CAAf;AACA,KAHgB;AAIjBG,QAAI,EAAE,YAAW;AAChB,aAAOH,QAAQ,CAAE,IAAF,CAAf;AACA,KANgB;AAOjBI,UAAM,EAAE,UAAUlH,KAAV,EAAkB;AACzB,UAAK,OAAOA,KAAP,KAAiB,SAAtB,EAAkC;AACjC,eAAOA,KAAK,GAAG,KAAK+G,IAAL,EAAH,GAAiB,KAAKE,IAAL,EAA7B;AACA;;AAED,aAAO,KAAKnf,IAAL,CAAW,YAAW;AAC5B,YAAK6d,kBAAkB,CAAE,IAAF,CAAvB,EAAkC;AACjC5e,gBAAM,CAAE,IAAF,CAAN,CAAeggB,IAAf;AACA,SAFD,MAEO;AACNhgB,gBAAM,CAAE,IAAF,CAAN,CAAekgB,IAAf;AACA;AACD,OANM,CAAP;AAOA;AAnBgB,GAAlB;AAqBA,MAAIE,cAAc,GAAK,uBAAvB;AAEA,MAAIC,QAAQ,GAAK,gCAAjB;AAEA,MAAIC,WAAW,GAAK,oCAApB,CA1hJiF,CA8hJjF;;AACA,MAAIC,OAAO,GAAG;AAEb;AACAC,UAAM,EAAE,CAAE,CAAF,EAAK,8BAAL,EAAqC,WAArC,CAHK;AAKb;AACA;AACA;AACAC,SAAK,EAAE,CAAE,CAAF,EAAK,SAAL,EAAgB,UAAhB,CARM;AASbC,OAAG,EAAE,CAAE,CAAF,EAAK,mBAAL,EAA0B,qBAA1B,CATQ;AAUbC,MAAE,EAAE,CAAE,CAAF,EAAK,gBAAL,EAAuB,kBAAvB,CAVS;AAWbC,MAAE,EAAE,CAAE,CAAF,EAAK,oBAAL,EAA2B,uBAA3B,CAXS;AAabC,YAAQ,EAAE,CAAE,CAAF,EAAK,EAAL,EAAS,EAAT;AAbG,GAAd,CA/hJiF,CA+iJjF;;AACAN,SAAO,CAACO,QAAR,GAAmBP,OAAO,CAACC,MAA3B;AAEAD,SAAO,CAACQ,KAAR,GAAgBR,OAAO,CAACS,KAAR,GAAgBT,OAAO,CAACU,QAAR,GAAmBV,OAAO,CAACW,OAAR,GAAkBX,OAAO,CAACE,KAA7E;AACAF,SAAO,CAACY,EAAR,GAAaZ,OAAO,CAACK,EAArB;;AAGA,WAASQ,MAAT,CAAiBlhB,OAAjB,EAA0BiM,GAA1B,EAAgC;AAE/B;AACA;AACA,QAAIvL,GAAJ;;AAEA,QAAK,OAAOV,OAAO,CAACgJ,oBAAf,KAAwC,WAA7C,EAA2D;AAC1DtI,SAAG,GAAGV,OAAO,CAACgJ,oBAAR,CAA8BiD,GAAG,IAAI,GAArC,CAAN;AAEA,KAHD,MAGO,IAAK,OAAOjM,OAAO,CAAC0J,gBAAf,KAAoC,WAAzC,EAAuD;AAC7DhJ,SAAG,GAAGV,OAAO,CAAC0J,gBAAR,CAA0BuC,GAAG,IAAI,GAAjC,CAAN;AAEA,KAHM,MAGA;AACNvL,SAAG,GAAG,EAAN;AACA;;AAED,QAAKuL,GAAG,KAAKhK,SAAR,IAAqBgK,GAAG,IAAI7C,QAAQ,CAAEpJ,OAAF,EAAWiM,GAAX,CAAzC,EAA4D;AAC3D,aAAOnM,MAAM,CAACa,KAAP,CAAc,CAAEX,OAAF,CAAd,EAA2BU,GAA3B,CAAP;AACA;;AAED,WAAOA,GAAP;AACA,GA3kJgF,CA8kJjF;;;AACA,WAASygB,aAAT,CAAwB1gB,KAAxB,EAA+B2gB,WAA/B,EAA6C;AAC5C,QAAIpoB,CAAC,GAAG,CAAR;AAAA,QACC8c,CAAC,GAAGrV,KAAK,CAACxH,MADX;;AAGA,WAAQD,CAAC,GAAG8c,CAAZ,EAAe9c,CAAC,EAAhB,EAAqB;AACpBmkB,cAAQ,CAACH,GAAT,CACCvc,KAAK,CAAEzH,CAAF,CADN,EAEC,YAFD,EAGC,CAACooB,WAAD,IAAgBjE,QAAQ,CAAC7c,GAAT,CAAc8gB,WAAW,CAAEpoB,CAAF,CAAzB,EAAgC,YAAhC,CAHjB;AAKA;AACD;;AAGD,MAAIqoB,KAAK,GAAG,WAAZ;;AAEA,WAASC,aAAT,CAAwB7gB,KAAxB,EAA+BT,OAA/B,EAAwCuhB,OAAxC,EAAiDC,SAAjD,EAA4DC,OAA5D,EAAsE;AACrE,QAAIznB,IAAJ;AAAA,QAAUkS,GAAV;AAAA,QAAeD,GAAf;AAAA,QAAoByV,IAApB;AAAA,QAA0B5c,QAA1B;AAAA,QAAoC1D,CAApC;AAAA,QACCugB,QAAQ,GAAG3hB,OAAO,CAAC4hB,sBAAR,EADZ;AAAA,QAECC,KAAK,GAAG,EAFT;AAAA,QAGC7oB,CAAC,GAAG,CAHL;AAAA,QAIC8c,CAAC,GAAGrV,KAAK,CAACxH,MAJX;;AAMA,WAAQD,CAAC,GAAG8c,CAAZ,EAAe9c,CAAC,EAAhB,EAAqB;AACpBgB,UAAI,GAAGyG,KAAK,CAAEzH,CAAF,CAAZ;;AAEA,UAAKgB,IAAI,IAAIA,IAAI,KAAK,CAAtB,EAA0B;AAEzB;AACA,YAAK6F,MAAM,CAAE7F,IAAF,CAAN,KAAmB,QAAxB,EAAmC;AAElC;AACA;AACA8F,gBAAM,CAACa,KAAP,CAAckhB,KAAd,EAAqB7nB,IAAI,CAAC6E,QAAL,GAAgB,CAAE7E,IAAF,CAAhB,GAA2BA,IAAhD,EAJkC,CAMnC;AACC,SAPD,MAOO,IAAK,CAACqnB,KAAK,CAAClY,IAAN,CAAYnP,IAAZ,CAAN,EAA2B;AACjC6nB,eAAK,CAAC3jB,IAAN,CAAY8B,OAAO,CAAC8hB,cAAR,CAAwB9nB,IAAxB,CAAZ,EADiC,CAGlC;AACC,SAJM,MAIA;AACNkS,aAAG,GAAGA,GAAG,IAAIyV,QAAQ,CAACjiB,WAAT,CAAsBM,OAAO,CAACT,aAAR,CAAuB,KAAvB,CAAtB,CAAb,CADM,CAGN;;AACA0M,aAAG,GAAG,CAAEkU,QAAQ,CAACtX,IAAT,CAAe7O,IAAf,KAAyB,CAAE,EAAF,EAAM,EAAN,CAA3B,EAAyC,CAAzC,EAA6C8J,WAA7C,EAAN;AACA4d,cAAI,GAAGrB,OAAO,CAAEpU,GAAF,CAAP,IAAkBoU,OAAO,CAACM,QAAjC;AACAzU,aAAG,CAACC,SAAJ,GAAgBuV,IAAI,CAAE,CAAF,CAAJ,GAAY5hB,MAAM,CAACiiB,aAAP,CAAsB/nB,IAAtB,CAAZ,GAA2C0nB,IAAI,CAAE,CAAF,CAA/D,CANM,CAQN;;AACAtgB,WAAC,GAAGsgB,IAAI,CAAE,CAAF,CAAR;;AACA,iBAAQtgB,CAAC,EAAT,EAAc;AACb8K,eAAG,GAAGA,GAAG,CAACqD,SAAV;AACA,WAZK,CAcN;AACA;;;AACAzP,gBAAM,CAACa,KAAP,CAAckhB,KAAd,EAAqB3V,GAAG,CAAChE,UAAzB,EAhBM,CAkBN;;AACAgE,aAAG,GAAGyV,QAAQ,CAAC5T,UAAf,CAnBM,CAqBN;;AACA7B,aAAG,CAAC4B,WAAJ,GAAkB,EAAlB;AACA;AACD;AACD,KAjDoE,CAmDrE;;;AACA6T,YAAQ,CAAC7T,WAAT,GAAuB,EAAvB;AAEA9U,KAAC,GAAG,CAAJ;;AACA,WAAUgB,IAAI,GAAG6nB,KAAK,CAAE7oB,CAAC,EAAH,CAAtB,EAAkC;AAEjC;AACA,UAAKwoB,SAAS,IAAI1hB,MAAM,CAACmD,OAAP,CAAgBjJ,IAAhB,EAAsBwnB,SAAtB,IAAoC,CAAC,CAAvD,EAA2D;AAC1D,YAAKC,OAAL,EAAe;AACdA,iBAAO,CAACvjB,IAAR,CAAclE,IAAd;AACA;;AACD;AACA;;AAED8K,cAAQ,GAAGhF,MAAM,CAACgF,QAAP,CAAiB9K,IAAI,CAAC4O,aAAtB,EAAqC5O,IAArC,CAAX,CAViC,CAYjC;;AACAkS,SAAG,GAAGgV,MAAM,CAAES,QAAQ,CAACjiB,WAAT,CAAsB1F,IAAtB,CAAF,EAAgC,QAAhC,CAAZ,CAbiC,CAejC;;AACA,UAAK8K,QAAL,EAAgB;AACfqc,qBAAa,CAAEjV,GAAF,CAAb;AACA,OAlBgC,CAoBjC;;;AACA,UAAKqV,OAAL,EAAe;AACdngB,SAAC,GAAG,CAAJ;;AACA,eAAUpH,IAAI,GAAGkS,GAAG,CAAE9K,CAAC,EAAH,CAApB,EAAgC;AAC/B,cAAKgf,WAAW,CAACjX,IAAZ,CAAkBnP,IAAI,CAAC2B,IAAL,IAAa,EAA/B,CAAL,EAA2C;AAC1C4lB,mBAAO,CAACrjB,IAAR,CAAclE,IAAd;AACA;AACD;AACD;AACD;;AAED,WAAO2nB,QAAP;AACA;;AAGD,GAAE,YAAW;AACZ,QAAIA,QAAQ,GAAGppB,QAAQ,CAACqpB,sBAAT,EAAf;AAAA,QACCI,GAAG,GAAGL,QAAQ,CAACjiB,WAAT,CAAsBnH,QAAQ,CAACgH,aAAT,CAAwB,KAAxB,CAAtB,CADP;AAAA,QAEC6M,KAAK,GAAG7T,QAAQ,CAACgH,aAAT,CAAwB,OAAxB,CAFT,CADY,CAKZ;AACA;AACA;AACA;;AACA6M,SAAK,CAAC9C,YAAN,CAAoB,MAApB,EAA4B,OAA5B;AACA8C,SAAK,CAAC9C,YAAN,CAAoB,SAApB,EAA+B,SAA/B;AACA8C,SAAK,CAAC9C,YAAN,CAAoB,MAApB,EAA4B,GAA5B;AAEA0Y,OAAG,CAACtiB,WAAJ,CAAiB0M,KAAjB,EAbY,CAeZ;AACA;;AACA1N,WAAO,CAACujB,UAAR,GAAqBD,GAAG,CAACE,SAAJ,CAAe,IAAf,EAAsBA,SAAtB,CAAiC,IAAjC,EAAwC3S,SAAxC,CAAkDiB,OAAvE,CAjBY,CAmBZ;AACA;;AACAwR,OAAG,CAAC7V,SAAJ,GAAgB,wBAAhB;AACAzN,WAAO,CAACyjB,cAAR,GAAyB,CAAC,CAACH,GAAG,CAACE,SAAJ,CAAe,IAAf,EAAsB3S,SAAtB,CAAgC4E,YAA3D;AACA,GAvBD;;AAwBA,MAAI/I,eAAe,GAAG7S,QAAQ,CAAC6S,eAA/B;AAIA,MACCgX,SAAS,GAAG,MADb;AAAA,MAECC,WAAW,GAAG,gDAFf;AAAA,MAGCC,cAAc,GAAG,qBAHlB;;AAKA,WAASC,UAAT,GAAsB;AACrB,WAAO,IAAP;AACA;;AAED,WAASC,WAAT,GAAuB;AACtB,WAAO,KAAP;AACA,GAhuJgF,CAkuJjF;AACA;;;AACA,WAASC,iBAAT,GAA6B;AAC5B,QAAI;AACH,aAAOlqB,QAAQ,CAAC6X,aAAhB;AACA,KAFD,CAEE,OAAQsS,GAAR,EAAc,CAAG;AACnB;;AAED,WAASC,EAAT,CAAa3oB,IAAb,EAAmB4oB,KAAnB,EAA0B7iB,QAA1B,EAAoCrG,IAApC,EAA0CS,EAA1C,EAA8C0oB,GAA9C,EAAoD;AACnD,QAAIC,MAAJ,EAAYnnB,IAAZ,CADmD,CAGnD;;AACA,QAAK,OAAOinB,KAAP,KAAiB,QAAtB,EAAiC;AAEhC;AACA,UAAK,OAAO7iB,QAAP,KAAoB,QAAzB,EAAoC;AAEnC;AACArG,YAAI,GAAGA,IAAI,IAAIqG,QAAf;AACAA,gBAAQ,GAAGkC,SAAX;AACA;;AACD,WAAMtG,IAAN,IAAcinB,KAAd,EAAsB;AACrBD,UAAE,CAAE3oB,IAAF,EAAQ2B,IAAR,EAAcoE,QAAd,EAAwBrG,IAAxB,EAA8BkpB,KAAK,CAAEjnB,IAAF,CAAnC,EAA6CknB,GAA7C,CAAF;AACA;;AACD,aAAO7oB,IAAP;AACA;;AAED,QAAKN,IAAI,IAAI,IAAR,IAAgBS,EAAE,IAAI,IAA3B,EAAkC;AAEjC;AACAA,QAAE,GAAG4F,QAAL;AACArG,UAAI,GAAGqG,QAAQ,GAAGkC,SAAlB;AACA,KALD,MAKO,IAAK9H,EAAE,IAAI,IAAX,EAAkB;AACxB,UAAK,OAAO4F,QAAP,KAAoB,QAAzB,EAAoC;AAEnC;AACA5F,UAAE,GAAGT,IAAL;AACAA,YAAI,GAAGuI,SAAP;AACA,OALD,MAKO;AAEN;AACA9H,UAAE,GAAGT,IAAL;AACAA,YAAI,GAAGqG,QAAP;AACAA,gBAAQ,GAAGkC,SAAX;AACA;AACD;;AACD,QAAK9H,EAAE,KAAK,KAAZ,EAAoB;AACnBA,QAAE,GAAGqoB,WAAL;AACA,KAFD,MAEO,IAAK,CAACroB,EAAN,EAAW;AACjB,aAAOH,IAAP;AACA;;AAED,QAAK6oB,GAAG,KAAK,CAAb,EAAiB;AAChBC,YAAM,GAAG3oB,EAAT;;AACAA,QAAE,GAAG,UAAUrB,KAAV,EAAkB;AAEtB;AACAgH,cAAM,GAAGijB,GAAT,CAAcjqB,KAAd;AACA,eAAOgqB,MAAM,CAACxlB,KAAP,CAAc,IAAd,EAAoBnC,SAApB,CAAP;AACA,OALD,CAFgB,CAShB;;;AACAhB,QAAE,CAACuJ,IAAH,GAAUof,MAAM,CAACpf,IAAP,KAAiBof,MAAM,CAACpf,IAAP,GAAc5D,MAAM,CAAC4D,IAAP,EAA/B,CAAV;AACA;;AACD,WAAO1J,IAAI,CAAC6G,IAAL,CAAW,YAAW;AAC5Bf,YAAM,CAAChH,KAAP,CAAaod,GAAb,CAAkB,IAAlB,EAAwB0M,KAAxB,EAA+BzoB,EAA/B,EAAmCT,IAAnC,EAAyCqG,QAAzC;AACA,KAFM,CAAP;AAGA;AAED;;;;;;AAIAD,QAAM,CAAChH,KAAP,GAAe;AAEdyE,UAAM,EAAE,EAFM;AAId2Y,OAAG,EAAE,UAAUlc,IAAV,EAAgB4oB,KAAhB,EAAuBppB,OAAvB,EAAgCE,IAAhC,EAAsCqG,QAAtC,EAAiD;AAErD,UAAIijB,WAAJ;AAAA,UAAiBC,WAAjB;AAAA,UAA8B/W,GAA9B;AAAA,UACCgX,MADD;AAAA,UACSC,CADT;AAAA,UACYC,SADZ;AAAA,UAECjqB,OAFD;AAAA,UAEUkqB,QAFV;AAAA,UAEoB1nB,IAFpB;AAAA,UAE0B2nB,UAF1B;AAAA,UAEsCC,QAFtC;AAAA,UAGCC,QAAQ,GAAGrG,QAAQ,CAAC7c,GAAT,CAActG,IAAd,CAHZ,CAFqD,CAOrD;;AACA,UAAK,CAACwpB,QAAN,EAAiB;AAChB;AACA,OAVoD,CAYrD;;;AACA,UAAKhqB,OAAO,CAACA,OAAb,EAAuB;AACtBwpB,mBAAW,GAAGxpB,OAAd;AACAA,eAAO,GAAGwpB,WAAW,CAACxpB,OAAtB;AACAuG,gBAAQ,GAAGijB,WAAW,CAACjjB,QAAvB;AACA,OAjBoD,CAmBrD;AACA;;;AACA,UAAKA,QAAL,EAAgB;AACfD,cAAM,CAACiM,IAAP,CAAYM,eAAZ,CAA6BjB,eAA7B,EAA8CrL,QAA9C;AACA,OAvBoD,CAyBrD;;;AACA,UAAK,CAACvG,OAAO,CAACkK,IAAd,EAAqB;AACpBlK,eAAO,CAACkK,IAAR,GAAe5D,MAAM,CAAC4D,IAAP,EAAf;AACA,OA5BoD,CA8BrD;;;AACA,UAAK,EAAGwf,MAAM,GAAGM,QAAQ,CAACN,MAArB,CAAL,EAAqC;AACpCA,cAAM,GAAGM,QAAQ,CAACN,MAAT,GAAkB,EAA3B;AACA;;AACD,UAAK,EAAGD,WAAW,GAAGO,QAAQ,CAACnmB,MAA1B,CAAL,EAA0C;AACzC4lB,mBAAW,GAAGO,QAAQ,CAACnmB,MAAT,GAAkB,UAAU8K,CAAV,EAAc;AAE7C;AACA;AACA,iBAAO,OAAOrI,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAAChH,KAAP,CAAa2qB,SAAb,KAA2Btb,CAAC,CAACxM,IAA9D,GACNmE,MAAM,CAAChH,KAAP,CAAasE,QAAb,CAAsBE,KAAtB,CAA6BtD,IAA7B,EAAmCmB,SAAnC,CADM,GAC2C8G,SADlD;AAEA,SAND;AAOA,OA1CoD,CA4CrD;;;AACA2gB,WAAK,GAAG,CAAEA,KAAK,IAAI,EAAX,EAAgBpa,KAAhB,CAAuBqO,aAAvB,KAA0C,CAAE,EAAF,CAAlD;AACAsM,OAAC,GAAGP,KAAK,CAAC3pB,MAAV;;AACA,aAAQkqB,CAAC,EAAT,EAAc;AACbjX,WAAG,GAAGoW,cAAc,CAACzZ,IAAf,CAAqB+Z,KAAK,CAAEO,CAAF,CAA1B,KAAqC,EAA3C;AACAxnB,YAAI,GAAG4nB,QAAQ,GAAGrX,GAAG,CAAE,CAAF,CAArB;AACAoX,kBAAU,GAAG,CAAEpX,GAAG,CAAE,CAAF,CAAH,IAAY,EAAd,EAAmBrI,KAAnB,CAA0B,GAA1B,EAAgCvC,IAAhC,EAAb,CAHa,CAKb;;AACA,YAAK,CAAC3F,IAAN,EAAa;AACZ;AACA,SARY,CAUb;;;AACAxC,eAAO,GAAG2G,MAAM,CAAChH,KAAP,CAAaK,OAAb,CAAsBwC,IAAtB,KAAgC,EAA1C,CAXa,CAab;;AACAA,YAAI,GAAG,CAAEoE,QAAQ,GAAG5G,OAAO,CAACuqB,YAAX,GAA0BvqB,OAAO,CAACwqB,QAA5C,KAA0DhoB,IAAjE,CAda,CAgBb;;AACAxC,eAAO,GAAG2G,MAAM,CAAChH,KAAP,CAAaK,OAAb,CAAsBwC,IAAtB,KAAgC,EAA1C,CAjBa,CAmBb;;AACAynB,iBAAS,GAAGtjB,MAAM,CAACpF,MAAP,CAAe;AAC1BiB,cAAI,EAAEA,IADoB;AAE1B4nB,kBAAQ,EAAEA,QAFgB;AAG1B7pB,cAAI,EAAEA,IAHoB;AAI1BF,iBAAO,EAAEA,OAJiB;AAK1BkK,cAAI,EAAElK,OAAO,CAACkK,IALY;AAM1B3D,kBAAQ,EAAEA,QANgB;AAO1B8U,sBAAY,EAAE9U,QAAQ,IAAID,MAAM,CAACqN,IAAP,CAAY3E,KAAZ,CAAkBqM,YAAlB,CAA+B1L,IAA/B,CAAqCpJ,QAArC,CAPA;AAQ1B6jB,mBAAS,EAAEN,UAAU,CAAC9Z,IAAX,CAAiB,GAAjB;AARe,SAAf,EASTwZ,WATS,CAAZ,CApBa,CA+Bb;;AACA,YAAK,EAAGK,QAAQ,GAAGH,MAAM,CAAEvnB,IAAF,CAApB,CAAL,EAAsC;AACrC0nB,kBAAQ,GAAGH,MAAM,CAAEvnB,IAAF,CAAN,GAAiB,EAA5B;AACA0nB,kBAAQ,CAACQ,aAAT,GAAyB,CAAzB,CAFqC,CAIrC;;AACA,cAAK,CAAC1qB,OAAO,CAACG,KAAT,IACJH,OAAO,CAACG,KAAR,CAAc4B,IAAd,CAAoBlB,IAApB,EAA0BN,IAA1B,EAAgC4pB,UAAhC,EAA4CL,WAA5C,MAA8D,KAD/D,EACuE;AAEtE,gBAAKjpB,IAAI,CAACT,gBAAV,EAA6B;AAC5BS,kBAAI,CAACT,gBAAL,CAAuBoC,IAAvB,EAA6BsnB,WAA7B;AACA;AACD;AACD;;AAED,YAAK9pB,OAAO,CAAC+c,GAAb,EAAmB;AAClB/c,iBAAO,CAAC+c,GAAR,CAAYhb,IAAZ,CAAkBlB,IAAlB,EAAwBopB,SAAxB;;AAEA,cAAK,CAACA,SAAS,CAAC5pB,OAAV,CAAkBkK,IAAxB,EAA+B;AAC9B0f,qBAAS,CAAC5pB,OAAV,CAAkBkK,IAAlB,GAAyBlK,OAAO,CAACkK,IAAjC;AACA;AACD,SApDY,CAsDb;;;AACA,YAAK3D,QAAL,EAAgB;AACfsjB,kBAAQ,CAAC9hB,MAAT,CAAiB8hB,QAAQ,CAACQ,aAAT,EAAjB,EAA2C,CAA3C,EAA8CT,SAA9C;AACA,SAFD,MAEO;AACNC,kBAAQ,CAACnlB,IAAT,CAAeklB,SAAf;AACA,SA3DY,CA6Db;;;AACAtjB,cAAM,CAAChH,KAAP,CAAayE,MAAb,CAAqB5B,IAArB,IAA8B,IAA9B;AACA;AAED,KApHa;AAsHd;AACAgc,UAAM,EAAE,UAAU3d,IAAV,EAAgB4oB,KAAhB,EAAuBppB,OAAvB,EAAgCuG,QAAhC,EAA0C+jB,WAA1C,EAAwD;AAE/D,UAAI1iB,CAAJ;AAAA,UAAO2iB,SAAP;AAAA,UAAkB7X,GAAlB;AAAA,UACCgX,MADD;AAAA,UACSC,CADT;AAAA,UACYC,SADZ;AAAA,UAECjqB,OAFD;AAAA,UAEUkqB,QAFV;AAAA,UAEoB1nB,IAFpB;AAAA,UAE0B2nB,UAF1B;AAAA,UAEsCC,QAFtC;AAAA,UAGCC,QAAQ,GAAGrG,QAAQ,CAACD,OAAT,CAAkBljB,IAAlB,KAA4BmjB,QAAQ,CAAC7c,GAAT,CAActG,IAAd,CAHxC;;AAKA,UAAK,CAACwpB,QAAD,IAAa,EAAGN,MAAM,GAAGM,QAAQ,CAACN,MAArB,CAAlB,EAAkD;AACjD;AACA,OAT8D,CAW/D;;;AACAN,WAAK,GAAG,CAAEA,KAAK,IAAI,EAAX,EAAgBpa,KAAhB,CAAuBqO,aAAvB,KAA0C,CAAE,EAAF,CAAlD;AACAsM,OAAC,GAAGP,KAAK,CAAC3pB,MAAV;;AACA,aAAQkqB,CAAC,EAAT,EAAc;AACbjX,WAAG,GAAGoW,cAAc,CAACzZ,IAAf,CAAqB+Z,KAAK,CAAEO,CAAF,CAA1B,KAAqC,EAA3C;AACAxnB,YAAI,GAAG4nB,QAAQ,GAAGrX,GAAG,CAAE,CAAF,CAArB;AACAoX,kBAAU,GAAG,CAAEpX,GAAG,CAAE,CAAF,CAAH,IAAY,EAAd,EAAmBrI,KAAnB,CAA0B,GAA1B,EAAgCvC,IAAhC,EAAb,CAHa,CAKb;;AACA,YAAK,CAAC3F,IAAN,EAAa;AACZ,eAAMA,IAAN,IAAcunB,MAAd,EAAuB;AACtBpjB,kBAAM,CAAChH,KAAP,CAAa6e,MAAb,CAAqB3d,IAArB,EAA2B2B,IAAI,GAAGinB,KAAK,CAAEO,CAAF,CAAvC,EAA8C3pB,OAA9C,EAAuDuG,QAAvD,EAAiE,IAAjE;AACA;;AACD;AACA;;AAED5G,eAAO,GAAG2G,MAAM,CAAChH,KAAP,CAAaK,OAAb,CAAsBwC,IAAtB,KAAgC,EAA1C;AACAA,YAAI,GAAG,CAAEoE,QAAQ,GAAG5G,OAAO,CAACuqB,YAAX,GAA0BvqB,OAAO,CAACwqB,QAA5C,KAA0DhoB,IAAjE;AACA0nB,gBAAQ,GAAGH,MAAM,CAAEvnB,IAAF,CAAN,IAAkB,EAA7B;AACAuQ,WAAG,GAAGA,GAAG,CAAE,CAAF,CAAH,IACL,IAAI/F,MAAJ,CAAY,YAAYmd,UAAU,CAAC9Z,IAAX,CAAiB,eAAjB,CAAZ,GAAiD,SAA7D,CADD,CAhBa,CAmBb;;AACAua,iBAAS,GAAG3iB,CAAC,GAAGiiB,QAAQ,CAACpqB,MAAzB;;AACA,eAAQmI,CAAC,EAAT,EAAc;AACbgiB,mBAAS,GAAGC,QAAQ,CAAEjiB,CAAF,CAApB;;AAEA,cAAK,CAAE0iB,WAAW,IAAIP,QAAQ,KAAKH,SAAS,CAACG,QAAxC,MACF,CAAC/pB,OAAD,IAAYA,OAAO,CAACkK,IAAR,KAAiB0f,SAAS,CAAC1f,IADrC,MAEF,CAACwI,GAAD,IAAQA,GAAG,CAAC/C,IAAJ,CAAUia,SAAS,CAACQ,SAApB,CAFN,MAGF,CAAC7jB,QAAD,IAAaA,QAAQ,KAAKqjB,SAAS,CAACrjB,QAApC,IACDA,QAAQ,KAAK,IAAb,IAAqBqjB,SAAS,CAACrjB,QAJ5B,CAAL,EAI8C;AAC7CsjB,oBAAQ,CAAC9hB,MAAT,CAAiBH,CAAjB,EAAoB,CAApB;;AAEA,gBAAKgiB,SAAS,CAACrjB,QAAf,EAA0B;AACzBsjB,sBAAQ,CAACQ,aAAT;AACA;;AACD,gBAAK1qB,OAAO,CAACwe,MAAb,EAAsB;AACrBxe,qBAAO,CAACwe,MAAR,CAAezc,IAAf,CAAqBlB,IAArB,EAA2BopB,SAA3B;AACA;AACD;AACD,SAtCY,CAwCb;AACA;;;AACA,YAAKW,SAAS,IAAI,CAACV,QAAQ,CAACpqB,MAA5B,EAAqC;AACpC,cAAK,CAACE,OAAO,CAACU,QAAT,IACJV,OAAO,CAACU,QAAR,CAAiBqB,IAAjB,CAAuBlB,IAAvB,EAA6BspB,UAA7B,EAAyCE,QAAQ,CAACnmB,MAAlD,MAA+D,KADhE,EACwE;AAEvEyC,kBAAM,CAACkkB,WAAP,CAAoBhqB,IAApB,EAA0B2B,IAA1B,EAAgC6nB,QAAQ,CAACnmB,MAAzC;AACA;;AAED,iBAAO6lB,MAAM,CAAEvnB,IAAF,CAAb;AACA;AACD,OAjE8D,CAmE/D;;;AACA,UAAKmE,MAAM,CAAC6C,aAAP,CAAsBugB,MAAtB,CAAL,EAAsC;AACrC/F,gBAAQ,CAACxF,MAAT,CAAiB3d,IAAjB,EAAuB,eAAvB;AACA;AACD,KA9La;AAgMdoD,YAAQ,EAAE,UAAU6mB,WAAV,EAAwB;AAEjC;AACA,UAAInrB,KAAK,GAAGgH,MAAM,CAAChH,KAAP,CAAa4C,GAAb,CAAkBuoB,WAAlB,CAAZ;AAEA,UAAIjrB,CAAJ;AAAA,UAAOoI,CAAP;AAAA,UAAUV,GAAV;AAAA,UAAekP,OAAf;AAAA,UAAwBwT,SAAxB;AAAA,UAAmCc,YAAnC;AAAA,UACCjpB,IAAI,GAAG,IAAIvC,KAAJ,CAAWyC,SAAS,CAAClC,MAArB,CADR;AAAA,UAECoqB,QAAQ,GAAG,CAAElG,QAAQ,CAAC7c,GAAT,CAAc,IAAd,EAAoB,QAApB,KAAkC,EAApC,EAA0CxH,KAAK,CAAC6C,IAAhD,KAA0D,EAFtE;AAAA,UAGCxC,OAAO,GAAG2G,MAAM,CAAChH,KAAP,CAAaK,OAAb,CAAsBL,KAAK,CAAC6C,IAA5B,KAAsC,EAHjD,CALiC,CAUjC;;AACAV,UAAI,CAAE,CAAF,CAAJ,GAAYnC,KAAZ;;AAEA,WAAME,CAAC,GAAG,CAAV,EAAaA,CAAC,GAAGmC,SAAS,CAAClC,MAA3B,EAAmCD,CAAC,EAApC,EAAyC;AACxCiC,YAAI,CAAEjC,CAAF,CAAJ,GAAYmC,SAAS,CAAEnC,CAAF,CAArB;AACA;;AAEDF,WAAK,CAACqrB,cAAN,GAAuB,IAAvB,CAjBiC,CAmBjC;;AACA,UAAKhrB,OAAO,CAACirB,WAAR,IAAuBjrB,OAAO,CAACirB,WAAR,CAAoBlpB,IAApB,CAA0B,IAA1B,EAAgCpC,KAAhC,MAA4C,KAAxE,EAAgF;AAC/E;AACA,OAtBgC,CAwBjC;;;AACAorB,kBAAY,GAAGpkB,MAAM,CAAChH,KAAP,CAAauqB,QAAb,CAAsBnoB,IAAtB,CAA4B,IAA5B,EAAkCpC,KAAlC,EAAyCuqB,QAAzC,CAAf,CAzBiC,CA2BjC;;AACArqB,OAAC,GAAG,CAAJ;;AACA,aAAQ,CAAE4W,OAAO,GAAGsU,YAAY,CAAElrB,CAAC,EAAH,CAAxB,KAAqC,CAACF,KAAK,CAACurB,oBAAN,EAA9C,EAA6E;AAC5EvrB,aAAK,CAACwrB,aAAN,GAAsB1U,OAAO,CAAC5V,IAA9B;AAEAoH,SAAC,GAAG,CAAJ;;AACA,eAAQ,CAAEgiB,SAAS,GAAGxT,OAAO,CAACyT,QAAR,CAAkBjiB,CAAC,EAAnB,CAAd,KACP,CAACtI,KAAK,CAACyrB,6BAAN,EADF,EAC0C;AAEzC;AACA;AACA,cAAK,CAACzrB,KAAK,CAAC0rB,UAAP,IAAqB1rB,KAAK,CAAC0rB,UAAN,CAAiBrb,IAAjB,CAAuBia,SAAS,CAACQ,SAAjC,CAA1B,EAAyE;AAExE9qB,iBAAK,CAACsqB,SAAN,GAAkBA,SAAlB;AACAtqB,iBAAK,CAACY,IAAN,GAAa0pB,SAAS,CAAC1pB,IAAvB;AAEAgH,eAAG,GAAG,CAAE,CAAEZ,MAAM,CAAChH,KAAP,CAAaK,OAAb,CAAsBiqB,SAAS,CAACG,QAAhC,KAA8C,EAAhD,EAAqDlmB,MAArD,IACP+lB,SAAS,CAAC5pB,OADL,EACe8D,KADf,CACsBsS,OAAO,CAAC5V,IAD9B,EACoCiB,IADpC,CAAN;;AAGA,gBAAKyF,GAAG,KAAKuB,SAAb,EAAyB;AACxB,kBAAK,CAAEnJ,KAAK,CAAC6V,MAAN,GAAejO,GAAjB,MAA2B,KAAhC,EAAwC;AACvC5H,qBAAK,CAAC2rB,cAAN;AACA3rB,qBAAK,CAAC4rB,eAAN;AACA;AACD;AACD;AACD;AACD,OAtDgC,CAwDjC;;;AACA,UAAKvrB,OAAO,CAACwrB,YAAb,EAA4B;AAC3BxrB,eAAO,CAACwrB,YAAR,CAAqBzpB,IAArB,CAA2B,IAA3B,EAAiCpC,KAAjC;AACA;;AAED,aAAOA,KAAK,CAAC6V,MAAb;AACA,KA9Pa;AAgQd0U,YAAQ,EAAE,UAAUvqB,KAAV,EAAiBuqB,QAAjB,EAA4B;AACrC,UAAIrqB,CAAJ;AAAA,UAAOoqB,SAAP;AAAA,UAAkB3V,GAAlB;AAAA,UAAuBmX,eAAvB;AAAA,UAAwCC,gBAAxC;AAAA,UACCX,YAAY,GAAG,EADhB;AAAA,UAECL,aAAa,GAAGR,QAAQ,CAACQ,aAF1B;AAAA,UAGCpZ,GAAG,GAAG3R,KAAK,CAAC+I,MAHb,CADqC,CAMrC;;AACA,UAAKgiB,aAAa,IAEjB;AACA;AACApZ,SAAG,CAAC5L,QAJA,IAMJ;AACA;AACA;AACA;AACA;AACA,QAAG/F,KAAK,CAAC6C,IAAN,KAAe,OAAf,IAA0B7C,KAAK,CAACgsB,MAAN,IAAgB,CAA7C,CAXD,EAWoD;AAEnD,eAAQra,GAAG,KAAK,IAAhB,EAAsBA,GAAG,GAAGA,GAAG,CAAC9K,UAAJ,IAAkB,IAA9C,EAAqD;AAEpD;AACA;AACA,cAAK8K,GAAG,CAAC5L,QAAJ,KAAiB,CAAjB,IAAsB,EAAG/F,KAAK,CAAC6C,IAAN,KAAe,OAAf,IAA0B8O,GAAG,CAAC1C,QAAJ,KAAiB,IAA9C,CAA3B,EAAkF;AACjF6c,2BAAe,GAAG,EAAlB;AACAC,4BAAgB,GAAG,EAAnB;;AACA,iBAAM7rB,CAAC,GAAG,CAAV,EAAaA,CAAC,GAAG6qB,aAAjB,EAAgC7qB,CAAC,EAAjC,EAAsC;AACrCoqB,uBAAS,GAAGC,QAAQ,CAAErqB,CAAF,CAApB,CADqC,CAGrC;;AACAyU,iBAAG,GAAG2V,SAAS,CAACrjB,QAAV,GAAqB,GAA3B;;AAEA,kBAAK8kB,gBAAgB,CAAEpX,GAAF,CAAhB,KAA4BxL,SAAjC,EAA6C;AAC5C4iB,gCAAgB,CAAEpX,GAAF,CAAhB,GAA0B2V,SAAS,CAACvO,YAAV,GACzB/U,MAAM,CAAE2N,GAAF,EAAO,IAAP,CAAN,CAAoBuI,KAApB,CAA2BvL,GAA3B,IAAmC,CAAC,CADX,GAEzB3K,MAAM,CAACiM,IAAP,CAAa0B,GAAb,EAAkB,IAAlB,EAAwB,IAAxB,EAA8B,CAAEhD,GAAF,CAA9B,EAAwCxR,MAFzC;AAGA;;AACD,kBAAK4rB,gBAAgB,CAAEpX,GAAF,CAArB,EAA+B;AAC9BmX,+BAAe,CAAC1mB,IAAhB,CAAsBklB,SAAtB;AACA;AACD;;AACD,gBAAKwB,eAAe,CAAC3rB,MAArB,EAA8B;AAC7BirB,0BAAY,CAAChmB,IAAb,CAAmB;AAAElE,oBAAI,EAAEyQ,GAAR;AAAa4Y,wBAAQ,EAAEuB;AAAvB,eAAnB;AACA;AACD;AACD;AACD,OA/CoC,CAiDrC;;;AACAna,SAAG,GAAG,IAAN;;AACA,UAAKoZ,aAAa,GAAGR,QAAQ,CAACpqB,MAA9B,EAAuC;AACtCirB,oBAAY,CAAChmB,IAAb,CAAmB;AAAElE,cAAI,EAAEyQ,GAAR;AAAa4Y,kBAAQ,EAAEA,QAAQ,CAAC5qB,KAAT,CAAgBorB,aAAhB;AAAvB,SAAnB;AACA;;AAED,aAAOK,YAAP;AACA,KAxTa;AA0Tda,WAAO,EAAE,UAAUtjB,IAAV,EAAgBujB,IAAhB,EAAuB;AAC/BjnB,YAAM,CAAC+e,cAAP,CAAuBhd,MAAM,CAACmlB,KAAP,CAAatsB,SAApC,EAA+C8I,IAA/C,EAAqD;AACpDyjB,kBAAU,EAAE,IADwC;AAEpDnI,oBAAY,EAAE,IAFsC;AAIpDzc,WAAG,EAAE3B,UAAU,CAAEqmB,IAAF,CAAV,GACJ,YAAW;AACV,cAAK,KAAKG,aAAV,EAA0B;AACxB,mBAAOH,IAAI,CAAE,KAAKG,aAAP,CAAX;AACD;AACD,SALG,GAMJ,YAAW;AACV,cAAK,KAAKA,aAAV,EAA0B;AACxB,mBAAO,KAAKA,aAAL,CAAoB1jB,IAApB,CAAP;AACD;AACD,SAdkD;AAgBpDub,WAAG,EAAE,UAAUvZ,KAAV,EAAkB;AACtB1F,gBAAM,CAAC+e,cAAP,CAAuB,IAAvB,EAA6Brb,IAA7B,EAAmC;AAClCyjB,sBAAU,EAAE,IADsB;AAElCnI,wBAAY,EAAE,IAFoB;AAGlCqI,oBAAQ,EAAE,IAHwB;AAIlC3hB,iBAAK,EAAEA;AAJ2B,WAAnC;AAMA;AAvBmD,OAArD;AAyBA,KApVa;AAsVd/H,OAAG,EAAE,UAAUypB,aAAV,EAA0B;AAC9B,aAAOA,aAAa,CAAErlB,MAAM,CAACoC,OAAT,CAAb,GACNijB,aADM,GAEN,IAAIrlB,MAAM,CAACmlB,KAAX,CAAkBE,aAAlB,CAFD;AAGA,KA1Va;AA4VdhsB,WAAO,EAAE;AACRksB,UAAI,EAAE;AAEL;AACAC,gBAAQ,EAAE;AAHL,OADE;AAMRC,WAAK,EAAE;AAEN;AACA3qB,eAAO,EAAE,YAAW;AACnB,cAAK,SAAS6nB,iBAAiB,EAA1B,IAAgC,KAAK8C,KAA1C,EAAkD;AACjD,iBAAKA,KAAL;AACA,mBAAO,KAAP;AACA;AACD,SARK;AASN7B,oBAAY,EAAE;AATR,OANC;AAiBR8B,UAAI,EAAE;AACL5qB,eAAO,EAAE,YAAW;AACnB,cAAK,SAAS6nB,iBAAiB,EAA1B,IAAgC,KAAK+C,IAA1C,EAAiD;AAChD,iBAAKA,IAAL;AACA,mBAAO,KAAP;AACA;AACD,SANI;AAOL9B,oBAAY,EAAE;AAPT,OAjBE;AA0BR+B,WAAK,EAAE;AAEN;AACA7qB,eAAO,EAAE,YAAW;AACnB,cAAK,KAAKe,IAAL,KAAc,UAAd,IAA4B,KAAK8pB,KAAjC,IAA0Crc,QAAQ,CAAE,IAAF,EAAQ,OAAR,CAAvD,EAA2E;AAC1E,iBAAKqc,KAAL;AACA,mBAAO,KAAP;AACA;AACD,SARK;AAUN;AACA9E,gBAAQ,EAAE,UAAU7nB,KAAV,EAAkB;AAC3B,iBAAOsQ,QAAQ,CAAEtQ,KAAK,CAAC+I,MAAR,EAAgB,GAAhB,CAAf;AACA;AAbK,OA1BC;AA0CR6jB,kBAAY,EAAE;AACbf,oBAAY,EAAE,UAAU7rB,KAAV,EAAkB;AAE/B;AACA;AACA,cAAKA,KAAK,CAAC6V,MAAN,KAAiB1M,SAAjB,IAA8BnJ,KAAK,CAACqsB,aAAzC,EAAyD;AACxDrsB,iBAAK,CAACqsB,aAAN,CAAoBQ,WAApB,GAAkC7sB,KAAK,CAAC6V,MAAxC;AACA;AACD;AARY;AA1CN;AA5VK,GAAf;;AAmZA7O,QAAM,CAACkkB,WAAP,GAAqB,UAAUhqB,IAAV,EAAgB2B,IAAhB,EAAsB0B,MAAtB,EAA+B;AAEnD;AACA,QAAKrD,IAAI,CAACF,mBAAV,EAAgC;AAC/BE,UAAI,CAACF,mBAAL,CAA0B6B,IAA1B,EAAgC0B,MAAhC;AACA;AACD,GAND;;AAQAyC,QAAM,CAACmlB,KAAP,GAAe,UAAUjmB,GAAV,EAAe4mB,KAAf,EAAuB;AAErC;AACA,QAAK,EAAG,gBAAgB9lB,MAAM,CAACmlB,KAA1B,CAAL,EAAyC;AACxC,aAAO,IAAInlB,MAAM,CAACmlB,KAAX,CAAkBjmB,GAAlB,EAAuB4mB,KAAvB,CAAP;AACA,KALoC,CAOrC;;;AACA,QAAK5mB,GAAG,IAAIA,GAAG,CAACrD,IAAhB,EAAuB;AACtB,WAAKwpB,aAAL,GAAqBnmB,GAArB;AACA,WAAKrD,IAAL,GAAYqD,GAAG,CAACrD,IAAhB,CAFsB,CAItB;AACA;;AACA,WAAKkqB,kBAAL,GAA0B7mB,GAAG,CAAC8mB,gBAAJ,IACxB9mB,GAAG,CAAC8mB,gBAAJ,KAAyB7jB,SAAzB,IAEA;AACAjD,SAAG,CAAC2mB,WAAJ,KAAoB,KAJI,GAKzBpD,UALyB,GAMzBC,WAND,CANsB,CActB;AACA;AACA;;AACA,WAAK3gB,MAAL,GAAgB7C,GAAG,CAAC6C,MAAJ,IAAc7C,GAAG,CAAC6C,MAAJ,CAAWhD,QAAX,KAAwB,CAAxC,GACbG,GAAG,CAAC6C,MAAJ,CAAWlC,UADE,GAEbX,GAAG,CAAC6C,MAFL;AAIA,WAAKyiB,aAAL,GAAqBtlB,GAAG,CAACslB,aAAzB;AACA,WAAKyB,aAAL,GAAqB/mB,GAAG,CAAC+mB,aAAzB,CAtBsB,CAwBvB;AACC,KAzBD,MAyBO;AACN,WAAKpqB,IAAL,GAAYqD,GAAZ;AACA,KAnCoC,CAqCrC;;;AACA,QAAK4mB,KAAL,EAAa;AACZ9lB,YAAM,CAACpF,MAAP,CAAe,IAAf,EAAqBkrB,KAArB;AACA,KAxCoC,CA0CrC;;;AACA,SAAKI,SAAL,GAAiBhnB,GAAG,IAAIA,GAAG,CAACgnB,SAAX,IAAwBjhB,IAAI,CAACkhB,GAAL,EAAzC,CA3CqC,CA6CrC;;AACA,SAAMnmB,MAAM,CAACoC,OAAb,IAAyB,IAAzB;AACA,GA/CD,CAtsKiF,CAuvKjF;AACA;;;AACApC,QAAM,CAACmlB,KAAP,CAAatsB,SAAb,GAAyB;AACxByH,eAAW,EAAEN,MAAM,CAACmlB,KADI;AAExBY,sBAAkB,EAAErD,WAFI;AAGxB6B,wBAAoB,EAAE7B,WAHE;AAIxB+B,iCAA6B,EAAE/B,WAJP;AAKxB0D,eAAW,EAAE,KALW;AAOxBzB,kBAAc,EAAE,YAAW;AAC1B,UAAItc,CAAC,GAAG,KAAKgd,aAAb;AAEA,WAAKU,kBAAL,GAA0BtD,UAA1B;;AAEA,UAAKpa,CAAC,IAAI,CAAC,KAAK+d,WAAhB,EAA8B;AAC7B/d,SAAC,CAACsc,cAAF;AACA;AACD,KAfuB;AAgBxBC,mBAAe,EAAE,YAAW;AAC3B,UAAIvc,CAAC,GAAG,KAAKgd,aAAb;AAEA,WAAKd,oBAAL,GAA4B9B,UAA5B;;AAEA,UAAKpa,CAAC,IAAI,CAAC,KAAK+d,WAAhB,EAA8B;AAC7B/d,SAAC,CAACuc,eAAF;AACA;AACD,KAxBuB;AAyBxByB,4BAAwB,EAAE,YAAW;AACpC,UAAIhe,CAAC,GAAG,KAAKgd,aAAb;AAEA,WAAKZ,6BAAL,GAAqChC,UAArC;;AAEA,UAAKpa,CAAC,IAAI,CAAC,KAAK+d,WAAhB,EAA8B;AAC7B/d,SAAC,CAACge,wBAAF;AACA;;AAED,WAAKzB,eAAL;AACA;AAnCuB,GAAzB,CAzvKiF,CA+xKjF;;AACA5kB,QAAM,CAACe,IAAP,CAAa;AACZulB,UAAM,EAAE,IADI;AAEZC,WAAO,EAAE,IAFG;AAGZC,cAAU,EAAE,IAHA;AAIZC,kBAAc,EAAE,IAJJ;AAKZC,WAAO,EAAE,IALG;AAMZ5qB,UAAM,EAAE,IANI;AAOZ6qB,cAAU,EAAE,IAPA;AAQZC,WAAO,EAAE,IARG;AASZC,SAAK,EAAE,IATK;AAUZC,SAAK,EAAE,IAVK;AAWZC,YAAQ,EAAE,IAXE;AAYZC,QAAI,EAAE,IAZM;AAaZ,YAAQ,IAbI;AAcZC,YAAQ,EAAE,IAdE;AAeZhd,OAAG,EAAE,IAfO;AAgBZid,WAAO,EAAE,IAhBG;AAiBZlC,UAAM,EAAE,IAjBI;AAkBZmC,WAAO,EAAE,IAlBG;AAmBZtqB,WAAO,EAAE,IAnBG;AAoBZE,WAAO,EAAE,IApBG;AAqBZrB,WAAO,EAAE,IArBG;AAsBZC,WAAO,EAAE,IAtBG;AAuBZyrB,aAAS,EAAE,IAvBC;AAwBZC,eAAW,EAAE,IAxBD;AAyBZC,WAAO,EAAE,IAzBG;AA0BZC,WAAO,EAAE,IA1BG;AA2BZC,iBAAa,EAAE,IA3BH;AA4BZC,aAAS,EAAE,IA5BC;AA6BZC,WAAO,EAAE,IA7BG;AA+BZC,SAAK,EAAE,UAAU3uB,KAAV,EAAkB;AACxB,UAAIgsB,MAAM,GAAGhsB,KAAK,CAACgsB,MAAnB,CADwB,CAGxB;;AACA,UAAKhsB,KAAK,CAAC2uB,KAAN,IAAe,IAAf,IAAuBrF,SAAS,CAACjZ,IAAV,CAAgBrQ,KAAK,CAAC6C,IAAtB,CAA5B,EAA2D;AAC1D,eAAO7C,KAAK,CAACiuB,QAAN,IAAkB,IAAlB,GAAyBjuB,KAAK,CAACiuB,QAA/B,GAA0CjuB,KAAK,CAACkuB,OAAvD;AACA,OANuB,CAQxB;;;AACA,UAAK,CAACluB,KAAK,CAAC2uB,KAAP,IAAgB3C,MAAM,KAAK7iB,SAA3B,IAAwCogB,WAAW,CAAClZ,IAAZ,CAAkBrQ,KAAK,CAAC6C,IAAxB,CAA7C,EAA8E;AAC7E,YAAKmpB,MAAM,GAAG,CAAd,EAAkB;AACjB,iBAAO,CAAP;AACA;;AAED,YAAKA,MAAM,GAAG,CAAd,EAAkB;AACjB,iBAAO,CAAP;AACA;;AAED,YAAKA,MAAM,GAAG,CAAd,EAAkB;AACjB,iBAAO,CAAP;AACA;;AAED,eAAO,CAAP;AACA;;AAED,aAAOhsB,KAAK,CAAC2uB,KAAb;AACA;AAzDW,GAAb,EA0DG3nB,MAAM,CAAChH,KAAP,CAAaisB,OA1DhB,EAhyKiF,CA41KjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAjlB,QAAM,CAACe,IAAP,CAAa;AACZ6mB,cAAU,EAAE,WADA;AAEZC,cAAU,EAAE,UAFA;AAGZC,gBAAY,EAAE,aAHF;AAIZC,gBAAY,EAAE;AAJF,GAAb,EAKG,UAAUC,IAAV,EAAgBpsB,GAAhB,EAAsB;AACxBoE,UAAM,CAAChH,KAAP,CAAaK,OAAb,CAAsB2uB,IAAtB,IAA+B;AAC9BpE,kBAAY,EAAEhoB,GADgB;AAE9BioB,cAAQ,EAAEjoB,GAFoB;AAI9B2B,YAAM,EAAE,UAAUvE,KAAV,EAAkB;AACzB,YAAI4H,GAAJ;AAAA,YACCmB,MAAM,GAAG,IADV;AAAA,YAECkmB,OAAO,GAAGjvB,KAAK,CAACitB,aAFjB;AAAA,YAGC3C,SAAS,GAAGtqB,KAAK,CAACsqB,SAHnB,CADyB,CAMzB;AACA;;AACA,YAAK,CAAC2E,OAAD,IAAcA,OAAO,KAAKlmB,MAAZ,IAAsB,CAAC/B,MAAM,CAACgF,QAAP,CAAiBjD,MAAjB,EAAyBkmB,OAAzB,CAA1C,EAAiF;AAChFjvB,eAAK,CAAC6C,IAAN,GAAaynB,SAAS,CAACG,QAAvB;AACA7iB,aAAG,GAAG0iB,SAAS,CAAC5pB,OAAV,CAAkB8D,KAAlB,CAAyB,IAAzB,EAA+BnC,SAA/B,CAAN;AACArC,eAAK,CAAC6C,IAAN,GAAaD,GAAb;AACA;;AACD,eAAOgF,GAAP;AACA;AAlB6B,KAA/B;AAoBA,GA1BD;AA4BAZ,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AAEjBioB,MAAE,EAAE,UAAUC,KAAV,EAAiB7iB,QAAjB,EAA2BrG,IAA3B,EAAiCS,EAAjC,EAAsC;AACzC,aAAOwoB,EAAE,CAAE,IAAF,EAAQC,KAAR,EAAe7iB,QAAf,EAAyBrG,IAAzB,EAA+BS,EAA/B,CAAT;AACA,KAJgB;AAKjB0oB,OAAG,EAAE,UAAUD,KAAV,EAAiB7iB,QAAjB,EAA2BrG,IAA3B,EAAiCS,EAAjC,EAAsC;AAC1C,aAAOwoB,EAAE,CAAE,IAAF,EAAQC,KAAR,EAAe7iB,QAAf,EAAyBrG,IAAzB,EAA+BS,EAA/B,EAAmC,CAAnC,CAAT;AACA,KAPgB;AAQjB4oB,OAAG,EAAE,UAAUH,KAAV,EAAiB7iB,QAAjB,EAA2B5F,EAA3B,EAAgC;AACpC,UAAIipB,SAAJ,EAAeznB,IAAf;;AACA,UAAKinB,KAAK,IAAIA,KAAK,CAAC6B,cAAf,IAAiC7B,KAAK,CAACQ,SAA5C,EAAwD;AAEvD;AACAA,iBAAS,GAAGR,KAAK,CAACQ,SAAlB;AACAtjB,cAAM,CAAE8iB,KAAK,CAACuB,cAAR,CAAN,CAA+BpB,GAA/B,CACCK,SAAS,CAACQ,SAAV,GACCR,SAAS,CAACG,QAAV,GAAqB,GAArB,GAA2BH,SAAS,CAACQ,SADtC,GAECR,SAAS,CAACG,QAHZ,EAICH,SAAS,CAACrjB,QAJX,EAKCqjB,SAAS,CAAC5pB,OALX;AAOA,eAAO,IAAP;AACA;;AACD,UAAK,OAAOopB,KAAP,KAAiB,QAAtB,EAAiC;AAEhC;AACA,aAAMjnB,IAAN,IAAcinB,KAAd,EAAsB;AACrB,eAAKG,GAAL,CAAUpnB,IAAV,EAAgBoE,QAAhB,EAA0B6iB,KAAK,CAAEjnB,IAAF,CAA/B;AACA;;AACD,eAAO,IAAP;AACA;;AACD,UAAKoE,QAAQ,KAAK,KAAb,IAAsB,OAAOA,QAAP,KAAoB,UAA/C,EAA4D;AAE3D;AACA5F,UAAE,GAAG4F,QAAL;AACAA,gBAAQ,GAAGkC,SAAX;AACA;;AACD,UAAK9H,EAAE,KAAK,KAAZ,EAAoB;AACnBA,UAAE,GAAGqoB,WAAL;AACA;;AACD,aAAO,KAAK3hB,IAAL,CAAW,YAAW;AAC5Bf,cAAM,CAAChH,KAAP,CAAa6e,MAAb,CAAqB,IAArB,EAA2BiL,KAA3B,EAAkCzoB,EAAlC,EAAsC4F,QAAtC;AACA,OAFM,CAAP;AAGA;AA3CgB,GAAlB;AA+CA;AAEC;AAEA;AACAioB,WAAS,GAAG,6FALb;;AAOC;AAEA;AACA;AACA;AACAC,cAAY,GAAG,uBAZhB;AAAA,MAcC;AACAC,UAAQ,GAAG,mCAfZ;AAAA,MAgBCC,YAAY,GAAG,0CAhBhB,CA/6KiF,CAi8KjF;;AACA,WAASC,kBAAT,CAA6BpuB,IAA7B,EAAmC2c,OAAnC,EAA6C;AAC5C,QAAKvN,QAAQ,CAAEpP,IAAF,EAAQ,OAAR,CAAR,IACJoP,QAAQ,CAAEuN,OAAO,CAAC9X,QAAR,KAAqB,EAArB,GAA0B8X,OAA1B,GAAoCA,OAAO,CAAC5I,UAA9C,EAA0D,IAA1D,CADT,EAC4E;AAE3E,aAAOjO,MAAM,CAAE9F,IAAF,CAAN,CAAeyb,QAAf,CAAyB,OAAzB,EAAoC,CAApC,KAA2Czb,IAAlD;AACA;;AAED,WAAOA,IAAP;AACA,GA18KgF,CA48KjF;;;AACA,WAASquB,aAAT,CAAwBruB,IAAxB,EAA+B;AAC9BA,QAAI,CAAC2B,IAAL,GAAY,CAAE3B,IAAI,CAACqP,YAAL,CAAmB,MAAnB,MAAgC,IAAlC,IAA2C,GAA3C,GAAiDrP,IAAI,CAAC2B,IAAlE;AACA,WAAO3B,IAAP;AACA;;AACD,WAASsuB,aAAT,CAAwBtuB,IAAxB,EAA+B;AAC9B,QAAK,CAAEA,IAAI,CAAC2B,IAAL,IAAa,EAAf,EAAoBlD,KAApB,CAA2B,CAA3B,EAA8B,CAA9B,MAAsC,OAA3C,EAAqD;AACpDuB,UAAI,CAAC2B,IAAL,GAAY3B,IAAI,CAAC2B,IAAL,CAAUlD,KAAV,CAAiB,CAAjB,CAAZ;AACA,KAFD,MAEO;AACNuB,UAAI,CAAC4P,eAAL,CAAsB,MAAtB;AACA;;AAED,WAAO5P,IAAP;AACA;;AAED,WAASuuB,cAAT,CAAyBvpB,GAAzB,EAA8BwpB,IAA9B,EAAqC;AACpC,QAAIxvB,CAAJ,EAAO8c,CAAP,EAAUna,IAAV,EAAgB8sB,QAAhB,EAA0BC,QAA1B,EAAoCC,QAApC,EAA8CC,QAA9C,EAAwD1F,MAAxD;;AAEA,QAAKsF,IAAI,CAAC3pB,QAAL,KAAkB,CAAvB,EAA2B;AAC1B;AACA,KALmC,CAOpC;;;AACA,QAAKse,QAAQ,CAACD,OAAT,CAAkBle,GAAlB,CAAL,EAA+B;AAC9BypB,cAAQ,GAAGtL,QAAQ,CAACtB,MAAT,CAAiB7c,GAAjB,CAAX;AACA0pB,cAAQ,GAAGvL,QAAQ,CAACH,GAAT,CAAcwL,IAAd,EAAoBC,QAApB,CAAX;AACAvF,YAAM,GAAGuF,QAAQ,CAACvF,MAAlB;;AAEA,UAAKA,MAAL,EAAc;AACb,eAAOwF,QAAQ,CAACrrB,MAAhB;AACAqrB,gBAAQ,CAACxF,MAAT,GAAkB,EAAlB;;AAEA,aAAMvnB,IAAN,IAAcunB,MAAd,EAAuB;AACtB,eAAMlqB,CAAC,GAAG,CAAJ,EAAO8c,CAAC,GAAGoN,MAAM,CAAEvnB,IAAF,CAAN,CAAe1C,MAAhC,EAAwCD,CAAC,GAAG8c,CAA5C,EAA+C9c,CAAC,EAAhD,EAAqD;AACpD8G,kBAAM,CAAChH,KAAP,CAAaod,GAAb,CAAkBsS,IAAlB,EAAwB7sB,IAAxB,EAA8BunB,MAAM,CAAEvnB,IAAF,CAAN,CAAgB3C,CAAhB,CAA9B;AACA;AACD;AACD;AACD,KAvBmC,CAyBpC;;;AACA,QAAKokB,QAAQ,CAACF,OAAT,CAAkBle,GAAlB,CAAL,EAA+B;AAC9B2pB,cAAQ,GAAGvL,QAAQ,CAACvB,MAAT,CAAiB7c,GAAjB,CAAX;AACA4pB,cAAQ,GAAG9oB,MAAM,CAACpF,MAAP,CAAe,EAAf,EAAmBiuB,QAAnB,CAAX;AAEAvL,cAAQ,CAACJ,GAAT,CAAcwL,IAAd,EAAoBI,QAApB;AACA;AACD,GA3/KgF,CA6/KjF;;;AACA,WAASC,QAAT,CAAmB7pB,GAAnB,EAAwBwpB,IAAxB,EAA+B;AAC9B,QAAIpf,QAAQ,GAAGof,IAAI,CAACpf,QAAL,CAActF,WAAd,EAAf,CAD8B,CAG9B;;AACA,QAAKsF,QAAQ,KAAK,OAAb,IAAwB8W,cAAc,CAAC/W,IAAf,CAAqBnK,GAAG,CAACrD,IAAzB,CAA7B,EAA+D;AAC9D6sB,UAAI,CAAChY,OAAL,GAAexR,GAAG,CAACwR,OAAnB,CAD8D,CAG/D;AACC,KAJD,MAIO,IAAKpH,QAAQ,KAAK,OAAb,IAAwBA,QAAQ,KAAK,UAA1C,EAAuD;AAC7Dof,UAAI,CAACrU,YAAL,GAAoBnV,GAAG,CAACmV,YAAxB;AACA;AACD;;AAED,WAAS2U,QAAT,CAAmBC,UAAnB,EAA+B9tB,IAA/B,EAAqC6F,QAArC,EAA+C2gB,OAA/C,EAAyD;AAExD;AACAxmB,QAAI,GAAGgD,MAAM,CAACX,KAAP,CAAc,EAAd,EAAkBrC,IAAlB,CAAP;AAEA,QAAI0mB,QAAJ;AAAA,QAAc3gB,KAAd;AAAA,QAAqBugB,OAArB;AAAA,QAA8ByH,UAA9B;AAAA,QAA0C3pB,IAA1C;AAAA,QAAgDD,GAAhD;AAAA,QACCpG,CAAC,GAAG,CADL;AAAA,QAEC8c,CAAC,GAAGiT,UAAU,CAAC9vB,MAFhB;AAAA,QAGCgwB,QAAQ,GAAGnT,CAAC,GAAG,CAHhB;AAAA,QAICrS,KAAK,GAAGxI,IAAI,CAAE,CAAF,CAJb;AAAA,QAKCiuB,eAAe,GAAGvqB,UAAU,CAAE8E,KAAF,CAL7B,CALwD,CAYxD;;AACA,QAAKylB,eAAe,IAChBpT,CAAC,GAAG,CAAJ,IAAS,OAAOrS,KAAP,KAAiB,QAA1B,IACD,CAAC/E,OAAO,CAACujB,UADR,IACsBiG,QAAQ,CAAC/e,IAAT,CAAe1F,KAAf,CAF1B,EAEqD;AACpD,aAAOslB,UAAU,CAACloB,IAAX,CAAiB,UAAUmV,KAAV,EAAkB;AACzC,YAAId,IAAI,GAAG6T,UAAU,CAAC9nB,EAAX,CAAe+U,KAAf,CAAX;;AACA,YAAKkT,eAAL,EAAuB;AACtBjuB,cAAI,CAAE,CAAF,CAAJ,GAAYwI,KAAK,CAACvI,IAAN,CAAY,IAAZ,EAAkB8a,KAAlB,EAAyBd,IAAI,CAACiU,IAAL,EAAzB,CAAZ;AACA;;AACDL,gBAAQ,CAAE5T,IAAF,EAAQja,IAAR,EAAc6F,QAAd,EAAwB2gB,OAAxB,CAAR;AACA,OANM,CAAP;AAOA;;AAED,QAAK3L,CAAL,EAAS;AACR6L,cAAQ,GAAGL,aAAa,CAAErmB,IAAF,EAAQ8tB,UAAU,CAAE,CAAF,CAAV,CAAgBngB,aAAxB,EAAuC,KAAvC,EAA8CmgB,UAA9C,EAA0DtH,OAA1D,CAAxB;AACAzgB,WAAK,GAAG2gB,QAAQ,CAAC5T,UAAjB;;AAEA,UAAK4T,QAAQ,CAACzZ,UAAT,CAAoBjP,MAApB,KAA+B,CAApC,EAAwC;AACvC0oB,gBAAQ,GAAG3gB,KAAX;AACA,OANO,CAQR;;;AACA,UAAKA,KAAK,IAAIygB,OAAd,EAAwB;AACvBF,eAAO,GAAGzhB,MAAM,CAACiB,GAAP,CAAYmgB,MAAM,CAAES,QAAF,EAAY,QAAZ,CAAlB,EAA0C0G,aAA1C,CAAV;AACAW,kBAAU,GAAGzH,OAAO,CAACtoB,MAArB,CAFuB,CAIvB;AACA;AACA;;AACA,eAAQD,CAAC,GAAG8c,CAAZ,EAAe9c,CAAC,EAAhB,EAAqB;AACpBqG,cAAI,GAAGsiB,QAAP;;AAEA,cAAK3oB,CAAC,KAAKiwB,QAAX,EAAsB;AACrB5pB,gBAAI,GAAGS,MAAM,CAAC8B,KAAP,CAAcvC,IAAd,EAAoB,IAApB,EAA0B,IAA1B,CAAP,CADqB,CAGrB;;AACA,gBAAK2pB,UAAL,EAAkB;AAEjB;AACA;AACAlpB,oBAAM,CAACa,KAAP,CAAc4gB,OAAd,EAAuBL,MAAM,CAAE7hB,IAAF,EAAQ,QAAR,CAA7B;AACA;AACD;;AAEDyB,kBAAQ,CAAC5F,IAAT,CAAe6tB,UAAU,CAAE/vB,CAAF,CAAzB,EAAgCqG,IAAhC,EAAsCrG,CAAtC;AACA;;AAED,YAAKgwB,UAAL,EAAkB;AACjB5pB,aAAG,GAAGmiB,OAAO,CAAEA,OAAO,CAACtoB,MAAR,GAAiB,CAAnB,CAAP,CAA8B2P,aAApC,CADiB,CAGjB;;AACA9I,gBAAM,CAACiB,GAAP,CAAYwgB,OAAZ,EAAqB+G,aAArB,EAJiB,CAMjB;;AACA,eAAMtvB,CAAC,GAAG,CAAV,EAAaA,CAAC,GAAGgwB,UAAjB,EAA6BhwB,CAAC,EAA9B,EAAmC;AAClCqG,gBAAI,GAAGkiB,OAAO,CAAEvoB,CAAF,CAAd;;AACA,gBAAKonB,WAAW,CAACjX,IAAZ,CAAkB9J,IAAI,CAAC1D,IAAL,IAAa,EAA/B,KACJ,CAACwhB,QAAQ,CAACtB,MAAT,CAAiBxc,IAAjB,EAAuB,YAAvB,CADG,IAEJS,MAAM,CAACgF,QAAP,CAAiB1F,GAAjB,EAAsBC,IAAtB,CAFD,EAEgC;AAE/B,kBAAKA,IAAI,CAACL,GAAL,IAAY,CAAEK,IAAI,CAAC1D,IAAL,IAAa,EAAf,EAAoBmI,WAApB,OAAuC,QAAxD,EAAmE;AAElE;AACA,oBAAKhE,MAAM,CAACspB,QAAZ,EAAuB;AACtBtpB,wBAAM,CAACspB,QAAP,CAAiB/pB,IAAI,CAACL,GAAtB;AACA;AACD,eAND,MAMO;AACNE,uBAAO,CAAEG,IAAI,CAACyO,WAAL,CAAiB1L,OAAjB,CAA0B+lB,YAA1B,EAAwC,EAAxC,CAAF,EAAgD/oB,GAAhD,EAAqDC,IAArD,CAAP;AACA;AACD;AACD;AACD;AACD;AACD;;AAED,WAAO0pB,UAAP;AACA;;AAED,WAASpR,MAAT,CAAiB3d,IAAjB,EAAuB+F,QAAvB,EAAiCspB,QAAjC,EAA4C;AAC3C,QAAIhqB,IAAJ;AAAA,QACCwiB,KAAK,GAAG9hB,QAAQ,GAAGD,MAAM,CAAC+L,MAAP,CAAe9L,QAAf,EAAyB/F,IAAzB,CAAH,GAAqCA,IADtD;AAAA,QAEChB,CAAC,GAAG,CAFL;;AAIA,WAAQ,CAAEqG,IAAI,GAAGwiB,KAAK,CAAE7oB,CAAF,CAAd,KAAyB,IAAjC,EAAuCA,CAAC,EAAxC,EAA6C;AAC5C,UAAK,CAACqwB,QAAD,IAAahqB,IAAI,CAACR,QAAL,KAAkB,CAApC,EAAwC;AACvCiB,cAAM,CAACwpB,SAAP,CAAkBpI,MAAM,CAAE7hB,IAAF,CAAxB;AACA;;AAED,UAAKA,IAAI,CAACM,UAAV,EAAuB;AACtB,YAAK0pB,QAAQ,IAAIvpB,MAAM,CAACgF,QAAP,CAAiBzF,IAAI,CAACuJ,aAAtB,EAAqCvJ,IAArC,CAAjB,EAA+D;AAC9D8hB,uBAAa,CAAED,MAAM,CAAE7hB,IAAF,EAAQ,QAAR,CAAR,CAAb;AACA;;AACDA,YAAI,CAACM,UAAL,CAAgBC,WAAhB,CAA6BP,IAA7B;AACA;AACD;;AAED,WAAOrF,IAAP;AACA;;AAED8F,QAAM,CAACpF,MAAP,CAAe;AACdqnB,iBAAa,EAAE,UAAUoH,IAAV,EAAiB;AAC/B,aAAOA,IAAI,CAAC/mB,OAAL,CAAc4lB,SAAd,EAAyB,WAAzB,CAAP;AACA,KAHa;AAKdpmB,SAAK,EAAE,UAAU5H,IAAV,EAAgBuvB,aAAhB,EAA+BC,iBAA/B,EAAmD;AACzD,UAAIxwB,CAAJ;AAAA,UAAO8c,CAAP;AAAA,UAAU2T,WAAV;AAAA,UAAuBC,YAAvB;AAAA,UACC9nB,KAAK,GAAG5H,IAAI,CAACkoB,SAAL,CAAgB,IAAhB,CADT;AAAA,UAECyH,MAAM,GAAG7pB,MAAM,CAACgF,QAAP,CAAiB9K,IAAI,CAAC4O,aAAtB,EAAqC5O,IAArC,CAFV,CADyD,CAKzD;;AACA,UAAK,CAAC0E,OAAO,CAACyjB,cAAT,KAA6BnoB,IAAI,CAAC6E,QAAL,KAAkB,CAAlB,IAAuB7E,IAAI,CAAC6E,QAAL,KAAkB,EAAtE,KACH,CAACiB,MAAM,CAACuU,QAAP,CAAiBra,IAAjB,CADH,EAC6B;AAE5B;AACA0vB,oBAAY,GAAGxI,MAAM,CAAEtf,KAAF,CAArB;AACA6nB,mBAAW,GAAGvI,MAAM,CAAElnB,IAAF,CAApB;;AAEA,aAAMhB,CAAC,GAAG,CAAJ,EAAO8c,CAAC,GAAG2T,WAAW,CAACxwB,MAA7B,EAAqCD,CAAC,GAAG8c,CAAzC,EAA4C9c,CAAC,EAA7C,EAAkD;AACjD6vB,kBAAQ,CAAEY,WAAW,CAAEzwB,CAAF,CAAb,EAAoB0wB,YAAY,CAAE1wB,CAAF,CAAhC,CAAR;AACA;AACD,OAhBwD,CAkBzD;;;AACA,UAAKuwB,aAAL,EAAqB;AACpB,YAAKC,iBAAL,EAAyB;AACxBC,qBAAW,GAAGA,WAAW,IAAIvI,MAAM,CAAElnB,IAAF,CAAnC;AACA0vB,sBAAY,GAAGA,YAAY,IAAIxI,MAAM,CAAEtf,KAAF,CAArC;;AAEA,eAAM5I,CAAC,GAAG,CAAJ,EAAO8c,CAAC,GAAG2T,WAAW,CAACxwB,MAA7B,EAAqCD,CAAC,GAAG8c,CAAzC,EAA4C9c,CAAC,EAA7C,EAAkD;AACjDuvB,0BAAc,CAAEkB,WAAW,CAAEzwB,CAAF,CAAb,EAAoB0wB,YAAY,CAAE1wB,CAAF,CAAhC,CAAd;AACA;AACD,SAPD,MAOO;AACNuvB,wBAAc,CAAEvuB,IAAF,EAAQ4H,KAAR,CAAd;AACA;AACD,OA9BwD,CAgCzD;;;AACA8nB,kBAAY,GAAGxI,MAAM,CAAEtf,KAAF,EAAS,QAAT,CAArB;;AACA,UAAK8nB,YAAY,CAACzwB,MAAb,GAAsB,CAA3B,EAA+B;AAC9BkoB,qBAAa,CAAEuI,YAAF,EAAgB,CAACC,MAAD,IAAWzI,MAAM,CAAElnB,IAAF,EAAQ,QAAR,CAAjC,CAAb;AACA,OApCwD,CAsCzD;;;AACA,aAAO4H,KAAP;AACA,KA7Ca;AA+Cd0nB,aAAS,EAAE,UAAU7oB,KAAV,EAAkB;AAC5B,UAAI/G,IAAJ;AAAA,UAAUM,IAAV;AAAA,UAAgB2B,IAAhB;AAAA,UACCxC,OAAO,GAAG2G,MAAM,CAAChH,KAAP,CAAaK,OADxB;AAAA,UAECH,CAAC,GAAG,CAFL;;AAIA,aAAQ,CAAEgB,IAAI,GAAGyG,KAAK,CAAEzH,CAAF,CAAd,MAA0BiJ,SAAlC,EAA6CjJ,CAAC,EAA9C,EAAmD;AAClD,YAAK0jB,UAAU,CAAE1iB,IAAF,CAAf,EAA0B;AACzB,cAAON,IAAI,GAAGM,IAAI,CAAEmjB,QAAQ,CAACjb,OAAX,CAAlB,EAA2C;AAC1C,gBAAKxI,IAAI,CAACwpB,MAAV,EAAmB;AAClB,mBAAMvnB,IAAN,IAAcjC,IAAI,CAACwpB,MAAnB,EAA4B;AAC3B,oBAAK/pB,OAAO,CAAEwC,IAAF,CAAZ,EAAuB;AACtBmE,wBAAM,CAAChH,KAAP,CAAa6e,MAAb,CAAqB3d,IAArB,EAA2B2B,IAA3B,EADsB,CAGvB;AACC,iBAJD,MAIO;AACNmE,wBAAM,CAACkkB,WAAP,CAAoBhqB,IAApB,EAA0B2B,IAA1B,EAAgCjC,IAAI,CAAC2D,MAArC;AACA;AACD;AACD,aAXyC,CAa1C;AACA;;;AACArD,gBAAI,CAAEmjB,QAAQ,CAACjb,OAAX,CAAJ,GAA2BD,SAA3B;AACA;;AACD,cAAKjI,IAAI,CAAEojB,QAAQ,CAAClb,OAAX,CAAT,EAAgC;AAE/B;AACA;AACAlI,gBAAI,CAAEojB,QAAQ,CAAClb,OAAX,CAAJ,GAA2BD,SAA3B;AACA;AACD;AACD;AACD;AA/Ea,GAAf;AAkFAnC,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjBkvB,UAAM,EAAE,UAAU7pB,QAAV,EAAqB;AAC5B,aAAO4X,MAAM,CAAE,IAAF,EAAQ5X,QAAR,EAAkB,IAAlB,CAAb;AACA,KAHgB;AAKjB4X,UAAM,EAAE,UAAU5X,QAAV,EAAqB;AAC5B,aAAO4X,MAAM,CAAE,IAAF,EAAQ5X,QAAR,CAAb;AACA,KAPgB;AASjBP,QAAI,EAAE,UAAUiE,KAAV,EAAkB;AACvB,aAAOoY,MAAM,CAAE,IAAF,EAAQ,UAAUpY,KAAV,EAAkB;AACtC,eAAOA,KAAK,KAAKxB,SAAV,GACNnC,MAAM,CAACN,IAAP,CAAa,IAAb,CADM,GAEN,KAAKoY,KAAL,GAAa/W,IAAb,CAAmB,YAAW;AAC7B,cAAK,KAAKhC,QAAL,KAAkB,CAAlB,IAAuB,KAAKA,QAAL,KAAkB,EAAzC,IAA+C,KAAKA,QAAL,KAAkB,CAAtE,EAA0E;AACzE,iBAAKiP,WAAL,GAAmBrK,KAAnB;AACA;AACD,SAJD,CAFD;AAOA,OARY,EAQV,IARU,EAQJA,KARI,EAQGtI,SAAS,CAAClC,MARb,CAAb;AASA,KAnBgB;AAqBjB4wB,UAAM,EAAE,YAAW;AAClB,aAAOf,QAAQ,CAAE,IAAF,EAAQ3tB,SAAR,EAAmB,UAAUnB,IAAV,EAAiB;AAClD,YAAK,KAAK6E,QAAL,KAAkB,CAAlB,IAAuB,KAAKA,QAAL,KAAkB,EAAzC,IAA+C,KAAKA,QAAL,KAAkB,CAAtE,EAA0E;AACzE,cAAIgD,MAAM,GAAGumB,kBAAkB,CAAE,IAAF,EAAQpuB,IAAR,CAA/B;AACA6H,gBAAM,CAACnC,WAAP,CAAoB1F,IAApB;AACA;AACD,OALc,CAAf;AAMA,KA5BgB;AA8BjB8vB,WAAO,EAAE,YAAW;AACnB,aAAOhB,QAAQ,CAAE,IAAF,EAAQ3tB,SAAR,EAAmB,UAAUnB,IAAV,EAAiB;AAClD,YAAK,KAAK6E,QAAL,KAAkB,CAAlB,IAAuB,KAAKA,QAAL,KAAkB,EAAzC,IAA+C,KAAKA,QAAL,KAAkB,CAAtE,EAA0E;AACzE,cAAIgD,MAAM,GAAGumB,kBAAkB,CAAE,IAAF,EAAQpuB,IAAR,CAA/B;AACA6H,gBAAM,CAACkoB,YAAP,CAAqB/vB,IAArB,EAA2B6H,MAAM,CAACkM,UAAlC;AACA;AACD,OALc,CAAf;AAMA,KArCgB;AAuCjBic,UAAM,EAAE,YAAW;AAClB,aAAOlB,QAAQ,CAAE,IAAF,EAAQ3tB,SAAR,EAAmB,UAAUnB,IAAV,EAAiB;AAClD,YAAK,KAAK2F,UAAV,EAAuB;AACtB,eAAKA,UAAL,CAAgBoqB,YAAhB,CAA8B/vB,IAA9B,EAAoC,IAApC;AACA;AACD,OAJc,CAAf;AAKA,KA7CgB;AA+CjBiwB,SAAK,EAAE,YAAW;AACjB,aAAOnB,QAAQ,CAAE,IAAF,EAAQ3tB,SAAR,EAAmB,UAAUnB,IAAV,EAAiB;AAClD,YAAK,KAAK2F,UAAV,EAAuB;AACtB,eAAKA,UAAL,CAAgBoqB,YAAhB,CAA8B/vB,IAA9B,EAAoC,KAAK4Q,WAAzC;AACA;AACD,OAJc,CAAf;AAKA,KArDgB;AAuDjBgN,SAAK,EAAE,YAAW;AACjB,UAAI5d,IAAJ;AAAA,UACChB,CAAC,GAAG,CADL;;AAGA,aAAQ,CAAEgB,IAAI,GAAG,KAAMhB,CAAN,CAAT,KAAwB,IAAhC,EAAsCA,CAAC,EAAvC,EAA4C;AAC3C,YAAKgB,IAAI,CAAC6E,QAAL,KAAkB,CAAvB,EAA2B;AAE1B;AACAiB,gBAAM,CAACwpB,SAAP,CAAkBpI,MAAM,CAAElnB,IAAF,EAAQ,KAAR,CAAxB,EAH0B,CAK1B;;AACAA,cAAI,CAAC8T,WAAL,GAAmB,EAAnB;AACA;AACD;;AAED,aAAO,IAAP;AACA,KAvEgB;AAyEjBlM,SAAK,EAAE,UAAU2nB,aAAV,EAAyBC,iBAAzB,EAA6C;AACnDD,mBAAa,GAAGA,aAAa,IAAI,IAAjB,GAAwB,KAAxB,GAAgCA,aAAhD;AACAC,uBAAiB,GAAGA,iBAAiB,IAAI,IAArB,GAA4BD,aAA5B,GAA4CC,iBAAhE;AAEA,aAAO,KAAKzoB,GAAL,CAAU,YAAW;AAC3B,eAAOjB,MAAM,CAAC8B,KAAP,CAAc,IAAd,EAAoB2nB,aAApB,EAAmCC,iBAAnC,CAAP;AACA,OAFM,CAAP;AAGA,KAhFgB;AAkFjBL,QAAI,EAAE,UAAU1lB,KAAV,EAAkB;AACvB,aAAOoY,MAAM,CAAE,IAAF,EAAQ,UAAUpY,KAAV,EAAkB;AACtC,YAAIzJ,IAAI,GAAG,KAAM,CAAN,KAAa,EAAxB;AAAA,YACChB,CAAC,GAAG,CADL;AAAA,YAEC8c,CAAC,GAAG,KAAK7c,MAFV;;AAIA,YAAKwK,KAAK,KAAKxB,SAAV,IAAuBjI,IAAI,CAAC6E,QAAL,KAAkB,CAA9C,EAAkD;AACjD,iBAAO7E,IAAI,CAACmS,SAAZ;AACA,SAPqC,CAStC;;;AACA,YAAK,OAAO1I,KAAP,KAAiB,QAAjB,IAA6B,CAACwkB,YAAY,CAAC9e,IAAb,CAAmB1F,KAAnB,CAA9B,IACJ,CAAC4c,OAAO,CAAE,CAAEF,QAAQ,CAACtX,IAAT,CAAepF,KAAf,KAA0B,CAAE,EAAF,EAAM,EAAN,CAA5B,EAA0C,CAA1C,EAA8CK,WAA9C,EAAF,CADT,EAC2E;AAE1EL,eAAK,GAAG3D,MAAM,CAACiiB,aAAP,CAAsBte,KAAtB,CAAR;;AAEA,cAAI;AACH,mBAAQzK,CAAC,GAAG8c,CAAZ,EAAe9c,CAAC,EAAhB,EAAqB;AACpBgB,kBAAI,GAAG,KAAMhB,CAAN,KAAa,EAApB,CADoB,CAGpB;;AACA,kBAAKgB,IAAI,CAAC6E,QAAL,KAAkB,CAAvB,EAA2B;AAC1BiB,sBAAM,CAACwpB,SAAP,CAAkBpI,MAAM,CAAElnB,IAAF,EAAQ,KAAR,CAAxB;AACAA,oBAAI,CAACmS,SAAL,GAAiB1I,KAAjB;AACA;AACD;;AAEDzJ,gBAAI,GAAG,CAAP,CAXG,CAaJ;AACC,WAdD,CAcE,OAAQmO,CAAR,EAAY,CAAE;AAChB;;AAED,YAAKnO,IAAL,EAAY;AACX,eAAK4d,KAAL,GAAaiS,MAAb,CAAqBpmB,KAArB;AACA;AACD,OAnCY,EAmCV,IAnCU,EAmCJA,KAnCI,EAmCGtI,SAAS,CAAClC,MAnCb,CAAb;AAoCA,KAvHgB;AAyHjBixB,eAAW,EAAE,YAAW;AACvB,UAAIzI,OAAO,GAAG,EAAd,CADuB,CAGvB;;AACA,aAAOqH,QAAQ,CAAE,IAAF,EAAQ3tB,SAAR,EAAmB,UAAUnB,IAAV,EAAiB;AAClD,YAAIqV,MAAM,GAAG,KAAK1P,UAAlB;;AAEA,YAAKG,MAAM,CAACmD,OAAP,CAAgB,IAAhB,EAAsBwe,OAAtB,IAAkC,CAAvC,EAA2C;AAC1C3hB,gBAAM,CAACwpB,SAAP,CAAkBpI,MAAM,CAAE,IAAF,CAAxB;;AACA,cAAK7R,MAAL,EAAc;AACbA,kBAAM,CAAC8a,YAAP,CAAqBnwB,IAArB,EAA2B,IAA3B;AACA;AACD,SARiD,CAUnD;;AACC,OAXc,EAWZynB,OAXY,CAAf;AAYA;AAzIgB,GAAlB;AA4IA3hB,QAAM,CAACe,IAAP,CAAa;AACZupB,YAAQ,EAAE,QADE;AAEZC,aAAS,EAAE,SAFC;AAGZN,gBAAY,EAAE,QAHF;AAIZO,eAAW,EAAE,OAJD;AAKZC,cAAU,EAAE;AALA,GAAb,EAMG,UAAU9oB,IAAV,EAAgB+oB,QAAhB,EAA2B;AAC7B1qB,UAAM,CAAC3F,EAAP,CAAWsH,IAAX,IAAoB,UAAU1B,QAAV,EAAqB;AACxC,UAAIU,KAAJ;AAAA,UACCC,GAAG,GAAG,EADP;AAAA,UAEC+pB,MAAM,GAAG3qB,MAAM,CAAEC,QAAF,CAFhB;AAAA,UAGCmB,IAAI,GAAGupB,MAAM,CAACxxB,MAAP,GAAgB,CAHxB;AAAA,UAICD,CAAC,GAAG,CAJL;;AAMA,aAAQA,CAAC,IAAIkI,IAAb,EAAmBlI,CAAC,EAApB,EAAyB;AACxByH,aAAK,GAAGzH,CAAC,KAAKkI,IAAN,GAAa,IAAb,GAAoB,KAAKU,KAAL,CAAY,IAAZ,CAA5B;AACA9B,cAAM,CAAE2qB,MAAM,CAAEzxB,CAAF,CAAR,CAAN,CAAuBwxB,QAAvB,EAAmC/pB,KAAnC,EAFwB,CAIxB;AACA;;AACAvC,YAAI,CAACZ,KAAL,CAAYoD,GAAZ,EAAiBD,KAAK,CAACH,GAAN,EAAjB;AACA;;AAED,aAAO,KAAKE,SAAL,CAAgBE,GAAhB,CAAP;AACA,KAjBD;AAkBA,GAzBD;AA0BA,MAAIgqB,SAAS,GAAG,IAAIvkB,MAAJ,CAAY,OAAOmY,IAAP,GAAc,iBAA1B,EAA6C,GAA7C,CAAhB;;AAEA,MAAIqM,SAAS,GAAG,UAAU3wB,IAAV,EAAiB;AAE/B;AACA;AACA;AACA,QAAI8sB,IAAI,GAAG9sB,IAAI,CAAC4O,aAAL,CAAmB2C,WAA9B;;AAEA,QAAK,CAACub,IAAD,IAAS,CAACA,IAAI,CAAC8D,MAApB,EAA6B;AAC5B9D,UAAI,GAAG9rB,MAAP;AACA;;AAED,WAAO8rB,IAAI,CAAC+D,gBAAL,CAAuB7wB,IAAvB,CAAP;AACA,GAZF;;AAcA,MAAI8wB,SAAS,GAAG,IAAI3kB,MAAJ,CAAYsY,SAAS,CAACjV,IAAV,CAAgB,GAAhB,CAAZ,EAAmC,GAAnC,CAAhB;;AAIA,GAAE,YAAW;AAEZ;AACA;AACA,aAASuhB,iBAAT,GAA6B;AAE5B;AACA,UAAK,CAAC/I,GAAN,EAAY;AACX;AACA;;AAEDgJ,eAAS,CAACrM,KAAV,CAAgBsM,OAAhB,GAA0B,gDACzB,mCADD;AAEAjJ,SAAG,CAACrD,KAAJ,CAAUsM,OAAV,GACC,2EACA,qCADA,GAEA,kBAHD;AAIA7f,qBAAe,CAAC1L,WAAhB,CAA6BsrB,SAA7B,EAAyCtrB,WAAzC,CAAsDsiB,GAAtD;AAEA,UAAIkJ,QAAQ,GAAGlwB,MAAM,CAAC6vB,gBAAP,CAAyB7I,GAAzB,CAAf;AACAmJ,sBAAgB,GAAGD,QAAQ,CAACpuB,GAAT,KAAiB,IAApC,CAhB4B,CAkB5B;;AACAsuB,2BAAqB,GAAGC,kBAAkB,CAAEH,QAAQ,CAACI,UAAX,CAAlB,KAA8C,EAAtE,CAnB4B,CAqB5B;AACA;;AACAtJ,SAAG,CAACrD,KAAJ,CAAU4M,KAAV,GAAkB,KAAlB;AACAC,uBAAiB,GAAGH,kBAAkB,CAAEH,QAAQ,CAACK,KAAX,CAAlB,KAAyC,EAA7D,CAxB4B,CA0B5B;AACA;;AACAE,0BAAoB,GAAGJ,kBAAkB,CAAEH,QAAQ,CAACQ,KAAX,CAAlB,KAAyC,EAAhE,CA5B4B,CA8B5B;AACA;;AACA1J,SAAG,CAACrD,KAAJ,CAAUgN,QAAV,GAAqB,UAArB;AACAC,sBAAgB,GAAG5J,GAAG,CAAC6J,WAAJ,KAAoB,EAApB,IAA0B,UAA7C;AAEAzgB,qBAAe,CAACxL,WAAhB,CAA6BorB,SAA7B,EAnC4B,CAqC5B;AACA;;AACAhJ,SAAG,GAAG,IAAN;AACA;;AAED,aAASqJ,kBAAT,CAA6BS,OAA7B,EAAuC;AACtC,aAAOzvB,IAAI,CAAC0vB,KAAL,CAAYC,UAAU,CAAEF,OAAF,CAAtB,CAAP;AACA;;AAED,QAAIX,gBAAJ;AAAA,QAAsBM,oBAAtB;AAAA,QAA4CG,gBAA5C;AAAA,QAA8DJ,iBAA9D;AAAA,QACCJ,qBADD;AAAA,QAECJ,SAAS,GAAGzyB,QAAQ,CAACgH,aAAT,CAAwB,KAAxB,CAFb;AAAA,QAGCyiB,GAAG,GAAGzpB,QAAQ,CAACgH,aAAT,CAAwB,KAAxB,CAHP,CAlDY,CAuDZ;;AACA,QAAK,CAACyiB,GAAG,CAACrD,KAAV,EAAkB;AACjB;AACA,KA1DW,CA4DZ;AACA;;;AACAqD,OAAG,CAACrD,KAAJ,CAAUsN,cAAV,GAA2B,aAA3B;AACAjK,OAAG,CAACE,SAAJ,CAAe,IAAf,EAAsBvD,KAAtB,CAA4BsN,cAA5B,GAA6C,EAA7C;AACAvtB,WAAO,CAACwtB,eAAR,GAA0BlK,GAAG,CAACrD,KAAJ,CAAUsN,cAAV,KAA6B,aAAvD;AAEAnsB,UAAM,CAACpF,MAAP,CAAegE,OAAf,EAAwB;AACvBytB,uBAAiB,EAAE,YAAW;AAC7BpB,yBAAiB;AACjB,eAAOU,oBAAP;AACA,OAJsB;AAKvBW,oBAAc,EAAE,YAAW;AAC1BrB,yBAAiB;AACjB,eAAOS,iBAAP;AACA,OARsB;AASvBa,mBAAa,EAAE,YAAW;AACzBtB,yBAAiB;AACjB,eAAOI,gBAAP;AACA,OAZsB;AAavBmB,wBAAkB,EAAE,YAAW;AAC9BvB,yBAAiB;AACjB,eAAOK,qBAAP;AACA,OAhBsB;AAiBvBmB,mBAAa,EAAE,YAAW;AACzBxB,yBAAiB;AACjB,eAAOa,gBAAP;AACA;AApBsB,KAAxB;AAsBA,GAxFD;;AA2FA,WAASY,MAAT,CAAiBxyB,IAAjB,EAAuByH,IAAvB,EAA6BgrB,QAA7B,EAAwC;AACvC,QAAIf,KAAJ;AAAA,QAAWgB,QAAX;AAAA,QAAqBC,QAArB;AAAA,QAA+BjsB,GAA/B;AAAA,QAEC;AACA;AACA;AACA;AACAie,SAAK,GAAG3kB,IAAI,CAAC2kB,KANd;AAQA8N,YAAQ,GAAGA,QAAQ,IAAI9B,SAAS,CAAE3wB,IAAF,CAAhC,CATuC,CAWvC;AACA;AACA;;AACA,QAAKyyB,QAAL,EAAgB;AACf/rB,SAAG,GAAG+rB,QAAQ,CAACG,gBAAT,CAA2BnrB,IAA3B,KAAqCgrB,QAAQ,CAAEhrB,IAAF,CAAnD;;AAEA,UAAKf,GAAG,KAAK,EAAR,IAAc,CAACZ,MAAM,CAACgF,QAAP,CAAiB9K,IAAI,CAAC4O,aAAtB,EAAqC5O,IAArC,CAApB,EAAkE;AACjE0G,WAAG,GAAGZ,MAAM,CAAC6e,KAAP,CAAc3kB,IAAd,EAAoByH,IAApB,CAAN;AACA,OALc,CAOf;AACA;AACA;AACA;AACA;;;AACA,UAAK,CAAC/C,OAAO,CAAC0tB,cAAR,EAAD,IAA6B1B,SAAS,CAACvhB,IAAV,CAAgBzI,GAAhB,CAA7B,IAAsDoqB,SAAS,CAAC3hB,IAAV,CAAgB1H,IAAhB,CAA3D,EAAoF;AAEnF;AACAiqB,aAAK,GAAG/M,KAAK,CAAC+M,KAAd;AACAgB,gBAAQ,GAAG/N,KAAK,CAAC+N,QAAjB;AACAC,gBAAQ,GAAGhO,KAAK,CAACgO,QAAjB,CALmF,CAOnF;;AACAhO,aAAK,CAAC+N,QAAN,GAAiB/N,KAAK,CAACgO,QAAN,GAAiBhO,KAAK,CAAC+M,KAAN,GAAchrB,GAAhD;AACAA,WAAG,GAAG+rB,QAAQ,CAACf,KAAf,CATmF,CAWnF;;AACA/M,aAAK,CAAC+M,KAAN,GAAcA,KAAd;AACA/M,aAAK,CAAC+N,QAAN,GAAiBA,QAAjB;AACA/N,aAAK,CAACgO,QAAN,GAAiBA,QAAjB;AACA;AACD;;AAED,WAAOjsB,GAAG,KAAKuB,SAAR,GAEN;AACA;AACAvB,OAAG,GAAG,EAJA,GAKNA,GALD;AAMA;;AAGD,WAASmsB,YAAT,CAAuBC,WAAvB,EAAoCC,MAApC,EAA6C;AAE5C;AACA,WAAO;AACNzsB,SAAG,EAAE,YAAW;AACf,YAAKwsB,WAAW,EAAhB,EAAqB;AAEpB;AACA;AACA,iBAAO,KAAKxsB,GAAZ;AACA;AACA,SAPc,CASf;;;AACA,eAAO,CAAE,KAAKA,GAAL,GAAWysB,MAAb,EAAsBzvB,KAAtB,CAA6B,IAA7B,EAAmCnC,SAAnC,CAAP;AACA;AAZK,KAAP;AAcA;;AAGD,MAEC;AACA;AACA;AACA6xB,cAAY,GAAG,2BALhB;AAAA,MAMCC,WAAW,GAAG,KANf;AAAA,MAOCC,OAAO,GAAG;AAAEvB,YAAQ,EAAE,UAAZ;AAAwBwB,cAAU,EAAE,QAApC;AAA8CvO,WAAO,EAAE;AAAvD,GAPX;AAAA,MAQCwO,kBAAkB,GAAG;AACpBC,iBAAa,EAAE,GADK;AAEpBC,cAAU,EAAE;AAFQ,GARtB;AAAA,MAaCC,WAAW,GAAG,CAAE,QAAF,EAAY,KAAZ,EAAmB,IAAnB,CAbf;AAAA,MAcCC,UAAU,GAAGj1B,QAAQ,CAACgH,aAAT,CAAwB,KAAxB,EAAgCof,KAd9C,CA1iMiF,CA0jMjF;;AACA,WAAS8O,cAAT,CAAyBhsB,IAAzB,EAAgC;AAE/B;AACA,QAAKA,IAAI,IAAI+rB,UAAb,EAA0B;AACzB,aAAO/rB,IAAP;AACA,KAL8B,CAO/B;;;AACA,QAAIisB,OAAO,GAAGjsB,IAAI,CAAE,CAAF,CAAJ,CAAU8a,WAAV,KAA0B9a,IAAI,CAAChJ,KAAL,CAAY,CAAZ,CAAxC;AAAA,QACCO,CAAC,GAAGu0B,WAAW,CAACt0B,MADjB;;AAGA,WAAQD,CAAC,EAAT,EAAc;AACbyI,UAAI,GAAG8rB,WAAW,CAAEv0B,CAAF,CAAX,GAAmB00B,OAA1B;;AACA,UAAKjsB,IAAI,IAAI+rB,UAAb,EAA0B;AACzB,eAAO/rB,IAAP;AACA;AACD;AACD,GA5kMgF,CA8kMjF;AACA;;;AACA,WAASksB,aAAT,CAAwBlsB,IAAxB,EAA+B;AAC9B,QAAIf,GAAG,GAAGZ,MAAM,CAAC8tB,QAAP,CAAiBnsB,IAAjB,CAAV;;AACA,QAAK,CAACf,GAAN,EAAY;AACXA,SAAG,GAAGZ,MAAM,CAAC8tB,QAAP,CAAiBnsB,IAAjB,IAA0BgsB,cAAc,CAAEhsB,IAAF,CAAd,IAA0BA,IAA1D;AACA;;AACD,WAAOf,GAAP;AACA;;AAED,WAASmtB,iBAAT,CAA4B7zB,IAA5B,EAAkCyJ,KAAlC,EAAyCqqB,QAAzC,EAAoD;AAEnD;AACA;AACA,QAAIxqB,OAAO,GAAGkb,OAAO,CAAC3V,IAAR,CAAcpF,KAAd,CAAd;AACA,WAAOH,OAAO,GAEb;AACAjH,QAAI,CAACC,GAAL,CAAU,CAAV,EAAagH,OAAO,CAAE,CAAF,CAAP,IAAiBwqB,QAAQ,IAAI,CAA7B,CAAb,KAAoDxqB,OAAO,CAAE,CAAF,CAAP,IAAgB,IAApE,CAHa,GAIbG,KAJD;AAKA;;AAED,WAASsqB,kBAAT,CAA6B/zB,IAA7B,EAAmCg0B,SAAnC,EAA8CC,GAA9C,EAAmDC,WAAnD,EAAgEC,MAAhE,EAAwEC,WAAxE,EAAsF;AACrF,QAAIp1B,CAAC,GAAGg1B,SAAS,KAAK,OAAd,GAAwB,CAAxB,GAA4B,CAApC;AAAA,QACCK,KAAK,GAAG,CADT;AAAA,QAECjzB,KAAK,GAAG,CAFT,CADqF,CAKrF;;AACA,QAAK6yB,GAAG,MAAOC,WAAW,GAAG,QAAH,GAAc,SAAhC,CAAR,EAAsD;AACrD,aAAO,CAAP;AACA;;AAED,WAAQl1B,CAAC,GAAG,CAAZ,EAAeA,CAAC,IAAI,CAApB,EAAwB;AAEvB;AACA,UAAKi1B,GAAG,KAAK,QAAb,EAAwB;AACvB7yB,aAAK,IAAI0E,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkBi0B,GAAG,GAAGxP,SAAS,CAAEzlB,CAAF,CAAjC,EAAwC,IAAxC,EAA8Cm1B,MAA9C,CAAT;AACA,OALsB,CAOvB;;;AACA,UAAK,CAACD,WAAN,EAAoB;AAEnB;AACA9yB,aAAK,IAAI0E,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,YAAYykB,SAAS,CAAEzlB,CAAF,CAAvC,EAA8C,IAA9C,EAAoDm1B,MAApD,CAAT,CAHmB,CAKnB;;AACA,YAAKF,GAAG,KAAK,SAAb,EAAyB;AACxB7yB,eAAK,IAAI0E,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,WAAWykB,SAAS,CAAEzlB,CAAF,CAApB,GAA4B,OAA9C,EAAuD,IAAvD,EAA6Dm1B,MAA7D,CAAT,CADwB,CAGzB;AACC,SAJD,MAIO;AACNE,eAAK,IAAIvuB,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,WAAWykB,SAAS,CAAEzlB,CAAF,CAApB,GAA4B,OAA9C,EAAuD,IAAvD,EAA6Dm1B,MAA7D,CAAT;AACA,SAZkB,CAcpB;AACA;;AACC,OAhBD,MAgBO;AAEN;AACA,YAAKF,GAAG,KAAK,SAAb,EAAyB;AACxB7yB,eAAK,IAAI0E,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,YAAYykB,SAAS,CAAEzlB,CAAF,CAAvC,EAA8C,IAA9C,EAAoDm1B,MAApD,CAAT;AACA,SALK,CAON;;;AACA,YAAKF,GAAG,KAAK,QAAb,EAAwB;AACvB7yB,eAAK,IAAI0E,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,WAAWykB,SAAS,CAAEzlB,CAAF,CAApB,GAA4B,OAA9C,EAAuD,IAAvD,EAA6Dm1B,MAA7D,CAAT;AACA;AACD;AACD,KA9CoF,CAgDrF;;;AACA,QAAK,CAACD,WAAD,IAAgBE,WAAW,IAAI,CAApC,EAAwC;AAEvC;AACA;AACAhzB,WAAK,IAAIiB,IAAI,CAACC,GAAL,CAAU,CAAV,EAAaD,IAAI,CAACiyB,IAAL,CACrBt0B,IAAI,CAAE,WAAWg0B,SAAS,CAAE,CAAF,CAAT,CAAezR,WAAf,EAAX,GAA0CyR,SAAS,CAACv1B,KAAV,CAAiB,CAAjB,CAA5C,CAAJ,GACA21B,WADA,GAEAhzB,KAFA,GAGAizB,KAHA,GAIA,GALqB,CAAb,CAAT;AAOA;;AAED,WAAOjzB,KAAP;AACA;;AAED,WAASmzB,gBAAT,CAA2Bv0B,IAA3B,EAAiCg0B,SAAjC,EAA4CK,KAA5C,EAAoD;AAEnD;AACA,QAAIF,MAAM,GAAGxD,SAAS,CAAE3wB,IAAF,CAAtB;AAAA,QACCsT,GAAG,GAAGkf,MAAM,CAAExyB,IAAF,EAAQg0B,SAAR,EAAmBG,MAAnB,CADb;AAAA,QAECD,WAAW,GAAGpuB,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,WAAlB,EAA+B,KAA/B,EAAsCm0B,MAAtC,MAAmD,YAFlE;AAAA,QAGCK,gBAAgB,GAAGN,WAHpB,CAHmD,CAQnD;AACA;;AACA,QAAKxD,SAAS,CAACvhB,IAAV,CAAgBmE,GAAhB,CAAL,EAA6B;AAC5B,UAAK,CAAC+gB,KAAN,EAAc;AACb,eAAO/gB,GAAP;AACA;;AACDA,SAAG,GAAG,MAAN;AACA,KAfkD,CAiBnD;AACA;;;AACAkhB,oBAAgB,GAAGA,gBAAgB,KAChC9vB,OAAO,CAACytB,iBAAR,MAA+B7e,GAAG,KAAKtT,IAAI,CAAC2kB,KAAL,CAAYqP,SAAZ,CADP,CAAnC,CAnBmD,CAsBnD;AACA;AACA;AACA;;AACA,QAAK1gB,GAAG,KAAK,MAAR,IACJ,CAAC0e,UAAU,CAAE1e,GAAF,CAAX,IAAsBxN,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,SAAlB,EAA6B,KAA7B,EAAoCm0B,MAApC,MAAiD,QADxE,EACmF;AAElF7gB,SAAG,GAAGtT,IAAI,CAAE,WAAWg0B,SAAS,CAAE,CAAF,CAAT,CAAezR,WAAf,EAAX,GAA0CyR,SAAS,CAACv1B,KAAV,CAAiB,CAAjB,CAA5C,CAAV,CAFkF,CAIlF;;AACA+1B,sBAAgB,GAAG,IAAnB;AACA,KAjCkD,CAmCnD;;;AACAlhB,OAAG,GAAG0e,UAAU,CAAE1e,GAAF,CAAV,IAAqB,CAA3B,CApCmD,CAsCnD;;AACA,WAASA,GAAG,GACXygB,kBAAkB,CACjB/zB,IADiB,EAEjBg0B,SAFiB,EAGjBK,KAAK,KAAMH,WAAW,GAAG,QAAH,GAAc,SAA/B,CAHY,EAIjBM,gBAJiB,EAKjBL,MALiB,EAOjB;AACA7gB,OARiB,CADZ,GAWH,IAXJ;AAYA;;AAEDxN,QAAM,CAACpF,MAAP,CAAe;AAEd;AACA;AACA+zB,YAAQ,EAAE;AACTC,aAAO,EAAE;AACRpuB,WAAG,EAAE,UAAUtG,IAAV,EAAgByyB,QAAhB,EAA2B;AAC/B,cAAKA,QAAL,EAAgB;AAEf;AACA,gBAAI/rB,GAAG,GAAG8rB,MAAM,CAAExyB,IAAF,EAAQ,SAAR,CAAhB;AACA,mBAAO0G,GAAG,KAAK,EAAR,GAAa,GAAb,GAAmBA,GAA1B;AACA;AACD;AARO;AADA,KAJI;AAiBd;AACA8e,aAAS,EAAE;AACV,iCAA2B,IADjB;AAEV,qBAAe,IAFL;AAGV,qBAAe,IAHL;AAIV,kBAAY,IAJF;AAKV,oBAAc,IALJ;AAMV,oBAAc,IANJ;AAOV,oBAAc,IAPJ;AAQV,iBAAW,IARD;AASV,eAAS,IATC;AAUV,iBAAW,IAVD;AAWV,gBAAU,IAXA;AAYV,gBAAU,IAZA;AAaV,cAAQ;AAbE,KAlBG;AAkCd;AACA;AACAoO,YAAQ,EAAE,EApCI;AAsCd;AACAjP,SAAK,EAAE,UAAU3kB,IAAV,EAAgByH,IAAhB,EAAsBgC,KAAtB,EAA6B4qB,KAA7B,EAAqC;AAE3C;AACA,UAAK,CAACr0B,IAAD,IAASA,IAAI,CAAC6E,QAAL,KAAkB,CAA3B,IAAgC7E,IAAI,CAAC6E,QAAL,KAAkB,CAAlD,IAAuD,CAAC7E,IAAI,CAAC2kB,KAAlE,EAA0E;AACzE;AACA,OAL0C,CAO3C;;;AACA,UAAIje,GAAJ;AAAA,UAAS/E,IAAT;AAAA,UAAeoiB,KAAf;AAAA,UACC4Q,QAAQ,GAAGnS,SAAS,CAAE/a,IAAF,CADrB;AAAA,UAECmtB,YAAY,GAAG3B,WAAW,CAAC9jB,IAAZ,CAAkB1H,IAAlB,CAFhB;AAAA,UAGCkd,KAAK,GAAG3kB,IAAI,CAAC2kB,KAHd,CAR2C,CAa3C;AACA;AACA;;AACA,UAAK,CAACiQ,YAAN,EAAqB;AACpBntB,YAAI,GAAGksB,aAAa,CAAEgB,QAAF,CAApB;AACA,OAlB0C,CAoB3C;;;AACA5Q,WAAK,GAAGje,MAAM,CAAC2uB,QAAP,CAAiBhtB,IAAjB,KAA2B3B,MAAM,CAAC2uB,QAAP,CAAiBE,QAAjB,CAAnC,CArB2C,CAuB3C;;AACA,UAAKlrB,KAAK,KAAKxB,SAAf,EAA2B;AAC1BtG,YAAI,GAAG,OAAO8H,KAAd,CAD0B,CAG1B;;AACA,YAAK9H,IAAI,KAAK,QAAT,KAAuB+E,GAAG,GAAG8d,OAAO,CAAC3V,IAAR,CAAcpF,KAAd,CAA7B,KAAwD/C,GAAG,CAAE,CAAF,CAAhE,EAAwE;AACvE+C,eAAK,GAAGsb,SAAS,CAAE/kB,IAAF,EAAQyH,IAAR,EAAcf,GAAd,CAAjB,CADuE,CAGvE;;AACA/E,cAAI,GAAG,QAAP;AACA,SATyB,CAW1B;;;AACA,YAAK8H,KAAK,IAAI,IAAT,IAAiBA,KAAK,KAAKA,KAAhC,EAAwC;AACvC;AACA,SAdyB,CAgB1B;;;AACA,YAAK9H,IAAI,KAAK,QAAd,EAAyB;AACxB8H,eAAK,IAAI/C,GAAG,IAAIA,GAAG,CAAE,CAAF,CAAV,KAAqBZ,MAAM,CAAC0f,SAAP,CAAkBmP,QAAlB,IAA+B,EAA/B,GAAoC,IAAzD,CAAT;AACA,SAnByB,CAqB1B;;;AACA,YAAK,CAACjwB,OAAO,CAACwtB,eAAT,IAA4BzoB,KAAK,KAAK,EAAtC,IAA4ChC,IAAI,CAACtD,OAAL,CAAc,YAAd,MAAiC,CAAlF,EAAsF;AACrFwgB,eAAK,CAAEld,IAAF,CAAL,GAAgB,SAAhB;AACA,SAxByB,CA0B1B;;;AACA,YAAK,CAACsc,KAAD,IAAU,EAAG,SAASA,KAAZ,CAAV,IACJ,CAAEta,KAAK,GAAGsa,KAAK,CAACf,GAAN,CAAWhjB,IAAX,EAAiByJ,KAAjB,EAAwB4qB,KAAxB,CAAV,MAAgDpsB,SADjD,EAC6D;AAE5D,cAAK2sB,YAAL,EAAoB;AACnBjQ,iBAAK,CAACkQ,WAAN,CAAmBptB,IAAnB,EAAyBgC,KAAzB;AACA,WAFD,MAEO;AACNkb,iBAAK,CAAEld,IAAF,CAAL,GAAgBgC,KAAhB;AACA;AACD;AAED,OArCD,MAqCO;AAEN;AACA,YAAKsa,KAAK,IAAI,SAASA,KAAlB,IACJ,CAAErd,GAAG,GAAGqd,KAAK,CAACzd,GAAN,CAAWtG,IAAX,EAAiB,KAAjB,EAAwBq0B,KAAxB,CAAR,MAA8CpsB,SAD/C,EAC2D;AAE1D,iBAAOvB,GAAP;AACA,SAPK,CASN;;;AACA,eAAOie,KAAK,CAAEld,IAAF,CAAZ;AACA;AACD,KAhHa;AAkHdpH,OAAG,EAAE,UAAUL,IAAV,EAAgByH,IAAhB,EAAsB4sB,KAAtB,EAA6BF,MAA7B,EAAsC;AAC1C,UAAI7gB,GAAJ;AAAA,UAAS/M,GAAT;AAAA,UAAcwd,KAAd;AAAA,UACC4Q,QAAQ,GAAGnS,SAAS,CAAE/a,IAAF,CADrB;AAAA,UAECmtB,YAAY,GAAG3B,WAAW,CAAC9jB,IAAZ,CAAkB1H,IAAlB,CAFhB,CAD0C,CAK1C;AACA;AACA;;AACA,UAAK,CAACmtB,YAAN,EAAqB;AACpBntB,YAAI,GAAGksB,aAAa,CAAEgB,QAAF,CAApB;AACA,OAVyC,CAY1C;;;AACA5Q,WAAK,GAAGje,MAAM,CAAC2uB,QAAP,CAAiBhtB,IAAjB,KAA2B3B,MAAM,CAAC2uB,QAAP,CAAiBE,QAAjB,CAAnC,CAb0C,CAe1C;;AACA,UAAK5Q,KAAK,IAAI,SAASA,KAAvB,EAA+B;AAC9BzQ,WAAG,GAAGyQ,KAAK,CAACzd,GAAN,CAAWtG,IAAX,EAAiB,IAAjB,EAAuBq0B,KAAvB,CAAN;AACA,OAlByC,CAoB1C;;;AACA,UAAK/gB,GAAG,KAAKrL,SAAb,EAAyB;AACxBqL,WAAG,GAAGkf,MAAM,CAAExyB,IAAF,EAAQyH,IAAR,EAAc0sB,MAAd,CAAZ;AACA,OAvByC,CAyB1C;;;AACA,UAAK7gB,GAAG,KAAK,QAAR,IAAoB7L,IAAI,IAAI2rB,kBAAjC,EAAsD;AACrD9f,WAAG,GAAG8f,kBAAkB,CAAE3rB,IAAF,CAAxB;AACA,OA5ByC,CA8B1C;;;AACA,UAAK4sB,KAAK,KAAK,EAAV,IAAgBA,KAArB,EAA6B;AAC5B9tB,WAAG,GAAGyrB,UAAU,CAAE1e,GAAF,CAAhB;AACA,eAAO+gB,KAAK,KAAK,IAAV,IAAkBS,QAAQ,CAAEvuB,GAAF,CAA1B,GAAoCA,GAAG,IAAI,CAA3C,GAA+C+M,GAAtD;AACA;;AAED,aAAOA,GAAP;AACA;AAvJa,GAAf;AA0JAxN,QAAM,CAACe,IAAP,CAAa,CAAE,QAAF,EAAY,OAAZ,CAAb,EAAoC,UAAU7H,CAAV,EAAag1B,SAAb,EAAyB;AAC5DluB,UAAM,CAAC2uB,QAAP,CAAiBT,SAAjB,IAA+B;AAC9B1tB,SAAG,EAAE,UAAUtG,IAAV,EAAgByyB,QAAhB,EAA0B4B,KAA1B,EAAkC;AACtC,YAAK5B,QAAL,EAAgB;AAEf;AACA;AACA,iBAAOO,YAAY,CAAC7jB,IAAb,CAAmBrJ,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,SAAlB,CAAnB,OAEN;AACA;AACA;AACA;AACA;AACA;AACE,WAACA,IAAI,CAAC+0B,cAAL,GAAsB91B,MAAvB,IAAiC,CAACe,IAAI,CAACyC,qBAAL,GAA6BivB,KAR3D,IASL7M,IAAI,CAAE7kB,IAAF,EAAQkzB,OAAR,EAAiB,YAAW;AAC/B,mBAAOqB,gBAAgB,CAAEv0B,IAAF,EAAQg0B,SAAR,EAAmBK,KAAnB,CAAvB;AACA,WAFG,CATC,GAYLE,gBAAgB,CAAEv0B,IAAF,EAAQg0B,SAAR,EAAmBK,KAAnB,CAZlB;AAaA;AACD,OApB6B;AAsB9BrR,SAAG,EAAE,UAAUhjB,IAAV,EAAgByJ,KAAhB,EAAuB4qB,KAAvB,EAA+B;AACnC,YAAI/qB,OAAJ;AAAA,YACC6qB,MAAM,GAAGxD,SAAS,CAAE3wB,IAAF,CADnB;AAAA,YAECk0B,WAAW,GAAGpuB,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,WAAlB,EAA+B,KAA/B,EAAsCm0B,MAAtC,MAAmD,YAFlE;AAAA,YAGCL,QAAQ,GAAGO,KAAK,IAAIN,kBAAkB,CACrC/zB,IADqC,EAErCg0B,SAFqC,EAGrCK,KAHqC,EAIrCH,WAJqC,EAKrCC,MALqC,CAHvC,CADmC,CAYnC;AACA;;AACA,YAAKD,WAAW,IAAIxvB,OAAO,CAAC6tB,aAAR,OAA4B4B,MAAM,CAACxC,QAAvD,EAAkE;AACjEmC,kBAAQ,IAAIzxB,IAAI,CAACiyB,IAAL,CACXt0B,IAAI,CAAE,WAAWg0B,SAAS,CAAE,CAAF,CAAT,CAAezR,WAAf,EAAX,GAA0CyR,SAAS,CAACv1B,KAAV,CAAiB,CAAjB,CAA5C,CAAJ,GACAuzB,UAAU,CAAEmC,MAAM,CAAEH,SAAF,CAAR,CADV,GAEAD,kBAAkB,CAAE/zB,IAAF,EAAQg0B,SAAR,EAAmB,QAAnB,EAA6B,KAA7B,EAAoCG,MAApC,CAFlB,GAGA,GAJW,CAAZ;AAMA,SArBkC,CAuBnC;;;AACA,YAAKL,QAAQ,KAAMxqB,OAAO,GAAGkb,OAAO,CAAC3V,IAAR,CAAcpF,KAAd,CAAhB,CAAR,IACJ,CAAEH,OAAO,CAAE,CAAF,CAAP,IAAgB,IAAlB,MAA6B,IAD9B,EACqC;AAEpCtJ,cAAI,CAAC2kB,KAAL,CAAYqP,SAAZ,IAA0BvqB,KAA1B;AACAA,eAAK,GAAG3D,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkBg0B,SAAlB,CAAR;AACA;;AAED,eAAOH,iBAAiB,CAAE7zB,IAAF,EAAQyJ,KAAR,EAAeqqB,QAAf,CAAxB;AACA;AAtD6B,KAA/B;AAwDA,GAzDD;AA2DAhuB,QAAM,CAAC2uB,QAAP,CAAgBnD,UAAhB,GAA6BuB,YAAY,CAAEnuB,OAAO,CAAC4tB,kBAAV,EACxC,UAAUtyB,IAAV,EAAgByyB,QAAhB,EAA2B;AAC1B,QAAKA,QAAL,EAAgB;AACf,aAAO,CAAET,UAAU,CAAEQ,MAAM,CAAExyB,IAAF,EAAQ,YAAR,CAAR,CAAV,IACRA,IAAI,CAACyC,qBAAL,GAA6BG,IAA7B,GACCiiB,IAAI,CAAE7kB,IAAF,EAAQ;AAAEsxB,kBAAU,EAAE;AAAd,OAAR,EAA2B,YAAW;AACzC,eAAOtxB,IAAI,CAACyC,qBAAL,GAA6BG,IAApC;AACA,OAFG,CAFC,IAKF,IALL;AAMA;AACD,GAVuC,CAAzC,CA/6MiF,CA47MjF;;AACAkD,QAAM,CAACe,IAAP,CAAa;AACZmuB,UAAM,EAAE,EADI;AAEZC,WAAO,EAAE,EAFG;AAGZC,UAAM,EAAE;AAHI,GAAb,EAIG,UAAUC,MAAV,EAAkBC,MAAlB,EAA2B;AAC7BtvB,UAAM,CAAC2uB,QAAP,CAAiBU,MAAM,GAAGC,MAA1B,IAAqC;AACpCC,YAAM,EAAE,UAAU5rB,KAAV,EAAkB;AACzB,YAAIzK,CAAC,GAAG,CAAR;AAAA,YACCs2B,QAAQ,GAAG,EADZ;AAAA,YAGC;AACAC,aAAK,GAAG,OAAO9rB,KAAP,KAAiB,QAAjB,GAA4BA,KAAK,CAACI,KAAN,CAAa,GAAb,CAA5B,GAAiD,CAAEJ,KAAF,CAJ1D;;AAMA,eAAQzK,CAAC,GAAG,CAAZ,EAAeA,CAAC,EAAhB,EAAqB;AACpBs2B,kBAAQ,CAAEH,MAAM,GAAG1Q,SAAS,CAAEzlB,CAAF,CAAlB,GAA0Bo2B,MAA5B,CAAR,GACCG,KAAK,CAAEv2B,CAAF,CAAL,IAAcu2B,KAAK,CAAEv2B,CAAC,GAAG,CAAN,CAAnB,IAAgCu2B,KAAK,CAAE,CAAF,CADtC;AAEA;;AAED,eAAOD,QAAP;AACA;AAdmC,KAArC;;AAiBA,QAAKH,MAAM,KAAK,QAAhB,EAA2B;AAC1BrvB,YAAM,CAAC2uB,QAAP,CAAiBU,MAAM,GAAGC,MAA1B,EAAmCpS,GAAnC,GAAyC6Q,iBAAzC;AACA;AACD,GAzBD;AA2BA/tB,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjBL,OAAG,EAAE,UAAUoH,IAAV,EAAgBgC,KAAhB,EAAwB;AAC5B,aAAOoY,MAAM,CAAE,IAAF,EAAQ,UAAU7hB,IAAV,EAAgByH,IAAhB,EAAsBgC,KAAtB,EAA8B;AAClD,YAAI0qB,MAAJ;AAAA,YAAYhtB,GAAZ;AAAA,YACCJ,GAAG,GAAG,EADP;AAAA,YAEC/H,CAAC,GAAG,CAFL;;AAIA,YAAKN,KAAK,CAACsJ,OAAN,CAAeP,IAAf,CAAL,EAA6B;AAC5B0sB,gBAAM,GAAGxD,SAAS,CAAE3wB,IAAF,CAAlB;AACAmH,aAAG,GAAGM,IAAI,CAACxI,MAAX;;AAEA,iBAAQD,CAAC,GAAGmI,GAAZ,EAAiBnI,CAAC,EAAlB,EAAuB;AACtB+H,eAAG,CAAEU,IAAI,CAAEzI,CAAF,CAAN,CAAH,GAAmB8G,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkByH,IAAI,CAAEzI,CAAF,CAAtB,EAA6B,KAA7B,EAAoCm1B,MAApC,CAAnB;AACA;;AAED,iBAAOptB,GAAP;AACA;;AAED,eAAO0C,KAAK,KAAKxB,SAAV,GACNnC,MAAM,CAAC6e,KAAP,CAAc3kB,IAAd,EAAoByH,IAApB,EAA0BgC,KAA1B,CADM,GAEN3D,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkByH,IAAlB,CAFD;AAGA,OAnBY,EAmBVA,IAnBU,EAmBJgC,KAnBI,EAmBGtI,SAAS,CAAClC,MAAV,GAAmB,CAnBtB,CAAb;AAoBA;AAtBgB,GAAlB;;AA0BA,WAASu2B,KAAT,CAAgBx1B,IAAhB,EAAsBwH,OAAtB,EAA+Byb,IAA/B,EAAqC5b,GAArC,EAA0CouB,MAA1C,EAAmD;AAClD,WAAO,IAAID,KAAK,CAAC72B,SAAN,CAAgBsH,IAApB,CAA0BjG,IAA1B,EAAgCwH,OAAhC,EAAyCyb,IAAzC,EAA+C5b,GAA/C,EAAoDouB,MAApD,CAAP;AACA;;AACD3vB,QAAM,CAAC0vB,KAAP,GAAeA,KAAf;AAEAA,OAAK,CAAC72B,SAAN,GAAkB;AACjByH,eAAW,EAAEovB,KADI;AAEjBvvB,QAAI,EAAE,UAAUjG,IAAV,EAAgBwH,OAAhB,EAAyByb,IAAzB,EAA+B5b,GAA/B,EAAoCouB,MAApC,EAA4ClQ,IAA5C,EAAmD;AACxD,WAAKvlB,IAAL,GAAYA,IAAZ;AACA,WAAKijB,IAAL,GAAYA,IAAZ;AACA,WAAKwS,MAAL,GAAcA,MAAM,IAAI3vB,MAAM,CAAC2vB,MAAP,CAAc9O,QAAtC;AACA,WAAKnf,OAAL,GAAeA,OAAf;AACA,WAAK4N,KAAL,GAAa,KAAK6W,GAAL,GAAW,KAAKxb,GAAL,EAAxB;AACA,WAAKpJ,GAAL,GAAWA,GAAX;AACA,WAAKke,IAAL,GAAYA,IAAI,KAAMzf,MAAM,CAAC0f,SAAP,CAAkBvC,IAAlB,IAA2B,EAA3B,GAAgC,IAAtC,CAAhB;AACA,KAVgB;AAWjBxS,OAAG,EAAE,YAAW;AACf,UAAIsT,KAAK,GAAGyR,KAAK,CAACE,SAAN,CAAiB,KAAKzS,IAAtB,CAAZ;AAEA,aAAOc,KAAK,IAAIA,KAAK,CAACzd,GAAf,GACNyd,KAAK,CAACzd,GAAN,CAAW,IAAX,CADM,GAENkvB,KAAK,CAACE,SAAN,CAAgB/O,QAAhB,CAAyBrgB,GAAzB,CAA8B,IAA9B,CAFD;AAGA,KAjBgB;AAkBjBqvB,OAAG,EAAE,UAAUC,OAAV,EAAoB;AACxB,UAAIC,KAAJ;AAAA,UACC9R,KAAK,GAAGyR,KAAK,CAACE,SAAN,CAAiB,KAAKzS,IAAtB,CADT;;AAGA,UAAK,KAAKzb,OAAL,CAAasuB,QAAlB,EAA6B;AAC5B,aAAKC,GAAL,GAAWF,KAAK,GAAG/vB,MAAM,CAAC2vB,MAAP,CAAe,KAAKA,MAApB,EAClBG,OADkB,EACT,KAAKpuB,OAAL,CAAasuB,QAAb,GAAwBF,OADf,EACwB,CADxB,EAC2B,CAD3B,EAC8B,KAAKpuB,OAAL,CAAasuB,QAD3C,CAAnB;AAGA,OAJD,MAIO;AACN,aAAKC,GAAL,GAAWF,KAAK,GAAGD,OAAnB;AACA;;AACD,WAAK3J,GAAL,GAAW,CAAE,KAAK5kB,GAAL,GAAW,KAAK+N,KAAlB,IAA4BygB,KAA5B,GAAoC,KAAKzgB,KAApD;;AAEA,UAAK,KAAK5N,OAAL,CAAawuB,IAAlB,EAAyB;AACxB,aAAKxuB,OAAL,CAAawuB,IAAb,CAAkB90B,IAAlB,CAAwB,KAAKlB,IAA7B,EAAmC,KAAKisB,GAAxC,EAA6C,IAA7C;AACA;;AAED,UAAKlI,KAAK,IAAIA,KAAK,CAACf,GAApB,EAA0B;AACzBe,aAAK,CAACf,GAAN,CAAW,IAAX;AACA,OAFD,MAEO;AACNwS,aAAK,CAACE,SAAN,CAAgB/O,QAAhB,CAAyB3D,GAAzB,CAA8B,IAA9B;AACA;;AACD,aAAO,IAAP;AACA;AAzCgB,GAAlB;AA4CAwS,OAAK,CAAC72B,SAAN,CAAgBsH,IAAhB,CAAqBtH,SAArB,GAAiC62B,KAAK,CAAC72B,SAAvC;AAEA62B,OAAK,CAACE,SAAN,GAAkB;AACjB/O,YAAQ,EAAE;AACTrgB,SAAG,EAAE,UAAU2e,KAAV,EAAkB;AACtB,YAAItQ,MAAJ,CADsB,CAGtB;AACA;;AACA,YAAKsQ,KAAK,CAACjlB,IAAN,CAAW6E,QAAX,KAAwB,CAAxB,IACJogB,KAAK,CAACjlB,IAAN,CAAYilB,KAAK,CAAChC,IAAlB,KAA4B,IAA5B,IAAoCgC,KAAK,CAACjlB,IAAN,CAAW2kB,KAAX,CAAkBM,KAAK,CAAChC,IAAxB,KAAkC,IADvE,EAC8E;AAC7E,iBAAOgC,KAAK,CAACjlB,IAAN,CAAYilB,KAAK,CAAChC,IAAlB,CAAP;AACA,SARqB,CAUtB;AACA;AACA;AACA;;;AACAtO,cAAM,GAAG7O,MAAM,CAACzF,GAAP,CAAY4kB,KAAK,CAACjlB,IAAlB,EAAwBilB,KAAK,CAAChC,IAA9B,EAAoC,EAApC,CAAT,CAdsB,CAgBtB;;AACA,eAAO,CAACtO,MAAD,IAAWA,MAAM,KAAK,MAAtB,GAA+B,CAA/B,GAAmCA,MAA1C;AACA,OAnBQ;AAoBTqO,SAAG,EAAE,UAAUiC,KAAV,EAAkB;AAEtB;AACA;AACA;AACA,YAAKnf,MAAM,CAACmwB,EAAP,CAAUD,IAAV,CAAgB/Q,KAAK,CAAChC,IAAtB,CAAL,EAAoC;AACnCnd,gBAAM,CAACmwB,EAAP,CAAUD,IAAV,CAAgB/Q,KAAK,CAAChC,IAAtB,EAA8BgC,KAA9B;AACA,SAFD,MAEO,IAAKA,KAAK,CAACjlB,IAAN,CAAW6E,QAAX,KAAwB,CAAxB,KACTogB,KAAK,CAACjlB,IAAN,CAAW2kB,KAAX,CAAkB7e,MAAM,CAAC8tB,QAAP,CAAiB3O,KAAK,CAAChC,IAAvB,CAAlB,KAAqD,IAArD,IACDnd,MAAM,CAAC2uB,QAAP,CAAiBxP,KAAK,CAAChC,IAAvB,CAFU,CAAL,EAE6B;AACnCnd,gBAAM,CAAC6e,KAAP,CAAcM,KAAK,CAACjlB,IAApB,EAA0BilB,KAAK,CAAChC,IAAhC,EAAsCgC,KAAK,CAACgH,GAAN,GAAYhH,KAAK,CAACM,IAAxD;AACA,SAJM,MAIA;AACNN,eAAK,CAACjlB,IAAN,CAAYilB,KAAK,CAAChC,IAAlB,IAA2BgC,KAAK,CAACgH,GAAjC;AACA;AACD;AAlCQ;AADO,GAAlB,CAriNiF,CA4kNjF;AACA;;AACAuJ,OAAK,CAACE,SAAN,CAAgBQ,SAAhB,GAA4BV,KAAK,CAACE,SAAN,CAAgBS,UAAhB,GAA6B;AACxDnT,OAAG,EAAE,UAAUiC,KAAV,EAAkB;AACtB,UAAKA,KAAK,CAACjlB,IAAN,CAAW6E,QAAX,IAAuBogB,KAAK,CAACjlB,IAAN,CAAW2F,UAAvC,EAAoD;AACnDsf,aAAK,CAACjlB,IAAN,CAAYilB,KAAK,CAAChC,IAAlB,IAA2BgC,KAAK,CAACgH,GAAjC;AACA;AACD;AALuD,GAAzD;AAQAnmB,QAAM,CAAC2vB,MAAP,GAAgB;AACfW,UAAM,EAAE,UAAUC,CAAV,EAAc;AACrB,aAAOA,CAAP;AACA,KAHc;AAIfC,SAAK,EAAE,UAAUD,CAAV,EAAc;AACpB,aAAO,MAAMh0B,IAAI,CAACk0B,GAAL,CAAUF,CAAC,GAAGh0B,IAAI,CAACm0B,EAAnB,IAA0B,CAAvC;AACA,KANc;AAOf7P,YAAQ,EAAE;AAPK,GAAhB;AAUA7gB,QAAM,CAACmwB,EAAP,GAAYT,KAAK,CAAC72B,SAAN,CAAgBsH,IAA5B,CAhmNiF,CAkmNjF;;AACAH,QAAM,CAACmwB,EAAP,CAAUD,IAAV,GAAiB,EAAjB;AAKA,MACCS,KADD;AAAA,MACQC,UADR;AAAA,MAECC,QAAQ,GAAG,wBAFZ;AAAA,MAGCC,IAAI,GAAG,aAHR;;AAKA,WAASC,QAAT,GAAoB;AACnB,QAAKH,UAAL,EAAkB;AACjB,UAAKn4B,QAAQ,CAACu4B,MAAT,KAAoB,KAApB,IAA6B91B,MAAM,CAAC+1B,qBAAzC,EAAiE;AAChE/1B,cAAM,CAAC+1B,qBAAP,CAA8BF,QAA9B;AACA,OAFD,MAEO;AACN71B,cAAM,CAACkC,UAAP,CAAmB2zB,QAAnB,EAA6B/wB,MAAM,CAACmwB,EAAP,CAAUe,QAAvC;AACA;;AAEDlxB,YAAM,CAACmwB,EAAP,CAAUgB,IAAV;AACA;AACD,GAvnNgF,CAynNjF;;;AACA,WAASC,WAAT,GAAuB;AACtBl2B,UAAM,CAACkC,UAAP,CAAmB,YAAW;AAC7BuzB,WAAK,GAAGxuB,SAAR;AACA,KAFD;AAGA,WAASwuB,KAAK,GAAG1rB,IAAI,CAACkhB,GAAL,EAAjB;AACA,GA/nNgF,CAioNjF;;;AACA,WAASkL,KAAT,CAAgBx1B,IAAhB,EAAsBy1B,YAAtB,EAAqC;AACpC,QAAI3J,KAAJ;AAAA,QACCzuB,CAAC,GAAG,CADL;AAAA,QAECsR,KAAK,GAAG;AAAEhQ,YAAM,EAAEqB;AAAV,KAFT,CADoC,CAKpC;AACA;;AACAy1B,gBAAY,GAAGA,YAAY,GAAG,CAAH,GAAO,CAAlC;;AACA,WAAQp4B,CAAC,GAAG,CAAZ,EAAeA,CAAC,IAAI,IAAIo4B,YAAxB,EAAuC;AACtC3J,WAAK,GAAGhJ,SAAS,CAAEzlB,CAAF,CAAjB;AACAsR,WAAK,CAAE,WAAWmd,KAAb,CAAL,GAA4Bnd,KAAK,CAAE,YAAYmd,KAAd,CAAL,GAA6B9rB,IAAzD;AACA;;AAED,QAAKy1B,YAAL,EAAoB;AACnB9mB,WAAK,CAACokB,OAAN,GAAgBpkB,KAAK,CAACohB,KAAN,GAAc/vB,IAA9B;AACA;;AAED,WAAO2O,KAAP;AACA;;AAED,WAAS+mB,WAAT,CAAsB5tB,KAAtB,EAA6BwZ,IAA7B,EAAmCqU,SAAnC,EAA+C;AAC9C,QAAIrS,KAAJ;AAAA,QACC8J,UAAU,GAAG,CAAEwI,SAAS,CAACC,QAAV,CAAoBvU,IAApB,KAA8B,EAAhC,EAAqChf,MAArC,CAA6CszB,SAAS,CAACC,QAAV,CAAoB,GAApB,CAA7C,CADd;AAAA,QAECxb,KAAK,GAAG,CAFT;AAAA,QAGC/c,MAAM,GAAG8vB,UAAU,CAAC9vB,MAHrB;;AAIA,WAAQ+c,KAAK,GAAG/c,MAAhB,EAAwB+c,KAAK,EAA7B,EAAkC;AACjC,UAAOiJ,KAAK,GAAG8J,UAAU,CAAE/S,KAAF,CAAV,CAAoB9a,IAApB,CAA0Bo2B,SAA1B,EAAqCrU,IAArC,EAA2CxZ,KAA3C,CAAf,EAAsE;AAErE;AACA,eAAOwb,KAAP;AACA;AACD;AACD;;AAED,WAASwS,gBAAT,CAA2Bz3B,IAA3B,EAAiC4rB,KAAjC,EAAwC8L,IAAxC,EAA+C;AAC9C,QAAIzU,IAAJ;AAAA,QAAUxZ,KAAV;AAAA,QAAiBwc,MAAjB;AAAA,QAAyBlC,KAAzB;AAAA,QAAgC4T,OAAhC;AAAA,QAAyCC,SAAzC;AAAA,QAAoDC,cAApD;AAAA,QAAoEjT,OAApE;AAAA,QACCkT,KAAK,GAAG,WAAWlM,KAAX,IAAoB,YAAYA,KADzC;AAAA,QAECmM,IAAI,GAAG,IAFR;AAAA,QAGCjK,IAAI,GAAG,EAHR;AAAA,QAICnJ,KAAK,GAAG3kB,IAAI,CAAC2kB,KAJd;AAAA,QAKCmS,MAAM,GAAG92B,IAAI,CAAC6E,QAAL,IAAiB6f,kBAAkB,CAAE1kB,IAAF,CAL7C;AAAA,QAMCg4B,QAAQ,GAAG7U,QAAQ,CAAC7c,GAAT,CAActG,IAAd,EAAoB,QAApB,CANZ,CAD8C,CAS9C;;AACA,QAAK,CAAC03B,IAAI,CAACpa,KAAX,EAAmB;AAClByG,WAAK,GAAGje,MAAM,CAACke,WAAP,CAAoBhkB,IAApB,EAA0B,IAA1B,CAAR;;AACA,UAAK+jB,KAAK,CAACkU,QAAN,IAAkB,IAAvB,EAA8B;AAC7BlU,aAAK,CAACkU,QAAN,GAAiB,CAAjB;AACAN,eAAO,GAAG5T,KAAK,CAACnG,KAAN,CAAYJ,IAAtB;;AACAuG,aAAK,CAACnG,KAAN,CAAYJ,IAAZ,GAAmB,YAAW;AAC7B,cAAK,CAACuG,KAAK,CAACkU,QAAZ,EAAuB;AACtBN,mBAAO;AACP;AACD,SAJD;AAKA;;AACD5T,WAAK,CAACkU,QAAN;AAEAF,UAAI,CAAC/Y,MAAL,CAAa,YAAW;AAEvB;AACA+Y,YAAI,CAAC/Y,MAAL,CAAa,YAAW;AACvB+E,eAAK,CAACkU,QAAN;;AACA,cAAK,CAACnyB,MAAM,CAACwX,KAAP,CAActd,IAAd,EAAoB,IAApB,EAA2Bf,MAAjC,EAA0C;AACzC8kB,iBAAK,CAACnG,KAAN,CAAYJ,IAAZ;AACA;AACD,SALD;AAMA,OATD;AAUA,KAjC6C,CAmC9C;;;AACA,SAAMyF,IAAN,IAAc2I,KAAd,EAAsB;AACrBniB,WAAK,GAAGmiB,KAAK,CAAE3I,IAAF,CAAb;;AACA,UAAK0T,QAAQ,CAACxnB,IAAT,CAAe1F,KAAf,CAAL,EAA8B;AAC7B,eAAOmiB,KAAK,CAAE3I,IAAF,CAAZ;AACAgD,cAAM,GAAGA,MAAM,IAAIxc,KAAK,KAAK,QAA7B;;AACA,YAAKA,KAAK,MAAOqtB,MAAM,GAAG,MAAH,GAAY,MAAzB,CAAV,EAA8C;AAE7C;AACA;AACA,cAAKrtB,KAAK,KAAK,MAAV,IAAoBuuB,QAApB,IAAgCA,QAAQ,CAAE/U,IAAF,CAAR,KAAqBhb,SAA1D,EAAsE;AACrE6uB,kBAAM,GAAG,IAAT,CADqE,CAGtE;AACC,WAJD,MAIO;AACN;AACA;AACD;;AACDhJ,YAAI,CAAE7K,IAAF,CAAJ,GAAe+U,QAAQ,IAAIA,QAAQ,CAAE/U,IAAF,CAApB,IAAgCnd,MAAM,CAAC6e,KAAP,CAAc3kB,IAAd,EAAoBijB,IAApB,CAA/C;AACA;AACD,KAvD6C,CAyD9C;;;AACA2U,aAAS,GAAG,CAAC9xB,MAAM,CAAC6C,aAAP,CAAsBijB,KAAtB,CAAb;;AACA,QAAK,CAACgM,SAAD,IAAc9xB,MAAM,CAAC6C,aAAP,CAAsBmlB,IAAtB,CAAnB,EAAkD;AACjD;AACA,KA7D6C,CA+D9C;;;AACA,QAAKgK,KAAK,IAAI93B,IAAI,CAAC6E,QAAL,KAAkB,CAAhC,EAAoC;AAEnC;AACA;AACA;AACA;AACA6yB,UAAI,CAACQ,QAAL,GAAgB,CAAEvT,KAAK,CAACuT,QAAR,EAAkBvT,KAAK,CAACwT,SAAxB,EAAmCxT,KAAK,CAACyT,SAAzC,CAAhB,CANmC,CAQnC;;AACAP,oBAAc,GAAGG,QAAQ,IAAIA,QAAQ,CAACpT,OAAtC;;AACA,UAAKiT,cAAc,IAAI,IAAvB,EAA8B;AAC7BA,sBAAc,GAAG1U,QAAQ,CAAC7c,GAAT,CAActG,IAAd,EAAoB,SAApB,CAAjB;AACA;;AACD4kB,aAAO,GAAG9e,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,SAAlB,CAAV;;AACA,UAAK4kB,OAAO,KAAK,MAAjB,EAA0B;AACzB,YAAKiT,cAAL,EAAsB;AACrBjT,iBAAO,GAAGiT,cAAV;AACA,SAFD,MAEO;AAEN;AACAhS,kBAAQ,CAAE,CAAE7lB,IAAF,CAAF,EAAY,IAAZ,CAAR;AACA63B,wBAAc,GAAG73B,IAAI,CAAC2kB,KAAL,CAAWC,OAAX,IAAsBiT,cAAvC;AACAjT,iBAAO,GAAG9e,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,SAAlB,CAAV;AACA6lB,kBAAQ,CAAE,CAAE7lB,IAAF,CAAF,CAAR;AACA;AACD,OAzBkC,CA2BnC;;;AACA,UAAK4kB,OAAO,KAAK,QAAZ,IAAwBA,OAAO,KAAK,cAAZ,IAA8BiT,cAAc,IAAI,IAA7E,EAAoF;AACnF,YAAK/xB,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,OAAlB,MAAgC,MAArC,EAA8C;AAE7C;AACA,cAAK,CAAC43B,SAAN,EAAkB;AACjBG,gBAAI,CAAC7sB,IAAL,CAAW,YAAW;AACrByZ,mBAAK,CAACC,OAAN,GAAgBiT,cAAhB;AACA,aAFD;;AAGA,gBAAKA,cAAc,IAAI,IAAvB,EAA8B;AAC7BjT,qBAAO,GAAGD,KAAK,CAACC,OAAhB;AACAiT,4BAAc,GAAGjT,OAAO,KAAK,MAAZ,GAAqB,EAArB,GAA0BA,OAA3C;AACA;AACD;;AACDD,eAAK,CAACC,OAAN,GAAgB,cAAhB;AACA;AACD;AACD;;AAED,QAAK8S,IAAI,CAACQ,QAAV,EAAqB;AACpBvT,WAAK,CAACuT,QAAN,GAAiB,QAAjB;AACAH,UAAI,CAAC/Y,MAAL,CAAa,YAAW;AACvB2F,aAAK,CAACuT,QAAN,GAAiBR,IAAI,CAACQ,QAAL,CAAe,CAAf,CAAjB;AACAvT,aAAK,CAACwT,SAAN,GAAkBT,IAAI,CAACQ,QAAL,CAAe,CAAf,CAAlB;AACAvT,aAAK,CAACyT,SAAN,GAAkBV,IAAI,CAACQ,QAAL,CAAe,CAAf,CAAlB;AACA,OAJD;AAKA,KArH6C,CAuH9C;;;AACAN,aAAS,GAAG,KAAZ;;AACA,SAAM3U,IAAN,IAAc6K,IAAd,EAAqB;AAEpB;AACA,UAAK,CAAC8J,SAAN,EAAkB;AACjB,YAAKI,QAAL,EAAgB;AACf,cAAK,YAAYA,QAAjB,EAA4B;AAC3BlB,kBAAM,GAAGkB,QAAQ,CAAClB,MAAlB;AACA;AACD,SAJD,MAIO;AACNkB,kBAAQ,GAAG7U,QAAQ,CAACtB,MAAT,CAAiB7hB,IAAjB,EAAuB,QAAvB,EAAiC;AAAE4kB,mBAAO,EAAEiT;AAAX,WAAjC,CAAX;AACA,SAPgB,CASjB;;;AACA,YAAK5R,MAAL,EAAc;AACb+R,kBAAQ,CAAClB,MAAT,GAAkB,CAACA,MAAnB;AACA,SAZgB,CAcjB;;;AACA,YAAKA,MAAL,EAAc;AACbjR,kBAAQ,CAAE,CAAE7lB,IAAF,CAAF,EAAY,IAAZ,CAAR;AACA;AAED;;;AAEA+3B,YAAI,CAAC7sB,IAAL,CAAW,YAAW;AAEtB;AAEC;AACA,cAAK,CAAC4rB,MAAN,EAAe;AACdjR,oBAAQ,CAAE,CAAE7lB,IAAF,CAAF,CAAR;AACA;;AACDmjB,kBAAQ,CAACxF,MAAT,CAAiB3d,IAAjB,EAAuB,QAAvB;;AACA,eAAMijB,IAAN,IAAc6K,IAAd,EAAqB;AACpBhoB,kBAAM,CAAC6e,KAAP,CAAc3kB,IAAd,EAAoBijB,IAApB,EAA0B6K,IAAI,CAAE7K,IAAF,CAA9B;AACA;AACD,SAZD;AAaA,OArCmB,CAuCpB;;;AACA2U,eAAS,GAAGP,WAAW,CAAEP,MAAM,GAAGkB,QAAQ,CAAE/U,IAAF,CAAX,GAAsB,CAA9B,EAAiCA,IAAjC,EAAuC8U,IAAvC,CAAvB;;AACA,UAAK,EAAG9U,IAAI,IAAI+U,QAAX,CAAL,EAA6B;AAC5BA,gBAAQ,CAAE/U,IAAF,CAAR,GAAmB2U,SAAS,CAACxiB,KAA7B;;AACA,YAAK0hB,MAAL,EAAc;AACbc,mBAAS,CAACvwB,GAAV,GAAgBuwB,SAAS,CAACxiB,KAA1B;AACAwiB,mBAAS,CAACxiB,KAAV,GAAkB,CAAlB;AACA;AACD;AACD;AACD;;AAED,WAASijB,UAAT,CAAqBzM,KAArB,EAA4B0M,aAA5B,EAA4C;AAC3C,QAAItc,KAAJ,EAAWvU,IAAX,EAAiBguB,MAAjB,EAAyBhsB,KAAzB,EAAgCsa,KAAhC,CAD2C,CAG3C;;AACA,SAAM/H,KAAN,IAAe4P,KAAf,EAAuB;AACtBnkB,UAAI,GAAG+a,SAAS,CAAExG,KAAF,CAAhB;AACAyZ,YAAM,GAAG6C,aAAa,CAAE7wB,IAAF,CAAtB;AACAgC,WAAK,GAAGmiB,KAAK,CAAE5P,KAAF,CAAb;;AACA,UAAKtd,KAAK,CAACsJ,OAAN,CAAeyB,KAAf,CAAL,EAA8B;AAC7BgsB,cAAM,GAAGhsB,KAAK,CAAE,CAAF,CAAd;AACAA,aAAK,GAAGmiB,KAAK,CAAE5P,KAAF,CAAL,GAAiBvS,KAAK,CAAE,CAAF,CAA9B;AACA;;AAED,UAAKuS,KAAK,KAAKvU,IAAf,EAAsB;AACrBmkB,aAAK,CAAEnkB,IAAF,CAAL,GAAgBgC,KAAhB;AACA,eAAOmiB,KAAK,CAAE5P,KAAF,CAAZ;AACA;;AAED+H,WAAK,GAAGje,MAAM,CAAC2uB,QAAP,CAAiBhtB,IAAjB,CAAR;;AACA,UAAKsc,KAAK,IAAI,YAAYA,KAA1B,EAAkC;AACjCta,aAAK,GAAGsa,KAAK,CAACsR,MAAN,CAAc5rB,KAAd,CAAR;AACA,eAAOmiB,KAAK,CAAEnkB,IAAF,CAAZ,CAFiC,CAIjC;AACA;;AACA,aAAMuU,KAAN,IAAevS,KAAf,EAAuB;AACtB,cAAK,EAAGuS,KAAK,IAAI4P,KAAZ,CAAL,EAA2B;AAC1BA,iBAAK,CAAE5P,KAAF,CAAL,GAAiBvS,KAAK,CAAEuS,KAAF,CAAtB;AACAsc,yBAAa,CAAEtc,KAAF,CAAb,GAAyByZ,MAAzB;AACA;AACD;AACD,OAZD,MAYO;AACN6C,qBAAa,CAAE7wB,IAAF,CAAb,GAAwBguB,MAAxB;AACA;AACD;AACD;;AAED,WAAS8B,SAAT,CAAoBv3B,IAApB,EAA0Bu4B,UAA1B,EAAsC/wB,OAAtC,EAAgD;AAC/C,QAAImN,MAAJ;AAAA,QACC6jB,OADD;AAAA,QAECxc,KAAK,GAAG,CAFT;AAAA,QAGC/c,MAAM,GAAGs4B,SAAS,CAACkB,UAAV,CAAqBx5B,MAH/B;AAAA,QAICggB,QAAQ,GAAGnZ,MAAM,CAAC8Y,QAAP,GAAkBI,MAAlB,CAA0B,YAAW;AAE/C;AACA,aAAOiY,IAAI,CAACj3B,IAAZ;AACA,KAJU,CAJZ;AAAA,QASCi3B,IAAI,GAAG,YAAW;AACjB,UAAKuB,OAAL,EAAe;AACd,eAAO,KAAP;AACA;;AACD,UAAIE,WAAW,GAAGjC,KAAK,IAAIS,WAAW,EAAtC;AAAA,UACCvW,SAAS,GAAGte,IAAI,CAACC,GAAL,CAAU,CAAV,EAAag1B,SAAS,CAACqB,SAAV,GAAsBrB,SAAS,CAACxB,QAAhC,GAA2C4C,WAAxD,CADb;AAAA,UAGC;AACA;AACAhgB,UAAI,GAAGiI,SAAS,GAAG2W,SAAS,CAACxB,QAAtB,IAAkC,CAL1C;AAAA,UAMCF,OAAO,GAAG,IAAIld,IANf;AAAA,UAOCsD,KAAK,GAAG,CAPT;AAAA,UAQC/c,MAAM,GAAGq4B,SAAS,CAACsB,MAAV,CAAiB35B,MAR3B;;AAUA,aAAQ+c,KAAK,GAAG/c,MAAhB,EAAwB+c,KAAK,EAA7B,EAAkC;AACjCsb,iBAAS,CAACsB,MAAV,CAAkB5c,KAAlB,EAA0B2Z,GAA1B,CAA+BC,OAA/B;AACA;;AAED3W,cAAQ,CAACgB,UAAT,CAAqBjgB,IAArB,EAA2B,CAAEs3B,SAAF,EAAa1B,OAAb,EAAsBjV,SAAtB,CAA3B,EAlBiB,CAoBjB;;AACA,UAAKiV,OAAO,GAAG,CAAV,IAAe32B,MAApB,EAA6B;AAC5B,eAAO0hB,SAAP;AACA,OAvBgB,CAyBjB;;;AACA,UAAK,CAAC1hB,MAAN,EAAe;AACdggB,gBAAQ,CAACgB,UAAT,CAAqBjgB,IAArB,EAA2B,CAAEs3B,SAAF,EAAa,CAAb,EAAgB,CAAhB,CAA3B;AACA,OA5BgB,CA8BjB;;;AACArY,cAAQ,CAACiB,WAAT,CAAsBlgB,IAAtB,EAA4B,CAAEs3B,SAAF,CAA5B;AACA,aAAO,KAAP;AACA,KA1CF;AAAA,QA2CCA,SAAS,GAAGrY,QAAQ,CAACR,OAAT,CAAkB;AAC7Bze,UAAI,EAAEA,IADuB;AAE7B4rB,WAAK,EAAE9lB,MAAM,CAACpF,MAAP,CAAe,EAAf,EAAmB63B,UAAnB,CAFsB;AAG7Bb,UAAI,EAAE5xB,MAAM,CAACpF,MAAP,CAAe,IAAf,EAAqB;AAC1B43B,qBAAa,EAAE,EADW;AAE1B7C,cAAM,EAAE3vB,MAAM,CAAC2vB,MAAP,CAAc9O;AAFI,OAArB,EAGHnf,OAHG,CAHuB;AAO7BqxB,wBAAkB,EAAEN,UAPS;AAQ7BO,qBAAe,EAAEtxB,OARY;AAS7BmxB,eAAS,EAAElC,KAAK,IAAIS,WAAW,EATF;AAU7BpB,cAAQ,EAAEtuB,OAAO,CAACsuB,QAVW;AAW7B8C,YAAM,EAAE,EAXqB;AAY7BvB,iBAAW,EAAE,UAAUpU,IAAV,EAAgB5b,GAAhB,EAAsB;AAClC,YAAI4d,KAAK,GAAGnf,MAAM,CAAC0vB,KAAP,CAAcx1B,IAAd,EAAoBs3B,SAAS,CAACI,IAA9B,EAAoCzU,IAApC,EAA0C5b,GAA1C,EACViwB,SAAS,CAACI,IAAV,CAAeY,aAAf,CAA8BrV,IAA9B,KAAwCqU,SAAS,CAACI,IAAV,CAAejC,MAD7C,CAAZ;AAEA6B,iBAAS,CAACsB,MAAV,CAAiB10B,IAAjB,CAAuB+gB,KAAvB;AACA,eAAOA,KAAP;AACA,OAjB4B;AAkB7BhB,UAAI,EAAE,UAAU8U,OAAV,EAAoB;AACzB,YAAI/c,KAAK,GAAG,CAAZ;AAAA,YAEC;AACA;AACA/c,cAAM,GAAG85B,OAAO,GAAGzB,SAAS,CAACsB,MAAV,CAAiB35B,MAApB,GAA6B,CAJ9C;;AAKA,YAAKu5B,OAAL,EAAe;AACd,iBAAO,IAAP;AACA;;AACDA,eAAO,GAAG,IAAV;;AACA,eAAQxc,KAAK,GAAG/c,MAAhB,EAAwB+c,KAAK,EAA7B,EAAkC;AACjCsb,mBAAS,CAACsB,MAAV,CAAkB5c,KAAlB,EAA0B2Z,GAA1B,CAA+B,CAA/B;AACA,SAZwB,CAczB;;;AACA,YAAKoD,OAAL,EAAe;AACd9Z,kBAAQ,CAACgB,UAAT,CAAqBjgB,IAArB,EAA2B,CAAEs3B,SAAF,EAAa,CAAb,EAAgB,CAAhB,CAA3B;AACArY,kBAAQ,CAACiB,WAAT,CAAsBlgB,IAAtB,EAA4B,CAAEs3B,SAAF,EAAayB,OAAb,CAA5B;AACA,SAHD,MAGO;AACN9Z,kBAAQ,CAACqB,UAAT,CAAqBtgB,IAArB,EAA2B,CAAEs3B,SAAF,EAAayB,OAAb,CAA3B;AACA;;AACD,eAAO,IAAP;AACA;AAxC4B,KAAlB,CA3Cb;AAAA,QAqFCnN,KAAK,GAAG0L,SAAS,CAAC1L,KArFnB;;AAuFAyM,cAAU,CAAEzM,KAAF,EAAS0L,SAAS,CAACI,IAAV,CAAeY,aAAxB,CAAV;;AAEA,WAAQtc,KAAK,GAAG/c,MAAhB,EAAwB+c,KAAK,EAA7B,EAAkC;AACjCrH,YAAM,GAAG4iB,SAAS,CAACkB,UAAV,CAAsBzc,KAAtB,EAA8B9a,IAA9B,CAAoCo2B,SAApC,EAA+Ct3B,IAA/C,EAAqD4rB,KAArD,EAA4D0L,SAAS,CAACI,IAAtE,CAAT;;AACA,UAAK/iB,MAAL,EAAc;AACb,YAAKhQ,UAAU,CAAEgQ,MAAM,CAACsP,IAAT,CAAf,EAAiC;AAChCne,gBAAM,CAACke,WAAP,CAAoBsT,SAAS,CAACt3B,IAA9B,EAAoCs3B,SAAS,CAACI,IAAV,CAAepa,KAAnD,EAA2D2G,IAA3D,GACCtP,MAAM,CAACsP,IAAP,CAAYtjB,IAAZ,CAAkBgU,MAAlB,CADD;AAEA;;AACD,eAAOA,MAAP;AACA;AACD;;AAED7O,UAAM,CAACiB,GAAP,CAAY6kB,KAAZ,EAAmByL,WAAnB,EAAgCC,SAAhC;;AAEA,QAAK3yB,UAAU,CAAE2yB,SAAS,CAACI,IAAV,CAAetiB,KAAjB,CAAf,EAA0C;AACzCkiB,eAAS,CAACI,IAAV,CAAetiB,KAAf,CAAqBlU,IAArB,CAA2BlB,IAA3B,EAAiCs3B,SAAjC;AACA,KAzG8C,CA2G/C;;;AACAA,aAAS,CACP/X,QADF,CACY+X,SAAS,CAACI,IAAV,CAAenY,QAD3B,EAEErU,IAFF,CAEQosB,SAAS,CAACI,IAAV,CAAexsB,IAFvB,EAE6BosB,SAAS,CAACI,IAAV,CAAesB,QAF5C,EAGEta,IAHF,CAGQ4Y,SAAS,CAACI,IAAV,CAAehZ,IAHvB,EAIEM,MAJF,CAIUsY,SAAS,CAACI,IAAV,CAAe1Y,MAJzB;AAMAlZ,UAAM,CAACmwB,EAAP,CAAUgD,KAAV,CACCnzB,MAAM,CAACpF,MAAP,CAAeu2B,IAAf,EAAqB;AACpBj3B,UAAI,EAAEA,IADc;AAEpB+3B,UAAI,EAAET,SAFc;AAGpBha,WAAK,EAAEga,SAAS,CAACI,IAAV,CAAepa;AAHF,KAArB,CADD;AAQA,WAAOga,SAAP;AACA;;AAEDxxB,QAAM,CAACyxB,SAAP,GAAmBzxB,MAAM,CAACpF,MAAP,CAAe62B,SAAf,EAA0B;AAE5CC,YAAQ,EAAE;AACT,WAAK,CAAE,UAAUvU,IAAV,EAAgBxZ,KAAhB,EAAwB;AAC9B,YAAIwb,KAAK,GAAG,KAAKoS,WAAL,CAAkBpU,IAAlB,EAAwBxZ,KAAxB,CAAZ;AACAsb,iBAAS,CAAEE,KAAK,CAACjlB,IAAR,EAAcijB,IAAd,EAAoBuB,OAAO,CAAC3V,IAAR,CAAcpF,KAAd,CAApB,EAA2Cwb,KAA3C,CAAT;AACA,eAAOA,KAAP;AACA,OAJI;AADI,KAFkC;AAU5CiU,WAAO,EAAE,UAAUtN,KAAV,EAAiB9kB,QAAjB,EAA4B;AACpC,UAAKnC,UAAU,CAAEinB,KAAF,CAAf,EAA2B;AAC1B9kB,gBAAQ,GAAG8kB,KAAX;AACAA,aAAK,GAAG,CAAE,GAAF,CAAR;AACA,OAHD,MAGO;AACNA,aAAK,GAAGA,KAAK,CAACpd,KAAN,CAAaqO,aAAb,CAAR;AACA;;AAED,UAAIoG,IAAJ;AAAA,UACCjH,KAAK,GAAG,CADT;AAAA,UAEC/c,MAAM,GAAG2sB,KAAK,CAAC3sB,MAFhB;;AAIA,aAAQ+c,KAAK,GAAG/c,MAAhB,EAAwB+c,KAAK,EAA7B,EAAkC;AACjCiH,YAAI,GAAG2I,KAAK,CAAE5P,KAAF,CAAZ;AACAub,iBAAS,CAACC,QAAV,CAAoBvU,IAApB,IAA6BsU,SAAS,CAACC,QAAV,CAAoBvU,IAApB,KAA8B,EAA3D;AACAsU,iBAAS,CAACC,QAAV,CAAoBvU,IAApB,EAA2BjgB,OAA3B,CAAoC8D,QAApC;AACA;AACD,KA3B2C;AA6B5C2xB,cAAU,EAAE,CAAEhB,gBAAF,CA7BgC;AA+B5C0B,aAAS,EAAE,UAAUryB,QAAV,EAAoBgpB,OAApB,EAA8B;AACxC,UAAKA,OAAL,EAAe;AACdyH,iBAAS,CAACkB,UAAV,CAAqBz1B,OAArB,CAA8B8D,QAA9B;AACA,OAFD,MAEO;AACNywB,iBAAS,CAACkB,UAAV,CAAqBv0B,IAArB,CAA2B4C,QAA3B;AACA;AACD;AArC2C,GAA1B,CAAnB;;AAwCAhB,QAAM,CAACszB,KAAP,GAAe,UAAUA,KAAV,EAAiB3D,MAAjB,EAAyBt1B,EAAzB,EAA8B;AAC5C,QAAIk5B,GAAG,GAAGD,KAAK,IAAI,OAAOA,KAAP,KAAiB,QAA1B,GAAqCtzB,MAAM,CAACpF,MAAP,CAAe,EAAf,EAAmB04B,KAAnB,CAArC,GAAkE;AAC3EJ,cAAQ,EAAE74B,EAAE,IAAI,CAACA,EAAD,IAAOs1B,MAAb,IACT9wB,UAAU,CAAEy0B,KAAF,CAAV,IAAuBA,KAFmD;AAG3EtD,cAAQ,EAAEsD,KAHiE;AAI3E3D,YAAM,EAAEt1B,EAAE,IAAIs1B,MAAN,IAAgBA,MAAM,IAAI,CAAC9wB,UAAU,CAAE8wB,MAAF,CAArB,IAAmCA;AAJgB,KAA5E,CAD4C,CAQ5C;;AACA,QAAK3vB,MAAM,CAACmwB,EAAP,CAAUlN,GAAf,EAAqB;AACpBsQ,SAAG,CAACvD,QAAJ,GAAe,CAAf;AAEA,KAHD,MAGO;AACN,UAAK,OAAOuD,GAAG,CAACvD,QAAX,KAAwB,QAA7B,EAAwC;AACvC,YAAKuD,GAAG,CAACvD,QAAJ,IAAgBhwB,MAAM,CAACmwB,EAAP,CAAUqD,MAA/B,EAAwC;AACvCD,aAAG,CAACvD,QAAJ,GAAehwB,MAAM,CAACmwB,EAAP,CAAUqD,MAAV,CAAkBD,GAAG,CAACvD,QAAtB,CAAf;AAEA,SAHD,MAGO;AACNuD,aAAG,CAACvD,QAAJ,GAAehwB,MAAM,CAACmwB,EAAP,CAAUqD,MAAV,CAAiB3S,QAAhC;AACA;AACD;AACD,KArB2C,CAuB5C;;;AACA,QAAK0S,GAAG,CAAC/b,KAAJ,IAAa,IAAb,IAAqB+b,GAAG,CAAC/b,KAAJ,KAAc,IAAxC,EAA+C;AAC9C+b,SAAG,CAAC/b,KAAJ,GAAY,IAAZ;AACA,KA1B2C,CA4B5C;;;AACA+b,OAAG,CAACvU,GAAJ,GAAUuU,GAAG,CAACL,QAAd;;AAEAK,OAAG,CAACL,QAAJ,GAAe,YAAW;AACzB,UAAKr0B,UAAU,CAAE00B,GAAG,CAACvU,GAAN,CAAf,EAA6B;AAC5BuU,WAAG,CAACvU,GAAJ,CAAQ5jB,IAAR,CAAc,IAAd;AACA;;AAED,UAAKm4B,GAAG,CAAC/b,KAAT,EAAiB;AAChBxX,cAAM,CAAC+d,OAAP,CAAgB,IAAhB,EAAsBwV,GAAG,CAAC/b,KAA1B;AACA;AACD,KARD;;AAUA,WAAO+b,GAAP;AACA,GA1CD;;AA4CAvzB,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjB64B,UAAM,EAAE,UAAUH,KAAV,EAAiBI,EAAjB,EAAqB/D,MAArB,EAA6B3uB,QAA7B,EAAwC;AAE/C;AACA,aAAO,KAAK+K,MAAL,CAAa6S,kBAAb,EAAkCrkB,GAAlC,CAAuC,SAAvC,EAAkD,CAAlD,EAAsDylB,IAAtD,GAEN;AAFM,OAGLze,GAHK,GAGCoyB,OAHD,CAGU;AAAE/E,eAAO,EAAE8E;AAAX,OAHV,EAG2BJ,KAH3B,EAGkC3D,MAHlC,EAG0C3uB,QAH1C,CAAP;AAIA,KARgB;AASjB2yB,WAAO,EAAE,UAAUxW,IAAV,EAAgBmW,KAAhB,EAAuB3D,MAAvB,EAA+B3uB,QAA/B,EAA0C;AAClD,UAAI8W,KAAK,GAAG9X,MAAM,CAAC6C,aAAP,CAAsBsa,IAAtB,CAAZ;AAAA,UACCyW,MAAM,GAAG5zB,MAAM,CAACszB,KAAP,CAAcA,KAAd,EAAqB3D,MAArB,EAA6B3uB,QAA7B,CADV;AAAA,UAEC6yB,WAAW,GAAG,YAAW;AAExB;AACA,YAAI5B,IAAI,GAAGR,SAAS,CAAE,IAAF,EAAQzxB,MAAM,CAACpF,MAAP,CAAe,EAAf,EAAmBuiB,IAAnB,CAAR,EAAmCyW,MAAnC,CAApB,CAHwB,CAKxB;;AACA,YAAK9b,KAAK,IAAIuF,QAAQ,CAAC7c,GAAT,CAAc,IAAd,EAAoB,QAApB,CAAd,EAA+C;AAC9CyxB,cAAI,CAAC9T,IAAL,CAAW,IAAX;AACA;AACD,OAXF;;AAYC0V,iBAAW,CAACC,MAAZ,GAAqBD,WAArB;AAED,aAAO/b,KAAK,IAAI8b,MAAM,CAACpc,KAAP,KAAiB,KAA1B,GACN,KAAKzW,IAAL,CAAW8yB,WAAX,CADM,GAEN,KAAKrc,KAAL,CAAYoc,MAAM,CAACpc,KAAnB,EAA0Bqc,WAA1B,CAFD;AAGA,KA3BgB;AA4BjB1V,QAAI,EAAE,UAAUtiB,IAAV,EAAgBwiB,UAAhB,EAA4B4U,OAA5B,EAAsC;AAC3C,UAAIc,SAAS,GAAG,UAAU9V,KAAV,EAAkB;AACjC,YAAIE,IAAI,GAAGF,KAAK,CAACE,IAAjB;AACA,eAAOF,KAAK,CAACE,IAAb;AACAA,YAAI,CAAE8U,OAAF,CAAJ;AACA,OAJD;;AAMA,UAAK,OAAOp3B,IAAP,KAAgB,QAArB,EAAgC;AAC/Bo3B,eAAO,GAAG5U,UAAV;AACAA,kBAAU,GAAGxiB,IAAb;AACAA,YAAI,GAAGsG,SAAP;AACA;;AACD,UAAKkc,UAAU,IAAIxiB,IAAI,KAAK,KAA5B,EAAoC;AACnC,aAAK2b,KAAL,CAAY3b,IAAI,IAAI,IAApB,EAA0B,EAA1B;AACA;;AAED,aAAO,KAAKkF,IAAL,CAAW,YAAW;AAC5B,YAAIgd,OAAO,GAAG,IAAd;AAAA,YACC7H,KAAK,GAAGra,IAAI,IAAI,IAAR,IAAgBA,IAAI,GAAG,YADhC;AAAA,YAECm4B,MAAM,GAAGh0B,MAAM,CAACg0B,MAFjB;AAAA,YAGCp6B,IAAI,GAAGyjB,QAAQ,CAAC7c,GAAT,CAAc,IAAd,CAHR;;AAKA,YAAK0V,KAAL,EAAa;AACZ,cAAKtc,IAAI,CAAEsc,KAAF,CAAJ,IAAiBtc,IAAI,CAAEsc,KAAF,CAAJ,CAAciI,IAApC,EAA2C;AAC1C4V,qBAAS,CAAEn6B,IAAI,CAAEsc,KAAF,CAAN,CAAT;AACA;AACD,SAJD,MAIO;AACN,eAAMA,KAAN,IAAetc,IAAf,EAAsB;AACrB,gBAAKA,IAAI,CAAEsc,KAAF,CAAJ,IAAiBtc,IAAI,CAAEsc,KAAF,CAAJ,CAAciI,IAA/B,IAAuC2S,IAAI,CAACznB,IAAL,CAAW6M,KAAX,CAA5C,EAAiE;AAChE6d,uBAAS,CAAEn6B,IAAI,CAAEsc,KAAF,CAAN,CAAT;AACA;AACD;AACD;;AAED,aAAMA,KAAK,GAAG8d,MAAM,CAAC76B,MAArB,EAA6B+c,KAAK,EAAlC,GAAwC;AACvC,cAAK8d,MAAM,CAAE9d,KAAF,CAAN,CAAgBhc,IAAhB,KAAyB,IAAzB,KACF2B,IAAI,IAAI,IAAR,IAAgBm4B,MAAM,CAAE9d,KAAF,CAAN,CAAgBsB,KAAhB,KAA0B3b,IADxC,CAAL,EACsD;AAErDm4B,kBAAM,CAAE9d,KAAF,CAAN,CAAgB+b,IAAhB,CAAqB9T,IAArB,CAA2B8U,OAA3B;AACAlV,mBAAO,GAAG,KAAV;AACAiW,kBAAM,CAACvyB,MAAP,CAAeyU,KAAf,EAAsB,CAAtB;AACA;AACD,SA1B2B,CA4B5B;AACA;AACA;;;AACA,YAAK6H,OAAO,IAAI,CAACkV,OAAjB,EAA2B;AAC1BjzB,gBAAM,CAAC+d,OAAP,CAAgB,IAAhB,EAAsBliB,IAAtB;AACA;AACD,OAlCM,CAAP;AAmCA,KA/EgB;AAgFjBi4B,UAAM,EAAE,UAAUj4B,IAAV,EAAiB;AACxB,UAAKA,IAAI,KAAK,KAAd,EAAsB;AACrBA,YAAI,GAAGA,IAAI,IAAI,IAAf;AACA;;AACD,aAAO,KAAKkF,IAAL,CAAW,YAAW;AAC5B,YAAImV,KAAJ;AAAA,YACCtc,IAAI,GAAGyjB,QAAQ,CAAC7c,GAAT,CAAc,IAAd,CADR;AAAA,YAECgX,KAAK,GAAG5d,IAAI,CAAEiC,IAAI,GAAG,OAAT,CAFb;AAAA,YAGCoiB,KAAK,GAAGrkB,IAAI,CAAEiC,IAAI,GAAG,YAAT,CAHb;AAAA,YAICm4B,MAAM,GAAGh0B,MAAM,CAACg0B,MAJjB;AAAA,YAKC76B,MAAM,GAAGqe,KAAK,GAAGA,KAAK,CAACre,MAAT,GAAkB,CALjC,CAD4B,CAQ5B;;AACAS,YAAI,CAACk6B,MAAL,GAAc,IAAd,CAT4B,CAW5B;;AACA9zB,cAAM,CAACwX,KAAP,CAAc,IAAd,EAAoB3b,IAApB,EAA0B,EAA1B;;AAEA,YAAKoiB,KAAK,IAAIA,KAAK,CAACE,IAApB,EAA2B;AAC1BF,eAAK,CAACE,IAAN,CAAW/iB,IAAX,CAAiB,IAAjB,EAAuB,IAAvB;AACA,SAhB2B,CAkB5B;;;AACA,aAAM8a,KAAK,GAAG8d,MAAM,CAAC76B,MAArB,EAA6B+c,KAAK,EAAlC,GAAwC;AACvC,cAAK8d,MAAM,CAAE9d,KAAF,CAAN,CAAgBhc,IAAhB,KAAyB,IAAzB,IAAiC85B,MAAM,CAAE9d,KAAF,CAAN,CAAgBsB,KAAhB,KAA0B3b,IAAhE,EAAuE;AACtEm4B,kBAAM,CAAE9d,KAAF,CAAN,CAAgB+b,IAAhB,CAAqB9T,IAArB,CAA2B,IAA3B;AACA6V,kBAAM,CAACvyB,MAAP,CAAeyU,KAAf,EAAsB,CAAtB;AACA;AACD,SAxB2B,CA0B5B;;;AACA,aAAMA,KAAK,GAAG,CAAd,EAAiBA,KAAK,GAAG/c,MAAzB,EAAiC+c,KAAK,EAAtC,EAA2C;AAC1C,cAAKsB,KAAK,CAAEtB,KAAF,CAAL,IAAkBsB,KAAK,CAAEtB,KAAF,CAAL,CAAe4d,MAAtC,EAA+C;AAC9Ctc,iBAAK,CAAEtB,KAAF,CAAL,CAAe4d,MAAf,CAAsB14B,IAAtB,CAA4B,IAA5B;AACA;AACD,SA/B2B,CAiC5B;;;AACA,eAAOxB,IAAI,CAACk6B,MAAZ;AACA,OAnCM,CAAP;AAoCA;AAxHgB,GAAlB;AA2HA9zB,QAAM,CAACe,IAAP,CAAa,CAAE,QAAF,EAAY,MAAZ,EAAoB,MAApB,CAAb,EAA2C,UAAU7H,CAAV,EAAayI,IAAb,EAAoB;AAC9D,QAAIsyB,KAAK,GAAGj0B,MAAM,CAAC3F,EAAP,CAAWsH,IAAX,CAAZ;;AACA3B,UAAM,CAAC3F,EAAP,CAAWsH,IAAX,IAAoB,UAAU2xB,KAAV,EAAiB3D,MAAjB,EAAyB3uB,QAAzB,EAAoC;AACvD,aAAOsyB,KAAK,IAAI,IAAT,IAAiB,OAAOA,KAAP,KAAiB,SAAlC,GACNW,KAAK,CAACz2B,KAAN,CAAa,IAAb,EAAmBnC,SAAnB,CADM,GAEN,KAAKs4B,OAAL,CAActC,KAAK,CAAE1vB,IAAF,EAAQ,IAAR,CAAnB,EAAmC2xB,KAAnC,EAA0C3D,MAA1C,EAAkD3uB,QAAlD,CAFD;AAGA,KAJD;AAKA,GAPD,EAjsOiF,CA0sOjF;;AACAhB,QAAM,CAACe,IAAP,CAAa;AACZmzB,aAAS,EAAE7C,KAAK,CAAE,MAAF,CADJ;AAEZ8C,WAAO,EAAE9C,KAAK,CAAE,MAAF,CAFF;AAGZ+C,eAAW,EAAE/C,KAAK,CAAE,QAAF,CAHN;AAIZgD,UAAM,EAAE;AAAEzF,aAAO,EAAE;AAAX,KAJI;AAKZ0F,WAAO,EAAE;AAAE1F,aAAO,EAAE;AAAX,KALG;AAMZ2F,cAAU,EAAE;AAAE3F,aAAO,EAAE;AAAX;AANA,GAAb,EAOG,UAAUjtB,IAAV,EAAgBmkB,KAAhB,EAAwB;AAC1B9lB,UAAM,CAAC3F,EAAP,CAAWsH,IAAX,IAAoB,UAAU2xB,KAAV,EAAiB3D,MAAjB,EAAyB3uB,QAAzB,EAAoC;AACvD,aAAO,KAAK2yB,OAAL,CAAc7N,KAAd,EAAqBwN,KAArB,EAA4B3D,MAA5B,EAAoC3uB,QAApC,CAAP;AACA,KAFD;AAGA,GAXD;AAaAhB,QAAM,CAACg0B,MAAP,GAAgB,EAAhB;;AACAh0B,QAAM,CAACmwB,EAAP,CAAUgB,IAAV,GAAiB,YAAW;AAC3B,QAAIgC,KAAJ;AAAA,QACCj6B,CAAC,GAAG,CADL;AAAA,QAEC86B,MAAM,GAAGh0B,MAAM,CAACg0B,MAFjB;AAIArD,SAAK,GAAG1rB,IAAI,CAACkhB,GAAL,EAAR;;AAEA,WAAQjtB,CAAC,GAAG86B,MAAM,CAAC76B,MAAnB,EAA2BD,CAAC,EAA5B,EAAiC;AAChCi6B,WAAK,GAAGa,MAAM,CAAE96B,CAAF,CAAd,CADgC,CAGhC;;AACA,UAAK,CAACi6B,KAAK,EAAN,IAAYa,MAAM,CAAE96B,CAAF,CAAN,KAAgBi6B,KAAjC,EAAyC;AACxCa,cAAM,CAACvyB,MAAP,CAAevI,CAAC,EAAhB,EAAoB,CAApB;AACA;AACD;;AAED,QAAK,CAAC86B,MAAM,CAAC76B,MAAb,EAAsB;AACrB6G,YAAM,CAACmwB,EAAP,CAAUhS,IAAV;AACA;;AACDwS,SAAK,GAAGxuB,SAAR;AACA,GApBD;;AAsBAnC,QAAM,CAACmwB,EAAP,CAAUgD,KAAV,GAAkB,UAAUA,KAAV,EAAkB;AACnCnzB,UAAM,CAACg0B,MAAP,CAAc51B,IAAd,CAAoB+0B,KAApB;AACAnzB,UAAM,CAACmwB,EAAP,CAAU7gB,KAAV;AACA,GAHD;;AAKAtP,QAAM,CAACmwB,EAAP,CAAUe,QAAV,GAAqB,EAArB;;AACAlxB,QAAM,CAACmwB,EAAP,CAAU7gB,KAAV,GAAkB,YAAW;AAC5B,QAAKshB,UAAL,EAAkB;AACjB;AACA;;AAEDA,cAAU,GAAG,IAAb;AACAG,YAAQ;AACR,GAPD;;AASA/wB,QAAM,CAACmwB,EAAP,CAAUhS,IAAV,GAAiB,YAAW;AAC3ByS,cAAU,GAAG,IAAb;AACA,GAFD;;AAIA5wB,QAAM,CAACmwB,EAAP,CAAUqD,MAAV,GAAmB;AAClBgB,QAAI,EAAE,GADY;AAElBC,QAAI,EAAE,GAFY;AAIlB;AACA5T,YAAQ,EAAE;AALQ,GAAnB,CAlwOiF,CA2wOjF;AACA;;AACA7gB,QAAM,CAAC3F,EAAP,CAAUq6B,KAAV,GAAkB,UAAUC,IAAV,EAAgB94B,IAAhB,EAAuB;AACxC84B,QAAI,GAAG30B,MAAM,CAACmwB,EAAP,GAAYnwB,MAAM,CAACmwB,EAAP,CAAUqD,MAAV,CAAkBmB,IAAlB,KAA4BA,IAAxC,GAA+CA,IAAtD;AACA94B,QAAI,GAAGA,IAAI,IAAI,IAAf;AAEA,WAAO,KAAK2b,KAAL,CAAY3b,IAAZ,EAAkB,UAAUsM,IAAV,EAAgB8V,KAAhB,EAAwB;AAChD,UAAI2W,OAAO,GAAG15B,MAAM,CAACkC,UAAP,CAAmB+K,IAAnB,EAAyBwsB,IAAzB,CAAd;;AACA1W,WAAK,CAACE,IAAN,GAAa,YAAW;AACvBjjB,cAAM,CAACiC,YAAP,CAAqBy3B,OAArB;AACA,OAFD;AAGA,KALM,CAAP;AAMA,GAVD;;AAaA,GAAE,YAAW;AACZ,QAAItoB,KAAK,GAAG7T,QAAQ,CAACgH,aAAT,CAAwB,OAAxB,CAAZ;AAAA,QACC8E,MAAM,GAAG9L,QAAQ,CAACgH,aAAT,CAAwB,QAAxB,CADV;AAAA,QAEC8zB,GAAG,GAAGhvB,MAAM,CAAC3E,WAAP,CAAoBnH,QAAQ,CAACgH,aAAT,CAAwB,QAAxB,CAApB,CAFP;AAIA6M,SAAK,CAACzQ,IAAN,GAAa,UAAb,CALY,CAOZ;AACA;;AACA+C,WAAO,CAACi2B,OAAR,GAAkBvoB,KAAK,CAAC3I,KAAN,KAAgB,EAAlC,CATY,CAWZ;AACA;;AACA/E,WAAO,CAACk2B,WAAR,GAAsBvB,GAAG,CAAC5iB,QAA1B,CAbY,CAeZ;AACA;;AACArE,SAAK,GAAG7T,QAAQ,CAACgH,aAAT,CAAwB,OAAxB,CAAR;AACA6M,SAAK,CAAC3I,KAAN,GAAc,GAAd;AACA2I,SAAK,CAACzQ,IAAN,GAAa,OAAb;AACA+C,WAAO,CAACm2B,UAAR,GAAqBzoB,KAAK,CAAC3I,KAAN,KAAgB,GAArC;AACA,GArBD;;AAwBA,MAAIqxB,QAAJ;AAAA,MACCvqB,UAAU,GAAGzK,MAAM,CAACqN,IAAP,CAAY5C,UAD1B;AAGAzK,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjB2S,QAAI,EAAE,UAAU5L,IAAV,EAAgBgC,KAAhB,EAAwB;AAC7B,aAAOoY,MAAM,CAAE,IAAF,EAAQ/b,MAAM,CAACuN,IAAf,EAAqB5L,IAArB,EAA2BgC,KAA3B,EAAkCtI,SAAS,CAAClC,MAAV,GAAmB,CAArD,CAAb;AACA,KAHgB;AAKjB87B,cAAU,EAAE,UAAUtzB,IAAV,EAAiB;AAC5B,aAAO,KAAKZ,IAAL,CAAW,YAAW;AAC5Bf,cAAM,CAACi1B,UAAP,CAAmB,IAAnB,EAAyBtzB,IAAzB;AACA,OAFM,CAAP;AAGA;AATgB,GAAlB;AAYA3B,QAAM,CAACpF,MAAP,CAAe;AACd2S,QAAI,EAAE,UAAUrT,IAAV,EAAgByH,IAAhB,EAAsBgC,KAAtB,EAA8B;AACnC,UAAI/C,GAAJ;AAAA,UAASqd,KAAT;AAAA,UACCiX,KAAK,GAAGh7B,IAAI,CAAC6E,QADd,CADmC,CAInC;;AACA,UAAKm2B,KAAK,KAAK,CAAV,IAAeA,KAAK,KAAK,CAAzB,IAA8BA,KAAK,KAAK,CAA7C,EAAiD;AAChD;AACA,OAPkC,CASnC;;;AACA,UAAK,OAAOh7B,IAAI,CAACqP,YAAZ,KAA6B,WAAlC,EAAgD;AAC/C,eAAOvJ,MAAM,CAACmd,IAAP,CAAajjB,IAAb,EAAmByH,IAAnB,EAAyBgC,KAAzB,CAAP;AACA,OAZkC,CAcnC;AACA;;;AACA,UAAKuxB,KAAK,KAAK,CAAV,IAAe,CAACl1B,MAAM,CAACuU,QAAP,CAAiBra,IAAjB,CAArB,EAA+C;AAC9C+jB,aAAK,GAAGje,MAAM,CAACm1B,SAAP,CAAkBxzB,IAAI,CAACqC,WAAL,EAAlB,MACLhE,MAAM,CAACqN,IAAP,CAAY3E,KAAZ,CAAkB0sB,IAAlB,CAAuB/rB,IAAvB,CAA6B1H,IAA7B,IAAsCqzB,QAAtC,GAAiD7yB,SAD5C,CAAR;AAEA;;AAED,UAAKwB,KAAK,KAAKxB,SAAf,EAA2B;AAC1B,YAAKwB,KAAK,KAAK,IAAf,EAAsB;AACrB3D,gBAAM,CAACi1B,UAAP,CAAmB/6B,IAAnB,EAAyByH,IAAzB;AACA;AACA;;AAED,YAAKsc,KAAK,IAAI,SAASA,KAAlB,IACJ,CAAErd,GAAG,GAAGqd,KAAK,CAACf,GAAN,CAAWhjB,IAAX,EAAiByJ,KAAjB,EAAwBhC,IAAxB,CAAR,MAA6CQ,SAD9C,EAC0D;AACzD,iBAAOvB,GAAP;AACA;;AAED1G,YAAI,CAACsP,YAAL,CAAmB7H,IAAnB,EAAyBgC,KAAK,GAAG,EAAjC;AACA,eAAOA,KAAP;AACA;;AAED,UAAKsa,KAAK,IAAI,SAASA,KAAlB,IAA2B,CAAErd,GAAG,GAAGqd,KAAK,CAACzd,GAAN,CAAWtG,IAAX,EAAiByH,IAAjB,CAAR,MAAsC,IAAtE,EAA6E;AAC5E,eAAOf,GAAP;AACA;;AAEDA,SAAG,GAAGZ,MAAM,CAACiM,IAAP,CAAYsB,IAAZ,CAAkBrT,IAAlB,EAAwByH,IAAxB,CAAN,CAxCmC,CA0CnC;;AACA,aAAOf,GAAG,IAAI,IAAP,GAAcuB,SAAd,GAA0BvB,GAAjC;AACA,KA7Ca;AA+Cdu0B,aAAS,EAAE;AACVt5B,UAAI,EAAE;AACLqhB,WAAG,EAAE,UAAUhjB,IAAV,EAAgByJ,KAAhB,EAAwB;AAC5B,cAAK,CAAC/E,OAAO,CAACm2B,UAAT,IAAuBpxB,KAAK,KAAK,OAAjC,IACJ2F,QAAQ,CAAEpP,IAAF,EAAQ,OAAR,CADT,EAC6B;AAC5B,gBAAIsT,GAAG,GAAGtT,IAAI,CAACyJ,KAAf;AACAzJ,gBAAI,CAACsP,YAAL,CAAmB,MAAnB,EAA2B7F,KAA3B;;AACA,gBAAK6J,GAAL,EAAW;AACVtT,kBAAI,CAACyJ,KAAL,GAAa6J,GAAb;AACA;;AACD,mBAAO7J,KAAP;AACA;AACD;AAXI;AADI,KA/CG;AA+DdsxB,cAAU,EAAE,UAAU/6B,IAAV,EAAgByJ,KAAhB,EAAwB;AACnC,UAAIhC,IAAJ;AAAA,UACCzI,CAAC,GAAG,CADL;AAAA,UAGC;AACA;AACAm8B,eAAS,GAAG1xB,KAAK,IAAIA,KAAK,CAAC+E,KAAN,CAAaqO,aAAb,CALtB;;AAOA,UAAKse,SAAS,IAAIn7B,IAAI,CAAC6E,QAAL,KAAkB,CAApC,EAAwC;AACvC,eAAU4C,IAAI,GAAG0zB,SAAS,CAAEn8B,CAAC,EAAH,CAA1B,EAAsC;AACrCgB,cAAI,CAAC4P,eAAL,CAAsBnI,IAAtB;AACA;AACD;AACD;AA5Ea,GAAf,EAj0OiF,CAg5OjF;;AACAqzB,UAAQ,GAAG;AACV9X,OAAG,EAAE,UAAUhjB,IAAV,EAAgByJ,KAAhB,EAAuBhC,IAAvB,EAA8B;AAClC,UAAKgC,KAAK,KAAK,KAAf,EAAuB;AAEtB;AACA3D,cAAM,CAACi1B,UAAP,CAAmB/6B,IAAnB,EAAyByH,IAAzB;AACA,OAJD,MAIO;AACNzH,YAAI,CAACsP,YAAL,CAAmB7H,IAAnB,EAAyBA,IAAzB;AACA;;AACD,aAAOA,IAAP;AACA;AAVS,GAAX;AAaA3B,QAAM,CAACe,IAAP,CAAaf,MAAM,CAACqN,IAAP,CAAY3E,KAAZ,CAAkB0sB,IAAlB,CAAuB3W,MAAvB,CAA8B/V,KAA9B,CAAqC,MAArC,CAAb,EAA4D,UAAUxP,CAAV,EAAayI,IAAb,EAAoB;AAC/E,QAAI2zB,MAAM,GAAG7qB,UAAU,CAAE9I,IAAF,CAAV,IAAsB3B,MAAM,CAACiM,IAAP,CAAYsB,IAA/C;;AAEA9C,cAAU,CAAE9I,IAAF,CAAV,GAAqB,UAAUzH,IAAV,EAAgByH,IAAhB,EAAsByC,KAAtB,EAA8B;AAClD,UAAIxD,GAAJ;AAAA,UAASrD,MAAT;AAAA,UACCg4B,aAAa,GAAG5zB,IAAI,CAACqC,WAAL,EADjB;;AAGA,UAAK,CAACI,KAAN,EAAc;AAEb;AACA7G,cAAM,GAAGkN,UAAU,CAAE8qB,aAAF,CAAnB;AACA9qB,kBAAU,CAAE8qB,aAAF,CAAV,GAA8B30B,GAA9B;AACAA,WAAG,GAAG00B,MAAM,CAAEp7B,IAAF,EAAQyH,IAAR,EAAcyC,KAAd,CAAN,IAA+B,IAA/B,GACLmxB,aADK,GAEL,IAFD;AAGA9qB,kBAAU,CAAE8qB,aAAF,CAAV,GAA8Bh4B,MAA9B;AACA;;AACD,aAAOqD,GAAP;AACA,KAfD;AAgBA,GAnBD;AAwBA,MAAI40B,UAAU,GAAG,qCAAjB;AAAA,MACCC,UAAU,GAAG,eADd;AAGAz1B,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjBuiB,QAAI,EAAE,UAAUxb,IAAV,EAAgBgC,KAAhB,EAAwB;AAC7B,aAAOoY,MAAM,CAAE,IAAF,EAAQ/b,MAAM,CAACmd,IAAf,EAAqBxb,IAArB,EAA2BgC,KAA3B,EAAkCtI,SAAS,CAAClC,MAAV,GAAmB,CAArD,CAAb;AACA,KAHgB;AAKjBu8B,cAAU,EAAE,UAAU/zB,IAAV,EAAiB;AAC5B,aAAO,KAAKZ,IAAL,CAAW,YAAW;AAC5B,eAAO,KAAMf,MAAM,CAAC21B,OAAP,CAAgBh0B,IAAhB,KAA0BA,IAAhC,CAAP;AACA,OAFM,CAAP;AAGA;AATgB,GAAlB;AAYA3B,QAAM,CAACpF,MAAP,CAAe;AACduiB,QAAI,EAAE,UAAUjjB,IAAV,EAAgByH,IAAhB,EAAsBgC,KAAtB,EAA8B;AACnC,UAAI/C,GAAJ;AAAA,UAASqd,KAAT;AAAA,UACCiX,KAAK,GAAGh7B,IAAI,CAAC6E,QADd,CADmC,CAInC;;AACA,UAAKm2B,KAAK,KAAK,CAAV,IAAeA,KAAK,KAAK,CAAzB,IAA8BA,KAAK,KAAK,CAA7C,EAAiD;AAChD;AACA;;AAED,UAAKA,KAAK,KAAK,CAAV,IAAe,CAACl1B,MAAM,CAACuU,QAAP,CAAiBra,IAAjB,CAArB,EAA+C;AAE9C;AACAyH,YAAI,GAAG3B,MAAM,CAAC21B,OAAP,CAAgBh0B,IAAhB,KAA0BA,IAAjC;AACAsc,aAAK,GAAGje,MAAM,CAAC4vB,SAAP,CAAkBjuB,IAAlB,CAAR;AACA;;AAED,UAAKgC,KAAK,KAAKxB,SAAf,EAA2B;AAC1B,YAAK8b,KAAK,IAAI,SAASA,KAAlB,IACJ,CAAErd,GAAG,GAAGqd,KAAK,CAACf,GAAN,CAAWhjB,IAAX,EAAiByJ,KAAjB,EAAwBhC,IAAxB,CAAR,MAA6CQ,SAD9C,EAC0D;AACzD,iBAAOvB,GAAP;AACA;;AAED,eAAS1G,IAAI,CAAEyH,IAAF,CAAJ,GAAegC,KAAxB;AACA;;AAED,UAAKsa,KAAK,IAAI,SAASA,KAAlB,IAA2B,CAAErd,GAAG,GAAGqd,KAAK,CAACzd,GAAN,CAAWtG,IAAX,EAAiByH,IAAjB,CAAR,MAAsC,IAAtE,EAA6E;AAC5E,eAAOf,GAAP;AACA;;AAED,aAAO1G,IAAI,CAAEyH,IAAF,CAAX;AACA,KA/Ba;AAiCdiuB,aAAS,EAAE;AACVnf,cAAQ,EAAE;AACTjQ,WAAG,EAAE,UAAUtG,IAAV,EAAiB;AAErB;AACA;AACA;AACA;AACA;AACA,cAAI07B,QAAQ,GAAG51B,MAAM,CAACiM,IAAP,CAAYsB,IAAZ,CAAkBrT,IAAlB,EAAwB,UAAxB,CAAf;;AAEA,cAAK07B,QAAL,EAAgB;AACf,mBAAOt7B,QAAQ,CAAEs7B,QAAF,EAAY,EAAZ,CAAf;AACA;;AAED,cACCJ,UAAU,CAACnsB,IAAX,CAAiBnP,IAAI,CAACoP,QAAtB,KACAmsB,UAAU,CAACpsB,IAAX,CAAiBnP,IAAI,CAACoP,QAAtB,KACApP,IAAI,CAACsW,IAHN,EAIE;AACD,mBAAO,CAAP;AACA;;AAED,iBAAO,CAAC,CAAR;AACA;AAvBQ;AADA,KAjCG;AA6DdmlB,WAAO,EAAE;AACR,aAAO,SADC;AAER,eAAS;AAFD;AA7DK,GAAf,EAr8OiF,CAwgPjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAK,CAAC/2B,OAAO,CAACk2B,WAAd,EAA4B;AAC3B90B,UAAM,CAAC4vB,SAAP,CAAiBjf,QAAjB,GAA4B;AAC3BnQ,SAAG,EAAE,UAAUtG,IAAV,EAAiB;AAErB;AAEA,YAAIqV,MAAM,GAAGrV,IAAI,CAAC2F,UAAlB;;AACA,YAAK0P,MAAM,IAAIA,MAAM,CAAC1P,UAAtB,EAAmC;AAClC0P,gBAAM,CAAC1P,UAAP,CAAkB+Q,aAAlB;AACA;;AACD,eAAO,IAAP;AACA,OAV0B;AAW3BsM,SAAG,EAAE,UAAUhjB,IAAV,EAAiB;AAErB;AAEA,YAAIqV,MAAM,GAAGrV,IAAI,CAAC2F,UAAlB;;AACA,YAAK0P,MAAL,EAAc;AACbA,gBAAM,CAACqB,aAAP;;AAEA,cAAKrB,MAAM,CAAC1P,UAAZ,EAAyB;AACxB0P,kBAAM,CAAC1P,UAAP,CAAkB+Q,aAAlB;AACA;AACD;AACD;AAvB0B,KAA5B;AAyBA;;AAED5Q,QAAM,CAACe,IAAP,CAAa,CACZ,UADY,EAEZ,UAFY,EAGZ,WAHY,EAIZ,aAJY,EAKZ,aALY,EAMZ,SANY,EAOZ,SAPY,EAQZ,QARY,EASZ,aATY,EAUZ,iBAVY,CAAb,EAWG,YAAW;AACbf,UAAM,CAAC21B,OAAP,CAAgB,KAAK3xB,WAAL,EAAhB,IAAuC,IAAvC;AACA,GAbD,EA5iPiF,CA8jPhF;AACA;;AACA,WAAS6xB,gBAAT,CAA2BlyB,KAA3B,EAAmC;AAClC,QAAI2N,MAAM,GAAG3N,KAAK,CAAC+E,KAAN,CAAaqO,aAAb,KAAgC,EAA7C;AACA,WAAOzF,MAAM,CAAC5H,IAAP,CAAa,GAAb,CAAP;AACA;;AAGF,WAASosB,QAAT,CAAmB57B,IAAnB,EAA0B;AACzB,WAAOA,IAAI,CAACqP,YAAL,IAAqBrP,IAAI,CAACqP,YAAL,CAAmB,OAAnB,CAArB,IAAqD,EAA5D;AACA;;AAED,WAASwsB,cAAT,CAAyBpyB,KAAzB,EAAiC;AAChC,QAAK/K,KAAK,CAACsJ,OAAN,CAAeyB,KAAf,CAAL,EAA8B;AAC7B,aAAOA,KAAP;AACA;;AACD,QAAK,OAAOA,KAAP,KAAiB,QAAtB,EAAiC;AAChC,aAAOA,KAAK,CAAC+E,KAAN,CAAaqO,aAAb,KAAgC,EAAvC;AACA;;AACD,WAAO,EAAP;AACA;;AAED/W,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjBo7B,YAAQ,EAAE,UAAUryB,KAAV,EAAkB;AAC3B,UAAIsyB,OAAJ;AAAA,UAAa/7B,IAAb;AAAA,UAAmByQ,GAAnB;AAAA,UAAwBurB,QAAxB;AAAA,UAAkCC,KAAlC;AAAA,UAAyC70B,CAAzC;AAAA,UAA4C80B,UAA5C;AAAA,UACCl9B,CAAC,GAAG,CADL;;AAGA,UAAK2F,UAAU,CAAE8E,KAAF,CAAf,EAA2B;AAC1B,eAAO,KAAK5C,IAAL,CAAW,UAAUO,CAAV,EAAc;AAC/BtB,gBAAM,CAAE,IAAF,CAAN,CAAeg2B,QAAf,CAAyBryB,KAAK,CAACvI,IAAN,CAAY,IAAZ,EAAkBkG,CAAlB,EAAqBw0B,QAAQ,CAAE,IAAF,CAA7B,CAAzB;AACA,SAFM,CAAP;AAGA;;AAEDG,aAAO,GAAGF,cAAc,CAAEpyB,KAAF,CAAxB;;AAEA,UAAKsyB,OAAO,CAAC98B,MAAb,EAAsB;AACrB,eAAUe,IAAI,GAAG,KAAMhB,CAAC,EAAP,CAAjB,EAAiC;AAChCg9B,kBAAQ,GAAGJ,QAAQ,CAAE57B,IAAF,CAAnB;AACAyQ,aAAG,GAAGzQ,IAAI,CAAC6E,QAAL,KAAkB,CAAlB,IAAyB,MAAM82B,gBAAgB,CAAEK,QAAF,CAAtB,GAAqC,GAApE;;AAEA,cAAKvrB,GAAL,EAAW;AACVrJ,aAAC,GAAG,CAAJ;;AACA,mBAAU60B,KAAK,GAAGF,OAAO,CAAE30B,CAAC,EAAH,CAAzB,EAAqC;AACpC,kBAAKqJ,GAAG,CAACtM,OAAJ,CAAa,MAAM83B,KAAN,GAAc,GAA3B,IAAmC,CAAxC,EAA4C;AAC3CxrB,mBAAG,IAAIwrB,KAAK,GAAG,GAAf;AACA;AACD,aANS,CAQV;;;AACAC,sBAAU,GAAGP,gBAAgB,CAAElrB,GAAF,CAA7B;;AACA,gBAAKurB,QAAQ,KAAKE,UAAlB,EAA+B;AAC9Bl8B,kBAAI,CAACsP,YAAL,CAAmB,OAAnB,EAA4B4sB,UAA5B;AACA;AACD;AACD;AACD;;AAED,aAAO,IAAP;AACA,KApCgB;AAsCjBC,eAAW,EAAE,UAAU1yB,KAAV,EAAkB;AAC9B,UAAIsyB,OAAJ;AAAA,UAAa/7B,IAAb;AAAA,UAAmByQ,GAAnB;AAAA,UAAwBurB,QAAxB;AAAA,UAAkCC,KAAlC;AAAA,UAAyC70B,CAAzC;AAAA,UAA4C80B,UAA5C;AAAA,UACCl9B,CAAC,GAAG,CADL;;AAGA,UAAK2F,UAAU,CAAE8E,KAAF,CAAf,EAA2B;AAC1B,eAAO,KAAK5C,IAAL,CAAW,UAAUO,CAAV,EAAc;AAC/BtB,gBAAM,CAAE,IAAF,CAAN,CAAeq2B,WAAf,CAA4B1yB,KAAK,CAACvI,IAAN,CAAY,IAAZ,EAAkBkG,CAAlB,EAAqBw0B,QAAQ,CAAE,IAAF,CAA7B,CAA5B;AACA,SAFM,CAAP;AAGA;;AAED,UAAK,CAACz6B,SAAS,CAAClC,MAAhB,EAAyB;AACxB,eAAO,KAAKoU,IAAL,CAAW,OAAX,EAAoB,EAApB,CAAP;AACA;;AAED0oB,aAAO,GAAGF,cAAc,CAAEpyB,KAAF,CAAxB;;AAEA,UAAKsyB,OAAO,CAAC98B,MAAb,EAAsB;AACrB,eAAUe,IAAI,GAAG,KAAMhB,CAAC,EAAP,CAAjB,EAAiC;AAChCg9B,kBAAQ,GAAGJ,QAAQ,CAAE57B,IAAF,CAAnB,CADgC,CAGhC;;AACAyQ,aAAG,GAAGzQ,IAAI,CAAC6E,QAAL,KAAkB,CAAlB,IAAyB,MAAM82B,gBAAgB,CAAEK,QAAF,CAAtB,GAAqC,GAApE;;AAEA,cAAKvrB,GAAL,EAAW;AACVrJ,aAAC,GAAG,CAAJ;;AACA,mBAAU60B,KAAK,GAAGF,OAAO,CAAE30B,CAAC,EAAH,CAAzB,EAAqC;AAEpC;AACA,qBAAQqJ,GAAG,CAACtM,OAAJ,CAAa,MAAM83B,KAAN,GAAc,GAA3B,IAAmC,CAAC,CAA5C,EAAgD;AAC/CxrB,mBAAG,GAAGA,GAAG,CAACrI,OAAJ,CAAa,MAAM6zB,KAAN,GAAc,GAA3B,EAAgC,GAAhC,CAAN;AACA;AACD,aARS,CAUV;;;AACAC,sBAAU,GAAGP,gBAAgB,CAAElrB,GAAF,CAA7B;;AACA,gBAAKurB,QAAQ,KAAKE,UAAlB,EAA+B;AAC9Bl8B,kBAAI,CAACsP,YAAL,CAAmB,OAAnB,EAA4B4sB,UAA5B;AACA;AACD;AACD;AACD;;AAED,aAAO,IAAP;AACA,KAjFgB;AAmFjBE,eAAW,EAAE,UAAU3yB,KAAV,EAAiB4yB,QAAjB,EAA4B;AACxC,UAAI16B,IAAI,GAAG,OAAO8H,KAAlB;AAAA,UACC6yB,YAAY,GAAG36B,IAAI,KAAK,QAAT,IAAqBjD,KAAK,CAACsJ,OAAN,CAAeyB,KAAf,CADrC;;AAGA,UAAK,OAAO4yB,QAAP,KAAoB,SAApB,IAAiCC,YAAtC,EAAqD;AACpD,eAAOD,QAAQ,GAAG,KAAKP,QAAL,CAAeryB,KAAf,CAAH,GAA4B,KAAK0yB,WAAL,CAAkB1yB,KAAlB,CAA3C;AACA;;AAED,UAAK9E,UAAU,CAAE8E,KAAF,CAAf,EAA2B;AAC1B,eAAO,KAAK5C,IAAL,CAAW,UAAU7H,CAAV,EAAc;AAC/B8G,gBAAM,CAAE,IAAF,CAAN,CAAes2B,WAAf,CACC3yB,KAAK,CAACvI,IAAN,CAAY,IAAZ,EAAkBlC,CAAlB,EAAqB48B,QAAQ,CAAE,IAAF,CAA7B,EAAuCS,QAAvC,CADD,EAECA,QAFD;AAIA,SALM,CAAP;AAMA;;AAED,aAAO,KAAKx1B,IAAL,CAAW,YAAW;AAC5B,YAAI4K,SAAJ,EAAezS,CAAf,EAAkBkc,IAAlB,EAAwBqhB,UAAxB;;AAEA,YAAKD,YAAL,EAAoB;AAEnB;AACAt9B,WAAC,GAAG,CAAJ;AACAkc,cAAI,GAAGpV,MAAM,CAAE,IAAF,CAAb;AACAy2B,oBAAU,GAAGV,cAAc,CAAEpyB,KAAF,CAA3B;;AAEA,iBAAUgI,SAAS,GAAG8qB,UAAU,CAAEv9B,CAAC,EAAH,CAAhC,EAA4C;AAE3C;AACA,gBAAKkc,IAAI,CAACshB,QAAL,CAAe/qB,SAAf,CAAL,EAAkC;AACjCyJ,kBAAI,CAACihB,WAAL,CAAkB1qB,SAAlB;AACA,aAFD,MAEO;AACNyJ,kBAAI,CAAC4gB,QAAL,CAAerqB,SAAf;AACA;AACD,WAfkB,CAiBpB;;AACC,SAlBD,MAkBO,IAAKhI,KAAK,KAAKxB,SAAV,IAAuBtG,IAAI,KAAK,SAArC,EAAiD;AACvD8P,mBAAS,GAAGmqB,QAAQ,CAAE,IAAF,CAApB;;AACA,cAAKnqB,SAAL,EAAiB;AAEhB;AACA0R,oBAAQ,CAACH,GAAT,CAAc,IAAd,EAAoB,eAApB,EAAqCvR,SAArC;AACA,WANsD,CAQvD;AACA;AACA;AACA;;;AACA,cAAK,KAAKnC,YAAV,EAAyB;AACxB,iBAAKA,YAAL,CAAmB,OAAnB,EACCmC,SAAS,IAAIhI,KAAK,KAAK,KAAvB,GACA,EADA,GAEA0Z,QAAQ,CAAC7c,GAAT,CAAc,IAAd,EAAoB,eAApB,KAAyC,EAH1C;AAKA;AACD;AACD,OAzCM,CAAP;AA0CA,KA9IgB;AAgJjBk2B,YAAQ,EAAE,UAAUz2B,QAAV,EAAqB;AAC9B,UAAI0L,SAAJ;AAAA,UAAezR,IAAf;AAAA,UACChB,CAAC,GAAG,CADL;AAGAyS,eAAS,GAAG,MAAM1L,QAAN,GAAiB,GAA7B;;AACA,aAAU/F,IAAI,GAAG,KAAMhB,CAAC,EAAP,CAAjB,EAAiC;AAChC,YAAKgB,IAAI,CAAC6E,QAAL,KAAkB,CAAlB,IACJ,CAAE,MAAM82B,gBAAgB,CAAEC,QAAQ,CAAE57B,IAAF,CAAV,CAAtB,GAA6C,GAA/C,EAAqDmE,OAArD,CAA8DsN,SAA9D,IAA4E,CAAC,CAD9E,EACkF;AAChF,iBAAO,IAAP;AACD;AACD;;AAED,aAAO,KAAP;AACA;AA7JgB,GAAlB;AAmKA,MAAIgrB,OAAO,GAAG,KAAd;AAEA32B,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjB4S,OAAG,EAAE,UAAU7J,KAAV,EAAkB;AACtB,UAAIsa,KAAJ;AAAA,UAAWrd,GAAX;AAAA,UAAgBwoB,eAAhB;AAAA,UACClvB,IAAI,GAAG,KAAM,CAAN,CADR;;AAGA,UAAK,CAACmB,SAAS,CAAClC,MAAhB,EAAyB;AACxB,YAAKe,IAAL,EAAY;AACX+jB,eAAK,GAAGje,MAAM,CAAC42B,QAAP,CAAiB18B,IAAI,CAAC2B,IAAtB,KACPmE,MAAM,CAAC42B,QAAP,CAAiB18B,IAAI,CAACoP,QAAL,CAActF,WAAd,EAAjB,CADD;;AAGA,cAAKia,KAAK,IACT,SAASA,KADL,IAEJ,CAAErd,GAAG,GAAGqd,KAAK,CAACzd,GAAN,CAAWtG,IAAX,EAAiB,OAAjB,CAAR,MAAyCiI,SAF1C,EAGE;AACD,mBAAOvB,GAAP;AACA;;AAEDA,aAAG,GAAG1G,IAAI,CAACyJ,KAAX,CAXW,CAaX;;AACA,cAAK,OAAO/C,GAAP,KAAe,QAApB,EAA+B;AAC9B,mBAAOA,GAAG,CAAC0B,OAAJ,CAAaq0B,OAAb,EAAsB,EAAtB,CAAP;AACA,WAhBU,CAkBX;;;AACA,iBAAO/1B,GAAG,IAAI,IAAP,GAAc,EAAd,GAAmBA,GAA1B;AACA;;AAED;AACA;;AAEDwoB,qBAAe,GAAGvqB,UAAU,CAAE8E,KAAF,CAA5B;AAEA,aAAO,KAAK5C,IAAL,CAAW,UAAU7H,CAAV,EAAc;AAC/B,YAAIsU,GAAJ;;AAEA,YAAK,KAAKzO,QAAL,KAAkB,CAAvB,EAA2B;AAC1B;AACA;;AAED,YAAKqqB,eAAL,EAAuB;AACtB5b,aAAG,GAAG7J,KAAK,CAACvI,IAAN,CAAY,IAAZ,EAAkBlC,CAAlB,EAAqB8G,MAAM,CAAE,IAAF,CAAN,CAAewN,GAAf,EAArB,CAAN;AACA,SAFD,MAEO;AACNA,aAAG,GAAG7J,KAAN;AACA,SAX8B,CAa/B;;;AACA,YAAK6J,GAAG,IAAI,IAAZ,EAAmB;AAClBA,aAAG,GAAG,EAAN;AAEA,SAHD,MAGO,IAAK,OAAOA,GAAP,KAAe,QAApB,EAA+B;AACrCA,aAAG,IAAI,EAAP;AAEA,SAHM,MAGA,IAAK5U,KAAK,CAACsJ,OAAN,CAAesL,GAAf,CAAL,EAA4B;AAClCA,aAAG,GAAGxN,MAAM,CAACiB,GAAP,CAAYuM,GAAZ,EAAiB,UAAU7J,KAAV,EAAkB;AACxC,mBAAOA,KAAK,IAAI,IAAT,GAAgB,EAAhB,GAAqBA,KAAK,GAAG,EAApC;AACA,WAFK,CAAN;AAGA;;AAEDsa,aAAK,GAAGje,MAAM,CAAC42B,QAAP,CAAiB,KAAK/6B,IAAtB,KAAgCmE,MAAM,CAAC42B,QAAP,CAAiB,KAAKttB,QAAL,CAActF,WAAd,EAAjB,CAAxC,CA1B+B,CA4B/B;;AACA,YAAK,CAACia,KAAD,IAAU,EAAG,SAASA,KAAZ,CAAV,IAAiCA,KAAK,CAACf,GAAN,CAAW,IAAX,EAAiB1P,GAAjB,EAAsB,OAAtB,MAAoCrL,SAA1E,EAAsF;AACrF,eAAKwB,KAAL,GAAa6J,GAAb;AACA;AACD,OAhCM,CAAP;AAiCA;AAlEgB,GAAlB;AAqEAxN,QAAM,CAACpF,MAAP,CAAe;AACdg8B,YAAQ,EAAE;AACTpW,YAAM,EAAE;AACPhgB,WAAG,EAAE,UAAUtG,IAAV,EAAiB;AAErB,cAAIsT,GAAG,GAAGxN,MAAM,CAACiM,IAAP,CAAYsB,IAAZ,CAAkBrT,IAAlB,EAAwB,OAAxB,CAAV;AACA,iBAAOsT,GAAG,IAAI,IAAP,GACNA,GADM,GAGN;AACA;AACA;AACA;AACAqoB,0BAAgB,CAAE71B,MAAM,CAACN,IAAP,CAAaxF,IAAb,CAAF,CAPjB;AAQA;AAZM,OADC;AAeTqK,YAAM,EAAE;AACP/D,WAAG,EAAE,UAAUtG,IAAV,EAAiB;AACrB,cAAIyJ,KAAJ;AAAA,cAAW6c,MAAX;AAAA,cAAmBtnB,CAAnB;AAAA,cACCwI,OAAO,GAAGxH,IAAI,CAACwH,OADhB;AAAA,cAECwU,KAAK,GAAGhc,IAAI,CAAC0W,aAFd;AAAA,cAGCmS,GAAG,GAAG7oB,IAAI,CAAC2B,IAAL,KAAc,YAHrB;AAAA,cAICokB,MAAM,GAAG8C,GAAG,GAAG,IAAH,GAAU,EAJvB;AAAA,cAKCvmB,GAAG,GAAGumB,GAAG,GAAG7M,KAAK,GAAG,CAAX,GAAexU,OAAO,CAACvI,MALjC;;AAOA,cAAK+c,KAAK,GAAG,CAAb,EAAiB;AAChBhd,aAAC,GAAGsD,GAAJ;AAEA,WAHD,MAGO;AACNtD,aAAC,GAAG6pB,GAAG,GAAG7M,KAAH,GAAW,CAAlB;AACA,WAboB,CAerB;;;AACA,iBAAQhd,CAAC,GAAGsD,GAAZ,EAAiBtD,CAAC,EAAlB,EAAuB;AACtBsnB,kBAAM,GAAG9e,OAAO,CAAExI,CAAF,CAAhB,CADsB,CAGtB;AACA;;AACA,gBAAK,CAAEsnB,MAAM,CAAC7P,QAAP,IAAmBzX,CAAC,KAAKgd,KAA3B,KAEH;AACA,aAACsK,MAAM,CAACvY,QAHL,KAID,CAACuY,MAAM,CAAC3gB,UAAP,CAAkBoI,QAAnB,IACD,CAACqB,QAAQ,CAAEkX,MAAM,CAAC3gB,UAAT,EAAqB,UAArB,CALP,CAAL,EAKkD;AAEjD;AACA8D,mBAAK,GAAG3D,MAAM,CAAEwgB,MAAF,CAAN,CAAiBhT,GAAjB,EAAR,CAHiD,CAKjD;;AACA,kBAAKuV,GAAL,EAAW;AACV,uBAAOpf,KAAP;AACA,eARgD,CAUjD;;;AACAsc,oBAAM,CAAC7hB,IAAP,CAAauF,KAAb;AACA;AACD;;AAED,iBAAOsc,MAAP;AACA,SA3CM;AA6CP/C,WAAG,EAAE,UAAUhjB,IAAV,EAAgByJ,KAAhB,EAAwB;AAC5B,cAAIkzB,SAAJ;AAAA,cAAerW,MAAf;AAAA,cACC9e,OAAO,GAAGxH,IAAI,CAACwH,OADhB;AAAA,cAECue,MAAM,GAAGjgB,MAAM,CAACiD,SAAP,CAAkBU,KAAlB,CAFV;AAAA,cAGCzK,CAAC,GAAGwI,OAAO,CAACvI,MAHb;;AAKA,iBAAQD,CAAC,EAAT,EAAc;AACbsnB,kBAAM,GAAG9e,OAAO,CAAExI,CAAF,CAAhB;AAEA;;AAEA,gBAAKsnB,MAAM,CAAC7P,QAAP,GACJ3Q,MAAM,CAACmD,OAAP,CAAgBnD,MAAM,CAAC42B,QAAP,CAAgBpW,MAAhB,CAAuBhgB,GAAvB,CAA4BggB,MAA5B,CAAhB,EAAsDP,MAAtD,IAAiE,CAAC,CADnE,EAEE;AACD4W,uBAAS,GAAG,IAAZ;AACA;AAED;;AACA,WAlB2B,CAoB5B;;;AACA,cAAK,CAACA,SAAN,EAAkB;AACjB38B,gBAAI,CAAC0W,aAAL,GAAqB,CAAC,CAAtB;AACA;;AACD,iBAAOqP,MAAP;AACA;AAtEM;AAfC;AADI,GAAf,EA9zPiF,CAy5PjF;;AACAjgB,QAAM,CAACe,IAAP,CAAa,CAAE,OAAF,EAAW,UAAX,CAAb,EAAsC,YAAW;AAChDf,UAAM,CAAC42B,QAAP,CAAiB,IAAjB,IAA0B;AACzB1Z,SAAG,EAAE,UAAUhjB,IAAV,EAAgByJ,KAAhB,EAAwB;AAC5B,YAAK/K,KAAK,CAACsJ,OAAN,CAAeyB,KAAf,CAAL,EAA8B;AAC7B,iBAASzJ,IAAI,CAACwW,OAAL,GAAe1Q,MAAM,CAACmD,OAAP,CAAgBnD,MAAM,CAAE9F,IAAF,CAAN,CAAesT,GAAf,EAAhB,EAAsC7J,KAAtC,IAAgD,CAAC,CAAzE;AACA;AACD;AALwB,KAA1B;;AAOA,QAAK,CAAC/E,OAAO,CAACi2B,OAAd,EAAwB;AACvB70B,YAAM,CAAC42B,QAAP,CAAiB,IAAjB,EAAwBp2B,GAAxB,GAA8B,UAAUtG,IAAV,EAAiB;AAC9C,eAAOA,IAAI,CAACqP,YAAL,CAAmB,OAAnB,MAAiC,IAAjC,GAAwC,IAAxC,GAA+CrP,IAAI,CAACyJ,KAA3D;AACA,OAFD;AAGA;AACD,GAbD,EA15PiF,CA46PjF;;AAGA/E,SAAO,CAACk4B,OAAR,GAAkB,eAAe57B,MAAjC;;AAGA,MAAI67B,WAAW,GAAG,iCAAlB;AAAA,MACCC,uBAAuB,GAAG,UAAU3uB,CAAV,EAAc;AACvCA,KAAC,CAACuc,eAAF;AACA,GAHF;;AAKA5kB,QAAM,CAACpF,MAAP,CAAeoF,MAAM,CAAChH,KAAtB,EAA6B;AAE5B8B,WAAO,EAAE,UAAU9B,KAAV,EAAiBY,IAAjB,EAAuBM,IAAvB,EAA6B+8B,YAA7B,EAA4C;AAEpD,UAAI/9B,CAAJ;AAAA,UAAOyR,GAAP;AAAA,UAAYyB,GAAZ;AAAA,UAAiB8qB,UAAjB;AAAA,UAA6BC,MAA7B;AAAA,UAAqC55B,MAArC;AAAA,UAA6ClE,OAA7C;AAAA,UAAsD+9B,WAAtD;AAAA,UACCC,SAAS,GAAG,CAAEn9B,IAAI,IAAIzB,QAAV,CADb;AAAA,UAECoD,IAAI,GAAG2C,MAAM,CAACpD,IAAP,CAAapC,KAAb,EAAoB,MAApB,IAA+BA,KAAK,CAAC6C,IAArC,GAA4C7C,KAFpD;AAAA,UAGCwqB,UAAU,GAAGhlB,MAAM,CAACpD,IAAP,CAAapC,KAAb,EAAoB,WAApB,IAAoCA,KAAK,CAAC8qB,SAAN,CAAgB/f,KAAhB,CAAuB,GAAvB,CAApC,GAAmE,EAHjF;AAKA4G,SAAG,GAAGysB,WAAW,GAAGhrB,GAAG,GAAGlS,IAAI,GAAGA,IAAI,IAAIzB,QAAzC,CAPoD,CASpD;;AACA,UAAKyB,IAAI,CAAC6E,QAAL,KAAkB,CAAlB,IAAuB7E,IAAI,CAAC6E,QAAL,KAAkB,CAA9C,EAAkD;AACjD;AACA,OAZmD,CAcpD;;;AACA,UAAKg4B,WAAW,CAAC1tB,IAAZ,CAAkBxN,IAAI,GAAGmE,MAAM,CAAChH,KAAP,CAAa2qB,SAAtC,CAAL,EAAyD;AACxD;AACA;;AAED,UAAK9nB,IAAI,CAACwC,OAAL,CAAc,GAAd,IAAsB,CAAC,CAA5B,EAAgC;AAE/B;AACAmlB,kBAAU,GAAG3nB,IAAI,CAACkI,KAAL,CAAY,GAAZ,CAAb;AACAlI,YAAI,GAAG2nB,UAAU,CAACrZ,KAAX,EAAP;AACAqZ,kBAAU,CAAChiB,IAAX;AACA;;AACD21B,YAAM,GAAGt7B,IAAI,CAACwC,OAAL,CAAc,GAAd,IAAsB,CAAtB,IAA2B,OAAOxC,IAA3C,CA1BoD,CA4BpD;;AACA7C,WAAK,GAAGA,KAAK,CAAEgH,MAAM,CAACoC,OAAT,CAAL,GACPpJ,KADO,GAEP,IAAIgH,MAAM,CAACmlB,KAAX,CAAkBtpB,IAAlB,EAAwB,OAAO7C,KAAP,KAAiB,QAAjB,IAA6BA,KAArD,CAFD,CA7BoD,CAiCpD;;AACAA,WAAK,CAACs+B,SAAN,GAAkBL,YAAY,GAAG,CAAH,GAAO,CAArC;AACAj+B,WAAK,CAAC8qB,SAAN,GAAkBN,UAAU,CAAC9Z,IAAX,CAAiB,GAAjB,CAAlB;AACA1Q,WAAK,CAAC0rB,UAAN,GAAmB1rB,KAAK,CAAC8qB,SAAN,GAClB,IAAIzd,MAAJ,CAAY,YAAYmd,UAAU,CAAC9Z,IAAX,CAAiB,eAAjB,CAAZ,GAAiD,SAA7D,CADkB,GAElB,IAFD,CApCoD,CAwCpD;;AACA1Q,WAAK,CAAC6V,MAAN,GAAe1M,SAAf;;AACA,UAAK,CAACnJ,KAAK,CAAC+I,MAAZ,EAAqB;AACpB/I,aAAK,CAAC+I,MAAN,GAAe7H,IAAf;AACA,OA5CmD,CA8CpD;;;AACAN,UAAI,GAAGA,IAAI,IAAI,IAAR,GACN,CAAEZ,KAAF,CADM,GAENgH,MAAM,CAACiD,SAAP,CAAkBrJ,IAAlB,EAAwB,CAAEZ,KAAF,CAAxB,CAFD,CA/CoD,CAmDpD;;AACAK,aAAO,GAAG2G,MAAM,CAAChH,KAAP,CAAaK,OAAb,CAAsBwC,IAAtB,KAAgC,EAA1C;;AACA,UAAK,CAACo7B,YAAD,IAAiB59B,OAAO,CAACyB,OAAzB,IAAoCzB,OAAO,CAACyB,OAAR,CAAgB0C,KAAhB,CAAuBtD,IAAvB,EAA6BN,IAA7B,MAAwC,KAAjF,EAAyF;AACxF;AACA,OAvDmD,CAyDpD;AACA;;;AACA,UAAK,CAACq9B,YAAD,IAAiB,CAAC59B,OAAO,CAACmsB,QAA1B,IAAsC,CAACxmB,QAAQ,CAAE9E,IAAF,CAApD,EAA+D;AAE9Dg9B,kBAAU,GAAG79B,OAAO,CAACuqB,YAAR,IAAwB/nB,IAArC;;AACA,YAAK,CAACk7B,WAAW,CAAC1tB,IAAZ,CAAkB6tB,UAAU,GAAGr7B,IAA/B,CAAN,EAA8C;AAC7C8O,aAAG,GAAGA,GAAG,CAAC9K,UAAV;AACA;;AACD,eAAQ8K,GAAR,EAAaA,GAAG,GAAGA,GAAG,CAAC9K,UAAvB,EAAoC;AACnCw3B,mBAAS,CAACj5B,IAAV,CAAgBuM,GAAhB;AACAyB,aAAG,GAAGzB,GAAN;AACA,SAT6D,CAW9D;;;AACA,YAAKyB,GAAG,MAAOlS,IAAI,CAAC4O,aAAL,IAAsBrQ,QAA7B,CAAR,EAAkD;AACjD4+B,mBAAS,CAACj5B,IAAV,CAAgBgO,GAAG,CAACX,WAAJ,IAAmBW,GAAG,CAACmrB,YAAvB,IAAuCr8B,MAAvD;AACA;AACD,OA1EmD,CA4EpD;;;AACAhC,OAAC,GAAG,CAAJ;;AACA,aAAQ,CAAEyR,GAAG,GAAG0sB,SAAS,CAAEn+B,CAAC,EAAH,CAAjB,KAA8B,CAACF,KAAK,CAACurB,oBAAN,EAAvC,EAAsE;AACrE6S,mBAAW,GAAGzsB,GAAd;AACA3R,aAAK,CAAC6C,IAAN,GAAa3C,CAAC,GAAG,CAAJ,GACZg+B,UADY,GAEZ79B,OAAO,CAACwqB,QAAR,IAAoBhoB,IAFrB,CAFqE,CAMrE;;AACA0B,cAAM,GAAG,CAAE8f,QAAQ,CAAC7c,GAAT,CAAcmK,GAAd,EAAmB,QAAnB,KAAiC,EAAnC,EAAyC3R,KAAK,CAAC6C,IAA/C,KACRwhB,QAAQ,CAAC7c,GAAT,CAAcmK,GAAd,EAAmB,QAAnB,CADD;;AAEA,YAAKpN,MAAL,EAAc;AACbA,gBAAM,CAACC,KAAP,CAAcmN,GAAd,EAAmB/Q,IAAnB;AACA,SAXoE,CAarE;;;AACA2D,cAAM,GAAG45B,MAAM,IAAIxsB,GAAG,CAAEwsB,MAAF,CAAtB;;AACA,YAAK55B,MAAM,IAAIA,MAAM,CAACC,KAAjB,IAA0Bof,UAAU,CAAEjS,GAAF,CAAzC,EAAmD;AAClD3R,eAAK,CAAC6V,MAAN,GAAetR,MAAM,CAACC,KAAP,CAAcmN,GAAd,EAAmB/Q,IAAnB,CAAf;;AACA,cAAKZ,KAAK,CAAC6V,MAAN,KAAiB,KAAtB,EAA8B;AAC7B7V,iBAAK,CAAC2rB,cAAN;AACA;AACD;AACD;;AACD3rB,WAAK,CAAC6C,IAAN,GAAaA,IAAb,CApGoD,CAsGpD;;AACA,UAAK,CAACo7B,YAAD,IAAiB,CAACj+B,KAAK,CAAC+sB,kBAAN,EAAvB,EAAoD;AAEnD,YAAK,CAAE,CAAC1sB,OAAO,CAACwnB,QAAT,IACNxnB,OAAO,CAACwnB,QAAR,CAAiBrjB,KAAjB,CAAwB65B,SAAS,CAACzxB,GAAV,EAAxB,EAAyChM,IAAzC,MAAoD,KADhD,KAEJgjB,UAAU,CAAE1iB,IAAF,CAFX,EAEsB;AAErB;AACA;AACA,cAAKi9B,MAAM,IAAIt4B,UAAU,CAAE3E,IAAI,CAAE2B,IAAF,CAAN,CAApB,IAAwC,CAACmD,QAAQ,CAAE9E,IAAF,CAAtD,EAAiE;AAEhE;AACAkS,eAAG,GAAGlS,IAAI,CAAEi9B,MAAF,CAAV;;AAEA,gBAAK/qB,GAAL,EAAW;AACVlS,kBAAI,CAAEi9B,MAAF,CAAJ,GAAiB,IAAjB;AACA,aAP+D,CAShE;;;AACAn3B,kBAAM,CAAChH,KAAP,CAAa2qB,SAAb,GAAyB9nB,IAAzB;;AAEA,gBAAK7C,KAAK,CAACurB,oBAAN,EAAL,EAAoC;AACnC6S,yBAAW,CAAC39B,gBAAZ,CAA8BoC,IAA9B,EAAoCm7B,uBAApC;AACA;;AAED98B,gBAAI,CAAE2B,IAAF,CAAJ;;AAEA,gBAAK7C,KAAK,CAACurB,oBAAN,EAAL,EAAoC;AACnC6S,yBAAW,CAACp9B,mBAAZ,CAAiC6B,IAAjC,EAAuCm7B,uBAAvC;AACA;;AAEDh3B,kBAAM,CAAChH,KAAP,CAAa2qB,SAAb,GAAyBxhB,SAAzB;;AAEA,gBAAKiK,GAAL,EAAW;AACVlS,kBAAI,CAAEi9B,MAAF,CAAJ,GAAiB/qB,GAAjB;AACA;AACD;AACD;AACD;;AAED,aAAOpT,KAAK,CAAC6V,MAAb;AACA,KAjJ2B;AAmJ5B;AACA;AACA2oB,YAAQ,EAAE,UAAU37B,IAAV,EAAgB3B,IAAhB,EAAsBlB,KAAtB,EAA8B;AACvC,UAAIqP,CAAC,GAAGrI,MAAM,CAACpF,MAAP,CACP,IAAIoF,MAAM,CAACmlB,KAAX,EADO,EAEPnsB,KAFO,EAGP;AACC6C,YAAI,EAAEA,IADP;AAECuqB,mBAAW,EAAE;AAFd,OAHO,CAAR;AASApmB,YAAM,CAAChH,KAAP,CAAa8B,OAAb,CAAsBuN,CAAtB,EAAyB,IAAzB,EAA+BnO,IAA/B;AACA;AAhK2B,GAA7B;AAoKA8F,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AAEjBE,WAAO,EAAE,UAAUe,IAAV,EAAgBjC,IAAhB,EAAuB;AAC/B,aAAO,KAAKmH,IAAL,CAAW,YAAW;AAC5Bf,cAAM,CAAChH,KAAP,CAAa8B,OAAb,CAAsBe,IAAtB,EAA4BjC,IAA5B,EAAkC,IAAlC;AACA,OAFM,CAAP;AAGA,KANgB;AAOjB69B,kBAAc,EAAE,UAAU57B,IAAV,EAAgBjC,IAAhB,EAAuB;AACtC,UAAIM,IAAI,GAAG,KAAM,CAAN,CAAX;;AACA,UAAKA,IAAL,EAAY;AACX,eAAO8F,MAAM,CAAChH,KAAP,CAAa8B,OAAb,CAAsBe,IAAtB,EAA4BjC,IAA5B,EAAkCM,IAAlC,EAAwC,IAAxC,CAAP;AACA;AACD;AAZgB,GAAlB,EA3lQiF,CA2mQjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAK,CAAC0E,OAAO,CAACk4B,OAAd,EAAwB;AACvB92B,UAAM,CAACe,IAAP,CAAa;AAAE0kB,WAAK,EAAE,SAAT;AAAoBC,UAAI,EAAE;AAA1B,KAAb,EAAqD,UAAUsC,IAAV,EAAgBpsB,GAAhB,EAAsB;AAE1E;AACA,UAAIlC,OAAO,GAAG,UAAUV,KAAV,EAAkB;AAC/BgH,cAAM,CAAChH,KAAP,CAAaw+B,QAAb,CAAuB57B,GAAvB,EAA4B5C,KAAK,CAAC+I,MAAlC,EAA0C/B,MAAM,CAAChH,KAAP,CAAa4C,GAAb,CAAkB5C,KAAlB,CAA1C;AACA,OAFD;;AAIAgH,YAAM,CAAChH,KAAP,CAAaK,OAAb,CAAsBuC,GAAtB,IAA8B;AAC7BpC,aAAK,EAAE,YAAW;AACjB,cAAI8F,GAAG,GAAG,KAAKwJ,aAAL,IAAsB,IAAhC;AAAA,cACC4uB,QAAQ,GAAGra,QAAQ,CAACtB,MAAT,CAAiBzc,GAAjB,EAAsB1D,GAAtB,CADZ;;AAGA,cAAK,CAAC87B,QAAN,EAAiB;AAChBp4B,eAAG,CAAC7F,gBAAJ,CAAsBuuB,IAAtB,EAA4BtuB,OAA5B,EAAqC,IAArC;AACA;;AACD2jB,kBAAQ,CAACtB,MAAT,CAAiBzc,GAAjB,EAAsB1D,GAAtB,EAA2B,CAAE87B,QAAQ,IAAI,CAAd,IAAoB,CAA/C;AACA,SAT4B;AAU7B39B,gBAAQ,EAAE,YAAW;AACpB,cAAIuF,GAAG,GAAG,KAAKwJ,aAAL,IAAsB,IAAhC;AAAA,cACC4uB,QAAQ,GAAGra,QAAQ,CAACtB,MAAT,CAAiBzc,GAAjB,EAAsB1D,GAAtB,IAA8B,CAD1C;;AAGA,cAAK,CAAC87B,QAAN,EAAiB;AAChBp4B,eAAG,CAACtF,mBAAJ,CAAyBguB,IAAzB,EAA+BtuB,OAA/B,EAAwC,IAAxC;AACA2jB,oBAAQ,CAACxF,MAAT,CAAiBvY,GAAjB,EAAsB1D,GAAtB;AAEA,WAJD,MAIO;AACNyhB,oBAAQ,CAACtB,MAAT,CAAiBzc,GAAjB,EAAsB1D,GAAtB,EAA2B87B,QAA3B;AACA;AACD;AArB4B,OAA9B;AAuBA,KA9BD;AA+BA;;AACD,MAAIrnB,QAAQ,GAAGnV,MAAM,CAACmV,QAAtB;AAEA,MAAIsnB,KAAK,GAAG1yB,IAAI,CAACkhB,GAAL,EAAZ;AAEA,MAAIyR,MAAM,GAAK,IAAf,CAxpQiF,CA4pQjF;;AACA53B,QAAM,CAAC63B,QAAP,GAAkB,UAAUj+B,IAAV,EAAiB;AAClC,QAAIsV,GAAJ;;AACA,QAAK,CAACtV,IAAD,IAAS,OAAOA,IAAP,KAAgB,QAA9B,EAAyC;AACxC,aAAO,IAAP;AACA,KAJiC,CAMlC;AACA;;;AACA,QAAI;AACHsV,SAAG,GAAK,IAAIhU,MAAM,CAAC48B,SAAX,EAAF,CAA2BC,eAA3B,CAA4Cn+B,IAA5C,EAAkD,UAAlD,CAAN;AACA,KAFD,CAEE,OAAQyO,CAAR,EAAY;AACb6G,SAAG,GAAG/M,SAAN;AACA;;AAED,QAAK,CAAC+M,GAAD,IAAQA,GAAG,CAAChG,oBAAJ,CAA0B,aAA1B,EAA0C/P,MAAvD,EAAgE;AAC/D6G,YAAM,CAACwC,KAAP,CAAc,kBAAkB5I,IAAhC;AACA;;AACD,WAAOsV,GAAP;AACA,GAlBD;;AAqBA,MACC8oB,QAAQ,GAAG,OADZ;AAAA,MAECC,KAAK,GAAG,QAFT;AAAA,MAGCC,eAAe,GAAG,uCAHnB;AAAA,MAICC,YAAY,GAAG,oCAJhB;;AAMA,WAASC,WAAT,CAAsB/I,MAAtB,EAA8BvwB,GAA9B,EAAmCu5B,WAAnC,EAAgDjiB,GAAhD,EAAsD;AACrD,QAAIzU,IAAJ;;AAEA,QAAK/I,KAAK,CAACsJ,OAAN,CAAepD,GAAf,CAAL,EAA4B;AAE3B;AACAkB,YAAM,CAACe,IAAP,CAAajC,GAAb,EAAkB,UAAU5F,CAAV,EAAaif,CAAb,EAAiB;AAClC,YAAKkgB,WAAW,IAAIL,QAAQ,CAAC3uB,IAAT,CAAegmB,MAAf,CAApB,EAA8C;AAE7C;AACAjZ,aAAG,CAAEiZ,MAAF,EAAUlX,CAAV,CAAH;AAEA,SALD,MAKO;AAEN;AACAigB,qBAAW,CACV/I,MAAM,GAAG,GAAT,IAAiB,OAAOlX,CAAP,KAAa,QAAb,IAAyBA,CAAC,IAAI,IAA9B,GAAqCjf,CAArC,GAAyC,EAA1D,IAAiE,GADvD,EAEVif,CAFU,EAGVkgB,WAHU,EAIVjiB,GAJU,CAAX;AAMA;AACD,OAhBD;AAkBA,KArBD,MAqBO,IAAK,CAACiiB,WAAD,IAAgBt4B,MAAM,CAAEjB,GAAF,CAAN,KAAkB,QAAvC,EAAkD;AAExD;AACA,WAAM6C,IAAN,IAAc7C,GAAd,EAAoB;AACnBs5B,mBAAW,CAAE/I,MAAM,GAAG,GAAT,GAAe1tB,IAAf,GAAsB,GAAxB,EAA6B7C,GAAG,CAAE6C,IAAF,CAAhC,EAA0C02B,WAA1C,EAAuDjiB,GAAvD,CAAX;AACA;AAED,KAPM,MAOA;AAEN;AACAA,SAAG,CAAEiZ,MAAF,EAAUvwB,GAAV,CAAH;AACA;AACD,GA5tQgF,CA8tQjF;AACA;;;AACAkB,QAAM,CAACs4B,KAAP,GAAe,UAAU5yB,CAAV,EAAa2yB,WAAb,EAA2B;AACzC,QAAIhJ,MAAJ;AAAA,QACCkJ,CAAC,GAAG,EADL;AAAA,QAECniB,GAAG,GAAG,UAAUnM,GAAV,EAAeuuB,eAAf,EAAiC;AAEtC;AACA,UAAI70B,KAAK,GAAG9E,UAAU,CAAE25B,eAAF,CAAV,GACXA,eAAe,EADJ,GAEXA,eAFD;AAIAD,OAAC,CAAEA,CAAC,CAACp/B,MAAJ,CAAD,GAAgBs/B,kBAAkB,CAAExuB,GAAF,CAAlB,GAA4B,GAA5B,GACfwuB,kBAAkB,CAAE90B,KAAK,IAAI,IAAT,GAAgB,EAAhB,GAAqBA,KAAvB,CADnB;AAEA,KAXF,CADyC,CAczC;;;AACA,QAAK/K,KAAK,CAACsJ,OAAN,CAAewD,CAAf,KAAwBA,CAAC,CAACrF,MAAF,IAAY,CAACL,MAAM,CAACiC,aAAP,CAAsByD,CAAtB,CAA1C,EAAwE;AAEvE;AACA1F,YAAM,CAACe,IAAP,CAAa2E,CAAb,EAAgB,YAAW;AAC1B0Q,WAAG,CAAE,KAAKzU,IAAP,EAAa,KAAKgC,KAAlB,CAAH;AACA,OAFD;AAIA,KAPD,MAOO;AAEN;AACA;AACA,WAAM0rB,MAAN,IAAgB3pB,CAAhB,EAAoB;AACnB0yB,mBAAW,CAAE/I,MAAF,EAAU3pB,CAAC,CAAE2pB,MAAF,CAAX,EAAuBgJ,WAAvB,EAAoCjiB,GAApC,CAAX;AACA;AACD,KA7BwC,CA+BzC;;;AACA,WAAOmiB,CAAC,CAAC7uB,IAAF,CAAQ,GAAR,CAAP;AACA,GAjCD;;AAmCA1J,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjB89B,aAAS,EAAE,YAAW;AACrB,aAAO14B,MAAM,CAACs4B,KAAP,CAAc,KAAKK,cAAL,EAAd,CAAP;AACA,KAHgB;AAIjBA,kBAAc,EAAE,YAAW;AAC1B,aAAO,KAAK13B,GAAL,CAAU,YAAW;AAE3B;AACA,YAAIqM,QAAQ,GAAGtN,MAAM,CAACmd,IAAP,CAAa,IAAb,EAAmB,UAAnB,CAAf;AACA,eAAO7P,QAAQ,GAAGtN,MAAM,CAACiD,SAAP,CAAkBqK,QAAlB,CAAH,GAAkC,IAAjD;AACA,OALM,EAMNvB,MANM,CAME,YAAW;AACnB,YAAIlQ,IAAI,GAAG,KAAKA,IAAhB,CADmB,CAGnB;;AACA,eAAO,KAAK8F,IAAL,IAAa,CAAC3B,MAAM,CAAE,IAAF,CAAN,CAAe2U,EAAf,CAAmB,WAAnB,CAAd,IACNwjB,YAAY,CAAC9uB,IAAb,CAAmB,KAAKC,QAAxB,CADM,IACgC,CAAC4uB,eAAe,CAAC7uB,IAAhB,CAAsBxN,IAAtB,CADjC,KAEJ,KAAK6U,OAAL,IAAgB,CAAC0P,cAAc,CAAC/W,IAAf,CAAqBxN,IAArB,CAFb,CAAP;AAGA,OAbM,EAcNoF,GAdM,CAcD,UAAU/H,CAAV,EAAagB,IAAb,EAAoB;AACzB,YAAIsT,GAAG,GAAGxN,MAAM,CAAE,IAAF,CAAN,CAAewN,GAAf,EAAV;;AAEA,YAAKA,GAAG,IAAI,IAAZ,EAAmB;AAClB,iBAAO,IAAP;AACA;;AAED,YAAK5U,KAAK,CAACsJ,OAAN,CAAesL,GAAf,CAAL,EAA4B;AAC3B,iBAAOxN,MAAM,CAACiB,GAAP,CAAYuM,GAAZ,EAAiB,UAAUA,GAAV,EAAgB;AACvC,mBAAO;AAAE7L,kBAAI,EAAEzH,IAAI,CAACyH,IAAb;AAAmBgC,mBAAK,EAAE6J,GAAG,CAAClL,OAAJ,CAAa21B,KAAb,EAAoB,MAApB;AAA1B,aAAP;AACA,WAFM,CAAP;AAGA;;AAED,eAAO;AAAEt2B,cAAI,EAAEzH,IAAI,CAACyH,IAAb;AAAmBgC,eAAK,EAAE6J,GAAG,CAAClL,OAAJ,CAAa21B,KAAb,EAAoB,MAApB;AAA1B,SAAP;AACA,OA5BM,EA4BHz3B,GA5BG,EAAP;AA6BA;AAlCgB,GAAlB;AAsCA,MACCo4B,GAAG,GAAG,MADP;AAAA,MAECC,KAAK,GAAG,MAFT;AAAA,MAGCC,UAAU,GAAG,eAHd;AAAA,MAICC,QAAQ,GAAG,4BAJZ;AAAA,MAMC;AACAC,gBAAc,GAAG,2DAPlB;AAAA,MAQCC,UAAU,GAAG,gBARd;AAAA,MASCC,SAAS,GAAG,OATb;;AAWC;;;;;;;;;AASAvG,YAAU,GAAG,EApBd;;AAsBC;;;;;AAKAwG,YAAU,GAAG,EA3Bd;AAAA,MA6BC;AACAC,UAAQ,GAAG,KAAKj7B,MAAL,CAAa,GAAb,CA9BZ;AAAA,MAgCC;AACAk7B,cAAY,GAAG5gC,QAAQ,CAACgH,aAAT,CAAwB,GAAxB,CAjChB;AAkCC45B,cAAY,CAAC7oB,IAAb,GAAoBH,QAAQ,CAACG,IAA7B,CA30QgF,CA60QjF;;AACA,WAAS8oB,2BAAT,CAAsCC,SAAtC,EAAkD;AAEjD;AACA,WAAO,UAAUC,kBAAV,EAA8BzgB,IAA9B,EAAqC;AAE3C,UAAK,OAAOygB,kBAAP,KAA8B,QAAnC,EAA8C;AAC7CzgB,YAAI,GAAGygB,kBAAP;AACAA,0BAAkB,GAAG,GAArB;AACA;;AAED,UAAIC,QAAJ;AAAA,UACCvgC,CAAC,GAAG,CADL;AAAA,UAECwgC,SAAS,GAAGF,kBAAkB,CAACx1B,WAAnB,GAAiC0E,KAAjC,CAAwCqO,aAAxC,KAA2D,EAFxE;;AAIA,UAAKlY,UAAU,CAAEka,IAAF,CAAf,EAA0B;AAEzB;AACA,eAAU0gB,QAAQ,GAAGC,SAAS,CAAExgC,CAAC,EAAH,CAA9B,EAA0C;AAEzC;AACA,cAAKugC,QAAQ,CAAE,CAAF,CAAR,KAAkB,GAAvB,EAA6B;AAC5BA,oBAAQ,GAAGA,QAAQ,CAAC9gC,KAAT,CAAgB,CAAhB,KAAuB,GAAlC;AACA,aAAE4gC,SAAS,CAAEE,QAAF,CAAT,GAAwBF,SAAS,CAAEE,QAAF,CAAT,IAAyB,EAAnD,EAAwDv8B,OAAxD,CAAiE6b,IAAjE,EAF4B,CAI7B;AACC,WALD,MAKO;AACN,aAAEwgB,SAAS,CAAEE,QAAF,CAAT,GAAwBF,SAAS,CAAEE,QAAF,CAAT,IAAyB,EAAnD,EAAwDr7B,IAAxD,CAA8D2a,IAA9D;AACA;AACD;AACD;AACD,KA3BD;AA4BA,GA72QgF,CA+2QjF;;;AACA,WAAS4gB,6BAAT,CAAwCJ,SAAxC,EAAmD73B,OAAnD,EAA4DsxB,eAA5D,EAA6E4G,KAA7E,EAAqF;AAEpF,QAAIC,SAAS,GAAG,EAAhB;AAAA,QACCC,gBAAgB,GAAKP,SAAS,KAAKJ,UADpC;;AAGA,aAASY,OAAT,CAAkBN,QAAlB,EAA6B;AAC5B,UAAI9oB,QAAJ;AACAkpB,eAAS,CAAEJ,QAAF,CAAT,GAAwB,IAAxB;AACAz5B,YAAM,CAACe,IAAP,CAAaw4B,SAAS,CAAEE,QAAF,CAAT,IAAyB,EAAtC,EAA0C,UAAUtyB,CAAV,EAAa6yB,kBAAb,EAAkC;AAC3E,YAAIC,mBAAmB,GAAGD,kBAAkB,CAAEt4B,OAAF,EAAWsxB,eAAX,EAA4B4G,KAA5B,CAA5C;;AACA,YAAK,OAAOK,mBAAP,KAA+B,QAA/B,IACJ,CAACH,gBADG,IACiB,CAACD,SAAS,CAAEI,mBAAF,CADhC,EAC0D;AAEzDv4B,iBAAO,CAACg4B,SAAR,CAAkBx8B,OAAlB,CAA2B+8B,mBAA3B;AACAF,iBAAO,CAAEE,mBAAF,CAAP;AACA,iBAAO,KAAP;AACA,SAND,MAMO,IAAKH,gBAAL,EAAwB;AAC9B,iBAAO,EAAGnpB,QAAQ,GAAGspB,mBAAd,CAAP;AACA;AACD,OAXD;AAYA,aAAOtpB,QAAP;AACA;;AAED,WAAOopB,OAAO,CAAEr4B,OAAO,CAACg4B,SAAR,CAAmB,CAAnB,CAAF,CAAP,IAAqC,CAACG,SAAS,CAAE,GAAF,CAAV,IAAqBE,OAAO,CAAE,GAAF,CAAxE;AACA,GAx4QgF,CA04QjF;AACA;AACA;;;AACA,WAASG,UAAT,CAAqBn4B,MAArB,EAA6B7C,GAA7B,EAAmC;AAClC,QAAI+K,GAAJ;AAAA,QAASjI,IAAT;AAAA,QACCm4B,WAAW,GAAGn6B,MAAM,CAACo6B,YAAP,CAAoBD,WAApB,IAAmC,EADlD;;AAGA,SAAMlwB,GAAN,IAAa/K,GAAb,EAAmB;AAClB,UAAKA,GAAG,CAAE+K,GAAF,CAAH,KAAe9H,SAApB,EAAgC;AAC/B,SAAEg4B,WAAW,CAAElwB,GAAF,CAAX,GAAqBlI,MAArB,GAAgCC,IAAI,KAAMA,IAAI,GAAG,EAAb,CAAtC,EAA6DiI,GAA7D,IAAqE/K,GAAG,CAAE+K,GAAF,CAAxE;AACA;AACD;;AACD,QAAKjI,IAAL,EAAY;AACXhC,YAAM,CAACpF,MAAP,CAAe,IAAf,EAAqBmH,MAArB,EAA6BC,IAA7B;AACA;;AAED,WAAOD,MAAP;AACA;AAED;;;;;;AAIA,WAASs4B,mBAAT,CAA8B9B,CAA9B,EAAiCqB,KAAjC,EAAwCU,SAAxC,EAAoD;AAEnD,QAAIC,EAAJ;AAAA,QAAQ1+B,IAAR;AAAA,QAAc2+B,aAAd;AAAA,QAA6BC,aAA7B;AAAA,QACC7kB,QAAQ,GAAG2iB,CAAC,CAAC3iB,QADd;AAAA,QAEC8jB,SAAS,GAAGnB,CAAC,CAACmB,SAFf,CAFmD,CAMnD;;AACA,WAAQA,SAAS,CAAE,CAAF,CAAT,KAAmB,GAA3B,EAAiC;AAChCA,eAAS,CAACvvB,KAAV;;AACA,UAAKowB,EAAE,KAAKp4B,SAAZ,EAAwB;AACvBo4B,UAAE,GAAGhC,CAAC,CAACmC,QAAF,IAAcd,KAAK,CAACe,iBAAN,CAAyB,cAAzB,CAAnB;AACA;AACD,KAZkD,CAcnD;;;AACA,QAAKJ,EAAL,EAAU;AACT,WAAM1+B,IAAN,IAAc+Z,QAAd,EAAyB;AACxB,YAAKA,QAAQ,CAAE/Z,IAAF,CAAR,IAAoB+Z,QAAQ,CAAE/Z,IAAF,CAAR,CAAiBwN,IAAjB,CAAuBkxB,EAAvB,CAAzB,EAAuD;AACtDb,mBAAS,CAACx8B,OAAV,CAAmBrB,IAAnB;AACA;AACA;AACD;AACD,KAtBkD,CAwBnD;;;AACA,QAAK69B,SAAS,CAAE,CAAF,CAAT,IAAkBY,SAAvB,EAAmC;AAClCE,mBAAa,GAAGd,SAAS,CAAE,CAAF,CAAzB;AACA,KAFD,MAEO;AAEN;AACA,WAAM79B,IAAN,IAAcy+B,SAAd,EAA0B;AACzB,YAAK,CAACZ,SAAS,CAAE,CAAF,CAAV,IAAmBnB,CAAC,CAACqC,UAAF,CAAc/+B,IAAI,GAAG,GAAP,GAAa69B,SAAS,CAAE,CAAF,CAApC,CAAxB,EAAsE;AACrEc,uBAAa,GAAG3+B,IAAhB;AACA;AACA;;AACD,YAAK,CAAC4+B,aAAN,EAAsB;AACrBA,uBAAa,GAAG5+B,IAAhB;AACA;AACD,OAXK,CAaN;;;AACA2+B,mBAAa,GAAGA,aAAa,IAAIC,aAAjC;AACA,KA1CkD,CA4CnD;AACA;AACA;;;AACA,QAAKD,aAAL,EAAqB;AACpB,UAAKA,aAAa,KAAKd,SAAS,CAAE,CAAF,CAAhC,EAAwC;AACvCA,iBAAS,CAACx8B,OAAV,CAAmBs9B,aAAnB;AACA;;AACD,aAAOF,SAAS,CAAEE,aAAF,CAAhB;AACA;AACD;AAED;;;;;AAGA,WAASK,WAAT,CAAsBtC,CAAtB,EAAyBuC,QAAzB,EAAmClB,KAAnC,EAA0CmB,SAA1C,EAAsD;AACrD,QAAIC,KAAJ;AAAA,QAAWC,OAAX;AAAA,QAAoBC,IAApB;AAAA,QAA0B9uB,GAA1B;AAAA,QAA+ByJ,IAA/B;AAAA,QACC+kB,UAAU,GAAG,EADd;AAAA,QAGC;AACAlB,aAAS,GAAGnB,CAAC,CAACmB,SAAF,CAAY/gC,KAAZ,EAJb,CADqD,CAOrD;;AACA,QAAK+gC,SAAS,CAAE,CAAF,CAAd,EAAsB;AACrB,WAAMwB,IAAN,IAAc3C,CAAC,CAACqC,UAAhB,EAA6B;AAC5BA,kBAAU,CAAEM,IAAI,CAACl3B,WAAL,EAAF,CAAV,GAAmCu0B,CAAC,CAACqC,UAAF,CAAcM,IAAd,CAAnC;AACA;AACD;;AAEDD,WAAO,GAAGvB,SAAS,CAACvvB,KAAV,EAAV,CAdqD,CAgBrD;;AACA,WAAQ8wB,OAAR,EAAkB;AAEjB,UAAK1C,CAAC,CAAC4C,cAAF,CAAkBF,OAAlB,CAAL,EAAmC;AAClCrB,aAAK,CAAErB,CAAC,CAAC4C,cAAF,CAAkBF,OAAlB,CAAF,CAAL,GAAuCH,QAAvC;AACA,OAJgB,CAMjB;;;AACA,UAAK,CAACjlB,IAAD,IAASklB,SAAT,IAAsBxC,CAAC,CAAC6C,UAA7B,EAA0C;AACzCN,gBAAQ,GAAGvC,CAAC,CAAC6C,UAAF,CAAcN,QAAd,EAAwBvC,CAAC,CAACkB,QAA1B,CAAX;AACA;;AAED5jB,UAAI,GAAGolB,OAAP;AACAA,aAAO,GAAGvB,SAAS,CAACvvB,KAAV,EAAV;;AAEA,UAAK8wB,OAAL,EAAe;AAEd;AACA,YAAKA,OAAO,KAAK,GAAjB,EAAuB;AAEtBA,iBAAO,GAAGplB,IAAV,CAFsB,CAIvB;AACC,SALD,MAKO,IAAKA,IAAI,KAAK,GAAT,IAAgBA,IAAI,KAAKolB,OAA9B,EAAwC;AAE9C;AACAC,cAAI,GAAGN,UAAU,CAAE/kB,IAAI,GAAG,GAAP,GAAaolB,OAAf,CAAV,IAAsCL,UAAU,CAAE,OAAOK,OAAT,CAAvD,CAH8C,CAK9C;;AACA,cAAK,CAACC,IAAN,EAAa;AACZ,iBAAMF,KAAN,IAAeJ,UAAf,EAA4B;AAE3B;AACAxuB,iBAAG,GAAG4uB,KAAK,CAACj3B,KAAN,CAAa,GAAb,CAAN;;AACA,kBAAKqI,GAAG,CAAE,CAAF,CAAH,KAAa6uB,OAAlB,EAA4B;AAE3B;AACAC,oBAAI,GAAGN,UAAU,CAAE/kB,IAAI,GAAG,GAAP,GAAazJ,GAAG,CAAE,CAAF,CAAlB,CAAV,IACNwuB,UAAU,CAAE,OAAOxuB,GAAG,CAAE,CAAF,CAAZ,CADX;;AAEA,oBAAK8uB,IAAL,EAAY;AAEX;AACA,sBAAKA,IAAI,KAAK,IAAd,EAAqB;AACpBA,wBAAI,GAAGN,UAAU,CAAEI,KAAF,CAAjB,CADoB,CAGrB;AACC,mBAJD,MAIO,IAAKJ,UAAU,CAAEI,KAAF,CAAV,KAAwB,IAA7B,EAAoC;AAC1CC,2BAAO,GAAG7uB,GAAG,CAAE,CAAF,CAAb;AACAstB,6BAAS,CAACx8B,OAAV,CAAmBkP,GAAG,CAAE,CAAF,CAAtB;AACA;;AACD;AACA;AACD;AACD;AACD,WA/B6C,CAiC9C;;;AACA,cAAK8uB,IAAI,KAAK,IAAd,EAAqB;AAEpB;AACA,gBAAKA,IAAI,IAAI3C,CAAC,CAAC8C,MAAf,EAAwB;AACvBP,sBAAQ,GAAGI,IAAI,CAAEJ,QAAF,CAAf;AACA,aAFD,MAEO;AACN,kBAAI;AACHA,wBAAQ,GAAGI,IAAI,CAAEJ,QAAF,CAAf;AACA,eAFD,CAEE,OAAQzyB,CAAR,EAAY;AACb,uBAAO;AACN4Q,uBAAK,EAAE,aADD;AAENzW,uBAAK,EAAE04B,IAAI,GAAG7yB,CAAH,GAAO,wBAAwBwN,IAAxB,GAA+B,MAA/B,GAAwColB;AAFpD,iBAAP;AAIA;AACD;AACD;AACD;AACD;AACD;;AAED,WAAO;AAAEhiB,WAAK,EAAE,SAAT;AAAoBrf,UAAI,EAAEkhC;AAA1B,KAAP;AACA;;AAED96B,QAAM,CAACpF,MAAP,CAAe;AAEd;AACA0gC,UAAM,EAAE,CAHM;AAKd;AACAC,gBAAY,EAAE,EANA;AAOdC,QAAI,EAAE,EAPQ;AASdpB,gBAAY,EAAE;AACbqB,SAAG,EAAEprB,QAAQ,CAACG,IADD;AAEb3U,UAAI,EAAE,KAFO;AAGb6/B,aAAO,EAAE1C,cAAc,CAAC3vB,IAAf,CAAqBgH,QAAQ,CAACsrB,QAA9B,CAHI;AAIbl+B,YAAM,EAAE,IAJK;AAKbm+B,iBAAW,EAAE,IALA;AAMbC,WAAK,EAAE,IANM;AAObC,iBAAW,EAAE,kDAPA;;AASb;;;;;;;;;;;AAYAC,aAAO,EAAE;AACR,aAAK3C,QADG;AAER15B,YAAI,EAAE,YAFE;AAGR2pB,YAAI,EAAE,WAHE;AAIRna,WAAG,EAAE,2BAJG;AAKR8sB,YAAI,EAAE;AALE,OArBI;AA6BbpmB,cAAQ,EAAE;AACT1G,WAAG,EAAE,SADI;AAETma,YAAI,EAAE,QAFG;AAGT2S,YAAI,EAAE;AAHG,OA7BG;AAmCbb,oBAAc,EAAE;AACfjsB,WAAG,EAAE,aADU;AAEfxP,YAAI,EAAE,cAFS;AAGfs8B,YAAI,EAAE;AAHS,OAnCH;AAyCb;AACA;AACApB,gBAAU,EAAE;AAEX;AACA,kBAAUrzB,MAHC;AAKX;AACA,qBAAa,IANF;AAQX;AACA,qBAAamW,IAAI,CAACC,KATP;AAWX;AACA,oBAAY3d,MAAM,CAAC63B;AAZR,OA3CC;AA0Db;AACA;AACA;AACA;AACAsC,iBAAW,EAAE;AACZsB,WAAG,EAAE,IADO;AAEZv7B,eAAO,EAAE;AAFG;AA9DA,KATA;AA6Ed;AACA;AACA;AACA+7B,aAAS,EAAE,UAAUl6B,MAAV,EAAkBtH,QAAlB,EAA6B;AACvC,aAAOA,QAAQ,GAEd;AACAy/B,gBAAU,CAAEA,UAAU,CAAEn4B,MAAF,EAAU/B,MAAM,CAACo6B,YAAjB,CAAZ,EAA6C3/B,QAA7C,CAHI,GAKd;AACAy/B,gBAAU,CAAEl6B,MAAM,CAACo6B,YAAT,EAAuBr4B,MAAvB,CANX;AAOA,KAxFa;AA0Fdm6B,iBAAa,EAAE5C,2BAA2B,CAAE3G,UAAF,CA1F5B;AA2FdwJ,iBAAa,EAAE7C,2BAA2B,CAAEH,UAAF,CA3F5B;AA6Fd;AACAiD,QAAI,EAAE,UAAUX,GAAV,EAAe/5B,OAAf,EAAyB;AAE9B;AACA,UAAK,OAAO+5B,GAAP,KAAe,QAApB,EAA+B;AAC9B/5B,eAAO,GAAG+5B,GAAV;AACAA,WAAG,GAAGt5B,SAAN;AACA,OAN6B,CAQ9B;;;AACAT,aAAO,GAAGA,OAAO,IAAI,EAArB;AAEA,UAAI26B,SAAJ;AAAA,UAEC;AACAC,cAHD;AAAA,UAKC;AACAC,2BAND;AAAA,UAOCC,eAPD;AAAA,UASC;AACAC,kBAVD;AAAA,UAYC;AACAC,eAbD;AAAA,UAeC;AACA9gB,eAhBD;AAAA,UAkBC;AACA+gB,iBAnBD;AAAA,UAqBC;AACAzjC,OAtBD;AAAA,UAwBC;AACA0jC,cAzBD;AAAA,UA2BC;AACArE,OAAC,GAAGv4B,MAAM,CAACi8B,SAAP,CAAkB,EAAlB,EAAsBv6B,OAAtB,CA5BL;AAAA,UA8BC;AACAm7B,qBAAe,GAAGtE,CAAC,CAACr4B,OAAF,IAAaq4B,CA/BhC;AAAA,UAiCC;AACAuE,wBAAkB,GAAGvE,CAAC,CAACr4B,OAAF,KAClB28B,eAAe,CAAC99B,QAAhB,IAA4B89B,eAAe,CAACx8B,MAD1B,IAEnBL,MAAM,CAAE68B,eAAF,CAFa,GAGnB78B,MAAM,CAAChH,KArCV;AAAA,UAuCC;AACAmgB,cAAQ,GAAGnZ,MAAM,CAAC8Y,QAAP,EAxCZ;AAAA,UAyCCikB,gBAAgB,GAAG/8B,MAAM,CAACmX,SAAP,CAAkB,aAAlB,CAzCpB;AAAA,UA2CC;AACA6lB,gBAAU,GAAGzE,CAAC,CAACyE,UAAF,IAAgB,EA5C9B;AAAA,UA8CC;AACAC,oBAAc,GAAG,EA/ClB;AAAA,UAgDCC,mBAAmB,GAAG,EAhDvB;AAAA,UAkDC;AACAC,cAAQ,GAAG,UAnDZ;AAAA,UAqDC;AACAvD,WAAK,GAAG;AACP/d,kBAAU,EAAE,CADL;AAGP;AACA8e,yBAAiB,EAAE,UAAU1wB,GAAV,EAAgB;AAClC,cAAIvB,KAAJ;;AACA,cAAKkT,SAAL,EAAiB;AAChB,gBAAK,CAAC4gB,eAAN,EAAwB;AACvBA,6BAAe,GAAG,EAAlB;;AACA,qBAAU9zB,KAAK,GAAGqwB,QAAQ,CAAChwB,IAAT,CAAewzB,qBAAf,CAAlB,EAA6D;AAC5DC,+BAAe,CAAE9zB,KAAK,CAAE,CAAF,CAAL,CAAW1E,WAAX,EAAF,CAAf,GAA8C0E,KAAK,CAAE,CAAF,CAAnD;AACA;AACD;;AACDA,iBAAK,GAAG8zB,eAAe,CAAEvyB,GAAG,CAACjG,WAAJ,EAAF,CAAvB;AACA;;AACD,iBAAO0E,KAAK,IAAI,IAAT,GAAgB,IAAhB,GAAuBA,KAA9B;AACA,SAhBM;AAkBP;AACA00B,6BAAqB,EAAE,YAAW;AACjC,iBAAOxhB,SAAS,GAAG2gB,qBAAH,GAA2B,IAA3C;AACA,SArBM;AAuBP;AACAc,wBAAgB,EAAE,UAAU17B,IAAV,EAAgBgC,KAAhB,EAAwB;AACzC,cAAKiY,SAAS,IAAI,IAAlB,EAAyB;AACxBja,gBAAI,GAAGu7B,mBAAmB,CAAEv7B,IAAI,CAACqC,WAAL,EAAF,CAAnB,GACNk5B,mBAAmB,CAAEv7B,IAAI,CAACqC,WAAL,EAAF,CAAnB,IAA6CrC,IAD9C;AAEAs7B,0BAAc,CAAEt7B,IAAF,CAAd,GAAyBgC,KAAzB;AACA;;AACD,iBAAO,IAAP;AACA,SA/BM;AAiCP;AACA25B,wBAAgB,EAAE,UAAUzhC,IAAV,EAAiB;AAClC,cAAK+f,SAAS,IAAI,IAAlB,EAAyB;AACxB2c,aAAC,CAACmC,QAAF,GAAa7+B,IAAb;AACA;;AACD,iBAAO,IAAP;AACA,SAvCM;AAyCP;AACAmhC,kBAAU,EAAE,UAAU/7B,GAAV,EAAgB;AAC3B,cAAI5B,IAAJ;;AACA,cAAK4B,GAAL,EAAW;AACV,gBAAK2a,SAAL,EAAiB;AAEhB;AACAge,mBAAK,CAAC1gB,MAAN,CAAcjY,GAAG,CAAE24B,KAAK,CAAC2D,MAAR,CAAjB;AACA,aAJD,MAIO;AAEN;AACA,mBAAMl+B,IAAN,IAAc4B,GAAd,EAAoB;AACnB+7B,0BAAU,CAAE39B,IAAF,CAAV,GAAqB,CAAE29B,UAAU,CAAE39B,IAAF,CAAZ,EAAsB4B,GAAG,CAAE5B,IAAF,CAAzB,CAArB;AACA;AACD;AACD;;AACD,iBAAO,IAAP;AACA,SA1DM;AA4DP;AACAm+B,aAAK,EAAE,UAAUC,UAAV,EAAuB;AAC7B,cAAIC,SAAS,GAAGD,UAAU,IAAIN,QAA9B;;AACA,cAAKd,SAAL,EAAiB;AAChBA,qBAAS,CAACmB,KAAV,CAAiBE,SAAjB;AACA;;AACDt4B,cAAI,CAAE,CAAF,EAAKs4B,SAAL,CAAJ;AACA,iBAAO,IAAP;AACA;AApEM,OAtDT,CAX8B,CAwI9B;;AACAvkB,cAAQ,CAACR,OAAT,CAAkBihB,KAAlB,EAzI8B,CA2I9B;AACA;AACA;;AACArB,OAAC,CAACkD,GAAF,GAAQ,CAAE,CAAEA,GAAG,IAAIlD,CAAC,CAACkD,GAAT,IAAgBprB,QAAQ,CAACG,IAA3B,IAAoC,EAAtC,EACNlO,OADM,CACG42B,SADH,EACc7oB,QAAQ,CAACsrB,QAAT,GAAoB,IADlC,CAAR,CA9I8B,CAiJ9B;;AACApD,OAAC,CAAC18B,IAAF,GAAS6F,OAAO,CAACgX,MAAR,IAAkBhX,OAAO,CAAC7F,IAA1B,IAAkC08B,CAAC,CAAC7f,MAApC,IAA8C6f,CAAC,CAAC18B,IAAzD,CAlJ8B,CAoJ9B;;AACA08B,OAAC,CAACmB,SAAF,GAAc,CAAEnB,CAAC,CAACkB,QAAF,IAAc,GAAhB,EAAsBz1B,WAAtB,GAAoC0E,KAApC,CAA2CqO,aAA3C,KAA8D,CAAE,EAAF,CAA5E,CArJ8B,CAuJ9B;;AACA,UAAKwhB,CAAC,CAACoF,WAAF,IAAiB,IAAtB,EAA6B;AAC5BjB,iBAAS,GAAGjkC,QAAQ,CAACgH,aAAT,CAAwB,GAAxB,CAAZ,CAD4B,CAG5B;AACA;AACA;;AACA,YAAI;AACHi9B,mBAAS,CAAClsB,IAAV,GAAiB+nB,CAAC,CAACkD,GAAnB,CADG,CAGH;AACA;;AACAiB,mBAAS,CAAClsB,IAAV,GAAiBksB,SAAS,CAAClsB,IAA3B;AACA+nB,WAAC,CAACoF,WAAF,GAAgBtE,YAAY,CAACsC,QAAb,GAAwB,IAAxB,GAA+BtC,YAAY,CAACuE,IAA5C,KACflB,SAAS,CAACf,QAAV,GAAqB,IAArB,GAA4Be,SAAS,CAACkB,IADvC;AAEA,SARD,CAQE,OAAQv1B,CAAR,EAAY;AAEb;AACA;AACAkwB,WAAC,CAACoF,WAAF,GAAgB,IAAhB;AACA;AACD,OA5K6B,CA8K9B;;;AACA,UAAKpF,CAAC,CAAC3+B,IAAF,IAAU2+B,CAAC,CAACqD,WAAZ,IAA2B,OAAOrD,CAAC,CAAC3+B,IAAT,KAAkB,QAAlD,EAA6D;AAC5D2+B,SAAC,CAAC3+B,IAAF,GAASoG,MAAM,CAACs4B,KAAP,CAAcC,CAAC,CAAC3+B,IAAhB,EAAsB2+B,CAAC,CAACF,WAAxB,CAAT;AACA,OAjL6B,CAmL9B;;;AACAsB,mCAA6B,CAAEhH,UAAF,EAAc4F,CAAd,EAAiB72B,OAAjB,EAA0Bk4B,KAA1B,CAA7B,CApL8B,CAsL9B;;AACA,UAAKhe,SAAL,EAAiB;AAChB,eAAOge,KAAP;AACA,OAzL6B,CA2L9B;AACA;;;AACA+C,iBAAW,GAAG38B,MAAM,CAAChH,KAAP,IAAgBu/B,CAAC,CAAC96B,MAAhC,CA7L8B,CA+L9B;;AACA,UAAKk/B,WAAW,IAAI38B,MAAM,CAACs7B,MAAP,OAAoB,CAAxC,EAA4C;AAC3Ct7B,cAAM,CAAChH,KAAP,CAAa8B,OAAb,CAAsB,WAAtB;AACA,OAlM6B,CAoM9B;;;AACAy9B,OAAC,CAAC18B,IAAF,GAAS08B,CAAC,CAAC18B,IAAF,CAAO4gB,WAAP,EAAT,CArM8B,CAuM9B;;AACA8b,OAAC,CAACsF,UAAF,GAAe,CAAC5E,UAAU,CAAC5vB,IAAX,CAAiBkvB,CAAC,CAAC18B,IAAnB,CAAhB,CAxM8B,CA0M9B;AACA;AACA;;AACAygC,cAAQ,GAAG/D,CAAC,CAACkD,GAAF,CAAMn5B,OAAN,CAAeu2B,KAAf,EAAsB,EAAtB,CAAX,CA7M8B,CA+M9B;;AACA,UAAK,CAACN,CAAC,CAACsF,UAAR,EAAqB;AAEpB;AACAjB,gBAAQ,GAAGrE,CAAC,CAACkD,GAAF,CAAM9iC,KAAN,CAAa2jC,QAAQ,CAACnjC,MAAtB,CAAX,CAHoB,CAKpB;;AACA,YAAKo/B,CAAC,CAAC3+B,IAAF,KAAY2+B,CAAC,CAACqD,WAAF,IAAiB,OAAOrD,CAAC,CAAC3+B,IAAT,KAAkB,QAA/C,CAAL,EAAiE;AAChE0iC,kBAAQ,IAAI,CAAE1E,MAAM,CAACvuB,IAAP,CAAaizB,QAAb,IAA0B,GAA1B,GAAgC,GAAlC,IAA0C/D,CAAC,CAAC3+B,IAAxD,CADgE,CAGhE;;AACA,iBAAO2+B,CAAC,CAAC3+B,IAAT;AACA,SAXmB,CAapB;;;AACA,YAAK2+B,CAAC,CAACvuB,KAAF,KAAY,KAAjB,EAAyB;AACxBsyB,kBAAQ,GAAGA,QAAQ,CAACh6B,OAAT,CAAkBw2B,UAAlB,EAA8B,IAA9B,CAAX;AACA8D,kBAAQ,GAAG,CAAEhF,MAAM,CAACvuB,IAAP,CAAaizB,QAAb,IAA0B,GAA1B,GAAgC,GAAlC,IAA0C,IAA1C,GAAmD3E,KAAK,EAAxD,GAA+DiF,QAA1E;AACA,SAjBmB,CAmBpB;;;AACArE,SAAC,CAACkD,GAAF,GAAQa,QAAQ,GAAGM,QAAnB,CApBoB,CAsBrB;AACC,OAvBD,MAuBO,IAAKrE,CAAC,CAAC3+B,IAAF,IAAU2+B,CAAC,CAACqD,WAAZ,IACX,CAAErD,CAAC,CAACuD,WAAF,IAAiB,EAAnB,EAAwBz9B,OAAxB,CAAiC,mCAAjC,MAA2E,CADrE,EACyE;AAC/Ek6B,SAAC,CAAC3+B,IAAF,GAAS2+B,CAAC,CAAC3+B,IAAF,CAAO0I,OAAP,CAAgBs2B,GAAhB,EAAqB,GAArB,CAAT;AACA,OA1O6B,CA4O9B;;;AACA,UAAKL,CAAC,CAACuF,UAAP,EAAoB;AACnB,YAAK99B,MAAM,CAACu7B,YAAP,CAAqBe,QAArB,CAAL,EAAuC;AACtC1C,eAAK,CAACyD,gBAAN,CAAwB,mBAAxB,EAA6Cr9B,MAAM,CAACu7B,YAAP,CAAqBe,QAArB,CAA7C;AACA;;AACD,YAAKt8B,MAAM,CAACw7B,IAAP,CAAac,QAAb,CAAL,EAA+B;AAC9B1C,eAAK,CAACyD,gBAAN,CAAwB,eAAxB,EAAyCr9B,MAAM,CAACw7B,IAAP,CAAac,QAAb,CAAzC;AACA;AACD,OApP6B,CAsP9B;;;AACA,UAAK/D,CAAC,CAAC3+B,IAAF,IAAU2+B,CAAC,CAACsF,UAAZ,IAA0BtF,CAAC,CAACuD,WAAF,KAAkB,KAA5C,IAAqDp6B,OAAO,CAACo6B,WAAlE,EAAgF;AAC/ElC,aAAK,CAACyD,gBAAN,CAAwB,cAAxB,EAAwC9E,CAAC,CAACuD,WAA1C;AACA,OAzP6B,CA2P9B;;;AACAlC,WAAK,CAACyD,gBAAN,CACC,QADD,EAEC9E,CAAC,CAACmB,SAAF,CAAa,CAAb,KAAoBnB,CAAC,CAACwD,OAAF,CAAWxD,CAAC,CAACmB,SAAF,CAAa,CAAb,CAAX,CAApB,GACCnB,CAAC,CAACwD,OAAF,CAAWxD,CAAC,CAACmB,SAAF,CAAa,CAAb,CAAX,KACGnB,CAAC,CAACmB,SAAF,CAAa,CAAb,MAAqB,GAArB,GAA2B,OAAON,QAAP,GAAkB,UAA7C,GAA0D,EAD7D,CADD,GAGCb,CAAC,CAACwD,OAAF,CAAW,GAAX,CALF,EA5P8B,CAoQ9B;;AACA,WAAM7iC,CAAN,IAAWq/B,CAAC,CAACwF,OAAb,EAAuB;AACtBnE,aAAK,CAACyD,gBAAN,CAAwBnkC,CAAxB,EAA2Bq/B,CAAC,CAACwF,OAAF,CAAW7kC,CAAX,CAA3B;AACA,OAvQ6B,CAyQ9B;;;AACA,UAAKq/B,CAAC,CAACyF,UAAF,KACFzF,CAAC,CAACyF,UAAF,CAAa5iC,IAAb,CAAmByhC,eAAnB,EAAoCjD,KAApC,EAA2CrB,CAA3C,MAAmD,KAAnD,IAA4D3c,SAD1D,CAAL,EAC6E;AAE5E;AACA,eAAOge,KAAK,CAAC4D,KAAN,EAAP;AACA,OA/Q6B,CAiR9B;;;AACAL,cAAQ,GAAG,OAAX,CAlR8B,CAoR9B;;AACAJ,sBAAgB,CAAC3mB,GAAjB,CAAsBmiB,CAAC,CAACrF,QAAxB;AACA0G,WAAK,CAACx0B,IAAN,CAAYmzB,CAAC,CAAC0F,OAAd;AACArE,WAAK,CAAChhB,IAAN,CAAY2f,CAAC,CAAC/1B,KAAd,EAvR8B,CAyR9B;;AACA65B,eAAS,GAAG1C,6BAA6B,CAAER,UAAF,EAAcZ,CAAd,EAAiB72B,OAAjB,EAA0Bk4B,KAA1B,CAAzC,CA1R8B,CA4R9B;;AACA,UAAK,CAACyC,SAAN,EAAkB;AACjBj3B,YAAI,CAAE,CAAC,CAAH,EAAM,cAAN,CAAJ;AACA,OAFD,MAEO;AACNw0B,aAAK,CAAC/d,UAAN,GAAmB,CAAnB,CADM,CAGN;;AACA,YAAK8gB,WAAL,EAAmB;AAClBG,4BAAkB,CAAChiC,OAAnB,CAA4B,UAA5B,EAAwC,CAAE8+B,KAAF,EAASrB,CAAT,CAAxC;AACA,SANK,CAQN;;;AACA,YAAK3c,SAAL,EAAiB;AAChB,iBAAOge,KAAP;AACA,SAXK,CAaN;;;AACA,YAAKrB,CAAC,CAACsD,KAAF,IAAWtD,CAAC,CAAC3D,OAAF,GAAY,CAA5B,EAAgC;AAC/B6H,sBAAY,GAAGvhC,MAAM,CAACkC,UAAP,CAAmB,YAAW;AAC5Cw8B,iBAAK,CAAC4D,KAAN,CAAa,SAAb;AACA,WAFc,EAEZjF,CAAC,CAAC3D,OAFU,CAAf;AAGA;;AAED,YAAI;AACHhZ,mBAAS,GAAG,KAAZ;AACAygB,mBAAS,CAAC6B,IAAV,CAAgBjB,cAAhB,EAAgC73B,IAAhC;AACA,SAHD,CAGE,OAAQiD,CAAR,EAAY;AAEb;AACA,cAAKuT,SAAL,EAAiB;AAChB,kBAAMvT,CAAN;AACA,WALY,CAOb;;;AACAjD,cAAI,CAAE,CAAC,CAAH,EAAMiD,CAAN,CAAJ;AACA;AACD,OAhU6B,CAkU9B;;;AACA,eAASjD,IAAT,CAAem4B,MAAf,EAAuBY,gBAAvB,EAAyC7D,SAAzC,EAAoDyD,OAApD,EAA8D;AAC7D,YAAIhD,SAAJ;AAAA,YAAekD,OAAf;AAAA,YAAwBz7B,KAAxB;AAAA,YAA+Bs4B,QAA/B;AAAA,YAAyCsD,QAAzC;AAAA,YACCX,UAAU,GAAGU,gBADd,CAD6D,CAI7D;;AACA,YAAKviB,SAAL,EAAiB;AAChB;AACA;;AAEDA,iBAAS,GAAG,IAAZ,CAT6D,CAW7D;;AACA,YAAK6gB,YAAL,EAAoB;AACnBvhC,gBAAM,CAACiC,YAAP,CAAqBs/B,YAArB;AACA,SAd4D,CAgB7D;AACA;;;AACAJ,iBAAS,GAAGl6B,SAAZ,CAlB6D,CAoB7D;;AACAo6B,6BAAqB,GAAGwB,OAAO,IAAI,EAAnC,CArB6D,CAuB7D;;AACAnE,aAAK,CAAC/d,UAAN,GAAmB0hB,MAAM,GAAG,CAAT,GAAa,CAAb,GAAiB,CAApC,CAxB6D,CA0B7D;;AACAxC,iBAAS,GAAGwC,MAAM,IAAI,GAAV,IAAiBA,MAAM,GAAG,GAA1B,IAAiCA,MAAM,KAAK,GAAxD,CA3B6D,CA6B7D;;AACA,YAAKjD,SAAL,EAAiB;AAChBQ,kBAAQ,GAAGT,mBAAmB,CAAE9B,CAAF,EAAKqB,KAAL,EAAYU,SAAZ,CAA9B;AACA,SAhC4D,CAkC7D;;;AACAQ,gBAAQ,GAAGD,WAAW,CAAEtC,CAAF,EAAKuC,QAAL,EAAelB,KAAf,EAAsBmB,SAAtB,CAAtB,CAnC6D,CAqC7D;;AACA,YAAKA,SAAL,EAAiB;AAEhB;AACA,cAAKxC,CAAC,CAACuF,UAAP,EAAoB;AACnBM,oBAAQ,GAAGxE,KAAK,CAACe,iBAAN,CAAyB,eAAzB,CAAX;;AACA,gBAAKyD,QAAL,EAAgB;AACfp+B,oBAAM,CAACu7B,YAAP,CAAqBe,QAArB,IAAkC8B,QAAlC;AACA;;AACDA,oBAAQ,GAAGxE,KAAK,CAACe,iBAAN,CAAyB,MAAzB,CAAX;;AACA,gBAAKyD,QAAL,EAAgB;AACfp+B,oBAAM,CAACw7B,IAAP,CAAac,QAAb,IAA0B8B,QAA1B;AACA;AACD,WAZe,CAchB;;;AACA,cAAKb,MAAM,KAAK,GAAX,IAAkBhF,CAAC,CAAC18B,IAAF,KAAW,MAAlC,EAA2C;AAC1C4hC,sBAAU,GAAG,WAAb,CAD0C,CAG3C;AACC,WAJD,MAIO,IAAKF,MAAM,KAAK,GAAhB,EAAsB;AAC5BE,sBAAU,GAAG,aAAb,CAD4B,CAG7B;AACC,WAJM,MAIA;AACNA,sBAAU,GAAG3C,QAAQ,CAAC7hB,KAAtB;AACAglB,mBAAO,GAAGnD,QAAQ,CAAClhC,IAAnB;AACA4I,iBAAK,GAAGs4B,QAAQ,CAACt4B,KAAjB;AACAu4B,qBAAS,GAAG,CAACv4B,KAAb;AACA;AACD,SA7BD,MA6BO;AAEN;AACAA,eAAK,GAAGi7B,UAAR;;AACA,cAAKF,MAAM,IAAI,CAACE,UAAhB,EAA6B;AAC5BA,sBAAU,GAAG,OAAb;;AACA,gBAAKF,MAAM,GAAG,CAAd,EAAkB;AACjBA,oBAAM,GAAG,CAAT;AACA;AACD;AACD,SA7E4D,CA+E7D;;;AACA3D,aAAK,CAAC2D,MAAN,GAAeA,MAAf;AACA3D,aAAK,CAAC6D,UAAN,GAAmB,CAAEU,gBAAgB,IAAIV,UAAtB,IAAqC,EAAxD,CAjF6D,CAmF7D;;AACA,YAAK1C,SAAL,EAAiB;AAChB5hB,kBAAQ,CAACiB,WAAT,CAAsByiB,eAAtB,EAAuC,CAAEoB,OAAF,EAAWR,UAAX,EAAuB7D,KAAvB,CAAvC;AACA,SAFD,MAEO;AACNzgB,kBAAQ,CAACqB,UAAT,CAAqBqiB,eAArB,EAAsC,CAAEjD,KAAF,EAAS6D,UAAT,EAAqBj7B,KAArB,CAAtC;AACA,SAxF4D,CA0F7D;;;AACAo3B,aAAK,CAACoD,UAAN,CAAkBA,UAAlB;AACAA,kBAAU,GAAG76B,SAAb;;AAEA,YAAKw6B,WAAL,EAAmB;AAClBG,4BAAkB,CAAChiC,OAAnB,CAA4BigC,SAAS,GAAG,aAAH,GAAmB,WAAxD,EACC,CAAEnB,KAAF,EAASrB,CAAT,EAAYwC,SAAS,GAAGkD,OAAH,GAAaz7B,KAAlC,CADD;AAEA,SAjG4D,CAmG7D;;;AACAu6B,wBAAgB,CAAC9kB,QAAjB,CAA2B4kB,eAA3B,EAA4C,CAAEjD,KAAF,EAAS6D,UAAT,CAA5C;;AAEA,YAAKd,WAAL,EAAmB;AAClBG,4BAAkB,CAAChiC,OAAnB,CAA4B,cAA5B,EAA4C,CAAE8+B,KAAF,EAASrB,CAAT,CAA5C,EADkB,CAGlB;;AACA,cAAK,CAAG,GAAEv4B,MAAM,CAACs7B,MAAjB,EAA4B;AAC3Bt7B,kBAAM,CAAChH,KAAP,CAAa8B,OAAb,CAAsB,UAAtB;AACA;AACD;AACD;;AAED,aAAO8+B,KAAP;AACA,KAlhBa;AAohBdyE,WAAO,EAAE,UAAU5C,GAAV,EAAe7hC,IAAf,EAAqBoH,QAArB,EAAgC;AACxC,aAAOhB,MAAM,CAACQ,GAAP,CAAYi7B,GAAZ,EAAiB7hC,IAAjB,EAAuBoH,QAAvB,EAAiC,MAAjC,CAAP;AACA,KAthBa;AAwhBds9B,aAAS,EAAE,UAAU7C,GAAV,EAAez6B,QAAf,EAA0B;AACpC,aAAOhB,MAAM,CAACQ,GAAP,CAAYi7B,GAAZ,EAAiBt5B,SAAjB,EAA4BnB,QAA5B,EAAsC,QAAtC,CAAP;AACA;AA1hBa,GAAf;AA6hBAhB,QAAM,CAACe,IAAP,CAAa,CAAE,KAAF,EAAS,MAAT,CAAb,EAAgC,UAAU7H,CAAV,EAAawf,MAAb,EAAsB;AACrD1Y,UAAM,CAAE0Y,MAAF,CAAN,GAAmB,UAAU+iB,GAAV,EAAe7hC,IAAf,EAAqBoH,QAArB,EAA+BnF,IAA/B,EAAsC;AAExD;AACA,UAAKgD,UAAU,CAAEjF,IAAF,CAAf,EAA0B;AACzBiC,YAAI,GAAGA,IAAI,IAAImF,QAAf;AACAA,gBAAQ,GAAGpH,IAAX;AACAA,YAAI,GAAGuI,SAAP;AACA,OAPuD,CASxD;;;AACA,aAAOnC,MAAM,CAACo8B,IAAP,CAAap8B,MAAM,CAACpF,MAAP,CAAe;AAClC6gC,WAAG,EAAEA,GAD6B;AAElC5/B,YAAI,EAAE6c,MAF4B;AAGlC+gB,gBAAQ,EAAE59B,IAHwB;AAIlCjC,YAAI,EAAEA,IAJ4B;AAKlCqkC,eAAO,EAAEj9B;AALyB,OAAf,EAMjBhB,MAAM,CAACiC,aAAP,CAAsBw5B,GAAtB,KAA+BA,GANd,CAAb,CAAP;AAOA,KAjBD;AAkBA,GAnBD;;AAsBAz7B,QAAM,CAACspB,QAAP,GAAkB,UAAUmS,GAAV,EAAgB;AACjC,WAAOz7B,MAAM,CAACo8B,IAAP,CAAa;AACnBX,SAAG,EAAEA,GADc;AAGnB;AACA5/B,UAAI,EAAE,KAJa;AAKnB49B,cAAQ,EAAE,QALS;AAMnBzvB,WAAK,EAAE,IANY;AAOnB6xB,WAAK,EAAE,KAPY;AAQnBp+B,YAAM,EAAE,KARW;AASnB,gBAAU;AATS,KAAb,CAAP;AAWA,GAZD;;AAeAuC,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjB2jC,WAAO,EAAE,UAAUlV,IAAV,EAAiB;AACzB,UAAIzH,IAAJ;;AAEA,UAAK,KAAM,CAAN,CAAL,EAAiB;AAChB,YAAK/iB,UAAU,CAAEwqB,IAAF,CAAf,EAA0B;AACzBA,cAAI,GAAGA,IAAI,CAACjuB,IAAL,CAAW,KAAM,CAAN,CAAX,CAAP;AACA,SAHe,CAKhB;;;AACAwmB,YAAI,GAAG5hB,MAAM,CAAEqpB,IAAF,EAAQ,KAAM,CAAN,EAAUvgB,aAAlB,CAAN,CAAwC3H,EAAxC,CAA4C,CAA5C,EAAgDW,KAAhD,CAAuD,IAAvD,CAAP;;AAEA,YAAK,KAAM,CAAN,EAAUjC,UAAf,EAA4B;AAC3B+hB,cAAI,CAACqI,YAAL,CAAmB,KAAM,CAAN,CAAnB;AACA;;AAEDrI,YAAI,CAAC3gB,GAAL,CAAU,YAAW;AACpB,cAAI/G,IAAI,GAAG,IAAX;;AAEA,iBAAQA,IAAI,CAACskC,iBAAb,EAAiC;AAChCtkC,gBAAI,GAAGA,IAAI,CAACskC,iBAAZ;AACA;;AAED,iBAAOtkC,IAAP;AACA,SARD,EAQI6vB,MARJ,CAQY,IARZ;AASA;;AAED,aAAO,IAAP;AACA,KA5BgB;AA8BjB0U,aAAS,EAAE,UAAUpV,IAAV,EAAiB;AAC3B,UAAKxqB,UAAU,CAAEwqB,IAAF,CAAf,EAA0B;AACzB,eAAO,KAAKtoB,IAAL,CAAW,UAAU7H,CAAV,EAAc;AAC/B8G,gBAAM,CAAE,IAAF,CAAN,CAAey+B,SAAf,CAA0BpV,IAAI,CAACjuB,IAAL,CAAW,IAAX,EAAiBlC,CAAjB,CAA1B;AACA,SAFM,CAAP;AAGA;;AAED,aAAO,KAAK6H,IAAL,CAAW,YAAW;AAC5B,YAAIqU,IAAI,GAAGpV,MAAM,CAAE,IAAF,CAAjB;AAAA,YACC4V,QAAQ,GAAGR,IAAI,CAACQ,QAAL,EADZ;;AAGA,YAAKA,QAAQ,CAACzc,MAAd,EAAuB;AACtByc,kBAAQ,CAAC2oB,OAAT,CAAkBlV,IAAlB;AAEA,SAHD,MAGO;AACNjU,cAAI,CAAC2U,MAAL,CAAaV,IAAb;AACA;AACD,OAVM,CAAP;AAWA,KAhDgB;AAkDjBzH,QAAI,EAAE,UAAUyH,IAAV,EAAiB;AACtB,UAAIqV,cAAc,GAAG7/B,UAAU,CAAEwqB,IAAF,CAA/B;AAEA,aAAO,KAAKtoB,IAAL,CAAW,UAAU7H,CAAV,EAAc;AAC/B8G,cAAM,CAAE,IAAF,CAAN,CAAeu+B,OAAf,CAAwBG,cAAc,GAAGrV,IAAI,CAACjuB,IAAL,CAAW,IAAX,EAAiBlC,CAAjB,CAAH,GAA0BmwB,IAAhE;AACA,OAFM,CAAP;AAGA,KAxDgB;AA0DjBsV,UAAM,EAAE,UAAU1+B,QAAV,EAAqB;AAC5B,WAAKsP,MAAL,CAAatP,QAAb,EAAwBkV,GAAxB,CAA6B,MAA7B,EAAsCpU,IAAtC,CAA4C,YAAW;AACtDf,cAAM,CAAE,IAAF,CAAN,CAAeoqB,WAAf,CAA4B,KAAKhiB,UAAjC;AACA,OAFD;AAGA,aAAO,IAAP;AACA;AA/DgB,GAAlB;;AAmEApI,QAAM,CAACqN,IAAP,CAAYlH,OAAZ,CAAoB6qB,MAApB,GAA6B,UAAU92B,IAAV,EAAiB;AAC7C,WAAO,CAAC8F,MAAM,CAACqN,IAAP,CAAYlH,OAAZ,CAAoBy4B,OAApB,CAA6B1kC,IAA7B,CAAR;AACA,GAFD;;AAGA8F,QAAM,CAACqN,IAAP,CAAYlH,OAAZ,CAAoBy4B,OAApB,GAA8B,UAAU1kC,IAAV,EAAiB;AAC9C,WAAO,CAAC,EAAGA,IAAI,CAAC6xB,WAAL,IAAoB7xB,IAAI,CAAC2kC,YAAzB,IAAyC3kC,IAAI,CAAC+0B,cAAL,GAAsB91B,MAAlE,CAAR;AACA,GAFD;;AAOA6G,QAAM,CAACo6B,YAAP,CAAoB0E,GAApB,GAA0B,YAAW;AACpC,QAAI;AACH,aAAO,IAAI5jC,MAAM,CAAC6jC,cAAX,EAAP;AACA,KAFD,CAEE,OAAQ12B,CAAR,EAAY,CAAE;AAChB,GAJD;;AAMA,MAAI22B,gBAAgB,GAAG;AAErB;AACA,OAAG,GAHkB;AAKrB;AACA;AACA,UAAM;AAPe,GAAvB;AAAA,MASCC,YAAY,GAAGj/B,MAAM,CAACo6B,YAAP,CAAoB0E,GAApB,EAThB;AAWAlgC,SAAO,CAACsgC,IAAR,GAAe,CAAC,CAACD,YAAF,IAAoB,qBAAqBA,YAAxD;AACArgC,SAAO,CAACw9B,IAAR,GAAe6C,YAAY,GAAG,CAAC,CAACA,YAAhC;AAEAj/B,QAAM,CAACm8B,aAAP,CAAsB,UAAUz6B,OAAV,EAAoB;AACzC,QAAIV,QAAJ,EAAcm+B,aAAd,CADyC,CAGzC;;AACA,QAAKvgC,OAAO,CAACsgC,IAAR,IAAgBD,YAAY,IAAI,CAACv9B,OAAO,CAACi8B,WAA9C,EAA4D;AAC3D,aAAO;AACNO,YAAI,EAAE,UAAUH,OAAV,EAAmB7K,QAAnB,EAA8B;AACnC,cAAIh6B,CAAJ;AAAA,cACC4lC,GAAG,GAAGp9B,OAAO,CAACo9B,GAAR,EADP;AAGAA,aAAG,CAACM,IAAJ,CACC19B,OAAO,CAAC7F,IADT,EAEC6F,OAAO,CAAC+5B,GAFT,EAGC/5B,OAAO,CAACm6B,KAHT,EAICn6B,OAAO,CAAC29B,QAJT,EAKC39B,OAAO,CAACsP,QALT,EAJmC,CAYnC;;AACA,cAAKtP,OAAO,CAAC49B,SAAb,EAAyB;AACxB,iBAAMpmC,CAAN,IAAWwI,OAAO,CAAC49B,SAAnB,EAA+B;AAC9BR,iBAAG,CAAE5lC,CAAF,CAAH,GAAWwI,OAAO,CAAC49B,SAAR,CAAmBpmC,CAAnB,CAAX;AACA;AACD,WAjBkC,CAmBnC;;;AACA,cAAKwI,OAAO,CAACg5B,QAAR,IAAoBoE,GAAG,CAACxB,gBAA7B,EAAgD;AAC/CwB,eAAG,CAACxB,gBAAJ,CAAsB57B,OAAO,CAACg5B,QAA9B;AACA,WAtBkC,CAwBnC;AACA;AACA;AACA;AACA;;;AACA,cAAK,CAACh5B,OAAO,CAACi8B,WAAT,IAAwB,CAACI,OAAO,CAAE,kBAAF,CAArC,EAA8D;AAC7DA,mBAAO,CAAE,kBAAF,CAAP,GAAgC,gBAAhC;AACA,WA/BkC,CAiCnC;;;AACA,eAAM7kC,CAAN,IAAW6kC,OAAX,EAAqB;AACpBe,eAAG,CAACzB,gBAAJ,CAAsBnkC,CAAtB,EAAyB6kC,OAAO,CAAE7kC,CAAF,CAAhC;AACA,WApCkC,CAsCnC;;;AACA8H,kBAAQ,GAAG,UAAUnF,IAAV,EAAiB;AAC3B,mBAAO,YAAW;AACjB,kBAAKmF,QAAL,EAAgB;AACfA,wBAAQ,GAAGm+B,aAAa,GAAGL,GAAG,CAACS,MAAJ,GAC1BT,GAAG,CAACU,OAAJ,GAAcV,GAAG,CAACW,OAAJ,GAAcX,GAAG,CAACY,SAAJ,GAC3BZ,GAAG,CAACa,kBAAJ,GAAyB,IAF3B;;AAIA,oBAAK9jC,IAAI,KAAK,OAAd,EAAwB;AACvBijC,qBAAG,CAACtB,KAAJ;AACA,iBAFD,MAEO,IAAK3hC,IAAI,KAAK,OAAd,EAAwB;AAE9B;AACA;AACA;AACA,sBAAK,OAAOijC,GAAG,CAACvB,MAAX,KAAsB,QAA3B,EAAsC;AACrCrK,4BAAQ,CAAE,CAAF,EAAK,OAAL,CAAR;AACA,mBAFD,MAEO;AACNA,4BAAQ,EAEP;AACA4L,uBAAG,CAACvB,MAHG,EAIPuB,GAAG,CAACrB,UAJG,CAAR;AAMA;AACD,iBAfM,MAeA;AACNvK,0BAAQ,CACP8L,gBAAgB,CAAEF,GAAG,CAACvB,MAAN,CAAhB,IAAkCuB,GAAG,CAACvB,MAD/B,EAEPuB,GAAG,CAACrB,UAFG,EAIP;AACA;AACA;AACA,mBAAEqB,GAAG,CAACc,YAAJ,IAAoB,MAAtB,MAAmC,MAAnC,IACA,OAAOd,GAAG,CAACe,YAAX,KAA4B,QAD5B,GAEC;AAAEC,0BAAM,EAAEhB,GAAG,CAAChE;AAAd,mBAFD,GAGC;AAAEp7B,wBAAI,EAAEo/B,GAAG,CAACe;AAAZ,mBAVM,EAWPf,GAAG,CAAC1B,qBAAJ,EAXO,CAAR;AAaA;AACD;AACD,aAvCD;AAwCA,WAzCD,CAvCmC,CAkFnC;;;AACA0B,aAAG,CAACS,MAAJ,GAAav+B,QAAQ,EAArB;AACAm+B,uBAAa,GAAGL,GAAG,CAACU,OAAJ,GAAcV,GAAG,CAACY,SAAJ,GAAgB1+B,QAAQ,CAAE,OAAF,CAAtD,CApFmC,CAsFnC;AACA;AACA;;AACA,cAAK89B,GAAG,CAACW,OAAJ,KAAgBt9B,SAArB,EAAiC;AAChC28B,eAAG,CAACW,OAAJ,GAAcN,aAAd;AACA,WAFD,MAEO;AACNL,eAAG,CAACa,kBAAJ,GAAyB,YAAW;AAEnC;AACA,kBAAKb,GAAG,CAACjjB,UAAJ,KAAmB,CAAxB,EAA4B;AAE3B;AACA;AACA;AACA;AACA3gB,sBAAM,CAACkC,UAAP,CAAmB,YAAW;AAC7B,sBAAK4D,QAAL,EAAgB;AACfm+B,iCAAa;AACb;AACD,iBAJD;AAKA;AACD,aAfD;AAgBA,WA5GkC,CA8GnC;;;AACAn+B,kBAAQ,GAAGA,QAAQ,CAAE,OAAF,CAAnB;;AAEA,cAAI;AAEH;AACA89B,eAAG,CAACZ,IAAJ,CAAUx8B,OAAO,CAACm8B,UAAR,IAAsBn8B,OAAO,CAAC9H,IAA9B,IAAsC,IAAhD;AACA,WAJD,CAIE,OAAQyO,CAAR,EAAY;AAEb;AACA,gBAAKrH,QAAL,EAAgB;AACf,oBAAMqH,CAAN;AACA;AACD;AACD,SA7HK;AA+HNm1B,aAAK,EAAE,YAAW;AACjB,cAAKx8B,QAAL,EAAgB;AACfA,oBAAQ;AACR;AACD;AAnIK,OAAP;AAqIA;AACD,GA3ID,EA9tSiF,CA82SjF;;AACAhB,QAAM,CAACk8B,aAAP,CAAsB,UAAU3D,CAAV,EAAc;AACnC,QAAKA,CAAC,CAACoF,WAAP,EAAqB;AACpBpF,OAAC,CAAC3iB,QAAF,CAAWpW,MAAX,GAAoB,KAApB;AACA;AACD,GAJD,EA/2SiF,CAq3SjF;;AACAQ,QAAM,CAACi8B,SAAP,CAAkB;AACjBF,WAAO,EAAE;AACRv8B,YAAM,EAAE,8CACP;AAFO,KADQ;AAKjBoW,YAAQ,EAAE;AACTpW,YAAM,EAAE;AADC,KALO;AAQjBo7B,cAAU,EAAE;AACX,qBAAe,UAAUl7B,IAAV,EAAiB;AAC/BM,cAAM,CAAC8C,UAAP,CAAmBpD,IAAnB;AACA,eAAOA,IAAP;AACA;AAJU;AARK,GAAlB,EAt3SiF,CAs4SjF;;AACAM,QAAM,CAACk8B,aAAP,CAAsB,QAAtB,EAAgC,UAAU3D,CAAV,EAAc;AAC7C,QAAKA,CAAC,CAACvuB,KAAF,KAAY7H,SAAjB,EAA6B;AAC5Bo2B,OAAC,CAACvuB,KAAF,GAAU,KAAV;AACA;;AACD,QAAKuuB,CAAC,CAACoF,WAAP,EAAqB;AACpBpF,OAAC,CAAC18B,IAAF,GAAS,KAAT;AACA;AACD,GAPD,EAv4SiF,CAg5SjF;;AACAmE,QAAM,CAACm8B,aAAP,CAAsB,QAAtB,EAAgC,UAAU5D,CAAV,EAAc;AAE7C;AACA,QAAKA,CAAC,CAACoF,WAAP,EAAqB;AACpB,UAAIn+B,MAAJ,EAAYwB,QAAZ;AACA,aAAO;AACNk9B,YAAI,EAAE,UAAU/2B,CAAV,EAAa+rB,QAAb,EAAwB;AAC7B1zB,gBAAM,GAAGQ,MAAM,CAAE,UAAF,CAAN,CAAqBmd,IAArB,CAA2B;AACnC4iB,mBAAO,EAAExH,CAAC,CAACyH,aADwB;AAEnC9gC,eAAG,EAAEq5B,CAAC,CAACkD;AAF4B,WAA3B,EAGL5Y,EAHK,CAIR,YAJQ,EAKR7hB,QAAQ,GAAG,UAAUi/B,GAAV,EAAgB;AAC1BzgC,kBAAM,CAACqY,MAAP;AACA7W,oBAAQ,GAAG,IAAX;;AACA,gBAAKi/B,GAAL,EAAW;AACV/M,sBAAQ,CAAE+M,GAAG,CAACpkC,IAAJ,KAAa,OAAb,GAAuB,GAAvB,GAA6B,GAA/B,EAAoCokC,GAAG,CAACpkC,IAAxC,CAAR;AACA;AACD,WAXO,CAAT,CAD6B,CAe7B;;AACApD,kBAAQ,CAACkH,IAAT,CAAcC,WAAd,CAA2BJ,MAAM,CAAE,CAAF,CAAjC;AACA,SAlBK;AAmBNg+B,aAAK,EAAE,YAAW;AACjB,cAAKx8B,QAAL,EAAgB;AACfA,oBAAQ;AACR;AACD;AAvBK,OAAP;AAyBA;AACD,GA/BD;AAoCA,MAAIk/B,YAAY,GAAG,EAAnB;AAAA,MACCC,MAAM,GAAG,mBADV,CAr7SiF,CAw7SjF;;AACAngC,QAAM,CAACi8B,SAAP,CAAkB;AACjBmE,SAAK,EAAE,UADU;AAEjBC,iBAAa,EAAE,YAAW;AACzB,UAAIr/B,QAAQ,GAAGk/B,YAAY,CAACt6B,GAAb,MAAwB5F,MAAM,CAACoC,OAAP,GAAiB,GAAjB,GAAyBu1B,KAAK,EAArE;AACA,WAAM32B,QAAN,IAAmB,IAAnB;AACA,aAAOA,QAAP;AACA;AANgB,GAAlB,EAz7SiF,CAk8SjF;;AACAhB,QAAM,CAACk8B,aAAP,CAAsB,YAAtB,EAAoC,UAAU3D,CAAV,EAAa+H,gBAAb,EAA+B1G,KAA/B,EAAuC;AAE1E,QAAI2G,YAAJ;AAAA,QAAkBC,WAAlB;AAAA,QAA+BC,iBAA/B;AAAA,QACCC,QAAQ,GAAGnI,CAAC,CAAC6H,KAAF,KAAY,KAAZ,KAAuBD,MAAM,CAAC92B,IAAP,CAAakvB,CAAC,CAACkD,GAAf,IACjC,KADiC,GAEjC,OAAOlD,CAAC,CAAC3+B,IAAT,KAAkB,QAAlB,IACC,CAAE2+B,CAAC,CAACuD,WAAF,IAAiB,EAAnB,EACEz9B,OADF,CACW,mCADX,MACqD,CAFtD,IAGC8hC,MAAM,CAAC92B,IAAP,CAAakvB,CAAC,CAAC3+B,IAAf,CAHD,IAG0B,MALhB,CADZ,CAF0E,CAW1E;;AACA,QAAK8mC,QAAQ,IAAInI,CAAC,CAACmB,SAAF,CAAa,CAAb,MAAqB,OAAtC,EAAgD;AAE/C;AACA6G,kBAAY,GAAGhI,CAAC,CAAC8H,aAAF,GAAkBxhC,UAAU,CAAE05B,CAAC,CAAC8H,aAAJ,CAAV,GAChC9H,CAAC,CAAC8H,aAAF,EADgC,GAEhC9H,CAAC,CAAC8H,aAFH,CAH+C,CAO/C;;AACA,UAAKK,QAAL,EAAgB;AACfnI,SAAC,CAAEmI,QAAF,CAAD,GAAgBnI,CAAC,CAAEmI,QAAF,CAAD,CAAcp+B,OAAd,CAAuB69B,MAAvB,EAA+B,OAAOI,YAAtC,CAAhB;AACA,OAFD,MAEO,IAAKhI,CAAC,CAAC6H,KAAF,KAAY,KAAjB,EAAyB;AAC/B7H,SAAC,CAACkD,GAAF,IAAS,CAAE7D,MAAM,CAACvuB,IAAP,CAAakvB,CAAC,CAACkD,GAAf,IAAuB,GAAvB,GAA6B,GAA/B,IAAuClD,CAAC,CAAC6H,KAAzC,GAAiD,GAAjD,GAAuDG,YAAhE;AACA,OAZ8C,CAc/C;;;AACAhI,OAAC,CAACqC,UAAF,CAAc,aAAd,IAAgC,YAAW;AAC1C,YAAK,CAAC6F,iBAAN,EAA0B;AACzBzgC,gBAAM,CAACwC,KAAP,CAAc+9B,YAAY,GAAG,iBAA7B;AACA;;AACD,eAAOE,iBAAiB,CAAE,CAAF,CAAxB;AACA,OALD,CAf+C,CAsB/C;;;AACAlI,OAAC,CAACmB,SAAF,CAAa,CAAb,IAAmB,MAAnB,CAvB+C,CAyB/C;;AACA8G,iBAAW,GAAGtlC,MAAM,CAAEqlC,YAAF,CAApB;;AACArlC,YAAM,CAAEqlC,YAAF,CAAN,GAAyB,YAAW;AACnCE,yBAAiB,GAAGplC,SAApB;AACA,OAFD,CA3B+C,CA+B/C;;;AACAu+B,WAAK,CAAC1gB,MAAN,CAAc,YAAW;AAExB;AACA,YAAKsnB,WAAW,KAAKr+B,SAArB,EAAiC;AAChCnC,gBAAM,CAAE9E,MAAF,CAAN,CAAiBw6B,UAAjB,CAA6B6K,YAA7B,EADgC,CAGjC;AACC,SAJD,MAIO;AACNrlC,gBAAM,CAAEqlC,YAAF,CAAN,GAAyBC,WAAzB;AACA,SATuB,CAWxB;;;AACA,YAAKjI,CAAC,CAAEgI,YAAF,CAAN,EAAyB;AAExB;AACAhI,WAAC,CAAC8H,aAAF,GAAkBC,gBAAgB,CAACD,aAAnC,CAHwB,CAKxB;;AACAH,sBAAY,CAAC9hC,IAAb,CAAmBmiC,YAAnB;AACA,SAnBuB,CAqBxB;;;AACA,YAAKE,iBAAiB,IAAI5hC,UAAU,CAAE2hC,WAAF,CAApC,EAAsD;AACrDA,qBAAW,CAAEC,iBAAiB,CAAE,CAAF,CAAnB,CAAX;AACA;;AAEDA,yBAAiB,GAAGD,WAAW,GAAGr+B,SAAlC;AACA,OA3BD,EAhC+C,CA6D/C;;AACA,aAAO,QAAP;AACA;AACD,GA5ED,EAn8SiF,CAohTjF;AACA;AACA;AACA;AACA;;AACAvD,SAAO,CAAC+hC,kBAAR,GAA+B,YAAW;AACzC,QAAI7gB,IAAI,GAAGrnB,QAAQ,CAACmoC,cAAT,CAAwBD,kBAAxB,CAA4C,EAA5C,EAAiD7gB,IAA5D;AACAA,QAAI,CAACzT,SAAL,GAAiB,4BAAjB;AACA,WAAOyT,IAAI,CAAC1X,UAAL,CAAgBjP,MAAhB,KAA2B,CAAlC;AACA,GAJ4B,EAA7B,CAzhTiF,CAgiTjF;AACA;AACA;AACA;;;AACA6G,QAAM,CAACuV,SAAP,GAAmB,UAAU3b,IAAV,EAAgBsG,OAAhB,EAAyB2gC,WAAzB,EAAuC;AACzD,QAAK,OAAOjnC,IAAP,KAAgB,QAArB,EAAgC;AAC/B,aAAO,EAAP;AACA;;AACD,QAAK,OAAOsG,OAAP,KAAmB,SAAxB,EAAoC;AACnC2gC,iBAAW,GAAG3gC,OAAd;AACAA,aAAO,GAAG,KAAV;AACA;;AAED,QAAIyR,IAAJ,EAAUmvB,MAAV,EAAkBrf,OAAlB;;AAEA,QAAK,CAACvhB,OAAN,EAAgB;AAEf;AACA;AACA,UAAKtB,OAAO,CAAC+hC,kBAAb,EAAkC;AACjCzgC,eAAO,GAAGzH,QAAQ,CAACmoC,cAAT,CAAwBD,kBAAxB,CAA4C,EAA5C,CAAV,CADiC,CAGjC;AACA;AACA;;AACAhvB,YAAI,GAAGzR,OAAO,CAACT,aAAR,CAAuB,MAAvB,CAAP;AACAkS,YAAI,CAACnB,IAAL,GAAY/X,QAAQ,CAAC4X,QAAT,CAAkBG,IAA9B;AACAtQ,eAAO,CAACP,IAAR,CAAaC,WAAb,CAA0B+R,IAA1B;AACA,OATD,MASO;AACNzR,eAAO,GAAGzH,QAAV;AACA;AACD;;AAEDqoC,UAAM,GAAG9rB,UAAU,CAACjM,IAAX,CAAiBnP,IAAjB,CAAT;AACA6nB,WAAO,GAAG,CAACof,WAAD,IAAgB,EAA1B,CA9ByD,CAgCzD;;AACA,QAAKC,MAAL,EAAc;AACb,aAAO,CAAE5gC,OAAO,CAACT,aAAR,CAAuBqhC,MAAM,CAAE,CAAF,CAA7B,CAAF,CAAP;AACA;;AAEDA,UAAM,GAAGtf,aAAa,CAAE,CAAE5nB,IAAF,CAAF,EAAYsG,OAAZ,EAAqBuhB,OAArB,CAAtB;;AAEA,QAAKA,OAAO,IAAIA,OAAO,CAACtoB,MAAxB,EAAiC;AAChC6G,YAAM,CAAEyhB,OAAF,CAAN,CAAkB5J,MAAlB;AACA;;AAED,WAAO7X,MAAM,CAACa,KAAP,CAAc,EAAd,EAAkBigC,MAAM,CAAC14B,UAAzB,CAAP;AACA,GA5CD;AA+CA;;;;;AAGApI,QAAM,CAAC3F,EAAP,CAAUkrB,IAAV,GAAiB,UAAUkW,GAAV,EAAesF,MAAf,EAAuB//B,QAAvB,EAAkC;AAClD,QAAIf,QAAJ;AAAA,QAAcpE,IAAd;AAAA,QAAoBi/B,QAApB;AAAA,QACC1lB,IAAI,GAAG,IADR;AAAA,QAEC6N,GAAG,GAAGwY,GAAG,CAACp9B,OAAJ,CAAa,GAAb,CAFP;;AAIA,QAAK4kB,GAAG,GAAG,CAAC,CAAZ,EAAgB;AACfhjB,cAAQ,GAAG41B,gBAAgB,CAAE4F,GAAG,CAAC9iC,KAAJ,CAAWsqB,GAAX,CAAF,CAA3B;AACAwY,SAAG,GAAGA,GAAG,CAAC9iC,KAAJ,CAAW,CAAX,EAAcsqB,GAAd,CAAN;AACA,KARiD,CAUlD;;;AACA,QAAKpkB,UAAU,CAAEkiC,MAAF,CAAf,EAA4B;AAE3B;AACA//B,cAAQ,GAAG+/B,MAAX;AACAA,YAAM,GAAG5+B,SAAT,CAJ2B,CAM5B;AACC,KAPD,MAOO,IAAK4+B,MAAM,IAAI,OAAOA,MAAP,KAAkB,QAAjC,EAA4C;AAClDllC,UAAI,GAAG,MAAP;AACA,KApBiD,CAsBlD;;;AACA,QAAKuZ,IAAI,CAACjc,MAAL,GAAc,CAAnB,EAAuB;AACtB6G,YAAM,CAACo8B,IAAP,CAAa;AACZX,WAAG,EAAEA,GADO;AAGZ;AACA;AACA;AACA5/B,YAAI,EAAEA,IAAI,IAAI,KANF;AAOZ49B,gBAAQ,EAAE,MAPE;AAQZ7/B,YAAI,EAAEmnC;AARM,OAAb,EASI37B,IATJ,CASU,UAAUy6B,YAAV,EAAyB;AAElC;AACA/E,gBAAQ,GAAGz/B,SAAX;AAEA+Z,YAAI,CAACiU,IAAL,CAAWppB,QAAQ,GAElB;AACA;AACAD,cAAM,CAAE,OAAF,CAAN,CAAkB+pB,MAAlB,CAA0B/pB,MAAM,CAACuV,SAAP,CAAkBsqB,YAAlB,CAA1B,EAA6D5zB,IAA7D,CAAmEhM,QAAnE,CAJkB,GAMlB;AACA4/B,oBAPD,EALkC,CAcnC;AACA;AACA;AACC,OA1BD,EA0BI3mB,MA1BJ,CA0BYlY,QAAQ,IAAI,UAAU44B,KAAV,EAAiB2D,MAAjB,EAA0B;AACjDnoB,YAAI,CAACrU,IAAL,CAAW,YAAW;AACrBC,kBAAQ,CAACxD,KAAT,CAAgB,IAAhB,EAAsBs9B,QAAQ,IAAI,CAAElB,KAAK,CAACiG,YAAR,EAAsBtC,MAAtB,EAA8B3D,KAA9B,CAAlC;AACA,SAFD;AAGA,OA9BD;AA+BA;;AAED,WAAO,IAAP;AACA,GA1DD,CAtlTiF,CAqpTjF;;;AACA55B,QAAM,CAACe,IAAP,CAAa,CACZ,WADY,EAEZ,UAFY,EAGZ,cAHY,EAIZ,WAJY,EAKZ,aALY,EAMZ,UANY,CAAb,EAOG,UAAU7H,CAAV,EAAa2C,IAAb,EAAoB;AACtBmE,UAAM,CAAC3F,EAAP,CAAWwB,IAAX,IAAoB,UAAUxB,EAAV,EAAe;AAClC,aAAO,KAAKwoB,EAAL,CAAShnB,IAAT,EAAexB,EAAf,CAAP;AACA,KAFD;AAGA,GAXD;;AAgBA2F,QAAM,CAACqN,IAAP,CAAYlH,OAAZ,CAAoB66B,QAApB,GAA+B,UAAU9mC,IAAV,EAAiB;AAC/C,WAAO8F,MAAM,CAACqD,IAAP,CAAarD,MAAM,CAACg0B,MAApB,EAA4B,UAAU35B,EAAV,EAAe;AACjD,aAAOH,IAAI,KAAKG,EAAE,CAACH,IAAnB;AACA,KAFM,EAEHf,MAFJ;AAGA,GAJD;;AASA6G,QAAM,CAACihC,MAAP,GAAgB;AACfC,aAAS,EAAE,UAAUhnC,IAAV,EAAgBwH,OAAhB,EAAyBxI,CAAzB,EAA6B;AACvC,UAAIioC,WAAJ;AAAA,UAAiBC,OAAjB;AAAA,UAA0BC,SAA1B;AAAA,UAAqCC,MAArC;AAAA,UAA6CC,SAA7C;AAAA,UAAwDC,UAAxD;AAAA,UAAoEC,iBAApE;AAAA,UACC5V,QAAQ,GAAG7rB,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,UAAlB,CADZ;AAAA,UAECwnC,OAAO,GAAG1hC,MAAM,CAAE9F,IAAF,CAFjB;AAAA,UAGC4rB,KAAK,GAAG,EAHT,CADuC,CAMvC;;AACA,UAAK+F,QAAQ,KAAK,QAAlB,EAA6B;AAC5B3xB,YAAI,CAAC2kB,KAAL,CAAWgN,QAAX,GAAsB,UAAtB;AACA;;AAED0V,eAAS,GAAGG,OAAO,CAACT,MAAR,EAAZ;AACAI,eAAS,GAAGrhC,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,KAAlB,CAAZ;AACAsnC,gBAAU,GAAGxhC,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,MAAlB,CAAb;AACAunC,uBAAiB,GAAG,CAAE5V,QAAQ,KAAK,UAAb,IAA2BA,QAAQ,KAAK,OAA1C,KACnB,CAAEwV,SAAS,GAAGG,UAAd,EAA2BnjC,OAA3B,CAAoC,MAApC,IAA+C,CAAC,CADjD,CAduC,CAiBvC;AACA;;AACA,UAAKojC,iBAAL,EAAyB;AACxBN,mBAAW,GAAGO,OAAO,CAAC7V,QAAR,EAAd;AACAyV,cAAM,GAAGH,WAAW,CAACnkC,GAArB;AACAokC,eAAO,GAAGD,WAAW,CAACrkC,IAAtB;AAEA,OALD,MAKO;AACNwkC,cAAM,GAAGpV,UAAU,CAAEmV,SAAF,CAAV,IAA2B,CAApC;AACAD,eAAO,GAAGlV,UAAU,CAAEsV,UAAF,CAAV,IAA4B,CAAtC;AACA;;AAED,UAAK3iC,UAAU,CAAE6C,OAAF,CAAf,EAA6B;AAE5B;AACAA,eAAO,GAAGA,OAAO,CAACtG,IAAR,CAAclB,IAAd,EAAoBhB,CAApB,EAAuB8G,MAAM,CAACpF,MAAP,CAAe,EAAf,EAAmB2mC,SAAnB,CAAvB,CAAV;AACA;;AAED,UAAK7/B,OAAO,CAAC1E,GAAR,IAAe,IAApB,EAA2B;AAC1B8oB,aAAK,CAAC9oB,GAAN,GAAc0E,OAAO,CAAC1E,GAAR,GAAcukC,SAAS,CAACvkC,GAA1B,GAAkCskC,MAA9C;AACA;;AACD,UAAK5/B,OAAO,CAAC5E,IAAR,IAAgB,IAArB,EAA4B;AAC3BgpB,aAAK,CAAChpB,IAAN,GAAe4E,OAAO,CAAC5E,IAAR,GAAeykC,SAAS,CAACzkC,IAA3B,GAAoCskC,OAAjD;AACA;;AAED,UAAK,WAAW1/B,OAAhB,EAA0B;AACzBA,eAAO,CAACigC,KAAR,CAAcvmC,IAAd,CAAoBlB,IAApB,EAA0B4rB,KAA1B;AAEA,OAHD,MAGO;AACN4b,eAAO,CAACnnC,GAAR,CAAaurB,KAAb;AACA;AACD;AAjDc,GAAhB;AAoDA9lB,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AAEjB;AACAqmC,UAAM,EAAE,UAAUv/B,OAAV,EAAoB;AAE3B;AACA,UAAKrG,SAAS,CAAClC,MAAf,EAAwB;AACvB,eAAOuI,OAAO,KAAKS,SAAZ,GACN,IADM,GAEN,KAAKpB,IAAL,CAAW,UAAU7H,CAAV,EAAc;AACxB8G,gBAAM,CAACihC,MAAP,CAAcC,SAAd,CAAyB,IAAzB,EAA+Bx/B,OAA/B,EAAwCxI,CAAxC;AACA,SAFD,CAFD;AAKA;;AAED,UAAI0oC,IAAJ;AAAA,UAAUC,GAAV;AAAA,UACC3nC,IAAI,GAAG,KAAM,CAAN,CADR;;AAGA,UAAK,CAACA,IAAN,EAAa;AACZ;AACA,OAhB0B,CAkB3B;AACA;AACA;AACA;;;AACA,UAAK,CAACA,IAAI,CAAC+0B,cAAL,GAAsB91B,MAA5B,EAAqC;AACpC,eAAO;AAAE6D,aAAG,EAAE,CAAP;AAAUF,cAAI,EAAE;AAAhB,SAAP;AACA,OAxB0B,CA0B3B;;;AACA8kC,UAAI,GAAG1nC,IAAI,CAACyC,qBAAL,EAAP;AACAklC,SAAG,GAAG3nC,IAAI,CAAC4O,aAAL,CAAmB2C,WAAzB;AACA,aAAO;AACNzO,WAAG,EAAE4kC,IAAI,CAAC5kC,GAAL,GAAW6kC,GAAG,CAACC,WADd;AAENhlC,YAAI,EAAE8kC,IAAI,CAAC9kC,IAAL,GAAY+kC,GAAG,CAACE;AAFhB,OAAP;AAIA,KApCgB;AAsCjB;AACA;AACAlW,YAAQ,EAAE,YAAW;AACpB,UAAK,CAAC,KAAM,CAAN,CAAN,EAAkB;AACjB;AACA;;AAED,UAAImW,YAAJ;AAAA,UAAkBf,MAAlB;AAAA,UAA0B3hC,GAA1B;AAAA,UACCpF,IAAI,GAAG,KAAM,CAAN,CADR;AAAA,UAEC+nC,YAAY,GAAG;AAAEjlC,WAAG,EAAE,CAAP;AAAUF,YAAI,EAAE;AAAhB,OAFhB,CALoB,CASpB;;AACA,UAAKkD,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,UAAlB,MAAmC,OAAxC,EAAkD;AAEjD;AACA+mC,cAAM,GAAG/mC,IAAI,CAACyC,qBAAL,EAAT;AAEA,OALD,MAKO;AACNskC,cAAM,GAAG,KAAKA,MAAL,EAAT,CADM,CAGN;AACA;;AACA3hC,WAAG,GAAGpF,IAAI,CAAC4O,aAAX;AACAk5B,oBAAY,GAAG9nC,IAAI,CAAC8nC,YAAL,IAAqB1iC,GAAG,CAACgM,eAAxC;;AACA,eAAQ02B,YAAY,KACjBA,YAAY,KAAK1iC,GAAG,CAACwgB,IAArB,IAA6BkiB,YAAY,KAAK1iC,GAAG,CAACgM,eADjC,CAAZ,IAEPtL,MAAM,CAACzF,GAAP,CAAYynC,YAAZ,EAA0B,UAA1B,MAA2C,QAF5C,EAEuD;AAEtDA,sBAAY,GAAGA,YAAY,CAACniC,UAA5B;AACA;;AACD,YAAKmiC,YAAY,IAAIA,YAAY,KAAK9nC,IAAjC,IAAyC8nC,YAAY,CAACjjC,QAAb,KAA0B,CAAxE,EAA4E;AAE3E;AACAkjC,sBAAY,GAAGjiC,MAAM,CAAEgiC,YAAF,CAAN,CAAuBf,MAAvB,EAAf;AACAgB,sBAAY,CAACjlC,GAAb,IAAoBgD,MAAM,CAACzF,GAAP,CAAYynC,YAAZ,EAA0B,gBAA1B,EAA4C,IAA5C,CAApB;AACAC,sBAAY,CAACnlC,IAAb,IAAqBkD,MAAM,CAACzF,GAAP,CAAYynC,YAAZ,EAA0B,iBAA1B,EAA6C,IAA7C,CAArB;AACA;AACD,OAnCmB,CAqCpB;;;AACA,aAAO;AACNhlC,WAAG,EAAEikC,MAAM,CAACjkC,GAAP,GAAailC,YAAY,CAACjlC,GAA1B,GAAgCgD,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,WAAlB,EAA+B,IAA/B,CAD/B;AAEN4C,YAAI,EAAEmkC,MAAM,CAACnkC,IAAP,GAAcmlC,YAAY,CAACnlC,IAA3B,GAAkCkD,MAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB,YAAlB,EAAgC,IAAhC;AAFlC,OAAP;AAIA,KAlFgB;AAoFjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA8nC,gBAAY,EAAE,YAAW;AACxB,aAAO,KAAK/gC,GAAL,CAAU,YAAW;AAC3B,YAAI+gC,YAAY,GAAG,KAAKA,YAAxB;;AAEA,eAAQA,YAAY,IAAIhiC,MAAM,CAACzF,GAAP,CAAYynC,YAAZ,EAA0B,UAA1B,MAA2C,QAAnE,EAA8E;AAC7EA,sBAAY,GAAGA,YAAY,CAACA,YAA5B;AACA;;AAED,eAAOA,YAAY,IAAI12B,eAAvB;AACA,OARM,CAAP;AASA;AAxGgB,GAAlB,EAnuTiF,CA80TjF;;AACAtL,QAAM,CAACe,IAAP,CAAa;AAAEsvB,cAAU,EAAE,aAAd;AAA6BD,aAAS,EAAE;AAAxC,GAAb,EAAsE,UAAU1X,MAAV,EAAkByE,IAAlB,EAAyB;AAC9F,QAAIngB,GAAG,GAAG,kBAAkBmgB,IAA5B;;AAEAnd,UAAM,CAAC3F,EAAP,CAAWqe,MAAX,IAAsB,UAAUlL,GAAV,EAAgB;AACrC,aAAOuO,MAAM,CAAE,IAAF,EAAQ,UAAU7hB,IAAV,EAAgBwe,MAAhB,EAAwBlL,GAAxB,EAA8B;AAElD;AACA,YAAIq0B,GAAJ;;AACA,YAAK7iC,QAAQ,CAAE9E,IAAF,CAAb,EAAwB;AACvB2nC,aAAG,GAAG3nC,IAAN;AACA,SAFD,MAEO,IAAKA,IAAI,CAAC6E,QAAL,KAAkB,CAAvB,EAA2B;AACjC8iC,aAAG,GAAG3nC,IAAI,CAACuR,WAAX;AACA;;AAED,YAAK+B,GAAG,KAAKrL,SAAb,EAAyB;AACxB,iBAAO0/B,GAAG,GAAGA,GAAG,CAAE1kB,IAAF,CAAN,GAAiBjjB,IAAI,CAAEwe,MAAF,CAA/B;AACA;;AAED,YAAKmpB,GAAL,EAAW;AACVA,aAAG,CAACK,QAAJ,CACC,CAACllC,GAAD,GAAOwQ,GAAP,GAAaq0B,GAAG,CAACE,WADlB,EAEC/kC,GAAG,GAAGwQ,GAAH,GAASq0B,GAAG,CAACC,WAFjB;AAKA,SAND,MAMO;AACN5nC,cAAI,CAAEwe,MAAF,CAAJ,GAAiBlL,GAAjB;AACA;AACD,OAvBY,EAuBVkL,MAvBU,EAuBFlL,GAvBE,EAuBGnS,SAAS,CAAClC,MAvBb,CAAb;AAwBA,KAzBD;AA0BA,GA7BD,EA/0TiF,CA82TjF;AACA;AACA;AACA;AACA;AACA;;AACA6G,QAAM,CAACe,IAAP,CAAa,CAAE,KAAF,EAAS,MAAT,CAAb,EAAgC,UAAU7H,CAAV,EAAaikB,IAAb,EAAoB;AACnDnd,UAAM,CAAC2uB,QAAP,CAAiBxR,IAAjB,IAA0B4P,YAAY,CAAEnuB,OAAO,CAAC2tB,aAAV,EACrC,UAAUryB,IAAV,EAAgByyB,QAAhB,EAA2B;AAC1B,UAAKA,QAAL,EAAgB;AACfA,gBAAQ,GAAGD,MAAM,CAAExyB,IAAF,EAAQijB,IAAR,CAAjB,CADe,CAGf;;AACA,eAAOyN,SAAS,CAACvhB,IAAV,CAAgBsjB,QAAhB,IACN3sB,MAAM,CAAE9F,IAAF,CAAN,CAAe2xB,QAAf,GAA2B1O,IAA3B,IAAoC,IAD9B,GAENwP,QAFD;AAGA;AACD,KAVoC,CAAtC;AAYA,GAbD,EAp3TiF,CAo4TjF;;AACA3sB,QAAM,CAACe,IAAP,CAAa;AAAEohC,UAAM,EAAE,QAAV;AAAoBC,SAAK,EAAE;AAA3B,GAAb,EAAmD,UAAUzgC,IAAV,EAAgB9F,IAAhB,EAAuB;AACzEmE,UAAM,CAACe,IAAP,CAAa;AAAEouB,aAAO,EAAE,UAAUxtB,IAArB;AAA2BkV,aAAO,EAAEhb,IAApC;AAA0C,UAAI,UAAU8F;AAAxD,KAAb,EACC,UAAU0gC,YAAV,EAAwBC,QAAxB,EAAmC;AAEnC;AACAtiC,YAAM,CAAC3F,EAAP,CAAWioC,QAAX,IAAwB,UAAUpT,MAAV,EAAkBvrB,KAAlB,EAA0B;AACjD,YAAIqY,SAAS,GAAG3gB,SAAS,CAAClC,MAAV,KAAsBkpC,YAAY,IAAI,OAAOnT,MAAP,KAAkB,SAAxD,CAAhB;AAAA,YACCX,KAAK,GAAG8T,YAAY,KAAMnT,MAAM,KAAK,IAAX,IAAmBvrB,KAAK,KAAK,IAA7B,GAAoC,QAApC,GAA+C,QAArD,CADrB;AAGA,eAAOoY,MAAM,CAAE,IAAF,EAAQ,UAAU7hB,IAAV,EAAgB2B,IAAhB,EAAsB8H,KAAtB,EAA8B;AAClD,cAAIrE,GAAJ;;AAEA,cAAKN,QAAQ,CAAE9E,IAAF,CAAb,EAAwB;AAEvB;AACA,mBAAOooC,QAAQ,CAACjkC,OAAT,CAAkB,OAAlB,MAAgC,CAAhC,GACNnE,IAAI,CAAE,UAAUyH,IAAZ,CADE,GAENzH,IAAI,CAACzB,QAAL,CAAc6S,eAAd,CAA+B,WAAW3J,IAA1C,CAFD;AAGA,WATiD,CAWlD;;;AACA,cAAKzH,IAAI,CAAC6E,QAAL,KAAkB,CAAvB,EAA2B;AAC1BO,eAAG,GAAGpF,IAAI,CAACoR,eAAX,CAD0B,CAG1B;AACA;;AACA,mBAAO/O,IAAI,CAACC,GAAL,CACNtC,IAAI,CAAC4lB,IAAL,CAAW,WAAWne,IAAtB,CADM,EACwBrC,GAAG,CAAE,WAAWqC,IAAb,CAD3B,EAENzH,IAAI,CAAC4lB,IAAL,CAAW,WAAWne,IAAtB,CAFM,EAEwBrC,GAAG,CAAE,WAAWqC,IAAb,CAF3B,EAGNrC,GAAG,CAAE,WAAWqC,IAAb,CAHG,CAAP;AAKA;;AAED,iBAAOgC,KAAK,KAAKxB,SAAV,GAEN;AACAnC,gBAAM,CAACzF,GAAP,CAAYL,IAAZ,EAAkB2B,IAAlB,EAAwB0yB,KAAxB,CAHM,GAKN;AACAvuB,gBAAM,CAAC6e,KAAP,CAAc3kB,IAAd,EAAoB2B,IAApB,EAA0B8H,KAA1B,EAAiC4qB,KAAjC,CAND;AAOA,SA/BY,EA+BV1yB,IA/BU,EA+BJmgB,SAAS,GAAGkT,MAAH,GAAY/sB,SA/BjB,EA+B4B6Z,SA/B5B,CAAb;AAgCA,OApCD;AAqCA,KAzCD;AA0CA,GA3CD;AA8CAhc,QAAM,CAACe,IAAP,CAAa,CAAE,8DACd,uEADc,GAEd,yDAFY,EAEgDgD,KAFhD,CAEuD,GAFvD,CAAb,EAGC,UAAU7K,CAAV,EAAayI,IAAb,EAAoB;AAEpB;AACA3B,UAAM,CAAC3F,EAAP,CAAWsH,IAAX,IAAoB,UAAU/H,IAAV,EAAgBS,EAAhB,EAAqB;AACxC,aAAOgB,SAAS,CAAClC,MAAV,GAAmB,CAAnB,GACN,KAAK0pB,EAAL,CAASlhB,IAAT,EAAe,IAAf,EAAqB/H,IAArB,EAA2BS,EAA3B,CADM,GAEN,KAAKS,OAAL,CAAc6G,IAAd,CAFD;AAGA,KAJD;AAKA,GAXD;AAaA3B,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AACjB2nC,SAAK,EAAE,UAAUC,MAAV,EAAkBC,KAAlB,EAA0B;AAChC,aAAO,KAAK7a,UAAL,CAAiB4a,MAAjB,EAA0B3a,UAA1B,CAAsC4a,KAAK,IAAID,MAA/C,CAAP;AACA;AAHgB,GAAlB;AASAxiC,QAAM,CAAC3F,EAAP,CAAUO,MAAV,CAAkB;AAEjBC,QAAI,EAAE,UAAUioB,KAAV,EAAiBlpB,IAAjB,EAAuBS,EAAvB,EAA4B;AACjC,aAAO,KAAKwoB,EAAL,CAASC,KAAT,EAAgB,IAAhB,EAAsBlpB,IAAtB,EAA4BS,EAA5B,CAAP;AACA,KAJgB;AAKjBW,UAAM,EAAE,UAAU8nB,KAAV,EAAiBzoB,EAAjB,EAAsB;AAC7B,aAAO,KAAK4oB,GAAL,CAAUH,KAAV,EAAiB,IAAjB,EAAuBzoB,EAAvB,CAAP;AACA,KAPgB;AASjBqoC,YAAQ,EAAE,UAAUziC,QAAV,EAAoB6iB,KAApB,EAA2BlpB,IAA3B,EAAiCS,EAAjC,EAAsC;AAC/C,aAAO,KAAKwoB,EAAL,CAASC,KAAT,EAAgB7iB,QAAhB,EAA0BrG,IAA1B,EAAgCS,EAAhC,CAAP;AACA,KAXgB;AAYjBsoC,cAAU,EAAE,UAAU1iC,QAAV,EAAoB6iB,KAApB,EAA2BzoB,EAA3B,EAAgC;AAE3C;AACA,aAAOgB,SAAS,CAAClC,MAAV,KAAqB,CAArB,GACN,KAAK8pB,GAAL,CAAUhjB,QAAV,EAAoB,IAApB,CADM,GAEN,KAAKgjB,GAAL,CAAUH,KAAV,EAAiB7iB,QAAQ,IAAI,IAA7B,EAAmC5F,EAAnC,CAFD;AAGA;AAlBgB,GAAlB,EAz8TiF,CA89TjF;AACA;AACA;AACA;;AACA2F,QAAM,CAAC4iC,KAAP,GAAe,UAAUvoC,EAAV,EAAc6F,OAAd,EAAwB;AACtC,QAAIkM,GAAJ,EAASjR,IAAT,EAAeynC,KAAf;;AAEA,QAAK,OAAO1iC,OAAP,KAAmB,QAAxB,EAAmC;AAClCkM,SAAG,GAAG/R,EAAE,CAAE6F,OAAF,CAAR;AACAA,aAAO,GAAG7F,EAAV;AACAA,QAAE,GAAG+R,GAAL;AACA,KAPqC,CAStC;AACA;;;AACA,QAAK,CAACvN,UAAU,CAAExE,EAAF,CAAhB,EAAyB;AACxB,aAAO8H,SAAP;AACA,KAbqC,CAetC;;;AACAhH,QAAI,GAAGxC,KAAK,CAACyC,IAAN,CAAYC,SAAZ,EAAuB,CAAvB,CAAP;;AACAunC,SAAK,GAAG,YAAW;AAClB,aAAOvoC,EAAE,CAACmD,KAAH,CAAU0C,OAAO,IAAI,IAArB,EAA2B/E,IAAI,CAACgD,MAAL,CAAaxF,KAAK,CAACyC,IAAN,CAAYC,SAAZ,CAAb,CAA3B,CAAP;AACA,KAFD,CAjBsC,CAqBtC;;;AACAunC,SAAK,CAACh/B,IAAN,GAAavJ,EAAE,CAACuJ,IAAH,GAAUvJ,EAAE,CAACuJ,IAAH,IAAW5D,MAAM,CAAC4D,IAAP,EAAlC;AAEA,WAAOg/B,KAAP;AACA,GAzBD;;AA2BA5iC,QAAM,CAAC6iC,SAAP,GAAmB,UAAUC,IAAV,EAAiB;AACnC,QAAKA,IAAL,EAAY;AACX9iC,YAAM,CAAC0b,SAAP;AACA,KAFD,MAEO;AACN1b,YAAM,CAACwV,KAAP,CAAc,IAAd;AACA;AACD,GAND;;AAOAxV,QAAM,CAACkC,OAAP,GAAiBtJ,KAAK,CAACsJ,OAAvB;AACAlC,QAAM,CAAC+iC,SAAP,GAAmBrlB,IAAI,CAACC,KAAxB;AACA3d,QAAM,CAACsJ,QAAP,GAAkBA,QAAlB;AACAtJ,QAAM,CAACnB,UAAP,GAAoBA,UAApB;AACAmB,QAAM,CAAChB,QAAP,GAAkBA,QAAlB;AACAgB,QAAM,CAAC0c,SAAP,GAAmBA,SAAnB;AACA1c,QAAM,CAACnE,IAAP,GAAckE,MAAd;AAEAC,QAAM,CAACmmB,GAAP,GAAalhB,IAAI,CAACkhB,GAAlB;;AAEAnmB,QAAM,CAACgjC,SAAP,GAAmB,UAAUlkC,GAAV,EAAgB;AAElC;AACA;AACA;AACA,QAAIjD,IAAI,GAAGmE,MAAM,CAACnE,IAAP,CAAaiD,GAAb,CAAX;AACA,WAAO,CAAEjD,IAAI,KAAK,QAAT,IAAqBA,IAAI,KAAK,QAAhC,KAEN;AACA;AACA;AACA,KAAConC,KAAK,CAAEnkC,GAAG,GAAGotB,UAAU,CAAEptB,GAAF,CAAlB,CALP;AAMA,GAZD,CA9gUiF,CA+hUjF;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;;AAEA,MAAK,IAAL,EAAkD;AACjDzG,qCAAkB,EAAZ,mCAAgB,YAAW;AAChC,aAAO2H,MAAP;AACA,KAFK;AAAA,oGAAN;AAGA;;AAKD,MAEC;AACAkjC,SAAO,GAAGhoC,MAAM,CAAC8E,MAHlB;AAAA,MAKC;AACAmjC,IAAE,GAAGjoC,MAAM,CAAC5C,CANb;;AAQA0H,QAAM,CAACojC,UAAP,GAAoB,UAAUphC,IAAV,EAAiB;AACpC,QAAK9G,MAAM,CAAC5C,CAAP,KAAa0H,MAAlB,EAA2B;AAC1B9E,YAAM,CAAC5C,CAAP,GAAW6qC,EAAX;AACA;;AAED,QAAKnhC,IAAI,IAAI9G,MAAM,CAAC8E,MAAP,KAAkBA,MAA/B,EAAwC;AACvC9E,YAAM,CAAC8E,MAAP,GAAgBkjC,OAAhB;AACA;;AAED,WAAOljC,MAAP;AACA,GAVD,CA7jUiF,CAykUjF;AACA;AACA;;;AACA,MAAK,CAAClC,QAAN,EAAiB;AAChB5C,UAAM,CAAC8E,MAAP,GAAgB9E,MAAM,CAAC5C,CAAP,GAAW0H,MAA3B;AACA;;AAKD,SAAOA,MAAP;AACC,CA9mUD,E;;;;;;;;;;;ACbA;AACA","file":"./js/vendor.js?eef36c6f","sourcesContent":["/*!\n * jQuery Mousewheel 3.1.13\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n */\n\n(function (factory) {\n if ( typeof define === 'function' && define.amd ) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS style for Browserify\n module.exports = factory;\n } else {\n // Browser globals\n factory(jQuery);\n }\n}(function ($) {\n\n var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],\n toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?\n ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],\n slice = Array.prototype.slice,\n nullLowestDeltaTimeout, lowestDelta;\n\n if ( $.event.fixHooks ) {\n for ( var i = toFix.length; i; ) {\n $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;\n }\n }\n\n var special = $.event.special.mousewheel = {\n version: '3.1.12',\n\n setup: function() {\n if ( this.addEventListener ) {\n for ( var i = toBind.length; i; ) {\n this.addEventListener( toBind[--i], handler, false );\n }\n } else {\n this.onmousewheel = handler;\n }\n // Store the line height and page height for this particular element\n $.data(this, 'mousewheel-line-height', special.getLineHeight(this));\n $.data(this, 'mousewheel-page-height', special.getPageHeight(this));\n },\n\n teardown: function() {\n if ( this.removeEventListener ) {\n for ( var i = toBind.length; i; ) {\n this.removeEventListener( toBind[--i], handler, false );\n }\n } else {\n this.onmousewheel = null;\n }\n // Clean up the data we added to the element\n $.removeData(this, 'mousewheel-line-height');\n $.removeData(this, 'mousewheel-page-height');\n },\n\n getLineHeight: function(elem) {\n var $elem = $(elem),\n $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();\n if (!$parent.length) {\n $parent = $('body');\n }\n return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;\n },\n\n getPageHeight: function(elem) {\n return $(elem).height();\n },\n\n settings: {\n adjustOldDeltas: true, // see shouldAdjustOldDeltas() below\n normalizeOffset: true // calls getBoundingClientRect for each event\n }\n };\n\n $.fn.extend({\n mousewheel: function(fn) {\n return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');\n },\n\n unmousewheel: function(fn) {\n return this.unbind('mousewheel', fn);\n }\n });\n\n\n function handler(event) {\n var orgEvent = event || window.event,\n args = slice.call(arguments, 1),\n delta = 0,\n deltaX = 0,\n deltaY = 0,\n absDelta = 0,\n offsetX = 0,\n offsetY = 0;\n event = $.event.fix(orgEvent);\n event.type = 'mousewheel';\n\n // Old school scrollwheel delta\n if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; }\n if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; }\n if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; }\n if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }\n\n // Firefox < 17 horizontal scrolling related to DOMMouseScroll event\n if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {\n deltaX = deltaY * -1;\n deltaY = 0;\n }\n\n // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy\n delta = deltaY === 0 ? deltaX : deltaY;\n\n // New school wheel delta (wheel event)\n if ( 'deltaY' in orgEvent ) {\n deltaY = orgEvent.deltaY * -1;\n delta = deltaY;\n }\n if ( 'deltaX' in orgEvent ) {\n deltaX = orgEvent.deltaX;\n if ( deltaY === 0 ) { delta = deltaX * -1; }\n }\n\n // No change actually happened, no reason to go any further\n if ( deltaY === 0 && deltaX === 0 ) { return; }\n\n // Need to convert lines and pages to pixels if we aren't already in pixels\n // There are three delta modes:\n // * deltaMode 0 is by pixels, nothing to do\n // * deltaMode 1 is by lines\n // * deltaMode 2 is by pages\n if ( orgEvent.deltaMode === 1 ) {\n var lineHeight = $.data(this, 'mousewheel-line-height');\n delta *= lineHeight;\n deltaY *= lineHeight;\n deltaX *= lineHeight;\n } else if ( orgEvent.deltaMode === 2 ) {\n var pageHeight = $.data(this, 'mousewheel-page-height');\n delta *= pageHeight;\n deltaY *= pageHeight;\n deltaX *= pageHeight;\n }\n\n // Store lowest absolute delta to normalize the delta values\n absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );\n\n if ( !lowestDelta || absDelta < lowestDelta ) {\n lowestDelta = absDelta;\n\n // Adjust older deltas if necessary\n if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\n lowestDelta /= 40;\n }\n }\n\n // Adjust older deltas if necessary\n if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\n // Divide all the things by 40!\n delta /= 40;\n deltaX /= 40;\n deltaY /= 40;\n }\n\n // Get a whole, normalized value for the deltas\n delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta);\n deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);\n deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);\n\n // Normalise offsetX and offsetY properties\n if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {\n var boundingRect = this.getBoundingClientRect();\n offsetX = event.clientX - boundingRect.left;\n offsetY = event.clientY - boundingRect.top;\n }\n\n // Add information to the event object\n event.deltaX = deltaX;\n event.deltaY = deltaY;\n event.deltaFactor = lowestDelta;\n event.offsetX = offsetX;\n event.offsetY = offsetY;\n // Go ahead and set deltaMode to 0 since we converted to pixels\n // Although this is a little odd since we overwrite the deltaX/Y\n // properties with normalized deltas.\n event.deltaMode = 0;\n\n // Add event and delta to the front of the arguments\n args.unshift(event, delta, deltaX, deltaY);\n\n // Clearout lowestDelta after sometime to better\n // handle multiple device types that give different\n // a different lowestDelta\n // Ex: trackpad = 3 and mouse wheel = 120\n if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }\n nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);\n\n return ($.event.dispatch || $.event.handle).apply(this, args);\n }\n\n function nullLowestDelta() {\n lowestDelta = null;\n }\n\n function shouldAdjustOldDeltas(orgEvent, absDelta) {\n // If this is an older event and the delta is divisable by 120,\n // then we are assuming that the browser is treating this as an\n // older mouse wheel event and that we should divide the deltas\n // by 40 to try and get a more usable deltaFactor.\n // Side note, this actually impacts the reported scroll distance\n // in older browsers and can cause scrolling to be slower than native.\n // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.\n return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;\n }\n\n}));\n","/*!\n * jQuery JavaScript Library v3.3.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: 2018-01-20T17:24Z\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\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, doc, node ) {\n\t\tdoc = doc || document;\n\n\t\tvar i,\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\t\t\t\tif ( node[ i ] ) {\n\t\t\t\t\tscript[ i ] = node[ i ];\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.3.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\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( 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\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && Array.isArray( src ) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t}\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\n\t\t/* eslint-disable no-unused-vars */\n\t\t// See https://github.com/eslint/eslint/issues/6125\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 ) {\n\t\tDOMEval( code );\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.3\n * https://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-08-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\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\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\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\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\tdisabledAncestor = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && (\"form\" in elem || \"label\" in elem);\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!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\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\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\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\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\tdisabledAncestor( 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\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\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\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ 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}\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 || elem.innerText || 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 ? argument + length : argument;\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 if ( nodeName( elem, \"iframe\" ) ) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if ( nodeName( elem, \"template\" ) ) {\n elem = elem.content || elem;\n }\n\n return 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 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\tjQuery.contains( elem.ownerDocument, 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 = ( 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, contains, 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\tcontains = jQuery.contains( elem.ownerDocument, 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 ( contains ) {\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} )();\nvar documentElement = document.documentElement;\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 only\n// See #13393 for more info\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// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.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\tfocus: {\n\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn nodeName( event.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\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\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\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 ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\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, \"\" ), doc, node );\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 && jQuery.contains( node.ownerDocument, 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 = jQuery.contains( elem.ownerDocument, 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\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = div.offsetWidth === 36 || \"absolute\";\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 === \"\" && !jQuery.contains( elem.ownerDocument, 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\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\n\tcssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style;\n\n// Return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( name ) {\n\n\t// Shortcut for names that are not vendor prefixed\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\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 property mapped along what jQuery.cssProps suggests or to\n// a vendor prefixed property.\nfunction finalPropName( name ) {\n\tvar ret = jQuery.cssProps[ name ];\n\tif ( !ret ) {\n\t\tret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;\n\t}\n\treturn ret;\n}\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\t\t) );\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\t\tval = curCSS( elem, dimension, styles ),\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox;\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\t// Check for style in case a browser which returns unreliable values\n\t// for getComputedStyle silently falls back to the reliable elem.style\n\tvalueIsBorderBox = valueIsBorderBox &&\n\t\t( support.boxSizingReliable() || val === elem.style[ dimension ] );\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\tif ( val === \"auto\" ||\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) {\n\n\t\tval = elem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];\n\n\t\t// offsetWidth/offsetHeight provide border-box values\n\t\tvalueIsBorderBox = true;\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\"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\tif ( type === \"number\" ) {\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\t\t\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra && boxModelAdjustment(\n\t\t\t\t\telem,\n\t\t\t\t\tdimension,\n\t\t\t\t\textra,\n\t\t\t\t\tisBorderBox,\n\t\t\t\t\tstyles\n\t\t\t\t);\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 && support.scrollboxSize() === styles.position ) {\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( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ) ) {\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\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() ] = 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;\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 ) {\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\t\t\"throws\": true\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 requests\n\tif ( s.crossDomain ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"