{"version":3,"sources":["webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/@github/webauthn-json/dist/main/webauthn-json.js","webpack:///app/javascript/opt/mastodon/app/javascript/core/two_factor_authentication.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/initial_state.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/features/emoji/unicode_to_filename.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/ready.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/features/emoji/emoji.js","webpack:///./node_modules/escape-html/index.js","webpack:///app/javascript/opt/mastodon/app/javascript/packs/public-path.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/features/emoji/emoji_unicode_mapping_light.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/substring-trie/index.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/utils/config.js","webpack:///app/javascript/opt/mastodon/app/javascript/core/settings.js"],"names":["runtime","exports","undefined","Op","Object","prototype","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","key","value","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","state","GenStateSuspendedStart","method","arg","GenStateExecuting","Error","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","GenStateSuspendedYield","makeInvokeMethod","fn","call","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","globalThis","Function","utils","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","isUndefined","adapter","defaults","transitional","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","XMLHttpRequest","process","toString","transformRequest","data","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","stringifySafely","transformResponse","strictJSONParsing","responseType","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","merge","Cancel","message","__CANCEL__","_createForOfIteratorHelperLoose","o","allowArrayLike","it","bind","Array","isArray","minLen","_arrayLikeToArray","n","from","test","_unsupportedIterableToArray","arr","len","arr2","t","replace","r","atob","ArrayBuffer","c","Uint8Array","_e","charCodeAt","_step","_iterator","_e2","String","fromCharCode","btoa","map","_o","_i","_Object$entries","entries","_Object$entries$_i","_c","_i2","schema","required","id","transports","appid","appidExclude","credProps","a","s","publicKey","rp","user","challenge","pubKeyCredParams","excludeCredentials","authenticatorSelection","attestation","extensions","signal","p","rawId","response","clientDataJSON","attestationObject","clientExtensionResults","l","mediation","rpId","allowCredentials","userVerification","u","authenticatorData","signature","userHandle","_create","_callee","_context","t0","getClientExtensionResults","navigator","credentials","t1","apply","arguments","_get","_callee2","_context2","get","hideFlashMessages","document","getElementsByClassName","flashMessage","classList","add","callback","url","body","CSRFSelector","axios","post","querySelector","getAttribute","window","location","redirect_path","catch","getElementById","remove","console","ready","PublicKeyCredential","unsupported_browser_message","disabled","webAuthnCredentialRegistrationForm","addEventListener","event","preventDefault","nickname","target","_x","WebAuthnJSON","credential","focus","webAuthnCredentialAuthenticationForm","_x2","otpAuthenticationForm","element","initialState","textContent","getMeta","prop","meta","reduceMotion","autoPlayGif","displayMedia","expandSpoilers","unfollowModal","boostModal","deleteModal","me","searchEnabled","maxChars","max_toot_chars","invitesEnabled","repository","source_url","version","mascot","profile_directory","isStaff","forceSingleColumn","useBlurhash","usePendingItems","showTrends","title","cropImages","disableSwiping","disableBlock","disableDomainBlock","disablePublicTimelines","disableLocalTimeline","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","run","marker","runClearTimeout","Item","array","noop","nextTick","args","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","thisArg","encode","val","encodeURIComponent","params","paramsSerializer","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","indexOf","config","code","request","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","onCanceled","requestData","requestHeaders","cancelToken","unsubscribe","removeEventListener","auth","username","password","unescape","Authorization","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","open","toUpperCase","onreadystatechange","readyState","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","withCredentials","read","toLowerCase","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancel","abort","subscribe","aborted","send","config1","config2","getMergedValue","source","isPlainObject","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","unicodeToFilename","str","charCode","isFunction","isView","isNumber","pipe","product","assignValue","extend","b","stripBOM","content","Axios","mergeConfig","createInstance","defaultConfig","instance","instanceConfig","CancelToken","isCancel","VERSION","all","promises","spread","default","InterceptorManager","dispatchRequest","validator","validators","interceptors","configOrUrl","assertOptions","boolean","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","promise","responseInterceptorChain","chain","shift","newConfig","onFulfilled","onRejected","getUri","handlers","use","options","eject","h","transformData","throwIfCancellationRequested","throwIfRequested","reason","fns","normalizedName","write","expires","path","domain","secure","cookie","Date","toGMTString","match","RegExp","decodeURIComponent","now","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","parsed","split","line","substr","originURL","msie","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","requestURL","thing","deprecatedWarnings","formatMessage","opt","desc","opts","warn","allowUnknown","executor","resolvePromise","token","_listeners","onfulfilled","_resolve","listener","index","splice","payload","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","m","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","querySelectorAll","csrfParam","csrfToken","CSRFProtection","xhr","refreshCSRFTokens","param","input","CustomEvent","fire","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","dispatchEvent","stopEverything","stopPropagation","stopImmediatePropagation","eventType","handler","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","getResponseHeader","Math","floor","success","beforeSend","OPENED","dataType","accept","crossDomain","DONE","head","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","toArray","serializeElement","additionalParam","inputs","elements","option","selected","checked","formElements","form","filter","el","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","handleMethod","formContent","link","action","style","display","click","isRemote","handleRemote","button","enctype","FormData","append","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","start","_rails_loaded","loaded","includes","trie","Trie","unicodeMapping","emojiFilenames","emojis","filename","darkEmoji","lightEmoji","domParser","emojifyTextNode","node","customEmojis","fragment","DocumentFragment","codePointAt","rend","shortname","static_url","shortCode","assetHost","contains","emojiFilename","createTextNode","documentElement","getElementsByTagName","parentElement","replaceChild","emojifyNode","childNodes","child","nodeType","Node","TEXT_NODE","ELEMENT_NODE","emojify","wrapper","buildCustomEmojis","emoji","shortcode","short_names","emoticons","keywords","imageUrl","custom","customCategory","categoriesFromEmojis","reduce","set","Set","matchHtmlRegExp","string","escape","exec","lastIndex","substring","removeOuterSlashes","cdnHost","__webpack_public_path__","formattedHost","formatPublicPath","require","shortCodesToEmojiData","emojisWithoutShortCodes","processEmojiMapData","emojiMapData","native","MiniTrie","words","_dict","word","dict","j","len2","char","escapeTextContentForBrowser","dataset","avatar","file","files","URL","createObjectURL","originalSrc","src","header","lock","hidden","select","setSelectionRange","oldReadOnly","readonly","execCommand","blur"],"mappings":";+EAMA,IAAIA,EAAU,SAAUC,GACtB,aAEA,IAEIC,EAFAC,EAAKC,OAAOC,UACZC,EAASH,EAAGI,eAGZC,EAA4B,mBAAXC,OAAwBA,OAAS,GAClDC,EAAiBF,EAAQG,UAAY,aACrCC,EAAsBJ,EAAQK,eAAiB,kBAC/CC,EAAoBN,EAAQO,aAAe,gBAE/C,SAASC,EAAOC,EAAKC,EAAKC,GAOxB,OANAf,OAAOgB,eAAeH,EAAKC,EAAK,CAC9BC,MAAOA,EACPE,YAAY,EACZC,cAAc,EACdC,UAAU,IAELN,EAAIC,GAGb,IAEEF,EAAO,GAAI,IACX,MAAOQ,GACPR,EAAS,SAAgBC,EAAKC,EAAKC,GACjC,OAAOF,EAAIC,GAAOC,GAItB,SAASM,EAAKC,EAASC,EAASC,EAAMC,GAEpC,IAAIC,EAAiBH,GAAWA,EAAQtB,qBAAqB0B,EAAYJ,EAAUI,EAC/EC,EAAY5B,OAAO6B,OAAOH,EAAezB,WACzC6B,EAAU,IAAIC,EAAQN,GAAe,IAIzC,OADAG,EAAUI,QAyLZ,SAA0BV,EAASE,EAAMM,GACvC,IAAIG,EAAQC,EACZ,OAAO,SAAgBC,EAAQC,GAC7B,GAAIH,IAAUI,EACZ,MAAM,IAAIC,MAAM,gCAGlB,GAAIL,IAAUM,EAAmB,CAC/B,GAAe,UAAXJ,EACF,MAAMC,EAKR,OAAOI,IAMT,IAHAV,EAAQK,OAASA,EACjBL,EAAQM,IAAMA,IAED,CACX,IAAIK,EAAWX,EAAQW,SAEvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUX,GAEnD,GAAIY,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnBZ,EAAQK,OAGVL,EAAQe,KAAOf,EAAQgB,MAAQhB,EAAQM,SAClC,GAAuB,UAAnBN,EAAQK,OAAoB,CACrC,GAAIF,IAAUC,EAEZ,MADAD,EAAQM,EACFT,EAAQM,IAGhBN,EAAQiB,kBAAkBjB,EAAQM,SACN,WAAnBN,EAAQK,QACjBL,EAAQkB,OAAO,SAAUlB,EAAQM,KAGnCH,EAAQI,EACR,IAAIY,EAASC,EAAS5B,EAASE,EAAMM,GAErC,GAAoB,WAAhBmB,EAAOE,KAAmB,CAK5B,GAFAlB,EAAQH,EAAQsB,KAAOb,EAAoBc,EAEvCJ,EAAOb,MAAQQ,EACjB,SAGF,MAAO,CACL7B,MAAOkC,EAAOb,IACdgB,KAAMtB,EAAQsB,MAES,UAAhBH,EAAOE,OAChBlB,EAAQM,EAGRT,EAAQK,OAAS,QACjBL,EAAQM,IAAMa,EAAOb,OA7PPkB,CAAiBhC,EAASE,EAAMM,GAC7CF,EAcT,SAASsB,EAASK,EAAI1C,EAAKuB,GACzB,IACE,MAAO,CACLe,KAAM,SACNf,IAAKmB,EAAGC,KAAK3C,EAAKuB,IAEpB,MAAOhB,GACP,MAAO,CACL+B,KAAM,QACNf,IAAKhB,IApBXvB,EAAQwB,KAAOA,EAyBf,IAAIa,EAAyB,iBACzBmB,EAAyB,iBACzBhB,EAAoB,YACpBE,EAAoB,YAGpBK,EAAmB,GAKvB,SAASjB,KAET,SAAS8B,KAET,SAASC,KAIT,IAAIC,EAAoB,GACxB/C,EAAO+C,EAAmBrD,GAAgB,WACxC,OAAOsD,QAET,IAAIC,EAAW7D,OAAO8D,eAClBC,EAA0BF,GAAYA,EAASA,EAASG,EAAO,MAE/DD,GAA2BA,IAA4BhE,GAAMG,EAAOsD,KAAKO,EAAyBzD,KAGpGqD,EAAoBI,GAGtB,IAAIE,EAAKP,EAA2BzD,UAAY0B,EAAU1B,UAAYD,OAAO6B,OAAO8B,GAOpF,SAASO,EAAsBjE,GAC7B,CAAC,OAAQ,QAAS,UAAUkE,SAAQ,SAAUhC,GAC5CvB,EAAOX,EAAWkC,GAAQ,SAAUC,GAClC,OAAOwB,KAAK5B,QAAQG,EAAQC,SAkClC,SAASgC,EAAcxC,EAAWyC,GAChC,SAASC,EAAOnC,EAAQC,EAAKmC,EAASC,GACpC,IAAIvB,EAASC,EAAStB,EAAUO,GAASP,EAAWQ,GAEpD,GAAoB,UAAhBa,EAAOE,KAEJ,CACL,IAAIsB,EAASxB,EAAOb,IAChBrB,EAAQ0D,EAAO1D,MAEnB,OAAIA,GAA0B,iBAAVA,GAAsBb,EAAOsD,KAAKzC,EAAO,WACpDsD,EAAYE,QAAQxD,EAAM2D,SAASC,MAAK,SAAU5D,GACvDuD,EAAO,OAAQvD,EAAOwD,EAASC,MAC9B,SAAUpD,GACXkD,EAAO,QAASlD,EAAKmD,EAASC,MAI3BH,EAAYE,QAAQxD,GAAO4D,MAAK,SAAUC,GAI/CH,EAAO1D,MAAQ6D,EACfL,EAAQE,MACP,SAAUI,GAGX,OAAOP,EAAO,QAASO,EAAON,EAASC,MAtBzCA,EAAOvB,EAAOb,KA2BlB,IAAI0C,EA4BJlB,KAAK5B,QA1BL,SAAiBG,EAAQC,GACvB,SAAS2C,IACP,OAAO,IAAIV,GAAY,SAAUE,EAASC,GACxCF,EAAOnC,EAAQC,EAAKmC,EAASC,MAIjC,OAAOM,EAYPA,EAAkBA,EAAgBH,KAAKI,EAEvCA,GAA8BA,KAuGlC,SAASpC,EAAoBF,EAAUX,GACrC,IAAIK,EAASM,EAASlC,SAASuB,EAAQK,QAEvC,GAAIA,IAAWrC,EAAW,CAKxB,GAFAgC,EAAQW,SAAW,KAEI,UAAnBX,EAAQK,OAAoB,CAE9B,GAAIM,EAASlC,SAAiB,SAG5BuB,EAAQK,OAAS,SACjBL,EAAQM,IAAMtC,EACd6C,EAAoBF,EAAUX,GAEP,UAAnBA,EAAQK,QAGV,OAAOS,EAIXd,EAAQK,OAAS,QACjBL,EAAQM,IAAM,IAAI4C,UAAU,kDAG9B,OAAOpC,EAGT,IAAIK,EAASC,EAASf,EAAQM,EAASlC,SAAUuB,EAAQM,KAEzD,GAAoB,UAAhBa,EAAOE,KAIT,OAHArB,EAAQK,OAAS,QACjBL,EAAQM,IAAMa,EAAOb,IACrBN,EAAQW,SAAW,KACZG,EAGT,IAAIqC,EAAOhC,EAAOb,IAElB,OAAK6C,EAODA,EAAK7B,MAGPtB,EAAQW,EAASyC,YAAcD,EAAKlE,MAEpCe,EAAQqD,KAAO1C,EAAS2C,QAOD,WAAnBtD,EAAQK,SACVL,EAAQK,OAAS,OACjBL,EAAQM,IAAMtC,GASlBgC,EAAQW,SAAW,KACZG,GANEqC,GAxBPnD,EAAQK,OAAS,QACjBL,EAAQM,IAAM,IAAI4C,UAAU,oCAC5BlD,EAAQW,SAAW,KACZG,GA8CX,SAASyC,EAAaC,GACpB,IAAIC,EAAQ,CACVC,OAAQF,EAAK,IAGX,KAAKA,IACPC,EAAME,SAAWH,EAAK,IAGpB,KAAKA,IACPC,EAAMG,WAAaJ,EAAK,GACxBC,EAAMI,SAAWL,EAAK,IAGxB1B,KAAKgC,WAAWC,KAAKN,GAGvB,SAASO,EAAcP,GACrB,IAAItC,EAASsC,EAAMQ,YAAc,GACjC9C,EAAOE,KAAO,gBACPF,EAAOb,IACdmD,EAAMQ,WAAa9C,EAGrB,SAASlB,EAAQN,GAIfmC,KAAKgC,WAAa,CAAC,CACjBJ,OAAQ,SAEV/D,EAAY0C,QAAQkB,EAAczB,MAClCA,KAAKoC,OAAM,GAgCb,SAAShC,EAAOiC,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAAS3F,GAE9B,GAAI4F,EACF,OAAOA,EAAe1C,KAAKyC,GAG7B,GAA6B,mBAAlBA,EAASd,KAClB,OAAOc,EAGT,IAAKE,MAAMF,EAASG,QAAS,CAC3B,IAAIC,GAAK,EACLlB,EAAO,SAASA,IAClB,OAASkB,EAAIJ,EAASG,QACpB,GAAIlG,EAAOsD,KAAKyC,EAAUI,GAGxB,OAFAlB,EAAKpE,MAAQkF,EAASI,GACtBlB,EAAK/B,MAAO,EACL+B,EAMX,OAFAA,EAAKpE,MAAQjB,EACbqF,EAAK/B,MAAO,EACL+B,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CACLA,KAAM3C,GAMV,SAASA,IACP,MAAO,CACLzB,MAAOjB,EACPsD,MAAM,GA+LV,OA/kBAK,EAAkBxD,UAAYyD,EAC9B9C,EAAOqD,EAAI,cAAeP,GAC1B9C,EAAO8C,EAA4B,cAAeD,GAClDA,EAAkB6C,YAAc1F,EAAO8C,EAA4BhD,EAAmB,qBAWtFb,EAAQ0G,oBAAsB,SAAUC,GACtC,IAAIC,EAAyB,mBAAXD,GAAyBA,EAAOE,YAClD,QAAOD,IAAOA,IAAShD,GAEa,uBAAnCgD,EAAKH,aAAeG,EAAKE,QAG5B9G,EAAQ+G,KAAO,SAAUJ,GASvB,OARIxG,OAAO6G,eACT7G,OAAO6G,eAAeL,EAAQ9C,IAE9B8C,EAAOM,UAAYpD,EACnB9C,EAAO4F,EAAQ9F,EAAmB,sBAGpC8F,EAAOvG,UAAYD,OAAO6B,OAAOoC,GAC1BuC,GAOT3G,EAAQkH,MAAQ,SAAU3E,GACxB,MAAO,CACLsC,QAAStC,IAmEb8B,EAAsBE,EAAcnE,WACpCW,EAAOwD,EAAcnE,UAAWO,GAAqB,WACnD,OAAOoD,QAET/D,EAAQuE,cAAgBA,EAIxBvE,EAAQmH,MAAQ,SAAU1F,EAASC,EAASC,EAAMC,EAAa4C,QACzC,IAAhBA,IAAwBA,EAAc4C,SAC1C,IAAIC,EAAO,IAAI9C,EAAc/C,EAAKC,EAASC,EAASC,EAAMC,GAAc4C,GACxE,OAAOxE,EAAQ0G,oBAAoBhF,GAAW2F,EAC5CA,EAAK/B,OAAOR,MAAK,SAAUF,GAC3B,OAAOA,EAAOrB,KAAOqB,EAAO1D,MAAQmG,EAAK/B,WAgK7CjB,EAAsBD,GACtBrD,EAAOqD,EAAIvD,EAAmB,aAM9BE,EAAOqD,EAAI3D,GAAgB,WACzB,OAAOsD,QAEThD,EAAOqD,EAAI,YAAY,WACrB,MAAO,wBAsCTpE,EAAQsH,KAAO,SAAUC,GACvB,IAAID,EAAO,GAEX,IAAK,IAAIrG,KAAOsG,EACdD,EAAKtB,KAAK/E,GAMZ,OAHAqG,EAAKE,UAGE,SAASlC,IACd,KAAOgC,EAAKf,QAAQ,CAClB,IAAItF,EAAMqG,EAAKG,MAEf,GAAIxG,KAAOsG,EAGT,OAFAjC,EAAKpE,MAAQD,EACbqE,EAAK/B,MAAO,EACL+B,EAQX,OADAA,EAAK/B,MAAO,EACL+B,IA0CXtF,EAAQmE,OAASA,EASjBjC,EAAQ9B,UAAY,CAClByG,YAAa3E,EACbiE,MAAO,SAAeuB,GAYpB,GAXA3D,KAAK4D,KAAO,EACZ5D,KAAKuB,KAAO,EAGZvB,KAAKf,KAAOe,KAAKd,MAAQhD,EACzB8D,KAAKR,MAAO,EACZQ,KAAKnB,SAAW,KAChBmB,KAAKzB,OAAS,OACdyB,KAAKxB,IAAMtC,EACX8D,KAAKgC,WAAWzB,QAAQ2B,IAEnByB,EACH,IAAK,IAAIZ,KAAQ/C,KAEQ,MAAnB+C,EAAKc,OAAO,IAAcvH,EAAOsD,KAAKI,KAAM+C,KAAUR,OAAOQ,EAAKe,MAAM,MAC1E9D,KAAK+C,GAAQ7G,IAKrB6H,KAAM,WACJ/D,KAAKR,MAAO,EACZ,IACIwE,EADYhE,KAAKgC,WAAW,GACLG,WAE3B,GAAwB,UAApB6B,EAAWzE,KACb,MAAMyE,EAAWxF,IAGnB,OAAOwB,KAAKiE,MAEd9E,kBAAmB,SAA2B+E,GAC5C,GAAIlE,KAAKR,KACP,MAAM0E,EAGR,IAAIhG,EAAU8B,KAEd,SAASmE,EAAOC,EAAKC,GAYnB,OAXAhF,EAAOE,KAAO,QACdF,EAAOb,IAAM0F,EACbhG,EAAQqD,KAAO6C,EAEXC,IAGFnG,EAAQK,OAAS,OACjBL,EAAQM,IAAMtC,KAGPmI,EAGX,IAAK,IAAI5B,EAAIzC,KAAKgC,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ3B,KAAKgC,WAAWS,GACxBpD,EAASsC,EAAMQ,WAEnB,GAAqB,SAAjBR,EAAMC,OAIR,OAAOuC,EAAO,OAGhB,GAAIxC,EAAMC,QAAU5B,KAAK4D,KAAM,CAC7B,IAAIU,EAAWhI,EAAOsD,KAAK+B,EAAO,YAC9B4C,EAAajI,EAAOsD,KAAK+B,EAAO,cAEpC,GAAI2C,GAAYC,EAAY,CAC1B,GAAIvE,KAAK4D,KAAOjC,EAAME,SACpB,OAAOsC,EAAOxC,EAAME,UAAU,GACzB,GAAI7B,KAAK4D,KAAOjC,EAAMG,WAC3B,OAAOqC,EAAOxC,EAAMG,iBAEjB,GAAIwC,GACT,GAAItE,KAAK4D,KAAOjC,EAAME,SACpB,OAAOsC,EAAOxC,EAAME,UAAU,OAE3B,KAAI0C,EAKT,MAAM,IAAI7F,MAAM,0CAJhB,GAAIsB,KAAK4D,KAAOjC,EAAMG,WACpB,OAAOqC,EAAOxC,EAAMG,gBAQ9B1C,OAAQ,SAAgBG,EAAMf,GAC5B,IAAK,IAAIiE,EAAIzC,KAAKgC,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ3B,KAAKgC,WAAWS,GAE5B,GAAId,EAAMC,QAAU5B,KAAK4D,MAAQtH,EAAOsD,KAAK+B,EAAO,eAAiB3B,KAAK4D,KAAOjC,EAAMG,WAAY,CACjG,IAAI0C,EAAe7C,EACnB,OAIA6C,IAA0B,UAATjF,GAA6B,aAATA,IAAwBiF,EAAa5C,QAAUpD,GAAOA,GAAOgG,EAAa1C,aAGjH0C,EAAe,MAGjB,IAAInF,EAASmF,EAAeA,EAAarC,WAAa,GAItD,OAHA9C,EAAOE,KAAOA,EACdF,EAAOb,IAAMA,EAETgG,GACFxE,KAAKzB,OAAS,OACdyB,KAAKuB,KAAOiD,EAAa1C,WAClB9C,GAGFgB,KAAKyE,SAASpF,IAEvBoF,SAAU,SAAkBpF,EAAQ0C,GAClC,GAAoB,UAAhB1C,EAAOE,KACT,MAAMF,EAAOb,IAaf,MAVoB,UAAhBa,EAAOE,MAAoC,aAAhBF,EAAOE,KACpCS,KAAKuB,KAAOlC,EAAOb,IACM,WAAhBa,EAAOE,MAChBS,KAAKiE,KAAOjE,KAAKxB,IAAMa,EAAOb,IAC9BwB,KAAKzB,OAAS,SACdyB,KAAKuB,KAAO,OACa,WAAhBlC,EAAOE,MAAqBwC,IACrC/B,KAAKuB,KAAOQ,GAGP/C,GAET0F,OAAQ,SAAgB5C,GACtB,IAAK,IAAIW,EAAIzC,KAAKgC,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ3B,KAAKgC,WAAWS,GAE5B,GAAId,EAAMG,aAAeA,EAGvB,OAFA9B,KAAKyE,SAAS9C,EAAMQ,WAAYR,EAAMI,UACtCG,EAAcP,GACP3C,IAIb,MAAS,SAAgB4C,GACvB,IAAK,IAAIa,EAAIzC,KAAKgC,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ3B,KAAKgC,WAAWS,GAE5B,GAAId,EAAMC,SAAWA,EAAQ,CAC3B,IAAIvC,EAASsC,EAAMQ,WAEnB,GAAoB,UAAhB9C,EAAOE,KAAkB,CAC3B,IAAIoF,EAAStF,EAAOb,IACpB0D,EAAcP,GAGhB,OAAOgD,GAMX,MAAM,IAAIjG,MAAM,0BAElBkG,cAAe,SAAuBvC,EAAUf,EAAYE,GAa1D,OAZAxB,KAAKnB,SAAW,CACdlC,SAAUyD,EAAOiC,GACjBf,WAAYA,EACZE,QAASA,GAGS,SAAhBxB,KAAKzB,SAGPyB,KAAKxB,IAAMtC,GAGN8C,IAOJ/C,EAnrBK,CAwrBe4I,EAAO5I,SAEpC,IACE6I,mBAAqB9I,EACrB,MAAO+I,GAWmB,iBAAfC,WACTA,WAAWF,mBAAqB9I,EAEhCiJ,SAAS,IAAK,yBAAdA,CAAwCjJ,K,kCChtB5C,YAEA,IAAIkJ,EAAQ,EAAQ,IAEhBC,EAAsB,EAAQ,KAE9BC,EAAe,EAAQ,KAEvBC,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsBC,EAASpI,IACjC+H,EAAMM,YAAYD,IAAYL,EAAMM,YAAYD,EAAQ,mBAC3DA,EAAQ,gBAAkBpI,GAiC9B,IA5BMsI,EA4BFC,EAAW,CACbC,aAAc,CACZC,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GAEvBL,UAhC8B,oBAAnBM,qBAGmB,IAAZC,GAAuE,qBAA5C5J,OAAOC,UAAU4J,SAASrG,KAAKoG,MAD1EP,EAAU,EAAQ,MAMbA,GAyBPS,iBAAkB,CAAC,SAA0BC,EAAMZ,GAIjD,OAHAJ,EAAoBI,EAAS,UAC7BJ,EAAoBI,EAAS,gBAEzBL,EAAMkB,WAAWD,IAASjB,EAAMmB,cAAcF,IAASjB,EAAMoB,SAASH,IAASjB,EAAMqB,SAASJ,IAASjB,EAAMsB,OAAOL,IAASjB,EAAMuB,OAAON,GACrIA,EAGLjB,EAAMwB,kBAAkBP,GACnBA,EAAKQ,OAGVzB,EAAM0B,kBAAkBT,IAC1Bb,EAAsBC,EAAS,mDACxBY,EAAKF,YAGVf,EAAM2B,SAASV,IAASZ,GAAuC,qBAA5BA,EAAQ,iBAC7CD,EAAsBC,EAAS,oBAxCrC,SAAyBuB,EAAUC,EAAQC,GACzC,GAAI9B,EAAM+B,SAASH,GACjB,IAEE,OADCC,GAAUG,KAAKC,OAAOL,GAChB5B,EAAMkC,KAAKN,GAClB,MAAOO,GACP,GAAe,gBAAXA,EAAEtE,KACJ,MAAMsE,EAKZ,OAAQL,GAAWE,KAAKI,WAAWR,GA6BxBS,CAAgBpB,IAGlBA,IAETqB,kBAAmB,CAAC,SAA2BrB,GAC7C,IAAIR,EAAe3F,KAAK2F,cAAgBD,EAASC,aAC7CC,EAAoBD,GAAgBA,EAAaC,kBACjDC,EAAoBF,GAAgBA,EAAaE,kBACjD4B,GAAqB7B,GAA2C,SAAtB5F,KAAK0H,aAEnD,GAAID,GAAqB5B,GAAqBX,EAAM+B,SAASd,IAASA,EAAK3D,OACzE,IACE,OAAO0E,KAAKC,MAAMhB,GAClB,MAAOkB,GACP,GAAII,EAAmB,CACrB,GAAe,gBAAXJ,EAAEtE,KACJ,MAAMqC,EAAaiC,EAAGrH,KAAM,gBAG9B,MAAMqH,GAKZ,OAAOlB,IAOTwB,QAAS,EACTC,eAAgB,aAChBC,eAAgB,eAChBC,kBAAmB,EACnBC,eAAgB,EAChBC,eAAgB,SAAwBC,GACtC,OAAOA,GAAU,KAAOA,EAAS,KAEnC1C,QAAS,CACP2C,OAAQ,CACN,OAAU,uCAIhBhD,EAAM3E,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6BhC,GACpEmH,EAASH,QAAQhH,GAAU,MAE7B2G,EAAM3E,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BhC,GACrEmH,EAASH,QAAQhH,GAAU2G,EAAMiD,MAAM9C,MAEzCR,EAAO5I,QAAUyJ,I,oDCrHjB,SAAS0C,EAAOC,GACdrI,KAAKqI,QAAUA,EAGjBD,EAAO/L,UAAU4J,SAAW,WAC1B,MAAO,UAAYjG,KAAKqI,QAAU,KAAOrI,KAAKqI,QAAU,KAG1DD,EAAO/L,UAAUiM,YAAa,EAC9BzD,EAAO5I,QAAUmM,G,4HCfjB,SAASG,EAAgCC,EAAGC,GAAkB,IAAIC,EAAuB,oBAAXjM,QAA0B+L,EAAE/L,OAAOE,WAAa6L,EAAE,cAAe,GAAIE,EAAI,OAAQA,EAAKA,EAAG9I,KAAK4I,IAAIjH,KAAKoH,KAAKD,GAAK,GAAIE,MAAMC,QAAQL,KAAOE,EAExN,SAAqCF,EAAGM,GAAU,IAAKN,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAOO,EAAkBP,EAAGM,GAAS,IAAIE,EAAI5M,OAAOC,UAAU4J,SAASrG,KAAK4I,GAAG1E,MAAM,GAAI,GAAc,WAANkF,GAAkBR,EAAE1F,cAAakG,EAAIR,EAAE1F,YAAYC,MAAM,GAAU,QAANiG,GAAqB,QAANA,EAAa,OAAOJ,MAAMK,KAAKT,GAAI,GAAU,cAANQ,GAAqB,2CAA2CE,KAAKF,GAAI,OAAOD,EAAkBP,EAAGM,GAFzLK,CAA4BX,KAAOC,GAAkBD,GAAyB,iBAAbA,EAAEhG,OAAqB,CAAMkG,IAAIF,EAAIE,GAAI,IAAIjG,EAAI,EAAG,OAAO,WAAc,OAAIA,GAAK+F,EAAEhG,OAAe,CAAEhD,MAAM,GAAe,CAAEA,MAAM,EAAOrC,MAAOqL,EAAE/F,OAAa,MAAM,IAAIrB,UAAU,yIAIjd,SAAS2H,EAAkBK,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAI5G,UAAQ6G,EAAMD,EAAI5G,QAAQ,IAAK,IAAIC,EAAI,EAAG6G,EAAO,IAAIV,MAAMS,GAAM5G,EAAI4G,EAAK5G,IAAO6G,EAAK7G,GAAK2G,EAAI3G,GAAM,OAAO6G,EAEhL,SAASjC,EAAEA,GAOT,IANA,IAAIkC,EAAI,KAAKzF,MAAM,GAAI,EAAIuD,EAAE7E,OAAS,GAAK,GACvCwG,EAAI3B,EAAEmC,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KAAOD,EAC9CE,EAAIC,KAAKV,GACTR,EAAI,IAAImB,YAAYF,EAAEjH,QACtBoH,EAAI,IAAIC,WAAWrB,GAEdsB,EAAK,EAAGA,EAAKL,EAAEjH,OAAQsH,IAC9BF,EAAEE,GAAML,EAAEM,WAAWD,GAGvB,OAAOtB,EAGT,SAASe,EAAElC,GAIT,IAHA,IAGyD2C,EAFrDhB,EAAI,GAECiB,EAAY1B,EAHb,IAAIsB,WAAWxC,MAG2C2C,EAAQC,KAAazK,MAAO,CAC5F,IAAI0K,EAAMF,EAAM7M,MAChB6L,GAAKmB,OAAOC,aAAaF,GAG3B,OAAOG,KAAKrB,GAAGQ,QAAQ,MAAO,KAAKA,QAAQ,MAAO,KAAKA,QAAQ,KAAM,IAGvE,SAASR,EAAE3B,EAAGkC,EAAGE,GACf,GAAI,SAAWF,EAAG,OAAOE,EACzB,GAAI,YAAcF,EAAG,OAAOlC,EAAEoC,GAC9B,GAAIF,aAAaX,MAAO,OAAOa,EAAEa,KAAI,SAAUb,GAC7C,OAAOT,EAAE3B,EAAGkC,EAAE,GAAIE,MAGpB,GAAIF,aAAanN,OAAQ,CAGvB,IAFA,IAAImO,EAAK,GAEAC,EAAK,EAAGC,EAAkBrO,OAAOsO,QAAQnB,GAAIiB,EAAKC,EAAgBjI,OAAQgI,IAAM,CACvF,IAAIG,EAAqBF,EAAgBD,GACrCI,EAAKD,EAAmB,GACxBE,EAAMF,EAAmB,GAC7B,GAAIC,KAAMnB,EAAG,MAAQA,EAAEmB,GAAML,EAAGK,GAAM5B,EAAE3B,EAAGwD,EAAIC,OAAQrB,EAAEmB,IAAOL,EAAGK,GAAM,UAAU,GAAIC,EAAIE,SAAU,MAAM,IAAIrM,MAAM,gBAAkBkM,GAGzI,OAAOL,GAIX,SAASd,EAAEpC,GACT,MAAO,CACL0D,UAAU,EACVD,OAAQzD,GAIZ,SAASmB,EAAEnB,GACT,MAAO,CACL0D,UAAU,EACVD,OAAQzD,GAIZ,IAAIuC,EAAI,CACNrK,KAAMkK,EAAE,QACRuB,GAAIvB,EAAE,WACNwB,WAAYzC,EAAE,SAEZ/F,EAAI,CACNyI,MAAO1C,EAAE,QACT2C,aAAc3C,EAAE,QAChB4C,UAAW5C,EAAE,SAEX6C,EAAI,CACNH,MAAO1C,EAAE,QACT2C,aAAc3C,EAAE,QAChB4C,UAAW5C,EAAE,SAEX8C,EAAI,CACNC,UAAW9B,EAAE,CACX+B,GAAI/B,EAAE,QACNgC,KAAMhC,EAAE,CACNuB,GAAIvB,EAAE,WACN1G,KAAM0G,EAAE,QACR/G,YAAa+G,EAAE,UAEjBiC,UAAWjC,EAAE,WACbkC,iBAAkBlC,EAAE,QACpB9B,QAASa,EAAE,QACXoD,mBAAoBpD,EAAE,CAACoB,IACvBiC,uBAAwBrD,EAAE,QAC1BsD,YAAatD,EAAE,QACfuD,WAAYvD,EAAE/F,KAEhBuJ,OAAQxD,EAAE,SAERyD,EAAI,CACN1M,KAAMkK,EAAE,QACRuB,GAAIvB,EAAE,QACNyC,MAAOzC,EAAE,WACT0C,SAAU1C,EAAE,CACV2C,eAAgB3C,EAAE,WAClB4C,kBAAmB5C,EAAE,aAEvB6C,uBAAwB7C,EAAE4B,IAExBkB,EAAI,CACNC,UAAWhE,EAAE,QACb+C,UAAW9B,EAAE,CACXiC,UAAWjC,EAAE,WACb9B,QAASa,EAAE,QACXiE,KAAMjE,EAAE,QACRkE,iBAAkBlE,EAAE,CAACoB,IACrB+C,iBAAkBnE,EAAE,QACpBuD,WAAYvD,EAAE/F,KAEhBuJ,OAAQxD,EAAE,SAERoE,EAAI,CACNrN,KAAMkK,EAAE,QACRuB,GAAIvB,EAAE,QACNyC,MAAOzC,EAAE,WACT0C,SAAU1C,EAAE,CACV2C,eAAgB3C,EAAE,WAClBoD,kBAAmBpD,EAAE,WACrBqD,UAAWrD,EAAE,WACbsD,WAAYtD,EAAE,aAEhB6C,uBAAwB7C,EAAE4B,IAY5B,SAAS2B,IA2BP,OA1BAA,EAAU,YAAgClI,mBAAmB9B,MAAK,SAASiK,EAAQxD,GACjF,OAAO3E,mBAAmBrH,MAAK,SAAkByP,GAC/C,OACE,OAAQA,EAAStJ,KAAOsJ,EAAS3L,MAC/B,KAAK,EAOH,OANA2L,EAASC,GAAK,SAAU9F,GACtB,IAAIoC,EAAIpC,EACR,OAAOoC,EAAE6C,uBAAyBjF,EAAE+F,4BAA6BpE,EAAEO,EAAG0C,EAAGxC,IAG3EyD,EAAS3L,KAAO,EACT8L,UAAUC,YAAYrP,OAAO,SAAUsL,GAC5C,OAAOP,EAAE3B,EAAGiE,EAAG/B,GADmB,CAElCE,IAEJ,KAAK,EAEH,OADAyD,EAASK,GAAKL,EAASjO,KAChBiO,EAAS9N,OAAO,UAAU,EAAI8N,EAASC,IAAID,EAASK,KAE7D,KAAK,EACL,IAAK,MACH,OAAOL,EAASnJ,UAGrBkJ,QAEUO,MAAMxN,KAAMyN,WAO7B,SAASC,IA2BP,OA1BAA,EAAO,YAAgC5I,mBAAmB9B,MAAK,SAAS2K,EAASlE,GAC/E,OAAO3E,mBAAmBrH,MAAK,SAAmBmQ,GAChD,OACE,OAAQA,EAAUhK,KAAOgK,EAAUrM,MACjC,KAAK,EAOH,OANAqM,EAAUT,GAAK,SAAU9F,GACvB,IAAIoC,EAAIpC,EACR,OAAOoC,EAAE6C,uBAAyBjF,EAAE+F,4BAA6BpE,EAAEO,EAAGqD,EAAGnD,IAG3EmE,EAAUrM,KAAO,EACV8L,UAAUC,YAAYO,IAAI,SAAUtE,GACzC,OAAOP,EAAE3B,EAAGkF,EAAGhD,GADgB,CAE/BE,IAEJ,KAAK,EAEH,OADAmE,EAAUL,GAAKK,EAAU3O,KAClB2O,EAAUxO,OAAO,UAAU,EAAIwO,EAAUT,IAAIS,EAAUL,KAEhE,KAAK,EACL,IAAK,MACH,OAAOK,EAAU7J,UAGtB4J,QAEOH,MAAMxN,KAAMyN,W,oBChM1B,SAASK,IACPlF,MAAMK,KAAK8E,SAASC,uBAAuB,kBAAkBzN,SAAQ,SAAS0N,GAC5EA,EAAaC,UAAUC,IAAI,aAI/B,SAASC,EAASC,EAAKC,GAfvB,IACMC,EAeJC,IAAMC,KAAKJ,EAAKnH,KAAKI,UAAUgH,GAAO,CACpC/I,QAAS,CACP,eAAgB,mBAChB,OAAU,mBACV,gBAnBAgJ,EAAeR,SAASW,cAAc,2BACtCH,EACKA,EAAaI,aAAa,WAE1B,OAiBPrB,YAAa,gBACZvM,MAAK,SAASoL,GACfyC,OAAOC,SAASrF,QAAQ2C,EAAShG,KAAK2I,kBACrCC,OAAM,SAAS9N,GACc,MAA1BA,EAAMkL,SAASlE,QACI8F,SAASiB,eAAe,8BAChCd,UAAUe,OAAO,UAC9BC,QAAQjO,MAAMA,EAAMkL,SAAShG,KAAKlF,QAElCiO,QAAQjO,MAAMA,MAKpBkO,mBAAM,WACJ,KDwKU9B,UAAUC,aAAeD,UAAUC,YAAYrP,QAAUoP,UAAUC,YAAYO,KAAOe,OAAOQ,qBCxKxE,CAC7B,IAAMC,EAA8BtB,SAASiB,eAAe,+BACxDK,IACFA,EAA4BnB,UAAUe,OAAO,UAC7ClB,SAASW,cAAc,oBAAoBY,UAAW,GAK1D,IAAMC,EAAqCxB,SAASiB,eAAe,2BAC/DO,GACFA,EAAmCC,iBAAiB,UAAU,SAACC,GAC7DA,EAAMC,iBAEN,IAAIC,EAAWF,EAAMG,OAAOlB,cAAc,mDACtCiB,EAASxS,MACXqR,IAAMX,IAAI,mCACP9M,MAAK,SAACoL,IDkFV,SAAgB0D,GACrB,OAAO7C,EAAQQ,MAAMxN,KAAMyN,YChFjBqC,CAAoB,CAAE,UAFI3D,EAAShG,OAEqBpF,MAAK,SAACgP,GAE5D3B,EAAS,0BADI,CAAE,WAAc2B,EAAY,SAAYJ,EAASxS,WAE7D4R,OAAM,SAAC9N,GACa8M,SAASiB,eAAe,8BAChCd,UAAUe,OAAO,UAC9BC,QAAQjO,MAAMA,SAEf8N,OAAM,SAAC9N,GACRiO,QAAQjO,MAAMA,EAAMkL,SAAShG,KAAKlF,UAGtC0O,EAASK,WAKf,IAAMC,EAAuClC,SAASiB,eAAe,iBACrE,GAAIiB,EAAsC,CACxCA,EAAqCT,iBAAiB,UAAU,SAACC,GAC/DA,EAAMC,iBAENlB,IAAMX,IAAI,iCACP9M,MAAK,SAACoL,ID0FR,SAAa+D,GAClB,OAAOxC,EAAKF,MAAMxN,KAAMyN,YCxFhBqC,CAAiB,CAAE,UAFO3D,EAAShG,OAEkBpF,MAAK,SAACgP,GAEzD3B,EAAS,UADI,CAAE,KAAQ,CAAE,WAAc2B,QAEtChB,OAAM,SAAC9N,GACa8M,SAASiB,eAAe,8BAChCd,UAAUe,OAAO,UAC9BC,QAAQjO,MAAMA,SAEf8N,OAAM,SAAC9N,GACRiO,QAAQjO,MAAMA,EAAMkL,SAAShG,KAAKlF,aAIxC,IAAMkP,EAAwBpC,SAASiB,eAAe,2BAEpCjB,SAASiB,eAAe,eAChCQ,iBAAiB,SAAS,WAClCS,EAAqC/B,UAAUC,IAAI,UACnDgC,EAAsBjC,UAAUe,OAAO,UACvCnB,OAGqBC,SAASiB,eAAe,oBAChCQ,iBAAiB,SAAS,WACvCW,EAAsBjC,UAAUC,IAAI,UACpC8B,EAAqC/B,UAAUe,OAAO,UACtDnB,Y,gCCnHN,47BAAMsC,EAAUrC,SAASiB,eAAe,iBAClCqB,EAAeD,GAAWlJ,KAAKC,MAAMiJ,EAAQE,aAE7CC,EAAU,SAACC,GAAD,OAAUH,GAAgBA,EAAaI,MAAQJ,EAAaI,KAAKD,IAEpEE,EAAeH,EAAQ,iBACvBI,EAAcJ,EAAQ,iBACtBK,EAAeL,EAAQ,iBACvBM,EAAiBN,EAAQ,mBACzBO,EAAgBP,EAAQ,kBACxBQ,EAAaR,EAAQ,eACrBS,EAAcT,EAAQ,gBACtBU,EAAKV,EAAQ,MACbW,EAAgBX,EAAQ,kBACxBY,EAAYd,GAAgBA,EAAae,gBAAmB,IAC5DC,EAAiBd,EAAQ,mBAEzBe,GADwBf,EAAQ,2BACnBA,EAAQ,eACrBgB,EAAahB,EAAQ,cACrBiB,EAAUjB,EAAQ,WAClBkB,EAASlB,EAAQ,UACjBmB,EAAoBnB,EAAQ,qBAC5BoB,EAAUpB,EAAQ,YAClBqB,GAAqBrB,EAAQ,mBAC7BsB,EAActB,EAAQ,gBACtBuB,EAAkBvB,EAAQ,qBAC1BwB,EAAaxB,EAAQ,UACrByB,EAAQzB,EAAQ,SAChB0B,EAAa1B,EAAQ,eACrB2B,EAAiB3B,EAAQ,mBACzB4B,EAAe5B,EAAQ,iBACvB6B,EAAqB7B,EAAQ,wBAC7B8B,EAAyB9B,EAAQ,4BACjC+B,EAAuB/B,EAAQ,0BAE7BF,O,kBClCf,IAKIkC,EACAC,EANAxM,EAAUnB,EAAO5I,QAAU,GAQ/B,SAASwW,IACP,MAAM,IAAI/T,MAAM,mCAGlB,SAASgU,IACP,MAAM,IAAIhU,MAAM,qCAyBlB,SAASiU,EAAWC,GAClB,GAAIL,IAAqBM,WAEvB,OAAOA,WAAWD,EAAK,GAIzB,IAAKL,IAAqBE,IAAqBF,IAAqBM,WAElE,OADAN,EAAmBM,WACZA,WAAWD,EAAK,GAGzB,IAEE,OAAOL,EAAiBK,EAAK,GAC7B,MAAOvL,GACP,IAEE,OAAOkL,EAAiB3S,KAAK,KAAMgT,EAAK,GACxC,MAAOvL,GAEP,OAAOkL,EAAiB3S,KAAKI,KAAM4S,EAAK,MA3C9C,WACE,IAEIL,EADwB,mBAAfM,WACUA,WAEAJ,EAErB,MAAOpL,GACPkL,EAAmBE,EAGrB,IAEID,EAD0B,mBAAjBM,aACYA,aAEAJ,EAEvB,MAAOrL,GACPmL,EAAqBE,GAlBzB,GA2EA,IAEIK,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAc,EAElB,SAASC,IACFF,GAAaF,IAIlBE,GAAW,EAEPF,EAAavQ,OACfwQ,EAAQD,EAAaK,OAAOJ,GAE5BE,GAAc,EAGZF,EAAMxQ,QACR6Q,KAIJ,SAASA,IACP,IAAIJ,EAAJ,CAIA,IAAItL,EAAUgL,EAAWQ,GACzBF,GAAW,EAGX,IAFA,IAAI5J,EAAM2J,EAAMxQ,OAET6G,GAAK,CAIV,IAHA0J,EAAeC,EACfA,EAAQ,KAECE,EAAa7J,GAChB0J,GACFA,EAAaG,GAAYI,MAI7BJ,GAAc,EACd7J,EAAM2J,EAAMxQ,OAGduQ,EAAe,KACfE,GAAW,EA1Eb,SAAyBM,GACvB,GAAIf,IAAuBM,aAEzB,OAAOA,aAAaS,GAItB,IAAKf,IAAuBE,IAAwBF,IAAuBM,aAEzE,OADAN,EAAqBM,aACdA,aAAaS,GAGtB,IAESf,EAAmBe,GAC1B,MAAOlM,GACP,IAEE,OAAOmL,EAAmB5S,KAAK,KAAM2T,GACrC,MAAOlM,GAGP,OAAOmL,EAAmB5S,KAAKI,KAAMuT,KAqDzCC,CAAgB7L,IAoBlB,SAAS8L,EAAKb,EAAKc,GACjB1T,KAAK4S,IAAMA,EACX5S,KAAK0T,MAAQA,EAef,SAASC,KAlCT3N,EAAQ4N,SAAW,SAAUhB,GAC3B,IAAIiB,EAAO,IAAIjL,MAAM6E,UAAUjL,OAAS,GAExC,GAAIiL,UAAUjL,OAAS,EACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIgL,UAAUjL,OAAQC,IACpCoR,EAAKpR,EAAI,GAAKgL,UAAUhL,GAI5BuQ,EAAM/Q,KAAK,IAAIwR,EAAKb,EAAKiB,IAEJ,IAAjBb,EAAMxQ,QAAiByQ,GACzBN,EAAWU,IAUfI,EAAKpX,UAAUiX,IAAM,WACnBtT,KAAK4S,IAAIpF,MAAM,KAAMxN,KAAK0T,QAG5B1N,EAAQgM,MAAQ,UAChBhM,EAAQ8N,SAAU,EAClB9N,EAAQ+N,IAAM,GACd/N,EAAQgO,KAAO,GACfhO,EAAQwL,QAAU,GAElBxL,EAAQiO,SAAW,GAInBjO,EAAQkO,GAAKP,EACb3N,EAAQmO,YAAcR,EACtB3N,EAAQoO,KAAOT,EACf3N,EAAQqO,IAAMV,EACd3N,EAAQsO,eAAiBX,EACzB3N,EAAQuO,mBAAqBZ,EAC7B3N,EAAQwO,KAAOb,EACf3N,EAAQyO,gBAAkBd,EAC1B3N,EAAQ0O,oBAAsBf,EAE9B3N,EAAQ2O,UAAY,SAAU5R,GAC5B,MAAO,IAGTiD,EAAQ4O,QAAU,SAAU7R,GAC1B,MAAM,IAAIrE,MAAM,qCAGlBsH,EAAQ6O,IAAM,WACZ,MAAO,KAGT7O,EAAQ8O,MAAQ,SAAUC,GACxB,MAAM,IAAIrW,MAAM,mCAGlBsH,EAAQgP,MAAQ,WACd,OAAO,I,qrgNC9MT,SAASC,EAAmBC,EAAKvU,EAASC,EAAQuU,EAAOC,EAAQlY,EAAKsB,GACpE,IACE,IAAI6C,EAAO6T,EAAIhY,GAAKsB,GAChBrB,EAAQkE,EAAKlE,MACjB,MAAO8D,GAEP,YADAL,EAAOK,GAILI,EAAK7B,KACPmB,EAAQxD,GAERkG,QAAQ1C,QAAQxD,GAAO4D,KAAKoU,EAAOC,GAIxB,SAASC,EAAkB1V,GACxC,OAAO,WACL,IAAI/B,EAAOoC,KACP6T,EAAOpG,UACX,OAAO,IAAIpK,SAAQ,SAAU1C,EAASC,GACpC,IAAIsU,EAAMvV,EAAG6N,MAAM5P,EAAMiW,GAEzB,SAASsB,EAAMhY,GACb8X,EAAmBC,EAAKvU,EAASC,EAAQuU,EAAOC,EAAQ,OAAQjY,GAGlE,SAASiY,EAAO5X,GACdyX,EAAmBC,EAAKvU,EAASC,EAAQuU,EAAOC,EAAQ,QAAS5X,GAGnE2X,OAAMjZ,OA/BZ,mC,iCCEA2I,EAAO5I,QAAU,SAAc0D,EAAI2V,GACjC,OAAO,WAGL,IAFA,IAAIzB,EAAO,IAAIjL,MAAM6E,UAAUjL,QAEtBC,EAAI,EAAGA,EAAIoR,EAAKrR,OAAQC,IAC/BoR,EAAKpR,GAAKgL,UAAUhL,GAGtB,OAAO9C,EAAG6N,MAAM8H,EAASzB,M,iCCR7B,IAAI3O,EAAQ,EAAQ,IAEpB,SAASqQ,EAAOC,GACd,OAAOC,mBAAmBD,GAAKhM,QAAQ,QAAS,KAAKA,QAAQ,OAAQ,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,OAAQ,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAW9J3E,EAAO5I,QAAU,SAAkBoS,EAAKqH,EAAQC,GAE9C,IAAKD,EACH,OAAOrH,EAGT,IAAIuH,EAEJ,GAAID,EACFC,EAAmBD,EAAiBD,QAC/B,GAAIxQ,EAAM0B,kBAAkB8O,GACjCE,EAAmBF,EAAOzP,eACrB,CACL,IAAI4P,EAAQ,GACZ3Q,EAAM3E,QAAQmV,GAAQ,SAAmBF,EAAKtY,GACxCsY,UAIAtQ,EAAM2D,QAAQ2M,GAChBtY,GAAY,KAEZsY,EAAM,CAACA,GAGTtQ,EAAM3E,QAAQiV,GAAK,SAAoBM,GACjC5Q,EAAM6Q,OAAOD,GACfA,EAAIA,EAAEE,cACG9Q,EAAM2B,SAASiP,KACxBA,EAAI5O,KAAKI,UAAUwO,IAGrBD,EAAM5T,KAAKsT,EAAOrY,GAAO,IAAMqY,EAAOO,WAG1CF,EAAmBC,EAAMI,KAAK,KAGhC,GAAIL,EAAkB,CACpB,IAAIM,EAAgB7H,EAAI8H,QAAQ,MAET,IAAnBD,IACF7H,EAAMA,EAAIvK,MAAM,EAAGoS,IAGrB7H,KAA8B,IAAtBA,EAAI8H,QAAQ,KAAc,IAAM,KAAOP,EAGjD,OAAOvH,I,iCCpDTxJ,EAAO5I,QAAU,SAAsBgF,EAAOmV,EAAQC,EAAMC,EAASnK,GA+BnE,OA9BAlL,EAAMmV,OAASA,EAEXC,IACFpV,EAAMoV,KAAOA,GAGfpV,EAAMqV,QAAUA,EAChBrV,EAAMkL,SAAWA,EACjBlL,EAAMsV,cAAe,EAErBtV,EAAMuV,OAAS,WACb,MAAO,CAELnO,QAASrI,KAAKqI,QACdtF,KAAM/C,KAAK+C,KAEX0T,YAAazW,KAAKyW,YAClBC,OAAQ1W,KAAK0W,OAEbC,SAAU3W,KAAK2W,SACfC,WAAY5W,KAAK4W,WACjBC,aAAc7W,KAAK6W,aACnBC,MAAO9W,KAAK8W,MAEZV,OAAQpW,KAAKoW,OACbC,KAAMrW,KAAKqW,KACXpO,OAAQjI,KAAKmM,UAAYnM,KAAKmM,SAASlE,OAASjI,KAAKmM,SAASlE,OAAS,OAIpEhH,I,iCCzCT,IAAIiE,EAAQ,EAAQ,IAEhB6R,EAAS,EAAQ,KAEjBC,EAAU,EAAQ,KAElBC,EAAW,EAAQ,KAEnBC,EAAgB,EAAQ,KAExBC,EAAe,EAAQ,KAEvBC,EAAkB,EAAQ,KAE1BC,EAAc,EAAQ,KAEtB3R,EAAW,EAAQ,KAEnB0C,EAAS,EAAQ,KAErBvD,EAAO5I,QAAU,SAAoBma,GACnC,OAAO,IAAI/S,SAAQ,SAA4B1C,EAASC,GACtD,IAGI0W,EAHAC,EAAcnB,EAAOjQ,KACrBqR,EAAiBpB,EAAO7Q,QACxBmC,EAAe0O,EAAO1O,aAG1B,SAASlI,IACH4W,EAAOqB,aACTrB,EAAOqB,YAAYC,YAAYJ,GAG7BlB,EAAOpK,QACToK,EAAOpK,OAAO2L,oBAAoB,QAASL,GAI3CpS,EAAMkB,WAAWmR,WACZC,EAAe,gBAGxB,IAAIlB,EAAU,IAAIvQ,eAElB,GAAIqQ,EAAOwB,KAAM,CACf,IAAIC,EAAWzB,EAAOwB,KAAKC,UAAY,GACnCC,EAAW1B,EAAOwB,KAAKE,SAAWC,SAAStC,mBAAmBW,EAAOwB,KAAKE,WAAa,GAC3FN,EAAeQ,cAAgB,SAAW3N,KAAKwN,EAAW,IAAMC,GAGlE,IAAIG,EAAWf,EAAcd,EAAO8B,QAAS9B,EAAO/H,KAKpD,SAAS8J,IACP,GAAK7B,EAAL,CAKA,IAAI8B,EAAkB,0BAA2B9B,EAAUa,EAAab,EAAQ+B,yBAA2B,KAEvGlM,EAAW,CACbhG,KAFkBuB,GAAiC,SAAjBA,GAA4C,SAAjBA,EAAiD4O,EAAQnK,SAA/BmK,EAAQgC,aAG/FrQ,OAAQqO,EAAQrO,OAChBsQ,WAAYjC,EAAQiC,WACpBhT,QAAS6S,EACThC,OAAQA,EACRE,QAASA,GAEXS,GAAO,SAAkB5Z,GACvBwD,EAAQxD,GACRqC,OACC,SAAiBhC,GAClBoD,EAAOpD,GACPgC,MACC2M,GAEHmK,EAAU,MAgEZ,GA5FAA,EAAQkC,KAAKpC,EAAO7X,OAAOka,cAAexB,EAASgB,EAAU7B,EAAOV,OAAQU,EAAOT,mBAAmB,GAEtGW,EAAQ3O,QAAUyO,EAAOzO,QA6BrB,cAAe2O,EAEjBA,EAAQ6B,UAAYA,EAGpB7B,EAAQoC,mBAAqB,WACtBpC,GAAkC,IAAvBA,EAAQqC,aAQD,IAAnBrC,EAAQrO,QAAkBqO,EAAQsC,aAAwD,IAAzCtC,EAAQsC,YAAYzC,QAAQ,WAMjFtD,WAAWsF,IAKf7B,EAAQuC,QAAU,WACXvC,IAIL1V,EAAOyW,EAAY,kBAAmBjB,EAAQ,eAAgBE,IAE9DA,EAAU,OAIZA,EAAQwC,QAAU,WAGhBlY,EAAOyW,EAAY,gBAAiBjB,EAAQ,KAAME,IAElDA,EAAU,MAIZA,EAAQyC,UAAY,WAClB,IAAIC,EAAsB5C,EAAOzO,QAAU,cAAgByO,EAAOzO,QAAU,cAAgB,mBACxFhC,EAAeyQ,EAAOzQ,cAAgBD,EAASC,aAE/CyQ,EAAO4C,sBACTA,EAAsB5C,EAAO4C,qBAG/BpY,EAAOyW,EAAY2B,EAAqB5C,EAAQzQ,EAAaG,oBAAsB,YAAc,eAAgBwQ,IAEjHA,EAAU,MAMRpR,EAAM+T,uBAAwB,CAEhC,IAAIC,GAAa9C,EAAO+C,iBAAmB/B,EAAgBa,KAAc7B,EAAOxO,eAAiBoP,EAAQoC,KAAKhD,EAAOxO,qBAAkB1L,EAEnIgd,IACF1B,EAAepB,EAAOvO,gBAAkBqR,GAKxC,qBAAsB5C,GACxBpR,EAAM3E,QAAQiX,GAAgB,SAA0BhC,EAAKtY,QAChC,IAAhBqa,GAAqD,iBAAtBra,EAAImc,qBAErC7B,EAAeta,GAGtBoZ,EAAQgD,iBAAiBpc,EAAKsY,MAM/BtQ,EAAMM,YAAY4Q,EAAO+C,mBAC5B7C,EAAQ6C,kBAAoB/C,EAAO+C,iBAIjCzR,GAAiC,SAAjBA,IAClB4O,EAAQ5O,aAAe0O,EAAO1O,cAIS,mBAA9B0O,EAAOmD,oBAChBjD,EAAQ9G,iBAAiB,WAAY4G,EAAOmD,oBAIP,mBAA5BnD,EAAOoD,kBAAmClD,EAAQmD,QAC3DnD,EAAQmD,OAAOjK,iBAAiB,WAAY4G,EAAOoD,mBAGjDpD,EAAOqB,aAAerB,EAAOpK,UAG/BsL,EAAa,SAAoBoC,GAC1BpD,IAIL1V,GAAQ8Y,GAAUA,GAAUA,EAAOna,KAAO,IAAI6I,EAAO,YAAcsR,GACnEpD,EAAQqD,QACRrD,EAAU,OAGZF,EAAOqB,aAAerB,EAAOqB,YAAYmC,UAAUtC,GAE/ClB,EAAOpK,SACToK,EAAOpK,OAAO6N,QAAUvC,IAAelB,EAAOpK,OAAOwD,iBAAiB,QAAS8H,KAI9EC,IACHA,EAAc,MAIhBjB,EAAQwD,KAAKvC,Q,iCCjNjB,IAAInS,EAAe,EAAQ,KAa3BP,EAAO5I,QAAU,SAAqBoM,EAAS+N,EAAQC,EAAMC,EAASnK,GACpE,IAAIlL,EAAQ,IAAIvC,MAAM2J,GACtB,OAAOjD,EAAanE,EAAOmV,EAAQC,EAAMC,EAASnK,K,iCCfpDtH,EAAO5I,QAAU,SAAkBkB,GACjC,SAAUA,IAASA,EAAMmL,c,iCCD3B,IAAIpD,EAAQ,EAAQ,IAWpBL,EAAO5I,QAAU,SAAqB8d,EAASC,GAE7CA,EAAUA,GAAW,GACrB,IAAI5D,EAAS,GAEb,SAAS6D,EAAerK,EAAQsK,GAC9B,OAAIhV,EAAMiV,cAAcvK,IAAW1K,EAAMiV,cAAcD,GAC9ChV,EAAMiD,MAAMyH,EAAQsK,GAClBhV,EAAMiV,cAAcD,GACtBhV,EAAMiD,MAAM,GAAI+R,GACdhV,EAAM2D,QAAQqR,GAChBA,EAAOpW,QAGToW,EAIT,SAASE,EAAoB5J,GAC3B,OAAKtL,EAAMM,YAAYwU,EAAQxJ,IAEnBtL,EAAMM,YAAYuU,EAAQvJ,SAA/B,EACEyJ,OAAe/d,EAAW6d,EAAQvJ,IAFlCyJ,EAAeF,EAAQvJ,GAAOwJ,EAAQxJ,IAOjD,SAAS6J,EAAiB7J,GACxB,IAAKtL,EAAMM,YAAYwU,EAAQxJ,IAC7B,OAAOyJ,OAAe/d,EAAW8d,EAAQxJ,IAK7C,SAAS8J,EAAiB9J,GACxB,OAAKtL,EAAMM,YAAYwU,EAAQxJ,IAEnBtL,EAAMM,YAAYuU,EAAQvJ,SAA/B,EACEyJ,OAAe/d,EAAW6d,EAAQvJ,IAFlCyJ,OAAe/d,EAAW8d,EAAQxJ,IAO7C,SAAS+J,EAAgB/J,GACvB,OAAIA,KAAQwJ,EACHC,EAAeF,EAAQvJ,GAAOwJ,EAAQxJ,IACpCA,KAAQuJ,EACVE,OAAe/d,EAAW6d,EAAQvJ,SADpC,EAKT,IAAIgK,EAAW,CACb,IAAOH,EACP,OAAUA,EACV,KAAQA,EACR,QAAWC,EACX,iBAAoBA,EACpB,kBAAqBA,EACrB,iBAAoBA,EACpB,QAAWA,EACX,eAAkBA,EAClB,gBAAmBA,EACnB,QAAWA,EACX,aAAgBA,EAChB,eAAkBA,EAClB,eAAkBA,EAClB,iBAAoBA,EACpB,mBAAsBA,EACtB,WAAcA,EACd,iBAAoBA,EACpB,cAAiBA,EACjB,UAAaA,EACb,UAAaA,EACb,WAAcA,EACd,YAAeA,EACf,WAAcA,EACd,iBAAoBA,EACpB,eAAkBC,GAOpB,OALArV,EAAM3E,QAAQnE,OAAOmH,KAAKwW,GAAS3G,OAAOhX,OAAOmH,KAAKyW,KAAW,SAA4BxJ,GAC3F,IAAIrI,EAAQqS,EAAShK,IAAS4J,EAC1BK,EAActS,EAAMqI,GACxBtL,EAAMM,YAAYiV,IAAgBtS,IAAUoS,IAAoBnE,EAAO5F,GAAQiK,MAE1ErE,I,kBCjGTvR,EAAO5I,QAAU,CACf,QAAW,W,kBCCbA,EAAQye,kBAAoB,SAACC,GAK3B,IAJA,IAAI9Z,EAAS,GACT+Z,EAAW,EACX3O,EAAI,EACJxJ,EAAI,EACDA,EAAIkY,EAAInY,QACboY,EAAWD,EAAI5Q,WAAWtH,KACtBwJ,GACEpL,EAAO2B,OAAS,IAClB3B,GAAU,KAEZA,IAAW,OAAYoL,EAAI,OAAW,KAAO2O,EAAW,QAAS3U,SAAS,IAC1EgG,EAAI,GACK,OAAU2O,GAAYA,GAAY,MAC3C3O,EAAI2O,GAEA/Z,EAAO2B,OAAS,IAClB3B,GAAU,KAEZA,GAAU+Z,EAAS3U,SAAS,KAGhC,OAAOpF,I,gCCtBT,IAAI8H,EAAO,EAAQ,KAGf1C,EAAW7J,OAAOC,UAAU4J,SAQhC,SAAS4C,EAAQ2M,GACf,OAAO5M,MAAMC,QAAQ2M,GAUvB,SAAShQ,EAAYgQ,GACnB,YAAsB,IAARA,EAqBhB,SAASnP,EAAcmP,GACrB,MAA8B,yBAAvBvP,EAASrG,KAAK4V,GA8DvB,SAAS3O,EAAS2O,GAChB,OAAe,OAARA,GAA+B,iBAARA,EAUhC,SAAS2E,EAAc3E,GACrB,GAA2B,oBAAvBvP,EAASrG,KAAK4V,GAChB,OAAO,EAGT,IAAInZ,EAAYD,OAAO8D,eAAesV,GACtC,OAAqB,OAAdnZ,GAAsBA,IAAcD,OAAOC,UA2CpD,SAASwe,EAAWrF,GAClB,MAA8B,sBAAvBvP,EAASrG,KAAK4V,GAyEvB,SAASjV,EAAQtD,EAAK0C,GAEpB,GAAI1C,QAUJ,GALmB,iBAARA,IAETA,EAAM,CAACA,IAGL4L,EAAQ5L,GAEV,IAAK,IAAIwF,EAAI,EAAG8J,EAAItP,EAAIuF,OAAQC,EAAI8J,EAAG9J,IACrC9C,EAAGC,KAAK,KAAM3C,EAAIwF,GAAIA,EAAGxF,QAI3B,IAAK,IAAIC,KAAOD,EACVb,OAAOC,UAAUE,eAAeqD,KAAK3C,EAAKC,IAC5CyC,EAAGC,KAAK,KAAM3C,EAAIC,GAAMA,EAAKD,GAmFrC4H,EAAO5I,QAAU,CACf4M,QAASA,EACTxC,cAAeA,EACfC,SA3TF,SAAkBkP,GAChB,OAAe,OAARA,IAAiBhQ,EAAYgQ,IAA4B,OAApBA,EAAI1S,cAAyB0C,EAAYgQ,EAAI1S,cAAoD,mBAA7B0S,EAAI1S,YAAYwD,UAA2BkP,EAAI1S,YAAYwD,SAASkP,IA2TpLpP,WAtSF,SAAoBoP,GAClB,MAA8B,sBAAvBvP,EAASrG,KAAK4V,IAsSrB9O,kBA5RF,SAA2B8O,GASzB,MAN2B,oBAAhB7L,aAA+BA,YAAYmR,OAC3CnR,YAAYmR,OAAOtF,GAEnBA,GAAOA,EAAI7O,QAAUN,EAAcmP,EAAI7O,SAuRlDM,SA1QF,SAAkBuO,GAChB,MAAsB,iBAARA,GA0QduF,SAhQF,SAAkBvF,GAChB,MAAsB,iBAARA,GAgQd3O,SAAUA,EACVsT,cAAeA,EACf3U,YAAaA,EACbuQ,OA9NF,SAAgBP,GACd,MAA8B,kBAAvBvP,EAASrG,KAAK4V,IA8NrBhP,OApNF,SAAgBgP,GACd,MAA8B,kBAAvBvP,EAASrG,KAAK4V,IAoNrB/O,OA1MF,SAAgB+O,GACd,MAA8B,kBAAvBvP,EAASrG,KAAK4V,IA0MrBqF,WAAYA,EACZtU,SAtLF,SAAkBiP,GAChB,OAAO3O,EAAS2O,IAAQqF,EAAWrF,EAAIwF,OAsLvCpU,kBA5KF,SAA2B4O,GACzB,MAA8B,6BAAvBvP,EAASrG,KAAK4V,IA4KrByD,qBA9IF,WACE,OAAyB,oBAAd5L,WAAoD,gBAAtBA,UAAU4N,SAAmD,iBAAtB5N,UAAU4N,SAAoD,OAAtB5N,UAAU4N,WAIzG,oBAAXrM,QAA8C,oBAAbb,WA0I/CxN,QAASA,EACT4H,MA9EF,SAEAA,IACE,IAAItH,EAAS,GAEb,SAASqa,EAAY1F,EAAKtY,GACpBid,EAActZ,EAAO3D,KAASid,EAAc3E,GAC9C3U,EAAO3D,GAAOiL,EAAMtH,EAAO3D,GAAMsY,GACxB2E,EAAc3E,GACvB3U,EAAO3D,GAAOiL,EAAM,GAAIqN,GACf3M,EAAQ2M,GACjB3U,EAAO3D,GAAOsY,EAAI1R,QAElBjD,EAAO3D,GAAOsY,EAIlB,IAAK,IAAI/S,EAAI,EAAG8J,EAAIkB,UAAUjL,OAAQC,EAAI8J,EAAG9J,IAC3ClC,EAAQkN,UAAUhL,GAAIyY,GAGxB,OAAOra,GA0DPsa,OA9CF,SAAgB9P,EAAG+P,EAAG9F,GAQpB,OAPA/U,EAAQ6a,GAAG,SAAqB5F,EAAKtY,GAEjCmO,EAAEnO,GADAoY,GAA0B,mBAARE,EACX7M,EAAK6M,EAAKF,GAEVE,KAGNnK,GAuCPjE,KAtKF,SAAcuT,GACZ,OAAOA,EAAIvT,KAAOuT,EAAIvT,OAASuT,EAAInR,QAAQ,aAAc,KAsKzD6R,SA9BF,SAAkBC,GAKhB,OAJ8B,QAA1BA,EAAQvR,WAAW,KACrBuR,EAAUA,EAAQxX,MAAM,IAGnBwX,K,iCCtVT,IAAIpW,EAAQ,EAAQ,IAEhByD,EAAO,EAAQ,KAEf4S,EAAQ,EAAQ,KAEhBC,EAAc,EAAQ,KA2B1B,IAAIhN,EAhBJ,SAASiN,EAAeC,GACtB,IAAIxd,EAAU,IAAIqd,EAAMG,GACpBC,EAAWhT,EAAK4S,EAAMlf,UAAUia,QAASpY,GAU7C,OARAgH,EAAMiW,OAAOQ,EAAUJ,EAAMlf,UAAW6B,GAExCgH,EAAMiW,OAAOQ,EAAUzd,GAEvByd,EAAS1d,OAAS,SAAgB2d,GAChC,OAAOH,EAAeD,EAAYE,EAAeE,KAG5CD,EAIGF,CAzBG,EAAQ,MA2BvBjN,EAAM+M,MAAQA,EAEd/M,EAAMpG,OAAS,EAAQ,KACvBoG,EAAMqN,YAAc,EAAQ,KAC5BrN,EAAMsN,SAAW,EAAQ,KACzBtN,EAAMuN,QAAU,EAAQ,KAAcvK,QAEtChD,EAAMwN,IAAM,SAAaC,GACvB,OAAO5Y,QAAQ2Y,IAAIC,IAGrBzN,EAAM0N,OAAS,EAAQ,KAEvB1N,EAAM+H,aAAe,EAAQ,KAC7B1R,EAAO5I,QAAUuS,EAEjB3J,EAAO5I,QAAQkgB,QAAU3N,G,iCCnDzB,IAAItJ,EAAQ,EAAQ,IAEhB+R,EAAW,EAAQ,KAEnBmF,EAAqB,EAAQ,KAE7BC,EAAkB,EAAQ,KAE1Bb,EAAc,EAAQ,KAEtBc,EAAY,EAAQ,KAEpBC,EAAaD,EAAUC,WAO3B,SAAShB,EAAMK,GACb5b,KAAK0F,SAAWkW,EAChB5b,KAAKwc,aAAe,CAClBlG,QAAS,IAAI8F,EACbjQ,SAAU,IAAIiQ,GAUlBb,EAAMlf,UAAUia,QAAU,SAAiBmG,EAAarG,GAUtD,GAP2B,iBAAhBqG,GACTrG,EAASA,GAAU,IACZ/H,IAAMoO,EAEbrG,EAASqG,GAAe,IAGrBrG,EAAO/H,IACV,MAAM,IAAI3P,MAAM,qCAGlB0X,EAASoF,EAAYxb,KAAK0F,SAAU0Q,IAEzB7X,OACT6X,EAAO7X,OAAS6X,EAAO7X,OAAO8a,cACrBrZ,KAAK0F,SAASnH,OACvB6X,EAAO7X,OAASyB,KAAK0F,SAASnH,OAAO8a,cAErCjD,EAAO7X,OAAS,MAGlB,IAAIoH,EAAeyQ,EAAOzQ,kBAELzJ,IAAjByJ,GACF2W,EAAUI,cAAc/W,EAAc,CACpCC,kBAAmB2W,EAAW5W,aAAa4W,EAAWI,SACtD9W,kBAAmB0W,EAAW5W,aAAa4W,EAAWI,SACtD7W,oBAAqByW,EAAW5W,aAAa4W,EAAWI,WACvD,GAIL,IAAIC,EAA0B,GAC1BC,GAAiC,EACrC7c,KAAKwc,aAAalG,QAAQ/V,SAAQ,SAAoCuc,GACjC,mBAAxBA,EAAYC,UAA0D,IAAhCD,EAAYC,QAAQ3G,KAIrEyG,EAAiCA,GAAkCC,EAAYE,YAC/EJ,EAAwBK,QAAQH,EAAYI,UAAWJ,EAAYK,cAErE,IAIIC,EAJAC,EAA2B,GAM/B,GALArd,KAAKwc,aAAarQ,SAAS5L,SAAQ,SAAkCuc,GACnEO,EAAyBpb,KAAK6a,EAAYI,UAAWJ,EAAYK,cAI9DN,EAAgC,CACnC,IAAIS,EAAQ,CAACjB,OAAiBngB,GAK9B,IAJA0M,MAAMvM,UAAU4gB,QAAQzP,MAAM8P,EAAOV,GACrCU,EAAQA,EAAMlK,OAAOiK,GACrBD,EAAU/Z,QAAQ1C,QAAQyV,GAEnBkH,EAAM9a,QACX4a,EAAUA,EAAQrc,KAAKuc,EAAMC,QAASD,EAAMC,SAG9C,OAAOH,EAKT,IAFA,IAAII,EAAYpH,EAETwG,EAAwBpa,QAAQ,CACrC,IAAIib,EAAcb,EAAwBW,QACtCG,EAAad,EAAwBW,QAEzC,IACEC,EAAYC,EAAYD,GACxB,MAAOvc,GACPyc,EAAWzc,GACX,OAIJ,IACEmc,EAAUf,EAAgBmB,GAC1B,MAAOvc,GACP,OAAOoC,QAAQzC,OAAOK,GAGxB,KAAOoc,EAAyB7a,QAC9B4a,EAAUA,EAAQrc,KAAKsc,EAAyBE,QAASF,EAAyBE,SAGpF,OAAOH,GAGT7B,EAAMlf,UAAUshB,OAAS,SAAgBvH,GACvC,IAAKA,EAAO/H,IACV,MAAM,IAAI3P,MAAM,oCAIlB,OADA0X,EAASoF,EAAYxb,KAAK0F,SAAU0Q,GAC7Ba,EAASb,EAAO/H,IAAK+H,EAAOV,OAAQU,EAAOT,kBAAkBnM,QAAQ,MAAO,KAIrFtE,EAAM3E,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BhC,GAE/Egd,EAAMlf,UAAUkC,GAAU,SAAU8P,EAAK+H,GACvC,OAAOpW,KAAKsW,QAAQkF,EAAYpF,GAAU,GAAI,CAC5C7X,OAAQA,EACR8P,IAAKA,EACLlI,MAAOiQ,GAAU,IAAIjQ,YAI3BjB,EAAM3E,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BhC,GAErEgd,EAAMlf,UAAUkC,GAAU,SAAU8P,EAAKlI,EAAMiQ,GAC7C,OAAOpW,KAAKsW,QAAQkF,EAAYpF,GAAU,GAAI,CAC5C7X,OAAQA,EACR8P,IAAKA,EACLlI,KAAMA,SAIZtB,EAAO5I,QAAUsf,G,iCC1JjB,IAAIrW,EAAQ,EAAQ,IAEpB,SAASkX,IACPpc,KAAK4d,SAAW,GAYlBxB,EAAmB/f,UAAUwhB,IAAM,SAAaX,EAAWC,EAAUW,GAOnE,OANA9d,KAAK4d,SAAS3b,KAAK,CACjBib,UAAWA,EACXC,SAAUA,EACVH,cAAac,GAAUA,EAAQd,YAC/BD,QAASe,EAAUA,EAAQf,QAAU,OAEhC/c,KAAK4d,SAASpb,OAAS,GAShC4Z,EAAmB/f,UAAU0hB,MAAQ,SAAe/S,GAC9ChL,KAAK4d,SAAS5S,KAChBhL,KAAK4d,SAAS5S,GAAM,OAaxBoR,EAAmB/f,UAAUkE,QAAU,SAAiBZ,GACtDuF,EAAM3E,QAAQP,KAAK4d,UAAU,SAAwBI,GACzC,OAANA,GACFre,EAAGqe,OAKTnZ,EAAO5I,QAAUmgB,G,iCCtDjB,IAAIlX,EAAQ,EAAQ,IAEhB+Y,EAAgB,EAAQ,KAExBnC,EAAW,EAAQ,KAEnBpW,EAAW,EAAQ,KAEnB0C,EAAS,EAAQ,KAMrB,SAAS8V,EAA6B9H,GAKpC,GAJIA,EAAOqB,aACTrB,EAAOqB,YAAY0G,mBAGjB/H,EAAOpK,QAAUoK,EAAOpK,OAAO6N,QACjC,MAAM,IAAIzR,EAAO,YAWrBvD,EAAO5I,QAAU,SAAyBma,GAYxC,OAXA8H,EAA6B9H,GAE7BA,EAAO7Q,QAAU6Q,EAAO7Q,SAAW,GAEnC6Q,EAAOjQ,KAAO8X,EAAcre,KAAKwW,EAAQA,EAAOjQ,KAAMiQ,EAAO7Q,QAAS6Q,EAAOlQ,kBAE7EkQ,EAAO7Q,QAAUL,EAAMiD,MAAMiO,EAAO7Q,QAAQ2C,QAAU,GAAIkO,EAAO7Q,QAAQ6Q,EAAO7X,SAAW,GAAI6X,EAAO7Q,SACtGL,EAAM3E,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAAW,SAA2BhC,UAC7F6X,EAAO7Q,QAAQhH,OAEV6X,EAAO3Q,SAAWC,EAASD,SAC1B2Q,GAAQrV,MAAK,SAA6BoL,GAIvD,OAHA+R,EAA6B9H,GAE7BjK,EAAShG,KAAO8X,EAAcre,KAAKwW,EAAQjK,EAAShG,KAAMgG,EAAS5G,QAAS6Q,EAAO5O,mBAC5E2E,KACN,SAA4BiS,GAS7B,OARKtC,EAASsC,KACZF,EAA6B9H,GAEzBgI,GAAUA,EAAOjS,WACnBiS,EAAOjS,SAAShG,KAAO8X,EAAcre,KAAKwW,EAAQgI,EAAOjS,SAAShG,KAAMiY,EAAOjS,SAAS5G,QAAS6Q,EAAO5O,qBAIrGnE,QAAQzC,OAAOwd,Q,iCCzD1B,IAAIlZ,EAAQ,EAAQ,IAEhBQ,EAAW,EAAQ,KAWvBb,EAAO5I,QAAU,SAAuBkK,EAAMZ,EAAS8Y,GACrD,IAAIngB,EAAU8B,MAAQ0F,EAMtB,OAHAR,EAAM3E,QAAQ8d,GAAK,SAAmB1e,GACpCwG,EAAOxG,EAAGC,KAAK1B,EAASiI,EAAMZ,MAEzBY,I,iCCpBT,IAAIjB,EAAQ,EAAQ,IAEpBL,EAAO5I,QAAU,SAA6BsJ,EAAS+Y,GACrDpZ,EAAM3E,QAAQgF,GAAS,SAAuBpI,EAAO4F,GAC/CA,IAASub,GAAkBvb,EAAK0V,gBAAkB6F,EAAe7F,gBACnElT,EAAQ+Y,GAAkBnhB,SACnBoI,EAAQxC,S,iCCNrB,IAAIsU,EAAc,EAAQ,KAU1BxS,EAAO5I,QAAU,SAAgB0E,EAASC,EAAQuL,GAChD,IAAInE,EAAiBmE,EAASiK,OAAOpO,eAEhCmE,EAASlE,QAAWD,IAAkBA,EAAemE,EAASlE,QAGjErH,EAAOyW,EAAY,mCAAqClL,EAASlE,OAAQkE,EAASiK,OAAQ,KAAMjK,EAASmK,QAASnK,IAFlHxL,EAAQwL,K,iCCdZ,IAAIjH,EAAQ,EAAQ,IAEpBL,EAAO5I,QAAUiJ,EAAM+T,uBAEd,CACLsF,MAAO,SAAexb,EAAM5F,EAAOqhB,EAASC,EAAMC,EAAQC,GACxD,IAAIC,EAAS,GACbA,EAAO3c,KAAKc,EAAO,IAAM0S,mBAAmBtY,IAExC+H,EAAM6V,SAASyD,IACjBI,EAAO3c,KAAK,WAAa,IAAI4c,KAAKL,GAASM,eAGzC5Z,EAAM+B,SAASwX,IACjBG,EAAO3c,KAAK,QAAUwc,GAGpBvZ,EAAM+B,SAASyX,IACjBE,EAAO3c,KAAK,UAAYyc,IAGX,IAAXC,GACFC,EAAO3c,KAAK,UAGd8L,SAAS6Q,OAASA,EAAO3I,KAAK,OAEhCmD,KAAM,SAAcrW,GAClB,IAAIgc,EAAQhR,SAAS6Q,OAAOG,MAAM,IAAIC,OAAO,aAAejc,EAAO,cACnE,OAAOgc,EAAQE,mBAAmBF,EAAM,IAAM,MAEhD9P,OAAQ,SAAgBlM,GACtB/C,KAAKue,MAAMxb,EAAM,GAAI8b,KAAKK,MAAQ,SAK/B,CACLX,MAAO,aACPnF,KAAM,WACJ,OAAO,MAETnK,OAAQ,e,iCC1CZ,IAAIkQ,EAAgB,EAAQ,KAExBC,EAAc,EAAQ,KAY1Bva,EAAO5I,QAAU,SAAuBic,EAASmH,GAC/C,OAAInH,IAAYiH,EAAcE,GACrBD,EAAYlH,EAASmH,GAGvBA,I,iCCbTxa,EAAO5I,QAAU,SAAuBoS,GAItC,MAAO,8BAA8BnF,KAAKmF,K,iCCH5CxJ,EAAO5I,QAAU,SAAqBic,EAASoH,GAC7C,OAAOA,EAAcpH,EAAQ1O,QAAQ,OAAQ,IAAM,IAAM8V,EAAY9V,QAAQ,OAAQ,IAAM0O,I,iCCR7F,IAAIhT,EAAQ,EAAQ,IAIhBqa,EAAoB,CAAC,MAAO,gBAAiB,iBAAkB,eAAgB,OAAQ,UAAW,OAAQ,OAAQ,oBAAqB,sBAAuB,gBAAiB,WAAY,eAAgB,sBAAuB,UAAW,cAAe,cAehQ1a,EAAO5I,QAAU,SAAsBsJ,GACrC,IACIrI,EACAsY,EACA/S,EAHA+c,EAAS,GAKb,OAAKja,GAILL,EAAM3E,QAAQgF,EAAQka,MAAM,OAAO,SAAgBC,GAKjD,GAJAjd,EAAIid,EAAKvJ,QAAQ,KACjBjZ,EAAMgI,EAAMkC,KAAKsY,EAAKC,OAAO,EAAGld,IAAI4W,cACpC7D,EAAMtQ,EAAMkC,KAAKsY,EAAKC,OAAOld,EAAI,IAE7BvF,EAAK,CACP,GAAIsiB,EAAOtiB,IAAQqiB,EAAkBpJ,QAAQjZ,IAAQ,EACnD,OAIAsiB,EAAOtiB,GADG,eAARA,GACasiB,EAAOtiB,GAAOsiB,EAAOtiB,GAAO,IAAIkW,OAAO,CAACoC,IAEzCgK,EAAOtiB,GAAOsiB,EAAOtiB,GAAO,KAAOsY,EAAMA,MAItDgK,GApBEA,I,iCC1BX,IAAIta,EAAQ,EAAQ,IAEpBL,EAAO5I,QAAUiJ,EAAM+T,uBAEvB,WACE,IAEI2G,EAFAC,EAAO,kBAAkB3W,KAAKmE,UAAUyS,WACxCC,EAAiBhS,SAASiS,cAAc,KAS5C,SAASC,EAAW5R,GAClB,IAAI6R,EAAO7R,EAUX,OARIwR,IAEFE,EAAeI,aAAa,OAAQD,GACpCA,EAAOH,EAAeG,MAGxBH,EAAeI,aAAa,OAAQD,GAE7B,CACLA,KAAMH,EAAeG,KACrBE,SAAUL,EAAeK,SAAWL,EAAeK,SAAS5W,QAAQ,KAAM,IAAM,GAChF6W,KAAMN,EAAeM,KACrBC,OAAQP,EAAeO,OAASP,EAAeO,OAAO9W,QAAQ,MAAO,IAAM,GAC3E+W,KAAMR,EAAeQ,KAAOR,EAAeQ,KAAK/W,QAAQ,KAAM,IAAM,GACpEgX,SAAUT,EAAeS,SACzBC,KAAMV,EAAeU,KACrBC,SAAgD,MAAtCX,EAAeW,SAAS7c,OAAO,GAAakc,EAAeW,SAAW,IAAMX,EAAeW,UAYzG,OARAd,EAAYK,EAAWrR,OAAOC,SAASqR,MAQhC,SAAyBS,GAC9B,IAAInB,EAASta,EAAM+B,SAAS0Z,GAAcV,EAAWU,GAAcA,EACnE,OAAOnB,EAAOY,WAAaR,EAAUQ,UAAYZ,EAAOa,OAAST,EAAUS,MA5C/E,GAgDS,WACL,OAAO,I,iCCrDX,IAAItE,EAAU,EAAQ,KAAevK,QAEjC+K,EAAa,GAEjB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUhc,SAAQ,SAAUhB,EAAMkD,GACtF8Z,EAAWhd,GAAQ,SAAmBqhB,GACpC,cAAcA,IAAUrhB,GAAQ,KAAOkD,EAAI,EAAI,KAAO,KAAOlD,MAGjE,IAAIshB,EAAqB,GASzBtE,EAAW5W,aAAe,SAAsB2W,EAAW9K,EAASnJ,GAClE,SAASyY,EAAcC,EAAKC,GAC1B,MAAO,WAAajF,EAAU,0BAA6BgF,EAAM,IAAOC,GAAQ3Y,EAAU,KAAOA,EAAU,IAI7G,OAAO,SAAUlL,EAAO4jB,EAAKE,GAC3B,IAAkB,IAAd3E,EACF,MAAM,IAAI5d,MAAMoiB,EAAcC,EAAK,qBAAuBvP,EAAU,OAASA,EAAU,MASzF,OANIA,IAAYqP,EAAmBE,KACjCF,EAAmBE,IAAO,EAE1B7R,QAAQgS,KAAKJ,EAAcC,EAAK,+BAAiCvP,EAAU,8CAGtE8K,GAAYA,EAAUnf,EAAO4jB,EAAKE,KAwC7Cpc,EAAO5I,QAAU,CACfygB,cA9BF,SAAuBoB,EAAShT,EAAQqW,GACtC,GAAuB,iBAAZrD,EACT,MAAM,IAAI1c,UAAU,6BAMtB,IAHA,IAAImC,EAAOnH,OAAOmH,KAAKua,GACnBrb,EAAIc,EAAKf,OAENC,KAAM,GAAG,CACd,IAAIse,EAAMxd,EAAKd,GACX6Z,EAAYxR,EAAOiW,GAEvB,GAAIzE,EAAJ,CACE,IAAInf,EAAQ2gB,EAAQiD,GAChBlgB,OAAmB3E,IAAViB,GAAuBmf,EAAUnf,EAAO4jB,EAAKjD,GAE1D,IAAe,IAAXjd,EACF,MAAM,IAAIO,UAAU,UAAY2f,EAAM,YAAclgB,QAMxD,IAAqB,IAAjBsgB,EACF,MAAMziB,MAAM,kBAAoBqiB,KAOpCxE,WAAYA,I,iCC7Ed,IAAInU,EAAS,EAAQ,KASrB,SAASyT,EAAYuF,GACnB,GAAwB,mBAAbA,EACT,MAAM,IAAIhgB,UAAU,gCAGtB,IAAIigB,EACJrhB,KAAKod,QAAU,IAAI/Z,SAAQ,SAAyB1C,GAClD0gB,EAAiB1gB,KAEnB,IAAI2gB,EAAQthB,KAEZA,KAAKod,QAAQrc,MAAK,SAAU2Y,GAC1B,GAAK4H,EAAMC,WAAX,CACA,IAAI9e,EACA8J,EAAI+U,EAAMC,WAAW/e,OAEzB,IAAKC,EAAI,EAAGA,EAAI8J,EAAG9J,IACjB6e,EAAMC,WAAW9e,GAAGiX,GAGtB4H,EAAMC,WAAa,SAGrBvhB,KAAKod,QAAQrc,KAAO,SAAUygB,GAC5B,IAAIC,EAGArE,EAAU,IAAI/Z,SAAQ,SAAU1C,GAClC2gB,EAAM1H,UAAUjZ,GAChB8gB,EAAW9gB,KACVI,KAAKygB,GAMR,OAJApE,EAAQ1D,OAAS,WACf4H,EAAM5J,YAAY+J,IAGbrE,GAGTgE,GAAS,SAAgB/Y,GACnBiZ,EAAMlD,SAKVkD,EAAMlD,OAAS,IAAIhW,EAAOC,GAC1BgZ,EAAeC,EAAMlD,YAQzBvC,EAAYxf,UAAU8hB,iBAAmB,WACvC,GAAIne,KAAKoe,OACP,MAAMpe,KAAKoe,QAQfvC,EAAYxf,UAAUud,UAAY,SAAmB8H,GAC/C1hB,KAAKoe,OACPsD,EAAS1hB,KAAKoe,QAIZpe,KAAKuhB,WACPvhB,KAAKuhB,WAAWtf,KAAKyf,GAErB1hB,KAAKuhB,WAAa,CAACG,IAQvB7F,EAAYxf,UAAUqb,YAAc,SAAqBgK,GACvD,GAAK1hB,KAAKuhB,WAAV,CAIA,IAAII,EAAQ3hB,KAAKuhB,WAAWpL,QAAQuL,IAErB,IAAXC,GACF3hB,KAAKuhB,WAAWK,OAAOD,EAAO,KASlC9F,EAAY3B,OAAS,WACnB,IAAIR,EAIJ,MAAO,CACL4H,MAJU,IAAIzF,GAAY,SAAkBjS,GAC5C8P,EAAS9P,KAIT8P,OAAQA,IAIZ7U,EAAO5I,QAAU4f,G,iCClGjBhX,EAAO5I,QAAU,SAAgBmS,GAC/B,OAAO,SAAchF,GACnB,OAAOgF,EAASZ,MAAM,KAAMpE,M,iCCtBhC,IAAIlE,EAAQ,EAAQ,IASpBL,EAAO5I,QAAU,SAAsB4lB,GACrC,OAAO3c,EAAM2B,SAASgb,KAAqC,IAAzBA,EAAQtL,e,mBCZ5C,SAMA,YAEE,YACE,WACEvW,KAAK8hB,MAAQ,CACXC,kBAAmB,yGACnBC,oBAAqB,CACnBC,SAAU,oEACVC,QAAS,eAEXC,oBAAqB,iEACrBC,mBAAoB,8BACpBC,uBAAwB,ySACxBC,oBAAqB,sMACrBC,mBAAoB,4MACpBC,kBAAmB,yCACnBC,oBAAqB,wCACrBC,sBAAuB,+EAExB9iB,KAAKI,QACPJ,KAnBWI,MAoBd,IAAI8hB,EApBU9hB,KAoBM8hB,OACpB,YACE,WACE,IAAIa,EACJA,EAAQ,KAERb,EAAMc,aAAe,WACnB,IAAIC,EACJ,OAAOF,EAAkE,OAAzDE,EAAM9U,SAASW,cAAc,yBAAmCmU,EAAIvH,aAAU,GAGhGwG,EAAMgB,SAAW,WACf,OAAgB,MAATH,EAAgBA,EAAQb,EAAMc,kBAEtChjB,KAAKI,MACR,WACE,IAAa+iB,EACbA,EAAIC,QAAQ3mB,UAAU4mB,SAAWD,QAAQ3mB,UAAU6mB,iBAAmBF,QAAQ3mB,UAAU8mB,oBAAsBH,QAAQ3mB,UAAU+mB,mBAAqBJ,QAAQ3mB,UAAUgnB,kBAAoBL,QAAQ3mB,UAAUinB,sBAE7MxB,EAAMmB,QAAU,SAAU7S,EAAS6R,GACjC,OAAwB,MAApBA,EAASC,QACJa,EAAEnjB,KAAKwQ,EAAS6R,EAASA,YAAcc,EAAEnjB,KAAKwQ,EAAS6R,EAASC,SAEhEa,EAAEnjB,KAAKwQ,EAAS6R,IAM3BH,EAAMyB,QAAU,SAAUnT,EAASlT,GACjC,IAAI2lB,EACJ,OAAmC,OAA3BA,EAAMzS,EAAe,UAAayS,EAAI3lB,QAAO,GAGvD4kB,EAAM0B,QAAU,SAAUpT,EAASlT,EAAKC,GAKtC,OAJwB,MAApBiT,EAAe,WACjBA,EAAe,SAAI,IAGdA,EAAe,SAAElT,GAAOC,GAGjC2kB,EAAM2B,EAAI,SAAUxB,GAClB,OAAOrZ,MAAMvM,UAAUyH,MAAMlE,KAAKmO,SAAS2V,iBAAiBzB,MAE7DriB,KAAKI,MACR,WACE,IAAIyjB,EAAGE,EAAWC,EAClBH,EAAI3B,EAAM2B,EAEVG,EAAY9B,EAAM8B,UAAY,WAC5B,IAAInT,EAEJ,OADAA,EAAO1C,SAASW,cAAc,2BACf+B,EAAK6K,SAGtBqI,EAAY7B,EAAM6B,UAAY,WAC5B,IAAIlT,EAEJ,OADAA,EAAO1C,SAASW,cAAc,2BACf+B,EAAK6K,SAGtBwG,EAAM+B,eAAiB,SAAUC,GAC/B,IAAIxC,EAGJ,GAAa,OAFbA,EAAQsC,KAGN,OAAOE,EAAIxK,iBAAiB,eAAgBgI,IAIhDQ,EAAMiC,kBAAoB,WACxB,IAAIC,EAAO1C,EAIX,GAHAA,EAAQsC,IACRI,EAAQL,IAEK,MAATrC,GAA0B,MAAT0C,EACnB,OAAOP,EAAE,oBAAsBO,EAAQ,MAAMzjB,SAAQ,SAAU0jB,GAC7D,OAAOA,EAAM9mB,MAAQmkB,OAI1B1hB,KAAKI,MACR,WACE,IAAIkkB,EAAaC,EAAMlB,EAASvT,EAChCuT,EAAUnB,EAAMmB,QAGW,mBAF3BiB,EAActV,OAAOsV,gBAGnBA,EAAc,SAAqBzU,EAAOiG,GACxC,IAAI0O,EAGJ,OAFAA,EAAMrW,SAASsW,YAAY,gBACvBC,gBAAgB7U,EAAOiG,EAAO6O,QAAS7O,EAAO8O,WAAY9O,EAAO+O,QAC9DL,IAGG/nB,UAAYuS,OAAO8V,MAAMroB,UACrCqT,EAAiBwU,EAAY7nB,UAAUqT,eAEvCwU,EAAY7nB,UAAUqT,eAAiB,WACrC,IAAI7O,EAWJ,OAVAA,EAAS6O,EAAe9P,KAAKI,MAEzBA,KAAKwkB,aAAexkB,KAAK2kB,kBAC3BvoB,OAAOgB,eAAe4C,KAAM,mBAAoB,CAC9C6N,IAAK,WACH,OAAO,KAKNhN,IAIXsjB,EAAOrC,EAAMqC,KAAO,SAAUlnB,EAAK8F,EAAMoD,GACvC,IAAIsJ,EAOJ,OANAA,EAAQ,IAAIyU,EAAYnhB,EAAM,CAC5BwhB,SAAS,EACTC,YAAY,EACZC,OAAQte,IAEVlJ,EAAI2nB,cAAcnV,IACVA,EAAMkV,kBAGhB7C,EAAM+C,eAAiB,SAAUxd,GAI/B,OAHA8c,EAAK9c,EAAEuI,OAAQ,yBACfvI,EAAEqI,iBACFrI,EAAEyd,kBACKzd,EAAE0d,4BAGXjD,EAAMjjB,SAAW,SAAUuR,EAAS6R,EAAU+C,EAAWC,GACvD,OAAO7U,EAAQZ,iBAAiBwV,GAAW,SAAU3d,GACnD,IAAIuI,EAGJ,IAFAA,EAASvI,EAAEuI,OAEAA,aAAkBoT,UAAYC,EAAQrT,EAAQqS,IACvDrS,EAASA,EAAOsV,WAGlB,GAAItV,aAAkBoT,UAAuC,IAA5BiC,EAAQrlB,KAAKgQ,EAAQvI,GAEpD,OADAA,EAAEqI,iBACKrI,EAAEyd,uBAIdllB,KAAKI,MACR,WACE,IAAImlB,EAAetB,EAAgBuB,EAAWtC,EAAgBuC,EAAgBC,EAC9ExC,EAAWhB,EAAMgB,SAAUe,EAAiB/B,EAAM+B,eAAuB/B,EAAMqC,KAC/EgB,EAAgB,CACd,IAAK,MACLI,KAAM,aACNC,KAAM,YACNC,IAAK,4BACLC,KAAM,oCACNC,OAAQ,6FAGV7D,EAAM8D,KAAO,SAAU9H,GACrB,IAAIgG,EAmBJ,OAlBAhG,EAAUuH,EAAevH,GACzBgG,EAAMsB,EAAUtH,GAAS,WACvB,IAAI+E,EAAK1W,EAaT,OAZAA,EAAWmZ,EAAwC,OAAvBzC,EAAMiB,EAAI3X,UAAoB0W,EAAMiB,EAAIxL,aAAcwL,EAAI+B,kBAAkB,iBAEnE,IAAjCC,KAAKC,MAAMjC,EAAI7b,OAAS,KACK,mBAApB6V,EAAQkI,SACjBlI,EAAQkI,QAAQ7Z,EAAU2X,EAAIvL,WAAYuL,GAGf,mBAAlBhG,EAAQ7c,OACjB6c,EAAQ7c,MAAMkL,EAAU2X,EAAIvL,WAAYuL,GAIT,mBAArBhG,EAAQrZ,SAA0BqZ,EAAQrZ,SAASqf,EAAKA,EAAIvL,iBAAc,OAGhE,MAAtBuF,EAAQmI,aAAuBnI,EAAQmI,WAAWnC,EAAKhG,MAIvDgG,EAAInL,aAAe5S,eAAemgB,OAC7BpC,EAAIhK,KAAKgE,EAAQ3X,WAD1B,IAKFkf,EAAiB,SAAwBvH,GAsBvC,OArBAA,EAAQzP,IAAMyP,EAAQzP,KAAOQ,SAASqR,KACtCpC,EAAQve,KAAOue,EAAQve,KAAKkZ,cAEP,QAAjBqF,EAAQve,MAAkBue,EAAQ3X,OAChC2X,EAAQzP,IAAI8H,QAAQ,KAAO,EAC7B2H,EAAQzP,KAAO,IAAMyP,EAAQ3X,KAE7B2X,EAAQzP,KAAO,IAAMyP,EAAQ3X,MAIM,MAAnCgf,EAAcrH,EAAQqI,YACxBrI,EAAQqI,SAAW,KAGrBrI,EAAQsI,OAASjB,EAAcrH,EAAQqI,UAEd,MAArBrI,EAAQqI,WACVrI,EAAQsI,QAAU,iBAGbtI,GAGTsH,EAAY,SAAmBtH,EAASte,GACtC,IAAIskB,EAsBJ,OArBAA,EAAM,IAAI/d,gBACNyS,KAAKsF,EAAQve,KAAMue,EAAQzP,KAAK,GACpCyV,EAAIxK,iBAAiB,SAAUwE,EAAQsI,QAEX,iBAAjBtI,EAAQ3X,MACjB2d,EAAIxK,iBAAiB,eAAgB,oDAGlCwE,EAAQuI,cACXvC,EAAIxK,iBAAiB,mBAAoB,kBACzCuK,EAAeC,IAGjBA,EAAI3K,kBAAoB2E,EAAQ3E,gBAEhC2K,EAAIpL,mBAAqB,WACvB,GAAIoL,EAAInL,aAAe5S,eAAeugB,KACpC,OAAO9mB,EAAKskB,IAITA,GAGTwB,EAAkB,SAAyBnZ,EAAU5M,GACnD,IAAIwH,EAAQ4e,EAEZ,GAAwB,iBAAbxZ,GAAyC,iBAAT5M,EACzC,GAAIA,EAAKwf,MAAM,YACb,IACE5S,EAAWjF,KAAKC,MAAMgF,GACtB,MAAOlL,SACJ,GAAI1B,EAAKwf,MAAM,4BACpB4G,EAAS5X,SAASiS,cAAc,WACzBG,aAAa,QAAS2C,KAC7B6C,EAAOJ,KAAOpZ,EACd4B,SAASwY,KAAKC,YAAYb,GAAQT,WAAWuB,YAAYd,QACpD,GAAIpmB,EAAKwf,MAAM,sBAAuB,CAC3ChY,EAAS,IAAI2f,UACbnnB,EAAOA,EAAKiK,QAAQ,MAAO,IAE3B,IACE2C,EAAWpF,EAAO4f,gBAAgBxa,EAAU5M,GAC5C,MAAO0B,KAIb,OAAOkL,GAGT2V,EAAM5B,KAAO,SAAU9P,GACrB,OAAOA,EAAQ8P,MAGjB4B,EAAM8E,cAAgB,SAAUvY,GAC9B,IAAOwY,EAAcC,GACrBD,EAAe9Y,SAASiS,cAAc,MACzBE,KAAOrR,SAASqR,KAC7B4G,EAAY/Y,SAASiS,cAAc,KAEnC,IAEE,OADA8G,EAAU5G,KAAO7R,MACNyY,EAAU1G,UAAmC,MAAvB0G,EAAU1G,YAAsB0G,EAAUzG,MAAQwG,EAAazG,SAAW,KAAOyG,EAAaxG,MAASyG,EAAU1G,SAAW,KAAO0G,EAAUzG,MAC9K,MAAOpf,GAEP,OADIA,GACG,KAGVrB,KAAKI,MACR,WACE,IAAIijB,EAAS8D,EACb9D,EAAUnB,EAAMmB,QAEhB8D,EAAU,SAAiB1f,GACzB,OAAOuB,MAAMvM,UAAUyH,MAAMlE,KAAKyH,IAGpCya,EAAMkF,iBAAmB,SAAU5W,EAAS6W,GAC1C,IAAIC,EAAQxR,EAsCZ,OArCAwR,EAAS,CAAC9W,GAEN6S,EAAQ7S,EAAS,UACnB8W,EAASH,EAAQ3W,EAAQ+W,WAG3BzR,EAAS,GACTwR,EAAO3mB,SAAQ,SAAU0jB,GACvB,GAAKA,EAAMlhB,OAAQkhB,EAAM3U,WAIrB2T,EAAQgB,EAAO,wBAInB,OAAIhB,EAAQgB,EAAO,UACV8C,EAAQ9C,EAAMnG,SAASvd,SAAQ,SAAU6mB,GAC9C,GAAIA,EAAOC,SACT,OAAO3R,EAAOzT,KAAK,CACjBc,KAAMkhB,EAAMlhB,KACZ5F,MAAOiqB,EAAOjqB,WAIX8mB,EAAMqD,UAAoE,IAAzD,CAAC,QAAS,WAAY,UAAUnR,QAAQ8N,EAAM1kB,MACjEmW,EAAOzT,KAAK,CACjBc,KAAMkhB,EAAMlhB,KACZ5F,MAAO8mB,EAAM9mB,aAHV,KAQL8pB,GACFvR,EAAOzT,KAAKglB,GAGPvR,EAAOpL,KAAI,SAAU0Z,GAC1B,OAAkB,MAAdA,EAAMjhB,KACD0S,mBAAmBuO,EAAMjhB,MAAQ,IAAM0S,mBAAmBuO,EAAM7mB,OAEhE6mB,KAER/N,KAAK,MAGV6L,EAAMyF,aAAe,SAAUC,EAAMvF,GACnC,OAAIgB,EAAQuE,EAAM,QACTT,EAAQS,EAAKL,UAAUM,QAAO,SAAUC,GAC7C,OAAOzE,EAAQyE,EAAIzF,MAGd8E,EAAQS,EAAK9D,iBAAiBzB,MAGxCriB,KAAKI,MACR,WACE,IAAI2nB,EAAaxD,EAAMU,EACvBV,EAAOrC,EAAMqC,KAAMU,EAAiB/C,EAAM+C,eAE1C/C,EAAM8F,cAAgB,SAAUvgB,GAC9B,IAAKsgB,EAAY3nB,MACf,OAAO6kB,EAAexd,IAI1Bya,EAAM+F,QAAU,SAAUxf,EAAS+H,GACjC,OAAOyX,QAAQxf,IAGjBsf,EAAc,SAAqBvX,GACjC,IAAI0X,EAAQ1Z,EAAU/F,EAGtB,KAFAA,EAAU+H,EAAQzB,aAAa,iBAG7B,OAAO,EAKT,GAFAmZ,GAAS,EAEL3D,EAAK/T,EAAS,WAAY,CAC5B,IACE0X,EAAShG,EAAM+F,QAAQxf,EAAS+H,GAChC,MAAOnP,IAETmN,EAAW+V,EAAK/T,EAAS,mBAAoB,CAAC0X,IAGhD,OAAOA,GAAU1Z,IAElBxO,KAAKI,MACR,WACE,IAAI+nB,EAAoBC,EAAqBC,EAAoBC,EAAmBC,EAAoBC,EAAmBb,EAAchE,EAAS8E,EAAepF,EAASO,EAASqB,EACnL5B,EAAUnB,EAAMmB,QAASM,EAAUzB,EAAMyB,QAASC,EAAU1B,EAAM0B,QAASqB,EAAiB/C,EAAM+C,eAAgB0C,EAAezF,EAAMyF,aAEvIzF,EAAMwG,sBAAwB,SAAUjhB,GAItC,GAFUrH,UAEEsP,SACV,OAAOuV,EAAexd,IAI1Bya,EAAMyG,cAAgB,SAAUlhB,GAC9B,IAAI+I,EAEJ,GAAI/I,aAAaqd,MAAO,CACtB,GAAI2D,EAAchhB,GAChB,OAGF+I,EAAU/I,EAAEuI,YAEZQ,EAAU/I,EAGZ,OAAI4b,EAAQ7S,EAAS0R,EAAMW,qBAClB2F,EAAkBhY,GAChB6S,EAAQ7S,EAAS0R,EAAMY,wBAA0BO,EAAQ7S,EAAS0R,EAAMS,oBAC1E2F,EAAkB9X,GAChB6S,EAAQ7S,EAAS0R,EAAMM,oBACzB+F,EAAmB/X,QADrB,GAKT0R,EAAM0G,eAAiB,SAAUnhB,GAC/B,IAAI+I,EAGJ,OAFAA,EAAU/I,aAAaqd,MAAQrd,EAAEuI,OAASvI,EAEtC4b,EAAQ7S,EAAS0R,EAAMW,qBAClBwF,EAAmB7X,GACjB6S,EAAQ7S,EAAS0R,EAAMY,wBAA0BO,EAAQ7S,EAAS0R,EAAMQ,qBAC1EyF,EAAmB3X,GACjB6S,EAAQ7S,EAAS0R,EAAMM,oBACzB4F,EAAoB5X,QADtB,GAKT6X,EAAqB,SAA4B7X,GAC/C,IAAIqY,EAEJ,IAAIlF,EAAQnT,EAAS,gBAYrB,OANmB,OAFnBqY,EAAcrY,EAAQzB,aAAa,wBAGjC6U,EAAQpT,EAAS,kBAAmBA,EAAQsY,WAC5CtY,EAAQsY,UAAYD,GAGtBrY,EAAQZ,iBAAiB,QAASqV,GAC3BrB,EAAQpT,EAAS,gBAAgB,IAG1CgY,EAAoB,SAA2BhY,GAC7C,IAAIuY,EASJ,OANoB,OAFpBA,EAAepF,EAAQnT,EAAS,sBAG9BA,EAAQsY,UAAYC,EACpBnF,EAAQpT,EAAS,kBAAmB,OAGtCA,EAAQuH,oBAAoB,QAASkN,GAC9BrB,EAAQpT,EAAS,eAAgB,OAG1C4X,EAAsB,SAA6BR,GACjD,OAAOD,EAAaC,EAAM1F,EAAMQ,qBAAqB/hB,QAAQwnB,IAG/DA,EAAqB,SAA4B3X,GAC/C,IAAIqY,EAEJ,IAAIlF,EAAQnT,EAAS,gBAiBrB,OAXmB,OAFnBqY,EAAcrY,EAAQzB,aAAa,wBAG7BsU,EAAQ7S,EAAS,WACnBoT,EAAQpT,EAAS,kBAAmBA,EAAQsY,WAC5CtY,EAAQsY,UAAYD,IAEpBjF,EAAQpT,EAAS,kBAAmBA,EAAQjT,OAC5CiT,EAAQjT,MAAQsrB,IAIpBrY,EAAQd,UAAW,EACZkU,EAAQpT,EAAS,gBAAgB,IAG1C+X,EAAqB,SAA4BX,GAC/C,OAAOD,EAAaC,EAAM1F,EAAMS,oBAAoBhiB,QAAQ2nB,IAG9DA,EAAoB,SAA2B9X,GAC7C,IAAIuY,EAcJ,OAXoB,OAFpBA,EAAepF,EAAQnT,EAAS,sBAG1B6S,EAAQ7S,EAAS,UACnBA,EAAQsY,UAAYC,EAEpBvY,EAAQjT,MAAQwrB,EAGlBnF,EAAQpT,EAAS,kBAAmB,OAGtCA,EAAQd,UAAW,EACZkU,EAAQpT,EAAS,eAAgB,OAG1CiY,EAAgB,SAAuB5Y,GACrC,IAAIoT,EAAKiB,EAET,OAA2E,OAA5D,OADfA,EAA8B,OAAvBjB,EAAMpT,EAAMgV,QAAkB5B,EAAI,QAAK,GACxBiB,EAAI+B,kBAAkB,uBAAoB,KAEjEjmB,KAAKI,MACR,WACE,IAAI6kB,EACJA,EAAiB/C,EAAM+C,eAEvB/C,EAAM8G,aAAe,SAAUvhB,GAC7B,IAAIsc,EAAWC,EAAW4D,EAAMqB,EAAa3I,EAAM4I,EAAMvqB,EAIzD,GAFAA,GADAuqB,EAAO9oB,MACO2O,aAAa,eAwB3B,OAlBAuR,EAAO4B,EAAM5B,KAAK4I,GAClBlF,EAAY9B,EAAM8B,YAClBD,EAAY7B,EAAM6B,YAClB6D,EAAOzZ,SAASiS,cAAc,QAC9B6I,EAAc,gCAAkCtqB,EAAS,qBAExC,MAAbolB,GAAkC,MAAbC,GAAsB9B,EAAM8E,cAAc1G,KACjE2I,GAAe,gBAAkBlF,EAAY,YAAcC,EAAY,sBAGzEiF,GAAe,0BACfrB,EAAKjpB,OAAS,OACdipB,EAAKuB,OAAS7I,EACdsH,EAAK5X,OAASkZ,EAAKlZ,OACnB4X,EAAKkB,UAAYG,EACjBrB,EAAKwB,MAAMC,QAAU,OACrBlb,SAASO,KAAKkY,YAAYgB,GAC1BA,EAAK9Y,cAAc,mBAAmBwa,QAC/BrE,EAAexd,KAEvBzH,KAAKI,MACR,WACE,IAAI4lB,EACAzB,EACAZ,EACAqD,EACAuC,EACAlG,EACA+D,EACAxD,EACAqB,EACA/gB,EAAQ,GAAGA,MACfmf,EAAUnB,EAAMmB,QAASM,EAAUzB,EAAMyB,QAASC,EAAU1B,EAAM0B,QAASW,EAAOrC,EAAMqC,KAAMU,EAAiB/C,EAAM+C,eAAgBe,EAAO9D,EAAM8D,KAAMgB,EAAgB9E,EAAM8E,cAAeI,EAAmBlF,EAAMkF,iBAEtNmC,EAAW,SAAkB/Y,GAC3B,IAAIjT,EAEJ,OAAgB,OADhBA,EAAQiT,EAAQzB,aAAa,iBACK,UAAVxR,GAG1B2kB,EAAMsH,aAAe,SAAU/hB,GAC7B,IAAIgiB,EAAQljB,EAAMggB,EAAU/V,EAAS7R,EAAQ8P,EAAK8K,EAGlD,OAAKgQ,EAFL/Y,EAAUpQ,QAMLmkB,EAAK/T,EAAS,gBAKnB+I,EAAkB/I,EAAQzB,aAAa,yBACvCwX,EAAW/V,EAAQzB,aAAa,cAAgB,SAE5CsU,EAAQ7S,EAAS0R,EAAMM,qBACzBiH,EAAS9F,EAAQnT,EAAS,qBAC1B7R,EAASglB,EAAQnT,EAAS,iCAAmCA,EAAQ7R,OACrE8P,EAAMkV,EAAQnT,EAAS,iCAAmCA,EAAQzB,aAAa,WAAaE,SAASqR,KAExE,QAAzB3hB,EAAOka,gBACTpK,EAAMA,EAAI7E,QAAQ,QAAS,KAGL,wBAApB4G,EAAQkZ,SACVnjB,EAAO,IAAIojB,SAASnZ,GAEN,MAAViZ,GACFljB,EAAKqjB,OAAOH,EAAOtmB,KAAMsmB,EAAOlsB,QAGlCgJ,EAAO6gB,EAAiB5W,EAASiZ,GAGnC7F,EAAQpT,EAAS,oBAAqB,MACtCoT,EAAQpT,EAAS,+BAAgC,MACjDoT,EAAQpT,EAAS,+BAAgC,OACxC6S,EAAQ7S,EAAS0R,EAAME,sBAAwBiB,EAAQ7S,EAAS0R,EAAMK,sBAC/E5jB,EAAS6R,EAAQzB,aAAa,eAC9BN,EAAM+B,EAAQzB,aAAa,YAC3BxI,EAAO6gB,EAAiB5W,EAASA,EAAQzB,aAAa,kBAEtDpQ,EAAS6R,EAAQzB,aAAa,eAC9BN,EAAMyT,EAAM5B,KAAK9P,GACjBjK,EAAOiK,EAAQzB,aAAa,gBAG9BiX,EAAK,CACHrmB,KAAMhB,GAAU,MAChB8P,IAAKA,EACLlI,KAAMA,EACNggB,SAAUA,EACVF,WAAY,SAAoBnC,EAAKhG,GACnC,OAAIqG,EAAK/T,EAAS,kBAAmB,CAAC0T,EAAKhG,IAClCqG,EAAK/T,EAAS,YAAa,CAAC0T,KAEnCK,EAAK/T,EAAS,iBACP,IAGX4V,QAAS,WACP,IAAInS,EAEJ,OADAA,EAAO,GAAKpG,UAAUjL,OAASsB,EAAMlE,KAAK6N,UAAW,GAAK,GACnD0W,EAAK/T,EAAS,eAAgByD,IAEvC5S,MAAO,WACL,IAAI4S,EAEJ,OADAA,EAAO,GAAKpG,UAAUjL,OAASsB,EAAMlE,KAAK6N,UAAW,GAAK,GACnD0W,EAAK/T,EAAS,aAAcyD,IAErCpP,SAAU,WACR,IAAIoP,EAEJ,OADAA,EAAO,GAAKpG,UAAUjL,OAASsB,EAAMlE,KAAK6N,UAAW,GAAK,GACnD0W,EAAK/T,EAAS,gBAAiByD,IAExCwS,YAAaO,EAAcvY,GAC3B8K,gBAAoC,MAAnBA,GAA+C,UAApBA,IAEvC0L,EAAexd,KAtEpB8c,EAAK/T,EAAS,iBACP,KAwEX0R,EAAM2H,sBAAwB,SAAUpiB,GACtC,IAAIgiB,EAAQ7B,EAIZ,GAFAA,GADA6B,EAASrpB,MACKwnB,KAed,OATI6B,EAAOtmB,MACTygB,EAAQgE,EAAM,oBAAqB,CACjCzkB,KAAMsmB,EAAOtmB,KACb5F,MAAOksB,EAAOlsB,QAIlBqmB,EAAQgE,EAAM,4BAA6B6B,EAAOK,gBAClDlG,EAAQgE,EAAM,+BAAgC6B,EAAO1a,aAAa,eAC3D6U,EAAQgE,EAAM,+BAAgC6B,EAAO1a,aAAa,gBAG3EmT,EAAM6H,0BAA4B,SAAUtiB,GAC1C,IAAIlB,EAAMyjB,EAAyCrrB,EAQnD,GAPOyB,KACPzB,GADOyB,KACQ2O,aAAa,gBAAkB,OAAO8J,cACrDtS,EAFOnG,KAEK2O,aAAa,eAEzBib,GADYviB,EAAEwiB,SAAWxiB,EAAEyiB,UACsB,QAAXvrB,IAAqB4H,EACxB,MAAZkB,EAAEgiB,QAA+B,IAAbhiB,EAAEgiB,QAEjBO,EAC1B,OAAOviB,EAAE0d,6BAGZnlB,KAAKI,MACR,WACE,IAAIyjB,EAAGI,EAAgBhlB,EAAU2pB,EAAgBD,EAAepE,EAAMsF,EAAuBlG,EAASqE,EAAeU,EAAuBM,EAAcQ,EAAcxG,EAAc+G,EAA2B5F,EAGjN,GAFAI,EAAOrC,EAAMqC,KAAMtlB,EAAWijB,EAAMjjB,SAAU0kB,EAAUzB,EAAMyB,QAASE,EAAI3B,EAAM2B,EAAGM,EAAoBjC,EAAMiC,kBAAmBF,EAAiB/B,EAAM+B,eAAgBjB,EAAed,EAAMc,aAAc2F,EAAgBzG,EAAMyG,cAAeC,EAAiB1G,EAAM0G,eAAgBF,EAAwBxG,EAAMwG,sBAAuBV,EAAgB9F,EAAM8F,cAAe+B,EAA4B7H,EAAM6H,0BAA2BP,EAAetH,EAAMsH,aAAcK,EAAwB3H,EAAM2H,sBAAuBb,EAAe9G,EAAM8G,aAErgB,oBAAXmB,QAAqC,OAAXA,QAAkC,MAAfA,OAAOnE,KAAc,CAC3E,GAAImE,OAAOC,MACT,MAAM,IAAItrB,MAAM,kEAGlBqrB,OAAOC,MAAQlI,EACfiI,OAAOE,eAAc,SAAUnM,EAASoM,EAAiBpG,GACvD,IAAKhG,EAAQuI,YACX,OAAOxC,EAAeC,MAK5BhC,EAAMqI,MAAQ,WACZ,GAAIvb,OAAOwb,cACT,MAAM,IAAI1rB,MAAM,sCAiDlB,OA9CAkQ,OAAOY,iBAAiB,YAAY,WAMlC,OALAiU,EAAE3B,EAAMS,oBAAoBhiB,SAAQ,SAAUmnB,GAC5C,GAAInE,EAAQmE,EAAI,gBACd,OAAOa,EAAcb,MAGlBjE,EAAE3B,EAAMW,qBAAqBliB,SAAQ,SAAUmnB,GACpD,GAAInE,EAAQmE,EAAI,gBACd,OAAOa,EAAcb,SAI3B7oB,EAASkP,SAAU+T,EAAMW,oBAAqB,gBAAiB8F,GAC/D1pB,EAASkP,SAAU+T,EAAMW,oBAAqB,eAAgB8F,GAC9D1pB,EAASkP,SAAU+T,EAAMY,sBAAuB,gBAAiB6F,GACjE1pB,EAASkP,SAAU+T,EAAMY,sBAAuB,eAAgB6F,GAChE1pB,EAASkP,SAAU+T,EAAMC,kBAAmB,QAAS4H,GACrD9qB,EAASkP,SAAU+T,EAAMC,kBAAmB,QAASuG,GACrDzpB,EAASkP,SAAU+T,EAAMC,kBAAmB,QAAS6F,GACrD/oB,EAASkP,SAAU+T,EAAMC,kBAAmB,QAASyG,GACrD3pB,EAASkP,SAAU+T,EAAMC,kBAAmB,QAASqH,GACrDvqB,EAASkP,SAAU+T,EAAMC,kBAAmB,QAAS6G,GACrD/pB,EAASkP,SAAU+T,EAAME,oBAAqB,QAAS2H,GACvD9qB,EAASkP,SAAU+T,EAAME,oBAAqB,QAASsG,GACvDzpB,EAASkP,SAAU+T,EAAME,oBAAqB,QAAS4F,GACvD/oB,EAASkP,SAAU+T,EAAME,oBAAqB,QAASwG,GACvD3pB,EAASkP,SAAU+T,EAAME,oBAAqB,QAASoH,GACvDvqB,EAASkP,SAAU+T,EAAMK,oBAAqB,SAAUmG,GACxDzpB,EAASkP,SAAU+T,EAAMK,oBAAqB,SAAUyF,GACxD/oB,EAASkP,SAAU+T,EAAMK,oBAAqB,SAAUiH,GACxDvqB,EAASkP,SAAU+T,EAAMM,mBAAoB,SAAUkG,GACvDzpB,EAASkP,SAAU+T,EAAMM,mBAAoB,SAAUwF,GACvD/oB,EAASkP,SAAU+T,EAAMM,mBAAoB,SAAUgH,GACvDvqB,EAASkP,SAAU+T,EAAMM,mBAAoB,UAAU,SAAU/a,GAC/D,OAAOwL,YAAW,WAChB,OAAO2V,EAAenhB,KACrB,OAELxI,EAASkP,SAAU+T,EAAMM,mBAAoB,YAAaoG,GAC1D3pB,EAASkP,SAAU+T,EAAMM,mBAAoB,gBAAiBmG,GAC9D1pB,EAASkP,SAAU+T,EAAMO,uBAAwB,QAASsH,GAC1D9qB,EAASkP,SAAU+T,EAAMO,uBAAwB,QAASiG,GAC1DzpB,EAASkP,SAAU+T,EAAMO,uBAAwB,QAASuF,GAC1D/oB,EAASkP,SAAU+T,EAAMO,uBAAwB,QAASoH,GAC1D1b,SAASyB,iBAAiB,mBAAoBuU,GAC9ChW,SAASyB,iBAAiB,mBAAoBoT,GACvChU,OAAOwb,eAAgB,GAG5Bxb,OAAOkT,QAAUA,GAASqC,EAAKpW,SAAU,yBAC3C+T,EAAMqI,SAEPvqB,KAAKI,QACPJ,KAAKI,MAE0B6E,EAAO5I,QACvC4I,EAAO5I,QAAU6lB,OAEL,0BAAZ,KAAY,oCAEbliB,KAAKI,O,gCChyBO,SAASmP,EAAMkb,GACxB,CAAC,cAAe,YAAYC,SAASvc,SAAS4K,YAChD0R,IAEAtc,SAASyB,iBAAiB,mBAAoB6a,GAJlD,gD,8/BCKA,IAAME,EAAO,I,OAAIC,GAAKpuB,OAAOmH,KAAKknB,MAG5BC,EAAiB,SAACC,GACtB,OAAOA,EAAOrgB,KAAI,SAAAwL,GAAC,OAAI2U,IAAe3U,GAAG8U,aAIrCC,EAAYH,EAAe,CAAC,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,QAAS,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,KAAM,MAAO,MAAO,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OACzTI,EAAaJ,EAAe,CAAC,KAAM,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,KAAM,OAOpPK,EAAY,IAAIrE,UAEhBsE,EAAkB,SAACC,EAAMC,GAK7B,IAJA,IAAIvQ,EAAMsQ,EAAK3a,YAET6a,EAAW,IAAIC,iBAHyB,aAM5C,IAAIrM,OAAK,EAAEtc,EAAI,EAEf,GAAqB,OAAjByoB,EACF,KAAOzoB,EAAIkY,EAAInY,UAAYuc,EAAQwL,EAAKjK,OAAO3F,EAAI7W,MAAMrB,MACvDA,GAAKkY,EAAI0Q,YAAY5oB,GAAK,MAAQ,EAAI,OAGxC,KAAOA,EAAIkY,EAAInY,QAAqB,MAAXmY,EAAIlY,MAAgBsc,EAAQwL,EAAKjK,OAAO3F,EAAI7W,MAAMrB,MACzEA,GAAKkY,EAAI0Q,YAAY5oB,GAAK,MAAQ,EAAI,EAI1C,IAAI6oB,OAAI,EAAE7C,EAAc,GACxB,GAAIhmB,IAAMkY,EAAInY,OACZ,cACK,GAAe,MAAXmY,EAAIlY,IACP,WAEJ,KADA6oB,EAAO3Q,EAAIxE,QAAQ,IAAK1T,EAAI,GAAK,GACtB,OAAO,EAClB,IAAM8oB,EAAY5Q,EAAI7W,MAAMrB,EAAG6oB,GAG/B,GAAIC,KAAaL,EAAc,CAC7B,IAAMN,EAAWja,IAAcua,EAAaK,GAAWld,IAAM6c,EAAaK,GAAWC,WAErF,OADA/C,EAAW,6DAAgE8C,EAAhE,YAAqFA,EAArF,UAAwGX,EAAxG,oBAAoIM,EAAaK,GAAWld,IAA5J,kBAAiL6c,EAAaK,GAAWC,WAAzM,QACJ,EAET,OAAO,GAXH,KAYAF,IAAS7oB,OACV,CACL,MAAgCgoB,IAAe1L,GAAvC6L,EAAR,EAAQA,SAAUa,EAAlB,EAAkBA,UAElBhD,EAAW,gDAAmD1J,EAAnD,aADG0M,EAAS,IAAOA,EAAP,IAAsB,IAClC,UAAmFC,IAAnF,UA7CK,SAACd,GAErB,OADuB7c,SAASO,MAAQP,SAASO,KAAKJ,UAAUyd,SAAS,wBAA2Bb,EAAaD,GAC5FP,SAASM,GAAaA,EAAW,UAAaA,EA2CkDgB,CAAchB,GAApH,WACXU,EAAO7oB,EAAIsc,EAAMvc,OAEa,QAA1BmY,EAAI0Q,YAAYC,KAClBA,GAAQ,GAIZH,EAAS3B,OAAOzb,SAAS8d,eAAelR,EAAI7W,MAAM,EAAGrB,KACjDgmB,GACF0C,EAAS3B,OAAOuB,EAAUpE,gBAAgB8B,EAAa,aAAaqD,gBAAgBC,qBAAqB,OAAO,IAElHd,EAAK3a,YAAcqK,EAAI7W,MAAM,EAAGrB,GAChCkY,EAAMA,EAAI7W,MAAMwnB,MA9CT,kBAeL,MAkCJH,EAAS3B,OAAOzb,SAAS8d,eAAelR,IACxCsQ,EAAKe,cAAcC,aAAad,EAAUF,IAGtCiB,EAAc,SAAdA,EAAejB,EAAMC,GACzB,cAAoBD,EAAKkB,cAAzB,aAAqC,CAAC,IAA3BC,EAA0B,QACnC,OAAOA,EAAMC,UACb,KAAKC,KAAKC,UACRvB,EAAgBoB,EAAOlB,GACvB,MACF,KAAKoB,KAAKE,aACHJ,EAAMle,UAAUyd,SAAS,cAC5BO,EAAYE,EAAOlB,MAkBZuB,UAZC,SAAC9R,EAAKuQ,QAAsB,IAAtBA,MAAe,IACnC,IAAMwB,EAAU3e,SAASiS,cAAc,OAQvC,OAPA0M,EAAQhE,UAAY/N,EAEfve,OAAOmH,KAAK2nB,GAAc1oB,SAC7B0oB,EAAe,MAEjBgB,EAAYQ,EAASxB,GAEdwB,EAAQhE,WAKV,IAAMiE,EAAoB,SAACzB,GAChC,IAAMP,EAAS,GAoBf,OAlBAO,EAAa3qB,SAAQ,SAAAqsB,GACnB,IAAMC,EAAYD,EAAM/e,IAAI,aACtBQ,EAAYsC,IAAcic,EAAM/e,IAAI,OAAS+e,EAAM/e,IAAI,cACvD9K,EAAY8pB,EAAUrjB,QAAQ,IAAK,IAEzCmhB,EAAO1oB,KAAK,CACV+I,GAAIjI,EACJA,OACA+pB,YAAa,CAAC/pB,GACdwiB,KAAM,GACNwH,UAAW,GACXC,SAAU,CAACjqB,GACXkqB,SAAU5e,EACV6e,QAAQ,EACRC,eAAgBP,EAAM/e,IAAI,iBAIvB8c,GAGIyC,EAAuB,SAAAlC,GAAY,OAAIA,EAAamC,QAAO,SAACC,EAAKV,GAAN,OAAgBU,EAAInf,IAAIye,EAAM/e,IAAI,YAAV,UAAkC+e,EAAM/e,IAAI,YAAgB,YAAW,IAAI0f,IAAI,CAAC,c,gCCxHhL,IAAIC,EAAkB,UAMtB3oB,EAAO5I,QASP,SAAoBwxB,GAClB,IAOIC,EAPA/S,EAAM,GAAK8S,EACX1O,EAAQyO,EAAgBG,KAAKhT,GAEjC,IAAKoE,EACH,OAAOpE,EAIT,IAAI6K,EAAO,GACP7D,EAAQ,EACRiM,EAAY,EAEhB,IAAKjM,EAAQ5C,EAAM4C,MAAOA,EAAQhH,EAAInY,OAAQmf,IAAS,CACrD,OAAQhH,EAAI5Q,WAAW4X,IACrB,KAAK,GAEH+L,EAAS,SACT,MAEF,KAAK,GAEHA,EAAS,QACT,MAEF,KAAK,GAEHA,EAAS,QACT,MAEF,KAAK,GAEHA,EAAS,OACT,MAEF,KAAK,GAEHA,EAAS,OACT,MAEF,QACE,SAGAE,IAAcjM,IAChB6D,GAAQ7K,EAAIkT,UAAUD,EAAWjM,IAGnCiM,EAAYjM,EAAQ,EACpB6D,GAAQkI,EAGV,OAAOE,IAAcjM,EAAQ6D,EAAO7K,EAAIkT,UAAUD,EAAWjM,GAAS6D,I,mBC5ExE,SAASsI,EAAmBL,GAC1B,OAAOA,EAAOjkB,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,IAYpD,IAAMukB,EAAUhgB,SAASW,cAAc,uBAGvCsf,IAZA,SAA0B3N,EAAW5B,QAAW,IAAtB4B,MAAO,SAAe,IAAX5B,MAAO,IAC1C,IAAIwP,EAAgBH,EAAmBzN,GAKvC,OAJI4N,IAAkB,SAAS/kB,KAAK+kB,KAClCA,EAAa,KAAQA,GAGbA,EAAV,IADsBH,EAAmBrP,GACzC,IAMwByP,CAAiBH,EAAUA,EAAQzS,QAAU,GAAItV,U,mBChB3E,MAMImoB,EAAQ,KALVC,EADF,KAKEC,GALF,qBAOQ3T,EAAsByT,EAAQ,KAA9BzT,kBAGF+P,EAAiB,GAEvB,SAAS6D,EAAoBC,EAAc9C,GACzC,IAAM+C,EAAqBD,EAA3B,GAAc3D,EAAa2D,EAA3B,GACK3D,IAEHA,EAAWlQ,EAAkB8T,IAE/B/D,EAAe+D,GAAU,CACvB/C,UAAWA,EACXb,SAAUA,GAIdxuB,OAAOmH,KAAK6qB,GAAuB7tB,SAAQ,SAACkrB,GACnB2C,EAAsB3C,GAA7C,GACalrB,SAAQ,SAAAguB,GAAY,OAAID,EAAoBC,EAAc9C,SAEzE4C,EAAwB9tB,SAAQ,SAAAguB,GAAY,OAAID,EAAoBC,MAEpE1pB,EAAO5I,QAAUwuB,G,mBClCjB5lB,EAAO5I,QAAU,EAAQ,M,gCCIzB,SAASwyB,EAASC,GAChB1uB,KAAK2uB,MAAQ,GAEb,IAAK,IAAIlsB,EAAI,EAAG4G,EAAMqlB,EAAMlsB,OAAQC,EAAI4G,EAAK5G,IAAK,CAIhD,IAHA,IAAImsB,EAAOF,EAAMjsB,GACbosB,EAAO7uB,KAAK2uB,MAEPG,EAAI,EAAGC,EAAOH,EAAKpsB,OAAQssB,EAAIC,EAAMD,IAAK,CACjD,IAAIE,EAAOJ,EAAK/qB,OAAOirB,GACvBD,EAAOA,EAAKG,GAAQH,EAAKG,IAAS,GAGpCH,EAAgB,IAAI,GAIxBJ,EAASpyB,UAAUikB,OAAS,SAAU3F,GAKpC,IAJA,IAAIlY,GAAK,EACL4G,EAAMsR,EAAInY,OACVsU,EAAQ,CAAC9W,KAAK2uB,SAETlsB,EAAI4G,GAAK,CAChB,IAAIwlB,EAAO/X,EAAMrU,GACbusB,EAAOrU,EAAI9W,OAAOpB,GAEtB,KAAIusB,KAAQH,GAGV,MAFA/X,EAAM7U,KAAK4sB,EAAKG,IAMpB,KAAOlY,EAAMtU,QACX,GAAIsU,EAAMpT,MAAiB,GACzB,OAAOiX,EAAIkT,UAAU,EAAG/W,EAAMtU,SAKpCqC,EAAO5I,QAAUwyB,G,gCC3CjB,8CAEW/C,EAAY,GAEvBvc,mBAAM,WACJ,IAAM4e,EAAUhgB,SAASW,cAAc,uBACnCqf,IACFrC,EAAYqC,EAAQzS,SAAW,Q,iCCPnC,0CAIQzc,EAAasvB,EAAQ,IAArBtvB,SAGRA,EAASkP,SAAU,wBAAyB,SAAS,YAAiB,IAAd6B,EAAa,EAAbA,OAChD7M,EAAOgL,SAASW,cAAc,8BAChC3L,IACE6M,EAAOzS,MACT4F,EAAK2lB,UAAY+D,kBAAQwC,IAA4Brf,EAAOzS,QAE5D4F,EAAKuN,YAAcvN,EAAKuN,YAAcV,EAAOsf,QAAQ/S,YAK3Dtd,EAASkP,SAAU,kBAAmB,UAAU,YAAiB,IAAd6B,EAAa,EAAbA,OAC3Cuf,EAASphB,SAASW,cAAc,qBAC/B0gB,GAAQxf,EAAOyf,OAAS,IAA/B,GACMhhB,EAAM+gB,EAAOE,IAAIC,gBAAgBH,GAAQD,EAAOD,QAAQM,YAE9DL,EAAOM,IAAMphB,KAGfxP,EAASkP,SAAU,kBAAmB,UAAU,YAAiB,IAAd6B,EAAa,EAAbA,OAC3C8f,EAAS3hB,SAASW,cAAc,wBAC/B0gB,GAAQxf,EAAOyf,OAAS,IAA/B,GACMhhB,EAAM+gB,EAAOE,IAAIC,gBAAgBH,GAAQM,EAAOR,QAAQM,YAE9DE,EAAOD,IAAMphB,KAGfxP,EAASkP,SAAU,kBAAmB,UAAU,YAAiB,IAAd6B,EAAa,EAAbA,OAC3C+f,EAAO5hB,SAASW,cAAc,yBAEhCihB,IACE/f,EAAO0X,eACFqI,EAAKT,QAAQU,OAEpBD,EAAKT,QAAQU,OAAS,WAK5B/wB,EAASkP,SAAU,oBAAqB,SAAS,YAAiB,IAAd6B,EAAa,EAAbA,OAClDA,EAAOI,QACPJ,EAAOigB,SACPjgB,EAAOkgB,kBAAkB,EAAGlgB,EAAOzS,MAAMqF,WAG3C3D,EAASkP,SAAU,qBAAsB,SAAS,YAAiB,IAAd6B,EAAa,EAAbA,OAC7CqU,EAAQrU,EAAOsV,WAAWxW,cAAc,8BAExCqhB,EAAc9L,EAAM+L,SAE1B/L,EAAM+L,UAAW,EACjB/L,EAAMjU,QACNiU,EAAM4L,SACN5L,EAAM6L,kBAAkB,EAAG7L,EAAM9mB,MAAMqF,QAEvC,IACMuL,SAASkiB,YAAY,UACvBhM,EAAMiM,OACNtgB,EAAOsV,WAAWhX,UAAUC,IAAI,UAElC0E,YAAW,WACPjD,EAAOsV,WAAWhX,UAAUe,OAAO,YAClC,MAEL,MAAOzR,GACP0R,QAAQjO,MAAMzD,GAGhBymB,EAAM+L,SAAWD,O","file":"js/core/auth-08ba0d3e22338f26c697.chunk.js","sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"); // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n define(Gp, toStringTagSymbol, \"Generator\"); // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n define(Gp, iteratorSymbol, function () {\n return this;\n });\n define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data) || headers && headers['Content-Type'] === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","import _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction e(e) {\n var t = \"==\".slice(0, (4 - e.length % 4) % 4),\n n = e.replace(/-/g, \"+\").replace(/_/g, \"/\") + t,\n r = atob(n),\n o = new ArrayBuffer(r.length),\n c = new Uint8Array(o);\n\n for (var _e = 0; _e < r.length; _e++) {\n c[_e] = r.charCodeAt(_e);\n }\n\n return o;\n}\n\nfunction t(e) {\n var t = new Uint8Array(e);\n var n = \"\";\n\n for (var _iterator = _createForOfIteratorHelperLoose(t), _step; !(_step = _iterator()).done;) {\n var _e2 = _step.value;\n n += String.fromCharCode(_e2);\n }\n\n return btoa(n).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\n\nfunction n(e, t, r) {\n if (\"copy\" === t) return r;\n if (\"convert\" === t) return e(r);\n if (t instanceof Array) return r.map(function (r) {\n return n(e, t[0], r);\n });\n\n if (t instanceof Object) {\n var _o = {};\n\n for (var _i = 0, _Object$entries = Object.entries(t); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _Object$entries[_i],\n _c = _Object$entries$_i[0],\n _i2 = _Object$entries$_i[1];\n if (_c in r) null != r[_c] ? _o[_c] = n(e, _i2.schema, r[_c]) : _o[_c] = null;else if (_i2.required) throw new Error(\"Missing key: \" + _c);\n }\n\n return _o;\n }\n}\n\nfunction r(e) {\n return {\n required: !0,\n schema: e\n };\n}\n\nfunction o(e) {\n return {\n required: !1,\n schema: e\n };\n}\n\nvar c = {\n type: r(\"copy\"),\n id: r(\"convert\"),\n transports: o(\"copy\")\n},\n i = {\n appid: o(\"copy\"),\n appidExclude: o(\"copy\"),\n credProps: o(\"copy\")\n},\n a = {\n appid: o(\"copy\"),\n appidExclude: o(\"copy\"),\n credProps: o(\"copy\")\n},\n s = {\n publicKey: r({\n rp: r(\"copy\"),\n user: r({\n id: r(\"convert\"),\n name: r(\"copy\"),\n displayName: r(\"copy\")\n }),\n challenge: r(\"convert\"),\n pubKeyCredParams: r(\"copy\"),\n timeout: o(\"copy\"),\n excludeCredentials: o([c]),\n authenticatorSelection: o(\"copy\"),\n attestation: o(\"copy\"),\n extensions: o(i)\n }),\n signal: o(\"copy\")\n},\n p = {\n type: r(\"copy\"),\n id: r(\"copy\"),\n rawId: r(\"convert\"),\n response: r({\n clientDataJSON: r(\"convert\"),\n attestationObject: r(\"convert\")\n }),\n clientExtensionResults: r(a)\n},\n l = {\n mediation: o(\"copy\"),\n publicKey: r({\n challenge: r(\"convert\"),\n timeout: o(\"copy\"),\n rpId: o(\"copy\"),\n allowCredentials: o([c]),\n userVerification: o(\"copy\"),\n extensions: o(i)\n }),\n signal: o(\"copy\")\n},\n u = {\n type: r(\"copy\"),\n id: r(\"copy\"),\n rawId: r(\"convert\"),\n response: r({\n clientDataJSON: r(\"convert\"),\n authenticatorData: r(\"convert\"),\n signature: r(\"convert\"),\n userHandle: r(\"convert\")\n }),\n clientExtensionResults: r(a)\n};\nexport var schema = {\n credentialCreationOptions: s,\n publicKeyCredentialWithAttestation: p,\n credentialRequestOptions: l,\n publicKeyCredentialWithAssertion: u\n};\nexport function create(_x) {\n return _create.apply(this, arguments);\n}\n\nfunction _create() {\n _create = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(r) {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.t0 = function (e) {\n var r = e;\n return r.clientExtensionResults = e.getClientExtensionResults(), n(t, p, r);\n };\n\n _context.next = 3;\n return navigator.credentials.create(function (t) {\n return n(e, s, t);\n }(r));\n\n case 3:\n _context.t1 = _context.sent;\n return _context.abrupt(\"return\", (0, _context.t0)(_context.t1));\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _create.apply(this, arguments);\n}\n\nexport function get(_x2) {\n return _get.apply(this, arguments);\n}\n\nfunction _get() {\n _get = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(r) {\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.t0 = function (e) {\n var r = e;\n return r.clientExtensionResults = e.getClientExtensionResults(), n(t, u, r);\n };\n\n _context2.next = 3;\n return navigator.credentials.get(function (t) {\n return n(e, l, t);\n }(r));\n\n case 3:\n _context2.t1 = _context2.sent;\n return _context2.abrupt(\"return\", (0, _context2.t0)(_context2.t1));\n\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _get.apply(this, arguments);\n}\n\nexport function supported() {\n return !!(navigator.credentials && navigator.credentials.create && navigator.credentials.get && window.PublicKeyCredential);\n}","import 'packs/public-path';\nimport axios from 'axios';\nimport * as WebAuthnJSON from '@github/webauthn-json';\nimport ready from '../mastodon/ready';\nimport 'regenerator-runtime/runtime';\n\nfunction getCSRFToken() {\n var CSRFSelector = document.querySelector('meta[name=\"csrf-token\"]');\n if (CSRFSelector) {\n return CSRFSelector.getAttribute('content');\n } else {\n return null;\n }\n}\n\nfunction hideFlashMessages() {\n Array.from(document.getElementsByClassName('flash-message')).forEach(function(flashMessage) {\n flashMessage.classList.add('hidden');\n });\n}\n\nfunction callback(url, body) {\n axios.post(url, JSON.stringify(body), {\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'X-CSRF-Token': getCSRFToken(),\n },\n credentials: 'same-origin',\n }).then(function(response) {\n window.location.replace(response.data.redirect_path);\n }).catch(function(error) {\n if (error.response.status === 422) {\n const errorMessage = document.getElementById('security-key-error-message');\n errorMessage.classList.remove('hidden');\n console.error(error.response.data.error);\n } else {\n console.error(error);\n }\n });\n}\n\nready(() => {\n if (!WebAuthnJSON.supported()) {\n const unsupported_browser_message = document.getElementById('unsupported-browser-message');\n if (unsupported_browser_message) {\n unsupported_browser_message.classList.remove('hidden');\n document.querySelector('.btn.js-webauthn').disabled = true;\n }\n }\n\n\n const webAuthnCredentialRegistrationForm = document.getElementById('new_webauthn_credential');\n if (webAuthnCredentialRegistrationForm) {\n webAuthnCredentialRegistrationForm.addEventListener('submit', (event) => {\n event.preventDefault();\n\n var nickname = event.target.querySelector('input[name=\"new_webauthn_credential[nickname]\"]');\n if (nickname.value) {\n axios.get('/settings/security_keys/options')\n .then((response) => {\n const credentialOptions = response.data;\n\n WebAuthnJSON.create({ 'publicKey': credentialOptions }).then((credential) => {\n var params = { 'credential': credential, 'nickname': nickname.value };\n callback('/settings/security_keys', params);\n }).catch((error) => {\n const errorMessage = document.getElementById('security-key-error-message');\n errorMessage.classList.remove('hidden');\n console.error(error);\n });\n }).catch((error) => {\n console.error(error.response.data.error);\n });\n } else {\n nickname.focus();\n }\n });\n }\n\n const webAuthnCredentialAuthenticationForm = document.getElementById('webauthn-form');\n if (webAuthnCredentialAuthenticationForm) {\n webAuthnCredentialAuthenticationForm.addEventListener('submit', (event) => {\n event.preventDefault();\n\n axios.get('sessions/security_key_options')\n .then((response) => {\n const credentialOptions = response.data;\n\n WebAuthnJSON.get({ 'publicKey': credentialOptions }).then((credential) => {\n var params = { 'user': { 'credential': credential } };\n callback('sign_in', params);\n }).catch((error) => {\n const errorMessage = document.getElementById('security-key-error-message');\n errorMessage.classList.remove('hidden');\n console.error(error);\n });\n }).catch((error) => {\n console.error(error.response.data.error);\n });\n });\n\n const otpAuthenticationForm = document.getElementById('otp-authentication-form');\n\n const linkToOtp = document.getElementById('link-to-otp');\n linkToOtp.addEventListener('click', () => {\n webAuthnCredentialAuthenticationForm.classList.add('hidden');\n otpAuthenticationForm.classList.remove('hidden');\n hideFlashMessages();\n });\n\n const linkToWebAuthn = document.getElementById('link-to-webauthn');\n linkToWebAuthn.addEventListener('click', () => {\n otpAuthenticationForm.classList.add('hidden');\n webAuthnCredentialAuthenticationForm.classList.remove('hidden');\n hideFlashMessages();\n });\n }\n});\n","const element = document.getElementById('initial-state');\nconst initialState = element && JSON.parse(element.textContent);\n\nconst getMeta = (prop) => initialState && initialState.meta && initialState.meta[prop];\n\nexport const reduceMotion = getMeta('reduce_motion');\nexport const autoPlayGif = getMeta('auto_play_gif');\nexport const displayMedia = getMeta('display_media');\nexport const expandSpoilers = getMeta('expand_spoilers');\nexport const unfollowModal = getMeta('unfollow_modal');\nexport const boostModal = getMeta('boost_modal');\nexport const deleteModal = getMeta('delete_modal');\nexport const me = getMeta('me');\nexport const searchEnabled = getMeta('search_enabled');\nexport const maxChars = (initialState && initialState.max_toot_chars) || 500;\nexport const invitesEnabled = getMeta('invites_enabled');\nexport const limitedFederationMode = getMeta('limited_federation_mode');\nexport const repository = getMeta('repository');\nexport const source_url = getMeta('source_url');\nexport const version = getMeta('version');\nexport const mascot = getMeta('mascot');\nexport const profile_directory = getMeta('profile_directory');\nexport const isStaff = getMeta('is_staff');\nexport const forceSingleColumn = !getMeta('advanced_layout');\nexport const useBlurhash = getMeta('use_blurhash');\nexport const usePendingItems = getMeta('use_pending_items');\nexport const showTrends = getMeta('trends');\nexport const title = getMeta('title');\nexport const cropImages = getMeta('crop_images');\nexport const disableSwiping = getMeta('disable_swiping');\nexport const disableBlock = getMeta('disable_block');\nexport const disableDomainBlock = getMeta('disable_domain_block');\nexport const disablePublicTimelines = getMeta('disable_public_timelines');\nexport const disableLocalTimeline = getMeta('disable_local_timeline');\n\nexport default initialState;\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar cookies = require('./../helpers/cookies');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nvar defaults = require('../defaults');\n\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response); // Clean up request\n\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n\n\n setTimeout(onloadend);\n };\n } // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n reject(!cancel || cancel && cancel.type ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n\n return source;\n } // eslint-disable-next-line consistent-return\n\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n } // eslint-disable-next-line consistent-return\n\n\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n } // eslint-disable-next-line consistent-return\n\n\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n } // eslint-disable-next-line consistent-return\n\n\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n utils.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);\n });\n return config;\n};","module.exports = {\n \"version\": \"0.25.0\"\n};","// taken from:\n// https://github.com/twitter/twemoji/blob/47732c7/twemoji-generator.js#L848-L866\nexports.unicodeToFilename = (str) => {\n let result = '';\n let charCode = 0;\n let p = 0;\n let i = 0;\n while (i < str.length) {\n charCode = str.charCodeAt(i++);\n if (p) {\n if (result.length > 0) {\n result += '-';\n }\n result += (0x10000 + ((p - 0xD800) << 10) + (charCode - 0xDC00)).toString(16);\n p = 0;\n } else if (0xD800 <= charCode && charCode <= 0xDBFF) {\n p = charCode;\n } else {\n if (result.length > 0) {\n result += '-';\n }\n result += charCode.toString(16);\n }\n }\n return result;\n};\n","'use strict';\n\nvar bind = require('./helpers/bind'); // utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return Array.isArray(val);\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\n\n\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction\n /* obj1, obj2, obj3, ... */\nmerge() {\n var result = {};\n\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\n\n\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context); // Factory for creating new instances\n\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Expose Cancel & CancelToken\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version; // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread'); // Expose isAxiosError\n\naxios.isAxiosError = require('./helpers/isAxiosError');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n\n config = mergeConfig(this.defaults, config); // Set config.method\n\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n } // filter out skipped interceptors\n\n\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n promise = Promise.resolve(config);\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n var newConfig = config;\n\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar Cancel = require('../cancel/Cancel');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Ensure headers exist\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData.call(config, config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData.call(config, response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar defaults = require('./../defaults');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\n\nvar combineURLs = require('../helpers/combineURLs');\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n};","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {}; // eslint-disable-next-line func-names\n\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\nvar deprecatedWarnings = {};\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\n\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n } // eslint-disable-next-line func-names\n\n\n return function (value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true; // eslint-disable-next-line no-console\n\n console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n\n var keys = Object.keys(options);\n var i = keys.length;\n\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n\n continue;\n }\n\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this; // eslint-disable-next-line func-names\n\n this.promise.then(function (cancel) {\n if (!token._listeners) return;\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n\n token._listeners = null;\n }); // eslint-disable-next-line func-names\n\n this.promise.then = function (onfulfilled) {\n var _resolve; // eslint-disable-next-line func-names\n\n\n var promise = new Promise(function (resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Subscribe to the cancel signal\n */\n\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n/**\n * Unsubscribe from the cancel signal\n */\n\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n\n var index = this._listeners.indexOf(listener);\n\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\n\n\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n};","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","export default function ready(loaded) {\n if (['interactive', 'complete'].includes(document.readyState)) {\n loaded();\n } else {\n document.addEventListener('DOMContentLoaded', loaded);\n }\n}\n","import { autoPlayGif } from '../../initial_state';\nimport unicodeMapping from './emoji_unicode_mapping_light';\nimport { assetHost } from 'mastodon/utils/config';\nimport Trie from 'substring-trie';\n\nconst trie = new Trie(Object.keys(unicodeMapping));\n\n// Convert to file names from emojis. (For different variation selector emojis)\nconst emojiFilenames = (emojis) => {\n return emojis.map(v => unicodeMapping[v].filename);\n};\n\n// Emoji requiring extra borders depending on theme\nconst darkEmoji = emojiFilenames(['🎱', '🐜', 'âšĢ', '🖤', 'âŦ›', 'â—ŧī¸', '◾', 'â—ŧī¸', '✒ī¸', 'â–Ēī¸', 'đŸ’Ŗ', 'đŸŽŗ', '📷', '📸', 'â™Ŗī¸', 'đŸ•ļī¸', '✴ī¸', '🔌', '💂‍♀ī¸', 'đŸ“Ŋī¸', 'đŸŗ', 'đŸĻ', '💂', 'đŸ”Ē', 'đŸ•ŗī¸', '🕹ī¸', '🕋', '🖊ī¸', '🖋ī¸', '💂‍♂ī¸', '🎤', '🎓', 'đŸŽĨ', 'đŸŽŧ', '♠ī¸', '🎩', 'đŸĻƒ', 'đŸ“ŧ', '📹', '🎮', '🐃', '🏴', '🐞', 'đŸ•ē', '📱', '📲', '🚲']);\nconst lightEmoji = emojiFilenames(['đŸ‘Ŋ', '⚾', '🐔', '☁ī¸', '💨', '🕊ī¸', '👀', 'đŸĨ', 'đŸ‘ģ', '🐐', '❕', '❔', '⛸ī¸', '🌩ī¸', '🔊', '🔇', '📃', '🌧ī¸', '🐏', '🍚', '🍙', '🐓', '🐑', '💀', '☠ī¸', '🌨ī¸', '🔉', '🔈', 'đŸ’Ŧ', '💭', '🏐', 'đŸŗī¸', 'âšĒ', 'âŦœ', 'â—Ŋ', 'â—ģī¸', 'â–Ģī¸']);\n\nconst emojiFilename = (filename) => {\n const borderedEmoji = (document.body && document.body.classList.contains('theme-mastodon-light')) ? lightEmoji : darkEmoji;\n return borderedEmoji.includes(filename) ? (filename + '_border') : filename;\n};\n\nconst domParser = new DOMParser();\n\nconst emojifyTextNode = (node, customEmojis) => {\n let str = node.textContent;\n\n const fragment = new DocumentFragment();\n\n for (;;) {\n let match, i = 0;\n\n if (customEmojis === null) {\n while (i < str.length && !(match = trie.search(str.slice(i)))) {\n i += str.codePointAt(i) < 65536 ? 1 : 2;\n }\n } else {\n while (i < str.length && str[i] !== ':' && !(match = trie.search(str.slice(i)))) {\n i += str.codePointAt(i) < 65536 ? 1 : 2;\n }\n }\n\n let rend, replacement = '';\n if (i === str.length) {\n break;\n } else if (str[i] === ':') {\n if (!(() => {\n rend = str.indexOf(':', i + 1) + 1;\n if (!rend) return false; // no pair of ':'\n const shortname = str.slice(i, rend);\n // now got a replacee as ':shortname:'\n // if you want additional emoji handler, add statements below which set replacement and return true.\n if (shortname in customEmojis) {\n const filename = autoPlayGif ? customEmojis[shortname].url : customEmojis[shortname].static_url;\n replacement = `\"${shortname}\"`;\n return true;\n }\n return false;\n })()) rend = ++i;\n } else { // matched to unicode emoji\n const { filename, shortCode } = unicodeMapping[match];\n const title = shortCode ? `:${shortCode}:` : '';\n replacement = `\"${match}\"`;\n rend = i + match.length;\n // If the matched character was followed by VS15 (for selecting text presentation), skip it.\n if (str.codePointAt(rend) === 65038) {\n rend += 1;\n }\n }\n\n fragment.append(document.createTextNode(str.slice(0, i)));\n if (replacement) {\n fragment.append(domParser.parseFromString(replacement, 'text/html').documentElement.getElementsByTagName('img')[0]);\n }\n node.textContent = str.slice(0, i);\n str = str.slice(rend);\n }\n\n fragment.append(document.createTextNode(str));\n node.parentElement.replaceChild(fragment, node);\n};\n\nconst emojifyNode = (node, customEmojis) => {\n for (const child of node.childNodes) {\n switch(child.nodeType) {\n case Node.TEXT_NODE:\n emojifyTextNode(child, customEmojis);\n break;\n case Node.ELEMENT_NODE:\n if (!child.classList.contains('invisible'))\n emojifyNode(child, customEmojis);\n break;\n }\n }\n};\n\nconst emojify = (str, customEmojis = {}) => {\n const wrapper = document.createElement('div');\n wrapper.innerHTML = str;\n\n if (!Object.keys(customEmojis).length)\n customEmojis = null;\n\n emojifyNode(wrapper, customEmojis);\n\n return wrapper.innerHTML;\n};\n\nexport default emojify;\n\nexport const buildCustomEmojis = (customEmojis) => {\n const emojis = [];\n\n customEmojis.forEach(emoji => {\n const shortcode = emoji.get('shortcode');\n const url = autoPlayGif ? emoji.get('url') : emoji.get('static_url');\n const name = shortcode.replace(':', '');\n\n emojis.push({\n id: name,\n name,\n short_names: [name],\n text: '',\n emoticons: [],\n keywords: [name],\n imageUrl: url,\n custom: true,\n customCategory: emoji.get('category'),\n });\n });\n\n return emojis;\n};\n\nexport const categoriesFromEmojis = customEmojis => customEmojis.reduce((set, emoji) => set.add(emoji.get('category') ? `custom-${emoji.get('category')}` : 'custom'), new Set(['custom']));\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n'use strict';\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n\n case 38:\n // &\n escape = '&';\n break;\n\n case 39:\n // '\n escape = ''';\n break;\n\n case 60:\n // <\n escape = '<';\n break;\n\n case 62:\n // >\n escape = '>';\n break;\n\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}","// Dynamically set webpack's loading path depending on a meta header, in order\n// to share the same assets regardless of instance configuration.\n// See https://webpack.js.org/guides/public-path/#on-the-fly\n\nfunction removeOuterSlashes(string) {\n return string.replace(/^\\/*/, '').replace(/\\/*$/, '');\n}\n\nfunction formatPublicPath(host = '', path = '') {\n let formattedHost = removeOuterSlashes(host);\n if (formattedHost && !/^http/i.test(formattedHost)) {\n formattedHost = `//${formattedHost}`;\n }\n const formattedPath = removeOuterSlashes(path);\n return `${formattedHost}/${formattedPath}/`;\n}\n\nconst cdnHost = document.querySelector('meta[name=cdn-host]');\n\n// eslint-disable-next-line camelcase, no-undef, no-unused-vars\n__webpack_public_path__ = formatPublicPath(cdnHost ? cdnHost.content : '', process.env.PUBLIC_OUTPUT_PATH);\n","// A mapping of unicode strings to an object containing the filename\n// (i.e. the svg filename) and a shortCode intended to be shown\n// as a \"title\" attribute in an HTML element (aka tooltip).\n\nconst [\n shortCodesToEmojiData,\n skins, // eslint-disable-line no-unused-vars\n categories, // eslint-disable-line no-unused-vars\n short_names, // eslint-disable-line no-unused-vars\n emojisWithoutShortCodes,\n] = require('./emoji_compressed');\nconst { unicodeToFilename } = require('./unicode_to_filename');\n\n// decompress\nconst unicodeMapping = {};\n\nfunction processEmojiMapData(emojiMapData, shortCode) {\n let [ native, filename ] = emojiMapData;\n if (!filename) {\n // filename name can be derived from unicodeToFilename\n filename = unicodeToFilename(native);\n }\n unicodeMapping[native] = {\n shortCode: shortCode,\n filename: filename,\n };\n}\n\nObject.keys(shortCodesToEmojiData).forEach((shortCode) => {\n let [ filenameData ] = shortCodesToEmojiData[shortCode];\n filenameData.forEach(emojiMapData => processEmojiMapData(emojiMapData, shortCode));\n});\nemojisWithoutShortCodes.forEach(emojiMapData => processEmojiMapData(emojiMapData));\n\nmodule.exports = unicodeMapping;\n","module.exports = require('./lib/axios');","'use strict';\n\nvar CODA_MARKER = '$$'; // marks the end of the string\n\nfunction MiniTrie(words) {\n this._dict = {};\n\n for (var i = 0, len = words.length; i < len; i++) {\n var word = words[i];\n var dict = this._dict;\n\n for (var j = 0, len2 = word.length; j < len2; j++) {\n var char = word.charAt(j);\n dict = dict[char] = dict[char] || {};\n }\n\n dict[CODA_MARKER] = true;\n }\n}\n\nMiniTrie.prototype.search = function (str) {\n var i = -1;\n var len = str.length;\n var stack = [this._dict];\n\n while (++i < len) {\n var dict = stack[i];\n var char = str.charAt(i);\n\n if (char in dict) {\n stack.push(dict[char]);\n } else {\n break;\n }\n }\n\n while (stack.length) {\n if (stack.pop()[CODA_MARKER]) {\n return str.substring(0, stack.length);\n }\n }\n};\n\nmodule.exports = MiniTrie;","import ready from '../ready';\n\nexport let assetHost = '';\n\nready(() => {\n const cdnHost = document.querySelector('meta[name=cdn-host]');\n if (cdnHost) {\n assetHost = cdnHost.content || '';\n }\n});\n","// This file will be loaded on settings pages, regardless of theme.\n\nimport 'packs/public-path';\nimport escapeTextContentForBrowser from 'escape-html';\nconst { delegate } = require('@rails/ujs');\nimport emojify from '../mastodon/features/emoji/emoji';\n\ndelegate(document, '#account_display_name', 'input', ({ target }) => {\n const name = document.querySelector('.card .display-name strong');\n if (name) {\n if (target.value) {\n name.innerHTML = emojify(escapeTextContentForBrowser(target.value));\n } else {\n name.textContent = name.textContent = target.dataset.default;\n }\n }\n});\n\ndelegate(document, '#account_avatar', 'change', ({ target }) => {\n const avatar = document.querySelector('.card .avatar img');\n const [file] = target.files || [];\n const url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc;\n\n avatar.src = url;\n});\n\ndelegate(document, '#account_header', 'change', ({ target }) => {\n const header = document.querySelector('.card .card__img img');\n const [file] = target.files || [];\n const url = file ? URL.createObjectURL(file) : header.dataset.originalSrc;\n\n header.src = url;\n});\n\ndelegate(document, '#account_locked', 'change', ({ target }) => {\n const lock = document.querySelector('.card .display-name i');\n\n if (lock) {\n if (target.checked) {\n delete lock.dataset.hidden;\n } else {\n lock.dataset.hidden = 'true';\n }\n }\n});\n\ndelegate(document, '.input-copy input', 'click', ({ target }) => {\n target.focus();\n target.select();\n target.setSelectionRange(0, target.value.length);\n});\n\ndelegate(document, '.input-copy button', 'click', ({ target }) => {\n const input = target.parentNode.querySelector('.input-copy__wrapper input');\n\n const oldReadOnly = input.readonly;\n\n input.readonly = false;\n input.focus();\n input.select();\n input.setSelectionRange(0, input.value.length);\n\n try {\n if (document.execCommand('copy')) {\n input.blur();\n target.parentNode.classList.add('copied');\n\n setTimeout(() => {\n target.parentNode.classList.remove('copied');\n }, 700);\n }\n } catch (err) {\n console.error(err);\n }\n\n input.readonly = oldReadOnly;\n});\n"],"sourceRoot":""}