From 5ed7aa662003a2f308d60d2151de5f8a4b4e67e9 Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Tue, 19 Jun 2018 16:58:38 +1000 Subject: [PATCH] v3.3.17 --- dist/plyr.js.map | 2 +- dist/plyr.min.js.map | 2 +- dist/plyr.polyfilled.js.map | 2 +- dist/plyr.polyfilled.min.js.map | 2 +- readme.md | 8 ++++---- src/js/plyr.js | 2 +- src/js/plyr.polyfilled.js | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/dist/plyr.js.map b/dist/plyr.js.map index ce4022ae..f5346a08 100644 --- a/dist/plyr.js.map +++ b/dist/plyr.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/js/utils/is.js","src/js/utils/events.js","src/js/utils/elements.js","src/js/utils/animation.js","src/js/utils/browser.js","src/js/support.js","src/js/html5.js","src/js/utils/objects.js","src/js/utils/strings.js","src/js/i18n.js","src/js/utils/arrays.js","src/js/storage.js","src/js/utils/fetch.js","src/js/utils/loadSprite.js","src/js/utils/time.js","src/js/controls.js","src/js/utils/urls.js","src/js/captions.js","src/js/config/defaults.js","src/js/config/types.js","src/js/console.js","src/js/fullscreen.js","src/js/utils/loadImage.js","src/js/ui.js","src/js/listeners.js","node_modules/loadjs/dist/loadjs.umd.js","src/js/utils/loadScript.js","src/js/plugins/vimeo.js","src/js/plugins/youtube.js","src/js/media.js","src/js/plugins/ads.js","src/js/source.js","src/js/plyr.js"],"names":["getConstructor","input","constructor","instanceOf","Boolean","is","object","Object","number","Number","isNaN","string","String","boolean","function","Function","array","nullOrUndefined","Array","isArray","weakMap","WeakMap","nodeList","NodeList","element","Element","textNode","Text","event","Event","cue","window","TextTrackCue","VTTCue","track","TextTrack","kind","url","test","empty","length","keys","supportsPassiveListeners","supported","options","defineProperty","get","addEventListener","removeEventListener","e","toggleListener","callback","toggle","passive","capture","events","split","forEach","eventListeners","push","type","on","call","off","once","onceCallback","args","apply","triggerEvent","bubbles","detail","CustomEvent","assign","plyr","dispatchEvent","unbindListeners","item","ready","Promise","setTimeout","resolve","elements","container","then","wrap","wrapper","targets","from","reverse","index","child","cloneNode","parent","parentNode","sibling","nextSibling","appendChild","insertBefore","setAttributes","attributes","entries","filter","value","key","setAttribute","createElement","text","document","innerText","insertAfter","target","insertElement","removeElement","removeChild","emptyElement","childNodes","lastChild","replaceElement","newChild","oldChild","replaceChild","getAttributesFromSelector","sel","existingAttributes","existing","selector","s","trim","className","replace","stripped","parts","start","charAt","class","id","toggleHidden","hidden","hide","hasAttribute","removeAttribute","toggleClass","force","method","classList","contains","hasClass","matches","prototype","match","querySelectorAll","includes","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","getElements","getElement","querySelector","getFocusElement","focused","activeElement","body","trapFocus","focusable","first","last","trap","keyCode","shiftKey","focus","preventDefault","transitionEndEvent","WebkitTransition","MozTransition","OTransition","transition","find","style","undefined","repaint","offsetHeight","browser","isIE","documentMode","isWebkit","documentElement","navigator","userAgent","isIPhone","platform","isIos","defaultCodecs","support","audio","video","check","provider","playsinline","canPlayInline","api","ui","rangeInput","pip","webkitSetPresentationMode","airplay","WebKitPlaybackTargetAvailabilityEvent","mime","inputType","mediaType","isHTML5","media","canPlayType","err","textTracks","range","touch","transitions","reducedMotion","matchMedia","html5","getSources","sources","source","getAttribute","getQualityOptions","map","extend","player","set","currentTime","paused","preload","readyState","src","play","load","quality","cancelRequests","config","blankVideo","debug","log","cloneDeep","JSON","parse","stringify","getDeep","path","reduce","obj","shift","generateId","prefix","Math","floor","random","format","toString","i","getPercentage","current","max","toFixed","replaceAll","RegExp","toTitleCase","toUpperCase","substr","toLowerCase","toPascalCase","toCamelCase","slice","stripHTML","fragment","createDocumentFragment","innerHTML","firstChild","getHTML","i18n","seekTime","title","dedupe","indexOf","closest","prev","curr","abs","Storage","enabled","storage","store","localStorage","getItem","json","setItem","removeItem","fetch","responseType","reject","request","XMLHttpRequest","responseText","response","Error","status","open","send","loadSprite","hasId","isCached","exists","getElementById","update","data","insertAdjacentElement","useStorage","cached","content","result","catch","getHours","parseInt","getMinutes","getSeconds","formatTime","time","displayHours","inverted","hours","mins","secs","controls","getIconUrl","URL","iconUrl","location","cors","host","svg4everybody","findElements","selectors","buttons","pause","restart","rewind","fastForward","mute","settings","captions","fullscreen","progress","inputs","seek","volume","display","buffer","duration","seekTooltip","classNames","tooltip","error","warn","toggleNativeControls","createIcon","namespace","iconPath","iconPrefix","icon","createElementNS","role","use","setAttributeNS","createLabel","attr","universals","join","createBadge","badge","menu","createButton","buttonType","button","label","labelPressed","iconPressed","control","controlPressed","enumerable","pressed","createRange","min","step","autocomplete","updateRangeFill","createProgress","suffixKey","played","suffix","createTime","createMenuItem","list","checked","radio","name","faux","insertAdjacentHTML","forceHours","updateTimeDisplay","updateVolume","setRange","muted","updateProgress","setProgress","getElementsByTagName","nodeValue","buffered","percent","setProperty","updateSeekTooltip","tooltips","clientRect","getBoundingClientRect","visible","width","pageX","left","parseFloat","timeUpdate","invert","invertTime","seeking","durationUpdate","hasDuration","displayDuration","toggleTab","setting","tabs","setQualityMenu","panes","checkMenu","getBadge","sort","a","b","sorting","getLabel","updateSetting","pane","currentTrack","default","setCaptionsMenu","tracks","getTracks","toggled","language","unshift","bind","setSpeedMenu","speed","isVimeo","values","some","tab","toggleMenu","form","show","isMenuItem","isButton","stopPropagation","getTabSize","clone","position","opacity","scrollWidth","height","scrollHeight","showTab","isTab","size","restore","propertyName","create","tabindex","inner","home","back","inject","props","seektime","labels","parseUrl","safe","parser","href","buildUrlParams","params","URLSearchParams","setup","isVideo","isYouTube","hostname","protocol","createObjectURL","blob","languages","userLanguage","active","trackEvents","meta","currentTrackNode","languageExists","mode","updateCues","setLanguage","activeClass","findTrack","embed","enableTextTrack","has","sortIsDefault","sorted","every","getCurrentTrack","cues","activeCues","getCueAsHTML","cueText","changed","caption","defaults","autoplay","autopause","toggleInvert","ratio","clickToPlay","hideControls","resetOnEnd","disableContextMenu","loop","selected","keyboard","global","fallback","iosNative","seekLabel","unmute","enableCaptions","disableCaptions","enterFullscreen","exitFullscreen","frameTitle","menuBack","normal","end","all","reset","disabled","advertisement","qualityBadge","urls","vimeo","sdk","iframe","youtube","googleIMA","listeners","editable","embedContainer","poster","posterEnabled","ads","playing","stopped","loading","hover","isTouch","uiSupported","noTransition","tabFocus","google","publisherId","providers","types","getProviderByUrl","noop","Console","console","onChange","toggleFallback","scrollPosition","x","scrollX","y","scrollY","scrollTo","overflow","Fullscreen","property","native","webkitEnterFullscreen","requestFullscreen","webkitExitFullscreen","cancelFullScreen","action","enter","exit","fullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","prefixes","pre","loadImage","minWidth","image","Image","handler","onload","onerror","naturalWidth","addStyleHook","build","checkPlaying","setTitle","setPoster","isEmbed","togglePoster","enable","backgroundImage","backgroundSize","toggleControls","checkLoading","clearTimeout","timers","Listeners","lastKey","handleKey","firstTouch","code","which","repeat","altKey","ctrlKey","metaKey","seekByKey","togglePlay","increaseVolume","decreaseVolume","forward","toggleCaptions","delay","hasAudio","initialized","managerPromise","isAudio","ended","proxyEvents","concat","inputEvent","proxy","defaultHandler","customHandlerKey","customHandler","hasCustomHandler","returned","showHomeTab","currentTarget","eventType","done","seekTo","webkitDirectionInvertedFromDevice","direction","deltaY","deltaX","define","this","loadScript","loadjs","success","parseId","regex","$2","getAspectRatio","getRatio","w","h","assurePlaybackState","hasPlayed","setAspectRatio","Vimeo","padding","paddingBottom","offset","transform","byline","portrait","transparent","gesture","thumbnail_large","pathname","Player","disableTextTrack","stop","restorePause","setVolume","setCurrentTime","setPlaybackRate","setLoop","currentSrc","getVideoUrl","getVideoWidth","getVideoHeight","dimensions","setAutopause","state","getVideoTitle","getCurrentTime","getDuration","getTextTracks","strippedCues","getPaused","frame","seconds","mapQualityUnit","qualities","hd2160","hd1440","hd1080","hd720","large","medium","small","tiny","entry","mapQualityUnits","levels","level","YT","onYouTubeReadyCallbacks","onYouTubeIframeAPIReady","getTitle","videoId","getVideoData","items","snippet","currentId","startsWith","posterSrc","playerVars","rel","showinfo","iv_load_policy","modestbranding","disablekb","widget_referrer","cc_load_policy","cc_lang_pref","onError","message","onPlaybackQualityChange","onPlaybackRateChange","instance","playbackRate","getPlaybackRate","onReady","playVideo","pauseVideo","stopVideo","getPlaybackQuality","setPlaybackQuality","getAvailablePlaybackRates","clearInterval","buffering","setInterval","getVideoLoadedFraction","lastBuffered","onStateChange","seeked","getAvailableQualityLevels","unMute","Ads","displayContainer","manager","loader","cuePoints","safetyTimer","countdownTimer","ima","trigger","startSafetyTimer","clearSafetyTimer","setupIMA","setVpaidMode","ImaSdkSettings","VpaidMode","ENABLED","setLocale","AdDisplayContainer","requestAds","AdsLoader","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","onAdsManagerLoaded","AdErrorEvent","AD_ERROR","onAdError","AdsRequest","adTagUrl","tagUrl","linearAdSlotWidth","offsetWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","forceNonLinearFullSlot","setAdWillPlayMuted","getRemainingTime","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","getAdsManager","getCuePoints","cuePoint","seekElement","cuePercentage","AdEvent","onAdEvent","ad","getAd","LOADED","pollCountdown","isLinear","ALL_ADS_COMPLETED","loadAds","CONTENT_PAUSE_REQUESTED","pauseContent","CONTENT_RESUME_REQUESTED","resumeContent","STARTED","MIDPOINT","COMPLETE","IMPRESSION","CLICK","cancel","contentComplete","seekedTime","discardAdBreak","splice","resize","ViewMode","NORMAL","initialize","init","adError","zIndex","destroy","handlers","AV_PUBLISHERID","AV_CHANNELID","AV_URL","cb","Date","now","AV_WIDTH","AV_HEIGHT","AV_CDIM2","base","insertElements","attribute","change","tagName","crossorigin","Plyr","failed","jQuery","original","searchParams","truthy","webkitShowPlaybackTargetPicker","isHidden","hiding","eventName","soft","unload","inputIsValid","fauxDuration","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","states","inline","webkitPresentationMode","t"],"mappings":";;;;;;IAAA;IACA;IACA;;IAEA,IAAMA,iBAAiB,SAAjBA,cAAiB;IAAA,WAAUC,UAAU,IAAV,IAAkB,OAAOA,KAAP,KAAiB,WAAnC,GAAiDA,MAAMC,WAAvD,GAAqE,IAA/E;IAAA,CAAvB;;IAEA,IAAMC,aAAa,SAAbA,UAAa,CAACF,KAAD,EAAQC,WAAR;IAAA,WAAwBE,QAAQH,SAASC,WAAT,IAAwBD,iBAAiBC,WAAjD,CAAxB;IAAA,CAAnB;;IAEA,IAAMG,KAAK;IACPC,UADO,kBACAL,KADA,EACO;IACV,eAAOD,eAAeC,KAAf,MAA0BM,MAAjC;IACH,KAHM;IAIPC,UAJO,kBAIAP,KAJA,EAIO;IACV,eAAOD,eAAeC,KAAf,MAA0BQ,MAA1B,IAAoC,CAACA,OAAOC,KAAP,CAAaT,KAAb,CAA5C;IACH,KANM;IAOPU,UAPO,kBAOAV,KAPA,EAOO;IACV,eAAOD,eAAeC,KAAf,MAA0BW,MAAjC;IACH,KATM;IAUPC,WAVO,mBAUCZ,KAVD,EAUQ;IACX,eAAOD,eAAeC,KAAf,MAA0BG,OAAjC;IACH,KAZM;IAaPU,YAbO,qBAaEb,KAbF,EAaS;IACZ,eAAOD,eAAeC,KAAf,MAA0Bc,QAAjC;IACH,KAfM;IAgBPC,SAhBO,iBAgBDf,KAhBC,EAgBM;IACT,eAAO,CAACI,GAAGY,eAAH,CAAmBhB,KAAnB,CAAD,IAA8BiB,MAAMC,OAAN,CAAclB,KAAd,CAArC;IACH,KAlBM;IAmBPmB,WAnBO,mBAmBCnB,KAnBD,EAmBQ;IACX,eAAOE,WAAWF,KAAX,EAAkBoB,OAAlB,CAAP;IACH,KArBM;IAsBPC,YAtBO,oBAsBErB,KAtBF,EAsBS;IACZ,eAAOE,WAAWF,KAAX,EAAkBsB,QAAlB,CAAP;IACH,KAxBM;IAyBPC,WAzBO,mBAyBCvB,KAzBD,EAyBQ;IACX,eAAOE,WAAWF,KAAX,EAAkBwB,OAAlB,CAAP;IACH,KA3BM;IA4BPC,YA5BO,oBA4BEzB,KA5BF,EA4BS;IACZ,eAAOD,eAAeC,KAAf,MAA0B0B,IAAjC;IACH,KA9BM;IA+BPC,SA/BO,iBA+BD3B,KA/BC,EA+BM;IACT,eAAOE,WAAWF,KAAX,EAAkB4B,KAAlB,CAAP;IACH,KAjCM;IAkCPC,OAlCO,eAkCH7B,KAlCG,EAkCI;IACP,eAAOE,WAAWF,KAAX,EAAkB8B,OAAOC,YAAzB,KAA0C7B,WAAWF,KAAX,EAAkB8B,OAAOE,MAAzB,CAAjD;IACH,KApCM;IAqCPC,SArCO,iBAqCDjC,KArCC,EAqCM;IACT,eAAOE,WAAWF,KAAX,EAAkBkC,SAAlB,KAAiC,CAAC9B,GAAGY,eAAH,CAAmBhB,KAAnB,CAAD,IAA8BI,GAAGM,MAAH,CAAUV,MAAMmC,IAAhB,CAAtE;IACH,KAvCM;IAwCPC,OAxCO,eAwCHpC,KAxCG,EAwCI;IACP,eACI,CAACI,GAAGY,eAAH,CAAmBhB,KAAnB,CAAD,IACA,mFAAmFqC,IAAnF,CAAwFrC,KAAxF,CAFJ;IAIH,KA7CM;IA8CPgB,mBA9CO,2BA8CShB,KA9CT,EA8CgB;IACnB,eAAOA,UAAU,IAAV,IAAkB,OAAOA,KAAP,KAAiB,WAA1C;IACH,KAhDM;IAiDPsC,SAjDO,iBAiDDtC,KAjDC,EAiDM;IACT,eACII,GAAGY,eAAH,CAAmBhB,KAAnB,KACC,CAACI,GAAGM,MAAH,CAAUV,KAAV,KAAoBI,GAAGW,KAAH,CAASf,KAAT,CAApB,IAAuCI,GAAGiB,QAAH,CAAYrB,KAAZ,CAAxC,KAA+D,CAACA,MAAMuC,MADvE,IAECnC,GAAGC,MAAH,CAAUL,KAAV,KAAoB,CAACM,OAAOkC,IAAP,CAAYxC,KAAZ,EAAmBuC,MAH7C;IAKH;IAvDM,CAAX;;ICRA;AACA;IAKA;IACA;IACA;IACA,IAAME,2BAA4B,YAAM;IACpC;IACA,QAAIC,YAAY,KAAhB;IACA,QAAI;IACA,YAAMC,UAAUrC,OAAOsC,cAAP,CAAsB,EAAtB,EAA0B,SAA1B,EAAqC;IACjDC,eADiD,iBAC3C;IACFH,4BAAY,IAAZ;IACA,uBAAO,IAAP;IACH;IAJgD,SAArC,CAAhB;IAMAZ,eAAOgB,gBAAP,CAAwB,MAAxB,EAAgC,IAAhC,EAAsCH,OAAtC;IACAb,eAAOiB,mBAAP,CAA2B,MAA3B,EAAmC,IAAnC,EAAyCJ,OAAzC;IACH,KATD,CASE,OAAOK,CAAP,EAAU;IACR;IACH;;IAED,WAAON,SAAP;IACH,CAjBgC,EAAjC;;IAmBA;AACA,IAAO,SAASO,cAAT,CAAwB1B,OAAxB,EAAiCI,KAAjC,EAAwCuB,QAAxC,EAAmG;IAAA,QAAjDC,MAAiD,uEAAxC,KAAwC;;IAAA;;IAAA,QAAjCC,OAAiC,uEAAvB,IAAuB;IAAA,QAAjBC,OAAiB,uEAAP,KAAO;;IACtG;IACA,QAAI,CAAC9B,OAAD,IAAY,EAAE,sBAAsBA,OAAxB,CAAZ,IAAgDnB,GAAGkC,KAAH,CAASX,KAAT,CAAhD,IAAmE,CAACvB,GAAGS,QAAH,CAAYqC,QAAZ,CAAxE,EAA+F;IAC3F;IACH;;IAED;IACA,QAAMI,SAAS3B,MAAM4B,KAAN,CAAY,GAAZ,CAAf;;IAEA;IACA;IACA,QAAIZ,UAAUU,OAAd;;IAEA;IACA,QAAIZ,wBAAJ,EAA8B;IAC1BE,kBAAU;IACN;IACAS,4BAFM;IAGN;IACAC;IAJM,SAAV;IAMH;;IAED;IACAC,WAAOE,OAAP,CAAe,gBAAQ;IACnB,YAAI,SAAQ,MAAKC,cAAb,IAA+BN,MAAnC,EAA2C;IACvC;IACA,kBAAKM,cAAL,CAAoBC,IAApB,CAAyB,EAAEnC,gBAAF,EAAWoC,UAAX,EAAiBT,kBAAjB,EAA2BP,gBAA3B,EAAzB;IACH;;IAEDpB,gBAAQ4B,SAAS,kBAAT,GAA8B,qBAAtC,EAA6DQ,IAA7D,EAAmET,QAAnE,EAA6EP,OAA7E;IACH,KAPD;IAQH;;IAED;AACA,IAAO,SAASiB,EAAT,CAAYrC,OAAZ,EAA6E;IAAA,QAAxD+B,MAAwD,uEAA/C,EAA+C;IAAA,QAA3CJ,QAA2C;IAAA,QAAjCE,OAAiC,uEAAvB,IAAuB;IAAA,QAAjBC,OAAiB,uEAAP,KAAO;;IAChFJ,mBAAeY,IAAf,CAAoB,IAApB,EAA0BtC,OAA1B,EAAmC+B,MAAnC,EAA2CJ,QAA3C,EAAqD,IAArD,EAA2DE,OAA3D,EAAoEC,OAApE;IACH;;IAED;AACA,IAAO,SAASS,GAAT,CAAavC,OAAb,EAA8E;IAAA,QAAxD+B,MAAwD,uEAA/C,EAA+C;IAAA,QAA3CJ,QAA2C;IAAA,QAAjCE,OAAiC,uEAAvB,IAAuB;IAAA,QAAjBC,OAAiB,uEAAP,KAAO;;IACjFJ,mBAAeY,IAAf,CAAoB,IAApB,EAA0BtC,OAA1B,EAAmC+B,MAAnC,EAA2CJ,QAA3C,EAAqD,KAArD,EAA4DE,OAA5D,EAAqEC,OAArE;IACH;;IAED;AACA,IAAO,SAASU,IAAT,CAAcxC,OAAd,EAA+E;IAAA,QAAxD+B,MAAwD,uEAA/C,EAA+C;IAAA,QAA3CJ,QAA2C;IAAA,QAAjCE,OAAiC,uEAAvB,IAAuB;IAAA,QAAjBC,OAAiB,uEAAP,KAAO;;IAClF,aAASW,YAAT,GAA+B;IAC3BF,YAAIvC,OAAJ,EAAa+B,MAAb,EAAqBU,YAArB,EAAmCZ,OAAnC,EAA4CC,OAA5C;;IAD2B,0CAANY,IAAM;IAANA,gBAAM;IAAA;;IAE3Bf,iBAASgB,KAAT,CAAe,IAAf,EAAqBD,IAArB;IACH;;IAEDhB,mBAAeY,IAAf,CAAoB,IAApB,EAA0BtC,OAA1B,EAAmC+B,MAAnC,EAA2CU,YAA3C,EAAyD,IAAzD,EAA+DZ,OAA/D,EAAwEC,OAAxE;IACH;;IAED;AACA,IAAO,SAASc,YAAT,CAAsB5C,OAAtB,EAAwE;IAAA,QAAzCoC,IAAyC,uEAAlC,EAAkC;IAAA,QAA9BS,OAA8B,uEAApB,KAAoB;IAAA,QAAbC,MAAa,uEAAJ,EAAI;;IAC3E;IACA,QAAI,CAACjE,GAAGmB,OAAH,CAAWA,OAAX,CAAD,IAAwBnB,GAAGkC,KAAH,CAASqB,IAAT,CAA5B,EAA4C;IACxC;IACH;;IAED;IACA,QAAMhC,QAAQ,IAAI2C,WAAJ,CAAgBX,IAAhB,EAAsB;IAChCS,wBADgC;IAEhCC,gBAAQ/D,OAAOiE,MAAP,CAAc,EAAd,EAAkBF,MAAlB,EAA0B;IAC9BG,kBAAM;IADwB,SAA1B;IAFwB,KAAtB,CAAd;;IAOA;IACAjD,YAAQkD,aAAR,CAAsB9C,KAAtB;IACH;;IAED;AACA,IAAO,SAAS+C,eAAT,GAA2B;IAC9B,QAAI,QAAQ,KAAKjB,cAAjB,EAAiC;IAC7B,aAAKA,cAAL,CAAoBD,OAApB,CAA4B,gBAAQ;IAAA,gBACxBjC,OADwB,GACaoD,IADb,CACxBpD,OADwB;IAAA,gBACfoC,IADe,GACagB,IADb,CACfhB,IADe;IAAA,gBACTT,QADS,GACayB,IADb,CACTzB,QADS;IAAA,gBACCP,OADD,GACagC,IADb,CACChC,OADD;;IAEhCpB,oBAAQwB,mBAAR,CAA4BY,IAA5B,EAAkCT,QAAlC,EAA4CP,OAA5C;IACH,SAHD;;IAKA,aAAKc,cAAL,GAAsB,EAAtB;IACH;IACJ;;IAED;AACA,IAAO,SAASmB,KAAT,GAAiB;IAAA;;IACpB,WAAO,IAAIC,OAAJ,CACH;IAAA,eAAY,OAAKD,KAAL,GAAaE,WAAWC,OAAX,EAAoB,CAApB,CAAb,GAAsCnB,GAAGC,IAAH,CAAQ,MAAR,EAAc,OAAKmB,QAAL,CAAcC,SAA5B,EAAuC,OAAvC,EAAgDF,OAAhD,CAAlD;IAAA,KADG,EAELG,IAFK,CAEA,YAAM,EAFN,CAAP;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICvHD;AACA;IAMA;AACA,IAAO,SAASC,IAAT,CAAcH,QAAd,EAAwBI,OAAxB,EAAiC;IACpC;IACA,QAAMC,UAAUL,SAASzC,MAAT,GAAkByC,QAAlB,GAA6B,CAACA,QAAD,CAA7C;;IAEA;IACA;IACA/D,UAAMqE,IAAN,CAAWD,OAAX,EACKE,OADL,GAEK/B,OAFL,CAEa,UAACjC,OAAD,EAAUiE,KAAV,EAAoB;IACzB,YAAMC,QAAQD,QAAQ,CAAR,GAAYJ,QAAQM,SAAR,CAAkB,IAAlB,CAAZ,GAAsCN,OAApD;;IAEA;IACA,YAAMO,SAASpE,QAAQqE,UAAvB;IACA,YAAMC,UAAUtE,QAAQuE,WAAxB;;IAEA;IACA;IACAL,cAAMM,WAAN,CAAkBxE,OAAlB;;IAEA;IACA;IACA;IACA,YAAIsE,OAAJ,EAAa;IACTF,mBAAOK,YAAP,CAAoBP,KAApB,EAA2BI,OAA3B;IACH,SAFD,MAEO;IACHF,mBAAOI,WAAP,CAAmBN,KAAnB;IACH;IACJ,KArBL;IAsBH;;IAED;AACA,IAAO,SAASQ,aAAT,CAAuB1E,OAAvB,EAAgC2E,UAAhC,EAA4C;IAC/C,QAAI,CAAC9F,GAAGmB,OAAH,CAAWA,OAAX,CAAD,IAAwBnB,GAAGkC,KAAH,CAAS4D,UAAT,CAA5B,EAAkD;IAC9C;IACH;;IAED;IACA;IACA5F,WAAO6F,OAAP,CAAeD,UAAf,EACKE,MADL,CACY;IAAA;IAAA,YAAIC,KAAJ;;IAAA,eAAe,CAACjG,GAAGY,eAAH,CAAmBqF,KAAnB,CAAhB;IAAA,KADZ,EAEK7C,OAFL,CAEa;IAAA;IAAA,YAAE8C,GAAF;IAAA,YAAOD,KAAP;;IAAA,eAAkB9E,QAAQgF,YAAR,CAAqBD,GAArB,EAA0BD,KAA1B,CAAlB;IAAA,KAFb;IAGH;;IAED;AACA,IAAO,SAASG,aAAT,CAAuB7C,IAAvB,EAA6BuC,UAA7B,EAAyCO,IAAzC,EAA+C;IAClD;IACA,QAAMlF,UAAUmF,SAASF,aAAT,CAAuB7C,IAAvB,CAAhB;;IAEA;IACA,QAAIvD,GAAGC,MAAH,CAAU6F,UAAV,CAAJ,EAA2B;IACvBD,sBAAc1E,OAAd,EAAuB2E,UAAvB;IACH;;IAED;IACA,QAAI9F,GAAGM,MAAH,CAAU+F,IAAV,CAAJ,EAAqB;IACjBlF,gBAAQoF,SAAR,GAAoBF,IAApB;IACH;;IAED;IACA,WAAOlF,OAAP;IACH;;IAED;AACA,IAAO,SAASqF,WAAT,CAAqBrF,OAArB,EAA8BsF,MAA9B,EAAsC;IACzCA,WAAOjB,UAAP,CAAkBI,YAAlB,CAA+BzE,OAA/B,EAAwCsF,OAAOf,WAA/C;IACH;;IAED;AACA,IAAO,SAASgB,aAAT,CAAuBnD,IAAvB,EAA6BgC,MAA7B,EAAqCO,UAArC,EAAiDO,IAAjD,EAAuD;IAC1D;IACAd,WAAOI,WAAP,CAAmBS,cAAc7C,IAAd,EAAoBuC,UAApB,EAAgCO,IAAhC,CAAnB;IACH;;IAED;AACA,IAAO,SAASM,aAAT,CAAuBxF,OAAvB,EAAgC;IACnC,QAAInB,GAAGiB,QAAH,CAAYE,OAAZ,KAAwBnB,GAAGW,KAAH,CAASQ,OAAT,CAA5B,EAA+C;IAC3CN,cAAMqE,IAAN,CAAW/D,OAAX,EAAoBiC,OAApB,CAA4BuD,aAA5B;IACA;IACH;;IAED,QAAI,CAAC3G,GAAGmB,OAAH,CAAWA,OAAX,CAAD,IAAwB,CAACnB,GAAGmB,OAAH,CAAWA,QAAQqE,UAAnB,CAA7B,EAA6D;IACzD;IACH;;IAEDrE,YAAQqE,UAAR,CAAmBoB,WAAnB,CAA+BzF,OAA/B;IACH;;IAED;AACA,IAAO,SAAS0F,YAAT,CAAsB1F,OAAtB,EAA+B;IAAA,QAC5BgB,MAD4B,GACjBhB,QAAQ2F,UADS,CAC5B3E,MAD4B;;;IAGlC,WAAOA,SAAS,CAAhB,EAAmB;IACfhB,gBAAQyF,WAAR,CAAoBzF,QAAQ4F,SAA5B;IACA5E,kBAAU,CAAV;IACH;IACJ;;IAED;AACA,IAAO,SAAS6E,cAAT,CAAwBC,QAAxB,EAAkCC,QAAlC,EAA4C;IAC/C,QAAI,CAAClH,GAAGmB,OAAH,CAAW+F,QAAX,CAAD,IAAyB,CAAClH,GAAGmB,OAAH,CAAW+F,SAAS1B,UAApB,CAA1B,IAA6D,CAACxF,GAAGmB,OAAH,CAAW8F,QAAX,CAAlE,EAAwF;IACpF,eAAO,IAAP;IACH;;IAEDC,aAAS1B,UAAT,CAAoB2B,YAApB,CAAiCF,QAAjC,EAA2CC,QAA3C;;IAEA,WAAOD,QAAP;IACH;;IAED;AACA,IAAO,SAASG,yBAAT,CAAmCC,GAAnC,EAAwCC,kBAAxC,EAA4D;IAC/D;IACA;IACA;IACA;;IAEA,QAAI,CAACtH,GAAGM,MAAH,CAAU+G,GAAV,CAAD,IAAmBrH,GAAGkC,KAAH,CAASmF,GAAT,CAAvB,EAAsC;IAClC,eAAO,EAAP;IACH;;IAED,QAAMvB,aAAa,EAAnB;IACA,QAAMyB,WAAWD,kBAAjB;;IAEAD,QAAIlE,KAAJ,CAAU,GAAV,EAAeC,OAAf,CAAuB,aAAK;IACxB;IACA,YAAMoE,WAAWC,EAAEC,IAAF,EAAjB;IACA,YAAMC,YAAYH,SAASI,OAAT,CAAiB,GAAjB,EAAsB,EAAtB,CAAlB;IACA,YAAMC,WAAWL,SAASI,OAAT,CAAiB,QAAjB,EAA2B,EAA3B,CAAjB;;IAEA;IACA,YAAME,QAAQD,SAAS1E,KAAT,CAAe,GAAf,CAAd;IACA,YAAM+C,MAAM4B,MAAM,CAAN,CAAZ;IACA,YAAM7B,QAAQ6B,MAAM3F,MAAN,GAAe,CAAf,GAAmB2F,MAAM,CAAN,EAASF,OAAT,CAAiB,OAAjB,EAA0B,EAA1B,CAAnB,GAAmD,EAAjE;;IAEA;IACA,YAAMG,QAAQP,SAASQ,MAAT,CAAgB,CAAhB,CAAd;;IAEA,gBAAQD,KAAR;IACI,iBAAK,GAAL;IACI;IACA,oBAAI/H,GAAGC,MAAH,CAAUsH,QAAV,KAAuBvH,GAAGM,MAAH,CAAUiH,SAASU,KAAnB,CAA3B,EAAsD;IAClDV,6BAASU,KAAT,UAAsBN,SAAtB;IACH;;IAED7B,2BAAWmC,KAAX,GAAmBN,SAAnB;IACA;;IAEJ,iBAAK,GAAL;IACI;IACA7B,2BAAWoC,EAAX,GAAgBV,SAASI,OAAT,CAAiB,GAAjB,EAAsB,EAAtB,CAAhB;IACA;;IAEJ,iBAAK,GAAL;IACI;IACA9B,2BAAWI,GAAX,IAAkBD,KAAlB;;IAEA;;IAEJ;IACI;IAtBR;IAwBH,KAtCD;;IAwCA,WAAOH,UAAP;IACH;;IAED;AACA,IAAO,SAASqC,YAAT,CAAsBhH,OAAtB,EAA+BiH,MAA/B,EAAuC;IAC1C,QAAI,CAACpI,GAAGmB,OAAH,CAAWA,OAAX,CAAL,EAA0B;IACtB;IACH;;IAED,QAAIkH,OAAOD,MAAX;;IAEA,QAAI,CAACpI,GAAGQ,OAAH,CAAW6H,IAAX,CAAL,EAAuB;IACnBA,eAAO,CAAClH,QAAQmH,YAAR,CAAqB,QAArB,CAAR;IACH;;IAED,QAAID,IAAJ,EAAU;IACNlH,gBAAQgF,YAAR,CAAqB,QAArB,EAA+B,EAA/B;IACH,KAFD,MAEO;IACHhF,gBAAQoH,eAAR,CAAwB,QAAxB;IACH;IACJ;;IAED;AACA,IAAO,SAASC,WAAT,CAAqBrH,OAArB,EAA8BwG,SAA9B,EAAyCc,KAAzC,EAAgD;IACnD,QAAIzI,GAAGmB,OAAH,CAAWA,OAAX,CAAJ,EAAyB;IACrB,YAAIuH,SAAS,QAAb;IACA,YAAI,OAAOD,KAAP,KAAiB,WAArB,EAAkC;IAC9BC,qBAASD,QAAQ,KAAR,GAAgB,QAAzB;IACH;;IAEDtH,gBAAQwH,SAAR,CAAkBD,MAAlB,EAA0Bf,SAA1B;IACA,eAAOxG,QAAQwH,SAAR,CAAkBC,QAAlB,CAA2BjB,SAA3B,CAAP;IACH;;IAED,WAAO,IAAP;IACH;;IAED;AACA,IAAO,SAASkB,QAAT,CAAkB1H,OAAlB,EAA2BwG,SAA3B,EAAsC;IACzC,WAAO3H,GAAGmB,OAAH,CAAWA,OAAX,KAAuBA,QAAQwH,SAAR,CAAkBC,QAAlB,CAA2BjB,SAA3B,CAA9B;IACH;;IAED;AACA,IAAO,SAASmB,OAAT,CAAiB3H,OAAjB,EAA0BqG,QAA1B,EAAoC;IACvC,QAAMuB,YAAY,EAAE3H,gBAAF,EAAlB;;IAEA,aAAS4H,KAAT,GAAiB;IACb,eAAOnI,MAAMqE,IAAN,CAAWoB,SAAS2C,gBAAT,CAA0BzB,QAA1B,CAAX,EAAgD0B,QAAhD,CAAyD,IAAzD,CAAP;IACH;;IAED,QAAMJ,UACFC,UAAUD,OAAV,IACAC,UAAUI,qBADV,IAEAJ,UAAUK,kBAFV,IAGAL,UAAUM,iBAHV,IAIAL,KALJ;;IAOA,WAAOF,QAAQrF,IAAR,CAAatC,OAAb,EAAsBqG,QAAtB,CAAP;IACH;;IAED;AACA,IAAO,SAAS8B,WAAT,CAAqB9B,QAArB,EAA+B;IAClC,WAAO,KAAK5C,QAAL,CAAcC,SAAd,CAAwBoE,gBAAxB,CAAyCzB,QAAzC,CAAP;IACH;;IAED;AACA,IAAO,SAAS+B,UAAT,CAAoB/B,QAApB,EAA8B;IACjC,WAAO,KAAK5C,QAAL,CAAcC,SAAd,CAAwB2E,aAAxB,CAAsChC,QAAtC,CAAP;IACH;;IAED;AACA,IAAO,SAASiC,eAAT,GAA2B;IAC9B,QAAIC,UAAUpD,SAASqD,aAAvB;;IAEA,QAAI,CAACD,OAAD,IAAYA,YAAYpD,SAASsD,IAArC,EAA2C;IACvCF,kBAAU,IAAV;IACH,KAFD,MAEO;IACHA,kBAAUpD,SAASkD,aAAT,CAAuB,QAAvB,CAAV;IACH;;IAED,WAAOE,OAAP;IACH;;IAED;AACA,IAAO,SAASG,SAAT,GAAmD;IAAA,QAAhC1I,OAAgC,uEAAtB,IAAsB;IAAA,QAAhB4B,MAAgB,uEAAP,KAAO;;IACtD,QAAI,CAAC/C,GAAGmB,OAAH,CAAWA,OAAX,CAAL,EAA0B;IACtB;IACH;;IAED,QAAM2I,YAAYR,YAAY7F,IAAZ,CAAiB,IAAjB,EAAuB,yDAAvB,CAAlB;IACA,QAAMsG,QAAQD,UAAU,CAAV,CAAd;IACA,QAAME,OAAOF,UAAUA,UAAU3H,MAAV,GAAmB,CAA7B,CAAb;;IAEA,QAAM8H,OAAO,SAAPA,IAAO,QAAS;IAClB;IACA,YAAI1I,MAAM2E,GAAN,KAAc,KAAd,IAAuB3E,MAAM2I,OAAN,KAAkB,CAA7C,EAAgD;IAC5C;IACH;;IAED;IACA,YAAMR,UAAUD,iBAAhB;;IAEA,YAAIC,YAAYM,IAAZ,IAAoB,CAACzI,MAAM4I,QAA/B,EAAyC;IACrC;IACAJ,kBAAMK,KAAN;IACA7I,kBAAM8I,cAAN;IACH,SAJD,MAIO,IAAIX,YAAYK,KAAZ,IAAqBxI,MAAM4I,QAA/B,EAAyC;IAC5C;IACAH,iBAAKI,KAAL;IACA7I,kBAAM8I,cAAN;IACH;IACJ,KAlBD;;IAoBAxH,mBAAeY,IAAf,CAAoB,IAApB,EAA0B,KAAKmB,QAAL,CAAcC,SAAxC,EAAmD,SAAnD,EAA8DoF,IAA9D,EAAoElH,MAApE,EAA4E,KAA5E;IACH;;IC5RD;AACA;AAMA,IAAO,IAAMuH,qBAAsB,YAAM;IACrC,QAAMnJ,UAAUmF,SAASF,aAAT,CAAuB,MAAvB,CAAhB;;IAEA,QAAMlD,SAAS;IACXqH,0BAAkB,qBADP;IAEXC,uBAAe,eAFJ;IAGXC,qBAAa,+BAHF;IAIXC,oBAAY;IAJD,KAAf;;IAOA,QAAMnH,OAAOrD,OAAOkC,IAAP,CAAYc,MAAZ,EAAoByH,IAApB,CAAyB;IAAA,eAASxJ,QAAQyJ,KAAR,CAAcrJ,KAAd,MAAyBsJ,SAAlC;IAAA,KAAzB,CAAb;;IAEA,WAAO7K,GAAGM,MAAH,CAAUiD,IAAV,IAAkBL,OAAOK,IAAP,CAAlB,GAAiC,KAAxC;IACH,CAbiC,EAA3B;;IAeP;AACA,IAAO,SAASuH,OAAT,CAAiB3J,OAAjB,EAA0B;IAC7BuD,eAAW,YAAM;IACbyD,qBAAahH,OAAb,EAAsB,IAAtB;IACAA,gBAAQ4J,YAAR,CAFa;IAGb5C,qBAAahH,OAAb,EAAsB,KAAtB;IACH,KAJD,EAIG,CAJH;IAKH;;IC7BD;IACA;IACA;IACA;;IAEA,IAAM6J,UAAU;IACZC,wBAAqB,AAAS,CAAC,CAAC3E,SAAS4E,YAD7B;IAEZC,cAAU,sBAAsB7E,SAAS8E,eAAT,CAAyBR,KAA/C,IAAwD,CAAC,OAAO3I,IAAP,CAAYoJ,UAAUC,SAAtB,CAFvD;IAGZC,cAAU,kBAAkBtJ,IAAlB,CAAuBoJ,UAAUG,QAAjC,CAHE;IAIZC,WAAO,uBAAuBxJ,IAAvB,CAA4BoJ,UAAUG,QAAtC;IAJK,CAAhB;;ICLA;AACA;IAQA;IACA,IAAME,gBAAgB;IAClB,iBAAa,QADK;IAElB,iBAAa,GAFK;IAGlB,kBAAc,aAHI;IAIlB,iBAAa,wBAJK;IAKlB,iBAAa;IALK,CAAtB;;IAQA;IACA,IAAMC,UAAU;IACZ;IACAC,WAAO,iBAAiBtF,SAASF,aAAT,CAAuB,OAAvB,CAFZ;IAGZyF,WAAO,iBAAiBvF,SAASF,aAAT,CAAuB,OAAvB,CAHZ;;IAKZ;IACA;IACA0F,SAPY,iBAONvI,IAPM,EAOAwI,QAPA,EAOUC,WAPV,EAOuB;IAC/B,YAAMC,gBAAgBjB,QAAQO,QAAR,IAAoBS,WAApB,IAAmCL,QAAQK,WAAjE;IACA,YAAME,MAAMP,QAAQpI,IAAR,KAAiBwI,aAAa,OAA1C;IACA,YAAMI,KAAKD,OAAOP,QAAQS,UAAf,KAA8B7I,SAAS,OAAT,IAAoB,CAACyH,QAAQO,QAA7B,IAAyCU,aAAvE,CAAX;;IAEA,eAAO;IACHC,oBADG;IAEHC;IAFG,SAAP;IAIH,KAhBW;;;IAkBZ;IACA;IACAE,SAAM;IAAA,eAAM,CAACrB,QAAQO,QAAT,IAAqBvL,GAAGS,QAAH,CAAY2F,cAAc,OAAd,EAAuBkG,yBAAnC,CAA3B;IAAA,KAAD,EApBO;;IAsBZ;IACA;IACAC,aAASvM,GAAGS,QAAH,CAAYiB,OAAO8K,qCAAnB,CAxBG;;IA0BZ;IACA;IACAR,iBAAa,iBAAiB1F,SAASF,aAAT,CAAuB,OAAvB,CA5BlB;;IA8BZ;IACA;IACA;IACAqG,QAjCY,gBAiCPC,SAjCO,EAiCI;IAAA,+BACQA,UAAUvJ,KAAV,CAAgB,GAAhB,CADR;IAAA;IAAA,YACLwJ,SADK;;IAEZ,YAAI,CAAC,KAAKC,OAAN,IAAiBD,cAAc,KAAKpJ,IAAxC,EAA8C;IAC1C,mBAAO,KAAP;IACH;;IAED,YAAIA,aAAJ;IACA,YAAImJ,aAAaA,UAAUxD,QAAV,CAAmB,SAAnB,CAAjB,EAAgD;IAC5C;IACA3F,mBAAOmJ,SAAP;IACH,SAHD,MAGO,IAAIA,cAAc,YAAlB,EAAgC;IACnC;IACAnJ,mBAAO,aAAP;IACH,SAHM,MAGA,IAAImJ,aAAahB,aAAjB,EAAgC;IACnC;IACAnI,mBAAUmJ,SAAV,kBAAgChB,cAAcgB,SAAd,CAAhC;IACH;;IAED,YAAI;IACA,mBAAO3M,QAAQwD,QAAQ,KAAKsJ,KAAL,CAAWC,WAAX,CAAuBvJ,IAAvB,EAA6BqE,OAA7B,CAAqC,IAArC,EAA2C,EAA3C,CAAhB,CAAP;IACH,SAFD,CAEE,OAAOmF,GAAP,EAAY;IACV,mBAAO,KAAP;IACH;IACJ,KAxDW;;;IA0DZ;IACAC,gBAAY,gBAAgB1G,SAASF,aAAT,CAAuB,OAAvB,CA3DhB;;IA6DZ;IACAgG,gBAAa,YAAM;IACf,YAAMa,QAAQ3G,SAASF,aAAT,CAAuB,OAAvB,CAAd;IACA6G,cAAM1J,IAAN,GAAa,OAAb;IACA,eAAO0J,MAAM1J,IAAN,KAAe,OAAtB;IACH,KAJW,EA9DA;;IAoEZ;IACA;IACA2J,WAAO,kBAAkB5G,SAAS8E,eAtEtB;;IAwEZ;IACA+B,iBAAa7C,uBAAuB,KAzExB;;IA2EZ;IACA;IACA8C,mBAAe,gBAAgB1L,MAAhB,IAA0BA,OAAO2L,UAAP,CAAkB,0BAAlB,EAA8CvE;IA7E3E,CAAhB;;ICnBA;AACA;IAOA,IAAMwE,QAAQ;IACVC,cADU,wBACG;IAAA;;IACT,YAAI,CAAC,KAAKX,OAAV,EAAmB;IACf,mBAAO,EAAP;IACH;;IAED,YAAMY,UAAU3M,MAAMqE,IAAN,CAAW,KAAK2H,KAAL,CAAW5D,gBAAX,CAA4B,QAA5B,CAAX,CAAhB;;IAEA;IACA,eAAOuE,QAAQxH,MAAR,CAAe;IAAA,mBAAU2F,QAAQc,IAAR,CAAahJ,IAAb,CAAkB,KAAlB,EAAwBgK,OAAOC,YAAP,CAAoB,MAApB,CAAxB,CAAV;IAAA,SAAf,CAAP;IACH,KAVS;;;IAYV;IACAC,qBAbU,+BAaU;IAChB;IACA,eAAOL,MAAMC,UAAN,CACF9J,IADE,CACG,IADH,EAEFmK,GAFE,CAEE;IAAA,mBAAUxN,OAAOqN,OAAOC,YAAP,CAAoB,MAApB,CAAP,CAAV;IAAA,SAFF,EAGF1H,MAHE,CAGKjG,OAHL,CAAP;IAIH,KAnBS;IAqBV8N,UArBU,oBAqBD;IACL,YAAI,CAAC,KAAKjB,OAAV,EAAmB;IACf;IACH;;IAED,YAAMkB,SAAS,IAAf;;IAEA;IACA5N,eAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,SAApC,EAA+C;IAC3CpK,eAD2C,iBACrC;IACF;IACA,oBAAM+K,UAAUF,MAAMC,UAAN,CAAiB9J,IAAjB,CAAsBqK,MAAtB,CAAhB;IACA,oBAAML,SAASD,QAAQ7C,IAAR,CAAa;IAAA,2BAAU8C,OAAOC,YAAP,CAAoB,KAApB,MAA+BI,OAAOL,MAAhD;IAAA,iBAAb,CAAf;;IAEA;IACA,uBAAOA,UAAUrN,OAAOqN,OAAOC,YAAP,CAAoB,MAApB,CAAP,CAAjB;IACH,aAR0C;IAS3CK,eAT2C,eASvCnO,KATuC,EAShC;IACP;IACA,oBAAM4N,UAAUF,MAAMC,UAAN,CAAiB9J,IAAjB,CAAsBqK,MAAtB,CAAhB;;IAEA;IACA,oBAAML,SAASD,QAAQ7C,IAAR,CAAa;IAAA,2BAAUvK,OAAOqN,OAAOC,YAAP,CAAoB,MAApB,CAAP,MAAwC9N,KAAlD;IAAA,iBAAb,CAAf;;IAEA;IACA,oBAAI,CAAC6N,MAAL,EAAa;IACT;IACH;;IAED;IAZO,oCAa8CK,OAAOjB,KAbrD;IAAA,oBAaCmB,WAbD,iBAaCA,WAbD;IAAA,oBAacC,MAbd,iBAacA,MAbd;IAAA,oBAasBC,OAbtB,iBAasBA,OAbtB;IAAA,oBAa+BC,UAb/B,iBAa+BA,UAb/B;;IAeP;;IACAL,uBAAOjB,KAAP,CAAauB,GAAb,GAAmBX,OAAOC,YAAP,CAAoB,KAApB,CAAnB;;IAEA;IACA,oBAAIQ,YAAY,MAAZ,IAAsBC,UAA1B,EAAsC;IAClC;IACAL,2BAAOnK,IAAP,CAAY,gBAAZ,EAA8B,YAAM;IAChCmK,+BAAOE,WAAP,GAAqBA,WAArB;;IAEA;IACA,4BAAI,CAACC,MAAL,EAAa;IACTH,mCAAOO,IAAP;IACH;IACJ,qBAPD;;IASA;IACAP,2BAAOjB,KAAP,CAAayB,IAAb;IACH;;IAED;IACAvK,6BAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,eAAxC,EAAyD,KAAzD,EAAgE;IAC5D0B,6BAAS3O;IADmD,iBAAhE;IAGH;IA/C0C,SAA/C;IAiDH,KA9ES;;;IAgFV;IACA;IACA4O,kBAlFU,4BAkFO;IACb,YAAI,CAAC,KAAK5B,OAAV,EAAmB;IACf;IACH;;IAED;IACAjG,sBAAc2G,MAAMC,UAAN,CAAiB9J,IAAjB,CAAsB,IAAtB,CAAd;;IAEA;IACA;IACA;IACA,aAAKoJ,KAAL,CAAW1G,YAAX,CAAwB,KAAxB,EAA+B,KAAKsI,MAAL,CAAYC,UAA3C;;IAEA;IACA;IACA;IACA,aAAK7B,KAAL,CAAWyB,IAAX;;IAEA;IACA,aAAKK,KAAL,CAAWC,GAAX,CAAe,4BAAf;IACH;IAtGS,CAAd;;ICRA;AACA;IAKA;AACA,IAAO,SAASC,SAAT,CAAmB5O,MAAnB,EAA2B;IAC9B,WAAO6O,KAAKC,KAAL,CAAWD,KAAKE,SAAL,CAAe/O,MAAf,CAAX,CAAP;IACH;;IAED;AACA,IAAO,SAASgP,OAAT,CAAiBhP,MAAjB,EAAyBiP,IAAzB,EAA+B;IAClC,WAAOA,KAAK/L,KAAL,CAAW,GAAX,EAAgBgM,MAAhB,CAAuB,UAACC,GAAD,EAAMlJ,GAAN;IAAA,eAAckJ,OAAOA,IAAIlJ,GAAJ,CAArB;IAAA,KAAvB,EAAsDjG,MAAtD,CAAP;IACH;;IAED;AACA,IAAO,SAAS4N,MAAT,GAAyC;IAAA,QAAzBpH,MAAyB,uEAAhB,EAAgB;;IAAA,sCAAT+G,OAAS;IAATA,eAAS;IAAA;;IAC5C,QAAI,CAACA,QAAQrL,MAAb,EAAqB;IACjB,eAAOsE,MAAP;IACH;;IAED,QAAMgH,SAASD,QAAQ6B,KAAR,EAAf;;IAEA,QAAI,CAACrP,GAAGC,MAAH,CAAUwN,MAAV,CAAL,EAAwB;IACpB,eAAOhH,MAAP;IACH;;IAEDvG,WAAOkC,IAAP,CAAYqL,MAAZ,EAAoBrK,OAApB,CAA4B,eAAO;IAC/B,YAAIpD,GAAGC,MAAH,CAAUwN,OAAOvH,GAAP,CAAV,CAAJ,EAA4B;IACxB,gBAAI,CAAChG,OAAOkC,IAAP,CAAYqE,MAAZ,EAAoByC,QAApB,CAA6BhD,GAA7B,CAAL,EAAwC;IACpChG,uBAAOiE,MAAP,CAAcsC,MAAd,qBAAyBP,GAAzB,EAA+B,EAA/B;IACH;;IAED2H,mBAAOpH,OAAOP,GAAP,CAAP,EAAoBuH,OAAOvH,GAAP,CAApB;IACH,SAND,MAMO;IACHhG,mBAAOiE,MAAP,CAAcsC,MAAd,qBAAyBP,GAAzB,EAA+BuH,OAAOvH,GAAP,CAA/B;IACH;IACJ,KAVD;;IAYA,WAAO2H,yBAAOpH,MAAP,SAAkB+G,OAAlB,EAAP;IACH;;ICzCD;AACA;IAKA;AACA,IAAO,SAAS8B,UAAT,CAAoBC,MAApB,EAA4B;IAC/B,WAAUA,MAAV,SAAoBC,KAAKC,KAAL,CAAWD,KAAKE,MAAL,KAAgB,KAA3B,CAApB;IACH;;IAED;AACA,IAAO,SAASC,MAAT,CAAgB/P,KAAhB,EAAgC;IAAA,sCAANiE,IAAM;IAANA,YAAM;IAAA;;IACnC,QAAI7D,GAAGkC,KAAH,CAAStC,KAAT,CAAJ,EAAqB;IACjB,eAAOA,KAAP;IACH;;IAED,WAAOA,MAAMgQ,QAAN,GAAiBhI,OAAjB,CAAyB,UAAzB,EAAqC,UAACoB,KAAD,EAAQ6G,CAAR;IAAA,eAAchM,KAAKgM,CAAL,EAAQD,QAAR,EAAd;IAAA,KAArC,CAAP;IACH;;IAED;AACA,IAAO,SAASE,aAAT,CAAuBC,OAAvB,EAAgCC,GAAhC,EAAqC;IACxC,QAAID,YAAY,CAAZ,IAAiBC,QAAQ,CAAzB,IAA8B5P,OAAOC,KAAP,CAAa0P,OAAb,CAA9B,IAAuD3P,OAAOC,KAAP,CAAa2P,GAAb,CAA3D,EAA8E;IAC1E,eAAO,CAAP;IACH;;IAED,WAAO,CAACD,UAAUC,GAAV,GAAgB,GAAjB,EAAsBC,OAAtB,CAA8B,CAA9B,CAAP;IACH;;IAED;AACA,IAAO,SAASC,UAAT,GAAyD;IAAA,QAArCtQ,KAAqC,uEAA7B,EAA6B;IAAA,QAAzB+K,IAAyB,uEAAlB,EAAkB;IAAA,QAAd/C,OAAc,uEAAJ,EAAI;;IAC5D,WAAOhI,MAAMgI,OAAN,CACH,IAAIuI,MAAJ,CAAWxF,KAAKiF,QAAL,GAAgBhI,OAAhB,CAAwB,2BAAxB,EAAqD,MAArD,CAAX,EAAyE,GAAzE,CADG,EAEHA,QAAQgI,QAAR,EAFG,CAAP;IAIH;;IAED;AACA,IAAO,SAASQ,WAAT,GAAiC;IAAA,QAAZxQ,KAAY,uEAAJ,EAAI;;IACpC,WAAOA,MAAMgQ,QAAN,GAAiBhI,OAAjB,CAAyB,QAAzB,EAAmC;IAAA,eAAQvB,KAAK2B,MAAL,CAAY,CAAZ,EAAeqI,WAAf,KAA+BhK,KAAKiK,MAAL,CAAY,CAAZ,EAAeC,WAAf,EAAvC;IAAA,KAAnC,CAAP;IACH;;IAED;AACA,IAAO,SAASC,YAAT,GAAkC;IAAA,QAAZ5Q,KAAY,uEAAJ,EAAI;;IACrC,QAAIU,SAASV,MAAMgQ,QAAN,EAAb;;IAEA;IACAtP,aAAS4P,WAAW5P,MAAX,EAAmB,GAAnB,EAAwB,GAAxB,CAAT;;IAEA;IACAA,aAAS4P,WAAW5P,MAAX,EAAmB,GAAnB,EAAwB,GAAxB,CAAT;;IAEA;IACAA,aAAS8P,YAAY9P,MAAZ,CAAT;;IAEA;IACA,WAAO4P,WAAW5P,MAAX,EAAmB,GAAnB,EAAwB,EAAxB,CAAP;IACH;;IAED;AACA,IAAO,SAASmQ,WAAT,GAAiC;IAAA,QAAZ7Q,KAAY,uEAAJ,EAAI;;IACpC,QAAIU,SAASV,MAAMgQ,QAAN,EAAb;;IAEA;IACAtP,aAASkQ,aAAalQ,MAAb,CAAT;;IAEA;IACA,WAAOA,OAAO0H,MAAP,CAAc,CAAd,EAAiBuI,WAAjB,KAAiCjQ,OAAOoQ,KAAP,CAAa,CAAb,CAAxC;IACH;;IAED;AACA,IAAO,SAASC,SAAT,CAAmBlD,MAAnB,EAA2B;IAC9B,QAAMmD,WAAWtK,SAASuK,sBAAT,EAAjB;IACA,QAAM1P,UAAUmF,SAASF,aAAT,CAAuB,KAAvB,CAAhB;IACAwK,aAASjL,WAAT,CAAqBxE,OAArB;IACAA,YAAQ2P,SAAR,GAAoBrD,MAApB;IACA,WAAOmD,SAASG,UAAT,CAAoBxK,SAA3B;IACH;;IAED;AACA,IAAO,SAASyK,OAAT,CAAiB7P,OAAjB,EAA0B;IAC7B,QAAM6D,UAAUsB,SAASF,aAAT,CAAuB,KAAvB,CAAhB;IACApB,YAAQW,WAAR,CAAoBxE,OAApB;IACA,WAAO6D,QAAQ8L,SAAf;IACH;;ICpFD;AACA;IAOA,IAAMG,OAAO;IACTxO,OADS,oBACkB;IAAA,YAAvByD,GAAuB,uEAAjB,EAAiB;IAAA,YAAbuI,MAAa,uEAAJ,EAAI;;IACvB,YAAIzO,GAAGkC,KAAH,CAASgE,GAAT,KAAiBlG,GAAGkC,KAAH,CAASuM,MAAT,CAArB,EAAuC;IACnC,mBAAO,EAAP;IACH;;IAED,YAAInO,SAAS2O,QAAQR,OAAOwC,IAAf,EAAqB/K,GAArB,CAAb;;IAEA,YAAIlG,GAAGkC,KAAH,CAAS5B,MAAT,CAAJ,EAAsB;IAClB,mBAAO,EAAP;IACH;;IAED,YAAMsH,UAAU;IACZ,0BAAc6G,OAAOyC,QADT;IAEZ,uBAAWzC,OAAO0C;IAFN,SAAhB;;IAKAjR,eAAO6F,OAAP,CAAe6B,OAAf,EAAwBxE,OAAxB,CAAgC,gBAAkB;IAAA;IAAA,gBAAhB8C,GAAgB;IAAA,gBAAXD,KAAW;;IAC9C3F,qBAAS4P,WAAW5P,MAAX,EAAmB4F,GAAnB,EAAwBD,KAAxB,CAAT;IACH,SAFD;;IAIA,eAAO3F,MAAP;IACH;IAtBQ,CAAb;;ICRA;AACA;IAKA;AACA,IAAO,SAAS8Q,MAAT,CAAgBzQ,KAAhB,EAAuB;IAC1B,QAAI,CAACX,GAAGW,KAAH,CAASA,KAAT,CAAL,EAAsB;IAClB,eAAOA,KAAP;IACH;;IAED,WAAOA,MAAMqF,MAAN,CAAa,UAACzB,IAAD,EAAOa,KAAP;IAAA,eAAiBzE,MAAM0Q,OAAN,CAAc9M,IAAd,MAAwBa,KAAzC;IAAA,KAAb,CAAP;IACH;;IAED;AACA,IAAO,SAASkM,OAAT,CAAiB3Q,KAAjB,EAAwBsF,KAAxB,EAA+B;IAClC,QAAI,CAACjG,GAAGW,KAAH,CAASA,KAAT,CAAD,IAAoB,CAACA,MAAMwB,MAA/B,EAAuC;IACnC,eAAO,IAAP;IACH;;IAED,WAAOxB,MAAMwO,MAAN,CAAa,UAACoC,IAAD,EAAOC,IAAP;IAAA,eAAiBhC,KAAKiC,GAAL,CAASD,OAAOvL,KAAhB,IAAyBuJ,KAAKiC,GAAL,CAASF,OAAOtL,KAAhB,CAAzB,GAAkDuL,IAAlD,GAAyDD,IAA1E;IAAA,KAAb,CAAP;IACH;;ICtBD;AACA;QAMMG;IACF,qBAAY5D,MAAZ,EAAoB;IAAA;;IAChB,aAAK6D,OAAL,GAAe7D,OAAOW,MAAP,CAAcmD,OAAd,CAAsBD,OAArC;IACA,aAAKzL,GAAL,GAAW4H,OAAOW,MAAP,CAAcmD,OAAd,CAAsB1L,GAAjC;IACH;;IAED;;;;;mCAoBIA,KAAK;IACL,gBAAI,CAACwL,QAAQpP,SAAT,IAAsB,CAAC,KAAKqP,OAAhC,EAAyC;IACrC,uBAAO,IAAP;IACH;;IAED,gBAAME,QAAQnQ,OAAOoQ,YAAP,CAAoBC,OAApB,CAA4B,KAAK7L,GAAjC,CAAd;;IAEA,gBAAIlG,GAAGkC,KAAH,CAAS2P,KAAT,CAAJ,EAAqB;IACjB,uBAAO,IAAP;IACH;;IAED,gBAAMG,OAAOlD,KAAKC,KAAL,CAAW8C,KAAX,CAAb;;IAEA,mBAAO7R,GAAGM,MAAH,CAAU4F,GAAV,KAAkBA,IAAI/D,MAAtB,GAA+B6P,KAAK9L,GAAL,CAA/B,GAA2C8L,IAAlD;IACH;;;mCAEG/R,QAAQ;IACR;IACA,gBAAI,CAACyR,QAAQpP,SAAT,IAAsB,CAAC,KAAKqP,OAAhC,EAAyC;IACrC;IACH;;IAED;IACA,gBAAI,CAAC3R,GAAGC,MAAH,CAAUA,MAAV,CAAL,EAAwB;IACpB;IACH;;IAED;IACA,gBAAI2R,UAAU,KAAKnP,GAAL,EAAd;;IAEA;IACA,gBAAIzC,GAAGkC,KAAH,CAAS0P,OAAT,CAAJ,EAAuB;IACnBA,0BAAU,EAAV;IACH;;IAED;IACA/D,mBAAO+D,OAAP,EAAgB3R,MAAhB;;IAEA;IACAyB,mBAAOoQ,YAAP,CAAoBG,OAApB,CAA4B,KAAK/L,GAAjC,EAAsC4I,KAAKE,SAAL,CAAe4C,OAAf,CAAtC;IACH;;;mCA3DsB;IACnB,gBAAI;IACA,oBAAI,EAAE,kBAAkBlQ,MAApB,CAAJ,EAAiC;IAC7B,2BAAO,KAAP;IACH;;IAED,oBAAMO,OAAO,SAAb;;IAEA;IACA;IACAP,uBAAOoQ,YAAP,CAAoBG,OAApB,CAA4BhQ,IAA5B,EAAkCA,IAAlC;IACAP,uBAAOoQ,YAAP,CAAoBI,UAApB,CAA+BjQ,IAA/B;;IAEA,uBAAO,IAAP;IACH,aAbD,CAaE,OAAOW,CAAP,EAAU;IACR,uBAAO,KAAP;IACH;IACJ;;;;;IC/BL;IACA;IACA;IACA;;AAEA,IAAe,SAASuP,KAAT,CAAenQ,GAAf,EAA2C;IAAA,QAAvBoQ,YAAuB,uEAAR,MAAQ;;IACtD,WAAO,IAAI3N,OAAJ,CAAY,UAACE,OAAD,EAAU0N,MAAV,EAAqB;IACpC,YAAI;IACA,gBAAMC,UAAU,IAAIC,cAAJ,EAAhB;;IAEA;IACA,gBAAI,EAAE,qBAAqBD,OAAvB,CAAJ,EAAqC;IACjC;IACH;;IAEDA,oBAAQ5P,gBAAR,CAAyB,MAAzB,EAAiC,YAAM;IACnC,oBAAI0P,iBAAiB,MAArB,EAA6B;IACzB,wBAAI;IACAzN,gCAAQmK,KAAKC,KAAL,CAAWuD,QAAQE,YAAnB,CAAR;IACH,qBAFD,CAEE,OAAO5P,CAAP,EAAU;IACR+B,gCAAQ2N,QAAQE,YAAhB;IACH;IACJ,iBAND,MAMO;IACH7N,4BAAQ2N,QAAQG,QAAhB;IACH;IACJ,aAVD;;IAYAH,oBAAQ5P,gBAAR,CAAyB,OAAzB,EAAkC,YAAM;IACpC,sBAAM,IAAIgQ,KAAJ,CAAUJ,QAAQK,MAAlB,CAAN;IACH,aAFD;;IAIAL,oBAAQM,IAAR,CAAa,KAAb,EAAoB5Q,GAApB,EAAyB,IAAzB;;IAEA;IACAsQ,oBAAQF,YAAR,GAAuBA,YAAvB;;IAEAE,oBAAQO,IAAR;IACH,SA9BD,CA8BE,OAAOjQ,CAAP,EAAU;IACRyP,mBAAOzP,CAAP;IACH;IACJ,KAlCM,CAAP;IAmCH;;ICzCD;AACA;IAOA;AACA,IAAe,SAASkQ,UAAT,CAAoB9Q,GAApB,EAAyBkG,EAAzB,EAA6B;IACxC,QAAI,CAAClI,GAAGM,MAAH,CAAU0B,GAAV,CAAL,EAAqB;IACjB;IACH;;IAED,QAAMuN,SAAS,OAAf;IACA,QAAMwD,QAAQ/S,GAAGM,MAAH,CAAU4H,EAAV,CAAd;IACA,QAAI8K,WAAW,KAAf;;IAEA,QAAMC,SAAS,SAATA,MAAS;IAAA,eAAM3M,SAAS4M,cAAT,CAAwBhL,EAAxB,MAAgC,IAAtC;IAAA,KAAf;;IAEA,QAAMiL,SAAS,SAATA,MAAS,CAACtO,SAAD,EAAYuO,IAAZ,EAAqB;IAChCvO,kBAAUiM,SAAV,GAAsBsC,IAAtB;;IAEA;IACA,YAAIL,SAASE,QAAb,EAAuB;IACnB;IACH;;IAED;IACA3M,iBAASsD,IAAT,CAAcyJ,qBAAd,CAAoC,YAApC,EAAkDxO,SAAlD;IACH,KAVD;;IAYA;IACA,QAAI,CAACkO,KAAD,IAAU,CAACE,QAAf,EAAyB;IACrB,YAAMK,aAAa5B,QAAQpP,SAA3B;;IAEA;IACA,YAAMuC,YAAYyB,SAASF,aAAT,CAAuB,KAAvB,CAAlB;IACAvB,kBAAUsB,YAAV,CAAuB,QAAvB,EAAiC,EAAjC;;IAEA,YAAI4M,KAAJ,EAAW;IACPlO,sBAAUsB,YAAV,CAAuB,IAAvB,EAA6B+B,EAA7B;IACH;;IAED;IACA,YAAIoL,UAAJ,EAAgB;IACZ,gBAAMC,SAAS7R,OAAOoQ,YAAP,CAAoBC,OAApB,CAA+BxC,MAA/B,SAAyCrH,EAAzC,CAAf;IACA8K,uBAAWO,WAAW,IAAtB;;IAEA,gBAAIP,QAAJ,EAAc;IACV,oBAAMI,OAAOtE,KAAKC,KAAL,CAAWwE,MAAX,CAAb;IACAJ,uBAAOtO,SAAP,EAAkBuO,KAAKI,OAAvB;IACH;IACJ;;IAED;IACArB,cAAMnQ,GAAN,EACK8C,IADL,CACU,kBAAU;IACZ,gBAAI9E,GAAGkC,KAAH,CAASuR,MAAT,CAAJ,EAAsB;IAClB;IACH;;IAED,gBAAIH,UAAJ,EAAgB;IACZ5R,uBAAOoQ,YAAP,CAAoBG,OAApB,CACO1C,MADP,SACiBrH,EADjB,EAEI4G,KAAKE,SAAL,CAAe;IACXwE,6BAASC;IADE,iBAAf,CAFJ;IAMH;;IAEDN,mBAAOtO,SAAP,EAAkB4O,MAAlB;IACH,SAhBL,EAiBKC,KAjBL,CAiBW,YAAM,EAjBjB;IAkBH;IACJ;;IC3ED;AACA;IAKA;AACA,IAAO,IAAMC,WAAW,SAAXA,QAAW;IAAA,WAASC,SAAU3N,QAAQ,EAAR,GAAa,EAAd,GAAoB,EAA7B,EAAiC,EAAjC,CAAT;IAAA,CAAjB;AACP,IAAO,IAAM4N,aAAa,SAAbA,UAAa;IAAA,WAASD,SAAU3N,QAAQ,EAAT,GAAe,EAAxB,EAA4B,EAA5B,CAAT;IAAA,CAAnB;AACP,IAAO,IAAM6N,aAAa,SAAbA,UAAa;IAAA,WAASF,SAAS3N,QAAQ,EAAjB,EAAqB,EAArB,CAAT;IAAA,CAAnB;;IAEP;AACA,IAAO,SAAS8N,UAAT,GAAsE;IAAA,QAAlDC,IAAkD,uEAA3C,CAA2C;IAAA,QAAxCC,YAAwC,uEAAzB,KAAyB;IAAA,QAAlBC,QAAkB,uEAAP,KAAO;;IACzE;IACA,QAAI,CAAClU,GAAGG,MAAH,CAAU6T,IAAV,CAAL,EAAsB;IAClB,eAAOD,WAAW,IAAX,EAAiBE,YAAjB,EAA+BC,QAA/B,CAAP;IACH;;IAED;IACA,QAAMvE,SAAS,SAATA,MAAS;IAAA,eAAS,OAAI1J,KAAJ,EAAYyK,KAAZ,CAAkB,CAAC,CAAnB,CAAT;IAAA,KAAf;;IAEA;IACA,QAAIyD,QAAQR,SAASK,IAAT,CAAZ;IACA,QAAMI,OAAOP,WAAWG,IAAX,CAAb;IACA,QAAMK,OAAOP,WAAWE,IAAX,CAAb;;IAEA;IACA,QAAIC,gBAAgBE,QAAQ,CAA5B,EAA+B;IAC3BA,gBAAWA,KAAX;IACH,KAFD,MAEO;IACHA,gBAAQ,EAAR;IACH;;IAED;IACA,iBAAUD,YAAYF,OAAO,CAAnB,GAAuB,GAAvB,GAA6B,EAAvC,IAA4CG,KAA5C,GAAoDxE,OAAOyE,IAAP,CAApD,SAAoEzE,OAAO0E,IAAP,CAApE;IACH;;ICnCD;AACA;IA8BA;IACA,IAAMC,WAAW;IACb;IACAC,cAFa,wBAEA;IACT,YAAMvS,MAAM,IAAIwS,GAAJ,CAAQ,KAAK/F,MAAL,CAAYgG,OAApB,EAA6B/S,OAAOgT,QAApC,CAAZ;IACA,YAAMC,OAAO3S,IAAI4S,IAAJ,KAAalT,OAAOgT,QAAP,CAAgBE,IAA7B,IAAsC5J,QAAQC,IAAR,IAAgB,CAACvJ,OAAOmT,aAA3E;;IAEA,eAAO;IACH7S,iBAAK,KAAKyM,MAAL,CAAYgG,OADd;IAEHE;IAFG,SAAP;IAIH,KAVY;;;IAYb;IACAG,gBAba,0BAaE;IACX,YAAI;IACA,iBAAKlQ,QAAL,CAAc0P,QAAd,GAAyB/K,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBT,QAAtB,CAA+BtP,OAArD,CAAzB;;IAEA;IACA,iBAAKJ,QAAL,CAAcoQ,OAAd,GAAwB;IACpB3G,sBAAM/E,YAAY7F,IAAZ,CAAiB,IAAjB,EAAuB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8B3G,IAArD,CADc;IAEpB4G,uBAAO1L,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8BC,KAApD,CAFa;IAGpBC,yBAAS3L,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8BE,OAApD,CAHW;IAIpBC,wBAAQ5L,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8BG,MAApD,CAJY;IAKpBC,6BAAa7L,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8BI,WAApD,CALO;IAMpBC,sBAAM9L,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8BK,IAApD,CANc;IAOpBhJ,qBAAK9C,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8B3I,GAApD,CAPe;IAQpBE,yBAAShD,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8BzI,OAApD,CARW;IASpB+I,0BAAU/L,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8BM,QAApD,CATU;IAUpBC,0BAAUhM,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8BO,QAApD,CAVU;IAWpBC,4BAAYjM,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8BQ,UAApD;IAXQ,aAAxB;;IAcA;IACA,iBAAK5Q,QAAL,CAAc6Q,QAAd,GAAyBlM,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBU,QAA5C,CAAzB;;IAEA;IACA,iBAAK7Q,QAAL,CAAc8Q,MAAd,GAAuB;IACnBC,sBAAMpM,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBW,MAAtB,CAA6BC,IAAnD,CADa;IAEnBC,wBAAQrM,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBW,MAAtB,CAA6BE,MAAnD;IAFW,aAAvB;;IAKA;IACA,iBAAKhR,QAAL,CAAciR,OAAd,GAAwB;IACpBC,wBAAQvM,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBc,OAAtB,CAA8BC,MAApD,CADY;IAEpB9H,6BAAazE,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBc,OAAtB,CAA8B7H,WAApD,CAFO;IAGpB+H,0BAAUxM,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,KAAKgL,MAAL,CAAYsG,SAAZ,CAAsBc,OAAtB,CAA8BE,QAApD;IAHU,aAAxB;;IAMA;IACA,gBAAI/V,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAc6Q,QAAzB,CAAJ,EAAwC;IACpC,qBAAK7Q,QAAL,CAAciR,OAAd,CAAsBG,WAAtB,GAAoC,KAAKpR,QAAL,CAAc6Q,QAAd,CAAuBjM,aAAvB,OAC5B,KAAKiF,MAAL,CAAYwH,UAAZ,CAAuBC,OADK,CAApC;IAGH;;IAED,mBAAO,IAAP;IACH,SA1CD,CA0CE,OAAOC,KAAP,EAAc;IACZ;IACA,iBAAKxH,KAAL,CAAWyH,IAAX,CAAgB,iEAAhB,EAAmFD,KAAnF;;IAEA;IACA,iBAAKE,oBAAL,CAA0B,IAA1B;;IAEA,mBAAO,KAAP;IACH;IACJ,KAjEY;;;IAmEb;IACAC,cApEa,sBAoEF/S,IApEE,EAoEIuC,UApEJ,EAoEgB;IACzB,YAAMyQ,YAAY,4BAAlB;IACA,YAAM9B,UAAUH,SAASC,UAAT,CAAoB9Q,IAApB,CAAyB,IAAzB,CAAhB;IACA,YAAM+S,YAAc,CAAC/B,QAAQE,IAAT,GAAgBF,QAAQzS,GAAxB,GAA8B,EAA5C,UAAkD,KAAKyM,MAAL,CAAYgI,UAApE;;IAEA;IACA,YAAMC,OAAOpQ,SAASqQ,eAAT,CAAyBJ,SAAzB,EAAoC,KAApC,CAAb;IACA1Q,sBACI6Q,IADJ,EAEI7I,OAAO/H,UAAP,EAAmB;IACf8Q,kBAAM,cADS;IAEf9M,uBAAW;IAFI,SAAnB,CAFJ;;IAQA;IACA,YAAM+M,MAAMvQ,SAASqQ,eAAT,CAAyBJ,SAAzB,EAAoC,KAApC,CAAZ;IACA,YAAMrH,OAAUsH,QAAV,SAAsBjT,IAA5B;;IAEA;IACA;IACA;IACA,YAAI,UAAUsT,GAAd,EAAmB;IACfA,gBAAIC,cAAJ,CAAmB,8BAAnB,EAAmD,MAAnD,EAA2D5H,IAA3D;IACH,SAFD,MAEO;IACH2H,gBAAIC,cAAJ,CAAmB,8BAAnB,EAAmD,YAAnD,EAAiE5H,IAAjE;IACH;;IAED;IACAwH,aAAK/Q,WAAL,CAAiBkR,GAAjB;;IAEA,eAAOH,IAAP;IACH,KApGY;;;IAsGb;IACAK,eAvGa,uBAuGDxT,IAvGC,EAuGgB;IAAA,YAAXyT,IAAW,uEAAJ,EAAI;;IACzB;IACA,YAAMC,aAAa;IACf5K,iBAAK,KADU;IAEfE,qBAAS;IAFM,SAAnB;IAIA,YAAMlG,OAAO4Q,WAAW1T,IAAX,KAAoB0N,KAAKxO,GAAL,CAASc,IAAT,EAAe,KAAKkL,MAApB,CAAjC;;IAEA,YAAM3I,aAAa5F,OAAOiE,MAAP,CAAc,EAAd,EAAkB6S,IAAlB,EAAwB;IACvC/O,mBAAO,CAAC+O,KAAK/O,KAAN,EAAa,KAAKwG,MAAL,CAAYwH,UAAZ,CAAuB7N,MAApC,EAA4CpC,MAA5C,CAAmDjG,OAAnD,EAA4DmX,IAA5D,CAAiE,GAAjE;IADgC,SAAxB,CAAnB;IAGA,eAAO9Q,cAAc,MAAd,EAAsBN,UAAtB,EAAkCO,IAAlC,CAAP;IACH,KAnHY;;;IAqHb;IACA8Q,eAtHa,uBAsHD9Q,IAtHC,EAsHK;IACd,YAAIrG,GAAGkC,KAAH,CAASmE,IAAT,CAAJ,EAAoB;IAChB,mBAAO,IAAP;IACH;;IAED,YAAM+Q,QAAQhR,cAAc,MAAd,EAAsB;IAChC6B,mBAAO,KAAKwG,MAAL,CAAYwH,UAAZ,CAAuBoB,IAAvB,CAA4BpR;IADH,SAAtB,CAAd;;IAIAmR,cAAMzR,WAAN,CACIS,cACI,MADJ,EAEI;IACI6B,mBAAO,KAAKwG,MAAL,CAAYwH,UAAZ,CAAuBoB,IAAvB,CAA4BD;IADvC,SAFJ,EAKI/Q,IALJ,CADJ;;IAUA,eAAO+Q,KAAP;IACH,KA1IY;;;IA4Ib;IACAE,gBA7Ia,wBA6IAC,UA7IA,EA6IYP,IA7IZ,EA6IkB;IAC3B,YAAMQ,SAASpR,cAAc,QAAd,CAAf;IACA,YAAMN,aAAa5F,OAAOiE,MAAP,CAAc,EAAd,EAAkB6S,IAAlB,CAAnB;IACA,YAAIzT,OAAOkN,YAAY8G,UAAZ,CAAX;;IAEA,YAAIxU,SAAS,KAAb;IACA,YAAI0U,cAAJ;IACA,YAAIf,aAAJ;IACA,YAAIgB,qBAAJ;IACA,YAAIC,oBAAJ;;IAEA,YAAI,EAAE,UAAU7R,UAAZ,CAAJ,EAA6B;IACzBA,uBAAWvC,IAAX,GAAkB,QAAlB;IACH;;IAED,YAAI,WAAWuC,UAAf,EAA2B;IACvB,gBAAIA,WAAWmC,KAAX,CAAiBiB,QAAjB,CAA0B,KAAKuF,MAAL,CAAYwH,UAAZ,CAAuB2B,OAAjD,CAAJ,EAA+D;IAC3D9R,2BAAWmC,KAAX,UAAwB,KAAKwG,MAAL,CAAYwH,UAAZ,CAAuB2B,OAA/C;IACH;IACJ,SAJD,MAIO;IACH9R,uBAAWmC,KAAX,GAAmB,KAAKwG,MAAL,CAAYwH,UAAZ,CAAuB2B,OAA1C;IACH;;IAED;IACA,gBAAQL,UAAR;IACI,iBAAK,MAAL;IACIxU,yBAAS,IAAT;IACA0U,wBAAQ,MAAR;IACAC,+BAAe,OAAf;IACAhB,uBAAO,MAAP;IACAiB,8BAAc,OAAd;IACA;;IAEJ,iBAAK,MAAL;IACI5U,yBAAS,IAAT;IACA0U,wBAAQ,MAAR;IACAC,+BAAe,QAAf;IACAhB,uBAAO,QAAP;IACAiB,8BAAc,OAAd;IACA;;IAEJ,iBAAK,UAAL;IACI5U,yBAAS,IAAT;IACA0U,wBAAQ,gBAAR;IACAC,+BAAe,iBAAf;IACAhB,uBAAO,cAAP;IACAiB,8BAAc,aAAd;IACA;;IAEJ,iBAAK,YAAL;IACI5U,yBAAS,IAAT;IACA0U,wBAAQ,iBAAR;IACAC,+BAAe,gBAAf;IACAhB,uBAAO,kBAAP;IACAiB,8BAAc,iBAAd;IACA;;IAEJ,iBAAK,YAAL;IACI7R,2BAAWmC,KAAX,UAAwB,KAAKwG,MAAL,CAAYwH,UAAZ,CAAuB2B,OAA/C;IACArU,uBAAO,MAAP;IACAkU,wBAAQ,MAAR;IACAf,uBAAO,MAAP;IACA;;IAEJ;IACIe,wBAAQlU,IAAR;IACAmT,uBAAOa,UAAP;IA1CR;;IA6CA;IACA,YAAIxU,MAAJ,EAAY;IACR;IACAyU,mBAAO7R,WAAP,CAAmB2O,SAASgC,UAAT,CAAoB7S,IAApB,CAAyB,IAAzB,EAA+BkU,WAA/B,EAA4C,EAAE1P,OAAO,eAAT,EAA5C,CAAnB;IACAuP,mBAAO7R,WAAP,CAAmB2O,SAASgC,UAAT,CAAoB7S,IAApB,CAAyB,IAAzB,EAA+BiT,IAA/B,EAAqC,EAAEzO,OAAO,mBAAT,EAArC,CAAnB;;IAEA;IACAuP,mBAAO7R,WAAP,CAAmB2O,SAASyC,WAAT,CAAqBtT,IAArB,CAA0B,IAA1B,EAAgCiU,YAAhC,EAA8C,EAAEzP,OAAO,gBAAT,EAA9C,CAAnB;IACAuP,mBAAO7R,WAAP,CAAmB2O,SAASyC,WAAT,CAAqBtT,IAArB,CAA0B,IAA1B,EAAgCgU,KAAhC,EAAuC,EAAExP,OAAO,oBAAT,EAAvC,CAAnB;IACH,SARD,MAQO;IACHuP,mBAAO7R,WAAP,CAAmB2O,SAASgC,UAAT,CAAoB7S,IAApB,CAAyB,IAAzB,EAA+BiT,IAA/B,CAAnB;IACAc,mBAAO7R,WAAP,CAAmB2O,SAASyC,WAAT,CAAqBtT,IAArB,CAA0B,IAA1B,EAAgCgU,KAAhC,CAAnB;IACH;;IAED;IACA5J,eAAO/H,UAAP,EAAmBsB,0BAA0B,KAAKqH,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8BzR,IAA9B,CAA1B,EAA+DuC,UAA/D,CAAnB;;IAEAD,sBAAc2R,MAAd,EAAsB1R,UAAtB;;IAEA;IACA,YAAIvC,SAAS,MAAb,EAAqB;IACjB,gBAAI,CAACvD,GAAGW,KAAH,CAAS,KAAKiE,QAAL,CAAcoQ,OAAd,CAAsBzR,IAAtB,CAAT,CAAL,EAA4C;IACxC,qBAAKqB,QAAL,CAAcoQ,OAAd,CAAsBzR,IAAtB,IAA8B,EAA9B;IACH;;IAED,iBAAKqB,QAAL,CAAcoQ,OAAd,CAAsBzR,IAAtB,EAA4BD,IAA5B,CAAiCkU,MAAjC;IACH,SAND,MAMO;IACH,iBAAK5S,QAAL,CAAcoQ,OAAd,CAAsBzR,IAAtB,IAA8BiU,MAA9B;IACH;;IAED;IACA,YAAM7P,YAAY,KAAK8G,MAAL,CAAYwH,UAAZ,CAAuB4B,cAAzC;IACA3X,eAAOsC,cAAP,CAAsBgV,MAAtB,EAA8B,SAA9B,EAAyC;IACrCM,wBAAY,IADyB;IAErCrV,eAFqC,oBAE/B;IACF,uBAAOoG,SAAS2O,MAAT,EAAiB7P,SAAjB,CAAP;IACH,aAJoC;IAKrCoG,eALqC,oBAKhB;IAAA,oBAAjBgK,OAAiB,uEAAP,KAAO;;IACjBvP,4BAAYgP,MAAZ,EAAoB7P,SAApB,EAA+BoQ,OAA/B;IACH;IAPoC,SAAzC;;IAUA,eAAOP,MAAP;IACH,KA7PY;;;IA+Pb;IACAQ,eAhQa,uBAgQDzU,IAhQC,EAgQKuC,UAhQL,EAgQiB;IAC1B;IACA,YAAMlG,QAAQwG,cACV,OADU,EAEVyH,OACIzG,0BAA0B,KAAKqH,MAAL,CAAYsG,SAAZ,CAAsBW,MAAtB,CAA6BnS,IAA7B,CAA1B,CADJ,EAEI;IACIA,kBAAM,OADV;IAEI0U,iBAAK,CAFT;IAGIjI,iBAAK,GAHT;IAIIkI,kBAAM,IAJV;IAKIjS,mBAAO,CALX;IAMIkS,0BAAc,KANlB;IAOI;IACAvB,kBAAM,QARV;IASI,0BAAc3F,KAAKxO,GAAL,CAASc,IAAT,EAAe,KAAKkL,MAApB,CATlB;IAUI,6BAAiB,CAVrB;IAWI,6BAAiB,GAXrB;IAYI,6BAAiB;IAZrB,SAFJ,EAgBI3I,UAhBJ,CAFU,CAAd;;IAsBA,aAAKlB,QAAL,CAAc8Q,MAAd,CAAqBnS,IAArB,IAA6B3D,KAA7B;;IAEA;IACA0U,iBAAS8D,eAAT,CAAyB3U,IAAzB,CAA8B,IAA9B,EAAoC7D,KAApC;;IAEA,eAAOA,KAAP;IACH,KA9RY;;;IAgSb;IACAyY,kBAjSa,0BAiSE9U,IAjSF,EAiSQuC,UAjSR,EAiSoB;IAC7B,YAAM2P,WAAWrP,cACb,UADa,EAEbyH,OACIzG,0BAA0B,KAAKqH,MAAL,CAAYsG,SAAZ,CAAsBc,OAAtB,CAA8BtS,IAA9B,CAA1B,CADJ,EAEI;IACI0U,iBAAK,CADT;IAEIjI,iBAAK,GAFT;IAGI/J,mBAAO,CAHX;IAII2Q,kBAAM,cAJV;IAKI,2BAAe;IALnB,SAFJ,EASI9Q,UATJ,CAFa,CAAjB;;IAeA;IACA,YAAIvC,SAAS,QAAb,EAAuB;IACnBkS,qBAAS9P,WAAT,CAAqBS,cAAc,MAAd,EAAsB,IAAtB,EAA4B,GAA5B,CAArB;;IAEA,gBAAMkS,YAAY;IACdC,wBAAQ,QADM;IAEdzC,wBAAQ;IAFM,cAGhBvS,IAHgB,CAAlB;IAIA,gBAAMiV,SAASF,YAAYrH,KAAKxO,GAAL,CAAS6V,SAAT,EAAoB,KAAK7J,MAAzB,CAAZ,GAA+C,EAA9D;;IAEAgH,qBAASlP,SAAT,UAA0BiS,OAAOjI,WAAP,EAA1B;IACH;;IAED,aAAK3L,QAAL,CAAciR,OAAd,CAAsBtS,IAAtB,IAA8BkS,QAA9B;;IAEA,eAAOA,QAAP;IACH,KAjUY;;;IAmUb;IACAgD,cApUa,sBAoUFlV,IApUE,EAoUI;IACb,YAAMuC,aAAasB,0BAA0B,KAAKqH,MAAL,CAAYsG,SAAZ,CAAsBc,OAAtB,CAA8BtS,IAA9B,CAA1B,CAAnB;;IAEA,YAAMsB,YAAYuB,cACd,KADc,EAEdyH,OAAO/H,UAAP,EAAmB;IACfmC,mCAAqBnC,WAAWmC,KADjB;IAEf,0BAAcgJ,KAAKxO,GAAL,CAASc,IAAT,EAAe,KAAKkL,MAApB;IAFC,SAAnB,CAFc,EAMd,OANc,CAAlB;;IASA;IACA,aAAK7J,QAAL,CAAciR,OAAd,CAAsBtS,IAAtB,IAA8BsB,SAA9B;;IAEA,eAAOA,SAAP;IACH,KApVY;;;IAsVb;IACA6T,kBAvVa,gCAuV+D;IAAA,YAA3DzS,KAA2D,QAA3DA,KAA2D;IAAA,YAApD0S,IAAoD,QAApDA,IAAoD;IAAA,YAA9CpV,IAA8C,QAA9CA,IAA8C;IAAA,YAAxC4N,KAAwC,QAAxCA,KAAwC;IAAA,8BAAjCiG,KAAiC;IAAA,YAAjCA,KAAiC,8BAAzB,IAAyB;IAAA,gCAAnBwB,OAAmB;IAAA,YAAnBA,OAAmB,gCAAT,KAAS;;IACxE,YAAMrU,OAAO6B,cAAc,IAAd,CAAb;;IAEA,YAAMqR,QAAQrR,cAAc,OAAd,EAAuB;IACjC6B,mBAAO,KAAKwG,MAAL,CAAYwH,UAAZ,CAAuB2B;IADG,SAAvB,CAAd;;IAIA,YAAMiB,QAAQzS,cACV,OADU,EAEVyH,OAAOzG,0BAA0B,KAAKqH,MAAL,CAAYsG,SAAZ,CAAsBW,MAAtB,CAA6BnS,IAA7B,CAA1B,CAAP,EAAsE;IAClEA,kBAAM,OAD4D;IAElEuV,4BAAcvV,IAFoD;IAGlE0C,wBAHkE;IAIlE2S,4BAJkE;IAKlE3Q,mBAAO;IAL2D,SAAtE,CAFU,CAAd;;IAWA,YAAM8Q,OAAO3S,cAAc,MAAd,EAAsB,EAAEgC,QAAQ,EAAV,EAAtB,CAAb;;IAEAqP,cAAM9R,WAAN,CAAkBkT,KAAlB;IACApB,cAAM9R,WAAN,CAAkBoT,IAAlB;IACAtB,cAAMuB,kBAAN,CAAyB,WAAzB,EAAsC7H,KAAtC;;IAEA,YAAInR,GAAGmB,OAAH,CAAWiW,KAAX,CAAJ,EAAuB;IACnBK,kBAAM9R,WAAN,CAAkByR,KAAlB;IACH;;IAED7S,aAAKoB,WAAL,CAAiB8R,KAAjB;IACAkB,aAAKhT,WAAL,CAAiBpB,IAAjB;IACH,KArXY;;;IAuXb;IACAwP,cAxXa,2BAwX0B;IAAA,YAA5BC,IAA4B,uEAArB,CAAqB;IAAA,YAAlBE,QAAkB,uEAAP,KAAO;;IACnC;IACA,YAAI,CAAClU,GAAGG,MAAH,CAAU6T,IAAV,CAAL,EAAsB;IAClB,mBAAOA,IAAP;IACH;;IAED;IACA,YAAMiF,aAAatF,SAAS,KAAKoC,QAAd,IAA0B,CAA7C;;IAEA,eAAOhC,WAAWC,IAAX,EAAiBiF,UAAjB,EAA6B/E,QAA7B,CAAP;IACH,KAlYY;;;IAoYb;IACAgF,qBArYa,+BAqYgD;IAAA,YAA3CzS,MAA2C,uEAAlC,IAAkC;IAAA,YAA5BuN,IAA4B,uEAArB,CAAqB;IAAA,YAAlBE,QAAkB,uEAAP,KAAO;;IACzD;IACA,YAAI,CAAClU,GAAGmB,OAAH,CAAWsF,MAAX,CAAD,IAAuB,CAACzG,GAAGG,MAAH,CAAU6T,IAAV,CAA5B,EAA6C;IACzC;IACH;;IAED;IACAvN,eAAOF,SAAP,GAAmB+N,SAASP,UAAT,CAAoBC,IAApB,EAA0BE,QAA1B,CAAnB;IACH,KA7YY;;;IA+Yb;IACAiF,gBAhZa,0BAgZE;IACX,YAAI,CAAC,KAAK7W,SAAL,CAAe6J,EAApB,EAAwB;IACpB;IACH;;IAED;IACA,YAAInM,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAc8Q,MAAd,CAAqBE,MAAhC,CAAJ,EAA6C;IACzCtB,qBAAS8E,QAAT,CAAkB3V,IAAlB,CAAuB,IAAvB,EAA6B,KAAKmB,QAAL,CAAc8Q,MAAd,CAAqBE,MAAlD,EAA0D,KAAKyD,KAAL,GAAa,CAAb,GAAiB,KAAKzD,MAAhF;IACH;;IAED;IACA,YAAI5V,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAcoQ,OAAd,CAAsBK,IAAjC,CAAJ,EAA4C;IACxC,iBAAKzQ,QAAL,CAAcoQ,OAAd,CAAsBK,IAAtB,CAA2B0C,OAA3B,GAAqC,KAAKsB,KAAL,IAAc,KAAKzD,MAAL,KAAgB,CAAnE;IACH;IACJ,KA9ZY;;;IAgab;IACAwD,YAjaa,oBAiaJ3S,MAjaI,EAiae;IAAA,YAAXR,KAAW,uEAAH,CAAG;;IACxB,YAAI,CAACjG,GAAGmB,OAAH,CAAWsF,MAAX,CAAL,EAAyB;IACrB;IACH;;IAED;IACAA,eAAOR,KAAP,GAAeA,KAAf;;IAEA;IACAqO,iBAAS8D,eAAT,CAAyB3U,IAAzB,CAA8B,IAA9B,EAAoCgD,MAApC;IACH,KA3aY;;;IA6ab;IACA6S,kBA9aa,0BA8aE/X,KA9aF,EA8aS;IAAA;;IAClB,YAAI,CAAC,KAAKe,SAAL,CAAe6J,EAAhB,IAAsB,CAACnM,GAAGuB,KAAH,CAASA,KAAT,CAA3B,EAA4C;IACxC;IACH;;IAED,YAAI0E,QAAQ,CAAZ;;IAEA,YAAMsT,cAAc,SAAdA,WAAc,CAAC9S,MAAD,EAAS7G,KAAT,EAAmB;IACnC,gBAAMqG,QAAQjG,GAAGG,MAAH,CAAUP,KAAV,IAAmBA,KAAnB,GAA2B,CAAzC;IACA,gBAAM6V,WAAWzV,GAAGmB,OAAH,CAAWsF,MAAX,IAAqBA,MAArB,GAA8B,MAAK7B,QAAL,CAAciR,OAAd,CAAsBC,MAArE;;IAEA;IACA,gBAAI9V,GAAGmB,OAAH,CAAWsU,QAAX,CAAJ,EAA0B;IACtBA,yBAASxP,KAAT,GAAiBA,KAAjB;;IAEA;IACA,oBAAMwR,QAAQhC,SAAS+D,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,CAAd;IACA,oBAAIxZ,GAAGmB,OAAH,CAAWsW,KAAX,CAAJ,EAAuB;IACnBA,0BAAM3Q,UAAN,CAAiB,CAAjB,EAAoB2S,SAApB,GAAgCxT,KAAhC;IACH;IACJ;IACJ,SAdD;;IAgBA,YAAI1E,KAAJ,EAAW;IACP,oBAAQA,MAAMgC,IAAd;IACI;IACA,qBAAK,YAAL;IACA,qBAAK,SAAL;IACA,qBAAK,QAAL;IACI0C,4BAAQ6J,cAAc,KAAK9B,WAAnB,EAAgC,KAAK+H,QAArC,CAAR;;IAEA;IACA,wBAAIxU,MAAMgC,IAAN,KAAe,YAAnB,EAAiC;IAC7B+Q,iCAAS8E,QAAT,CAAkB3V,IAAlB,CAAuB,IAAvB,EAA6B,KAAKmB,QAAL,CAAc8Q,MAAd,CAAqBC,IAAlD,EAAwD1P,KAAxD;IACH;;IAED;;IAEJ;IACA,qBAAK,SAAL;IACA,qBAAK,UAAL;IACIsT,gCAAY,KAAK3U,QAAL,CAAciR,OAAd,CAAsBC,MAAlC,EAA0C,KAAK4D,QAAL,GAAgB,GAA1D;;IAEA;;IAEJ;IACI;IAtBR;IAwBH;IACJ,KA/dY;;;IAieb;IACAtB,mBAlea,2BAkeG3R,MAleH,EAkeW;IACpB;IACA,YAAMwG,QAAQjN,GAAGuB,KAAH,CAASkF,MAAT,IAAmBA,OAAOA,MAA1B,GAAmCA,MAAjD;;IAEA;IACA,YAAI,CAACzG,GAAGmB,OAAH,CAAW8L,KAAX,CAAD,IAAsBA,MAAMS,YAAN,CAAmB,MAAnB,MAA+B,OAAzD,EAAkE;IAC9D;IACH;;IAED;IACA,YAAI5E,QAAQmE,KAAR,EAAe,KAAKwB,MAAL,CAAYsG,SAAZ,CAAsBW,MAAtB,CAA6BC,IAA5C,CAAJ,EAAuD;IACnD1I,kBAAM9G,YAAN,CAAmB,eAAnB,EAAoC,KAAK6H,WAAzC;IACA,gBAAMA,cAAcsG,SAASP,UAAT,CAAoB,KAAK/F,WAAzB,CAApB;IACA,gBAAM+H,WAAWzB,SAASP,UAAT,CAAoB,KAAKgC,QAAzB,CAAjB;IACA,gBAAMpG,YAASsB,KAAKxO,GAAL,CAAS,WAAT,EAAsB,KAAKgM,MAA3B,CAAf;IACAxB,kBAAM9G,YAAN,CACI,gBADJ,EAEIwJ,UAAO/H,OAAP,CAAe,eAAf,EAAgCoG,WAAhC,EAA6CpG,OAA7C,CAAqD,YAArD,EAAmEmO,QAAnE,CAFJ;IAIH,SATD,MASO,IAAIjN,QAAQmE,KAAR,EAAe,KAAKwB,MAAL,CAAYsG,SAAZ,CAAsBW,MAAtB,CAA6BE,MAA5C,CAAJ,EAAyD;IAC5D,gBAAM+D,UAAU1M,MAAMhH,KAAN,GAAc,GAA9B;IACAgH,kBAAM9G,YAAN,CAAmB,eAAnB,EAAoCwT,OAApC;IACA1M,kBAAM9G,YAAN,CAAmB,gBAAnB,EAAwCwT,OAAxC;IACH,SAJM,MAIA;IACH1M,kBAAM9G,YAAN,CAAmB,eAAnB,EAAoC8G,MAAMhH,KAA1C;IACH;;IAED;IACA,YAAI,CAAC+E,QAAQG,QAAb,EAAuB;IACnB;IACH;;IAED;IACA8B,cAAMrC,KAAN,CAAYgP,WAAZ,CAAwB,SAAxB,EAAsC3M,MAAMhH,KAAN,GAAcgH,MAAM+C,GAApB,GAA0B,GAAhE;IACH,KApgBY;;;IAsgBb;IACA6J,qBAvgBa,6BAugBKtY,KAvgBL,EAugBY;IAAA;;IACrB;IACA,YACI,CAAC,KAAKkN,MAAL,CAAYqL,QAAZ,CAAqBnE,IAAtB,IACA,CAAC3V,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAc8Q,MAAd,CAAqBC,IAAhC,CADD,IAEA,CAAC3V,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAciR,OAAd,CAAsBG,WAAjC,CAFD,IAGA,KAAKD,QAAL,KAAkB,CAJtB,EAKE;IACE;IACH;;IAED;IACA,YAAI4D,UAAU,CAAd;IACA,YAAMI,aAAa,KAAKnV,QAAL,CAAc6Q,QAAd,CAAuBuE,qBAAvB,EAAnB;IACA,YAAMC,UAAa,KAAKxL,MAAL,CAAYwH,UAAZ,CAAuBC,OAApC,cAAN;;IAEA,YAAMnT,SAAS,yBAAU;IACrByF,wBAAY,OAAK5D,QAAL,CAAciR,OAAd,CAAsBG,WAAlC,EAA+CiE,OAA/C,EAAwDlX,OAAxD;IACH,SAFD;;IAIA;IACA,YAAI,KAAKmK,KAAT,EAAgB;IACZnK,mBAAO,KAAP;IACA;IACH;;IAED;IACA,YAAI/C,GAAGuB,KAAH,CAASA,KAAT,CAAJ,EAAqB;IACjBoY,sBAAU,MAAMI,WAAWG,KAAjB,IAA0B3Y,MAAM4Y,KAAN,GAAcJ,WAAWK,IAAnD,CAAV;IACH,SAFD,MAEO,IAAIvR,SAAS,KAAKjE,QAAL,CAAciR,OAAd,CAAsBG,WAA/B,EAA4CiE,OAA5C,CAAJ,EAA0D;IAC7DN,sBAAUU,WAAW,KAAKzV,QAAL,CAAciR,OAAd,CAAsBG,WAAtB,CAAkCpL,KAAlC,CAAwCwP,IAAnD,EAAyD,EAAzD,CAAV;IACH,SAFM,MAEA;IACH;IACH;;IAED;IACA,YAAIT,UAAU,CAAd,EAAiB;IACbA,sBAAU,CAAV;IACH,SAFD,MAEO,IAAIA,UAAU,GAAd,EAAmB;IACtBA,sBAAU,GAAV;IACH;;IAED;IACArF,iBAAS4E,iBAAT,CAA2BzV,IAA3B,CAAgC,IAAhC,EAAsC,KAAKmB,QAAL,CAAciR,OAAd,CAAsBG,WAA5D,EAAyE,KAAKD,QAAL,GAAgB,GAAhB,GAAsB4D,OAA/F;;IAEA;IACA,aAAK/U,QAAL,CAAciR,OAAd,CAAsBG,WAAtB,CAAkCpL,KAAlC,CAAwCwP,IAAxC,GAAkDT,OAAlD;;IAEA;IACA;IACA,YAAI3Z,GAAGuB,KAAH,CAASA,KAAT,KAAmB,CAAC,YAAD,EAAe,YAAf,EAA6B2H,QAA7B,CAAsC3H,MAAMgC,IAA5C,CAAvB,EAA0E;IACtER,mBAAOxB,MAAMgC,IAAN,KAAe,YAAtB;IACH;IACJ,KA5jBY;;;IA8jBb;IACA+W,cA/jBa,sBA+jBF/Y,KA/jBE,EA+jBK;IACd;IACA,YAAMgZ,SAAS,CAACva,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAciR,OAAd,CAAsBE,QAAjC,CAAD,IAA+C,KAAKtH,MAAL,CAAY+L,UAA1E;;IAEA;IACAlG,iBAAS4E,iBAAT,CAA2BzV,IAA3B,CACI,IADJ,EAEI,KAAKmB,QAAL,CAAciR,OAAd,CAAsB7H,WAF1B,EAGIuM,SAAS,KAAKxE,QAAL,GAAgB,KAAK/H,WAA9B,GAA4C,KAAKA,WAHrD,EAIIuM,MAJJ;;IAOA;IACA,YAAIhZ,SAASA,MAAMgC,IAAN,KAAe,YAAxB,IAAwC,KAAKsJ,KAAL,CAAW4N,OAAvD,EAAgE;IAC5D;IACH;;IAED;IACAnG,iBAASgF,cAAT,CAAwB7V,IAAxB,CAA6B,IAA7B,EAAmClC,KAAnC;IACH,KAllBY;;;IAolBb;IACAmZ,kBArlBa,4BAqlBI;IACb;IACA,YAAI,CAAC,KAAKpY,SAAL,CAAe6J,EAAhB,IAAuB,CAAC,KAAKsC,MAAL,CAAY+L,UAAb,IAA2B,KAAKxM,WAA3D,EAAyE;IACrE;IACH;;IAED;IACA,YAAIhO,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAc8Q,MAAd,CAAqBC,IAAhC,CAAJ,EAA2C;IACvC,iBAAK/Q,QAAL,CAAc8Q,MAAd,CAAqBC,IAArB,CAA0BxP,YAA1B,CAAuC,eAAvC,EAAwD,KAAK4P,QAA7D;IACH;;IAED;IACA,YAAM4E,cAAc3a,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAciR,OAAd,CAAsBE,QAAjC,CAApB;;IAEA;IACA,YAAI,CAAC4E,WAAD,IAAgB,KAAKlM,MAAL,CAAYmM,eAA5B,IAA+C,KAAK3M,MAAxD,EAAgE;IAC5DqG,qBAAS4E,iBAAT,CAA2BzV,IAA3B,CAAgC,IAAhC,EAAsC,KAAKmB,QAAL,CAAciR,OAAd,CAAsB7H,WAA5D,EAAyE,KAAK+H,QAA9E;IACH;;IAED;IACA,YAAI4E,WAAJ,EAAiB;IACbrG,qBAAS4E,iBAAT,CAA2BzV,IAA3B,CAAgC,IAAhC,EAAsC,KAAKmB,QAAL,CAAciR,OAAd,CAAsBE,QAA5D,EAAsE,KAAKA,QAA3E;IACH;;IAED;IACAzB,iBAASuF,iBAAT,CAA2BpW,IAA3B,CAAgC,IAAhC;IACH,KA/mBY;;;IAinBb;IACAoX,aAlnBa,qBAknBHC,OAlnBG,EAknBM/X,MAlnBN,EAknBc;IACvBoF,qBAAa,KAAKvD,QAAL,CAAc0Q,QAAd,CAAuByF,IAAvB,CAA4BD,OAA5B,CAAb,EAAmD,CAAC/X,MAApD;IACH,KApnBY;;;IAsnBb;IACAiY,kBAvnBa,0BAunBEzY,OAvnBF,EAunBW;IAAA;;IACpB;IACA,YAAI,CAACvC,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAc0Q,QAAd,CAAuB2F,KAAvB,CAA6B1M,OAAxC,CAAL,EAAuD;IACnD;IACH;;IAED,YAAMhL,OAAO,SAAb;IACA,YAAMoV,OAAO,KAAK/T,QAAL,CAAc0Q,QAAd,CAAuB2F,KAAvB,CAA6B1M,OAA7B,CAAqC/E,aAArC,CAAmD,IAAnD,CAAb;;IAEA;IACA,YAAIxJ,GAAGW,KAAH,CAAS4B,OAAT,CAAJ,EAAuB;IACnB,iBAAKA,OAAL,CAAagM,OAAb,GAAuB6C,OAAO7O,OAAP,EAAgByD,MAAhB,CAAuB;IAAA,uBAAW,OAAKyI,MAAL,CAAYF,OAAZ,CAAoBhM,OAApB,CAA4B2G,QAA5B,CAAqCqF,OAArC,CAAX;IAAA,aAAvB,CAAvB;IACH;;IAED;IACA,YAAMxL,SAAS,CAAC/C,GAAGkC,KAAH,CAAS,KAAKK,OAAL,CAAagM,OAAtB,CAAD,IAAmC,KAAKhM,OAAL,CAAagM,OAAb,CAAqBpM,MAArB,GAA8B,CAAhF;IACAmS,iBAASuG,SAAT,CAAmBpX,IAAnB,CAAwB,IAAxB,EAA8BF,IAA9B,EAAoCR,MAApC;;IAEA;IACAuR,iBAAS4G,SAAT,CAAmBzX,IAAnB,CAAwB,IAAxB;;IAEA;IACA,YAAI,CAACV,MAAL,EAAa;IACT;IACH;;IAED;IACA8D,qBAAa8R,IAAb;;IAEA;IACA,YAAMwC,WAAW,SAAXA,QAAW,UAAW;IACxB,gBAAM1D,QAAQxG,KAAKxO,GAAL,mBAAyB8L,OAAzB,EAAoC,OAAKE,MAAzC,CAAd;;IAEA,gBAAI,CAACgJ,MAAMtV,MAAX,EAAmB;IACf,uBAAO,IAAP;IACH;;IAED,mBAAOmS,SAAS6C,WAAT,CAAqB1T,IAArB,CAA0B,MAA1B,EAAgCgU,KAAhC,CAAP;IACH,SARD;;IAUA;IACA,aAAKlV,OAAL,CAAagM,OAAb,CACK6M,IADL,CACU,UAACC,CAAD,EAAIC,CAAJ,EAAU;IACZ,gBAAMC,UAAU,OAAK9M,MAAL,CAAYF,OAAZ,CAAoBhM,OAApC;IACA,mBAAOgZ,QAAQlK,OAAR,CAAgBgK,CAAhB,IAAqBE,QAAQlK,OAAR,CAAgBiK,CAAhB,CAArB,GAA0C,CAA1C,GAA8C,CAAC,CAAtD;IACH,SAJL,EAKKlY,OALL,CAKa,mBAAW;IAChBkR,qBAASoE,cAAT,CAAwBjV,IAAxB,CAA6B,MAA7B,EAAmC;IAC/BwC,uBAAOsI,OADwB;IAE/BoK,0BAF+B;IAG/BpV,0BAH+B;IAI/B4N,uBAAOmD,SAASkH,QAAT,CAAkB/X,IAAlB,CAAuB,MAAvB,EAA6B,SAA7B,EAAwC8K,OAAxC,CAJwB;IAK/B6I,uBAAO+D,SAAS5M,OAAT;IALwB,aAAnC;IAOH,SAbL;;IAeA+F,iBAASmH,aAAT,CAAuBhY,IAAvB,CAA4B,IAA5B,EAAkCF,IAAlC,EAAwCoV,IAAxC;IACH,KAhrBY;;;IAkrBb;IACA6C,YAnrBa,oBAmrBJV,OAnrBI,EAmrBK7U,KAnrBL,EAmrBY;IACrB,gBAAQ6U,OAAR;IACI,iBAAK,OAAL;IACI,uBAAO7U,UAAU,CAAV,GAAcgL,KAAKxO,GAAL,CAAS,QAAT,EAAmB,KAAKgM,MAAxB,CAAd,GAAmDxI,KAAnD,YAAP;;IAEJ,iBAAK,SAAL;IACI,oBAAIjG,GAAGG,MAAH,CAAU8F,KAAV,CAAJ,EAAsB;IAClB,wBAAMwR,QAAQxG,KAAKxO,GAAL,mBAAyBwD,KAAzB,EAAkC,KAAKwI,MAAvC,CAAd;;IAEA,wBAAI,CAACgJ,MAAMtV,MAAX,EAAmB;IACf,+BAAU8D,KAAV;IACH;;IAED,2BAAOwR,KAAP;IACH;;IAED,uBAAOrH,YAAYnK,KAAZ,CAAP;;IAEJ,iBAAK,UAAL;IACI,uBAAOsP,SAASiG,QAAT,CAAkB/X,IAAlB,CAAuB,IAAvB,CAAP;;IAEJ;IACI,uBAAO,IAAP;IArBR;IAuBH,KA3sBY;;;IA6sBb;IACAgY,iBA9sBa,yBA8sBCX,OA9sBD,EA8sBUjW,SA9sBV,EA8sBqBjF,KA9sBrB,EA8sB4B;IACrC,YAAM8b,OAAO,KAAK9W,QAAL,CAAc0Q,QAAd,CAAuB2F,KAAvB,CAA6BH,OAA7B,CAAb;IACA,YAAI7U,QAAQ,IAAZ;IACA,YAAI0S,OAAO9T,SAAX;;IAEA,YAAIiW,YAAY,UAAhB,EAA4B;IACxB7U,oBAAQ,KAAK0V,YAAb;IACH,SAFD,MAEO;IACH1V,oBAAQ,CAACjG,GAAGkC,KAAH,CAAStC,KAAT,CAAD,GAAmBA,KAAnB,GAA2B,KAAKkb,OAAL,CAAnC;;IAEA;IACA,gBAAI9a,GAAGkC,KAAH,CAAS+D,KAAT,CAAJ,EAAqB;IACjBA,wBAAQ,KAAKwI,MAAL,CAAYqM,OAAZ,EAAqBc,OAA7B;IACH;;IAED;IACA,gBAAI,CAAC5b,GAAGkC,KAAH,CAAS,KAAKK,OAAL,CAAauY,OAAb,CAAT,CAAD,IAAoC,CAAC,KAAKvY,OAAL,CAAauY,OAAb,EAAsB5R,QAAtB,CAA+BjD,KAA/B,CAAzC,EAAgF;IAC5E,qBAAK0I,KAAL,CAAWyH,IAAX,6BAAyCnQ,KAAzC,eAAuD6U,OAAvD;IACA;IACH;;IAED;IACA,gBAAI,CAAC,KAAKrM,MAAL,CAAYqM,OAAZ,EAAqBvY,OAArB,CAA6B2G,QAA7B,CAAsCjD,KAAtC,CAAL,EAAmD;IAC/C,qBAAK0I,KAAL,CAAWyH,IAAX,0BAAsCnQ,KAAtC,eAAoD6U,OAApD;IACA;IACH;IACJ;;IAED;IACA,YAAI,CAAC9a,GAAGmB,OAAH,CAAWwX,IAAX,CAAL,EAAuB;IACnBA,mBAAO+C,QAAQA,KAAKlS,aAAL,CAAmB,IAAnB,CAAf;IACH;;IAED;IACA,YAAI,CAACxJ,GAAGmB,OAAH,CAAWwX,IAAX,CAAL,EAAuB;IACnB;IACH;;IAED;IACA,YAAMlB,QAAQ,KAAK7S,QAAL,CAAc0Q,QAAd,CAAuByF,IAAvB,CAA4BD,OAA5B,EAAqCtR,aAArC,OAAuD,KAAKiF,MAAL,CAAYwH,UAAZ,CAAuBoB,IAAvB,CAA4BpR,KAAnF,CAAd;IACAwR,cAAM3G,SAAN,GAAkBwD,SAASkH,QAAT,CAAkB/X,IAAlB,CAAuB,IAAvB,EAA6BqX,OAA7B,EAAsC7U,KAAtC,CAAlB;;IAEA;IACA,YAAMQ,SAASkS,QAAQA,KAAKnP,aAAL,mBAAmCvD,KAAnC,QAAvB;;IAEA,YAAIjG,GAAGmB,OAAH,CAAWsF,MAAX,CAAJ,EAAwB;IACpBA,mBAAOmS,OAAP,GAAiB,IAAjB;IACH;IACJ,KA9vBY;;;IAgwBb;IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2CA;IACA;;IAEA;IACAiD,mBAhzBa,6BAgzBK;IAAA;;IACd;IACA,YAAMtY,OAAO,UAAb;IACA,YAAMoV,OAAO,KAAK/T,QAAL,CAAc0Q,QAAd,CAAuB2F,KAAvB,CAA6B1F,QAA7B,CAAsC/L,aAAtC,CAAoD,IAApD,CAAb;IACA,YAAMsS,SAASvG,SAASwG,SAAT,CAAmBtY,IAAnB,CAAwB,IAAxB,CAAf;;IAEA;IACA6Q,iBAASuG,SAAT,CAAmBpX,IAAnB,CAAwB,IAAxB,EAA8BF,IAA9B,EAAoCuY,OAAO3Z,MAA3C;;IAEA;IACA0E,qBAAa8R,IAAb;;IAEA;IACArE,iBAAS4G,SAAT,CAAmBzX,IAAnB,CAAwB,IAAxB;;IAEA;IACA,YAAI,CAACqY,OAAO3Z,MAAZ,EAAoB;IAChB;IACH;;IAED;IACA,YAAMI,UAAUuZ,OAAOlO,GAAP,CAAW,UAAC/L,KAAD,EAAQoE,KAAR;IAAA,mBAAmB;IAC1CA,4BAD0C;IAE1C2S,yBAAS,OAAKrD,QAAL,CAAcyG,OAAd,IAAyB,OAAKL,YAAL,KAAsB1V,KAFd;IAG1CkL,uBAAOoE,SAASiG,QAAT,CAAkB/X,IAAlB,CAAuB,MAAvB,EAA6B5B,KAA7B,CAHmC;IAI1CuV,uBAAOvV,MAAMoa,QAAN,IAAkB3H,SAAS6C,WAAT,CAAqB1T,IAArB,CAA0B,MAA1B,EAAgC5B,MAAMoa,QAAN,CAAe5L,WAAf,EAAhC,CAJiB;IAK1CsI,0BAL0C;IAM1CpV,sBAAM;IANoC,aAAnB;IAAA,SAAX,CAAhB;;IASA;IACAhB,gBAAQ2Z,OAAR,CAAgB;IACZjW,mBAAO,CAAC,CADI;IAEZ2S,qBAAS,CAAC,KAAKrD,QAAL,CAAcyG,OAFZ;IAGZ7K,mBAAOF,KAAKxO,GAAL,CAAS,UAAT,EAAqB,KAAKgM,MAA1B,CAHK;IAIZkK,sBAJY;IAKZpV,kBAAM;IALM,SAAhB;;IAQA;IACAhB,gBAAQa,OAAR,CAAgBkR,SAASoE,cAAT,CAAwByD,IAAxB,CAA6B,IAA7B,CAAhB;;IAEA7H,iBAASmH,aAAT,CAAuBhY,IAAvB,CAA4B,IAA5B,EAAkCF,IAAlC,EAAwCoV,IAAxC;IACH,KA31BY;;;IA61Bb;IACAyD,gBA91Ba,wBA81BA7Z,OA91BA,EA81BS;IAAA;;IAClB;IACA,YAAI,CAAC,KAAKkM,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,UAA9B,CAAD,IAA8C,CAAC,KAAKuF,MAAL,CAAY6G,QAAZ,CAAqBpM,QAArB,CAA8B,OAA9B,CAAnD,EAA2F;IACvF;IACH;;IAED;IACA,YAAI,CAAClJ,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAc0Q,QAAd,CAAuB2F,KAAvB,CAA6BoB,KAAxC,CAAL,EAAqD;IACjD;IACH;;IAED,YAAM9Y,OAAO,OAAb;;IAEA;IACA,YAAIvD,GAAGW,KAAH,CAAS4B,OAAT,CAAJ,EAAuB;IACnB,iBAAKA,OAAL,CAAa8Z,KAAb,GAAqB9Z,OAArB;IACH,SAFD,MAEO,IAAI,KAAKqK,OAAL,IAAgB,KAAK0P,OAAzB,EAAkC;IACrC,iBAAK/Z,OAAL,CAAa8Z,KAAb,GAAqB,CAAC,GAAD,EAAM,IAAN,EAAY,CAAZ,EAAe,IAAf,EAAqB,GAArB,EAA0B,IAA1B,EAAgC,CAAhC,CAArB;IACH;;IAED;IACA,aAAK9Z,OAAL,CAAa8Z,KAAb,GAAqB,KAAK9Z,OAAL,CAAa8Z,KAAb,CAAmBrW,MAAnB,CAA0B;IAAA,mBAAS,OAAKyI,MAAL,CAAY4N,KAAZ,CAAkB9Z,OAAlB,CAA0B2G,QAA1B,CAAmCmT,KAAnC,CAAT;IAAA,SAA1B,CAArB;;IAEA;IACA,YAAMtZ,SAAS,CAAC/C,GAAGkC,KAAH,CAAS,KAAKK,OAAL,CAAa8Z,KAAtB,CAAD,IAAiC,KAAK9Z,OAAL,CAAa8Z,KAAb,CAAmBla,MAAnB,GAA4B,CAA5E;IACAmS,iBAASuG,SAAT,CAAmBpX,IAAnB,CAAwB,IAAxB,EAA8BF,IAA9B,EAAoCR,MAApC;;IAEA;IACAuR,iBAAS4G,SAAT,CAAmBzX,IAAnB,CAAwB,IAAxB;;IAEA;IACA,YAAI,CAACV,MAAL,EAAa;IACT;IACH;;IAED;IACA,YAAM4V,OAAO,KAAK/T,QAAL,CAAc0Q,QAAd,CAAuB2F,KAAvB,CAA6BoB,KAA7B,CAAmC7S,aAAnC,CAAiD,IAAjD,CAAb;;IAEA;IACA3C,qBAAa8R,IAAb;;IAEA;IACA,aAAKpW,OAAL,CAAa8Z,KAAb,CAAmBjZ,OAAnB,CAA2B,iBAAS;IAChCkR,qBAASoE,cAAT,CAAwBjV,IAAxB,CAA6B,MAA7B,EAAmC;IAC/BwC,uBAAOoW,KADwB;IAE/B1D,0BAF+B;IAG/BpV,0BAH+B;IAI/B4N,uBAAOmD,SAASkH,QAAT,CAAkB/X,IAAlB,CAAuB,MAAvB,EAA6B,OAA7B,EAAsC4Y,KAAtC;IAJwB,aAAnC;IAMH,SAPD;;IASA/H,iBAASmH,aAAT,CAAuBhY,IAAvB,CAA4B,IAA5B,EAAkCF,IAAlC,EAAwCoV,IAAxC;IACH,KAl5BY;;;IAo5Bb;IACAuC,aAr5Ba,uBAq5BD;IAAA,YACAH,IADA,GACS,KAAKnW,QAAL,CAAc0Q,QADvB,CACAyF,IADA;;IAER,YAAMd,UAAU,CAACja,GAAGkC,KAAH,CAAS6Y,IAAT,CAAD,IAAmB7a,OAAOqc,MAAP,CAAcxB,IAAd,EAAoByB,IAApB,CAAyB;IAAA,mBAAO,CAACC,IAAIrU,MAAZ;IAAA,SAAzB,CAAnC;;IAEAD,qBAAa,KAAKvD,QAAL,CAAc0Q,QAAd,CAAuB+B,IAApC,EAA0C,CAAC4C,OAA3C;IACH,KA15BY;;;IA45Bb;IACAyC,cA75Ba,sBA65BFnb,KA75BE,EA65BK;IAAA,YACNob,IADM,GACG,KAAK/X,QAAL,CAAc0Q,QADjB,CACNqH,IADM;;IAEd,YAAMnF,SAAS,KAAK5S,QAAL,CAAcoQ,OAAd,CAAsBM,QAArC;;IAEA;IACA,YAAI,CAACtV,GAAGmB,OAAH,CAAWwb,IAAX,CAAD,IAAqB,CAAC3c,GAAGmB,OAAH,CAAWqW,MAAX,CAA1B,EAA8C;IAC1C;IACH;;IAED,YAAMoF,OAAO5c,GAAGQ,OAAH,CAAWe,KAAX,IAAoBA,KAApB,GAA4BvB,GAAGmB,OAAH,CAAWwb,IAAX,KAAoBA,KAAKrU,YAAL,CAAkB,QAAlB,CAA7D;;IAEA,YAAItI,GAAGuB,KAAH,CAASA,KAAT,CAAJ,EAAqB;IACjB,gBAAMsb,aAAa7c,GAAGmB,OAAH,CAAWwb,IAAX,KAAoBA,KAAK/T,QAAL,CAAcrH,MAAMkF,MAApB,CAAvC;IACA,gBAAMqW,WAAWvb,MAAMkF,MAAN,KAAiB,KAAK7B,QAAL,CAAcoQ,OAAd,CAAsBM,QAAxD;;IAEA;IACA;IACA;IACA,gBAAIuH,cAAe,CAACA,UAAD,IAAe,CAACC,QAAhB,IAA4BF,IAA/C,EAAsD;IAClD;IACH;;IAED;IACA,gBAAIE,QAAJ,EAAc;IACVvb,sBAAMwb,eAAN;IACH;IACJ;;IAED;IACA,YAAI/c,GAAGmB,OAAH,CAAWqW,MAAX,CAAJ,EAAwB;IACpBA,mBAAOrR,YAAP,CAAoB,eAApB,EAAqCyW,IAArC;IACH;;IAED,YAAI5c,GAAGmB,OAAH,CAAWwb,IAAX,CAAJ,EAAsB;IAClBxU,yBAAawU,IAAb,EAAmB,CAACC,IAApB;IACApU,wBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuBoB,IAAvB,CAA4BzE,IAAjE,EAAuEgK,IAAvE;;IAEA,gBAAIA,IAAJ,EAAU;IACND,qBAAKpU,eAAL,CAAqB,UAArB;IACH,aAFD,MAEO;IACHoU,qBAAKxW,YAAL,CAAkB,UAAlB,EAA8B,CAAC,CAA/B;IACH;IACJ;IACJ,KAx8BY;;;IA08Bb;IACA6W,cA38Ba,sBA28BFP,GA38BE,EA28BG;IACZ,YAAMQ,QAAQR,IAAInX,SAAJ,CAAc,IAAd,CAAd;IACA2X,cAAMrS,KAAN,CAAYsS,QAAZ,GAAuB,UAAvB;IACAD,cAAMrS,KAAN,CAAYuS,OAAZ,GAAsB,CAAtB;IACAF,cAAM1U,eAAN,CAAsB,QAAtB;;IAEA;IACA1H,cAAMqE,IAAN,CAAW+X,MAAMhU,gBAAN,CAAuB,aAAvB,CAAX,EAAkD7F,OAAlD,CAA0D,iBAAS;IAC/D,gBAAM0V,OAAOlZ,MAAM8N,YAAN,CAAmB,MAAnB,CAAb;IACA9N,kBAAMuG,YAAN,CAAmB,MAAnB,EAA8B2S,IAA9B;IACH,SAHD;;IAKA;IACA2D,YAAIjX,UAAJ,CAAeG,WAAf,CAA2BsX,KAA3B;;IAEA;IACA,YAAM/C,QAAQ+C,MAAMG,WAApB;IACA,YAAMC,SAASJ,MAAMK,YAArB;;IAEA;IACA3W,sBAAcsW,KAAd;;IAEA,eAAO;IACH/C,wBADG;IAEHmD;IAFG,SAAP;IAIH,KAr+BY;;;IAu+Bb;IACAE,WAx+Ba,qBAw+BQ;IAAA;;IAAA,YAAb9W,MAAa,uEAAJ,EAAI;IAAA,YACT4Q,IADS,GACA,KAAKzS,QAAL,CAAc0Q,QADd,CACT+B,IADS;;IAEjB,YAAMqE,OAAOpV,SAAS4M,cAAT,CAAwBzM,MAAxB,CAAb;;IAEA;IACA,YAAI,CAACzG,GAAGmB,OAAH,CAAWua,IAAX,CAAL,EAAuB;IACnB;IACH;;IAED;IACA,YAAM8B,QAAQ9B,KAAKhO,YAAL,CAAkB,MAAlB,MAA8B,UAA5C;IACA,YAAI,CAAC8P,KAAL,EAAY;IACR;IACH;;IAED;IACA;IACA,YAAMzN,UAAUsH,KAAK7N,aAAL,CAAmB,iCAAnB,CAAhB;IACA,YAAM3E,YAAYkL,QAAQvK,UAA1B;;IAEA;IACA3E,cAAMqE,IAAN,CAAWmS,KAAKpO,gBAAL,sBAAyC8G,QAAQrC,YAAR,CAAqB,IAArB,CAAzC,QAAX,EAAqFtK,OAArF,CAA6F,kBAAU;IACnGL,mBAAOoD,YAAP,CAAoB,eAApB,EAAqC,KAArC;IACH,SAFD;;IAIA;IACA,YAAIwF,QAAQwB,WAAR,IAAuB,CAACxB,QAAQyB,aAApC,EAAmD;IAC/C;IACAvI,sBAAU+F,KAAV,CAAgBsP,KAAhB,GAA2BnK,QAAQqN,WAAnC;IACAvY,sBAAU+F,KAAV,CAAgByS,MAAhB,GAA4BtN,QAAQuN,YAApC;;IAEA;IACA,gBAAMG,OAAOnJ,SAAS0I,UAAT,CAAoBvZ,IAApB,CAAyB,IAAzB,EAA+BiY,IAA/B,CAAb;;IAEA;IACA,gBAAMgC,UAAU,SAAVA,OAAU,IAAK;IACjB;IACA,oBAAI9a,EAAE6D,MAAF,KAAa5B,SAAb,IAA0B,CAAC,CAAC,OAAD,EAAU,QAAV,EAAoBqE,QAApB,CAA6BtG,EAAE+a,YAA/B,CAA/B,EAA6E;IACzE;IACH;;IAED;IACA9Y,0BAAU+F,KAAV,CAAgBsP,KAAhB,GAAwB,EAAxB;IACArV,0BAAU+F,KAAV,CAAgByS,MAAhB,GAAyB,EAAzB;;IAEA;IACA3Z,oBAAID,IAAJ,CAAS,MAAT,EAAeoB,SAAf,EAA0ByF,kBAA1B,EAA8CoT,OAA9C;IACH,aAZD;;IAcA;IACAla,eAAGC,IAAH,CAAQ,IAAR,EAAcoB,SAAd,EAAyByF,kBAAzB,EAA6CoT,OAA7C;;IAEA;IACA7Y,sBAAU+F,KAAV,CAAgBsP,KAAhB,GAA2BuD,KAAKvD,KAAhC;IACArV,sBAAU+F,KAAV,CAAgByS,MAAhB,GAA4BI,KAAKJ,MAAjC;IACH;;IAED;IACAlV,qBAAa4H,OAAb,EAAsB,IAAtB;IACAA,gBAAQ5J,YAAR,CAAqB,UAArB,EAAiC,CAAC,CAAlC;;IAEA;IACAgC,qBAAauT,IAAb,EAAmB,KAAnB;;IAEA,YAAMX,OAAOzR,YAAY7F,IAAZ,CAAiB,IAAjB,uBAA0CgD,MAA1C,QAAb;IACA5F,cAAMqE,IAAN,CAAW6V,IAAX,EAAiB3X,OAAjB,CAAyB,eAAO;IAC5BqZ,gBAAItW,YAAJ,CAAiB,eAAjB,EAAkC,IAAlC;IACH,SAFD;IAGAuV,aAAKnT,eAAL,CAAqB,UAArB;;IAEA;IACAmT,aAAKzS,gBAAL,CAAsB,yDAAtB,EAAiF,CAAjF,EAAoFmB,KAApF;IACH,KAhjCY;;;IAkjCb;IACA;IACAwT,UApjCa,kBAojCNxK,IApjCM,EAojCA;IAAA;;IACT;IACA,YAAIpT,GAAGkC,KAAH,CAAS,KAAKuM,MAAL,CAAY6F,QAArB,CAAJ,EAAoC;IAChC,mBAAO,IAAP;IACH;;IAED;IACA,YAAMzP,YAAYuB,cAAc,KAAd,EAAqBgB,0BAA0B,KAAKqH,MAAL,CAAYsG,SAAZ,CAAsBT,QAAtB,CAA+BtP,OAAzD,CAArB,CAAlB;;IAEA;IACA,YAAI,KAAKyJ,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,SAA9B,CAAJ,EAA8C;IAC1CrE,sBAAUc,WAAV,CAAsB2O,SAASgD,YAAT,CAAsB7T,IAAtB,CAA2B,IAA3B,EAAiC,SAAjC,CAAtB;IACH;;IAED;IACA,YAAI,KAAKgL,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,QAA9B,CAAJ,EAA6C;IACzCrE,sBAAUc,WAAV,CAAsB2O,SAASgD,YAAT,CAAsB7T,IAAtB,CAA2B,IAA3B,EAAiC,QAAjC,CAAtB;IACH;;IAED;IACA,YAAI,KAAKgL,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,MAA9B,CAAJ,EAA2C;IACvCrE,sBAAUc,WAAV,CAAsB2O,SAASgD,YAAT,CAAsB7T,IAAtB,CAA2B,IAA3B,EAAiC,MAAjC,CAAtB;IACH;;IAED;IACA,YAAI,KAAKgL,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,cAA9B,CAAJ,EAAmD;IAC/CrE,sBAAUc,WAAV,CAAsB2O,SAASgD,YAAT,CAAsB7T,IAAtB,CAA2B,IAA3B,EAAiC,cAAjC,CAAtB;IACH;;IAED;IACA,YAAI,KAAKgL,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,UAA9B,CAAJ,EAA+C;IAC3C,gBAAMuM,WAAWrP,cAAc,KAAd,EAAqBgB,0BAA0B,KAAKqH,MAAL,CAAYsG,SAAZ,CAAsBU,QAAhD,CAArB,CAAjB;;IAEA;IACAA,qBAAS9P,WAAT,CACI2O,SAAS0D,WAAT,CAAqBvU,IAArB,CAA0B,IAA1B,EAAgC,MAAhC,EAAwC;IACpCyE,mCAAiBkL,KAAKlL;IADc,aAAxC,CADJ;;IAMA;IACAuN,qBAAS9P,WAAT,CAAqB2O,SAAS+D,cAAT,CAAwB5U,IAAxB,CAA6B,IAA7B,EAAmC,QAAnC,CAArB;;IAEA;;IAEA;IACA,gBAAI,KAAKgL,MAAL,CAAYqL,QAAZ,CAAqBnE,IAAzB,EAA+B;IAC3B,oBAAMO,UAAU9P,cACZ,MADY,EAEZ;IACI6B,2BAAO,KAAKwG,MAAL,CAAYwH,UAAZ,CAAuBC;IADlC,iBAFY,EAKZ,OALY,CAAhB;;IAQAT,yBAAS9P,WAAT,CAAqBuQ,OAArB;IACA,qBAAKtR,QAAL,CAAciR,OAAd,CAAsBG,WAAtB,GAAoCE,OAApC;IACH;;IAED,iBAAKtR,QAAL,CAAc6Q,QAAd,GAAyBA,QAAzB;IACA5Q,sBAAUc,WAAV,CAAsB,KAAKf,QAAL,CAAc6Q,QAApC;IACH;;IAED;IACA,YAAI,KAAKhH,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,cAA9B,CAAJ,EAAmD;IAC/CrE,sBAAUc,WAAV,CAAsB2O,SAASmE,UAAT,CAAoBhV,IAApB,CAAyB,IAAzB,EAA+B,aAA/B,CAAtB;IACH;;IAED;IACA,YAAI,KAAKgL,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,UAA9B,CAAJ,EAA+C;IAC3CrE,sBAAUc,WAAV,CAAsB2O,SAASmE,UAAT,CAAoBhV,IAApB,CAAyB,IAAzB,EAA+B,UAA/B,CAAtB;IACH;;IAED;IACA,YAAI,KAAKgL,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,MAA9B,CAAJ,EAA2C;IACvCrE,sBAAUc,WAAV,CAAsB2O,SAASgD,YAAT,CAAsB7T,IAAtB,CAA2B,IAA3B,EAAiC,MAAjC,CAAtB;IACH;;IAED;IACA,YAAI,KAAKgL,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,QAA9B,CAAJ,EAA6C;IACzC,gBAAM0M,SAASxP,cAAc,KAAd,EAAqB;IAChC6B,uBAAO;IADyB,aAArB,CAAf;;IAIA;IACA,gBAAMnC,aAAa;IACfkK,qBAAK,CADU;IAEfkI,sBAAM,IAFS;IAGfjS,uBAAO,KAAKwI,MAAL,CAAYmH;IAHJ,aAAnB;;IAMA;IACAA,mBAAOjQ,WAAP,CACI2O,SAAS0D,WAAT,CAAqBvU,IAArB,CACI,IADJ,EAEI,QAFJ,EAGIoK,OAAO/H,UAAP,EAAmB;IACfoC,qCAAmBkL,KAAKlL;IADT,aAAnB,CAHJ,CADJ;;IAUA,iBAAKtD,QAAL,CAAcgR,MAAd,GAAuBA,MAAvB;;IAEA/Q,sBAAUc,WAAV,CAAsBiQ,MAAtB;IACH;;IAED;IACA,YAAI,KAAKnH,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,UAA9B,CAAJ,EAA+C;IAC3CrE,sBAAUc,WAAV,CAAsB2O,SAASgD,YAAT,CAAsB7T,IAAtB,CAA2B,IAA3B,EAAiC,UAAjC,CAAtB;IACH;;IAED;IACA,YAAI,KAAKgL,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,UAA9B,KAA6C,CAAClJ,GAAGkC,KAAH,CAAS,KAAKuM,MAAL,CAAY6G,QAArB,CAAlD,EAAkF;IAC9E,gBAAM+B,OAAOjR,cAAc,KAAd,EAAqB;IAC9B6B,uBAAO,YADuB;IAE9BG,wBAAQ;IAFsB,aAArB,CAAb;;IAKAiP,iBAAK1R,WAAL,CACI2O,SAASgD,YAAT,CAAsB7T,IAAtB,CAA2B,IAA3B,EAAiC,UAAjC,EAA6C;IACzCyE,8CAA4BkL,KAAKlL,EADQ;IAEzC,iCAAiB,IAFwB;IAGzC,oDAAkCkL,KAAKlL,EAHE;IAIzC,iCAAiB;IAJwB,aAA7C,CADJ;;IASA,gBAAMyU,OAAOvW,cAAc,MAAd,EAAsB;IAC/B6B,uBAAO,uBADwB;IAE/BC,uCAAqBkL,KAAKlL,EAFK;IAG/BE,wBAAQ,EAHuB;IAI/B,8DAA4CgL,KAAKlL,EAJlB;IAK/B0O,sBAAM,SALyB;IAM/BiH,0BAAU,CAAC;IANoB,aAAtB,CAAb;;IASA,gBAAMC,QAAQ1X,cAAc,KAAd,CAAd;;IAEA,gBAAM2X,OAAO3X,cAAc,KAAd,EAAqB;IAC9B8B,uCAAqBkL,KAAKlL,EAA1B,UAD8B;IAE9B,8DAA4CkL,KAAKlL,EAFnB;IAG9B0O,sBAAM;IAHwB,aAArB,CAAb;;IAMA;IACA,gBAAMmE,OAAO3U,cAAc,IAAd,EAAoB;IAC7BwQ,sBAAM;IADuB,aAApB,CAAb;;IAIA;IACA,iBAAKnI,MAAL,CAAY6G,QAAZ,CAAqBlS,OAArB,CAA6B,gBAAQ;IACjC,oBAAMqZ,MAAMrW,cAAc,IAAd,EAAoB;IAC5BwQ,0BAAM,KADsB;IAE5BxO,4BAAQ;IAFoB,iBAApB,CAAZ;;IAKA,oBAAMoP,SAASpR,cACX,QADW,EAEXyH,OAAOzG,0BAA0B,OAAKqH,MAAL,CAAYsG,SAAZ,CAAsBC,OAAtB,CAA8BM,QAAxD,CAAP,EAA0E;IACtE/R,0BAAM,QADgE;IAEtE0E,2BAAU,OAAKwG,MAAL,CAAYwH,UAAZ,CAAuB2B,OAAjC,SAA4C,OAAKnJ,MAAL,CAAYwH,UAAZ,CAAuB2B,OAAnE,cAFsE;IAGtE1P,2CAAqBkL,KAAKlL,EAA1B,SAAgC3E,IAAhC,SAHsE;IAItE,qCAAiB,IAJqD;IAKtE,wDAAkC6P,KAAKlL,EAAvC,SAA6C3E,IALyB;IAMtE,qCAAiB;IANqD,iBAA1E,CAFW,EAUX0N,KAAKxO,GAAL,CAASc,IAAT,EAAe,OAAKkL,MAApB,CAVW,CAAf;;IAaA,oBAAMxI,QAAQG,cAAc,MAAd,EAAsB;IAChC6B,2BAAO,OAAKwG,MAAL,CAAYwH,UAAZ,CAAuBoB,IAAvB,CAA4BpR;IADH,iBAAtB,CAAd;;IAIA;IACAA,sBAAM6K,SAAN,GAAkBsC,KAAK7P,IAAL,CAAlB;;IAEAiU,uBAAO7R,WAAP,CAAmBM,KAAnB;IACAwW,oBAAI9W,WAAJ,CAAgB6R,MAAhB;IACAuD,qBAAKpV,WAAL,CAAiB8W,GAAjB;;IAEA,uBAAK7X,QAAL,CAAc0Q,QAAd,CAAuByF,IAAvB,CAA4BxX,IAA5B,IAAoCkZ,GAApC;IACH,aA/BD;;IAiCAsB,iBAAKpY,WAAL,CAAiBoV,IAAjB;IACA+C,kBAAMnY,WAAN,CAAkBoY,IAAlB;;IAEA;IACA,iBAAKtP,MAAL,CAAY6G,QAAZ,CAAqBlS,OAArB,CAA6B,gBAAQ;IACjC,oBAAMsY,OAAOtV,cAAc,KAAd,EAAqB;IAC9B8B,2CAAqBkL,KAAKlL,EAA1B,SAAgC3E,IADF;IAE9B6E,4BAAQ,EAFsB;IAG9B,2DAAqCgL,KAAKlL,EAA1C,SAAgD3E,IAAhD,SAH8B;IAI9BqT,0BAAM,UAJwB;IAK9BiH,8BAAU,CAAC;IALmB,iBAArB,CAAb;;IAQA,oBAAMG,OAAO5X,cACT,QADS,EAET;IACI7C,0BAAM,QADV;IAEI0E,2BAAU,OAAKwG,MAAL,CAAYwH,UAAZ,CAAuB2B,OAAjC,SAA4C,OAAKnJ,MAAL,CAAYwH,UAAZ,CAAuB2B,OAAnE,WAFJ;IAGI,qCAAiB,IAHrB;IAII,wDAAkCxE,KAAKlL,EAAvC,UAJJ;IAKI,qCAAiB;IALrB,iBAFS,EAST+I,KAAKxO,GAAL,CAASc,IAAT,EAAe,OAAKkL,MAApB,CATS,CAAb;;IAYAiN,qBAAK/V,WAAL,CAAiBqY,IAAjB;;IAEA,oBAAMzb,UAAU6D,cAAc,IAAd,CAAhB;;IAEAsV,qBAAK/V,WAAL,CAAiBpD,OAAjB;IACAub,sBAAMnY,WAAN,CAAkB+V,IAAlB;;IAEA,uBAAK9W,QAAL,CAAc0Q,QAAd,CAAuB2F,KAAvB,CAA6B1X,IAA7B,IAAqCmY,IAArC;IACH,aA7BD;;IA+BAiB,iBAAKhX,WAAL,CAAiBmY,KAAjB;IACAzG,iBAAK1R,WAAL,CAAiBgX,IAAjB;IACA9X,sBAAUc,WAAV,CAAsB0R,IAAtB;;IAEA,iBAAKzS,QAAL,CAAc0Q,QAAd,CAAuBqH,IAAvB,GAA8BA,IAA9B;IACA,iBAAK/X,QAAL,CAAc0Q,QAAd,CAAuB+B,IAAvB,GAA8BA,IAA9B;IACH;;IAED;IACA,YAAI,KAAK5I,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,KAA9B,KAAwCyC,QAAQU,GAApD,EAAyD;IACrDxH,sBAAUc,WAAV,CAAsB2O,SAASgD,YAAT,CAAsB7T,IAAtB,CAA2B,IAA3B,EAAiC,KAAjC,CAAtB;IACH;;IAED;IACA,YAAI,KAAKgL,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,SAA9B,KAA4CyC,QAAQY,OAAxD,EAAiE;IAC7D1H,sBAAUc,WAAV,CAAsB2O,SAASgD,YAAT,CAAsB7T,IAAtB,CAA2B,IAA3B,EAAiC,SAAjC,CAAtB;IACH;;IAED;IACA,YAAI,KAAKgL,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,YAA9B,CAAJ,EAAiD;IAC7CrE,sBAAUc,WAAV,CAAsB2O,SAASgD,YAAT,CAAsB7T,IAAtB,CAA2B,IAA3B,EAAiC,YAAjC,CAAtB;IACH;;IAED;IACA,YAAI,KAAKgL,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,YAA9B,CAAJ,EAAiD;IAC7C,iBAAKtE,QAAL,CAAcC,SAAd,CAAwBc,WAAxB,CAAoC2O,SAASgD,YAAT,CAAsB7T,IAAtB,CAA2B,IAA3B,EAAiC,YAAjC,CAApC;IACH;;IAED,aAAKmB,QAAL,CAAc0P,QAAd,GAAyBzP,SAAzB;;IAEA,YAAI,KAAK+H,OAAT,EAAkB;IACd0H,qBAAS0G,cAAT,CAAwBvX,IAAxB,CAA6B,IAA7B,EAAmC6J,MAAMK,iBAAN,CAAwBlK,IAAxB,CAA6B,IAA7B,CAAnC;IACH;;IAED6Q,iBAAS8H,YAAT,CAAsB3Y,IAAtB,CAA2B,IAA3B;;IAEA,eAAOoB,SAAP;IACH,KApzCY;;;IAszCb;IACAoZ,UAvzCa,oBAuzCJ;IAAA;;IACL;IACA,YAAI,KAAKxP,MAAL,CAAYqE,UAAhB,EAA4B;IACxB,gBAAM4D,OAAOpC,SAASC,UAAT,CAAoB9Q,IAApB,CAAyB,IAAzB,CAAb;;IAEA;IACA,gBAAIiT,KAAK/B,IAAT,EAAe;IACX7B,2BAAW4D,KAAK1U,GAAhB,EAAqB,aAArB;IACH;IACJ;;IAED;IACA,aAAKkG,EAAL,GAAUsH,KAAKC,KAAL,CAAWD,KAAKE,MAAL,KAAgB,KAA3B,CAAV;;IAEA;IACA,YAAI7K,YAAY,IAAhB;IACA,aAAKD,QAAL,CAAc0P,QAAd,GAAyB,IAAzB;;IAEA;IACA,YAAM4J,QAAQ;IACVhW,gBAAI,KAAKA,EADC;IAEViW,sBAAU,KAAK1P,MAAL,CAAYyC,QAFZ;IAGVC,mBAAO,KAAK1C,MAAL,CAAY0C;IAHT,SAAd;IAKA,YAAIgC,SAAS,IAAb;;IAEA,YAAInT,GAAGM,MAAH,CAAU,KAAKmO,MAAL,CAAY6F,QAAtB,KAAmCtU,GAAGmB,OAAH,CAAW,KAAKsN,MAAL,CAAY6F,QAAvB,CAAvC,EAAyE;IACrE;IACAzP,wBAAY,KAAK4J,MAAL,CAAY6F,QAAxB;IACH,SAHD,MAGO,IAAItU,GAAGS,QAAH,CAAY,KAAKgO,MAAL,CAAY6F,QAAxB,CAAJ,EAAuC;IAC1C;IACA;IACAzP,wBAAY,KAAK4J,MAAL,CAAY6F,QAAZ,CAAqB7Q,IAArB,CAA0B,IAA1B,EAAgCya,KAAhC,CAAZ;IACH,SAJM,MAIA;IACH;IACArZ,wBAAYyP,SAASsJ,MAAT,CAAgBna,IAAhB,CAAqB,IAArB,EAA2B;IACnCyE,oBAAI,KAAKA,EAD0B;IAEnCiW,0BAAU,KAAK1P,MAAL,CAAYyC,QAFa;IAGnCmL,uBAAO,KAAKA,KAHuB;IAInC9N,yBAAS,KAAKA,OAJqB;IAKnCgH,0BAAUA,SAASiG,QAAT,CAAkB/X,IAAlB,CAAuB,IAAvB;IACV;IACA;IAPmC,aAA3B,CAAZ;IASA0P,qBAAS,KAAT;IACH;;IAED;IACA,YAAMvL,UAAU,SAAVA,OAAU,QAAS;IACrB,gBAAI6L,SAAS7T,KAAb;;IAEAM,mBAAO6F,OAAP,CAAemY,KAAf,EAAsB9a,OAAtB,CAA8B,iBAAkB;IAAA;IAAA,oBAAhB8C,GAAgB;IAAA,oBAAXD,KAAW;;IAC5CwN,yBAASvD,WAAWuD,MAAX,QAAuBvN,GAAvB,QAA+BD,KAA/B,CAAT;IACH,aAFD;;IAIA,mBAAOwN,MAAP;IACH,SARD;;IAUA;IACA,YAAIN,MAAJ,EAAY;IACR,gBAAInT,GAAGM,MAAH,CAAU,KAAKmO,MAAL,CAAY6F,QAAtB,CAAJ,EAAqC;IACjCzP,4BAAY+C,QAAQ/C,SAAR,CAAZ;IACH,aAFD,MAEO,IAAI7E,GAAGmB,OAAH,CAAW0D,SAAX,CAAJ,EAA2B;IAC9BA,0BAAUiM,SAAV,GAAsBlJ,QAAQ/C,UAAUiM,SAAlB,CAAtB;IACH;IACJ;;IAED;IACA,YAAIrK,eAAJ;;IAEA;IACA,YAAIzG,GAAGM,MAAH,CAAU,KAAKmO,MAAL,CAAYsG,SAAZ,CAAsBT,QAAtB,CAA+BzP,SAAzC,CAAJ,EAAyD;IACrD4B,qBAASH,SAASkD,aAAT,CAAuB,KAAKiF,MAAL,CAAYsG,SAAZ,CAAsBT,QAAtB,CAA+BzP,SAAtD,CAAT;IACH;;IAED;IACA,YAAI,CAAC7E,GAAGmB,OAAH,CAAWsF,MAAX,CAAL,EAAyB;IACrBA,qBAAS,KAAK7B,QAAL,CAAcC,SAAvB;IACH;;IAED;IACA,YAAI7E,GAAGmB,OAAH,CAAW0D,SAAX,CAAJ,EAA2B;IACvB4B,mBAAOd,WAAP,CAAmBd,SAAnB;IACH,SAFD,MAEO,IAAIA,SAAJ,EAAe;IAClB4B,mBAAOuS,kBAAP,CAA0B,WAA1B,EAAuCnU,SAAvC;IACH;;IAED;IACA,YAAI,CAAC7E,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAc0P,QAAzB,CAAL,EAAyC;IACrCA,qBAASQ,YAAT,CAAsBrR,IAAtB,CAA2B,IAA3B;IACH;;IAED;IACA,YAAI/B,OAAO2J,SAAP,CAAiBC,SAAjB,CAA2BpC,QAA3B,CAAoC,MAApC,CAAJ,EAAiD;IAC7C4B,oBAAQrE,MAAR;IACH;;IAED;IACA,YAAI,KAAKgI,MAAL,CAAYqL,QAAZ,CAAqBxF,QAAzB,EAAmC;IAAA,0BACG,KAAK7F,MADR;IAAA,gBACvBwH,UADuB,WACvBA,UADuB;IAAA,gBACXlB,SADW,WACXA,SADW;;IAE/B,gBAAMvN,WAAcuN,UAAUT,QAAV,CAAmBtP,OAAjC,SAA4C+P,UAAUqJ,MAAtD,UAAiEnI,WAAW7N,MAAlF;IACA,gBAAMgW,SAAS9U,YAAY7F,IAAZ,CAAiB,IAAjB,EAAuB+D,QAAvB,CAAf;;IAEA3G,kBAAMqE,IAAN,CAAWkZ,MAAX,EAAmBhb,OAAnB,CAA2B,iBAAS;IAChCoF,4BAAYiP,KAAZ,EAAmB,OAAKhJ,MAAL,CAAYwH,UAAZ,CAAuB7N,MAA1C,EAAkD,KAAlD;IACAI,4BAAYiP,KAAZ,EAAmB,OAAKhJ,MAAL,CAAYwH,UAAZ,CAAuBC,OAA1C,EAAmD,IAAnD;IACH,aAHD;IAIH;IACJ;IAn6CY,CAAjB;;IChCA;AACA;IAKA;;;;;AAKA,IAAO,SAASmI,QAAT,CAAkBze,KAAlB,EAAsC;IAAA,QAAb0e,IAAa,uEAAN,IAAM;;IACzC,QAAItc,MAAMpC,KAAV;;IAEA,QAAI0e,IAAJ,EAAU;IACN,YAAMC,SAASjY,SAASF,aAAT,CAAuB,GAAvB,CAAf;IACAmY,eAAOC,IAAP,GAAcxc,GAAd;IACAA,cAAMuc,OAAOC,IAAb;IACH;;IAED,QAAI;IACA,eAAO,IAAIhK,GAAJ,CAAQxS,GAAR,CAAP;IACH,KAFD,CAEE,OAAOY,CAAP,EAAU;IACR,eAAO,IAAP;IACH;IACJ;;IAED;AACA,IAAO,SAAS6b,cAAT,CAAwB7e,KAAxB,EAA+B;IAClC,QAAM8e,SAAS,IAAIC,eAAJ,EAAf;;IAEA,QAAI3e,GAAGC,MAAH,CAAUL,KAAV,CAAJ,EAAsB;IAClBM,eAAO6F,OAAP,CAAenG,KAAf,EAAsBwD,OAAtB,CAA8B,gBAAkB;IAAA;IAAA,gBAAhB8C,GAAgB;IAAA,gBAAXD,KAAW;;IAC5CyY,mBAAO3Q,GAAP,CAAW7H,GAAX,EAAgBD,KAAhB;IACH,SAFD;IAGH;;IAED,WAAOyY,MAAP;IACH;;ICtCD;AACA;IAuBA,IAAMnJ,WAAW;IACb;IACAqJ,SAFa,mBAEL;IACJ;IACA,YAAI,CAAC,KAAKtc,SAAL,CAAe6J,EAApB,EAAwB;IACpB;IACH;;IAED;IACA,YAAI,CAAC,KAAK0S,OAAN,IAAiB,KAAKC,SAAtB,IAAoC,KAAKlS,OAAL,IAAgB,CAACjB,QAAQqB,UAAjE,EAA8E;IAC1E;IACA,gBACIhN,GAAGW,KAAH,CAAS,KAAK8N,MAAL,CAAY6F,QAArB,KACA,KAAK7F,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,UAA9B,CADA,IAEA,KAAKuF,MAAL,CAAY6G,QAAZ,CAAqBpM,QAArB,CAA8B,UAA9B,CAHJ,EAIE;IACEoL,yBAASuH,eAAT,CAAyBpY,IAAzB,CAA8B,IAA9B;IACH;;IAED;IACH;;IAED;IACA,YAAI,CAACzD,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAc2Q,QAAzB,CAAL,EAAyC;IACrC,iBAAK3Q,QAAL,CAAc2Q,QAAd,GAAyBnP,cAAc,KAAd,EAAqBgB,0BAA0B,KAAKqH,MAAL,CAAYsG,SAAZ,CAAsBQ,QAAhD,CAArB,CAAzB;;IAEA/O,wBAAY,KAAK5B,QAAL,CAAc2Q,QAA1B,EAAoC,KAAK3Q,QAAL,CAAcI,OAAlD;IACH;;IAED;IACA;IACA,YAAIgG,QAAQC,IAAR,IAAgBvJ,OAAO8S,GAA3B,EAAgC;IAC5B,gBAAM5P,WAAW,KAAKiI,KAAL,CAAW5D,gBAAX,CAA4B,OAA5B,CAAjB;;IAEApI,kBAAMqE,IAAN,CAAWN,QAAX,EAAqBxB,OAArB,CAA6B,iBAAS;IAClC,oBAAMgL,MAAMvM,MAAM6L,YAAN,CAAmB,KAAnB,CAAZ;IACA,oBAAM1L,MAAMqc,SAASjQ,GAAT,CAAZ;;IAEA,oBACIpM,QAAQ,IAAR,IACAA,IAAI+c,QAAJ,KAAiBrd,OAAOgT,QAAP,CAAgB8J,IAAhB,CAAqBO,QADtC,IAEA,CAAC,OAAD,EAAU,QAAV,EAAoB7V,QAApB,CAA6BlH,IAAIgd,QAAjC,CAHJ,EAIE;IACE7M,0BAAM/D,GAAN,EAAW,MAAX,EACKtJ,IADL,CACU,gBAAQ;IACVjD,8BAAMsE,YAAN,CAAmB,KAAnB,EAA0BzE,OAAO8S,GAAP,CAAWyK,eAAX,CAA2BC,IAA3B,CAA1B;IACH,qBAHL,EAIKxL,KAJL,CAIW,YAAM;IACT/M,sCAAc9E,KAAd;IACH,qBANL;IAOH;IACJ,aAjBD;IAkBH;;IAED;IACA;IACA;IACA;IACA;IACA;;IAEA,YAAMsd,YAAY/N,OACdvQ,MAAMqE,IAAN,CAAWmG,UAAU8T,SAAV,IAAuB9T,UAAU+T,YAA5C,EAA0DxR,GAA1D,CAA8D;IAAA,mBAAYqO,SAAS9Y,KAAT,CAAe,GAAf,EAAoB,CAApB,CAAZ;IAAA,SAA9D,CADc,CAAlB;;IAIA,YAAI8Y,WAAW,CAAC,KAAKrK,OAAL,CAAanP,GAAb,CAAiB,UAAjB,KAAgC,KAAKgM,MAAL,CAAY8G,QAAZ,CAAqB0G,QAArD,IAAiE,MAAlE,EAA0E1L,WAA1E,EAAf;;IAEA;IACA,YAAI0L,aAAa,MAAjB,EAAyB;IAAA,2CACRkD,SADQ;;IACpBlD,oBADoB;IAExB;;IAED,YAAIoD,SAAS,KAAKzN,OAAL,CAAanP,GAAb,CAAiB,UAAjB,CAAb;IACA,YAAI,CAACzC,GAAGQ,OAAH,CAAW6e,MAAX,CAAL,EAAyB;IAClBA,kBADkB,GACP,KAAK5Q,MAAL,CAAY8G,QADL,CAClB8J,MADkB;IAExB;;IAEDnf,eAAOiE,MAAP,CAAc,KAAKoR,QAAnB,EAA6B;IACzByG,qBAAS,KADgB;IAEzBqD,0BAFyB;IAGzBpD,8BAHyB;IAIzBkD;IAJyB,SAA7B;;IAOA;IACA,YAAI,KAAKvS,OAAT,EAAkB;IACd,gBAAM0S,cAAc,KAAK7Q,MAAL,CAAY8G,QAAZ,CAAqBpC,MAArB,GAA8B,sBAA9B,GAAuD,aAA3E;IACA3P,eAAGC,IAAH,CAAQ,IAAR,EAAc,KAAKoJ,KAAL,CAAWG,UAAzB,EAAqCsS,WAArC,EAAkD/J,SAASpC,MAAT,CAAgBgJ,IAAhB,CAAqB,IAArB,CAAlD;IACH;;IAED;IACAzX,mBAAW6Q,SAASpC,MAAT,CAAgBgJ,IAAhB,CAAqB,IAArB,CAAX,EAAuC,CAAvC;IACH,KA5FY;;;IA8Fb;IACAhJ,UA/Fa,oBA+FJ;IAAA;;IACL,YAAM2I,SAASvG,SAASwG,SAAT,CAAmBtY,IAAnB,CAAwB,IAAxB,EAA8B,IAA9B,CAAf;IACA;IAFK,wBAGgD,KAAK8R,QAHrD;IAAA,YAGG8J,MAHH,aAGGA,MAHH;IAAA,YAGWpD,QAHX,aAGWA,QAHX;IAAA,YAGqBsD,IAHrB,aAGqBA,IAHrB;IAAA,YAG2BC,gBAH3B,aAG2BA,gBAH3B;;IAIL,YAAMC,iBAAiB1f,QAAQ+b,OAAOnR,IAAP,CAAY;IAAA,mBAAS9I,MAAMoa,QAAN,KAAmBA,QAA5B;IAAA,SAAZ,CAAR,CAAvB;;IAEA;IACA,YAAI,KAAKrP,OAAL,IAAgB,KAAKiS,OAAzB,EAAkC;IAC9B/C,mBAAO9V,MAAP,CAAc;IAAA,uBAAS,CAACuZ,KAAK9c,GAAL,CAASZ,KAAT,CAAV;IAAA,aAAd,EAAyCuB,OAAzC,CAAiD,iBAAS;IACtD,sBAAKuL,KAAL,CAAWC,GAAX,CAAe,aAAf,EAA8B/M,KAA9B;IACA;IACA0d,qBAAKxR,GAAL,CAASlM,KAAT,EAAgB;IACZ+Z,6BAAS/Z,MAAM6d,IAAN,KAAe;IADZ,iBAAhB;;IAIA;IACA7d,sBAAM6d,IAAN,GAAa,QAAb;;IAEA;IACAlc,mBAAGC,IAAH,CAAQ,KAAR,EAAc5B,KAAd,EAAqB,WAArB,EAAkC;IAAA,2BAAM0T,SAASoK,UAAT,CAAoBlc,IAApB,CAAyB,KAAzB,CAAN;IAAA,iBAAlC;IACH,aAZD;IAaH;;IAED;IACA,YAAKgc,kBAAkB,KAAKxD,QAAL,KAAkBA,QAArC,IAAkD,CAACH,OAAO5S,QAAP,CAAgBsW,gBAAhB,CAAvD,EAA0F;IACtFjK,qBAASqK,WAAT,CAAqBnc,IAArB,CAA0B,IAA1B,EAAgCwY,QAAhC;IACA1G,qBAASxS,MAAT,CAAgBU,IAAhB,CAAqB,IAArB,EAA2B4b,UAAUI,cAArC;IACH;;IAED;IACAjX,oBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuBV,QAAvB,CAAgC5D,OAArE,EAA8E,CAAC3R,GAAGkC,KAAH,CAAS4Z,MAAT,CAA/E;;IAEA;IACA,YAAI,CAAC,KAAKrN,MAAL,CAAY6F,QAAZ,IAAwB,EAAzB,EAA6BpL,QAA7B,CAAsC,UAAtC,KAAqD,KAAKuF,MAAL,CAAY6G,QAAZ,CAAqBpM,QAArB,CAA8B,UAA9B,CAAzD,EAAoG;IAChGoL,qBAASuH,eAAT,CAAyBpY,IAAzB,CAA8B,IAA9B;IACH;IACJ,KAnIY;;;IAqIb;IACA;IACAV,UAvIa,kBAuINnD,KAvIM,EAuIiB;IAAA,YAAhBoD,OAAgB,uEAAN,IAAM;;IAC1B;IACA,YAAI,CAAC,KAAKV,SAAL,CAAe6J,EAApB,EAAwB;IACpB;IACH;;IAJyB,YAMlB6P,OANkB,GAMN,KAAKzG,QANC,CAMlByG,OANkB;;IAO1B,YAAM6D,cAAc,KAAKpR,MAAL,CAAYwH,UAAZ,CAAuBV,QAAvB,CAAgC8J,MAApD;;IAEA;IACA;IACA,YAAMA,SAASrf,GAAGY,eAAH,CAAmBhB,KAAnB,IAA4B,CAACoc,OAA7B,GAAuCpc,KAAtD;;IAEA;IACA,YAAIyf,WAAWrD,OAAf,EAAwB;IACpB;IACA,gBAAI,CAAChZ,OAAL,EAAc;IACV,qBAAKuS,QAAL,CAAc8J,MAAd,GAAuBA,MAAvB;IACA,qBAAKzN,OAAL,CAAa7D,GAAb,CAAiB,EAAEwH,UAAU8J,MAAZ,EAAjB;IACH;;IAED;IACA,gBAAI,CAAC,KAAKpD,QAAN,IAAkBoD,MAAlB,IAA4B,CAACrc,OAAjC,EAA0C;IACtC,oBAAM8Y,SAASvG,SAASwG,SAAT,CAAmBtY,IAAnB,CAAwB,IAAxB,CAAf;IACA,oBAAM5B,QAAQ0T,SAASuK,SAAT,CAAmBrc,IAAnB,CAAwB,IAAxB,GAA+B,KAAK8R,QAAL,CAAc0G,QAA7C,2BAA0D,KAAK1G,QAAL,CAAc4J,SAAxE,IAAoF,IAApF,CAAd;;IAEA;IACA,qBAAK5J,QAAL,CAAc0G,QAAd,GAAyBpa,MAAMoa,QAA/B;;IAEA;IACA1G,yBAASxH,GAAT,CAAatK,IAAb,CAAkB,IAAlB,EAAwBqY,OAAOzK,OAAP,CAAexP,KAAf,CAAxB;IACA;IACH;;IAED;IACA,iBAAK+C,QAAL,CAAcoQ,OAAd,CAAsBO,QAAtB,CAA+BwC,OAA/B,GAAyCsH,MAAzC;;IAEA;IACA7W,wBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqCgb,WAArC,EAAkDR,MAAlD;;IAEA,iBAAK9J,QAAL,CAAcyG,OAAd,GAAwBqD,MAAxB;;IAEA;IACA/K,qBAASmH,aAAT,CAAuBhY,IAAvB,CAA4B,IAA5B,EAAkC,UAAlC;;IAEA;IACAM,yBAAaN,IAAb,CAAkB,IAAlB,EAAwB,KAAKoJ,KAA7B,EAAoCwS,SAAS,iBAAT,GAA6B,kBAAjE;IACH;IACJ,KAvLY;;;IAyLb;IACA;IACAtR,OA3La,kBA2LT3I,KA3LS,EA2Lc;IAAA,YAAhBpC,OAAgB,uEAAN,IAAM;;IACvB,YAAM8Y,SAASvG,SAASwG,SAAT,CAAmBtY,IAAnB,CAAwB,IAAxB,CAAf;;IAEA;IACA,YAAI2B,UAAU,CAAC,CAAf,EAAkB;IACdmQ,qBAASxS,MAAT,CAAgBU,IAAhB,CAAqB,IAArB,EAA2B,KAA3B,EAAkCT,OAAlC;IACA;IACH;;IAED,YAAI,CAAChD,GAAGG,MAAH,CAAUiF,KAAV,CAAL,EAAuB;IACnB,iBAAKuJ,KAAL,CAAWyH,IAAX,CAAgB,0BAAhB,EAA4ChR,KAA5C;IACA;IACH;;IAED,YAAI,EAAEA,SAAS0W,MAAX,CAAJ,EAAwB;IACpB,iBAAKnN,KAAL,CAAWyH,IAAX,CAAgB,iBAAhB,EAAmChR,KAAnC;IACA;IACH;;IAED,YAAI,KAAKmQ,QAAL,CAAcoG,YAAd,KAA+BvW,KAAnC,EAA0C;IACtC,iBAAKmQ,QAAL,CAAcoG,YAAd,GAA6BvW,KAA7B;IACA,gBAAMvD,QAAQia,OAAO1W,KAAP,CAAd;;IAFsC,uBAGjBvD,SAAS,EAHQ;IAAA,gBAG9Boa,QAH8B,QAG9BA,QAH8B;;IAKtC;;;IACA,iBAAK1G,QAAL,CAAciK,gBAAd,GAAiC3d,KAAjC;;IAEA;IACAyS,qBAASmH,aAAT,CAAuBhY,IAAvB,CAA4B,IAA5B,EAAkC,UAAlC;;IAEA;IACA,gBAAI,CAACT,OAAL,EAAc;IACV,qBAAKuS,QAAL,CAAc0G,QAAd,GAAyBA,QAAzB;IACA,qBAAKrK,OAAL,CAAa7D,GAAb,CAAiB,EAAEkO,kBAAF,EAAjB;IACH;;IAED;IACA,gBAAI,KAAKK,OAAT,EAAkB;IACd,qBAAKyD,KAAL,CAAWC,eAAX,CAA2B/D,QAA3B;IACH;;IAED;IACAlY,yBAAaN,IAAb,CAAkB,IAAlB,EAAwB,KAAKoJ,KAA7B,EAAoC,gBAApC;IACH;;IAED;IACA0I,iBAASxS,MAAT,CAAgBU,IAAhB,CAAqB,IAArB,EAA2B,IAA3B,EAAiCT,OAAjC;;IAEA,YAAI,KAAK4J,OAAL,IAAgB,KAAKiS,OAAzB,EAAkC;IAC9B;IACAtJ,qBAASoK,UAAT,CAAoBlc,IAApB,CAAyB,IAAzB;IACH;IACJ,KA/OY;;;IAiPb;IACA;IACAmc,eAnPa,uBAmPDhgB,KAnPC,EAmPsB;IAAA,YAAhBoD,OAAgB,uEAAN,IAAM;;IAC/B,YAAI,CAAChD,GAAGM,MAAH,CAAUV,KAAV,CAAL,EAAuB;IACnB,iBAAK+O,KAAL,CAAWyH,IAAX,CAAgB,2BAAhB,EAA6CxW,KAA7C;IACA;IACH;IACD;IACA,YAAMqc,WAAWrc,MAAM2Q,WAAN,EAAjB;IACA,aAAKgF,QAAL,CAAc0G,QAAd,GAAyBA,QAAzB;;IAEA;IACA,YAAMH,SAASvG,SAASwG,SAAT,CAAmBtY,IAAnB,CAAwB,IAAxB,CAAf;IACA,YAAM5B,QAAQ0T,SAASuK,SAAT,CAAmBrc,IAAnB,CAAwB,IAAxB,EAA8B,CAACwY,QAAD,CAA9B,CAAd;IACA1G,iBAASxH,GAAT,CAAatK,IAAb,CAAkB,IAAlB,EAAwBqY,OAAOzK,OAAP,CAAexP,KAAf,CAAxB,EAA+CmB,OAA/C;IACH,KAhQY;;;IAkQb;IACA;IACA;IACA+Y,aArQa,uBAqQa;IAAA;;IAAA,YAAhB5I,MAAgB,uEAAP,KAAO;;IACtB;IACA,YAAM2I,SAASjb,MAAMqE,IAAN,CAAW,CAAC,KAAK2H,KAAL,IAAc,EAAf,EAAmBG,UAAnB,IAAiC,EAA5C,CAAf;IACA;IACA;IACA,eAAO8O,OACF9V,MADE,CACK;IAAA,mBAAS,CAAC,OAAK4G,OAAN,IAAiBuG,MAAjB,IAA2B,OAAKoC,QAAL,CAAcgK,IAAd,CAAmBU,GAAnB,CAAuBpe,KAAvB,CAApC;IAAA,SADL,EAEFmE,MAFE,CAEK;IAAA,mBAAS,CAAC,UAAD,EAAa,WAAb,EAA0BkD,QAA1B,CAAmCrH,MAAME,IAAzC,CAAT;IAAA,SAFL,CAAP;IAGH,KA7QY;;;IA+Qb;IACA+d,aAhRa,qBAgRHX,SAhRG,EAgRuB;IAAA;;IAAA,YAAf1W,KAAe,uEAAP,KAAO;;IAChC,YAAMqT,SAASvG,SAASwG,SAAT,CAAmBtY,IAAnB,CAAwB,IAAxB,CAAf;IACA,YAAMyc,gBAAgB,SAAhBA,aAAgB;IAAA,mBAAS9f,OAAO,CAAC,OAAKmV,QAAL,CAAcgK,IAAd,CAAmB9c,GAAnB,CAAuBZ,KAAvB,KAAiC,EAAlC,EAAsC+Z,OAA7C,CAAT;IAAA,SAAtB;IACA,YAAMuE,SAAStf,MAAMqE,IAAN,CAAW4W,MAAX,EAAmBV,IAAnB,CAAwB,UAACC,CAAD,EAAIC,CAAJ;IAAA,mBAAU4E,cAAc5E,CAAd,IAAmB4E,cAAc7E,CAAd,CAA7B;IAAA,SAAxB,CAAf;IACA,YAAIxZ,cAAJ;IACAsd,kBAAUiB,KAAV,CAAgB,oBAAY;IACxBve,oBAAQse,OAAOxV,IAAP,CAAY;IAAA,uBAAS9I,MAAMoa,QAAN,KAAmBA,QAA5B;IAAA,aAAZ,CAAR;IACA,mBAAO,CAACpa,KAAR,CAFwB;IAG3B,SAHD;IAIA;IACA,eAAOA,UAAU4G,QAAQ0X,OAAO,CAAP,CAAR,GAAoBtV,SAA9B,CAAP;IACH,KA3RY;;;IA6Rb;IACAwV,mBA9Ra,6BA8RK;IACd,eAAO9K,SAASwG,SAAT,CAAmBtY,IAAnB,CAAwB,IAAxB,EAA8B,KAAKkY,YAAnC,CAAP;IACH,KAhSY;;;IAkSb;IACAH,YAnSa,oBAmSJ3Z,KAnSI,EAmSG;IACZ,YAAI8Z,eAAe9Z,KAAnB;;IAEA,YAAI,CAAC7B,GAAG6B,KAAH,CAAS8Z,YAAT,CAAD,IAA2BhQ,QAAQqB,UAAnC,IAAiD,KAAKuI,QAAL,CAAcyG,OAAnE,EAA4E;IACxEL,2BAAepG,SAAS8K,eAAT,CAAyB5c,IAAzB,CAA8B,IAA9B,CAAf;IACH;;IAED,YAAIzD,GAAG6B,KAAH,CAAS8Z,YAAT,CAAJ,EAA4B;IACxB,gBAAI,CAAC3b,GAAGkC,KAAH,CAASyZ,aAAalE,KAAtB,CAAL,EAAmC;IAC/B,uBAAOkE,aAAalE,KAApB;IACH;;IAED,gBAAI,CAACzX,GAAGkC,KAAH,CAASyZ,aAAaM,QAAtB,CAAL,EAAsC;IAClC,uBAAOpa,MAAMoa,QAAN,CAAe5L,WAAf,EAAP;IACH;;IAED,mBAAOY,KAAKxO,GAAL,CAAS,SAAT,EAAoB,KAAKgM,MAAzB,CAAP;IACH;;IAED,eAAOwC,KAAKxO,GAAL,CAAS,UAAT,EAAqB,KAAKgM,MAA1B,CAAP;IACH,KAvTY;;;IAyTb;IACA;IACAkR,cA3Ta,sBA2TF/f,KA3TE,EA2TK;IACd;IACA,YAAI,CAAC,KAAK0C,SAAL,CAAe6J,EAApB,EAAwB;IACpB;IACH;;IAED,YAAI,CAACnM,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAc2Q,QAAzB,CAAL,EAAyC;IACrC,iBAAK5G,KAAL,CAAWyH,IAAX,CAAgB,kCAAhB;IACA;IACH;;IAED;IACA,YAAI,CAACpW,GAAGY,eAAH,CAAmBhB,KAAnB,CAAD,IAA8B,CAACiB,MAAMC,OAAN,CAAclB,KAAd,CAAnC,EAAyD;IACrD,iBAAK+O,KAAL,CAAWyH,IAAX,CAAgB,2BAAhB,EAA6CxW,KAA7C;IACA;IACH;;IAED,YAAI0gB,OAAO1gB,KAAX;;IAEA;IACA,YAAI,CAAC0gB,IAAL,EAAW;IACP,gBAAMze,QAAQ0T,SAAS8K,eAAT,CAAyB5c,IAAzB,CAA8B,IAA9B,CAAd;IACA6c,mBAAOzf,MAAMqE,IAAN,CAAW,CAACrD,SAAS,EAAV,EAAc0e,UAAd,IAA4B,EAAvC,EACF3S,GADE,CACE;IAAA,uBAAOnM,IAAI+e,YAAJ,EAAP;IAAA,aADF,EAEF5S,GAFE,CAEEoD,OAFF,CAAP;IAGH;;IAED;IACA,YAAMwC,UAAU8M,KAAK1S,GAAL,CAAS;IAAA,mBAAW6S,QAAQ/Y,IAAR,EAAX;IAAA,SAAT,EAAoCwP,IAApC,CAAyC,IAAzC,CAAhB;IACA,YAAMwJ,UAAUlN,YAAY,KAAK5O,QAAL,CAAc2Q,QAAd,CAAuBzE,SAAnD;;IAEA,YAAI4P,OAAJ,EAAa;IACT;IACA7Z,yBAAa,KAAKjC,QAAL,CAAc2Q,QAA3B;IACA,gBAAMoL,UAAUva,cAAc,MAAd,EAAsBgB,0BAA0B,KAAKqH,MAAL,CAAYsG,SAAZ,CAAsB4L,OAAhD,CAAtB,CAAhB;IACAA,oBAAQ7P,SAAR,GAAoB0C,OAApB;IACA,iBAAK5O,QAAL,CAAc2Q,QAAd,CAAuB5P,WAAvB,CAAmCgb,OAAnC;;IAEA;IACA5c,yBAAaN,IAAb,CAAkB,IAAlB,EAAwB,KAAKoJ,KAA7B,EAAoC,WAApC;IACH;IACJ;IApWY,CAAjB;;ICxBA;IACA;IACA;;IAEA,IAAM+T,aAAW;IACb;IACAjP,aAAS,IAFI;;IAIb;IACAR,WAAO,EALM;;IAOb;IACAxC,WAAO,KARM;;IAUb;IACAkS,cAAU,KAXG;;IAab;IACAC,eAAW,IAdE;;IAgBb;IACA;IACA9U,iBAAa,IAlBA;;IAoBb;IACAkF,cAAU,EArBG;;IAuBb;IACA0E,YAAQ,CAxBK;IAyBbyD,WAAO,KAzBM;;IA2Bb;IACAtD,cAAU,IA5BG;;IA8Bb;IACA;IACA6E,qBAAiB,IAhCJ;;IAkCb;IACAJ,gBAAY,IAnCC;;IAqCb;IACAuG,kBAAc,IAtCD;;IAwCb;IACAC,WAAO,MAzCM;;IA2Cb;IACAC,iBAAa,IA5CA;;IA8Cb;IACAC,kBAAc,IA/CD;;IAiDb;IACAC,gBAAY,KAlDC;;IAoDb;IACAC,wBAAoB,IArDP;;IAuDb;IACAtO,gBAAY,IAxDC;IAyDb2D,gBAAY,MAzDC;IA0DbhC,aAAS,qCA1DI;;IA4Db;IACA/F,gBAAY,sCA7DC;;IA+Db;IACAH,aAAS;IACLqN,iBAAS,GADJ;IAELrZ,iBAAS,CACL,IADK,EAEL,IAFK,EAGL,IAHK,EAIL,IAJK,EAKL,IALK,EAML,GANK,EAOL,GAPK,EAQL,GARK,EASL,GATK,EAUL,GAVK,EAWL,SAXK;IAFJ,KAhEI;;IAiFb;IACA8e,UAAM;IACFhC,gBAAQ;IACR;IACA;IAHE,KAlFO;;IAwFb;IACAhD,WAAO;IACHiF,kBAAU,CADP;IAEH/e,iBAAS,CAAC,GAAD,EAAM,IAAN,EAAY,CAAZ,EAAe,IAAf,EAAqB,GAArB,EAA0B,IAA1B,EAAgC,CAAhC;IAFN,KAzFM;;IA8Fb;IACAgf,cAAU;IACN7X,iBAAS,IADH;IAEN8X,gBAAQ;IAFF,KA/FG;;IAoGb;IACA1H,cAAU;IACNxF,kBAAU,KADJ;IAENqB,cAAM;IAFA,KArGG;;IA0Gb;IACAJ,cAAU;IACN8J,gBAAQ,KADF;IAENpD,kBAAU,MAFJ;IAGN;IACA;IACA9I,gBAAQ;IALF,KA3GG;;IAmHb;IACAqC,gBAAY;IACR7D,iBAAS,IADD;IAER8P,kBAAU,IAFF;IAGRC,mBAAW,KAHH;IAAA,KApHC;;IA0Hb;IACA9P,aAAS;IACLD,iBAAS,IADJ;IAELzL,aAAK;IAFA,KA3HI;;IAgIb;IACAoO,cAAU,CACN,YADM;IAEN;IACA;IACA,UAJM;IAKN;IACA,cANM,EAON,cAPM,EAQN,MARM,EASN,QATM,EAUN,UAVM,EAWN,UAXM,EAYN,KAZM,EAaN,SAbM,EAcN,YAdM,CAjIG;IAiJbgB,cAAU,CAAC,UAAD,EAAa,SAAb,EAAwB,OAAxB,CAjJG;;IAmJb;IACArE,UAAM;IACFiE,iBAAS,SADP;IAEFC,gBAAQ,oBAFN;IAGF9G,cAAM,MAHJ;IAIF4G,eAAO,OAJL;IAKFG,qBAAa,qBALX;IAMFO,cAAM,MANJ;IAOFgM,mBAAW,6BAPT;IAQFpJ,gBAAQ,QARN;IASFmB,kBAAU,UATR;IAUF1L,qBAAa,cAVX;IAWF+H,kBAAU,UAXR;IAYFH,gBAAQ,QAZN;IAaFP,cAAM,MAbJ;IAcFuM,gBAAQ,QAdN;IAeFC,wBAAgB,iBAfd;IAgBFC,yBAAiB,kBAhBf;IAiBFC,yBAAiB,kBAjBf;IAkBFC,wBAAgB,iBAlBd;IAmBFC,oBAAY,oBAnBV;IAoBF1M,kBAAU,UApBR;IAqBFD,kBAAU,UArBR;IAsBF4M,kBAAU,0BAtBR;IAuBF7F,eAAO,OAvBL;IAwBF8F,gBAAQ,QAxBN;IAyBF5T,iBAAS,SAzBP;IA0BF8S,cAAM,MA1BJ;IA2BFtZ,eAAO,OA3BL;IA4BFqa,aAAK,KA5BH;IA6BFC,aAAK,KA7BH;IA8BFC,eAAO,OA9BL;IA+BFC,kBAAU,UA/BR;IAgCF5Q,iBAAS,SAhCP;IAiCF6Q,uBAAe,IAjCb;IAkCFC,sBAAc;IACV,kBAAM,IADI;IAEV,kBAAM,IAFI;IAGV,kBAAM,IAHI;IAIV,iBAAK,IAJK;IAKV,iBAAK,IALK;IAMV,iBAAK;IANK;IAlCZ,KApJO;;IAgMb;IACAC,UAAM;IACFC,eAAO;IACHC,iBAAK,wCADF;IAEHC,oBAAQ,wCAFL;IAGH3W,iBAAK;IAHF,SADL;IAMF4W,iBAAS;IACLF,iBAAK,oCADA;IAEL1W,iBACI;IAHC,SANP;IAWF6W,mBAAW;IACPH,iBAAK;IADE;IAXT,KAjMO;;IAiNb;IACAI,eAAW;IACPrN,cAAM,IADC;IAEPtH,cAAM,IAFC;IAGP4G,eAAO,IAHA;IAIPC,iBAAS,IAJF;IAKPC,gBAAQ,IALD;IAMPC,qBAAa,IANN;IAOPC,cAAM,IAPC;IAQPO,gBAAQ,IARD;IASPL,kBAAU,IATH;IAUPC,oBAAY,IAVL;IAWPnJ,aAAK,IAXE;IAYPE,iBAAS,IAZF;IAaP8P,eAAO,IAbA;IAcP9N,iBAAS,IAdF;IAeP8S,cAAM,IAfC;IAgBPpF,kBAAU;IAhBH,KAlNE;;IAqOb;IACA/Y,YAAQ;IACJ;IACA;IACA,WAHI,EAIJ,UAJI,EAKJ,SALI,EAMJ,SANI,EAOJ,SAPI,EAQJ,SARI,EASJ,gBATI,EAUJ,WAVI,EAWJ,YAXI,EAYJ,gBAZI,EAaJ,YAbI,EAcJ,cAdI,EAeJ,MAfI,EAgBJ,OAhBI,EAiBJ,OAjBI,EAkBJ,SAlBI,EAmBJ,QAnBI,EAoBJ,SApBI,EAqBJ,YArBI,EAsBJ,WAtBI;;IAwBJ;IACA,qBAzBI,EA0BJ,gBA1BI,EA2BJ,iBA3BI,EA4BJ,kBA5BI,EA6BJ,gBA7BI,EA8BJ,gBA9BI,EA+BJ,eA/BI,EAgCJ,OAhCI;;IAkCJ;IACA,iBAnCI,EAoCJ,eApCI,EAqCJ,kBArCI;;IAuCJ;IACA,eAxCI,EAyCJ,iBAzCI,EA0CJ,kBA1CI,EA2CJ,WA3CI,EA4CJ,aA5CI,EA6CJ,aA7CI,EA8CJ,gBA9CI,EA+CJ,eA/CI,EAgDJ,UAhDI,CAtOK;;IAyRb;IACA;IACA6R,eAAW;IACPkO,kBAAU,4CADH;IAEPpe,mBAAW,OAFJ;IAGPyP,kBAAU;IACNzP,uBAAW,IADL;IAENG,qBAAS;IAFH,SAHH;IAOPoZ,gBAAQ,aAPD;IAQPpJ,iBAAS;IACL3G,kBAAM,oBADD;IAEL4G,mBAAO,qBAFF;IAGLC,qBAAS,uBAHJ;IAILC,oBAAQ,sBAJH;IAKLC,yBAAa,4BALR;IAMLC,kBAAM,oBAND;IAOLE,sBAAU,wBAPL;IAQLC,wBAAY,0BARP;IASLnJ,iBAAK,mBATA;IAULE,qBAAS,uBAVJ;IAWL+I,sBAAU,wBAXL;IAYL+L,kBAAM;IAZD,SARF;IAsBP3L,gBAAQ;IACJC,kBAAM,oBADF;IAEJC,oBAAQ,sBAFJ;IAGJyG,mBAAO,qBAHH;IAIJJ,sBAAU,wBAJN;IAKJ1N,qBAAS;IALL,SAtBD;IA6BPsH,iBAAS;IACL7H,yBAAa,sBADR;IAEL+H,sBAAU,uBAFL;IAGLD,oBAAQ,yBAHH;IAILuL,kBAAM,uBAJD;IAKLzL,oBAAQ;IALH,SA7BF;IAoCPH,kBAAU,iBApCH;IAqCPF,kBAAU,iBArCH;IAsCPoL,iBAAS,gBAtCF;IAuCPtJ,cAAM;IACF9I,qBAAS;IADP;IAvCC,KA3RE;;IAuUb;IACA0H,gBAAY;IACR1S,cAAM,WADE;IAERwI,kBAAU,WAFF;IAGRF,eAAO,qBAHC;IAIRkU,eAAO,mBAJC;IAKRmD,wBAAgB,8BALR;IAMRC,gBAAQ,cANA;IAORC,uBAAe,sBAPP;IAQRC,aAAK,WARG;IASRzL,iBAAS,eATD;IAURC,wBAAgB,wBAVR;IAWRyL,iBAAS,eAXD;IAYRrV,gBAAQ,cAZA;IAaRsV,iBAAS,eAbD;IAcRC,iBAAS,eAdD;IAeRC,eAAO,aAfC;IAgBRvN,iBAAS,eAhBD;IAiBRoK,cAAM,YAjBE;IAkBRlY,gBAAQ,eAlBA;IAmBR8Y,sBAAc,qBAnBN;IAoBRzV,eAAO,cApBC;IAqBRiY,iBAAS,gBArBD;IAsBRC,qBAAa,eAtBL;IAuBRC,sBAAc,qBAvBN;IAwBRvM,cAAM;IACFpR,mBAAO,mBADL;IAEFmR,mBAAO,aAFL;IAGFxE,kBAAM;IAHJ,SAxBE;IA6BR2C,kBAAU;IACN5D,qBAAS,wBADH;IAEN0N,oBAAQ;IAFF,SA7BF;IAiCR7J,oBAAY;IACR7D,qBAAS,0BADD;IAER8P,sBAAU;IAFF,SAjCJ;IAqCRpV,aAAK;IACD/J,uBAAW,qBADV;IAED+c,oBAAQ;IAFP,SArCG;IAyCR9S,iBAAS;IACLjK,uBAAW,yBADN;IAEL+c,oBAAQ;IAFH,SAzCD;IA6CRwE,kBAAU;IA7CF,KAxUC;;IAwXb;IACA/d,gBAAY;IACRia,eAAO;IACHhU,sBAAU,oBADP;IAEH7D,gBAAI;IAFD;IADC,KAzXC;;IAgYb;IACA9F,UAAM;IACF0hB,gBAAQ;IADN,KAjYO;;IAqYb;IACA;IACAT,SAAK;IACD1R,iBAAS,KADR;IAEDoS,qBAAa;IAFZ;IAvYQ,CAAjB;;ICJA;IACA;IACA;;AAEA,IAAO,IAAMC,YAAY;IACrB1W,WAAO,OADc;IAErBwV,aAAS,SAFY;IAGrBH,WAAO;IAHc,CAAlB;;AAMP,IAAO,IAAMsB,QAAQ;IACjBrY,WAAO,OADU;IAEjBC,WAAO;IAFU,CAAd;;IAKP;;;;AAIA,IAAO,SAASqY,gBAAT,CAA0BliB,GAA1B,EAA+B;IAClC;IACA,QAAI,wDAAwDC,IAAxD,CAA6DD,GAA7D,CAAJ,EAAuE;IACnE,eAAOgiB,UAAUlB,OAAjB;IACH;;IAED;IACA,QAAI,wDAAwD7gB,IAAxD,CAA6DD,GAA7D,CAAJ,EAAuE;IACnE,eAAOgiB,UAAUrB,KAAjB;IACH;;IAED,WAAO,IAAP;IACH;;IC/BD;IACA;IACA;;IAEA,IAAMwB,OAAO,SAAPA,IAAO,GAAM,EAAnB;;QAEqBC;IACjB,uBAA6B;IAAA,YAAjBzS,OAAiB,uEAAP,KAAO;IAAA;;IACzB,aAAKA,OAAL,GAAejQ,OAAO2iB,OAAP,IAAkB1S,OAAjC;;IAEA,YAAI,KAAKA,OAAT,EAAkB;IACd,iBAAK/C,GAAL,CAAS,mBAAT;IACH;IACJ;;;;mCAES;IACN;IACA,mBAAO,KAAK+C,OAAL,GAAejR,SAASqI,SAAT,CAAmBoT,IAAnB,CAAwB1Y,IAAxB,CAA6B4gB,QAAQzV,GAArC,EAA0CyV,OAA1C,CAAf,GAAoEF,IAA3E;IACH;;;mCACU;IACP;IACA,mBAAO,KAAKxS,OAAL,GAAejR,SAASqI,SAAT,CAAmBoT,IAAnB,CAAwB1Y,IAAxB,CAA6B4gB,QAAQjO,IAArC,EAA2CiO,OAA3C,CAAf,GAAqEF,IAA5E;IACH;;;mCACW;IACR;IACA,mBAAO,KAAKxS,OAAL,GAAejR,SAASqI,SAAT,CAAmBoT,IAAnB,CAAwB1Y,IAAxB,CAA6B4gB,QAAQlO,KAArC,EAA4CkO,OAA5C,CAAf,GAAsEF,IAA7E;IACH;;;;;IC1BL;AACA;IASA,SAASG,QAAT,GAAoB;IAChB,QAAI,CAAC,KAAK3S,OAAV,EAAmB;IACf;IACH;;IAED;IACA,QAAM6F,SAAS,KAAK1J,MAAL,CAAYlJ,QAAZ,CAAqBoQ,OAArB,CAA6BQ,UAA5C;IACA,QAAIxV,GAAGmB,OAAH,CAAWqW,MAAX,CAAJ,EAAwB;IACpBA,eAAOO,OAAP,GAAiB,KAAKsH,MAAtB;IACH;;IAED;IACAtb,iBAAaN,IAAb,CAAkB,KAAKqK,MAAvB,EAA+B,KAAKrH,MAApC,EAA4C,KAAK4Y,MAAL,GAAc,iBAAd,GAAkC,gBAA9E,EAAgG,IAAhG;;IAEA;IACA,QAAI,CAACrU,QAAQS,KAAb,EAAoB;IAChB5B,kBAAUpG,IAAV,CAAe,KAAKqK,MAApB,EAA4B,KAAKrH,MAAjC,EAAyC,KAAK4Y,MAA9C;IACH;IACJ;;IAED,SAASkF,cAAT,GAAwC;IAAA,QAAhBxhB,MAAgB,uEAAP,KAAO;;IACpC;IACA,QAAIA,MAAJ,EAAY;IACR,aAAKyhB,cAAL,GAAsB;IAClBC,eAAG/iB,OAAOgjB,OAAP,IAAkB,CADH;IAElBC,eAAGjjB,OAAOkjB,OAAP,IAAkB;IAFH,SAAtB;IAIH,KALD,MAKO;IACHljB,eAAOmjB,QAAP,CAAgB,KAAKL,cAAL,CAAoBC,CAApC,EAAuC,KAAKD,cAAL,CAAoBG,CAA3D;IACH;;IAED;IACAre,aAASsD,IAAT,CAAcgB,KAAd,CAAoBka,QAApB,GAA+B/hB,SAAS,QAAT,GAAoB,EAAnD;;IAEA;IACAyF,gBAAY,KAAK/B,MAAjB,EAAyB,KAAKqH,MAAL,CAAYW,MAAZ,CAAmBwH,UAAnB,CAA8BT,UAA9B,CAAyCiM,QAAlE,EAA4E1e,MAA5E;;IAEA;IACAuhB,aAAS7gB,IAAT,CAAc,IAAd;IACH;;QAEKshB;IACF,wBAAYjX,MAAZ,EAAoB;IAAA;;IAAA;;IAChB;IACA,aAAKA,MAAL,GAAcA,MAAd;;IAEA;IACA,aAAKyB,MAAL,GAAcwV,WAAWxV,MAAzB;IACA,aAAKyV,QAAL,GAAgBD,WAAWC,QAA3B;;IAEA;IACA,aAAKR,cAAL,GAAsB,EAAEC,GAAG,CAAL,EAAQE,GAAG,CAAX,EAAtB;;IAEA;IACA;IACAnhB,WAAGC,IAAH,CACI,KAAKqK,MADT,EAEIxH,QAFJ,EAGI,KAAKiJ,MAAL,KAAgB,IAAhB,GAAuB,oBAAvB,GAAiD,KAAKA,MAAtD,qBAHJ,EAII,YAAM;IACF;IACA+U,qBAAS7gB,IAAT,CAAc,KAAd;IACH,SAPL;;IAUA;IACAD,WAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYlJ,QAAZ,CAAqBC,SAA1C,EAAqD,UAArD,EAAiE,iBAAS;IACtE;IACA,gBAAI7E,GAAGmB,OAAH,CAAW,MAAK2M,MAAL,CAAYlJ,QAAZ,CAAqB0P,QAAhC,KAA6C,MAAKxG,MAAL,CAAYlJ,QAAZ,CAAqB0P,QAArB,CAA8B1L,QAA9B,CAAuCrH,MAAMkF,MAA7C,CAAjD,EAAuG;IACnG;IACH;;IAED,kBAAK1D,MAAL;IACH,SAPD;;IASA;IACA,aAAKoQ,MAAL;IACH;;IAED;;;;;;;IAsEA;qCACS;IACL,gBAAI,KAAKxB,OAAT,EAAkB;IACd,qBAAK7D,MAAL,CAAYa,KAAZ,CAAkBC,GAAlB,EAAyBmW,WAAWE,MAAX,GAAoB,QAApB,GAA+B,UAAxD;IACH,aAFD,MAEO;IACH,qBAAKnX,MAAL,CAAYa,KAAZ,CAAkBC,GAAlB,CAAsB,gDAAtB;IACH;;IAED;IACApG,wBAAY,KAAKsF,MAAL,CAAYlJ,QAAZ,CAAqBC,SAAjC,EAA4C,KAAKiJ,MAAL,CAAYW,MAAZ,CAAmBwH,UAAnB,CAA8BT,UAA9B,CAAyC7D,OAArF,EAA8F,KAAKA,OAAnG;IACH;;IAED;;;;oCACQ;IACJ,gBAAI,CAAC,KAAKA,OAAV,EAAmB;IACf;IACH;;IAED;IACA,gBAAI3G,QAAQS,KAAR,IAAiB,KAAKqC,MAAL,CAAYW,MAAZ,CAAmB+G,UAAnB,CAA8BkM,SAAnD,EAA8D;IAC1D,oBAAI,KAAK5T,MAAL,CAAYwV,OAAhB,EAAyB;IACrB,yBAAK7c,MAAL,CAAYye,qBAAZ;IACH;IACJ,aAJD,MAIO,IAAI,CAACH,WAAWE,MAAhB,EAAwB;IAC3BV,+BAAe9gB,IAAf,CAAoB,IAApB,EAA0B,IAA1B;IACH,aAFM,MAEA,IAAI,CAAC,KAAK8L,MAAV,EAAkB;IACrB,qBAAK9I,MAAL,CAAY0e,iBAAZ;IACH,aAFM,MAEA,IAAI,CAACnlB,GAAGkC,KAAH,CAAS,KAAKqN,MAAd,CAAL,EAA4B;IAC/B,qBAAK9I,MAAL,CAAe,KAAK8I,MAApB,eAAoC,KAAKyV,QAAzC;IACH;IACJ;;IAED;;;;mCACO;IACH,gBAAI,CAAC,KAAKrT,OAAV,EAAmB;IACf;IACH;;IAED;IACA,gBAAI3G,QAAQS,KAAR,IAAiB,KAAKqC,MAAL,CAAYW,MAAZ,CAAmB+G,UAAnB,CAA8BkM,SAAnD,EAA8D;IAC1D,qBAAKjb,MAAL,CAAY2e,oBAAZ;IACA,qBAAKtX,MAAL,CAAYO,IAAZ;IACH,aAHD,MAGO,IAAI,CAAC0W,WAAWE,MAAhB,EAAwB;IAC3BV,+BAAe9gB,IAAf,CAAoB,IAApB,EAA0B,KAA1B;IACH,aAFM,MAEA,IAAI,CAAC,KAAK8L,MAAV,EAAkB;IACrB,iBAACjJ,SAAS+e,gBAAT,IAA6B/e,SAAS0b,cAAvC,EAAuDve,IAAvD,CAA4D6C,QAA5D;IACH,aAFM,MAEA,IAAI,CAACtG,GAAGkC,KAAH,CAAS,KAAKqN,MAAd,CAAL,EAA4B;IAC/B,oBAAM+V,SAAS,KAAK/V,MAAL,KAAgB,KAAhB,GAAwB,QAAxB,GAAmC,MAAlD;IACAjJ,8BAAY,KAAKiJ,MAAjB,GAA0B+V,MAA1B,GAAmC,KAAKN,QAAxC;IACH;IACJ;;IAED;;;;qCACS;IACL,gBAAI,CAAC,KAAK3F,MAAV,EAAkB;IACd,qBAAKkG,KAAL;IACH,aAFD,MAEO;IACH,qBAAKC,IAAL;IACH;IACJ;;;;;IA5FD;mCACc;IACV,mBACI,CAACT,WAAWE,MAAX,IAAqB,KAAKnX,MAAL,CAAYW,MAAZ,CAAmB+G,UAAnB,CAA8BiM,QAApD,KACA,KAAK3T,MAAL,CAAYW,MAAZ,CAAmB+G,UAAnB,CAA8B7D,OAD9B,IAEA,KAAK7D,MAAL,CAAYxL,SAAZ,CAAsB6J,EAFtB,IAGA,KAAK2B,MAAL,CAAY+Q,OAJhB;IAMH;;IAED;;;;mCACa;IACT,gBAAI,CAAC,KAAKlN,OAAV,EAAmB;IACf,uBAAO,KAAP;IACH;;IAED;IACA,gBAAI,CAACoT,WAAWE,MAAhB,EAAwB;IACpB,uBAAOpc,SAAS,KAAKpC,MAAd,EAAsB,KAAKqH,MAAL,CAAYW,MAAZ,CAAmBwH,UAAnB,CAA8BT,UAA9B,CAAyCiM,QAA/D,CAAP;IACH;;IAED,gBAAMtgB,UAAU,CAAC,KAAKoO,MAAN,GAAejJ,SAASmf,iBAAxB,GAA4Cnf,cAAY,KAAKiJ,MAAjB,GAA0B,KAAKyV,QAA/B,aAA5D;;IAEA,mBAAO7jB,YAAY,KAAKsF,MAAxB;IACH;;IAED;;;;mCACa;IACT,mBAAOuE,QAAQS,KAAR,IAAiB,KAAKqC,MAAL,CAAYW,MAAZ,CAAmB+G,UAAnB,CAA8BkM,SAA/C,GACD,KAAK5T,MAAL,CAAYjB,KADX,GAED,KAAKiB,MAAL,CAAYlJ,QAAZ,CAAqBC,SAF3B;IAGH;;;mCAnEmB;IAChB,mBAAO,CAAC,EACJyB,SAASof,iBAAT,IACApf,SAASqf,uBADT,IAEArf,SAASsf,oBAFT,IAGAtf,SAASuf,mBAJL,CAAR;IAMH;;IAED;;;;mCACoB;IAChB;IACA,gBAAI7lB,GAAGS,QAAH,CAAY6F,SAAS0b,cAArB,CAAJ,EAA0C;IACtC,uBAAO,EAAP;IACH;;IAED;IACA,gBAAI/b,QAAQ,EAAZ;IACA,gBAAM6f,WAAW,CAAC,QAAD,EAAW,KAAX,EAAkB,IAAlB,CAAjB;;IAEAA,qBAAStJ,IAAT,CAAc,eAAO;IACjB,oBAAIxc,GAAGS,QAAH,CAAY6F,SAAYyf,GAAZ,oBAAZ,KAAiD/lB,GAAGS,QAAH,CAAY6F,SAAYyf,GAAZ,sBAAZ,CAArD,EAAsG;IAClG9f,4BAAQ8f,GAAR;IACA,2BAAO,IAAP;IACH;;IAED,uBAAO,KAAP;IACH,aAPD;;IASA,mBAAO9f,KAAP;IACH;;;mCAEqB;IAClB,mBAAO,KAAKsJ,MAAL,KAAgB,KAAhB,GAAwB,YAAxB,GAAuC,YAA9C;IACH;;;;;IC5HL;IACA;IACA;IACA;IACA;;AAEA,IAAe,SAASyW,SAAT,CAAmB5X,GAAnB,EAAsC;IAAA,QAAd6X,QAAc,uEAAH,CAAG;;IACjD,WAAO,IAAIxhB,OAAJ,CAAY,UAACE,OAAD,EAAU0N,MAAV,EAAqB;IACpC,YAAM6T,QAAQ,IAAIC,KAAJ,EAAd;;IAEA,YAAMC,UAAU,SAAVA,OAAU,GAAM;IAClB,mBAAOF,MAAMG,MAAb;IACA,mBAAOH,MAAMI,OAAb;IACA,aAACJ,MAAMK,YAAN,IAAsBN,QAAtB,GAAiCthB,OAAjC,GAA2C0N,MAA5C,EAAoD6T,KAApD;IACH,SAJD;;IAMAhmB,eAAOiE,MAAP,CAAc+hB,KAAd,EAAqB,EAAEG,QAAQD,OAAV,EAAmBE,SAASF,OAA5B,EAAqChY,QAArC,EAArB;IACH,KAVM,CAAP;IAWH;;IClBD;AACA;IAaA,IAAMjC,KAAK;IACPqa,gBADO,0BACQ;IACXhe,oBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYsG,SAAZ,CAAsBlQ,SAAtB,CAAgC+C,OAAhC,CAAwC,GAAxC,EAA6C,EAA7C,CAArC,EAAuF,IAAvF;IACAY,oBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuB0N,WAA5D,EAAyE,KAAKrhB,SAAL,CAAe6J,EAAxF;IACH,KAJM;;;IAMP;IACAkK,wBAPO,kCAO8B;IAAA,YAAhBtT,MAAgB,uEAAP,KAAO;;IACjC,YAAIA,UAAU,KAAK6J,OAAnB,EAA4B;IACxB,iBAAKC,KAAL,CAAW1G,YAAX,CAAwB,UAAxB,EAAoC,EAApC;IACH,SAFD,MAEO;IACH,iBAAK0G,KAAL,CAAWtE,eAAX,CAA2B,UAA3B;IACH;IACJ,KAbM;;;IAeP;IACAke,SAhBO,mBAgBC;IAAA;;IACJ;IACA;IACA,aAAKzD,SAAL,CAAenW,KAAf;;IAEA;IACA,YAAI,CAAC,KAAKvK,SAAL,CAAe6J,EAApB,EAAwB;IACpB,iBAAKwC,KAAL,CAAWyH,IAAX,6BAA0C,KAAKrK,QAA/C,SAA2D,KAAKxI,IAAhE;;IAEA;IACA4I,eAAGkK,oBAAH,CAAwB5S,IAAxB,CAA6B,IAA7B,EAAmC,IAAnC;;IAEA;IACA;IACH;;IAED;IACA,YAAI,CAACzD,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAc0P,QAAzB,CAAL,EAAyC;IACrC;IACAA,qBAAS2J,MAAT,CAAgBxa,IAAhB,CAAqB,IAArB;;IAEA;IACA,iBAAKuf,SAAL,CAAe1O,QAAf;IACH;;IAED;IACAnI,WAAGkK,oBAAH,CAAwB5S,IAAxB,CAA6B,IAA7B;;IAEA;IACA,YAAI,KAAKmJ,OAAT,EAAkB;IACd2I,qBAASqJ,KAAT,CAAenb,IAAf,CAAoB,IAApB;IACH;;IAED;IACA,aAAKmS,MAAL,GAAc,IAAd;;IAEA;IACA,aAAKyD,KAAL,GAAa,IAAb;;IAEA;IACA,aAAKgD,KAAL,GAAa,IAAb;;IAEA;IACA,aAAKgF,IAAL,GAAY,IAAZ;;IAEA;IACA,aAAK9S,OAAL,GAAe,IAAf;;IAEA;IACA+F,iBAAS6E,YAAT,CAAsB1V,IAAtB,CAA2B,IAA3B;;IAEA;IACA6Q,iBAASgG,UAAT,CAAoB7W,IAApB,CAAyB,IAAzB;;IAEA;IACA0I,WAAGua,YAAH,CAAgBjjB,IAAhB,CAAqB,IAArB;;IAEA;IACA+E,oBACI,KAAK5D,QAAL,CAAcC,SADlB,EAEI,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuB5J,GAAvB,CAA2B/J,SAF/B,EAGIqJ,QAAQU,GAAR,IAAe,KAAKO,OAApB,IAA+B,KAAKiS,OAHxC;;IAMA;IACArW,oBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuB1J,OAAvB,CAA+BjK,SAApE,EAA+EqJ,QAAQY,OAAR,IAAmB,KAAKK,OAAvG;;IAEA;IACApE,oBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuBxK,KAA5D,EAAmET,QAAQS,KAA3E;;IAEA;IACAjD,oBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuByN,OAA5D,EAAqE,KAAKxW,KAA1E;;IAEA;IACA,aAAK1I,KAAL,GAAa,IAAb;;IAEA;IACAE,mBAAW,YAAM;IACbX,yBAAaN,IAAb,CAAkB,KAAlB,EAAwB,MAAKoJ,KAA7B,EAAoC,OAApC;IACH,SAFD,EAEG,CAFH;;IAIA;IACAV,WAAGwa,QAAH,CAAYljB,IAAZ,CAAiB,IAAjB;;IAEA;IACA,YAAI,KAAK0f,MAAT,EAAiB;IACbhX,eAAGya,SAAH,CAAanjB,IAAb,CAAkB,IAAlB,EAAwB,KAAK0f,MAA7B,EAAqC,KAArC,EAA4CzP,KAA5C,CAAkD,YAAM,EAAxD;IACH;;IAED;IACA;IACA,YAAI,KAAKjF,MAAL,CAAYsH,QAAhB,EAA0B;IACtBzB,qBAASoG,cAAT,CAAwBjX,IAAxB,CAA6B,IAA7B;IACH;IACJ,KA9GM;;;IAgHP;IACAkjB,YAjHO,sBAiHI;IACP;IACA,YAAIlP,QAAQxG,KAAKxO,GAAL,CAAS,MAAT,EAAiB,KAAKgM,MAAtB,CAAZ;;IAEA;IACA,YAAIzO,GAAGM,MAAH,CAAU,KAAKmO,MAAL,CAAY0C,KAAtB,KAAgC,CAACnR,GAAGkC,KAAH,CAAS,KAAKuM,MAAL,CAAY0C,KAArB,CAArC,EAAkE;IAC9DsG,4BAAc,KAAKhJ,MAAL,CAAY0C,KAA1B;IACH;;IAED;IACAtQ,cAAMqE,IAAN,CAAW,KAAKN,QAAL,CAAcoQ,OAAd,CAAsB3G,IAAtB,IAA8B,EAAzC,EAA6CjL,OAA7C,CAAqD,kBAAU;IAC3DoU,mBAAOrR,YAAP,CAAoB,YAApB,EAAkCsR,KAAlC;IACH,SAFD;;IAIA;IACA;IACA,YAAI,KAAKoP,OAAT,EAAkB;IACd,gBAAMhE,SAAStZ,WAAW9F,IAAX,CAAgB,IAAhB,EAAsB,QAAtB,CAAf;;IAEA,gBAAI,CAACzD,GAAGmB,OAAH,CAAW0hB,MAAX,CAAL,EAAyB;IACrB;IACH;;IAED;IACA,gBAAM1R,QAAQ,CAACnR,GAAGkC,KAAH,CAAS,KAAKuM,MAAL,CAAY0C,KAArB,CAAD,GAA+B,KAAK1C,MAAL,CAAY0C,KAA3C,GAAmD,OAAjE;IACA,gBAAMxB,SAASsB,KAAKxO,GAAL,CAAS,YAAT,EAAuB,KAAKgM,MAA5B,CAAf;;IAEAoU,mBAAO1c,YAAP,CAAoB,OAApB,EAA6BwJ,OAAO/H,OAAP,CAAe,SAAf,EAA0BuJ,KAA1B,CAA7B;IACH;IACJ,KA9IM;;;IAgJP;IACA2V,gBAjJO,wBAiJMC,MAjJN,EAiJc;IACjBve,oBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuBmN,aAA5D,EAA2E2D,MAA3E;IACH,KAnJM;;;IAqJP;IACA;IACAH,aAvJO,qBAuJGzD,MAvJH,EAuJ2B;IAAA;;IAAA,YAAhBngB,OAAgB,uEAAN,IAAM;;IAC9B;IACA,YAAIA,WAAW,KAAKmgB,MAApB,EAA4B;IACxB,mBAAO1e,QAAQ4N,MAAR,CAAe,IAAIK,KAAJ,CAAU,oBAAV,CAAf,CAAP;IACH;;IAED;IACA,aAAK7F,KAAL,CAAW1G,YAAX,CAAwB,QAAxB,EAAkCgd,MAAlC;;IAEA;IACA,eACI3e,MACKf,IADL,CACU,IADV;IAEI;IAFJ,SAGKqB,IAHL,CAGU;IAAA,mBAAMkhB,UAAU7C,MAAV,CAAN;IAAA,SAHV,EAIKzP,KAJL,CAIW,eAAO;IACV;IACA,gBAAIyP,WAAW,OAAKA,MAApB,EAA4B;IACxBhX,mBAAG2a,YAAH,CAAgBrjB,IAAhB,CAAqB,MAArB,EAA2B,KAA3B;IACH;IACD;IACA,kBAAMsJ,GAAN;IACH,SAXL,EAYKjI,IAZL,CAYU,YAAM;IACR;IACA,gBAAIqe,WAAW,OAAKA,MAApB,EAA4B;IACxB,sBAAM,IAAIzQ,KAAJ,CAAU,gDAAV,CAAN;IACH;IACJ,SAjBL,EAkBK5N,IAlBL,CAkBU,YAAM;IACR5E,mBAAOiE,MAAP,CAAc,OAAKS,QAAL,CAAcue,MAAd,CAAqBvY,KAAnC,EAA0C;IACtCoc,4CAAyB7D,MAAzB,QADsC;IAEtC;IACA8D,gCAAgB;IAHsB,aAA1C;IAKA9a,eAAG2a,YAAH,CAAgBrjB,IAAhB,CAAqB,MAArB,EAA2B,IAA3B;IACA,mBAAO0f,MAAP;IACH,SA1BL,CADJ;IA6BH,KA9LM;;;IAgMP;IACAuD,gBAjMO,wBAiMMnlB,KAjMN,EAiMa;IAAA;;IAChB;IACAiH,oBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuBqN,OAA5D,EAAqE,KAAKA,OAA1E;IACA9a,oBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuBhI,MAA5D,EAAoE,KAAKA,MAAzE;IACAzF,oBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuBsN,OAA5D,EAAqE,KAAKA,OAA1E;;IAEA;IACA1iB,cAAMqE,IAAN,CAAW,KAAKN,QAAL,CAAcoQ,OAAd,CAAsB3G,IAAtB,IAA8B,EAAzC,EAA6CjL,OAA7C,CAAqD,kBAAU;IAC3DqD,mBAAOsR,OAAP,GAAiB,OAAKuL,OAAtB;IACH,SAFD;;IAIA;IACA,YAAItjB,GAAGuB,KAAH,CAASA,KAAT,KAAmBA,MAAMgC,IAAN,KAAe,YAAtC,EAAoD;IAChD;IACH;;IAED;IACA4I,WAAG+a,cAAH,CAAkBzjB,IAAlB,CAAuB,IAAvB;IACH,KAnNM;;;IAqNP;IACA0jB,gBAtNO,wBAsNM5lB,KAtNN,EAsNa;IAAA;;IAChB,aAAKiiB,OAAL,GAAe,CAAC,SAAD,EAAY,SAAZ,EAAuBta,QAAvB,CAAgC3H,MAAMgC,IAAtC,CAAf;;IAEA;IACA6jB,qBAAa,KAAKC,MAAL,CAAY7D,OAAzB;;IAEA;IACA,aAAK6D,MAAL,CAAY7D,OAAZ,GAAsB9e,WAAW,YAAM;IACnC;IACA8D,wBAAY,OAAK5D,QAAL,CAAcC,SAA1B,EAAqC,OAAK4J,MAAL,CAAYwH,UAAZ,CAAuBuN,OAA5D,EAAqE,OAAKA,OAA1E;;IAEA;IACArX,eAAG+a,cAAH,CAAkBzjB,IAAlB,CAAuB,MAAvB;IACH,SANqB,EAMnB,KAAK+f,OAAL,GAAe,GAAf,GAAqB,CANF,CAAtB;IAOH,KApOM;;;IAsOP;IACA0D,kBAvOO,0BAuOQze,KAvOR,EAuOe;IAAA,YACV6L,WADU,GACG,KAAK1P,QADR,CACV0P,QADU;;;IAGlB,YAAIA,eAAY,KAAK7F,MAAL,CAAYyS,YAA5B,EAA0C;IACtC;IACA,iBAAKgG,cAAL,CAAoBnnB,QAAQ0I,SAAS,KAAK+a,OAAd,IAAyB,KAAKvV,MAA9B,IAAwCqG,YAASyD,OAAjD,IAA4DzD,YAASmP,KAA7E,CAApB;IACH;IACJ;IA9OM,CAAX;;ICdA;AACA;QAUM6D;IACF,uBAAYxZ,MAAZ,EAAoB;IAAA;;IAChB,aAAKA,MAAL,GAAcA,MAAd;IACA,aAAKyZ,OAAL,GAAe,IAAf;;IAEA,aAAKC,SAAL,GAAiB,KAAKA,SAAL,CAAerL,IAAf,CAAoB,IAApB,CAAjB;IACA,aAAKO,UAAL,GAAkB,KAAKA,UAAL,CAAgBP,IAAhB,CAAqB,IAArB,CAAlB;IACA,aAAKsL,UAAL,GAAkB,KAAKA,UAAL,CAAgBtL,IAAhB,CAAqB,IAArB,CAAlB;IACH;;IAED;;;;;sCACU5a,OAAO;IAAA;;IACb,gBAAMmmB,OAAOnmB,MAAM2I,OAAN,GAAgB3I,MAAM2I,OAAtB,GAAgC3I,MAAMomB,KAAnD;IACA,gBAAM5P,UAAUxW,MAAMgC,IAAN,KAAe,SAA/B;IACA,gBAAMqkB,SAAS7P,WAAW2P,SAAS,KAAKH,OAAxC;;IAEA;IACA,gBAAIhmB,MAAMsmB,MAAN,IAAgBtmB,MAAMumB,OAAtB,IAAiCvmB,MAAMwmB,OAAvC,IAAkDxmB,MAAM4I,QAA5D,EAAsE;IAClE;IACH;;IAED;IACA;IACA,gBAAI,CAACnK,GAAGG,MAAH,CAAUunB,IAAV,CAAL,EAAsB;IAClB;IACH;;IAED;IACA,gBAAMM,YAAY,SAAZA,SAAY,GAAM;IACpB;IACA,sBAAKla,MAAL,CAAYE,WAAZ,GAA0B,MAAKF,MAAL,CAAYiI,QAAZ,GAAuB,EAAvB,IAA6B2R,OAAO,EAApC,CAA1B;IACH,aAHD;;IAKA;IACA;IACA,gBAAI3P,OAAJ,EAAa;IACT;IACA,oBAAM1N,iBAAiB,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,EAAb,EAAiB,EAAjB,EAAqB,EAArB,EAAyB,EAAzB,EAA6B,EAA7B,EAAiC,EAAjC,EAAqC,EAArC,EAAyC,EAAzC,EAA6C,EAA7C,EAAiD,EAAjD,EAAqD,EAArD,EAAyD,EAAzD,EAA6D,EAA7D,EAAiE,EAAjE,EAAqE,EAArE,EAAyE,EAAzE,EAA6E,EAA7E,EAAiF,EAAjF,CAAvB;;IAEA;IACA;IACA;IACA,oBAAMX,UAAUD,iBAAhB;IACA,oBACIzJ,GAAGmB,OAAH,CAAWuI,OAAX,KACCA,YAAY,KAAKoE,MAAL,CAAYlJ,QAAZ,CAAqB8Q,MAArB,CAA4BC,IAAxC,IACG7M,QAAQY,OAAR,EAAiB,KAAKoE,MAAL,CAAYW,MAAZ,CAAmBsG,SAAnB,CAA6BkO,QAA9C,CAHR,EAIE;IACE;IACH;;IAED;IACA,oBAAI5Y,eAAenB,QAAf,CAAwBwe,IAAxB,CAAJ,EAAmC;IAC/BnmB,0BAAM8I,cAAN;IACA9I,0BAAMwb,eAAN;IACH;;IAED,wBAAQ2K,IAAR;IACI,yBAAK,EAAL;IACA,yBAAK,EAAL;IACA,yBAAK,EAAL;IACA,yBAAK,EAAL;IACA,yBAAK,EAAL;IACA,yBAAK,EAAL;IACA,yBAAK,EAAL;IACA,yBAAK,EAAL;IACA,yBAAK,EAAL;IACA,yBAAK,EAAL;IACI;IACA,4BAAI,CAACE,MAAL,EAAa;IACTI;IACH;IACD;;IAEJ,yBAAK,EAAL;IACA,yBAAK,EAAL;IACI;IACA,4BAAI,CAACJ,MAAL,EAAa;IACT,iCAAK9Z,MAAL,CAAYma,UAAZ;IACH;IACD;;IAEJ,yBAAK,EAAL;IACI;IACA,6BAAKna,MAAL,CAAYoa,cAAZ,CAA2B,GAA3B;IACA;;IAEJ,yBAAK,EAAL;IACI;IACA,6BAAKpa,MAAL,CAAYqa,cAAZ,CAA2B,GAA3B;IACA;;IAEJ,yBAAK,EAAL;IACI;IACA,4BAAI,CAACP,MAAL,EAAa;IACT,iCAAK9Z,MAAL,CAAYuL,KAAZ,GAAoB,CAAC,KAAKvL,MAAL,CAAYuL,KAAjC;IACH;IACD;;IAEJ,yBAAK,EAAL;IACI;IACA,6BAAKvL,MAAL,CAAYsa,OAAZ;IACA;;IAEJ,yBAAK,EAAL;IACI;IACA,6BAAKta,MAAL,CAAYqH,MAAZ;IACA;;IAEJ,yBAAK,EAAL;IACI;IACA,6BAAKrH,MAAL,CAAY0H,UAAZ,CAAuBzS,MAAvB;IACA;;IAEJ,yBAAK,EAAL;IACI;IACA,4BAAI,CAAC6kB,MAAL,EAAa;IACT,iCAAK9Z,MAAL,CAAYua,cAAZ;IACH;IACD;;IAEJ,yBAAK,EAAL;IACI;IACA,6BAAKva,MAAL,CAAYuT,IAAZ,GAAmB,CAAC,KAAKvT,MAAL,CAAYuT,IAAhC;IACA;;IAEJ;;;;;;;;;;IAYA;IACI;IAlFR;;IAqFA;IACA;IACA,oBAAI,CAAC,KAAKvT,MAAL,CAAY0H,UAAZ,CAAuB7D,OAAxB,IAAmC,KAAK7D,MAAL,CAAY0H,UAAZ,CAAuB6J,MAA1D,IAAoEqI,SAAS,EAAjF,EAAqF;IACjF,yBAAK5Z,MAAL,CAAY0H,UAAZ,CAAuBzS,MAAvB;IACH;;IAED;IACA,qBAAKwkB,OAAL,GAAeG,IAAf;IACH,aAnHD,MAmHO;IACH,qBAAKH,OAAL,GAAe,IAAf;IACH;IACJ;;IAED;;;;uCACWhmB,OAAO;IACd+S,qBAASoI,UAAT,CAAoBjZ,IAApB,CAAyB,KAAKqK,MAA9B,EAAsCvM,KAAtC;IACH;;IAED;;;;yCACa;IACT,iBAAKuM,MAAL,CAAYZ,KAAZ,GAAoB,IAApB;;IAEA;IACA1E,wBAAY,KAAKsF,MAAL,CAAYlJ,QAAZ,CAAqBC,SAAjC,EAA4C,KAAKiJ,MAAL,CAAYW,MAAZ,CAAmBwH,UAAnB,CAA8ByN,OAA1E,EAAmF,IAAnF;IACH;;IAED;;;;qCACsB;IAAA,gBAAf3gB,MAAe,uEAAN,IAAM;;IAClB;IACA,gBAAI,KAAK+K,MAAL,CAAYW,MAAZ,CAAmB8S,QAAnB,CAA4BC,MAAhC,EAAwC;IACpC3e,+BAAeY,IAAf,CAAoB,KAAKqK,MAAzB,EAAiCpM,MAAjC,EAAyC,eAAzC,EAA0D,KAAK8lB,SAA/D,EAA0EzkB,MAA1E,EAAkF,KAAlF;IACH;;IAED;IACAF,2BAAeY,IAAf,CAAoB,KAAKqK,MAAzB,EAAiCxH,SAASsD,IAA1C,EAAgD,OAAhD,EAAyD,KAAK8S,UAA9D,EAA0E3Z,MAA1E;;IAEA;IACAY,iBAAKF,IAAL,CAAU,KAAKqK,MAAf,EAAuBxH,SAASsD,IAAhC,EAAsC,YAAtC,EAAoD,KAAK6d,UAAzD;IACH;;IAED;;;;wCACY;IAAA;;IACR;IACA,gBAAI,CAAC,KAAK3Z,MAAL,CAAYW,MAAZ,CAAmB8S,QAAnB,CAA4BC,MAA7B,IAAuC,KAAK1T,MAAL,CAAYW,MAAZ,CAAmB8S,QAAnB,CAA4B7X,OAAvE,EAAgF;IAC5ElG,mBAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYlJ,QAAZ,CAAqBC,SAA1C,EAAqD,eAArD,EAAsE,KAAK2iB,SAA3E,EAAsF,KAAtF;IACH;;IAED;IACA;IACAhkB,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYlJ,QAAZ,CAAqBC,SAA1C,EAAqD,UAArD,EAAiE,iBAAS;IACtE2D,4BAAYjH,MAAMkF,MAAlB,EAA0B,OAAKqH,MAAL,CAAYW,MAAZ,CAAmBwH,UAAnB,CAA8B4N,QAAxD,EAAkE,KAAlE;IACH,aAFD;IAGA;IACArgB,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYlJ,QAAZ,CAAqBC,SAA1C,EAAqD,SAArD,EAAgE,iBAAS;IACrE,oBAAItD,MAAM2I,OAAN,KAAkB,CAAtB,EAAyB;IACrB;IACH;;IAED;IACA;IACAxF,2BAAW,YAAM;IACb8D,gCAAYiB,iBAAZ,EAA+B,OAAKqE,MAAL,CAAYW,MAAZ,CAAmBwH,UAAnB,CAA8B4N,QAA7D,EAAuE,IAAvE;IACH,iBAFD,EAEG,CAFH;IAGH,aAVD;;IAYA;IACArgB,eAAGC,IAAH,CACI,KAAKqK,MADT,EAEI,KAAKA,MAAL,CAAYlJ,QAAZ,CAAqBC,SAFzB,EAGI,0EAHJ,EAII,iBAAS;IAAA,oBACGyP,WADH,GACgB,OAAKxG,MAAL,CAAYlJ,QAD5B,CACG0P,QADH;;IAGL;;IACA,oBAAI/S,MAAMgC,IAAN,KAAe,iBAAnB,EAAsC;IAClC+Q,gCAASyD,OAAT,GAAmB,KAAnB;IACAzD,gCAASmP,KAAT,GAAiB,KAAjB;IACH;;IAED;IACA,oBAAM7G,OAAO,CAAC,YAAD,EAAe,WAAf,EAA4B,WAA5B,EAAyC1T,QAAzC,CAAkD3H,MAAMgC,IAAxD,CAAb;;IAEA,oBAAI+kB,QAAQ,CAAZ;;IAEA,oBAAI1L,IAAJ,EAAU;IACNzQ,uBAAG+a,cAAH,CAAkBzjB,IAAlB,CAAuB,OAAKqK,MAA5B,EAAoC,IAApC;IACA;IACAwa,4BAAQ,OAAKxa,MAAL,CAAYZ,KAAZ,GAAoB,IAApB,GAA2B,IAAnC;IACH;;IAED;IACAka,6BAAa,OAAKtZ,MAAL,CAAYuZ,MAAZ,CAAmB/S,QAAhC;IACA;IACA,uBAAKxG,MAAL,CAAYuZ,MAAZ,CAAmB/S,QAAnB,GAA8B5P,WAAW;IAAA,2BAAMyH,GAAG+a,cAAH,CAAkBzjB,IAAlB,CAAuB,OAAKqK,MAA5B,EAAoC,KAApC,CAAN;IAAA,iBAAX,EAA6Dwa,KAA7D,CAA9B;IACH,aA5BL;IA8BH;;IAED;;;;oCACQ;IAAA;;IACJ;IACA9kB,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,2BAAxC,EAAqE;IAAA,uBACjEyH,SAASgG,UAAT,CAAoB7W,IAApB,CAAyB,OAAKqK,MAA9B,EAAsCvM,KAAtC,CADiE;IAAA,aAArE;;IAIA;IACAiC,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,0CAAxC,EAAoF;IAAA,uBAChFyH,SAASoG,cAAT,CAAwBjX,IAAxB,CAA6B,OAAKqK,MAAlC,EAA0CvM,KAA1C,CADgF;IAAA,aAApF;;IAIA;IACA;IACAiC,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,SAAxC,EAAmD,YAAM;IACrD1E,6BAAa,OAAK2F,MAAL,CAAYlJ,QAAZ,CAAqBgR,MAAlC,EAA0C,CAAC,OAAK9H,MAAL,CAAYya,QAAvD;IACApgB,6BAAa,OAAK2F,MAAL,CAAYlJ,QAAZ,CAAqBoQ,OAArB,CAA6BK,IAA1C,EAAgD,CAAC,OAAKvH,MAAL,CAAYya,QAA7D;IACH,aAHD;;IAKA;IACA/kB,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,OAAxC,EAAiD,YAAM;IACnD;IACA,oBAAI,OAAKiB,MAAL,CAAYlB,OAAZ,IAAuB,OAAKkB,MAAL,CAAY+Q,OAAnC,IAA8C,OAAK/Q,MAAL,CAAYW,MAAZ,CAAmB0S,UAArE,EAAiF;IAC7E;IACA,2BAAKrT,MAAL,CAAYoH,OAAZ;IACH;IACJ,aAND;;IAQA;IACA1R,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,iCAAxC,EAA2E;IAAA,uBACvEyH,SAASgF,cAAT,CAAwB7V,IAAxB,CAA6B,OAAKqK,MAAlC,EAA0CvM,KAA1C,CADuE;IAAA,aAA3E;;IAIA;IACAiC,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,cAAxC,EAAwD;IAAA,uBACpDyH,SAAS6E,YAAT,CAAsB1V,IAAtB,CAA2B,OAAKqK,MAAhC,EAAwCvM,KAAxC,CADoD;IAAA,aAAxD;;IAIA;IACAiC,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,6CAAxC,EAAuF;IAAA,uBACnFV,GAAGua,YAAH,CAAgBjjB,IAAhB,CAAqB,OAAKqK,MAA1B,EAAkCvM,KAAlC,CADmF;IAAA,aAAvF;;IAIA;IACAiC,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,gCAAxC,EAA0E;IAAA,uBACtEV,GAAGgb,YAAH,CAAgB1jB,IAAhB,CAAqB,OAAKqK,MAA1B,EAAkCvM,KAAlC,CADsE;IAAA,aAA1E;;IAIA;IACA;IACAiC,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,SAAxC,EAAmD,YAAM;IACrD,oBAAI,CAAC,OAAKiB,MAAL,CAAYuV,GAAjB,EAAsB;IAClB;IACH;;IAED;IACA,oBAAI,OAAKvV,MAAL,CAAYuV,GAAZ,CAAgB1R,OAAhB,IAA2B,CAAC,OAAK7D,MAAL,CAAYuV,GAAZ,CAAgBmF,WAAhD,EAA6D;IACzD;IACA,2BAAK1a,MAAL,CAAYuV,GAAZ,CAAgBoF,cAAhB,CAA+B3jB,IAA/B,CAAoC;IAAA,+BAAM,OAAKgJ,MAAL,CAAYuV,GAAZ,CAAgBhV,IAAhB,EAAN;IAAA,qBAApC,EAAkEqF,KAAlE,CAAwE;IAAA,+BAAM,OAAK5F,MAAL,CAAYO,IAAZ,EAAN;IAAA,qBAAxE;IACH;IACJ,aAVD;;IAYA;IACA,gBAAI,KAAKP,MAAL,CAAYxL,SAAZ,CAAsB6J,EAAtB,IAA4B,KAAK2B,MAAL,CAAYW,MAAZ,CAAmBwS,WAA/C,IAA8D,CAAC,KAAKnT,MAAL,CAAY4a,OAA/E,EAAwF;IACpF;IACA,oBAAM1jB,UAAUuE,WAAW9F,IAAX,CAAgB,KAAKqK,MAArB,QAAiC,KAAKA,MAAL,CAAYW,MAAZ,CAAmBwH,UAAnB,CAA8BpK,KAA/D,CAAhB;;IAEA;IACA,oBAAI,CAAC7L,GAAGmB,OAAH,CAAW6D,OAAX,CAAL,EAA0B;IACtB;IACH;;IAED;IACAxB,mBAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB9I,OAArB,EAA8B,OAA9B,EAAuC,YAAM;IACzC;IACA,wBAAI,OAAK8I,MAAL,CAAYW,MAAZ,CAAmByS,YAAnB,IAAmC,OAAKpT,MAAL,CAAYZ,KAA/C,IAAwD,CAAC,OAAKY,MAAL,CAAYG,MAAzE,EAAiF;IAC7E;IACH;;IAED,wBAAI,OAAKH,MAAL,CAAYG,MAAhB,EAAwB;IACpB,+BAAKH,MAAL,CAAYO,IAAZ;IACH,qBAFD,MAEO,IAAI,OAAKP,MAAL,CAAY6a,KAAhB,EAAuB;IAC1B,+BAAK7a,MAAL,CAAYoH,OAAZ;IACA,+BAAKpH,MAAL,CAAYO,IAAZ;IACH,qBAHM,MAGA;IACH,+BAAKP,MAAL,CAAYmH,KAAZ;IACH;IACJ,iBAdD;IAeH;;IAED;IACA,gBAAI,KAAKnH,MAAL,CAAYxL,SAAZ,CAAsB6J,EAAtB,IAA4B,KAAK2B,MAAL,CAAYW,MAAZ,CAAmB2S,kBAAnD,EAAuE;IACnE5d,mBAAGC,IAAH,CACI,KAAKqK,MADT,EAEI,KAAKA,MAAL,CAAYlJ,QAAZ,CAAqBI,OAFzB,EAGI,aAHJ,EAII,iBAAS;IACLzD,0BAAM8I,cAAN;IACH,iBANL,EAOI,KAPJ;IASH;;IAED;IACA7G,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,cAAxC,EAAwD,YAAM;IAC1D;IACA,uBAAKiB,MAAL,CAAY8D,OAAZ,CAAoB7D,GAApB,CAAwB,EAAE6H,QAAQ,OAAK9H,MAAL,CAAY8H,MAAtB,EAA8ByD,OAAO,OAAKvL,MAAL,CAAYuL,KAAjD,EAAxB;IACH,aAHD;;IAKA;IACA7V,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,YAAxC,EAAsD,YAAM;IACxD;IACAyH,yBAASmH,aAAT,CAAuBhY,IAAvB,CAA4B,OAAKqK,MAAjC,EAAyC,OAAzC;;IAEA;IACA,uBAAKA,MAAL,CAAY8D,OAAZ,CAAoB7D,GAApB,CAAwB,EAAEsO,OAAO,OAAKvO,MAAL,CAAYuO,KAArB,EAAxB;IACH,aAND;;IAQA;IACA7Y,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,kBAAxC,EAA4D,iBAAS;IACjE;IACA,uBAAKiB,MAAL,CAAY8D,OAAZ,CAAoB7D,GAApB,CAAwB,EAAEQ,SAAShN,MAAM0C,MAAN,CAAasK,OAAxB,EAAxB;IACH,aAHD;;IAKA;IACA/K,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC,eAAxC,EAAyD,iBAAS;IAC9D;IACAyH,yBAASmH,aAAT,CAAuBhY,IAAvB,CAA4B,OAAKqK,MAAjC,EAAyC,SAAzC,EAAoD,IAApD,EAA0DvM,MAAM0C,MAAN,CAAasK,OAAvE;IACH,aAHD;;IAKA;IACA;IACA,gBAAMqa,cAAc,KAAK9a,MAAL,CAAYW,MAAZ,CAAmBvL,MAAnB,CAA0B2lB,MAA1B,CAAiC,CAAC,OAAD,EAAU,SAAV,CAAjC,EAAuD3R,IAAvD,CAA4D,GAA5D,CAApB;IACA1T,eAAGC,IAAH,CAAQ,KAAKqK,MAAb,EAAqB,KAAKA,MAAL,CAAYjB,KAAjC,EAAwC+b,WAAxC,EAAqD,iBAAS;IAAA,oCACpCrnB,KADoC,CACpD0C,MADoD;IAAA,oBACpDA,MADoD,iCAC3C,EAD2C;;IAG1D;;IACA,oBAAI1C,MAAMgC,IAAN,KAAe,OAAnB,EAA4B;IACxBU,6BAAS,OAAK6J,MAAL,CAAYjB,KAAZ,CAAkBsJ,KAA3B;IACH;;IAEDpS,6BAAaN,IAAb,CAAkB,OAAKqK,MAAvB,EAA+B,OAAKA,MAAL,CAAYlJ,QAAZ,CAAqBC,SAApD,EAA+DtD,MAAMgC,IAArE,EAA2E,IAA3E,EAAiFU,MAAjF;IACH,aATD;IAUH;;IAED;;;;0CACW;IAAA;;IACP;IACA,gBAAM6kB,aAAa9d,QAAQC,IAAR,GAAe,QAAf,GAA0B,OAA7C;;IAEA;IACA,gBAAM8d,QAAQ,SAARA,KAAQ,CAACxnB,KAAD,EAAQynB,cAAR,EAAwBC,gBAAxB,EAA6C;IACvD,oBAAMC,gBAAgB,OAAKpb,MAAL,CAAYW,MAAZ,CAAmBuU,SAAnB,CAA6BiG,gBAA7B,CAAtB;IACA,oBAAME,mBAAmBnpB,GAAGS,QAAH,CAAYyoB,aAAZ,CAAzB;IACA,oBAAIE,WAAW,IAAf;;IAEA;IACA,oBAAID,gBAAJ,EAAsB;IAClBC,+BAAWF,cAAczlB,IAAd,CAAmB,OAAKqK,MAAxB,EAAgCvM,KAAhC,CAAX;IACH;;IAED;IACA,oBAAI6nB,YAAYppB,GAAGS,QAAH,CAAYuoB,cAAZ,CAAhB,EAA6C;IACzCA,mCAAevlB,IAAf,CAAoB,OAAKqK,MAAzB,EAAiCvM,KAAjC;IACH;IACJ,aAdD;;IAgBA;IACA,gBAAM4a,OAAO,SAAPA,IAAO,CAAChb,OAAD,EAAUoC,IAAV,EAAgBylB,cAAhB,EAAgCC,gBAAhC,EAAqE;IAAA,oBAAnBjmB,OAAmB,uEAAT,IAAS;;IAC9E,oBAAMkmB,gBAAgB,OAAKpb,MAAL,CAAYW,MAAZ,CAAmBuU,SAAnB,CAA6BiG,gBAA7B,CAAtB;IACA,oBAAME,mBAAmBnpB,GAAGS,QAAH,CAAYyoB,aAAZ,CAAzB;;IAEA1lB,mBAAGC,IAAH,CACI,OAAKqK,MADT,EAEI3M,OAFJ,EAGIoC,IAHJ,EAII;IAAA,2BAASwlB,MAAMxnB,KAAN,EAAaynB,cAAb,EAA6BC,gBAA7B,CAAT;IAAA,iBAJJ,EAKIjmB,WAAW,CAACmmB,gBALhB;IAOH,aAXD;;IAaA;IACAtoB,kBAAMqE,IAAN,CAAW,KAAK4I,MAAL,CAAYlJ,QAAZ,CAAqBoQ,OAArB,CAA6B3G,IAAxC,EAA8CjL,OAA9C,CAAsD,kBAAU;IAC5D+Y,qBAAK3E,MAAL,EAAa,OAAb,EAAsB,OAAK1J,MAAL,CAAYma,UAAlC,EAA8C,MAA9C;IACH,aAFD;;IAIA;IACA9L,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqBoQ,OAArB,CAA6BE,OAAlC,EAA2C,OAA3C,EAAoD,KAAKpH,MAAL,CAAYoH,OAAhE,EAAyE,SAAzE;;IAEA;IACAiH,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqBoQ,OAArB,CAA6BG,MAAlC,EAA0C,OAA1C,EAAmD,KAAKrH,MAAL,CAAYqH,MAA/D,EAAuE,QAAvE;;IAEA;IACAgH,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqBoQ,OAArB,CAA6BI,WAAlC,EAA+C,OAA/C,EAAwD,KAAKtH,MAAL,CAAYsa,OAApE,EAA6E,aAA7E;;IAEA;IACAjM,iBACI,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqBoQ,OAArB,CAA6BK,IADjC,EAEI,OAFJ,EAGI,YAAM;IACF,uBAAKvH,MAAL,CAAYuL,KAAZ,GAAoB,CAAC,OAAKvL,MAAL,CAAYuL,KAAjC;IACH,aALL,EAMI,MANJ;;IASA;IACA8C,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqBoQ,OAArB,CAA6BO,QAAlC,EAA4C,OAA5C,EAAqD;IAAA,uBAAM,OAAKzH,MAAL,CAAYua,cAAZ,EAAN;IAAA,aAArD;;IAEA;IACAlM,iBACI,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqBoQ,OAArB,CAA6BQ,UADjC,EAEI,OAFJ,EAGI,YAAM;IACF,uBAAK1H,MAAL,CAAY0H,UAAZ,CAAuBzS,MAAvB;IACH,aALL,EAMI,YANJ;;IASA;IACAoZ,iBACI,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqBoQ,OAArB,CAA6B3I,GADjC,EAEI,OAFJ,EAGI,YAAM;IACF,uBAAKyB,MAAL,CAAYzB,GAAZ,GAAkB,QAAlB;IACH,aALL,EAMI,KANJ;;IASA;IACA8P,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqBoQ,OAArB,CAA6BzI,OAAlC,EAA2C,OAA3C,EAAoD,KAAKuB,MAAL,CAAYvB,OAAhE,EAAyE,SAAzE;;IAEA;IACA4P,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqBoQ,OAArB,CAA6BM,QAAlC,EAA4C,OAA5C,EAAqD,iBAAS;IAC1DhB,yBAASoI,UAAT,CAAoBjZ,IAApB,CAAyB,OAAKqK,MAA9B,EAAsCvM,KAAtC;IACH,aAFD;;IAIA;IACA4a,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqB0Q,QAArB,CAA8BqH,IAAnC,EAAyC,OAAzC,EAAkD,iBAAS;IACvDpb,sBAAMwb,eAAN;;IAEA;IACA,oBAAMsM,cAAc,SAAdA,WAAc,GAAM;IACtB,wBAAMnhB,wBAAsB,OAAK4F,MAAL,CAAY5F,EAAlC,UAAN;IACAoM,6BAASiJ,OAAT,CAAiB9Z,IAAjB,CAAsB,OAAKqK,MAA3B,EAAmC5F,EAAnC;IACH,iBAHD;;IAKA;IACA,oBAAIY,QAAQvH,MAAMkF,MAAd,EAAsB,OAAKqH,MAAL,CAAYW,MAAZ,CAAmBsG,SAAnB,CAA6BW,MAA7B,CAAoCuG,QAA1D,CAAJ,EAAyE;IACrE8M,0BACIxnB,KADJ,EAEI,YAAM;IACF,+BAAKuM,MAAL,CAAY6N,YAAZ,GAA2Bvb,OAAOmB,MAAMkF,MAAN,CAAaR,KAApB,CAA3B;IACAojB;IACH,qBALL,EAMI,UANJ;IAQH,iBATD,MASO,IAAIvgB,QAAQvH,MAAMkF,MAAd,EAAsB,OAAKqH,MAAL,CAAYW,MAAZ,CAAmBsG,SAAnB,CAA6BW,MAA7B,CAAoCnH,OAA1D,CAAJ,EAAwE;IAC3Ewa,0BACIxnB,KADJ,EAEI,YAAM;IACF,+BAAKuM,MAAL,CAAYS,OAAZ,GAAsBhN,MAAMkF,MAAN,CAAaR,KAAnC;IACAojB;IACH,qBALL,EAMI,SANJ;IAQH,iBATM,MASA,IAAIvgB,QAAQvH,MAAMkF,MAAd,EAAsB,OAAKqH,MAAL,CAAYW,MAAZ,CAAmBsG,SAAnB,CAA6BW,MAA7B,CAAoC2G,KAA1D,CAAJ,EAAsE;IACzE0M,0BACIxnB,KADJ,EAEI,YAAM;IACF,+BAAKuM,MAAL,CAAYuO,KAAZ,GAAoBhC,WAAW9Y,MAAMkF,MAAN,CAAaR,KAAxB,CAApB;IACAojB;IACH,qBALL,EAMI,OANJ;IAQH,iBATM,MASA;IACH,wBAAM5M,MAAMlb,MAAMkF,MAAlB;IACA6N,6BAASiJ,OAAT,CAAiB9Z,IAAjB,CAAsB,OAAKqK,MAA3B,EAAmC2O,IAAI/O,YAAJ,CAAiB,eAAjB,CAAnC;IACH;IACJ,aAzCD;;IA2CA;IACAyO,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqB8Q,MAArB,CAA4BC,IAAjC,EAAuC,qBAAvC,EAA8D,iBAAS;IACnE,oBAAMoE,aAAa,OAAKjM,MAAL,CAAYlJ,QAAZ,CAAqB6Q,QAArB,CAA8BuE,qBAA9B,EAAnB;IACA,oBAAML,UAAU,MAAMI,WAAWG,KAAjB,IAA0B3Y,MAAM4Y,KAAN,GAAcJ,WAAWK,IAAnD,CAAhB;IACA7Y,sBAAM+nB,aAAN,CAAoBnjB,YAApB,CAAiC,YAAjC,EAA+CwT,OAA/C;IACH,aAJD;;IAMA;IACAwC,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqB8Q,MAArB,CAA4BC,IAAjC,EAAuC,qDAAvC,EAA8F,iBAAS;IACnG,oBAAMA,OAAOpU,MAAM+nB,aAAnB;;IAEA,oBAAM5B,OAAOnmB,MAAM2I,OAAN,GAAgB3I,MAAM2I,OAAtB,GAAgC3I,MAAMomB,KAAnD;IACA,oBAAM4B,YAAYhoB,MAAMgC,IAAxB;;IAEA,oBAAI,CAACgmB,cAAc,SAAd,IAA2BA,cAAc,OAA1C,KAAuD7B,SAAS,EAAT,IAAeA,SAAS,EAAnF,EAAwF;IACpF;IACH;IACD;IACA,oBAAMrZ,OAAOsH,KAAKrN,YAAL,CAAkB,gBAAlB,CAAb;;IAEA;IACA,oBAAMkhB,OAAO,CAAC,SAAD,EAAY,UAAZ,EAAwB,OAAxB,EAAiCtgB,QAAjC,CAA0C3H,MAAMgC,IAAhD,CAAb;;IAEA;IACA,oBAAI8K,QAAQmb,IAAZ,EAAkB;IACd7T,yBAAKpN,eAAL,CAAqB,gBAArB;IACA,2BAAKuF,MAAL,CAAYO,IAAZ;IACH,iBAHD,MAGO,IAAI,CAACmb,IAAD,IAAS,OAAK1b,MAAL,CAAYwV,OAAzB,EAAkC;IACrC3N,yBAAKxP,YAAL,CAAkB,gBAAlB,EAAoC,EAApC;IACA,2BAAK2H,MAAL,CAAYmH,KAAZ;IACH;IACJ,aAvBD;;IAyBA;IACAkH,iBACI,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqB8Q,MAArB,CAA4BC,IADhC,EAEImT,UAFJ,EAGI,iBAAS;IACL,oBAAMnT,OAAOpU,MAAM+nB,aAAnB;;IAEA;IACA,oBAAIG,SAAS9T,KAAKjI,YAAL,CAAkB,YAAlB,CAAb;;IAEA,oBAAI1N,GAAGkC,KAAH,CAASunB,MAAT,CAAJ,EAAsB;IAClBA,6BAAS9T,KAAK1P,KAAd;IACH;;IAED0P,qBAAKpN,eAAL,CAAqB,YAArB;;IAEA,uBAAKuF,MAAL,CAAYE,WAAZ,GAA0Byb,SAAS9T,KAAK3F,GAAd,GAAoB,OAAKlC,MAAL,CAAYiI,QAA1D;IACH,aAhBL,EAiBI,MAjBJ;;IAoBA;IACA;IACA,gBAAI,KAAKjI,MAAL,CAAYW,MAAZ,CAAmBsS,YAAnB,IAAmC,CAAC/gB,GAAGmB,OAAH,CAAW,KAAK2M,MAAL,CAAYlJ,QAAZ,CAAqBiR,OAArB,CAA6BE,QAAxC,CAAxC,EAA2F;IACvFoG,qBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqBiR,OAArB,CAA6B7H,WAAlC,EAA+C,OAA/C,EAAwD,YAAM;IAC1D;IACA,wBAAI,OAAKF,MAAL,CAAYE,WAAZ,KAA4B,CAAhC,EAAmC;IAC/B;IACH;;IAED,2BAAKF,MAAL,CAAYW,MAAZ,CAAmB+L,UAAnB,GAAgC,CAAC,OAAK1M,MAAL,CAAYW,MAAZ,CAAmB+L,UAApD;;IAEAlG,6BAASgG,UAAT,CAAoB7W,IAApB,CAAyB,OAAKqK,MAA9B;IACH,iBATD;IAUH;;IAED;IACAqO,iBACI,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqB8Q,MAArB,CAA4BE,MADhC,EAEIkT,UAFJ,EAGI,iBAAS;IACL,uBAAKhb,MAAL,CAAY8H,MAAZ,GAAqBrU,MAAMkF,MAAN,CAAaR,KAAlC;IACH,aALL,EAMI,QANJ;;IASA;IACA,gBAAI+E,QAAQG,QAAZ,EAAsB;IAClBtK,sBAAMqE,IAAN,CAAWoE,YAAY7F,IAAZ,CAAiB,KAAKqK,MAAtB,EAA8B,qBAA9B,CAAX,EAAiE1K,OAAjE,CAAyE,mBAAW;IAChF+Y,yBAAKhb,OAAL,EAAc,OAAd,EAAuB;IAAA,+BAASmT,SAAS8D,eAAT,CAAyB3U,IAAzB,CAA8B,OAAKqK,MAAnC,EAA2CvM,MAAMkF,MAAjD,CAAT;IAAA,qBAAvB;IACH,iBAFD;IAGH;;IAED;IACA0V,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqB6Q,QAA1B,EAAoC,iCAApC,EAAuE;IAAA,uBACnEnB,SAASuF,iBAAT,CAA2BpW,IAA3B,CAAgC,OAAKqK,MAArC,EAA6CvM,KAA7C,CADmE;IAAA,aAAvE;;IAIA;IACA4a,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqB0P,QAA1B,EAAoC,uBAApC,EAA6D,iBAAS;IAClE,uBAAKxG,MAAL,CAAYlJ,QAAZ,CAAqB0P,QAArB,CAA8BmP,KAA9B,GAAsC,CAAC,OAAK3V,MAAL,CAAYZ,KAAb,IAAsB3L,MAAMgC,IAAN,KAAe,YAA3E;IACH,aAFD;;IAIA;IACA4Y,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqB0P,QAA1B,EAAoC,mDAApC,EAAyF,iBAAS;IAC9F,uBAAKxG,MAAL,CAAYlJ,QAAZ,CAAqB0P,QAArB,CAA8ByD,OAA9B,GAAwC,CAAC,WAAD,EAAc,YAAd,EAA4B7O,QAA5B,CAAqC3H,MAAMgC,IAA3C,CAAxC;IACH,aAFD;;IAIA;IACA4Y,iBAAK,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqB0P,QAA1B,EAAoC,kBAApC,EAAwD,iBAAS;IAAA,8BACxB,OAAKxG,MADmB;IAAA,oBACrDW,MADqD,WACrDA,MADqD;IAAA,oBAC7C7J,QAD6C,WAC7CA,QAD6C;IAAA,oBACnCyiB,MADmC,WACnCA,MADmC;;IAG7D;;IACA7e,4BAAY5D,SAAS0P,QAArB,EAA+B7F,OAAOwH,UAAP,CAAkB2N,YAAjD,EAA+DriB,MAAMgC,IAAN,KAAe,SAA9E;;IAEA;IACA4I,mBAAG+a,cAAH,CAAkBzjB,IAAlB,CAAuB,OAAKqK,MAA5B,EAAoCvM,MAAMgC,IAAN,KAAe,SAAnD;;IAEA;IACA,oBAAIhC,MAAMgC,IAAN,KAAe,SAAnB,EAA8B;IAC1B;IACAmB,+BAAW,YAAM;IACb8D,oCAAY5D,SAAS0P,QAArB,EAA+B7F,OAAOwH,UAAP,CAAkB2N,YAAjD,EAA+D,KAA/D;IACH,qBAFD,EAEG,CAFH;;IAIA;IACA,wBAAM0E,QAAQ,OAAKpb,KAAL,GAAa,IAAb,GAAoB,IAAlC;;IAEA;IACAka,iCAAaC,OAAO/S,QAApB;IACA;IACA+S,2BAAO/S,QAAP,GAAkB5P,WAAW;IAAA,+BAAMyH,GAAG+a,cAAH,CAAkBzjB,IAAlB,CAAuB,OAAKqK,MAA5B,EAAoC,KAApC,CAAN;IAAA,qBAAX,EAA6Dwa,KAA7D,CAAlB;IACH;IACJ,aAxBD;;IA0BA;IACAnM,iBACI,KAAKrO,MAAL,CAAYlJ,QAAZ,CAAqB8Q,MAArB,CAA4BE,MADhC,EAEI,OAFJ,EAGI,iBAAS;IACL;IACA;IACA,oBAAM1B,WAAW3S,MAAMmoB,iCAAvB;IACA,oBAAMxR,OAAO,IAAI,EAAjB;IACA,oBAAIyR,YAAY,CAAhB;;IAEA;IACA,oBAAIpoB,MAAMqoB,MAAN,GAAe,CAAf,IAAoBroB,MAAMsoB,MAAN,GAAe,CAAvC,EAA0C;IACtC,wBAAI3V,QAAJ,EAAc;IACV,+BAAKpG,MAAL,CAAYqa,cAAZ,CAA2BjQ,IAA3B;IACAyR,oCAAY,CAAC,CAAb;IACH,qBAHD,MAGO;IACH,+BAAK7b,MAAL,CAAYoa,cAAZ,CAA2BhQ,IAA3B;IACAyR,oCAAY,CAAZ;IACH;IACJ;;IAED;IACA,oBAAIpoB,MAAMqoB,MAAN,GAAe,CAAf,IAAoBroB,MAAMsoB,MAAN,GAAe,CAAvC,EAA0C;IACtC,wBAAI3V,QAAJ,EAAc;IACV,+BAAKpG,MAAL,CAAYoa,cAAZ,CAA2BhQ,IAA3B;IACAyR,oCAAY,CAAZ;IACH,qBAHD,MAGO;IACH,+BAAK7b,MAAL,CAAYqa,cAAZ,CAA2BjQ,IAA3B;IACAyR,oCAAY,CAAC,CAAb;IACH;IACJ;;IAED;IACA,oBACKA,cAAc,CAAd,IAAmB,OAAK7b,MAAL,CAAYjB,KAAZ,CAAkB+I,MAAlB,GAA2B,CAA/C,IACC+T,cAAc,CAAC,CAAf,IAAoB,OAAK7b,MAAL,CAAYjB,KAAZ,CAAkB+I,MAAlB,GAA2B,CAFpD,EAGE;IACErU,0BAAM8I,cAAN;IACH;IACJ,aAvCL,EAwCI,QAxCJ,EAyCI,KAzCJ;IA2CH;;;;;;;;;;;;IC/rBL,CAAC,SAAS,IAAI,EAAE,OAAO,EAAE;MACvB,IAAI,OAAOyf,SAAM,KAAK,UAAU,IAAIA,SAAM,CAAC,GAAG,EAAE;QAC9CA,SAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;OACrB,MAAM,AAAiC;QACtC,cAAc,GAAG,OAAO,EAAE,CAAC;OAC5B,AAEA;KACF,CAACC,cAAI,EAAE,WAAW;;;;;;IAMnB,IAAI,OAAO,GAAG,WAAW,EAAE;QACvB,aAAa,GAAG,EAAE;QAClB,iBAAiB,GAAG,EAAE;QACtB,mBAAmB,GAAG,EAAE,CAAC;;;;;;;;IAQ7B,SAAS,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE;;MAExC,SAAS,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC;;MAErD,IAAI,YAAY,GAAG,EAAE;UACjB,CAAC,GAAG,SAAS,CAAC,MAAM;UACpB,UAAU,GAAG,CAAC;UACd,EAAE;UACF,QAAQ;UACR,CAAC;UACD,CAAC,CAAC;;;MAGN,EAAE,GAAG,UAAU,QAAQ,EAAE,aAAa,EAAE;QACtC,IAAI,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;QAEtD,UAAU,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;OAC3C,CAAC;;;MAGF,OAAO,CAAC,EAAE,EAAE;QACV,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;;;QAGxB,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE;UACL,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;UAChB,SAAS;SACV;;;QAGD,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;OACZ;KACF;;;;;;;;IAQD,SAAS,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE;;MAExC,IAAI,CAAC,QAAQ,EAAE,OAAO;;MAEtB,IAAI,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;;;MAGtC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;;;MAG5C,IAAI,CAAC,CAAC,EAAE,OAAO;;;MAGf,OAAO,CAAC,CAAC,MAAM,EAAE;QACf,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC9B,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;OAChB;KACF;;;;;;;;IAQD,SAAS,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE;;MAE5C,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;;;MAGtC,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,EAAE,YAAY,CAAC,CAAC;WAC1D,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,IAAI,CAAC,CAAC;KACtC;;;;;;;;IAQD,SAAS,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;MAClD,IAAI,GAAG,GAAG,QAAQ;UACd,KAAK,GAAG,IAAI,CAAC,KAAK;UAClB,QAAQ,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC;UACrC,gBAAgB,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO;UACzC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;UAC9C,KAAK;UACL,CAAC,CAAC;;MAEN,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC;;MAEzB,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC/B,KAAK,GAAG,IAAI,CAAC;;;QAGb,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC;QACrB,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC;OACvB,MAAM,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;;QAEpD,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC;OACtB,MAAM;;QAEL,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;QACb,CAAC,CAAC,KAAK,GAAG,KAAK,KAAK,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;OAC9C;;MAED,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,GAAG,UAAU,EAAE,EAAE;QACpD,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;QAIxB,IAAI,KAAK,IAAI,WAAW,IAAI,CAAC,EAAE;UAC7B,IAAI;YACF,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;WAC3C,CAAC,OAAO,CAAC,EAAE;;;YAGV,MAAM,GAAG,GAAG,CAAC;WACd;SACF;;;QAGD,IAAI,MAAM,IAAI,GAAG,EAAE;;UAEjB,QAAQ,IAAI,CAAC,CAAC;;;UAGd,IAAI,QAAQ,GAAG,QAAQ,EAAE;YACvB,OAAO,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;WACnD;SACF;;;QAGD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC;OAC/C,CAAC;;;MAGF,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KAClE;;;;;;;;IAQD,SAAS,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;;MAE1C,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;;MAErC,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM;UACzB,CAAC,GAAG,UAAU;UACd,aAAa,GAAG,EAAE;UAClB,EAAE;UACF,CAAC,CAAC;;;MAGN,EAAE,GAAG,SAAS,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE;;QAE5C,IAAI,MAAM,IAAI,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;QAI5C,IAAI,MAAM,IAAI,GAAG,EAAE;UACjB,IAAI,gBAAgB,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;eAC1C,OAAO;SACb;;QAED,UAAU,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;OAC5C,CAAC;;;MAGF,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;KACpD;;;;;;;;;;IAUD,SAAS,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;MACjC,IAAI,QAAQ;UACR,IAAI,CAAC;;;MAGT,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;;;MAGvC,IAAI,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;;;MAGtC,IAAI,QAAQ,EAAE;QACZ,IAAI,QAAQ,IAAI,aAAa,EAAE;UAC7B,MAAM,QAAQ,CAAC;SAChB,MAAM;UACL,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;SAChC;OACF;;;MAGD,SAAS,CAAC,KAAK,EAAE,UAAU,aAAa,EAAE;;QAExC,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;;;QAGtC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;OAClC,EAAE,IAAI,CAAC,CAAC;KACV;;;;;;;;IAQD,MAAM,CAAC,KAAK,GAAG,SAAS,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;;MAExC,SAAS,CAAC,IAAI,EAAE,UAAU,YAAY,EAAE;;QAEtC,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;OACtC,CAAC,CAAC;;MAEH,OAAO,MAAM,CAAC;KACf,CAAC;;;;;;;IAOF,MAAM,CAAC,IAAI,GAAG,SAAS,IAAI,CAAC,QAAQ,EAAE;MACpC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;KACvB,CAAC;;;;;;IAMF,MAAM,CAAC,KAAK,GAAG,SAAS,KAAK,GAAG;MAC9B,aAAa,GAAG,EAAE,CAAC;MACnB,iBAAiB,GAAG,EAAE,CAAC;MACvB,mBAAmB,GAAG,EAAE,CAAC;KAC1B,CAAC;;;;;;;IAOF,MAAM,CAAC,SAAS,GAAG,SAAS,SAAS,CAAC,QAAQ,EAAE;MAC9C,OAAO,QAAQ,IAAI,aAAa,CAAC;KAClC,CAAC;;;;IAIF,OAAO,MAAM,CAAC;;KAEb,CAAC,EAAE;;;ICpSJ;AACA;AAKA,IAAe,SAASC,UAAT,CAAoBhoB,GAApB,EAAyB;IACpC,WAAO,IAAIyC,OAAJ,CAAY,UAACE,OAAD,EAAU0N,MAAV,EAAqB;IACpC4X,mBAAOjoB,GAAP,EAAY;IACRkoB,qBAASvlB,OADD;IAERwR,mBAAO9D;IAFC,SAAZ;IAIH,KALM,CAAP;IAMH;;ICbD;AACA;IAcA;IACA,SAAS8X,OAAT,CAAiBnoB,GAAjB,EAAsB;IAClB,QAAIhC,GAAGkC,KAAH,CAASF,GAAT,CAAJ,EAAmB;IACf,eAAO,IAAP;IACH;;IAED,QAAIhC,GAAGG,MAAH,CAAUC,OAAO4B,GAAP,CAAV,CAAJ,EAA4B;IACxB,eAAOA,GAAP;IACH;;IAED,QAAMooB,QAAQ,iCAAd;IACA,WAAOpoB,IAAIgH,KAAJ,CAAUohB,KAAV,IAAmBja,OAAOka,EAA1B,GAA+BroB,GAAtC;IACH;;IAED;IACA,SAASsoB,cAAT,CAAwBpQ,KAAxB,EAA+BmD,MAA/B,EAAuC;IACnC,QAAMkN,WAAW,SAAXA,QAAW,CAACC,CAAD,EAAIC,CAAJ;IAAA,eAAWA,MAAM,CAAN,GAAUD,CAAV,GAAcD,SAASE,CAAT,EAAYD,IAAIC,CAAhB,CAAzB;IAAA,KAAjB;IACA,QAAMzJ,QAAQuJ,SAASrQ,KAAT,EAAgBmD,MAAhB,CAAd;IACA,WAAUnD,QAAQ8G,KAAlB,SAA2B3D,SAAS2D,KAApC;IACH;;IAED;IACA,SAAS0J,mBAAT,CAA6Brc,IAA7B,EAAmC;IAC/B,QAAIA,QAAQ,CAAC,KAAK0R,KAAL,CAAW4K,SAAxB,EAAmC;IAC/B,aAAK5K,KAAL,CAAW4K,SAAX,GAAuB,IAAvB;IACH;IACD,QAAI,KAAK9d,KAAL,CAAWoB,MAAX,KAAsBI,IAA1B,EAAgC;IAC5B,aAAKxB,KAAL,CAAWoB,MAAX,GAAoB,CAACI,IAArB;IACAtK,qBAAaN,IAAb,CAAkB,IAAlB,EAAwB,KAAKoJ,KAA7B,EAAoCwB,OAAO,MAAP,GAAgB,OAApD;IACH;IACJ;;IAED,IAAMsU,QAAQ;IACV/D,SADU,mBACF;IAAA;;IACJ;IACApW,oBAAY,KAAK5D,QAAL,CAAcI,OAA1B,EAAmC,KAAKyJ,MAAL,CAAYwH,UAAZ,CAAuB8J,KAA1D,EAAiE,IAAjE;;IAEA;IACA4C,cAAMiI,cAAN,CAAqBnnB,IAArB,CAA0B,IAA1B;;IAEA;IACA,YAAI,CAACzD,GAAGC,MAAH,CAAUyB,OAAOmpB,KAAjB,CAAL,EAA8B;IAC1Bb,uBAAW,KAAKvb,MAAL,CAAYiU,IAAZ,CAAiBC,KAAjB,CAAuBC,GAAlC,EACK9d,IADL,CACU,YAAM;IACR6d,sBAAMne,KAAN,CAAYf,IAAZ,CAAiB,KAAjB;IACH,aAHL,EAIKiQ,KAJL,CAIW,iBAAS;IACZ,sBAAK/E,KAAL,CAAWyH,IAAX,CAAgB,0BAAhB,EAA4CD,KAA5C;IACH,aANL;IAOH,SARD,MAQO;IACHwM,kBAAMne,KAAN,CAAYf,IAAZ,CAAiB,IAAjB;IACH;IACJ,KApBS;;;IAsBV;IACA;IACAmnB,kBAxBU,0BAwBKhrB,KAxBL,EAwBY;IAAA,qBACH,CAACI,GAAGM,MAAH,CAAUV,KAAV,IAAmBA,KAAnB,GAA2B,KAAK6O,MAAL,CAAYuS,KAAxC,EAA+C7d,KAA/C,CAAqD,GAArD,CADG;IAAA;IAAA,YACXshB,CADW;IAAA,YACRE,CADQ;;IAElB,YAAMmG,UAAU,MAAMrG,CAAN,GAAUE,CAA1B;IACA,aAAK/f,QAAL,CAAcI,OAAd,CAAsB4F,KAAtB,CAA4BmgB,aAA5B,GAA+CD,OAA/C;;IAEA,YAAI,KAAKxoB,SAAL,CAAe6J,EAAnB,EAAuB;IACnB,gBAAMkR,SAAS,GAAf;IACA,gBAAM2N,SAAS,CAAC3N,SAASyN,OAAV,KAAsBzN,SAAS,EAA/B,CAAf;;IAEA,iBAAKxQ,KAAL,CAAWjC,KAAX,CAAiBqgB,SAAjB,oBAA4CD,MAA5C;IACH;IACJ,KAnCS;;;IAqCV;IACAxmB,SAtCU,sBAsCF;IAAA;;IACJ,YAAMsJ,SAAS,IAAf;;IAEA;IACA,YAAMvL,UAAU;IACZ8e,kBAAMvT,OAAOW,MAAP,CAAc4S,IAAd,CAAmBhC,MADb;IAEZwB,sBAAU/S,OAAO+S,QAFL;IAGZ;IACAqK,oBAAQ,KAJI;IAKZC,sBAAU,KALE;IAMZha,mBAAO,KANK;IAOZkL,mBAAO,IAPK;IAQZ+O,yBAAa,CARD;IASZC,qBAAS,OATG;IAUZrf,yBAAa,CAAC,KAAKyC,MAAL,CAAY+G,UAAZ,CAAuBkM;IAVzB,SAAhB;IAYA,YAAMhD,SAASD,eAAelc,OAAf,CAAf;;IAEA;IACA,YAAIkL,SAASK,OAAOjB,KAAP,CAAaa,YAAb,CAA0B,KAA1B,CAAb;;IAEA;IACA,YAAI1N,GAAGkC,KAAH,CAASuL,MAAT,CAAJ,EAAsB;IAClBA,qBAASK,OAAOjB,KAAP,CAAaa,YAAb,CAA0BI,OAAOW,MAAP,CAAc3I,UAAd,CAAyBia,KAAzB,CAA+B7X,EAAzD,CAAT;IACH;;IAED,YAAMA,KAAKiiB,QAAQ1c,MAAR,CAAX;;IAEA;IACA,YAAMoV,SAASzc,cAAc,QAAd,CAAf;IACA,YAAMgI,MAAMuB,OAAO7B,OAAOW,MAAP,CAAciU,IAAd,CAAmBC,KAAnB,CAAyBE,MAAhC,EAAwC3a,EAAxC,EAA4CwW,MAA5C,CAAZ;IACAmE,eAAO1c,YAAP,CAAoB,KAApB,EAA2BiI,GAA3B;IACAyU,eAAO1c,YAAP,CAAoB,iBAApB,EAAuC,EAAvC;IACA0c,eAAO1c,YAAP,CAAoB,mBAApB,EAAyC,EAAzC;IACA0c,eAAO1c,YAAP,CAAoB,OAApB,EAA6B,UAA7B;;IAEA;IApCI,YAqCIgd,MArCJ,GAqCerV,MArCf,CAqCIqV,MArCJ;;IAuCJ;;IACA,YAAMne,UAAUoB,cAAc,KAAd,EAAqB,EAAE+c,cAAF,EAAUlb,OAAO6F,OAAOW,MAAP,CAAcwH,UAAd,CAAyBiN,cAA1C,EAArB,CAAhB;IACAle,gBAAQW,WAAR,CAAoBkd,MAApB;IACA/U,eAAOjB,KAAP,GAAe7F,eAAehC,OAAf,EAAwB8I,OAAOjB,KAA/B,CAAf;;IAEA;IACAsF,cAAMxC,OAAO7B,OAAOW,MAAP,CAAciU,IAAd,CAAmBC,KAAnB,CAAyBzW,GAAhC,EAAqChE,EAArC,CAAN,EAAgD,MAAhD,EAAwDpD,IAAxD,CAA6D,oBAAY;IACrE,gBAAI9E,GAAGkC,KAAH,CAASuQ,QAAT,CAAJ,EAAwB;IACpB;IACH;;IAED;IACA,gBAAMzQ,MAAM,IAAIwS,GAAJ,CAAQ/B,SAAS,CAAT,EAAY6Y,eAApB,CAAZ;;IAEA;IACAtpB,gBAAIupB,QAAJ,GAAkBvpB,IAAIupB,QAAJ,CAAapoB,KAAb,CAAmB,GAAnB,EAAwB,CAAxB,CAAlB;;IAEA;IACAgJ,eAAGya,SAAH,CAAanjB,IAAb,CAAkBqK,MAAlB,EAA0B9L,IAAIwc,IAA9B,EAAoC9K,KAApC,CAA0C,YAAM,EAAhD;IACH,SAbD;;IAeA;IACA;IACA5F,eAAOiS,KAAP,GAAe,IAAIre,OAAOmpB,KAAP,CAAaW,MAAjB,CAAwB3I,MAAxB,EAAgC;IAC3C/B,uBAAWhT,OAAOW,MAAP,CAAcqS,SADkB;IAE3CzH,mBAAOvL,OAAOuL;IAF6B,SAAhC,CAAf;;IAKAvL,eAAOjB,KAAP,CAAaoB,MAAb,GAAsB,IAAtB;IACAH,eAAOjB,KAAP,CAAamB,WAAb,GAA2B,CAA3B;;IAEA;IACA,YAAIF,OAAOxL,SAAP,CAAiB6J,EAArB,EAAyB;IACrB2B,mBAAOiS,KAAP,CAAa0L,gBAAb;IACH;;IAED;IACA3d,eAAOjB,KAAP,CAAawB,IAAb,GAAoB,YAAM;IACtBqc,gCAAoBjnB,IAApB,CAAyBqK,MAAzB,EAAiC,IAAjC;IACA,mBAAOA,OAAOiS,KAAP,CAAa1R,IAAb,EAAP;IACH,SAHD;;IAKAP,eAAOjB,KAAP,CAAaoI,KAAb,GAAqB,YAAM;IACvByV,gCAAoBjnB,IAApB,CAAyBqK,MAAzB,EAAiC,KAAjC;IACA,mBAAOA,OAAOiS,KAAP,CAAa9K,KAAb,EAAP;IACH,SAHD;;IAKAnH,eAAOjB,KAAP,CAAa6e,IAAb,GAAoB,YAAM;IACtB5d,mBAAOmH,KAAP;IACAnH,mBAAOE,WAAP,GAAqB,CAArB;IACH,SAHD;;IAKA;IA3FI,YA4FEA,WA5FF,GA4FkBF,OAAOjB,KA5FzB,CA4FEmB,WA5FF;;IA6FJ9N,eAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,aAApC,EAAmD;IAC/CpK,eAD+C,oBACzC;IACF,uBAAOuL,WAAP;IACH,aAH8C;IAI/CD,eAJ+C,kBAI3CiG,IAJ2C,EAIrC;IACN;;IAEA;IAHM,oBAIE+L,KAJF,GAImCjS,MAJnC,CAIEiS,KAJF;IAAA,oBAISlT,KAJT,GAImCiB,MAJnC,CAISjB,KAJT;IAAA,oBAIgBoB,MAJhB,GAImCH,MAJnC,CAIgBG,MAJhB;IAAA,oBAIwB2H,MAJxB,GAImC9H,MAJnC,CAIwB8H,MAJxB;;IAKN,oBAAM+V,eAAe1d,UAAU,CAAC8R,MAAM4K,SAAtC;;IAEA;IACA9d,sBAAM4N,OAAN,GAAgB,IAAhB;IACA1W,6BAAaN,IAAb,CAAkBqK,MAAlB,EAA0BjB,KAA1B,EAAiC,SAAjC;;IAEA;IACApI,wBAAQE,OAAR,CAAgBgnB,gBAAgB5L,MAAM6L,SAAN,CAAgB,CAAhB,CAAhC;IACI;IADJ,iBAEK9mB,IAFL,CAEU;IAAA,2BAAMib,MAAM8L,cAAN,CAAqB7X,IAArB,CAAN;IAAA,iBAFV;IAGI;IAHJ,iBAIKlP,IAJL,CAIU;IAAA,2BAAM6mB,gBAAgB5L,MAAM9K,KAAN,EAAtB;IAAA,iBAJV;IAKI;IALJ,iBAMKnQ,IANL,CAMU;IAAA,2BAAM6mB,gBAAgB5L,MAAM6L,SAAN,CAAgBhW,MAAhB,CAAtB;IAAA,iBANV,EAOKlC,KAPL,CAOW,YAAM;IACT;IACH,iBATL;IAUH;IA1B8C,SAAnD;;IA6BA;IACA,YAAI2I,QAAQvO,OAAOW,MAAP,CAAc4N,KAAd,CAAoBiF,QAAhC;IACAphB,eAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,cAApC,EAAoD;IAChDpK,eADgD,oBAC1C;IACF,uBAAO4Z,KAAP;IACH,aAH+C;IAIhDtO,eAJgD,kBAI5CnO,KAJ4C,EAIrC;IACPkO,uBAAOiS,KAAP,CACK+L,eADL,CACqBlsB,KADrB,EAEKkF,IAFL,CAEU,YAAM;IACRuX,4BAAQzc,KAAR;IACAmE,iCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,YAAxC;IACH,iBALL,EAMK6G,KANL,CAMW,iBAAS;IACZ;IACA,wBAAIyC,MAAM2C,IAAN,KAAe,OAAnB,EAA4B;IACxBxE,iCAAS8H,YAAT,CAAsB3Y,IAAtB,CAA2BqK,MAA3B,EAAmC,EAAnC;IACH;IACJ,iBAXL;IAYH;IAjB+C,SAApD;;IAoBA;IAhJI,YAiJE8H,MAjJF,GAiJa9H,OAAOW,MAjJpB,CAiJEmH,MAjJF;;IAkJJ1V,eAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,QAApC,EAA8C;IAC1CpK,eAD0C,oBACpC;IACF,uBAAOmT,MAAP;IACH,aAHyC;IAI1C7H,eAJ0C,kBAItCnO,KAJsC,EAI/B;IACPkO,uBAAOiS,KAAP,CAAa6L,SAAb,CAAuBhsB,KAAvB,EAA8BkF,IAA9B,CAAmC,YAAM;IACrC8Q,6BAAShW,KAAT;IACAmE,iCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,cAAxC;IACH,iBAHD;IAIH;IATyC,SAA9C;;IAYA;IA9JI,YA+JEwM,KA/JF,GA+JYvL,OAAOW,MA/JnB,CA+JE4K,KA/JF;;IAgKJnZ,eAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,OAApC,EAA6C;IACzCpK,eADyC,oBACnC;IACF,uBAAO4W,KAAP;IACH,aAHwC;IAIzCtL,eAJyC,kBAIrCnO,KAJqC,EAI9B;IACP,oBAAMmD,SAAS/C,GAAGQ,OAAH,CAAWZ,KAAX,IAAoBA,KAApB,GAA4B,KAA3C;;IAEAkO,uBAAOiS,KAAP,CAAa6L,SAAb,CAAuB7oB,SAAS,CAAT,GAAa+K,OAAOW,MAAP,CAAcmH,MAAlD,EAA0D9Q,IAA1D,CAA+D,YAAM;IACjEuU,4BAAQtW,MAAR;IACAgB,iCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,cAAxC;IACH,iBAHD;IAIH;IAXwC,SAA7C;;IAcA;IA9KI,YA+KEwU,IA/KF,GA+KWvT,OAAOW,MA/KlB,CA+KE4S,IA/KF;;IAgLJnhB,eAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,MAApC,EAA4C;IACxCpK,eADwC,oBAClC;IACF,uBAAO4e,IAAP;IACH,aAHuC;IAIxCtT,eAJwC,kBAIpCnO,KAJoC,EAI7B;IACP,oBAAMmD,SAAS/C,GAAGQ,OAAH,CAAWZ,KAAX,IAAoBA,KAApB,GAA4BkO,OAAOW,MAAP,CAAc4S,IAAd,CAAmBhC,MAA9D;;IAEAvR,uBAAOiS,KAAP,CAAagM,OAAb,CAAqBhpB,MAArB,EAA6B+B,IAA7B,CAAkC,YAAM;IACpCuc,2BAAOte,MAAP;IACH,iBAFD;IAGH;IAVuC,SAA5C;;IAaA;IACA,YAAIipB,mBAAJ;IACAle,eAAOiS,KAAP,CACKkM,WADL,GAEKnnB,IAFL,CAEU,iBAAS;IACXknB,yBAAa/lB,KAAb;IACH,SAJL,EAKKyN,KALL,CAKW,iBAAS;IACZ,mBAAK/E,KAAL,CAAWyH,IAAX,CAAgBD,KAAhB;IACH,SAPL;;IASAjW,eAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,YAApC,EAAkD;IAC9CpK,eAD8C,oBACxC;IACF,uBAAOupB,UAAP;IACH;IAH6C,SAAlD;;IAMA;IACA9rB,eAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,OAApC,EAA6C;IACzCpK,eADyC,oBACnC;IACF,uBAAOqL,OAAOE,WAAP,KAAuBF,OAAOiI,QAArC;IACH;IAHwC,SAA7C;;IAMA;IACAtR,gBAAQ4d,GAAR,CAAY,CAACvU,OAAOiS,KAAP,CAAamM,aAAb,EAAD,EAA+Bpe,OAAOiS,KAAP,CAAaoM,cAAb,EAA/B,CAAZ,EAA2ErnB,IAA3E,CAAgF,sBAAc;IAC1F,gBAAMkc,QAAQsJ,eAAe8B,WAAW,CAAX,CAAf,EAA8BA,WAAW,CAAX,CAA9B,CAAd;IACAzJ,kBAAMiI,cAAN,CAAqBnnB,IAArB,CAA0B,MAA1B,EAAgCud,KAAhC;IACH,SAHD;;IAKA;IACAlT,eAAOiS,KAAP,CAAasM,YAAb,CAA0Bve,OAAOW,MAAP,CAAcqS,SAAxC,EAAmDhc,IAAnD,CAAwD,iBAAS;IAC7DgJ,mBAAOW,MAAP,CAAcqS,SAAd,GAA0BwL,KAA1B;IACH,SAFD;;IAIA;IACAxe,eAAOiS,KAAP,CAAawM,aAAb,GAA6BznB,IAA7B,CAAkC,iBAAS;IACvCgJ,mBAAOW,MAAP,CAAc0C,KAAd,GAAsBA,KAAtB;IACAhF,eAAGwa,QAAH,CAAYljB,IAAZ,CAAiB,MAAjB;IACH,SAHD;;IAKA;IACAqK,eAAOiS,KAAP,CAAayM,cAAb,GAA8B1nB,IAA9B,CAAmC,iBAAS;IACxCkJ,0BAAc/H,KAAd;IACAlC,yBAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,YAAxC;IACH,SAHD;;IAKA;IACAiB,eAAOiS,KAAP,CAAa0M,WAAb,GAA2B3nB,IAA3B,CAAgC,iBAAS;IACrCgJ,mBAAOjB,KAAP,CAAakJ,QAAb,GAAwB9P,KAAxB;IACAlC,yBAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,gBAAxC;IACH,SAHD;;IAKA;IACAiB,eAAOiS,KAAP,CAAa2M,aAAb,GAA6B5nB,IAA7B,CAAkC,kBAAU;IACxCgJ,mBAAOjB,KAAP,CAAaG,UAAb,GAA0B8O,MAA1B;IACAvG,qBAASqJ,KAAT,CAAenb,IAAf,CAAoBqK,MAApB;IACH,SAHD;;IAKAA,eAAOiS,KAAP,CAAavc,EAAb,CAAgB,WAAhB,EAA6B,gBAAmB;IAAA,iCAAhB8c,IAAgB;IAAA,gBAAhBA,IAAgB,6BAAT,EAAS;;IAC5C,gBAAMqM,eAAerM,KAAK1S,GAAL,CAAS;IAAA,uBAAO+C,UAAUlP,IAAI4E,IAAd,CAAP;IAAA,aAAT,CAArB;IACAkP,qBAASoK,UAAT,CAAoBlc,IAApB,CAAyBqK,MAAzB,EAAiC6e,YAAjC;IACH,SAHD;;IAKA7e,eAAOiS,KAAP,CAAavc,EAAb,CAAgB,QAAhB,EAA0B,YAAM;IAC5B;IACAsK,mBAAOiS,KAAP,CAAa6M,SAAb,GAAyB9nB,IAAzB,CAA8B,kBAAU;IACpC4lB,oCAAoBjnB,IAApB,CAAyBqK,MAAzB,EAAiC,CAACG,MAAlC;IACA,oBAAI,CAACA,MAAL,EAAa;IACTlK,iCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,SAAxC;IACH;IACJ,aALD;;IAOA,gBAAI7M,GAAGmB,OAAH,CAAW2M,OAAOiS,KAAP,CAAa5e,OAAxB,KAAoC2M,OAAOxL,SAAP,CAAiB6J,EAAzD,EAA6D;IACzD,oBAAM0gB,QAAQ/e,OAAOiS,KAAP,CAAa5e,OAA3B;;IAEA;IACA;IACA0rB,sBAAM1mB,YAAN,CAAmB,UAAnB,EAA+B,CAAC,CAAhC;IACH;IACJ,SAhBD;;IAkBA2H,eAAOiS,KAAP,CAAavc,EAAb,CAAgB,MAAhB,EAAwB,YAAM;IAC1BknB,gCAAoBjnB,IAApB,CAAyBqK,MAAzB,EAAiC,IAAjC;IACA/J,yBAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,SAAxC;IACH,SAHD;;IAKAiB,eAAOiS,KAAP,CAAavc,EAAb,CAAgB,OAAhB,EAAyB,YAAM;IAC3BknB,gCAAoBjnB,IAApB,CAAyBqK,MAAzB,EAAiC,KAAjC;IACH,SAFD;;IAIAA,eAAOiS,KAAP,CAAavc,EAAb,CAAgB,YAAhB,EAA8B,gBAAQ;IAClCsK,mBAAOjB,KAAP,CAAa4N,OAAb,GAAuB,KAAvB;IACAzM,0BAAcoF,KAAK0Z,OAAnB;IACA/oB,yBAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,YAAxC;IACH,SAJD;;IAMAiB,eAAOiS,KAAP,CAAavc,EAAb,CAAgB,UAAhB,EAA4B,gBAAQ;IAChCsK,mBAAOjB,KAAP,CAAa6M,QAAb,GAAwBtG,KAAKuG,OAA7B;IACA5V,yBAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,UAAxC;;IAEA;IACA,gBAAI+G,SAASR,KAAKuG,OAAd,EAAuB,EAAvB,MAA+B,CAAnC,EAAsC;IAClC5V,6BAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,gBAAxC;IACH;;IAED;IACA;IACAiB,mBAAOiS,KAAP,CAAa0M,WAAb,GAA2B3nB,IAA3B,CAAgC,iBAAS;IACrC,oBAAImB,UAAU6H,OAAOjB,KAAP,CAAakJ,QAA3B,EAAqC;IACjCjI,2BAAOjB,KAAP,CAAakJ,QAAb,GAAwB9P,KAAxB;IACAlC,iCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,gBAAxC;IACH;IACJ,aALD;IAMH,SAjBD;;IAmBAiB,eAAOiS,KAAP,CAAavc,EAAb,CAAgB,QAAhB,EAA0B,YAAM;IAC5BsK,mBAAOjB,KAAP,CAAa4N,OAAb,GAAuB,KAAvB;IACA1W,yBAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,QAAxC;IACH,SAHD;;IAKAiB,eAAOiS,KAAP,CAAavc,EAAb,CAAgB,OAAhB,EAAyB,YAAM;IAC3BsK,mBAAOjB,KAAP,CAAaoB,MAAb,GAAsB,IAAtB;IACAlK,yBAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,OAAxC;IACH,SAHD;;IAKAiB,eAAOiS,KAAP,CAAavc,EAAb,CAAgB,OAAhB,EAAyB,kBAAU;IAC/BsK,mBAAOjB,KAAP,CAAasJ,KAAb,GAAqBlS,MAArB;IACAF,yBAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,OAAxC;IACH,SAHD;;IAKA;IACAnI,mBAAW;IAAA,mBAAMyH,GAAGsa,KAAH,CAAShjB,IAAT,CAAcqK,MAAd,CAAN;IAAA,SAAX,EAAwC,CAAxC;IACH;IAxWS,CAAd;;IC/CA;AACA;IAcA;IACA,SAASqc,SAAT,CAAiBnoB,GAAjB,EAAsB;IAClB,QAAIhC,GAAGkC,KAAH,CAASF,GAAT,CAAJ,EAAmB;IACf,eAAO,IAAP;IACH;;IAED,QAAMooB,QAAQ,8DAAd;IACA,WAAOpoB,IAAIgH,KAAJ,CAAUohB,KAAV,IAAmBja,OAAOka,EAA1B,GAA+BroB,GAAtC;IACH;;IAED;IACA,SAAS+qB,cAAT,CAAwBntB,KAAxB,EAA+B;IAC3B,QAAMotB,YAAY;IACdC,gBAAQ,IADM;IAEdC,gBAAQ,IAFM;IAGdC,gBAAQ,IAHM;IAIdC,eAAO,GAJO;IAKdC,eAAO,GALO;IAMdC,gBAAQ,GANM;IAOdC,eAAO,GAPO;IAQdC,cAAM;IARQ,KAAlB;;IAWA,QAAMC,QAAQvtB,OAAO6F,OAAP,CAAeinB,SAAf,EAA0BriB,IAA1B,CAA+B;IAAA,eAAS8iB,MAAMvkB,QAAN,CAAetJ,KAAf,CAAT;IAAA,KAA/B,CAAd;;IAEA,QAAI6tB,KAAJ,EAAW;IACP;IACA,eAAOA,MAAM9iB,IAAN,CAAW;IAAA,mBAAS1E,UAAUrG,KAAnB;IAAA,SAAX,CAAP;IACH;;IAED,WAAO,SAAP;IACH;;IAED,SAAS8tB,eAAT,CAAyBC,MAAzB,EAAiC;IAC7B,QAAI3tB,GAAGkC,KAAH,CAASyrB,MAAT,CAAJ,EAAsB;IAClB,eAAOA,MAAP;IACH;;IAED,WAAOvc,OAAOuc,OAAO/f,GAAP,CAAW;IAAA,eAASmf,eAAea,KAAf,CAAT;IAAA,KAAX,CAAP,CAAP;IACH;;IAED;IACA,SAASlD,qBAAT,CAA6Brc,IAA7B,EAAmC;IAC/B,QAAIA,QAAQ,CAAC,KAAK0R,KAAL,CAAW4K,SAAxB,EAAmC;IAC/B,aAAK5K,KAAL,CAAW4K,SAAX,GAAuB,IAAvB;IACH;IACD,QAAI,KAAK9d,KAAL,CAAWoB,MAAX,KAAsBI,IAA1B,EAAgC;IAC5B,aAAKxB,KAAL,CAAWoB,MAAX,GAAoB,CAACI,IAArB;IACAtK,qBAAaN,IAAb,CAAkB,IAAlB,EAAwB,KAAKoJ,KAA7B,EAAoCwB,OAAO,MAAP,GAAgB,OAApD;IACH;IACJ;;IAED,IAAMyU,UAAU;IACZlE,SADY,mBACJ;IAAA;;IACJ;IACApW,oBAAY,KAAK5D,QAAL,CAAcI,OAA1B,EAAmC,KAAKyJ,MAAL,CAAYwH,UAAZ,CAAuB8J,KAA1D,EAAiE,IAAjE;;IAEA;IACA+C,gBAAQ8H,cAAR,CAAuBnnB,IAAvB,CAA4B,IAA5B;;IAEA;IACA,YAAIzD,GAAGC,MAAH,CAAUyB,OAAOmsB,EAAjB,KAAwB7tB,GAAGS,QAAH,CAAYiB,OAAOmsB,EAAP,CAAUrC,MAAtB,CAA5B,EAA2D;IACvD1I,oBAAQte,KAAR,CAAcf,IAAd,CAAmB,IAAnB;IACH,SAFD,MAEO;IACH;IACAumB,uBAAW,KAAKvb,MAAL,CAAYiU,IAAZ,CAAiBI,OAAjB,CAAyBF,GAApC,EAAyClP,KAAzC,CAA+C,iBAAS;IACpD,sBAAK/E,KAAL,CAAWyH,IAAX,CAAgB,4BAAhB,EAA8CD,KAA9C;IACH,aAFD;;IAIA;IACA;IACAzU,mBAAOosB,uBAAP,GAAiCpsB,OAAOosB,uBAAP,IAAkC,EAAnE;;IAEA;IACApsB,mBAAOosB,uBAAP,CAA+BxqB,IAA/B,CAAoC,YAAM;IACtCwf,wBAAQte,KAAR,CAAcf,IAAd,CAAmB,KAAnB;IACH,aAFD;;IAIA;IACA/B,mBAAOqsB,uBAAP,GAAiC,YAAM;IACnCrsB,uBAAOosB,uBAAP,CAA+B1qB,OAA/B,CAAuC,oBAAY;IAC/CN;IACH,iBAFD;IAGH,aAJD;IAKH;IACJ,KAjCW;;;IAmCZ;IACAkrB,YApCY,oBAoCHC,OApCG,EAoCM;IAAA;;IACd;IACA;IACA;IACA,YAAIjuB,GAAGS,QAAH,CAAY,KAAKsf,KAAL,CAAWmO,YAAvB,CAAJ,EAA0C;IAAA,sCACpB,KAAKnO,KAAL,CAAWmO,YAAX,EADoB;IAAA,gBAC9B/c,KAD8B,uBAC9BA,KAD8B;;IAGtC,gBAAInR,GAAGkC,KAAH,CAASiP,KAAT,CAAJ,EAAqB;IACjB,qBAAK1C,MAAL,CAAY0C,KAAZ,GAAoBA,KAApB;IACAhF,mBAAGwa,QAAH,CAAYljB,IAAZ,CAAiB,IAAjB;IACA;IACH;IACJ;;IAED;IACA,YAAMyC,MAAM,KAAKuI,MAAL,CAAYrM,IAAZ,CAAiB0hB,MAA7B;IACA,YAAI9jB,GAAGM,MAAH,CAAU4F,GAAV,KAAkB,CAAClG,GAAGkC,KAAH,CAASgE,GAAT,CAAvB,EAAsC;IAClC,gBAAMlE,MAAM2N,OAAO,KAAKlB,MAAL,CAAYiU,IAAZ,CAAiBI,OAAjB,CAAyB5W,GAAhC,EAAqC+hB,OAArC,EAA8C/nB,GAA9C,CAAZ;;IAEAiM,kBAAMnQ,GAAN,EACK8C,IADL,CACU,kBAAU;IACZ,oBAAI9E,GAAGC,MAAH,CAAUwT,MAAV,CAAJ,EAAuB;IACnB,2BAAKhF,MAAL,CAAY0C,KAAZ,GAAoBsC,OAAO0a,KAAP,CAAa,CAAb,EAAgBC,OAAhB,CAAwBjd,KAA5C;IACAhF,uBAAGwa,QAAH,CAAYljB,IAAZ,CAAiB,MAAjB;IACH;IACJ,aANL,EAOKiQ,KAPL,CAOW,YAAM,EAPjB;IAQH;IACJ,KAhEW;;;IAkEZ;IACAkX,kBAnEY,4BAmEK;IACb,YAAM5J,QAAQ,KAAKvS,MAAL,CAAYuS,KAAZ,CAAkB7d,KAAlB,CAAwB,GAAxB,CAAd;IACA,aAAKyB,QAAL,CAAcI,OAAd,CAAsB4F,KAAtB,CAA4BmgB,aAA5B,GAA+C,MAAM/J,MAAM,CAAN,CAAN,GAAiBA,MAAM,CAAN,CAAhE;IACH,KAtEW;;;IAwEZ;IACAxc,SAzEY,sBAyEJ;IACJ,YAAMsJ,SAAS,IAAf;;IAEA;IACA,YAAMugB,YAAYvgB,OAAOjB,KAAP,CAAaa,YAAb,CAA0B,IAA1B,CAAlB;IACA,YAAI,CAAC1N,GAAGkC,KAAH,CAASmsB,SAAT,CAAD,IAAwBA,UAAUC,UAAV,CAAqB,UAArB,CAA5B,EAA8D;IAC1D;IACH;;IAED;IACA,YAAI7gB,SAASK,OAAOjB,KAAP,CAAaa,YAAb,CAA0B,KAA1B,CAAb;;IAEA;IACA,YAAI1N,GAAGkC,KAAH,CAASuL,MAAT,CAAJ,EAAsB;IAClBA,qBAASK,OAAOjB,KAAP,CAAaa,YAAb,CAA0B,KAAKe,MAAL,CAAY3I,UAAZ,CAAuBia,KAAvB,CAA6B7X,EAAvD,CAAT;IACH;;IAED;IACA,YAAM+lB,UAAU9D,UAAQ1c,MAAR,CAAhB;IACA,YAAMvF,KAAKoH,WAAWxB,OAAO/B,QAAlB,CAAX;;IAEA;IArBI,YAsBIoX,MAtBJ,GAsBerV,MAtBf,CAsBIqV,MAtBJ;;IAwBJ;;IACA,YAAMte,YAAYuB,cAAc,KAAd,EAAqB,EAAE8B,MAAF,EAAMib,cAAN,EAArB,CAAlB;IACArV,eAAOjB,KAAP,GAAe7F,eAAenC,SAAf,EAA0BiJ,OAAOjB,KAAjC,CAAf;;IAEA;IACA,YAAM0hB,YAAY,SAAZA,SAAY;IAAA,mDAAwCN,OAAxC,SAAmDte,SAAnD;IAAA,SAAlB;;IAEA;IACAqW,kBAAUuI,UAAU,QAAV,CAAV,EAA+B,GAA/B;IAAA,SACK7a,KADL,CACW;IAAA,mBAAMsS,UAAUuI,UAAU,IAAV,CAAV,EAA2B,GAA3B,CAAN;IAAA,SADX;IAAA,SAEK7a,KAFL,CAEW;IAAA,mBAAMsS,UAAUuI,UAAU,IAAV,CAAV,CAAN;IAAA,SAFX;IAAA,SAGKzpB,IAHL,CAGU;IAAA,mBAASqH,GAAGya,SAAH,CAAanjB,IAAb,CAAkBqK,MAAlB,EAA0BoY,MAAM9X,GAAhC,CAAT;IAAA,SAHV,EAIKtJ,IAJL,CAIU,qBAAa;IACf;IACA,gBAAI,CAACypB,UAAUrlB,QAAV,CAAmB,QAAnB,CAAL,EAAmC;IAC/B4E,uBAAOlJ,QAAP,CAAgBue,MAAhB,CAAuBvY,KAAvB,CAA6Bqc,cAA7B,GAA8C,OAA9C;IACH;IACJ,SATL,EAUKvT,KAVL,CAUW,YAAM,EAVjB;;IAYA;IACA;IACA5F,eAAOiS,KAAP,GAAe,IAAIre,OAAOmsB,EAAP,CAAUrC,MAAd,CAAqBtjB,EAArB,EAAyB;IACpC+lB,4BADoC;IAEpCO,wBAAY;IACR3N,0BAAU/S,OAAOW,MAAP,CAAcoS,QAAd,GAAyB,CAAzB,GAA6B,CAD/B;IAERvM,0BAAUxG,OAAOxL,SAAP,CAAiB6J,EAAjB,GAAsB,CAAtB,GAA0B,CAF5B;IAGRsiB,qBAAK,CAHG;IAIRC,0BAAU,CAJF;IAKRC,gCAAgB,CALR;IAMRC,gCAAgB,CANR;IAORC,2BAAW,CAPH;IAQR7iB,6BAAa,CARL;;IAUR;IACA;IACA8iB,iCAAiBptB,SAASA,OAAOgT,QAAP,CAAgB8J,IAAzB,GAAgC,IAZzC;;IAcR;IACAuQ,gCAAgBjhB,OAAOyH,QAAP,CAAgB8J,MAAhB,GAAyB,CAAzB,GAA6B,CAfrC;IAgBR2P,8BAAclhB,OAAOW,MAAP,CAAc8G,QAAd,CAAuB0G;IAhB7B,aAFwB;IAoBpC/Y,oBAAQ;IACJ+rB,uBADI,mBACI1tB,KADJ,EACW;IACX;IACA,wBAAI,CAACuM,OAAOjB,KAAP,CAAasJ,KAAlB,EAAyB;IACrB,4BAAMuR,OAAOnmB,MAAM6R,IAAnB;IACA;IACA,4BAAM8b,UACF;IACI,+BAAG,sOADP;IAEI,+BAAG,sHAFP;IAGI,iCAAK,oIAHT;IAII,iCAAK,sFAJT;IAKI,iCAAK;IALT,0BAMExH,IANF,KAMW,0BAPf;;IASA5Z,+BAAOjB,KAAP,CAAasJ,KAAb,GAAqB,EAAEuR,UAAF,EAAQwH,gBAAR,EAArB;;IAEAnrB,qCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,OAAxC;IACH;IACJ,iBAnBG;IAoBJsiB,uCApBI,qCAoBsB;IACtBprB,iCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,eAAxC,EAAyD,KAAzD,EAAgE;IAC5D0B,iCAAST,OAAOjB,KAAP,CAAa0B;IADsC,qBAAhE;IAGH,iBAxBG;IAyBJ6gB,oCAzBI,gCAyBiB7tB,KAzBjB,EAyBwB;IACxB;IACA,wBAAM8tB,WAAW9tB,MAAMkF,MAAvB;;IAEA;IACAqH,2BAAOjB,KAAP,CAAayiB,YAAb,GAA4BD,SAASE,eAAT,EAA5B;;IAEAxrB,iCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,YAAxC;IACH,iBAjCG;IAkCJ2iB,uBAlCI,mBAkCIjuB,KAlCJ,EAkCW;IACX;IACA,wBAAM8tB,WAAW9tB,MAAMkF,MAAvB;;IAEA;IACAqc,4BAAQkL,QAAR,CAAiBvqB,IAAjB,CAAsBqK,MAAtB,EAA8BmgB,OAA9B;;IAEA;IACAngB,2BAAOjB,KAAP,CAAawB,IAAb,GAAoB,YAAM;IACtBqc,8CAAoBjnB,IAApB,CAAyBqK,MAAzB,EAAiC,IAAjC;IACAuhB,iCAASI,SAAT;IACH,qBAHD;;IAKA3hB,2BAAOjB,KAAP,CAAaoI,KAAb,GAAqB,YAAM;IACvByV,8CAAoBjnB,IAApB,CAAyBqK,MAAzB,EAAiC,KAAjC;IACAuhB,iCAASK,UAAT;IACH,qBAHD;;IAKA5hB,2BAAOjB,KAAP,CAAa6e,IAAb,GAAoB,YAAM;IACtB2D,iCAASM,SAAT;IACH,qBAFD;;IAIA7hB,2BAAOjB,KAAP,CAAakJ,QAAb,GAAwBsZ,SAAS5C,WAAT,EAAxB;IACA3e,2BAAOjB,KAAP,CAAaoB,MAAb,GAAsB,IAAtB;;IAEA;IACAH,2BAAOjB,KAAP,CAAamB,WAAb,GAA2B,CAA3B;IACA9N,2BAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,aAApC,EAAmD;IAC/CpK,2BAD+C,iBACzC;IACF,mCAAOrC,OAAOivB,SAAS7C,cAAT,EAAP,CAAP;IACH,yBAH8C;IAI/Cze,2BAJ+C,eAI3CiG,IAJ2C,EAIrC;IACN;IACA,gCAAIlG,OAAOG,MAAP,IAAiB,CAACH,OAAOiS,KAAP,CAAa4K,SAAnC,EAA8C;IAC1C7c,uCAAOiS,KAAP,CAAa1K,IAAb;IACH;;IAED;IACAvH,mCAAOjB,KAAP,CAAa4N,OAAb,GAAuB,IAAvB;IACA1W,yCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,SAAxC;;IAEA;IACAwiB,qCAAS5F,MAAT,CAAgBzV,IAAhB;IACH;IAhB8C,qBAAnD;;IAmBA;IACA9T,2BAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,cAApC,EAAoD;IAChDpK,2BADgD,iBAC1C;IACF,mCAAO4sB,SAASE,eAAT,EAAP;IACH,yBAH+C;IAIhDxhB,2BAJgD,eAI5CnO,KAJ4C,EAIrC;IACPyvB,qCAASvD,eAAT,CAAyBlsB,KAAzB;IACH;IAN+C,qBAApD;;IASA;IACAM,2BAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,SAApC,EAA+C;IAC3CpK,2BAD2C,iBACrC;IACF,mCAAOsqB,eAAesC,SAASO,kBAAT,EAAf,CAAP;IACH,yBAH0C;IAI3C7hB,2BAJ2C,eAIvCnO,KAJuC,EAIhC;IACPyvB,qCAASQ,kBAAT,CAA4B9C,eAAentB,KAAf,CAA5B;IACH;IAN0C,qBAA/C;;IASA;IAlEW,wBAmELgW,MAnEK,GAmEM9H,OAAOW,MAnEb,CAmELmH,MAnEK;;IAoEX1V,2BAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,QAApC,EAA8C;IAC1CpK,2BAD0C,iBACpC;IACF,mCAAOmT,MAAP;IACH,yBAHyC;IAI1C7H,2BAJ0C,eAItCnO,KAJsC,EAI/B;IACPgW,qCAAShW,KAAT;IACAyvB,qCAASzD,SAAT,CAAmBhW,SAAS,GAA5B;IACA7R,yCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,cAAxC;IACH;IARyC,qBAA9C;;IAWA;IA/EW,wBAgFLwM,KAhFK,GAgFKvL,OAAOW,MAhFZ,CAgFL4K,KAhFK;;IAiFXnZ,2BAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,OAApC,EAA6C;IACzCpK,2BADyC,iBACnC;IACF,mCAAO4W,KAAP;IACH,yBAHwC;IAIzCtL,2BAJyC,eAIrCnO,KAJqC,EAI9B;IACP,gCAAMmD,SAAS/C,GAAGQ,OAAH,CAAWZ,KAAX,IAAoBA,KAApB,GAA4ByZ,KAA3C;IACAA,oCAAQtW,MAAR;IACAssB,qCAAStsB,SAAS,MAAT,GAAkB,QAA3B;IACAgB,yCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,cAAxC;IACH;IATwC,qBAA7C;;IAYA;IACA3M,2BAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,YAApC,EAAkD;IAC9CpK,2BAD8C,iBACxC;IACF,mCAAO4sB,SAASpD,WAAT,EAAP;IACH;IAH6C,qBAAlD;;IAMA;IACA/rB,2BAAOsC,cAAP,CAAsBsL,OAAOjB,KAA7B,EAAoC,OAApC,EAA6C;IACzCpK,2BADyC,iBACnC;IACF,mCAAOqL,OAAOE,WAAP,KAAuBF,OAAOiI,QAArC;IACH;IAHwC,qBAA7C;;IAMA;IACAjI,2BAAOvL,OAAP,CAAe8Z,KAAf,GAAuBgT,SAASS,yBAAT,EAAvB;;IAEA;IACA,wBAAIhiB,OAAOxL,SAAP,CAAiB6J,EAArB,EAAyB;IACrB2B,+BAAOjB,KAAP,CAAa1G,YAAb,CAA0B,UAA1B,EAAsC,CAAC,CAAvC;IACH;;IAEDpC,iCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,YAAxC;IACA9I,iCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,gBAAxC;;IAEA;IACAkjB,kCAAcjiB,OAAOuZ,MAAP,CAAc2I,SAA5B;;IAEA;IACAliB,2BAAOuZ,MAAP,CAAc2I,SAAd,GAA0BC,YAAY,YAAM;IACxC;IACAniB,+BAAOjB,KAAP,CAAa6M,QAAb,GAAwB2V,SAASa,sBAAT,EAAxB;;IAEA;IACA,4BAAIpiB,OAAOjB,KAAP,CAAasjB,YAAb,KAA8B,IAA9B,IAAsCriB,OAAOjB,KAAP,CAAasjB,YAAb,GAA4BriB,OAAOjB,KAAP,CAAa6M,QAAnF,EAA6F;IACzF3V,yCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,UAAxC;IACH;;IAED;IACAiB,+BAAOjB,KAAP,CAAasjB,YAAb,GAA4BriB,OAAOjB,KAAP,CAAa6M,QAAzC;;IAEA;IACA,4BAAI5L,OAAOjB,KAAP,CAAa6M,QAAb,KAA0B,CAA9B,EAAiC;IAC7BqW,0CAAcjiB,OAAOuZ,MAAP,CAAc2I,SAA5B;;IAEA;IACAjsB,yCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,gBAAxC;IACH;IACJ,qBAnByB,EAmBvB,GAnBuB,CAA1B;;IAqBA;IACAnI,+BAAW;IAAA,+BAAMyH,GAAGsa,KAAH,CAAShjB,IAAT,CAAcqK,MAAd,CAAN;IAAA,qBAAX,EAAwC,EAAxC;IACH,iBAnLG;IAoLJsiB,6BApLI,yBAoLU7uB,KApLV,EAoLiB;IACjB;IACA,wBAAM8tB,WAAW9tB,MAAMkF,MAAvB;;IAEA;IACAspB,kCAAcjiB,OAAOuZ,MAAP,CAAc/D,OAA5B;;IAEA,wBAAM+M,SAASviB,OAAOjB,KAAP,CAAa4N,OAAb,IAAwB,CAAC,CAAD,EAAI,CAAJ,EAAOvR,QAAP,CAAgB3H,MAAM6R,IAAtB,CAAvC;;IAEA,wBAAIid,MAAJ,EAAY;IACR;IACAviB,+BAAOjB,KAAP,CAAa4N,OAAb,GAAuB,KAAvB;IACA1W,qCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,QAAxC;IACH;;IAED;IACA;IACA;IACA;IACA;IACA;IACA;IACA,4BAAQtL,MAAM6R,IAAd;IACI,6BAAK,CAAC,CAAN;IACI;IACArP,yCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,YAAxC;;IAEA;IACAiB,mCAAOjB,KAAP,CAAa6M,QAAb,GAAwB2V,SAASa,sBAAT,EAAxB;IACAnsB,yCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,UAAxC;;IAEA;;IAEJ,6BAAK,CAAL;IACI6d,kDAAoBjnB,IAApB,CAAyBqK,MAAzB,EAAiC,KAAjC;;IAEA;IACA,gCAAIA,OAAOjB,KAAP,CAAawU,IAAjB,EAAuB;IACnB;IACAgO,yCAASM,SAAT;IACAN,yCAASI,SAAT;IACH,6BAJD,MAIO;IACH1rB,6CAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,OAAxC;IACH;;IAED;;IAEJ,6BAAK,CAAL;IACI;IACA,gCAAIiB,OAAOjB,KAAP,CAAaoB,MAAb,IAAuB,CAACH,OAAOiS,KAAP,CAAa4K,SAAzC,EAAoD;IAChD7c,uCAAOjB,KAAP,CAAaoI,KAAb;IACH,6BAFD,MAEO;IACHyV,sDAAoBjnB,IAApB,CAAyBqK,MAAzB,EAAiC,IAAjC;;IAEA/J,6CAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,SAAxC;;IAEA;IACAiB,uCAAOuZ,MAAP,CAAc/D,OAAd,GAAwB2M,YAAY,YAAM;IACtClsB,iDAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,YAAxC;IACH,iCAFuB,EAErB,EAFqB,CAAxB;;IAIA;IACA;IACA;IACA,oCAAIiB,OAAOjB,KAAP,CAAakJ,QAAb,KAA0BsZ,SAAS5C,WAAT,EAA9B,EAAsD;IAClD3e,2CAAOjB,KAAP,CAAakJ,QAAb,GAAwBsZ,SAAS5C,WAAT,EAAxB;IACA1oB,iDAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOjB,KAAjC,EAAwC,gBAAxC;IACH;;IAED;IACAyH,yCAAS0G,cAAT,CAAwBvX,IAAxB,CACIqK,MADJ,EAEI4f,gBAAgB2B,SAASiB,yBAAT,EAAhB,CAFJ;IAIH;;IAED;;IAEJ,6BAAK,CAAL;IACI;IACA,gCAAI,CAACxiB,OAAOuL,KAAZ,EAAmB;IACfvL,uCAAOiS,KAAP,CAAawQ,MAAb;IACH;IACD7F,kDAAoBjnB,IAApB,CAAyBqK,MAAzB,EAAiC,KAAjC;;IAEA;;IAEJ;IACI;IAlER;;IAqEA/J,iCAAaN,IAAb,CAAkBqK,MAAlB,EAA0BA,OAAOlJ,QAAP,CAAgBC,SAA1C,EAAqD,aAArD,EAAoE,KAApE,EAA2E;IACvE6iB,8BAAMnmB,MAAM6R;IAD2D,qBAA3E;IAGH;IAlRG;IApB4B,SAAzB,CAAf;IAySH;IAhaW,CAAhB;;ICnEA;AACA;IAQA,IAAMvG,QAAQ;IACV;IACA+R,SAFU,mBAEF;IACJ;IACA,YAAI,CAAC,KAAK/R,KAAV,EAAiB;IACb,iBAAK8B,KAAL,CAAWyH,IAAX,CAAgB,yBAAhB;IACA;IACH;;IAED;IACA5N,oBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuB1S,IAAvB,CAA4BqE,OAA5B,CAAoC,KAApC,EAA2C,KAAKrE,IAAhD,CAArC,EAA4F,IAA5F;;IAEA;IACAiF,oBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuBlK,QAAvB,CAAgCnE,OAAhC,CAAwC,KAAxC,EAA+C,KAAKmE,QAApD,CAArC,EAAoG,IAApG;;IAEA;IACA;IACA,YAAI,KAAK8a,OAAT,EAAkB;IACdre,wBAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuB1S,IAAvB,CAA4BqE,OAA5B,CAAoC,KAApC,EAA2C,OAA3C,CAArC,EAA0F,IAA1F;IACH;;IAED;IACA,YAAI,KAAKiX,OAAT,EAAkB;IACd;IACA,iBAAKja,QAAL,CAAcI,OAAd,GAAwBoB,cAAc,KAAd,EAAqB;IACzC6B,uBAAO,KAAKwG,MAAL,CAAYwH,UAAZ,CAAuBpK;IADW,aAArB,CAAxB;;IAIA;IACA9G,iBAAK,KAAK8H,KAAV,EAAiB,KAAKjI,QAAL,CAAcI,OAA/B;;IAEA;IACA,iBAAKJ,QAAL,CAAcue,MAAd,GAAuB/c,cAAc,KAAd,EAAqB;IACxC6B,uBAAO,KAAKwG,MAAL,CAAYwH,UAAZ,CAAuBkN;IADU,aAArB,CAAvB;;IAIA,iBAAKve,QAAL,CAAcI,OAAd,CAAsBW,WAAtB,CAAkC,KAAKf,QAAL,CAAcue,MAAhD;IACH;;IAED,YAAI,KAAKvW,OAAT,EAAkB;IACdU,kBAAMO,MAAN,CAAapK,IAAb,CAAkB,IAAlB;IACH,SAFD,MAEO,IAAI,KAAKqb,SAAT,EAAoB;IACvBgE,oBAAQlE,KAAR,CAAcnb,IAAd,CAAmB,IAAnB;IACH,SAFM,MAEA,IAAI,KAAK6Y,OAAT,EAAkB;IACrBqG,kBAAM/D,KAAN,CAAYnb,IAAZ,CAAiB,IAAjB;IACH;IACJ;IA9CS,CAAd;;ICTA;AACA;QAeM+sB;IACF;;;;;IAKA,iBAAY1iB,MAAZ,EAAoB;IAAA;;IAAA;;IAChB,aAAKA,MAAL,GAAcA,MAAd;IACA,aAAKiW,WAAL,GAAmBjW,OAAOW,MAAP,CAAc4U,GAAd,CAAkBU,WAArC;IACA,aAAKT,OAAL,GAAe,KAAf;IACA,aAAKkF,WAAL,GAAmB,KAAnB;IACA,aAAK5jB,QAAL,GAAgB;IACZC,uBAAW,IADC;IAEZ4rB,8BAAkB;IAFN,SAAhB;IAIA,aAAKC,OAAL,GAAe,IAAf;IACA,aAAKC,MAAL,GAAc,IAAd;IACA,aAAKC,SAAL,GAAiB,IAAjB;IACA,aAAK1tB,MAAL,GAAc,EAAd;IACA,aAAK2tB,WAAL,GAAmB,IAAnB;IACA,aAAKC,cAAL,GAAsB,IAAtB;;IAEA;IACA,aAAKrI,cAAL,GAAsB,IAAIhkB,OAAJ,CAAY,UAACE,OAAD,EAAU0N,MAAV,EAAqB;IACnD;IACA,kBAAK7O,EAAL,CAAQ,QAAR,EAAkBmB,OAAlB;;IAEA;IACA,kBAAKnB,EAAL,CAAQ,OAAR,EAAiB6O,MAAjB;IACH,SANqB,CAAtB;;IAQA,aAAK/D,IAAL;IACH;;;;;;IAMD;;;mCAGO;IAAA;;IACH,gBAAI,KAAKqD,OAAT,EAAkB;IACd;IACA,oBAAI,CAAC3R,GAAGC,MAAH,CAAUyB,OAAOoiB,MAAjB,CAAD,IAA6B,CAAC9jB,GAAGC,MAAH,CAAUyB,OAAOoiB,MAAP,CAAciN,GAAxB,CAAlC,EAAgE;IAC5D/G,+BAAW,KAAKlc,MAAL,CAAYW,MAAZ,CAAmBiU,IAAnB,CAAwBK,SAAxB,CAAkCH,GAA7C,EACK9d,IADL,CACU,YAAM;IACR,+BAAKN,KAAL;IACH,qBAHL,EAIKkP,KAJL,CAIW,YAAM;IACT;IACA,+BAAKsd,OAAL,CAAa,OAAb,EAAsB,IAAIte,KAAJ,CAAU,+BAAV,CAAtB;IACH,qBAPL;IAQH,iBATD,MASO;IACH,yBAAKlO,KAAL;IACH;IACJ;IACJ;;IAED;;;;;;uCAGQ;IAAA;;IACJ;IACA;IACA,iBAAKysB,gBAAL,CAAsB,KAAtB,EAA6B,SAA7B;;IAEA;IACA,iBAAKxI,cAAL,CAAoB3jB,IAApB,CAAyB,YAAM;IAC3B,uBAAKosB,gBAAL,CAAsB,sBAAtB;IACH,aAFD;;IAIA;IACA,iBAAKlO,SAAL;;IAEA;IACA,iBAAKmO,QAAL;IACH;;IAED;;;;;;IAiBA;;;;;;;;uCAQW;IACP;IACA,iBAAKvsB,QAAL,CAAcC,SAAd,GAA0BuB,cAAc,KAAd,EAAqB;IAC3C6B,uBAAO,KAAK6F,MAAL,CAAYW,MAAZ,CAAmBwH,UAAnB,CAA8BoN;IADM,aAArB,CAA1B;IAGA,iBAAKvV,MAAL,CAAYlJ,QAAZ,CAAqBC,SAArB,CAA+Bc,WAA/B,CAA2C,KAAKf,QAAL,CAAcC,SAAzD;;IAEA;IACAif,mBAAOiN,GAAP,CAAWzb,QAAX,CAAoB8b,YAApB,CAAiCtN,OAAOiN,GAAP,CAAWM,cAAX,CAA0BC,SAA1B,CAAoCC,OAArE;;IAEA;IACAzN,mBAAOiN,GAAP,CAAWzb,QAAX,CAAoBkc,SAApB,CAA8B,KAAK1jB,MAAL,CAAYW,MAAZ,CAAmB4U,GAAnB,CAAuBpH,QAArD;;IAEA;IACA;IACA,iBAAKrX,QAAL,CAAc6rB,gBAAd,GAAiC,IAAI3M,OAAOiN,GAAP,CAAWU,kBAAf,CAAkC,KAAK7sB,QAAL,CAAcC,SAAhD,CAAjC;;IAEA;IACA,iBAAK6sB,UAAL;IACH;;IAED;;;;;;yCAGa;IAAA;;IAAA,gBACD7sB,SADC,GACa,KAAKiJ,MAAL,CAAYlJ,QADzB,CACDC,SADC;;;IAGT,gBAAI;IACA;IACA,qBAAK8rB,MAAL,GAAc,IAAI7M,OAAOiN,GAAP,CAAWY,SAAf,CAAyB,KAAK/sB,QAAL,CAAc6rB,gBAAvC,CAAd;;IAEA;IACA,qBAAKE,MAAL,CAAYjuB,gBAAZ,CACIohB,OAAOiN,GAAP,CAAWa,qBAAX,CAAiCC,IAAjC,CAAsCC,kBAD1C,EAEI;IAAA,2BAAS,OAAKC,kBAAL,CAAwBxwB,KAAxB,CAAT;IAAA,iBAFJ,EAGI,KAHJ;IAKA,qBAAKovB,MAAL,CAAYjuB,gBAAZ,CAA6BohB,OAAOiN,GAAP,CAAWiB,YAAX,CAAwBH,IAAxB,CAA6BI,QAA1D,EAAoE;IAAA,2BAAS,OAAKC,SAAL,CAAe/b,KAAf,CAAT;IAAA,iBAApE,EAAoG,KAApG;;IAEA;IACA,oBAAM7D,UAAU,IAAIwR,OAAOiN,GAAP,CAAWoB,UAAf,EAAhB;IACA7f,wBAAQ8f,QAAR,GAAmB,KAAKC,MAAxB;;IAEA;IACA;IACA/f,wBAAQggB,iBAAR,GAA4BztB,UAAU0tB,WAAtC;IACAjgB,wBAAQkgB,kBAAR,GAA6B3tB,UAAUkG,YAAvC;IACAuH,wBAAQmgB,oBAAR,GAA+B5tB,UAAU0tB,WAAzC;IACAjgB,wBAAQogB,qBAAR,GAAgC7tB,UAAUkG,YAA1C;;IAEA;IACAuH,wBAAQqgB,sBAAR,GAAiC,KAAjC;;IAEA;IACArgB,wBAAQsgB,kBAAR,CAA2B,CAAC,KAAK9kB,MAAL,CAAYuL,KAAxC;;IAEA,qBAAKsX,MAAL,CAAYe,UAAZ,CAAuBpf,OAAvB;IACH,aA9BD,CA8BE,OAAO1P,CAAP,EAAU;IACR,qBAAKsvB,SAAL,CAAetvB,CAAf;IACH;IACJ;;IAED;;;;;;;4CAI6B;IAAA;;IAAA,gBAAfmF,KAAe,uEAAP,KAAO;;IACzB,gBAAI,CAACA,KAAL,EAAY;IACRgoB,8BAAc,KAAKe,cAAnB;IACA,qBAAKlsB,QAAL,CAAcC,SAAd,CAAwB0D,eAAxB,CAAwC,iBAAxC;IACA;IACH;;IAED,gBAAM4K,SAAS,SAATA,MAAS,GAAM;IACjB,oBAAMa,OAAOD,WAAWvE,KAAKQ,GAAL,CAAS,OAAK0gB,OAAL,CAAamC,gBAAb,EAAT,EAA0C,CAA1C,CAAX,CAAb;IACA,oBAAMpb,QAAWxG,KAAKxO,GAAL,CAAS,eAAT,EAA0B,OAAKqL,MAAL,CAAYW,MAAtC,CAAX,WAA8DuF,IAApE;IACA,uBAAKpP,QAAL,CAAcC,SAAd,CAAwBsB,YAAxB,CAAqC,iBAArC,EAAwDsR,KAAxD;IACH,aAJD;;IAMA,iBAAKqZ,cAAL,GAAsBb,YAAY9c,MAAZ,EAAoB,GAApB,CAAtB;IACH;;IAED;;;;;;;+CAImB5R,OAAO;IAAA;;IACtB;IACA,gBAAM+T,WAAW,IAAIwO,OAAOiN,GAAP,CAAW+B,oBAAf,EAAjB;;IAEA;IACAxd,qBAASyd,2CAAT,GAAuD,IAAvD;IACAzd,qBAAS0d,gBAAT,GAA4B,IAA5B;;IAEA;IACA;IACA,iBAAKtC,OAAL,GAAenvB,MAAM0xB,aAAN,CAAoB,KAAKnlB,MAAzB,EAAiCwH,QAAjC,CAAf;;IAEA;IACA,iBAAKsb,SAAL,GAAiB,KAAKF,OAAL,CAAawC,YAAb,EAAjB;;IAEA;IACA,gBAAI,CAAClzB,GAAGkC,KAAH,CAAS,KAAK0uB,SAAd,CAAL,EAA+B;IAC3B,qBAAKA,SAAL,CAAextB,OAAf,CAAuB,oBAAY;IAC/B,wBAAI+vB,aAAa,CAAb,IAAkBA,aAAa,CAAC,CAAhC,IAAqCA,WAAW,OAAKrlB,MAAL,CAAYiI,QAAhE,EAA0E;IACtE,4BAAMqd,cAAc,OAAKtlB,MAAL,CAAYlJ,QAAZ,CAAqB6Q,QAAzC;;IAEA,4BAAIzV,GAAGmB,OAAH,CAAWiyB,WAAX,CAAJ,EAA6B;IACzB,gCAAMC,gBAAgB,MAAM,OAAKvlB,MAAL,CAAYiI,QAAlB,GAA6Bod,QAAnD;IACA,gCAAM1xB,MAAM2E,cAAc,MAAd,EAAsB;IAC9B6B,uCAAO,OAAK6F,MAAL,CAAYW,MAAZ,CAAmBwH,UAAnB,CAA8BqK;IADP,6BAAtB,CAAZ;;IAIA7e,gCAAImJ,KAAJ,CAAUwP,IAAV,GAAoBiZ,cAAczjB,QAAd,EAApB;IACAwjB,wCAAYztB,WAAZ,CAAwBlE,GAAxB;IACH;IACJ;IACJ,iBAdD;IAeH;;IAED;IACA;IACA;;IAEA;IACA,iBAAKivB,OAAL,CAAa9E,SAAb,CAAuB,KAAK9d,MAAL,CAAY8H,MAAnC;;IAEA;IACA;IACA,iBAAK8a,OAAL,CAAahuB,gBAAb,CAA8BohB,OAAOiN,GAAP,CAAWiB,YAAX,CAAwBH,IAAxB,CAA6BI,QAA3D,EAAqE;IAAA,uBAAS,OAAKC,SAAL,CAAe/b,KAAf,CAAT;IAAA,aAArE;;IAEA;IACAjW,mBAAOkC,IAAP,CAAY0hB,OAAOiN,GAAP,CAAWuC,OAAX,CAAmBzB,IAA/B,EAAqCzuB,OAArC,CAA6C,gBAAQ;IACjD,uBAAKstB,OAAL,CAAahuB,gBAAb,CAA8BohB,OAAOiN,GAAP,CAAWuC,OAAX,CAAmBzB,IAAnB,CAAwBtuB,IAAxB,CAA9B,EAA6D;IAAA,2BAAS,OAAKgwB,SAAL,CAAehyB,KAAf,CAAT;IAAA,iBAA7D;IACH,aAFD;;IAIA;IACA,iBAAKyvB,OAAL,CAAa,QAAb;IACH;;IAED;;;;;;;;;sCAMUzvB,OAAO;IAAA;;IAAA,gBACLsD,SADK,GACS,KAAKiJ,MAAL,CAAYlJ,QADrB,CACLC,SADK;;IAGb;IACA;;IACA,gBAAM2uB,KAAKjyB,MAAMkyB,KAAN,EAAX;;IAEA;IACA,gBAAMpvB,gBAAgB,SAAhBA,aAAgB,OAAQ;IAC1B,oBAAM9C,gBAAcgC,KAAKqE,OAAL,CAAa,IAAb,EAAmB,EAAnB,EAAuB2I,WAAvB,EAApB;IACAxM,6BAAaN,IAAb,CAAkB,OAAKqK,MAAvB,EAA+B,OAAKA,MAAL,CAAYjB,KAA3C,EAAkDtL,KAAlD;IACH,aAHD;;IAKA,oBAAQA,MAAMgC,IAAd;IACI,qBAAKugB,OAAOiN,GAAP,CAAWuC,OAAX,CAAmBzB,IAAnB,CAAwB6B,MAA7B;IACI;IACA;IACA,yBAAK1C,OAAL,CAAa,QAAb;;IAEA;IACA3sB,kCAAc9C,MAAMgC,IAApB;;IAEA;IACA,yBAAKowB,aAAL,CAAmB,IAAnB;;IAEA,wBAAI,CAACH,GAAGI,QAAH,EAAL,EAAoB;IAChB;IACAJ,2BAAGtZ,KAAH,GAAWrV,UAAU0tB,WAArB;IACAiB,2BAAGnW,MAAH,GAAYxY,UAAUkG,YAAtB;IACH;;IAED;IACA;IACA;;IAEJ,qBAAK+Y,OAAOiN,GAAP,CAAWuC,OAAX,CAAmBzB,IAAnB,CAAwBgC,iBAA7B;IACI;IACA;;IAEA;IACAxvB,kCAAc9C,MAAMgC,IAApB;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA;IACA;;IAEA,yBAAKuwB,OAAL;IACA;;IAEJ,qBAAKhQ,OAAOiN,GAAP,CAAWuC,OAAX,CAAmBzB,IAAnB,CAAwBkC,uBAA7B;IACI;IACA;IACA;;IAEA1vB,kCAAc9C,MAAMgC,IAApB;;IAEA,yBAAKywB,YAAL;;IAEA;;IAEJ,qBAAKlQ,OAAOiN,GAAP,CAAWuC,OAAX,CAAmBzB,IAAnB,CAAwBoC,wBAA7B;IACI;IACA;IACA;IACA;;IAEA5vB,kCAAc9C,MAAMgC,IAApB;;IAEA,yBAAKowB,aAAL;;IAEA,yBAAKO,aAAL;;IAEA;;IAEJ,qBAAKpQ,OAAOiN,GAAP,CAAWuC,OAAX,CAAmBzB,IAAnB,CAAwBsC,OAA7B;IACA,qBAAKrQ,OAAOiN,GAAP,CAAWuC,OAAX,CAAmBzB,IAAnB,CAAwBuC,QAA7B;IACA,qBAAKtQ,OAAOiN,GAAP,CAAWuC,OAAX,CAAmBzB,IAAnB,CAAwBwC,QAA7B;IACA,qBAAKvQ,OAAOiN,GAAP,CAAWuC,OAAX,CAAmBzB,IAAnB,CAAwByC,UAA7B;IACA,qBAAKxQ,OAAOiN,GAAP,CAAWuC,OAAX,CAAmBzB,IAAnB,CAAwB0C,KAA7B;IACIlwB,kCAAc9C,MAAMgC,IAApB;IACA;;IAEJ;IACI;IAzFR;IA2FH;;IAED;;;;;;;sCAIUhC,OAAO;IACb,iBAAKizB,MAAL;IACA,iBAAK1mB,MAAL,CAAYa,KAAZ,CAAkByH,IAAlB,CAAuB,WAAvB,EAAoC7U,KAApC;IACH;;IAED;;;;;;;;wCAKY;IAAA;;IAAA,gBACAsD,SADA,GACc,KAAKiJ,MAAL,CAAYlJ,QAD1B,CACAC,SADA;;IAER,gBAAImP,aAAJ;;IAEA;IACA,iBAAKlG,MAAL,CAAYtK,EAAZ,CAAe,OAAf,EAAwB,YAAM;IAC1B,uBAAKmtB,MAAL,CAAY8D,eAAZ;IACH,aAFD;;IAIA,iBAAK3mB,MAAL,CAAYtK,EAAZ,CAAe,SAAf,EAA0B,YAAM;IAC5BwQ,uBAAO,OAAKlG,MAAL,CAAYE,WAAnB;IACA,uBAAOgG,IAAP;IACH,aAHD;;IAKA,iBAAKlG,MAAL,CAAYtK,EAAZ,CAAe,QAAf,EAAyB,YAAM;IAC3B,oBAAMkxB,aAAa,OAAK5mB,MAAL,CAAYE,WAA/B;;IAEA,oBAAIhO,GAAGkC,KAAH,CAAS,OAAK0uB,SAAd,CAAJ,EAA8B;IAC1B;IACH;;IAED,uBAAKA,SAAL,CAAextB,OAAf,CAAuB,UAAC+vB,QAAD,EAAW/tB,KAAX,EAAqB;IACxC,wBAAI4O,OAAOmf,QAAP,IAAmBA,WAAWuB,UAAlC,EAA8C;IAC1C,+BAAKhE,OAAL,CAAaiE,cAAb;IACA,+BAAK/D,SAAL,CAAegE,MAAf,CAAsBxvB,KAAtB,EAA6B,CAA7B;IACH;IACJ,iBALD;IAMH,aAbD;;IAeA;IACA;IACA1D,mBAAOgB,gBAAP,CAAwB,QAAxB,EAAkC,YAAM;IACpC,oBAAI,OAAKguB,OAAT,EAAkB;IACd,2BAAKA,OAAL,CAAamE,MAAb,CAAoBhwB,UAAU0tB,WAA9B,EAA2C1tB,UAAUkG,YAArD,EAAmE+Y,OAAOiN,GAAP,CAAW+D,QAAX,CAAoBC,MAAvF;IACH;IACJ,aAJD;IAKH;;IAED;;;;;;mCAGO;IAAA;;IAAA,gBACKlwB,SADL,GACmB,KAAKiJ,MAAL,CAAYlJ,QAD/B,CACKC,SADL;;;IAGH,gBAAI,CAAC,KAAK4jB,cAAV,EAA0B;IACtB,qBAAKyL,aAAL;IACH;;IAED;IACA,iBAAKzL,cAAL,CACK3jB,IADL,CACU,YAAM;IACR;IACA,uBAAKF,QAAL,CAAc6rB,gBAAd,CAA+BuE,UAA/B;;IAEA,oBAAI;IACA,wBAAI,CAAC,OAAKxM,WAAV,EAAuB;IACnB;IACA,+BAAKkI,OAAL,CAAauE,IAAb,CAAkBpwB,UAAU0tB,WAA5B,EAAyC1tB,UAAUkG,YAAnD,EAAiE+Y,OAAOiN,GAAP,CAAW+D,QAAX,CAAoBC,MAArF;;IAEA;IACA;IACA,+BAAKrE,OAAL,CAAa3oB,KAAb;IACH;;IAED,2BAAKygB,WAAL,GAAmB,IAAnB;IACH,iBAXD,CAWE,OAAO0M,OAAP,EAAgB;IACd;IACA;IACA,2BAAKhD,SAAL,CAAegD,OAAf;IACH;IACJ,aArBL,EAsBKxhB,KAtBL,CAsBW,YAAM,EAtBjB;IAuBH;;IAED;;;;;;4CAGgB;IACZ;IACA,iBAAK9O,QAAL,CAAcC,SAAd,CAAwB+F,KAAxB,CAA8BuqB,MAA9B,GAAuC,EAAvC;;IAEA;IACA,iBAAK7R,OAAL,GAAe,KAAf;;IAEA;IACA,gBAAI,KAAKxV,MAAL,CAAYE,WAAZ,GAA0B,KAAKF,MAAL,CAAYiI,QAA1C,EAAoD;IAChD,qBAAKjI,MAAL,CAAYO,IAAZ;IACH;IACJ;;IAED;;;;;;2CAGe;IACX;IACA,iBAAKzJ,QAAL,CAAcC,SAAd,CAAwB+F,KAAxB,CAA8BuqB,MAA9B,GAAuC,CAAvC;;IAEA;IACA,iBAAK7R,OAAL,GAAe,IAAf;;IAEA;IACA,iBAAKxV,MAAL,CAAYmH,KAAZ;IACH;;IAED;;;;;;;;;qCAMS;IACL;IACA,gBAAI,KAAKuT,WAAT,EAAsB;IAClB,qBAAK0L,aAAL;IACH;;IAED;IACA,iBAAKlD,OAAL,CAAa,OAAb;;IAEA;IACA,iBAAK8C,OAAL;IACH;;IAED;;;;;;sCAGU;IAAA;;IACN;IACA,iBAAKrL,cAAL,CACK3jB,IADL,CACU,YAAM;IACR;IACA,oBAAI,QAAK4rB,OAAT,EAAkB;IACd,4BAAKA,OAAL,CAAa0E,OAAb;IACH;;IAED;IACA,wBAAK3M,cAAL,GAAsB,IAAIhkB,OAAJ,CAAY,mBAAW;IACzC,4BAAKjB,EAAL,CAAQ,QAAR,EAAkBmB,OAAlB;IACA,4BAAKmJ,MAAL,CAAYa,KAAZ,CAAkBC,GAAlB,CAAsB,QAAK8hB,OAA3B;IACH,iBAHqB,CAAtB;;IAKA;IACA,wBAAKgB,UAAL;IACH,aAfL,EAgBKhe,KAhBL,CAgBW,YAAM,EAhBjB;IAiBH;;IAED;;;;;;;oCAIQnS,OAAgB;IAAA;;IAAA,8CAANsC,IAAM;IAANA,oBAAM;IAAA;;IACpB,gBAAMwxB,WAAW,KAAKnyB,MAAL,CAAY3B,KAAZ,CAAjB;;IAEA,gBAAIvB,GAAGW,KAAH,CAAS00B,QAAT,CAAJ,EAAwB;IACpBA,yBAASjyB,OAAT,CAAiB,mBAAW;IACxB,wBAAIpD,GAAGS,QAAH,CAAY2lB,OAAZ,CAAJ,EAA0B;IACtBA,gCAAQtiB,KAAR,CAAc,OAAd,EAAoBD,IAApB;IACH;IACJ,iBAJD;IAKH;IACJ;;IAED;;;;;;;;;kCAMGtC,OAAOuB,UAAU;IAChB,gBAAI,CAAC9C,GAAGW,KAAH,CAAS,KAAKuC,MAAL,CAAY3B,KAAZ,CAAT,CAAL,EAAmC;IAC/B,qBAAK2B,MAAL,CAAY3B,KAAZ,IAAqB,EAArB;IACH;;IAED,iBAAK2B,MAAL,CAAY3B,KAAZ,EAAmB+B,IAAnB,CAAwBR,QAAxB;;IAEA,mBAAO,IAAP;IACH;;IAED;;;;;;;;;;;6CAQiBkR,MAAM9O,MAAM;IAAA;;IACzB,iBAAK4I,MAAL,CAAYa,KAAZ,CAAkBC,GAAlB,iCAAoD1J,IAApD;;IAEA,iBAAK2rB,WAAL,GAAmBnsB,WAAW,YAAM;IAChC,wBAAK8vB,MAAL;IACA,wBAAKtD,gBAAL,CAAsB,oBAAtB;IACH,aAHkB,EAGhBld,IAHgB,CAAnB;IAIH;;IAED;;;;;;;6CAIiB9O,MAAM;IACnB,gBAAI,CAAClF,GAAGY,eAAH,CAAmB,KAAKiwB,WAAxB,CAAL,EAA2C;IACvC,qBAAK/iB,MAAL,CAAYa,KAAZ,CAAkBC,GAAlB,iCAAoD1J,IAApD;;IAEAkiB,6BAAa,KAAKyJ,WAAlB;IACA,qBAAKA,WAAL,GAAmB,IAAnB;IACH;IACJ;;;mCA/hBa;IACV,mBAAO,KAAK/iB,MAAL,CAAY+Q,OAAZ,IAAuB,KAAK/Q,MAAL,CAAYW,MAAZ,CAAmB4U,GAAnB,CAAuB1R,OAA9C,IAAyD,CAAC3R,GAAGkC,KAAH,CAAS,KAAK6hB,WAAd,CAAjE;IACH;;;mCA4CY;IACT,gBAAMrF,SAAS;IACX4W,gCAAgB,0BADL;IAEXC,8BAAc,0BAFH;IAGXC,wBAAQ9gB,SAASqK,QAHN;IAIX0W,oBAAIC,KAAKC,GAAL,EAJO;IAKXC,0BAAU,GALC;IAMXC,2BAAW,GANA;IAOXC,0BAAU,KAAK/R;IAPJ,aAAf;;IAUA,gBAAMgS,OAAO,4CAAb;;IAEA,mBAAUA,IAAV,SAAkBtX,eAAeC,MAAf,CAAlB;IACH;;;;;IC9GL;AACA;IAYA,IAAMjR,SAAS;IACX;IACAuoB,kBAFW,0BAEIzyB,IAFJ,EAEUuC,UAFV,EAEsB;IAAA;;IAC7B,YAAI9F,GAAGM,MAAH,CAAUwF,UAAV,CAAJ,EAA2B;IACvBY,0BAAcnD,IAAd,EAAoB,KAAKsJ,KAAzB,EAAgC;IAC5BuB,qBAAKtI;IADuB,aAAhC;IAGH,SAJD,MAIO,IAAI9F,GAAGW,KAAH,CAASmF,UAAT,CAAJ,EAA0B;IAC7BA,uBAAW1C,OAAX,CAAmB,qBAAa;IAC5BsD,8BAAcnD,IAAd,EAAoB,MAAKsJ,KAAzB,EAAgCopB,SAAhC;IACH,aAFD;IAGH;IACJ,KAZU;;;IAcX;IACA;IACAC,UAhBW,kBAgBJt2B,KAhBI,EAgBG;IAAA;;IACV,YAAI,CAACqP,QAAQrP,KAAR,EAAe,gBAAf,CAAL,EAAuC;IACnC,iBAAK+O,KAAL,CAAWyH,IAAX,CAAgB,uBAAhB;IACA;IACH;;IAED;IACA9I,cAAMkB,cAAN,CAAqB/K,IAArB,CAA0B,IAA1B;;IAEA;IACA,aAAK2xB,OAAL,CAAa3xB,IAAb,CACI,IADJ,EAEI,YAAM;IACF;IACA,mBAAKlB,OAAL,CAAagM,OAAb,GAAuB,EAAvB;;IAEA;IACA5H,0BAAc,OAAKkG,KAAnB;IACA,mBAAKA,KAAL,GAAa,IAAb;;IAEA;IACA,gBAAI7M,GAAGmB,OAAH,CAAW,OAAKyD,QAAL,CAAcC,SAAzB,CAAJ,EAAyC;IACrC,uBAAKD,QAAL,CAAcC,SAAd,CAAwB0D,eAAxB,CAAwC,OAAxC;IACH;;IAED;IAbE,gBAcMiF,OAdN,GAcwB5N,KAdxB,CAcM4N,OAdN;IAAA,gBAcejK,IAdf,GAcwB3D,KAdxB,CAce2D,IAdf;;IAAA,yCAe4CiK,OAf5C;IAAA;IAAA,+CAeOzB,QAfP;IAAA,gBAeOA,QAfP,sCAekBiY,UAAU1W,KAf5B;IAAA,gBAemCc,GAfnC,aAemCA,GAfnC;;IAgBF,gBAAM+nB,UAAUpqB,aAAa,OAAb,GAAuBxI,IAAvB,GAA8B,KAA9C;IACA,gBAAMuC,aAAaiG,aAAa,OAAb,GAAuB,EAAvB,GAA4B,EAAEqC,QAAF,EAA/C;;IAEAlO,mBAAOiE,MAAP,CAAc,MAAd,EAAoB;IAChB4H,kCADgB;IAEhBxI,0BAFgB;IAGhB;IACAjB,2BAAWqJ,QAAQG,KAAR,CAAcvI,IAAd,EAAoBwI,QAApB,EAA8B,OAAK0C,MAAL,CAAYzC,WAA1C,CAJK;IAKhB;IACAa,uBAAOzG,cAAc+vB,OAAd,EAAuBrwB,UAAvB;IANS,aAApB;;IASA;IACA,mBAAKlB,QAAL,CAAcC,SAAd,CAAwBc,WAAxB,CAAoC,OAAKkH,KAAzC;;IAEA;IACA,gBAAI7M,GAAGQ,OAAH,CAAWZ,MAAMihB,QAAjB,CAAJ,EAAgC;IAC5B,uBAAKpS,MAAL,CAAYoS,QAAZ,GAAuBjhB,MAAMihB,QAA7B;IACH;;IAED;IACA,gBAAI,OAAKjU,OAAT,EAAkB;IACd,oBAAI,OAAK6B,MAAL,CAAY2nB,WAAhB,EAA6B;IACzB,2BAAKvpB,KAAL,CAAW1G,YAAX,CAAwB,aAAxB,EAAuC,EAAvC;IACH;IACD,oBAAI,OAAKsI,MAAL,CAAYoS,QAAhB,EAA0B;IACtB,2BAAKhU,KAAL,CAAW1G,YAAX,CAAwB,UAAxB,EAAoC,EAApC;IACH;IACD,oBAAI,CAACnG,GAAGkC,KAAH,CAAStC,MAAMujB,MAAf,CAAL,EAA6B;IACzB,2BAAKA,MAAL,GAAcvjB,MAAMujB,MAApB;IACH;IACD,oBAAI,OAAK1U,MAAL,CAAY4S,IAAZ,CAAiBhC,MAArB,EAA6B;IACzB,2BAAKxS,KAAL,CAAW1G,YAAX,CAAwB,MAAxB,EAAgC,EAAhC;IACH;IACD,oBAAI,OAAKsI,MAAL,CAAY4K,KAAhB,EAAuB;IACnB,2BAAKxM,KAAL,CAAW1G,YAAX,CAAwB,OAAxB,EAAiC,EAAjC;IACH;IACD,oBAAI,OAAKsI,MAAL,CAAYzC,WAAhB,EAA6B;IACzB,2BAAKa,KAAL,CAAW1G,YAAX,CAAwB,aAAxB,EAAuC,EAAvC;IACH;IACJ;;IAED;IACAgG,eAAGqa,YAAH,CAAgB/iB,IAAhB,CAAqB,MAArB;;IAEA;IACA,gBAAI,OAAKmJ,OAAT,EAAkB;IACda,uBAAOuoB,cAAP,CAAsBvyB,IAAtB,CAA2B,MAA3B,EAAiC,QAAjC,EAA2C+J,OAA3C;IACH;;IAED;IACA,mBAAKiB,MAAL,CAAY0C,KAAZ,GAAoBvR,MAAMuR,KAA1B;;IAEA;IACAtE,kBAAM+R,KAAN,CAAYnb,IAAZ,CAAiB,MAAjB;;IAEA;IACA,gBAAI,OAAKmJ,OAAT,EAAkB;IACd;IACA,oBAAI,YAAYhN,KAAhB,EAAuB;IACnB6N,2BAAOuoB,cAAP,CAAsBvyB,IAAtB,CAA2B,MAA3B,EAAiC,OAAjC,EAA0C7D,MAAMkc,MAAhD;IACH;;IAED;IACA,uBAAKjP,KAAL,CAAWyB,IAAX;IACH;;IAED;IACA,gBAAI,OAAK1B,OAAL,IAAiB,OAAKia,OAAL,IAAgB,CAAC,OAAKvkB,SAAL,CAAe6J,EAArD,EAA0D;IACtD;IACAA,mBAAGsa,KAAH,CAAShjB,IAAT,CAAc,MAAd;IACH;;IAED;IACA,mBAAK+R,UAAL,CAAgBrC,MAAhB;IACH,SA7FL,EA8FI,IA9FJ;IAgGH;IA1HU,CAAf;;ICbA;AACA;IA2BA;IACA;IACA;;IAEA;;QACMkjB;IACF,kBAAY5vB,MAAZ,EAAoBlE,OAApB,EAA6B;IAAA;;IAAA;;IACzB,aAAK8kB,MAAL,GAAc,EAAd;;IAEA;IACA,aAAK7iB,KAAL,GAAa,KAAb;IACA,aAAKgf,OAAL,GAAe,KAAf;IACA,aAAK8S,MAAL,GAAc,KAAd;;IAEA;IACA,aAAKppB,KAAL,GAAavB,QAAQuB,KAArB;;IAEA;IACA,aAAKL,KAAL,GAAapG,MAAb;;IAEA;IACA,YAAIzG,GAAGM,MAAH,CAAU,KAAKuM,KAAf,CAAJ,EAA2B;IACvB,iBAAKA,KAAL,GAAavG,SAAS2C,gBAAT,CAA0B,KAAK4D,KAA/B,CAAb;IACH;;IAED;IACA,YAAKnL,OAAO60B,MAAP,IAAiB,KAAK1pB,KAAL,YAAsB0pB,MAAxC,IAAmDv2B,GAAGiB,QAAH,CAAY,KAAK4L,KAAjB,CAAnD,IAA8E7M,GAAGW,KAAH,CAAS,KAAKkM,KAAd,CAAlF,EAAwG;IACpG;IACA,iBAAKA,KAAL,GAAa,KAAKA,KAAL,CAAW,CAAX,CAAb;IACH;;IAED;IACA,aAAK4B,MAAL,GAAcZ,OACV,EADU,EAEV+S,UAFU,EAGVyV,KAAKzV,QAHK,EAIVre,WAAW,EAJD,EAKT,YAAM;IACH,gBAAI;IACA,uBAAOuM,KAAKC,KAAL,CAAW,MAAKlC,KAAL,CAAWa,YAAX,CAAwB,kBAAxB,CAAX,CAAP;IACH,aAFD,CAEE,OAAO9K,CAAP,EAAU;IACR,uBAAO,EAAP;IACH;IACJ,SAND,EALU,CAAd;;IAcA;IACA,aAAKgC,QAAL,GAAgB;IACZC,uBAAW,IADC;IAEZmQ,qBAAS,EAFG;IAGZa,qBAAS,EAHG;IAIZJ,sBAAU,EAJE;IAKZC,oBAAQ,EALI;IAMZJ,sBAAU;IACN+B,sBAAM,IADA;IAEN4D,uBAAO,EAFD;IAGNF,sBAAM;IAHA,aANE;IAWZxF,sBAAU;IAXE,SAAhB;;IAcA;IACA,aAAKA,QAAL,GAAgB;IACZ8J,oBAAQ,IADI;IAEZ1D,0BAAc,CAAC,CAFH;IAGZ4D,kBAAM,IAAIve,OAAJ;IAHM,SAAhB;;IAMA;IACA,aAAKwU,UAAL,GAAkB;IACd6J,oBAAQ;IADM,SAAlB;;IAIA;IACA,aAAK9c,OAAL,GAAe;IACX8Z,mBAAO,EADI;IAEX9N,qBAAS;IAFE,SAAf;;IAKA;IACA;IACA,aAAKI,KAAL,GAAa,IAAIyV,OAAJ,CAAY,KAAK3V,MAAL,CAAYE,KAAxB,CAAb;;IAEA;IACA,aAAKA,KAAL,CAAWC,GAAX,CAAe,QAAf,EAAyB,KAAKH,MAA9B;IACA,aAAKE,KAAL,CAAWC,GAAX,CAAe,SAAf,EAA0BjD,OAA1B;;IAEA;IACA,YAAI3L,GAAGY,eAAH,CAAmB,KAAKiM,KAAxB,KAAkC,CAAC7M,GAAGmB,OAAH,CAAW,KAAK0L,KAAhB,CAAvC,EAA+D;IAC3D,iBAAK8B,KAAL,CAAWwH,KAAX,CAAiB,0CAAjB;IACA;IACH;;IAED;IACA,YAAI,KAAKtJ,KAAL,CAAWzI,IAAf,EAAqB;IACjB,iBAAKuK,KAAL,CAAWyH,IAAX,CAAgB,sBAAhB;IACA;IACH;;IAED;IACA,YAAI,CAAC,KAAK3H,MAAL,CAAYkD,OAAjB,EAA0B;IACtB,iBAAKhD,KAAL,CAAWwH,KAAX,CAAiB,kCAAjB;IACA;IACH;;IAED;IACA;IACA,YAAI,CAACxK,QAAQG,KAAR,GAAgBI,GAArB,EAA0B;IACtB,iBAAKyC,KAAL,CAAWwH,KAAX,CAAiB,0BAAjB;IACA;IACH;;IAED;IACA,YAAM8G,QAAQ,KAAKpQ,KAAL,CAAWvH,SAAX,CAAqB,IAArB,CAAd;IACA2X,cAAM4D,QAAN,GAAiB,KAAjB;IACA,aAAKjc,QAAL,CAAc4xB,QAAd,GAAyBvZ,KAAzB;;IAEA;IACA;IACA,YAAM1Z,OAAO,KAAKsJ,KAAL,CAAWspB,OAAX,CAAmB5lB,WAAnB,EAAb;;IAEA;IACA,YAAIsS,SAAS,IAAb;IACA,YAAI7gB,MAAM,IAAV;;IAEA;IACA,gBAAQuB,IAAR;IACI,iBAAK,KAAL;IACI;IACAsf,yBAAS,KAAKhW,KAAL,CAAWrD,aAAX,CAAyB,QAAzB,CAAT;;IAEA;IACA,oBAAIxJ,GAAGmB,OAAH,CAAW0hB,MAAX,CAAJ,EAAwB;IACpB;IACA7gB,0BAAMqc,SAASwE,OAAOnV,YAAP,CAAoB,KAApB,CAAT,CAAN;IACA,yBAAK3B,QAAL,GAAgBmY,iBAAiBliB,IAAI4N,QAAJ,EAAjB,CAAhB;;IAEA;IACA,yBAAKhL,QAAL,CAAcC,SAAd,GAA0B,KAAKgI,KAA/B;IACA,yBAAKA,KAAL,GAAagW,MAAb;;IAEA;IACA,yBAAKje,QAAL,CAAcC,SAAd,CAAwB8C,SAAxB,GAAoC,EAApC;;IAEA;IACA,wBAAI3F,IAAIy0B,YAAJ,CAAiBt0B,MAArB,EAA6B;IACzB,4BAAMu0B,SAAS,CAAC,GAAD,EAAM,MAAN,CAAf;;IAEA,4BAAIA,OAAOxtB,QAAP,CAAgBlH,IAAIy0B,YAAJ,CAAiBh0B,GAAjB,CAAqB,UAArB,CAAhB,CAAJ,EAAuD;IACnD,iCAAKgM,MAAL,CAAYoS,QAAZ,GAAuB,IAAvB;IACH;IACD,4BAAI6V,OAAOxtB,QAAP,CAAgBlH,IAAIy0B,YAAJ,CAAiBh0B,GAAjB,CAAqB,MAArB,CAAhB,CAAJ,EAAmD;IAC/C,iCAAKgM,MAAL,CAAY4S,IAAZ,CAAiBhC,MAAjB,GAA0B,IAA1B;IACH;;IAED;IACA;IACA,4BAAI,KAAKP,SAAT,EAAoB;IAChB,iCAAKrQ,MAAL,CAAYzC,WAAZ,GAA0B0qB,OAAOxtB,QAAP,CAAgBlH,IAAIy0B,YAAJ,CAAiBh0B,GAAjB,CAAqB,aAArB,CAAhB,CAA1B;IACH,yBAFD,MAEO;IACH,iCAAKgM,MAAL,CAAYzC,WAAZ,GAA0B,IAA1B;IACH;IACJ;IACJ,iBA/BD,MA+BO;IACH;IACA,yBAAKD,QAAL,GAAgB,KAAKc,KAAL,CAAWa,YAAX,CAAwB,KAAKe,MAAL,CAAY3I,UAAZ,CAAuBia,KAAvB,CAA6BhU,QAArD,CAAhB;;IAEA;IACA,yBAAKc,KAAL,CAAWtE,eAAX,CAA2B,KAAKkG,MAAL,CAAY3I,UAAZ,CAAuBia,KAAvB,CAA6BhU,QAAxD;IACH;;IAED;IACA,oBAAI/L,GAAGkC,KAAH,CAAS,KAAK6J,QAAd,KAA2B,CAAC7L,OAAOkC,IAAP,CAAY4hB,SAAZ,EAAuB9a,QAAvB,CAAgC,KAAK6C,QAArC,CAAhC,EAAgF;IAC5E,yBAAK4C,KAAL,CAAWwH,KAAX,CAAiB,gCAAjB;IACA;IACH;;IAED;IACA,qBAAK5S,IAAL,GAAY0gB,MAAMpY,KAAlB;;IAEA;;IAEJ,iBAAK,OAAL;IACA,iBAAK,OAAL;IACI,qBAAKtI,IAAL,GAAYA,IAAZ;IACA,qBAAKwI,QAAL,GAAgBiY,UAAU1W,KAA1B;;IAEA;IACA,oBAAI,KAAKT,KAAL,CAAWvE,YAAX,CAAwB,aAAxB,CAAJ,EAA4C;IACxC,yBAAKmG,MAAL,CAAY2nB,WAAZ,GAA0B,IAA1B;IACH;IACD,oBAAI,KAAKvpB,KAAL,CAAWvE,YAAX,CAAwB,UAAxB,CAAJ,EAAyC;IACrC,yBAAKmG,MAAL,CAAYoS,QAAZ,GAAuB,IAAvB;IACH;IACD,oBAAI,KAAKhU,KAAL,CAAWvE,YAAX,CAAwB,aAAxB,CAAJ,EAA4C;IACxC,yBAAKmG,MAAL,CAAYzC,WAAZ,GAA0B,IAA1B;IACH;IACD,oBAAI,KAAKa,KAAL,CAAWvE,YAAX,CAAwB,OAAxB,CAAJ,EAAsC;IAClC,yBAAKmG,MAAL,CAAY4K,KAAZ,GAAoB,IAApB;IACH;IACD,oBAAI,KAAKxM,KAAL,CAAWvE,YAAX,CAAwB,MAAxB,CAAJ,EAAqC;IACjC,yBAAKmG,MAAL,CAAY4S,IAAZ,CAAiBhC,MAAjB,GAA0B,IAA1B;IACH;;IAED;;IAEJ;IACI,qBAAK1Q,KAAL,CAAWwH,KAAX,CAAiB,gCAAjB;IACA;IAlFR;;IAqFA;IACA,aAAK7T,SAAL,GAAiBqJ,QAAQG,KAAR,CAAc,KAAKvI,IAAnB,EAAyB,KAAKwI,QAA9B,EAAwC,KAAK0C,MAAL,CAAYzC,WAApD,CAAjB;;IAEA;IACA,YAAI,CAAC,KAAK1J,SAAL,CAAe4J,GAApB,EAAyB;IACrB,iBAAKyC,KAAL,CAAWwH,KAAX,CAAiB,0BAAjB;IACA;IACH;;IAED,aAAK9S,cAAL,GAAsB,EAAtB;;IAEA;IACA,aAAK2f,SAAL,GAAiB,IAAIsE,SAAJ,CAAc,IAAd,CAAjB;;IAEA;IACA,aAAK1V,OAAL,GAAe,IAAIF,OAAJ,CAAY,IAAZ,CAAf;;IAEA;IACA,aAAK7E,KAAL,CAAWzI,IAAX,GAAkB,IAAlB;;IAEA;IACA,YAAI,CAACpE,GAAGmB,OAAH,CAAW,KAAKyD,QAAL,CAAcC,SAAzB,CAAL,EAA0C;IACtC,iBAAKD,QAAL,CAAcC,SAAd,GAA0BuB,cAAc,KAAd,CAA1B;IACArB,iBAAK,KAAK8H,KAAV,EAAiB,KAAKjI,QAAL,CAAcC,SAA/B;IACH;;IAED;IACAsH,WAAGqa,YAAH,CAAgB/iB,IAAhB,CAAqB,IAArB;;IAEA;IACAoJ,cAAM+R,KAAN,CAAYnb,IAAZ,CAAiB,IAAjB;;IAEA;IACA,YAAI,KAAKgL,MAAL,CAAYE,KAAhB,EAAuB;IACnBnL,eAAGC,IAAH,CAAQ,IAAR,EAAc,KAAKmB,QAAL,CAAcC,SAA5B,EAAuC,KAAK4J,MAAL,CAAYvL,MAAZ,CAAmBgU,IAAnB,CAAwB,GAAxB,CAAvC,EAAqE,iBAAS;IAC1E,sBAAKvI,KAAL,CAAWC,GAAX,aAAyBrN,MAAMgC,IAA/B;IACH,aAFD;IAGH;;IAED;IACA;IACA,YAAI,KAAKqJ,OAAL,IAAiB,KAAKia,OAAL,IAAgB,CAAC,KAAKvkB,SAAL,CAAe6J,EAArD,EAA0D;IACtDA,eAAGsa,KAAH,CAAShjB,IAAT,CAAc,IAAd;IACH;;IAED;IACA,aAAKuf,SAAL,CAAene,SAAf;;IAEA;IACA,aAAKme,SAAL,CAAexB,MAAf;;IAEA;IACA,aAAKhM,UAAL,GAAkB,IAAIuP,UAAJ,CAAe,IAAf,CAAlB;;IAEA;IACA,aAAK1B,GAAL,GAAW,IAAImN,GAAJ,CAAQ,IAAR,CAAX;;IAEA;IACA,YAAI,KAAK/hB,MAAL,CAAYoS,QAAhB,EAA0B;IACtB,iBAAKxS,IAAL;IACH;IACJ;;IAED;IACA;IACA;;IAEA;;;;;;;;;IAsBA;;;mCAGO;IACH,gBAAI,CAACrO,GAAGS,QAAH,CAAY,KAAKoM,KAAL,CAAWwB,IAAvB,CAAL,EAAmC;IAC/B,uBAAO,IAAP;IACH;;IAED;IACA,mBAAO,KAAKxB,KAAL,CAAWwB,IAAX,EAAP;IACH;;IAED;;;;;;oCAGQ;IACJ,gBAAI,CAAC,KAAKiV,OAAN,IAAiB,CAACtjB,GAAGS,QAAH,CAAY,KAAKoM,KAAL,CAAWoI,KAAvB,CAAtB,EAAqD;IACjD;IACH;;IAED,iBAAKpI,KAAL,CAAWoI,KAAX;IACH;;IAED;;;;;;;;IA4BA;;;;uCAIWrV,OAAO;IACd;IACA,gBAAMmD,SAAS/C,GAAGQ,OAAH,CAAWZ,KAAX,IAAoBA,KAApB,GAA4B,CAAC,KAAK0jB,OAAjD;;IAEA,gBAAIvgB,MAAJ,EAAY;IACR,qBAAKsL,IAAL;IACH,aAFD,MAEO;IACH,qBAAK4G,KAAL;IACH;IACJ;;IAED;;;;;;mCAGO;IACH,gBAAI,KAAKrI,OAAT,EAAkB;IACd,qBAAKqI,KAAL;IACA,qBAAKC,OAAL;IACH,aAHD,MAGO,IAAIlV,GAAGS,QAAH,CAAY,KAAKoM,KAAL,CAAW6e,IAAvB,CAAJ,EAAkC;IACrC,qBAAK7e,KAAL,CAAW6e,IAAX;IACH;IACJ;;IAED;;;;;;sCAGU;IACN,iBAAK1d,WAAL,GAAmB,CAAnB;IACH;;IAED;;;;;;;mCAIOkD,UAAU;IACb,iBAAKlD,WAAL,GAAmB,KAAKA,WAAL,IAAoBhO,GAAGG,MAAH,CAAU+Q,QAAV,IAAsBA,QAAtB,GAAiC,KAAKzC,MAAL,CAAYyC,QAAjE,CAAnB;IACH;;IAED;;;;;;;oCAIQA,UAAU;IACd,iBAAKlD,WAAL,GAAmB,KAAKA,WAAL,IAAoBhO,GAAGG,MAAH,CAAU+Q,QAAV,IAAsBA,QAAtB,GAAiC,KAAKzC,MAAL,CAAYyC,QAAjE,CAAnB;IACH;;IAED;;;;;;;;;IAwHA;;;;2CAIegH,MAAM;IACjB,gBAAMtC,SAAS,KAAK/I,KAAL,CAAWwM,KAAX,GAAmB,CAAnB,GAAuB,KAAKzD,MAA3C;IACA,iBAAKA,MAAL,GAAcA,UAAU5V,GAAGG,MAAH,CAAU+X,IAAV,IAAkBA,IAAlB,GAAyB,CAAnC,CAAd;IACH;;IAED;;;;;;;2CAIeA,MAAM;IACjB,gBAAMtC,SAAS,KAAK/I,KAAL,CAAWwM,KAAX,GAAmB,CAAnB,GAAuB,KAAKzD,MAA3C;IACA,iBAAKA,MAAL,GAAcA,UAAU5V,GAAGG,MAAH,CAAU+X,IAAV,IAAkBA,IAAlB,GAAyB,CAAnC,CAAd;IACH;;IAED;;;;;;;;;IAiQA;;;;2CAIetY,OAAO;IAClB2V,qBAASxS,MAAT,CAAgBU,IAAhB,CAAqB,IAArB,EAA2B7D,KAA3B,EAAkC,KAAlC;IACH;;IAED;;;;;;;;;IAkEA;;;;sCAIU;IACN;IACA,gBAAI+L,QAAQY,OAAZ,EAAqB;IACjB,qBAAKM,KAAL,CAAW8pB,8BAAX;IACH;IACJ;;IAED;;;;;;;2CAIe5zB,QAAQ;IACnB;IACA,gBAAI,KAAKT,SAAL,CAAe6J,EAAf,IAAqB,CAAC,KAAKuc,OAA/B,EAAwC;IACpC;IACA,oBAAMkO,WAAW/tB,SAAS,KAAKjE,QAAL,CAAcC,SAAvB,EAAkC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuBiL,YAAzD,CAAjB;;IAEA;IACA,oBAAMzY,QAAQ,OAAO1F,MAAP,KAAkB,WAAlB,GAAgC8H,SAAhC,GAA4C,CAAC9H,MAA3D;;IAEA;IACA,oBAAM8zB,SAASruB,YAAY,KAAK5D,QAAL,CAAcC,SAA1B,EAAqC,KAAK4J,MAAL,CAAYwH,UAAZ,CAAuBiL,YAA5D,EAA0EzY,KAA1E,CAAf;;IAEA;IACA,oBAAIouB,UAAU,KAAKpoB,MAAL,CAAY6F,QAAZ,CAAqBpL,QAArB,CAA8B,UAA9B,CAAV,IAAuD,CAAClJ,GAAGkC,KAAH,CAAS,KAAKuM,MAAL,CAAY6G,QAArB,CAA5D,EAA4F;IACxFhB,6BAASoI,UAAT,CAAoBjZ,IAApB,CAAyB,IAAzB,EAA+B,KAA/B;IACH;IACD;IACA,oBAAIozB,WAAWD,QAAf,EAAyB;IACrB,wBAAME,YAAYD,SAAS,gBAAT,GAA4B,eAA9C;IACA9yB,iCAAaN,IAAb,CAAkB,IAAlB,EAAwB,KAAKoJ,KAA7B,EAAoCiqB,SAApC;IACH;IACD,uBAAO,CAACD,MAAR;IACH;IACD,mBAAO,KAAP;IACH;;IAED;;;;;;;;kCAKGt1B,OAAOuB,UAAU;IAChBU,eAAGC,IAAH,CAAQ,IAAR,EAAc,KAAKmB,QAAL,CAAcC,SAA5B,EAAuCtD,KAAvC,EAA8CuB,QAA9C;IACH;IACD;;;;;;;;oCAKKvB,OAAOuB,UAAU;IAClBa,iBAAKF,IAAL,CAAU,IAAV,EAAgB,KAAKmB,QAAL,CAAcC,SAA9B,EAAyCtD,KAAzC,EAAgDuB,QAAhD;IACH;IACD;;;;;;;;mCAKIvB,OAAOuB,UAAU;IACjBY,gBAAI,KAAKkB,QAAL,CAAcC,SAAlB,EAA6BtD,KAA7B,EAAoCuB,QAApC;IACH;;IAED;;;;;;;;;;oCAOQA,UAAwB;IAAA;;IAAA,gBAAdi0B,IAAc,uEAAP,KAAO;;IAC5B,gBAAI,CAAC,KAAKvyB,KAAV,EAAiB;IACb;IACH;;IAED,gBAAMglB,OAAO,SAAPA,IAAO,GAAM;IACf;IACAljB,yBAASsD,IAAT,CAAcgB,KAAd,CAAoBka,QAApB,GAA+B,EAA/B;;IAEA;IACA,uBAAK/E,KAAL,GAAa,IAAb;;IAEA;IACA,oBAAIgX,IAAJ,EAAU;IACN,wBAAI72B,OAAOkC,IAAP,CAAY,OAAKwC,QAAjB,EAA2BzC,MAA/B,EAAuC;IACnC;IACAwE,sCAAc,OAAK/B,QAAL,CAAcoQ,OAAd,CAAsB3G,IAApC;IACA1H,sCAAc,OAAK/B,QAAL,CAAc2Q,QAA5B;IACA5O,sCAAc,OAAK/B,QAAL,CAAc0P,QAA5B;IACA3N,sCAAc,OAAK/B,QAAL,CAAcI,OAA5B;;IAEA;IACA,+BAAKJ,QAAL,CAAcoQ,OAAd,CAAsB3G,IAAtB,GAA6B,IAA7B;IACA,+BAAKzJ,QAAL,CAAc2Q,QAAd,GAAyB,IAAzB;IACA,+BAAK3Q,QAAL,CAAc0P,QAAd,GAAyB,IAAzB;IACA,+BAAK1P,QAAL,CAAcI,OAAd,GAAwB,IAAxB;IACH;;IAED;IACA,wBAAIhF,GAAGS,QAAH,CAAYqC,QAAZ,CAAJ,EAA2B;IACvBA;IACH;IACJ,iBAnBD,MAmBO;IACH;IACAwB,oCAAgBb,IAAhB,CAAqB,MAArB;;IAEA;IACAuD,mCAAe,OAAKpC,QAAL,CAAc4xB,QAA7B,EAAuC,OAAK5xB,QAAL,CAAcC,SAArD;;IAEA;IACAd,iCAAaN,IAAb,CAAkB,MAAlB,EAAwB,OAAKmB,QAAL,CAAc4xB,QAAtC,EAAgD,WAAhD,EAA6D,IAA7D;;IAEA;IACA,wBAAIx2B,GAAGS,QAAH,CAAYqC,QAAZ,CAAJ,EAA2B;IACvBA,iCAASW,IAAT,CAAc,OAAKmB,QAAL,CAAc4xB,QAA5B;IACH;;IAED;IACA,2BAAKhyB,KAAL,GAAa,KAAb;;IAEA;IACAE,+BAAW,YAAM;IACb,+BAAKE,QAAL,GAAgB,IAAhB;IACA,+BAAKiI,KAAL,GAAa,IAAb;IACH,qBAHD,EAGG,GAHH;IAIH;IACJ,aAnDD;;IAqDA;IACA,iBAAK6e,IAAL;;IAEA;IACA,gBAAI,KAAK9e,OAAT,EAAkB;IACd;IACAwa,6BAAa,KAAKC,MAAL,CAAY7D,OAAzB;;IAEA;IACArX,mBAAGkK,oBAAH,CAAwB5S,IAAxB,CAA6B,IAA7B,EAAmC,IAAnC;;IAEA;IACA+lB;IACH,aATD,MASO,IAAI,KAAK1K,SAAT,EAAoB;IACvB;IACAiR,8BAAc,KAAK1I,MAAL,CAAY2I,SAA1B;IACAD,8BAAc,KAAK1I,MAAL,CAAY/D,OAA1B;;IAEA;IACA,oBAAI,KAAKvD,KAAL,KAAe,IAAf,IAAuB/f,GAAGS,QAAH,CAAY,KAAKsf,KAAL,CAAWqV,OAAvB,CAA3B,EAA4D;IACxD,yBAAKrV,KAAL,CAAWqV,OAAX;IACH;;IAED;IACA5L;IACH,aAZM,MAYA,IAAI,KAAKlN,OAAT,EAAkB;IACrB;IACA;IACA,oBAAI,KAAKyD,KAAL,KAAe,IAAnB,EAAyB;IACrB,yBAAKA,KAAL,CAAWiX,MAAX,GAAoBlyB,IAApB,CAAyB0kB,IAAzB;IACH;;IAED;IACA9kB,2BAAW8kB,IAAX,EAAiB,GAAjB;IACH;IACJ;;IAED;;;;;;;qCAISjmB,MAAM;IACX,mBAAOoI,QAAQc,IAAR,CAAahJ,IAAb,CAAkB,IAAlB,EAAwBF,IAAxB,CAAP;IACH;;IAED;;;;;;;;;mCA7vBc;IACV,mBAAOxD,QAAQ,KAAKgM,QAAL,KAAkBiY,UAAU1W,KAApC,CAAP;IACH;;;mCACa;IACV,mBAAOvN,QAAQ,KAAK+e,SAAL,IAAkB,KAAKxC,OAA/B,CAAP;IACH;;;mCACe;IACZ,mBAAOvc,QAAQ,KAAKgM,QAAL,KAAkBiY,UAAUlB,OAApC,CAAP;IACH;;;mCACa;IACV,mBAAO/iB,QAAQ,KAAKgM,QAAL,KAAkBiY,UAAUrB,KAApC,CAAP;IACH;;;mCACa;IACV,mBAAO5iB,QAAQ,KAAKwD,IAAL,KAAc0gB,MAAMpY,KAA5B,CAAP;IACH;;;mCACa;IACV,mBAAO9L,QAAQ,KAAKwD,IAAL,KAAc0gB,MAAMrY,KAA5B,CAAP;IACH;;;mCA4Ba;IACV,mBAAO7L,QAAQ,KAAKyE,KAAL,IAAc,CAAC,KAAKyJ,MAApB,IAA8B,CAAC,KAAK0a,KAA5C,CAAP;IACH;;IAED;;;;;;mCAGa;IACT,mBAAO5oB,QAAQ,KAAK8M,KAAL,CAAWoB,MAAnB,CAAP;IACH;;IAED;;;;;;mCAGc;IACV,mBAAOlO,QAAQ,KAAKkO,MAAL,IAAe,KAAKD,WAAL,KAAqB,CAA5C,CAAP;IACH;;IAED;;;;;;mCAGY;IACR,mBAAOjO,QAAQ,KAAK8M,KAAL,CAAW8b,KAAnB,CAAP;IACH;;;iCAwDe/oB,OAAO;IACnB;IACA,gBAAI,CAAC,KAAKmW,QAAV,EAAoB;IAChB;IACH;;IAED;IACA,gBAAMkhB,eAAej3B,GAAGG,MAAH,CAAUP,KAAV,KAAoBA,QAAQ,CAAjD;;IAEA;IACA,iBAAKiN,KAAL,CAAWmB,WAAX,GAAyBipB,eAAeznB,KAAKyI,GAAL,CAASrY,KAAT,EAAgB,KAAKmW,QAArB,CAAf,GAAgD,CAAzE;;IAEA;IACA,iBAAKpH,KAAL,CAAWC,GAAX,iBAA6B,KAAKZ,WAAlC;IACH;;IAED;;;;mCAGkB;IACd,mBAAO5N,OAAO,KAAKyM,KAAL,CAAWmB,WAAlB,CAAP;IACH;;IAED;;;;;;mCAGe;IAAA,gBACH0L,QADG,GACU,KAAK7M,KADf,CACH6M,QADG;;IAGX;;IACA,gBAAI1Z,GAAGG,MAAH,CAAUuZ,QAAV,CAAJ,EAAyB;IACrB,uBAAOA,QAAP;IACH;;IAED;IACA;IACA;IACA,gBAAIA,YAAYA,SAASvX,MAArB,IAA+B,KAAK4T,QAAL,GAAgB,CAAnD,EAAsD;IAClD,uBAAO2D,SAAS0I,GAAT,CAAa,CAAb,IAAkB,KAAKrM,QAA9B;IACH;;IAED,mBAAO,CAAP;IACH;;IAED;;;;;;mCAGc;IACV,mBAAOhW,QAAQ,KAAK8M,KAAL,CAAW4N,OAAnB,CAAP;IACH;;IAED;;;;;;mCAGe;IACX;IACA,gBAAMyc,eAAe7c,WAAW,KAAK5L,MAAL,CAAYsH,QAAvB,CAArB;;IAEA;IACA,gBAAMA,WAAW,CAAC,KAAKlJ,KAAL,IAAc,EAAf,EAAmBkJ,QAAnB,IAA+B,CAAhD;;IAEA;IACA,mBAAOmhB,gBAAgBnhB,QAAvB;IACH;;IAED;;;;;;;iCAIW9P,OAAO;IACd,gBAAI2P,SAAS3P,KAAb;IACA,gBAAM+J,MAAM,CAAZ;IACA,gBAAMiI,MAAM,CAAZ;;IAEA,gBAAIjY,GAAGM,MAAH,CAAUsV,MAAV,CAAJ,EAAuB;IACnBA,yBAASxV,OAAOwV,MAAP,CAAT;IACH;;IAED;IACA,gBAAI,CAAC5V,GAAGG,MAAH,CAAUyV,MAAV,CAAL,EAAwB;IACpBA,yBAAS,KAAKhE,OAAL,CAAanP,GAAb,CAAiB,QAAjB,CAAT;IACH;;IAED;IACA,gBAAI,CAACzC,GAAGG,MAAH,CAAUyV,MAAV,CAAL,EAAwB;IACjBA,sBADiB,GACN,KAAKnH,MADC,CACjBmH,MADiB;IAEvB;;IAED;IACA,gBAAIA,SAAS5F,GAAb,EAAkB;IACd4F,yBAAS5F,GAAT;IACH;IACD;IACA,gBAAI4F,SAASqC,GAAb,EAAkB;IACdrC,yBAASqC,GAAT;IACH;;IAED;IACA,iBAAKxJ,MAAL,CAAYmH,MAAZ,GAAqBA,MAArB;;IAEA;IACA,iBAAK/I,KAAL,CAAW+I,MAAX,GAAoBA,MAApB;;IAEA;IACA,gBAAI,CAAC5V,GAAGkC,KAAH,CAAS+D,KAAT,CAAD,IAAoB,KAAKoT,KAAzB,IAAkCzD,SAAS,CAA/C,EAAkD;IAC9C,qBAAKyD,KAAL,GAAa,KAAb;IACH;IACJ;;IAED;;;;mCAGa;IACT,mBAAOjZ,OAAO,KAAKyM,KAAL,CAAW+I,MAAlB,CAAP;IACH;;;iCAwBSP,MAAM;IACZ,gBAAItS,SAASsS,IAAb;;IAEA;IACA,gBAAI,CAACrV,GAAGQ,OAAH,CAAWuC,MAAX,CAAL,EAAyB;IACrBA,yBAAS,KAAK6O,OAAL,CAAanP,GAAb,CAAiB,OAAjB,CAAT;IACH;;IAED;IACA,gBAAI,CAACzC,GAAGQ,OAAH,CAAWuC,MAAX,CAAL,EAAyB;IACrBA,yBAAS,KAAK0L,MAAL,CAAY4K,KAArB;IACH;;IAED;IACA,iBAAK5K,MAAL,CAAY4K,KAAZ,GAAoBtW,MAApB;;IAEA;IACA,iBAAK8J,KAAL,CAAWwM,KAAX,GAAmBtW,MAAnB;IACH;;IAED;;;;mCAGY;IACR,mBAAOhD,QAAQ,KAAK8M,KAAL,CAAWwM,KAAnB,CAAP;IACH;;IAED;;;;;;mCAGe;IACX;IACA,gBAAI,CAAC,KAAKzM,OAAV,EAAmB;IACf,uBAAO,IAAP;IACH;;IAED,gBAAI,KAAK8b,OAAT,EAAkB;IACd,uBAAO,IAAP;IACH;;IAED;IACA,mBACI3oB,QAAQ,KAAK8M,KAAL,CAAWsqB,WAAnB,KACAp3B,QAAQ,KAAK8M,KAAL,CAAWuqB,2BAAnB,CADA,IAEAr3B,QAAQ,KAAK8M,KAAL,CAAWwqB,WAAX,IAA0B,KAAKxqB,KAAL,CAAWwqB,WAAX,CAAuBl1B,MAAzD,CAHJ;IAKH;;IAED;;;;;;;iCAIUvC,OAAO;IACb,gBAAIyc,QAAQ,IAAZ;;IAEA,gBAAIrc,GAAGG,MAAH,CAAUP,KAAV,CAAJ,EAAsB;IAClByc,wBAAQzc,KAAR;IACH;;IAED,gBAAI,CAACI,GAAGG,MAAH,CAAUkc,KAAV,CAAL,EAAuB;IACnBA,wBAAQ,KAAKzK,OAAL,CAAanP,GAAb,CAAiB,OAAjB,CAAR;IACH;;IAED,gBAAI,CAACzC,GAAGG,MAAH,CAAUkc,KAAV,CAAL,EAAuB;IACnBA,wBAAQ,KAAK5N,MAAL,CAAY4N,KAAZ,CAAkBiF,QAA1B;IACH;;IAED;IACA,gBAAIjF,QAAQ,GAAZ,EAAiB;IACbA,wBAAQ,GAAR;IACH;IACD,gBAAIA,QAAQ,GAAZ,EAAiB;IACbA,wBAAQ,GAAR;IACH;;IAED,gBAAI,CAAC,KAAK5N,MAAL,CAAY4N,KAAZ,CAAkB9Z,OAAlB,CAA0B2G,QAA1B,CAAmCmT,KAAnC,CAAL,EAAgD;IAC5C,qBAAK1N,KAAL,CAAWyH,IAAX,yBAAsCiG,KAAtC;IACA;IACH;;IAED;IACA,iBAAK5N,MAAL,CAAY4N,KAAZ,CAAkBiF,QAAlB,GAA6BjF,KAA7B;;IAEA;IACA,iBAAKxP,KAAL,CAAWyiB,YAAX,GAA0BjT,KAA1B;IACH;;IAED;;;;mCAGY;IACR,mBAAOjc,OAAO,KAAKyM,KAAL,CAAWyiB,YAAlB,CAAP;IACH;;IAED;;;;;;;;iCAKY1vB,OAAO;IACf,gBAAM6O,SAAS,KAAKA,MAAL,CAAYF,OAA3B;IACA,gBAAMhM,UAAU,KAAKA,OAAL,CAAagM,OAA7B;;IAEA,gBAAI,CAAChM,QAAQJ,MAAb,EAAqB;IACjB;IACH;;IAED,gBAAIoM,UAAU,CACV,CAACvO,GAAGkC,KAAH,CAAStC,KAAT,CAAD,IAAoBQ,OAAOR,KAAP,CADV,EAEV,KAAKgS,OAAL,CAAanP,GAAb,CAAiB,SAAjB,CAFU,EAGVgM,OAAO6S,QAHG,EAIV7S,OAAOmN,OAJG,EAKZjR,IALY,CAKP3K,GAAGG,MALI,CAAd;;IAOA,gBAAI,CAACoC,QAAQ2G,QAAR,CAAiBqF,OAAjB,CAAL,EAAgC;IAC5B,oBAAMtI,QAAQqL,QAAQ/O,OAAR,EAAiBgM,OAAjB,CAAd;IACA,qBAAKI,KAAL,CAAWyH,IAAX,kCAA+C7H,OAA/C,gBAAiEtI,KAAjE;IACAsI,0BAAUtI,KAAV;IACH;;IAED;IACAlC,yBAAaN,IAAb,CAAkB,IAAlB,EAAwB,KAAKoJ,KAA7B,EAAoC,kBAApC,EAAwD,KAAxD,EAA+D,EAAE0B,gBAAF,EAA/D;;IAEA;IACAE,mBAAO6S,QAAP,GAAkB/S,OAAlB;;IAEA;IACA,iBAAK1B,KAAL,CAAW0B,OAAX,GAAqBA,OAArB;IACH;;IAED;;;;mCAGc;IACV,mBAAO,KAAK1B,KAAL,CAAW0B,OAAlB;IACH;;IAED;;;;;;;;iCAKS3O,OAAO;IACZ,gBAAMmD,SAAS/C,GAAGQ,OAAH,CAAWZ,KAAX,IAAoBA,KAApB,GAA4B,KAAK6O,MAAL,CAAY4S,IAAZ,CAAiBhC,MAA5D;IACA,iBAAK5Q,MAAL,CAAY4S,IAAZ,CAAiBhC,MAAjB,GAA0Btc,MAA1B;IACA,iBAAK8J,KAAL,CAAWwU,IAAX,GAAkBte,MAAlB;;IAEA;IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyCH;;IAED;;;;mCAGW;IACP,mBAAOhD,QAAQ,KAAK8M,KAAL,CAAWwU,IAAnB,CAAP;IACH;;IAED;;;;;;;iCAIWzhB,OAAO;IACd6N,mBAAOyoB,MAAP,CAAczyB,IAAd,CAAmB,IAAnB,EAAyB7D,KAAzB;IACH;;IAED;;;;mCAGa;IACT,mBAAO,KAAKiN,KAAL,CAAWmf,UAAlB;IACH;;IAED;;;;;;;iCAIWpsB,OAAO;IACd,gBAAI,CAAC,KAAKif,OAAV,EAAmB;IACf,qBAAKlQ,KAAL,CAAWyH,IAAX,CAAgB,kCAAhB;IACA;IACH;;IAEDjK,eAAGya,SAAH,CAAanjB,IAAb,CAAkB,IAAlB,EAAwB7D,KAAxB,EAA+B,KAA/B,EAAsC8T,KAAtC,CAA4C,YAAM,EAAlD;IACH;;IAED;;;;mCAGa;IACT,gBAAI,CAAC,KAAKmL,OAAV,EAAmB;IACf,uBAAO,IAAP;IACH;;IAED,mBAAO,KAAKhS,KAAL,CAAWa,YAAX,CAAwB,QAAxB,CAAP;IACH;;IAED;;;;;;;iCAIa9N,OAAO;IAChB,gBAAMmD,SAAS/C,GAAGQ,OAAH,CAAWZ,KAAX,IAAoBA,KAApB,GAA4B,KAAK6O,MAAL,CAAYoS,QAAvD;IACA,iBAAKpS,MAAL,CAAYoS,QAAZ,GAAuB9d,MAAvB;IACH;;IAED;;;;mCAGe;IACX,mBAAOhD,QAAQ,KAAK0O,MAAL,CAAYoS,QAApB,CAAP;IACH;;;iCAcgBjhB,OAAO;IACpB2V,qBAASxH,GAAT,CAAatK,IAAb,CAAkB,IAAlB,EAAwB7D,KAAxB,EAA+B,KAA/B;IACH;;IAED;;;;mCAGmB;IAAA,4BACmB,KAAK2V,QADxB;IAAA,gBACPyG,OADO,aACPA,OADO;IAAA,gBACEL,YADF,aACEA,YADF;;IAEf,mBAAOK,UAAUL,YAAV,GAAyB,CAAC,CAAjC;IACH;;IAED;;;;;;;;iCAKa/b,OAAO;IAChB2V,qBAASqK,WAAT,CAAqBnc,IAArB,CAA0B,IAA1B,EAAgC7D,KAAhC,EAAuC,KAAvC;IACH;;IAED;;;;mCAGe;IACX,mBAAO,CAAC2V,SAAS8K,eAAT,CAAyB5c,IAAzB,CAA8B,IAA9B,KAAuC,EAAxC,EAA4CwY,QAAnD;IACH;;IAED;;;;;;;;iCAKQrc,OAAO;IACX,gBAAM03B,SAAS;IACXjrB,qBAAK,oBADM;IAEXkrB,wBAAQ;IAFG,aAAf;;IAKA;IACA,gBAAI,CAAC5rB,QAAQU,GAAb,EAAkB;IACd;IACH;;IAED;IACA,gBAAMtJ,SAAS/C,GAAGQ,OAAH,CAAWZ,KAAX,IAAoBA,KAApB,GAA4B,KAAKyM,GAAL,KAAairB,OAAOC,MAA/D;;IAEA;IACA,iBAAK1qB,KAAL,CAAWP,yBAAX,CAAqCvJ,SAASu0B,OAAOjrB,GAAhB,GAAsBirB,OAAOC,MAAlE;IACH;;IAED;;;;mCAGU;IACN,gBAAI,CAAC5rB,QAAQU,GAAb,EAAkB;IACd,uBAAO,IAAP;IACH;;IAED,mBAAO,KAAKQ,KAAL,CAAW2qB,sBAAlB;IACH;;;sCAwLgBj0B,MAAMwI,UAAUwrB,QAAQ;IACrC,mBAAO5rB,QAAQG,KAAR,CAAcvI,IAAd,EAAoBwI,QAApB,EAA8BwrB,MAA9B,CAAP;IACH;;IAED;;;;;;;;0CAKkBv1B,KAAKkG,IAAI;IACvB,mBAAO4K,WAAW9Q,GAAX,EAAgBkG,EAAhB,CAAP;IACH;;IAED;;;;;;;;kCAKaV,UAAwB;IAAA,gBAAdjF,OAAc,uEAAJ,EAAI;;IACjC,gBAAI0C,UAAU,IAAd;;IAEA,gBAAIjF,GAAGM,MAAH,CAAUkH,QAAV,CAAJ,EAAyB;IACrBvC,0BAAUpE,MAAMqE,IAAN,CAAWoB,SAAS2C,gBAAT,CAA0BzB,QAA1B,CAAX,CAAV;IACH,aAFD,MAEO,IAAIxH,GAAGiB,QAAH,CAAYuG,QAAZ,CAAJ,EAA2B;IAC9BvC,0BAAUpE,MAAMqE,IAAN,CAAWsC,QAAX,CAAV;IACH,aAFM,MAEA,IAAIxH,GAAGW,KAAH,CAAS6G,QAAT,CAAJ,EAAwB;IAC3BvC,0BAAUuC,SAASxB,MAAT,CAAgBhG,GAAGmB,OAAnB,CAAV;IACH;;IAED,gBAAInB,GAAGkC,KAAH,CAAS+C,OAAT,CAAJ,EAAuB;IACnB,uBAAO,IAAP;IACH;;IAED,mBAAOA,QAAQ2I,GAAR,CAAY;IAAA,uBAAK,IAAIyoB,IAAJ,CAASoB,CAAT,EAAYl1B,OAAZ,CAAL;IAAA,aAAZ,CAAP;IACH;;;;;IAGL8zB,KAAKzV,QAAL,GAAgB/R,UAAU+R,UAAV,CAAhB","file":"plyr.js","sourcesContent":["// ==========================================================================\n// Type checking utils\n// ==========================================================================\n\nconst getConstructor = input => (input !== null && typeof input !== 'undefined' ? input.constructor : null);\n\nconst instanceOf = (input, constructor) => Boolean(input && constructor && input instanceof constructor);\n\nconst is = {\n object(input) {\n return getConstructor(input) === Object;\n },\n number(input) {\n return getConstructor(input) === Number && !Number.isNaN(input);\n },\n string(input) {\n return getConstructor(input) === String;\n },\n boolean(input) {\n return getConstructor(input) === Boolean;\n },\n function(input) {\n return getConstructor(input) === Function;\n },\n array(input) {\n return !is.nullOrUndefined(input) && Array.isArray(input);\n },\n weakMap(input) {\n return instanceOf(input, WeakMap);\n },\n nodeList(input) {\n return instanceOf(input, NodeList);\n },\n element(input) {\n return instanceOf(input, Element);\n },\n textNode(input) {\n return getConstructor(input) === Text;\n },\n event(input) {\n return instanceOf(input, Event);\n },\n cue(input) {\n return instanceOf(input, window.TextTrackCue) || instanceOf(input, window.VTTCue);\n },\n track(input) {\n return instanceOf(input, TextTrack) || (!is.nullOrUndefined(input) && is.string(input.kind));\n },\n url(input) {\n return (\n !is.nullOrUndefined(input) &&\n /(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-/]))?/.test(input)\n );\n },\n nullOrUndefined(input) {\n return input === null || typeof input === 'undefined';\n },\n empty(input) {\n return (\n is.nullOrUndefined(input) ||\n ((is.string(input) || is.array(input) || is.nodeList(input)) && !input.length) ||\n (is.object(input) && !Object.keys(input).length)\n );\n },\n};\n\nexport default is;\n","// ==========================================================================\n// Event utils\n// ==========================================================================\n\nimport is from './is';\n\n// Check for passive event listener support\n// https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n// https://www.youtube.com/watch?v=NPM6172J22g\nconst supportsPassiveListeners = (() => {\n // Test via a getter in the options object to see if the passive property is accessed\n let supported = false;\n try {\n const options = Object.defineProperty({}, 'passive', {\n get() {\n supported = true;\n return null;\n },\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n // Do nothing\n }\n\n return supported;\n})();\n\n// Toggle event listener\nexport function toggleListener(element, event, callback, toggle = false, passive = true, capture = false) {\n // Bail if no element, event, or callback\n if (!element || !('addEventListener' in element) || is.empty(event) || !is.function(callback)) {\n return;\n }\n\n // Allow multiple events\n const events = event.split(' ');\n\n // Build options\n // Default to just the capture boolean for browsers with no passive listener support\n let options = capture;\n\n // If passive events listeners are supported\n if (supportsPassiveListeners) {\n options = {\n // Whether the listener can be passive (i.e. default never prevented)\n passive,\n // Whether the listener is a capturing listener or not\n capture,\n };\n }\n\n // If a single node is passed, bind the event listener\n events.forEach(type => {\n if (this && this.eventListeners && toggle) {\n // Cache event listener\n this.eventListeners.push({ element, type, callback, options });\n }\n\n element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);\n });\n}\n\n// Bind event handler\nexport function on(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, true, passive, capture);\n}\n\n// Unbind event handler\nexport function off(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, false, passive, capture);\n}\n\n// Bind once-only event handler\nexport function once(element, events = '', callback, passive = true, capture = false) {\n function onceCallback(...args) {\n off(element, events, onceCallback, passive, capture);\n callback.apply(this, args);\n }\n\n toggleListener.call(this, element, events, onceCallback, true, passive, capture);\n}\n\n// Trigger event\nexport function triggerEvent(element, type = '', bubbles = false, detail = {}) {\n // Bail if no element\n if (!is.element(element) || is.empty(type)) {\n return;\n }\n\n // Create and dispatch the event\n const event = new CustomEvent(type, {\n bubbles,\n detail: Object.assign({}, detail, {\n plyr: this,\n }),\n });\n\n // Dispatch the event\n element.dispatchEvent(event);\n}\n\n// Unbind all cached event listeners\nexport function unbindListeners() {\n if (this && this.eventListeners) {\n this.eventListeners.forEach(item => {\n const { element, type, callback, options } = item;\n element.removeEventListener(type, callback, options);\n });\n\n this.eventListeners = [];\n }\n}\n\n// Run method when / if player is ready\nexport function ready() {\n return new Promise(\n resolve => (this.ready ? setTimeout(resolve, 0) : on.call(this, this.elements.container, 'ready', resolve)),\n ).then(() => {});\n}\n","// ==========================================================================\n// Element utils\n// ==========================================================================\n\nimport { toggleListener } from './events';\nimport is from './is';\n\n// Wrap an element\nexport function wrap(elements, wrapper) {\n // Convert `elements` to an array, if necessary.\n const targets = elements.length ? elements : [elements];\n\n // Loops backwards to prevent having to clone the wrapper on the\n // first element (see `child` below).\n Array.from(targets)\n .reverse()\n .forEach((element, index) => {\n const child = index > 0 ? wrapper.cloneNode(true) : wrapper;\n\n // Cache the current parent and sibling.\n const parent = element.parentNode;\n const sibling = element.nextSibling;\n\n // Wrap the element (is automatically removed from its current\n // parent).\n child.appendChild(element);\n\n // If the element had a sibling, insert the wrapper before\n // the sibling to maintain the HTML structure; otherwise, just\n // append it to the parent.\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n });\n}\n\n// Set attributes\nexport function setAttributes(element, attributes) {\n if (!is.element(element) || is.empty(attributes)) {\n return;\n }\n\n // Assume null and undefined attributes should be left out,\n // Setting them would otherwise convert them to \"null\" and \"undefined\"\n Object.entries(attributes)\n .filter(([, value]) => !is.nullOrUndefined(value))\n .forEach(([key, value]) => element.setAttribute(key, value));\n}\n\n// Create a DocumentFragment\nexport function createElement(type, attributes, text) {\n // Create a new \n const element = document.createElement(type);\n\n // Set all passed attributes\n if (is.object(attributes)) {\n setAttributes(element, attributes);\n }\n\n // Add text node\n if (is.string(text)) {\n element.innerText = text;\n }\n\n // Return built element\n return element;\n}\n\n// Inaert an element after another\nexport function insertAfter(element, target) {\n target.parentNode.insertBefore(element, target.nextSibling);\n}\n\n// Insert a DocumentFragment\nexport function insertElement(type, parent, attributes, text) {\n // Inject the new \n parent.appendChild(createElement(type, attributes, text));\n}\n\n// Remove element(s)\nexport function removeElement(element) {\n if (is.nodeList(element) || is.array(element)) {\n Array.from(element).forEach(removeElement);\n return;\n }\n\n if (!is.element(element) || !is.element(element.parentNode)) {\n return;\n }\n\n element.parentNode.removeChild(element);\n}\n\n// Remove all child elements\nexport function emptyElement(element) {\n let { length } = element.childNodes;\n\n while (length > 0) {\n element.removeChild(element.lastChild);\n length -= 1;\n }\n}\n\n// Replace element\nexport function replaceElement(newChild, oldChild) {\n if (!is.element(oldChild) || !is.element(oldChild.parentNode) || !is.element(newChild)) {\n return null;\n }\n\n oldChild.parentNode.replaceChild(newChild, oldChild);\n\n return newChild;\n}\n\n// Get an attribute object from a string selector\nexport function getAttributesFromSelector(sel, existingAttributes) {\n // For example:\n // '.test' to { class: 'test' }\n // '#test' to { id: 'test' }\n // '[data-test=\"test\"]' to { 'data-test': 'test' }\n\n if (!is.string(sel) || is.empty(sel)) {\n return {};\n }\n\n const attributes = {};\n const existing = existingAttributes;\n\n sel.split(',').forEach(s => {\n // Remove whitespace\n const selector = s.trim();\n const className = selector.replace('.', '');\n const stripped = selector.replace(/[[\\]]/g, '');\n\n // Get the parts and value\n const parts = stripped.split('=');\n const key = parts[0];\n const value = parts.length > 1 ? parts[1].replace(/[\"']/g, '') : '';\n\n // Get the first character\n const start = selector.charAt(0);\n\n switch (start) {\n case '.':\n // Add to existing classname\n if (is.object(existing) && is.string(existing.class)) {\n existing.class += ` ${className}`;\n }\n\n attributes.class = className;\n break;\n\n case '#':\n // ID selector\n attributes.id = selector.replace('#', '');\n break;\n\n case '[':\n // Attribute selector\n attributes[key] = value;\n\n break;\n\n default:\n break;\n }\n });\n\n return attributes;\n}\n\n// Toggle hidden\nexport function toggleHidden(element, hidden) {\n if (!is.element(element)) {\n return;\n }\n\n let hide = hidden;\n\n if (!is.boolean(hide)) {\n hide = !element.hasAttribute('hidden');\n }\n\n if (hide) {\n element.setAttribute('hidden', '');\n } else {\n element.removeAttribute('hidden');\n }\n}\n\n// Mirror Element.classList.toggle, with IE compatibility for \"force\" argument\nexport function toggleClass(element, className, force) {\n if (is.element(element)) {\n let method = 'toggle';\n if (typeof force !== 'undefined') {\n method = force ? 'add' : 'remove';\n }\n\n element.classList[method](className);\n return element.classList.contains(className);\n }\n\n return null;\n}\n\n// Has class name\nexport function hasClass(element, className) {\n return is.element(element) && element.classList.contains(className);\n}\n\n// Element matches selector\nexport function matches(element, selector) {\n const prototype = { Element };\n\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n\n const matches =\n prototype.matches ||\n prototype.webkitMatchesSelector ||\n prototype.mozMatchesSelector ||\n prototype.msMatchesSelector ||\n match;\n\n return matches.call(element, selector);\n}\n\n// Find all elements\nexport function getElements(selector) {\n return this.elements.container.querySelectorAll(selector);\n}\n\n// Find a single element\nexport function getElement(selector) {\n return this.elements.container.querySelector(selector);\n}\n\n// Get the focused element\nexport function getFocusElement() {\n let focused = document.activeElement;\n\n if (!focused || focused === document.body) {\n focused = null;\n } else {\n focused = document.querySelector(':focus');\n }\n\n return focused;\n}\n\n// Trap focus inside container\nexport function trapFocus(element = null, toggle = false) {\n if (!is.element(element)) {\n return;\n }\n\n const focusable = getElements.call(this, 'button:not(:disabled), input:not(:disabled), [tabindex]');\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n\n const trap = event => {\n // Bail if not tab key or not fullscreen\n if (event.key !== 'Tab' || event.keyCode !== 9) {\n return;\n }\n\n // Get the current focused element\n const focused = getFocusElement();\n\n if (focused === last && !event.shiftKey) {\n // Move focus to first element that can be tabbed if Shift isn't used\n first.focus();\n event.preventDefault();\n } else if (focused === first && event.shiftKey) {\n // Move focus to last element that can be tabbed if Shift is used\n last.focus();\n event.preventDefault();\n }\n };\n\n toggleListener.call(this, this.elements.container, 'keydown', trap, toggle, false);\n}\n","// ==========================================================================\n// Animation utils\n// ==========================================================================\n\nimport { toggleHidden } from './elements';\nimport is from './is';\n\nexport const transitionEndEvent = (() => {\n const element = document.createElement('span');\n\n const events = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend',\n };\n\n const type = Object.keys(events).find(event => element.style[event] !== undefined);\n\n return is.string(type) ? events[type] : false;\n})();\n\n// Force repaint of element\nexport function repaint(element) {\n setTimeout(() => {\n toggleHidden(element, true);\n element.offsetHeight; // eslint-disable-line\n toggleHidden(element, false);\n }, 0);\n}\n","// ==========================================================================\n// Browser sniffing\n// Unfortunately, due to mixed support, UA sniffing is required\n// ==========================================================================\n\nconst browser = {\n isIE: /* @cc_on!@ */ false || !!document.documentMode,\n isWebkit: 'WebkitAppearance' in document.documentElement.style && !/Edge/.test(navigator.userAgent),\n isIPhone: /(iPhone|iPod)/gi.test(navigator.platform),\n isIos: /(iPad|iPhone|iPod)/gi.test(navigator.platform),\n};\n\nexport default browser;\n","// ==========================================================================\n// Plyr support checks\n// ==========================================================================\n\nimport { transitionEndEvent } from './utils/animation';\nimport browser from './utils/browser';\nimport { createElement } from './utils/elements';\nimport is from './utils/is';\n\n// Default codecs for checking mimetype support\nconst defaultCodecs = {\n 'audio/ogg': 'vorbis',\n 'audio/wav': '1',\n 'video/webm': 'vp8, vorbis',\n 'video/mp4': 'avc1.42E01E, mp4a.40.2',\n 'video/ogg': 'theora',\n};\n\n// Check for feature support\nconst support = {\n // Basic support\n audio: 'canPlayType' in document.createElement('audio'),\n video: 'canPlayType' in document.createElement('video'),\n\n // Check for support\n // Basic functionality vs full UI\n check(type, provider, playsinline) {\n const canPlayInline = browser.isIPhone && playsinline && support.playsinline;\n const api = support[type] || provider !== 'html5';\n const ui = api && support.rangeInput && (type !== 'video' || !browser.isIPhone || canPlayInline);\n\n return {\n api,\n ui,\n };\n },\n\n // Picture-in-picture support\n // Safari only currently\n pip: (() => !browser.isIPhone && is.function(createElement('video').webkitSetPresentationMode))(),\n\n // Airplay support\n // Safari only currently\n airplay: is.function(window.WebKitPlaybackTargetAvailabilityEvent),\n\n // Inline playback support\n // https://webkit.org/blog/6784/new-video-policies-for-ios/\n playsinline: 'playsInline' in document.createElement('video'),\n\n // Check for mime type support against a player instance\n // Credits: http://diveintohtml5.info/everything.html\n // Related: http://www.leanbackplayer.com/test/h5mt.html\n mime(inputType) {\n const [mediaType] = inputType.split('/');\n if (!this.isHTML5 || mediaType !== this.type) {\n return false;\n }\n\n let type;\n if (inputType && inputType.includes('codecs=')) {\n // Use input directly\n type = inputType;\n } else if (inputType === 'audio/mpeg') {\n // Skip codec\n type = 'audio/mpeg;';\n } else if (inputType in defaultCodecs) {\n // Use codec\n type = `${inputType}; codecs=\"${defaultCodecs[inputType]}\"`;\n }\n\n try {\n return Boolean(type && this.media.canPlayType(type).replace(/no/, ''));\n } catch (err) {\n return false;\n }\n },\n\n // Check for textTracks support\n textTracks: 'textTracks' in document.createElement('video'),\n\n // Sliders\n rangeInput: (() => {\n const range = document.createElement('input');\n range.type = 'range';\n return range.type === 'range';\n })(),\n\n // Touch\n // NOTE: Remember a device can be mouse + touch enabled so we check on first touch event\n touch: 'ontouchstart' in document.documentElement,\n\n // Detect transitions support\n transitions: transitionEndEvent !== false,\n\n // Reduced motion iOS & MacOS setting\n // https://webkit.org/blog/7551/responsive-design-for-motion/\n reducedMotion: 'matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches,\n};\n\nexport default support;\n","// ==========================================================================\n// Plyr HTML5 helpers\n// ==========================================================================\n\nimport support from './support';\nimport { removeElement } from './utils/elements';\nimport { triggerEvent } from './utils/events';\n\nconst html5 = {\n getSources() {\n if (!this.isHTML5) {\n return [];\n }\n\n const sources = Array.from(this.media.querySelectorAll('source'));\n\n // Filter out unsupported sources\n return sources.filter(source => support.mime.call(this, source.getAttribute('type')));\n },\n\n // Get quality levels\n getQualityOptions() {\n // Get sizes from elements\n return html5.getSources\n .call(this)\n .map(source => Number(source.getAttribute('size')))\n .filter(Boolean);\n },\n\n extend() {\n if (!this.isHTML5) {\n return;\n }\n\n const player = this;\n\n // Quality\n Object.defineProperty(player.media, 'quality', {\n get() {\n // Get sources\n const sources = html5.getSources.call(player);\n const source = sources.find(source => source.getAttribute('src') === player.source);\n\n // Return size, if match is found\n return source && Number(source.getAttribute('size'));\n },\n set(input) {\n // Get sources\n const sources = html5.getSources.call(player);\n\n // Get first match for requested size\n const source = sources.find(source => Number(source.getAttribute('size')) === input);\n\n // No matching source found\n if (!source) {\n return;\n }\n\n // Get current state\n const { currentTime, paused, preload, readyState } = player.media;\n\n // Set new source\n player.media.src = source.getAttribute('src');\n\n // Prevent loading if preload=\"none\" and the current source isn't loaded (#1044)\n if (preload !== 'none' || readyState) {\n // Restore time\n player.once('loadedmetadata', () => {\n player.currentTime = currentTime;\n\n // Resume playing\n if (!paused) {\n player.play();\n }\n });\n\n // Load new source\n player.media.load();\n }\n\n // Trigger change event\n triggerEvent.call(player, player.media, 'qualitychange', false, {\n quality: input,\n });\n },\n });\n },\n\n // Cancel current network requests\n // See https://github.com/sampotts/plyr/issues/174\n cancelRequests() {\n if (!this.isHTML5) {\n return;\n }\n\n // Remove child sources\n removeElement(html5.getSources.call(this));\n\n // Set blank video src attribute\n // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error\n // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection\n this.media.setAttribute('src', this.config.blankVideo);\n\n // Load the new empty source\n // This will cancel existing requests\n // See https://github.com/sampotts/plyr/issues/174\n this.media.load();\n\n // Debugging\n this.debug.log('Cancelled network requests');\n },\n};\n\nexport default html5;\n","// ==========================================================================\n// Object utils\n// ==========================================================================\n\nimport is from './is';\n\n// Clone nested objects\nexport function cloneDeep(object) {\n return JSON.parse(JSON.stringify(object));\n}\n\n// Get a nested value in an object\nexport function getDeep(object, path) {\n return path.split('.').reduce((obj, key) => obj && obj[key], object);\n}\n\n// Deep extend destination object with N more objects\nexport function extend(target = {}, ...sources) {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (!is.object(source)) {\n return target;\n }\n\n Object.keys(source).forEach(key => {\n if (is.object(source[key])) {\n if (!Object.keys(target).includes(key)) {\n Object.assign(target, { [key]: {} });\n }\n\n extend(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n });\n\n return extend(target, ...sources);\n}\n","// ==========================================================================\n// String utils\n// ==========================================================================\n\nimport is from './is';\n\n// Generate a random ID\nexport function generateId(prefix) {\n return `${prefix}-${Math.floor(Math.random() * 10000)}`;\n}\n\n// Format string\nexport function format(input, ...args) {\n if (is.empty(input)) {\n return input;\n }\n\n return input.toString().replace(/{(\\d+)}/g, (match, i) => args[i].toString());\n}\n\n// Get percentage\nexport function getPercentage(current, max) {\n if (current === 0 || max === 0 || Number.isNaN(current) || Number.isNaN(max)) {\n return 0;\n }\n\n return (current / max * 100).toFixed(2);\n}\n\n// Replace all occurances of a string in a string\nexport function replaceAll(input = '', find = '', replace = '') {\n return input.replace(\n new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1'), 'g'),\n replace.toString(),\n );\n}\n\n// Convert to title case\nexport function toTitleCase(input = '') {\n return input.toString().replace(/\\w\\S*/g, text => text.charAt(0).toUpperCase() + text.substr(1).toLowerCase());\n}\n\n// Convert string to pascalCase\nexport function toPascalCase(input = '') {\n let string = input.toString();\n\n // Convert kebab case\n string = replaceAll(string, '-', ' ');\n\n // Convert snake case\n string = replaceAll(string, '_', ' ');\n\n // Convert to title case\n string = toTitleCase(string);\n\n // Convert to pascal case\n return replaceAll(string, ' ', '');\n}\n\n// Convert string to pascalCase\nexport function toCamelCase(input = '') {\n let string = input.toString();\n\n // Convert to pascal case\n string = toPascalCase(string);\n\n // Convert first character to lowercase\n return string.charAt(0).toLowerCase() + string.slice(1);\n}\n\n// Remove HTML from a string\nexport function stripHTML(source) {\n const fragment = document.createDocumentFragment();\n const element = document.createElement('div');\n fragment.appendChild(element);\n element.innerHTML = source;\n return fragment.firstChild.innerText;\n}\n\n// Like outerHTML, but also works for DocumentFragment\nexport function getHTML(element) {\n const wrapper = document.createElement('div');\n wrapper.appendChild(element);\n return wrapper.innerHTML;\n}\n","// ==========================================================================\n// Plyr internationalization\n// ==========================================================================\n\nimport is from './utils/is';\nimport { getDeep } from './utils/objects';\nimport { replaceAll } from './utils/strings';\n\nconst i18n = {\n get(key = '', config = {}) {\n if (is.empty(key) || is.empty(config)) {\n return '';\n }\n\n let string = getDeep(config.i18n, key);\n\n if (is.empty(string)) {\n return '';\n }\n\n const replace = {\n '{seektime}': config.seekTime,\n '{title}': config.title,\n };\n\n Object.entries(replace).forEach(([key, value]) => {\n string = replaceAll(string, key, value);\n });\n\n return string;\n },\n};\n\nexport default i18n;\n","// ==========================================================================\n// Array utils\n// ==========================================================================\n\nimport is from './is';\n\n// Remove duplicates in an array\nexport function dedupe(array) {\n if (!is.array(array)) {\n return array;\n }\n\n return array.filter((item, index) => array.indexOf(item) === index);\n}\n\n// Get the closest value in an array\nexport function closest(array, value) {\n if (!is.array(array) || !array.length) {\n return null;\n }\n\n return array.reduce((prev, curr) => (Math.abs(curr - value) < Math.abs(prev - value) ? curr : prev));\n}\n","// ==========================================================================\n// Plyr storage\n// ==========================================================================\n\nimport is from './utils/is';\nimport { extend } from './utils/objects';\n\nclass Storage {\n constructor(player) {\n this.enabled = player.config.storage.enabled;\n this.key = player.config.storage.key;\n }\n\n // Check for actual support (see if we can use it)\n static get supported() {\n try {\n if (!('localStorage' in window)) {\n return false;\n }\n\n const test = '___test';\n\n // Try to use it (it might be disabled, e.g. user is in private mode)\n // see: https://github.com/sampotts/plyr/issues/131\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n\n return true;\n } catch (e) {\n return false;\n }\n }\n\n get(key) {\n if (!Storage.supported || !this.enabled) {\n return null;\n }\n\n const store = window.localStorage.getItem(this.key);\n\n if (is.empty(store)) {\n return null;\n }\n\n const json = JSON.parse(store);\n\n return is.string(key) && key.length ? json[key] : json;\n }\n\n set(object) {\n // Bail if we don't have localStorage support or it's disabled\n if (!Storage.supported || !this.enabled) {\n return;\n }\n\n // Can only store objectst\n if (!is.object(object)) {\n return;\n }\n\n // Get current storage\n let storage = this.get();\n\n // Default to empty object\n if (is.empty(storage)) {\n storage = {};\n }\n\n // Update the working copy of the values\n extend(storage, object);\n\n // Update storage\n window.localStorage.setItem(this.key, JSON.stringify(storage));\n }\n}\n\nexport default Storage;\n","// ==========================================================================\n// Fetch wrapper\n// Using XHR to avoid issues with older browsers\n// ==========================================================================\n\nexport default function fetch(url, responseType = 'text') {\n return new Promise((resolve, reject) => {\n try {\n const request = new XMLHttpRequest();\n\n // Check for CORS support\n if (!('withCredentials' in request)) {\n return;\n }\n\n request.addEventListener('load', () => {\n if (responseType === 'text') {\n try {\n resolve(JSON.parse(request.responseText));\n } catch (e) {\n resolve(request.responseText);\n }\n } else {\n resolve(request.response);\n }\n });\n\n request.addEventListener('error', () => {\n throw new Error(request.status);\n });\n\n request.open('GET', url, true);\n\n // Set the required response type\n request.responseType = responseType;\n\n request.send();\n } catch (e) {\n reject(e);\n }\n });\n}\n","// ==========================================================================\n// Sprite loader\n// ==========================================================================\n\nimport Storage from './../storage';\nimport fetch from './fetch';\nimport is from './is';\n\n// Load an external SVG sprite\nexport default function loadSprite(url, id) {\n if (!is.string(url)) {\n return;\n }\n\n const prefix = 'cache';\n const hasId = is.string(id);\n let isCached = false;\n\n const exists = () => document.getElementById(id) !== null;\n\n const update = (container, data) => {\n container.innerHTML = data;\n\n // Check again incase of race condition\n if (hasId && exists()) {\n return;\n }\n\n // Inject the SVG to the body\n document.body.insertAdjacentElement('afterbegin', container);\n };\n\n // Only load once if ID set\n if (!hasId || !exists()) {\n const useStorage = Storage.supported;\n\n // Create container\n const container = document.createElement('div');\n container.setAttribute('hidden', '');\n\n if (hasId) {\n container.setAttribute('id', id);\n }\n\n // Check in cache\n if (useStorage) {\n const cached = window.localStorage.getItem(`${prefix}-${id}`);\n isCached = cached !== null;\n\n if (isCached) {\n const data = JSON.parse(cached);\n update(container, data.content);\n }\n }\n\n // Get the sprite\n fetch(url)\n .then(result => {\n if (is.empty(result)) {\n return;\n }\n\n if (useStorage) {\n window.localStorage.setItem(\n `${prefix}-${id}`,\n JSON.stringify({\n content: result,\n }),\n );\n }\n\n update(container, result);\n })\n .catch(() => {});\n }\n}\n","// ==========================================================================\n// Time utils\n// ==========================================================================\n\nimport is from './is';\n\n// Time helpers\nexport const getHours = value => parseInt((value / 60 / 60) % 60, 10);\nexport const getMinutes = value => parseInt((value / 60) % 60, 10);\nexport const getSeconds = value => parseInt(value % 60, 10);\n\n// Format time to UI friendly string\nexport function formatTime(time = 0, displayHours = false, inverted = false) {\n // Bail if the value isn't a number\n if (!is.number(time)) {\n return formatTime(null, displayHours, inverted);\n }\n\n // Format time component to add leading zero\n const format = value => `0${value}`.slice(-2);\n\n // Breakdown to hours, mins, secs\n let hours = getHours(time);\n const mins = getMinutes(time);\n const secs = getSeconds(time);\n\n // Do we need to display hours?\n if (displayHours || hours > 0) {\n hours = `${hours}:`;\n } else {\n hours = '';\n }\n\n // Render\n return `${inverted && time > 0 ? '-' : ''}${hours}${format(mins)}:${format(secs)}`;\n}\n","// ==========================================================================\n// Plyr controls\n// ==========================================================================\n\nimport captions from './captions';\nimport html5 from './html5';\nimport i18n from './i18n';\nimport support from './support';\nimport { repaint, transitionEndEvent } from './utils/animation';\nimport { dedupe } from './utils/arrays';\nimport browser from './utils/browser';\nimport {\n createElement,\n emptyElement,\n getAttributesFromSelector,\n getElement,\n getElements,\n hasClass,\n removeElement,\n setAttributes,\n toggleClass,\n toggleHidden,\n matches,\n} from './utils/elements';\nimport { off, on } from './utils/events';\nimport is from './utils/is';\nimport loadSprite from './utils/loadSprite';\nimport { extend } from './utils/objects';\nimport { getPercentage, replaceAll, toCamelCase, toTitleCase } from './utils/strings';\nimport { formatTime, getHours } from './utils/time';\n\n// TODO: Don't export a massive object - break down and create class\nconst controls = {\n // Get icon URL\n getIconUrl() {\n const url = new URL(this.config.iconUrl, window.location);\n const cors = url.host !== window.location.host || (browser.isIE && !window.svg4everybody);\n\n return {\n url: this.config.iconUrl,\n cors,\n };\n },\n\n // Find the UI controls\n findElements() {\n try {\n this.elements.controls = getElement.call(this, this.config.selectors.controls.wrapper);\n\n // Buttons\n this.elements.buttons = {\n play: getElements.call(this, this.config.selectors.buttons.play),\n pause: getElement.call(this, this.config.selectors.buttons.pause),\n restart: getElement.call(this, this.config.selectors.buttons.restart),\n rewind: getElement.call(this, this.config.selectors.buttons.rewind),\n fastForward: getElement.call(this, this.config.selectors.buttons.fastForward),\n mute: getElement.call(this, this.config.selectors.buttons.mute),\n pip: getElement.call(this, this.config.selectors.buttons.pip),\n airplay: getElement.call(this, this.config.selectors.buttons.airplay),\n settings: getElement.call(this, this.config.selectors.buttons.settings),\n captions: getElement.call(this, this.config.selectors.buttons.captions),\n fullscreen: getElement.call(this, this.config.selectors.buttons.fullscreen),\n };\n\n // Progress\n this.elements.progress = getElement.call(this, this.config.selectors.progress);\n\n // Inputs\n this.elements.inputs = {\n seek: getElement.call(this, this.config.selectors.inputs.seek),\n volume: getElement.call(this, this.config.selectors.inputs.volume),\n };\n\n // Display\n this.elements.display = {\n buffer: getElement.call(this, this.config.selectors.display.buffer),\n currentTime: getElement.call(this, this.config.selectors.display.currentTime),\n duration: getElement.call(this, this.config.selectors.display.duration),\n };\n\n // Seek tooltip\n if (is.element(this.elements.progress)) {\n this.elements.display.seekTooltip = this.elements.progress.querySelector(\n `.${this.config.classNames.tooltip}`,\n );\n }\n\n return true;\n } catch (error) {\n // Log it\n this.debug.warn('It looks like there is a problem with your custom controls HTML', error);\n\n // Restore native video controls\n this.toggleNativeControls(true);\n\n return false;\n }\n },\n\n // Create icon\n createIcon(type, attributes) {\n const namespace = 'http://www.w3.org/2000/svg';\n const iconUrl = controls.getIconUrl.call(this);\n const iconPath = `${!iconUrl.cors ? iconUrl.url : ''}#${this.config.iconPrefix}`;\n\n // Create \n const icon = document.createElementNS(namespace, 'svg');\n setAttributes(\n icon,\n extend(attributes, {\n role: 'presentation',\n focusable: 'false',\n }),\n );\n\n // Create the to reference sprite\n const use = document.createElementNS(namespace, 'use');\n const path = `${iconPath}-${type}`;\n\n // Set `href` attributes\n // https://github.com/sampotts/plyr/issues/460\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href\n if ('href' in use) {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n } else {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path);\n }\n\n // Add to \n icon.appendChild(use);\n\n return icon;\n },\n\n // Create hidden text label\n createLabel(type, attr = {}) {\n // Skip i18n for abbreviations and brand names\n const universals = {\n pip: 'PIP',\n airplay: 'AirPlay',\n };\n const text = universals[type] || i18n.get(type, this.config);\n\n const attributes = Object.assign({}, attr, {\n class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' '),\n });\n return createElement('span', attributes, text);\n },\n\n // Create a badge\n createBadge(text) {\n if (is.empty(text)) {\n return null;\n }\n\n const badge = createElement('span', {\n class: this.config.classNames.menu.value,\n });\n\n badge.appendChild(\n createElement(\n 'span',\n {\n class: this.config.classNames.menu.badge,\n },\n text,\n ),\n );\n\n return badge;\n },\n\n // Create a
to hide the standard controls and UI\n setAspectRatio(input) {\n const [x, y] = (is.string(input) ? input : this.config.ratio).split(':');\n const padding = 100 / x * y;\n this.elements.wrapper.style.paddingBottom = `${padding}%`;\n\n if (this.supported.ui) {\n const height = 240;\n const offset = (height - padding) / (height / 50);\n\n this.media.style.transform = `translateY(-${offset}%)`;\n }\n },\n\n // API Ready\n ready() {\n const player = this;\n\n // Get Vimeo params for the iframe\n const options = {\n loop: player.config.loop.active,\n autoplay: player.autoplay,\n // muted: player.muted,\n byline: false,\n portrait: false,\n title: false,\n speed: true,\n transparent: 0,\n gesture: 'media',\n playsinline: !this.config.fullscreen.iosNative,\n };\n const params = buildUrlParams(options);\n\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(player.config.attributes.embed.id);\n }\n\n const id = parseId(source);\n\n // Build an iframe\n const iframe = createElement('iframe');\n const src = format(player.config.urls.vimeo.iframe, id, params);\n iframe.setAttribute('src', src);\n iframe.setAttribute('allowfullscreen', '');\n iframe.setAttribute('allowtransparency', '');\n iframe.setAttribute('allow', 'autoplay');\n\n // Get poster, if already set\n const { poster } = player;\n\n // Inject the package\n const wrapper = createElement('div', { poster, class: player.config.classNames.embedContainer });\n wrapper.appendChild(iframe);\n player.media = replaceElement(wrapper, player.media);\n\n // Get poster image\n fetch(format(player.config.urls.vimeo.api, id), 'json').then(response => {\n if (is.empty(response)) {\n return;\n }\n\n // Get the URL for thumbnail\n const url = new URL(response[0].thumbnail_large);\n\n // Get original image\n url.pathname = `${url.pathname.split('_')[0]}.jpg`;\n\n // Set and show poster\n ui.setPoster.call(player, url.href).catch(() => {});\n });\n\n // Setup instance\n // https://github.com/vimeo/player.js\n player.embed = new window.Vimeo.Player(iframe, {\n autopause: player.config.autopause,\n muted: player.muted,\n });\n\n player.media.paused = true;\n player.media.currentTime = 0;\n\n // Disable native text track rendering\n if (player.supported.ui) {\n player.embed.disableTextTrack();\n }\n\n // Create a faux HTML5 API using the Vimeo API\n player.media.play = () => {\n assurePlaybackState.call(player, true);\n return player.embed.play();\n };\n\n player.media.pause = () => {\n assurePlaybackState.call(player, false);\n return player.embed.pause();\n };\n\n player.media.stop = () => {\n player.pause();\n player.currentTime = 0;\n };\n\n // Seeking\n let { currentTime } = player.media;\n Object.defineProperty(player.media, 'currentTime', {\n get() {\n return currentTime;\n },\n set(time) {\n // Vimeo will automatically play on seek if the video hasn't been played before\n\n // Get current paused state and volume etc\n const { embed, media, paused, volume } = player;\n const restorePause = paused && !embed.hasPlayed;\n\n // Set seeking state and trigger event\n media.seeking = true;\n triggerEvent.call(player, media, 'seeking');\n\n // If paused, mute until seek is complete\n Promise.resolve(restorePause && embed.setVolume(0))\n // Seek\n .then(() => embed.setCurrentTime(time))\n // Restore paused\n .then(() => restorePause && embed.pause())\n // Restore volume\n .then(() => restorePause && embed.setVolume(volume))\n .catch(() => {\n // Do nothing\n });\n },\n });\n\n // Playback speed\n let speed = player.config.speed.selected;\n Object.defineProperty(player.media, 'playbackRate', {\n get() {\n return speed;\n },\n set(input) {\n player.embed\n .setPlaybackRate(input)\n .then(() => {\n speed = input;\n triggerEvent.call(player, player.media, 'ratechange');\n })\n .catch(error => {\n // Hide menu item (and menu if empty)\n if (error.name === 'Error') {\n controls.setSpeedMenu.call(player, []);\n }\n });\n },\n });\n\n // Volume\n let { volume } = player.config;\n Object.defineProperty(player.media, 'volume', {\n get() {\n return volume;\n },\n set(input) {\n player.embed.setVolume(input).then(() => {\n volume = input;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n },\n });\n\n // Muted\n let { muted } = player.config;\n Object.defineProperty(player.media, 'muted', {\n get() {\n return muted;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : false;\n\n player.embed.setVolume(toggle ? 0 : player.config.volume).then(() => {\n muted = toggle;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n },\n });\n\n // Loop\n let { loop } = player.config;\n Object.defineProperty(player.media, 'loop', {\n get() {\n return loop;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : player.config.loop.active;\n\n player.embed.setLoop(toggle).then(() => {\n loop = toggle;\n });\n },\n });\n\n // Source\n let currentSrc;\n player.embed\n .getVideoUrl()\n .then(value => {\n currentSrc = value;\n })\n .catch(error => {\n this.debug.warn(error);\n });\n\n Object.defineProperty(player.media, 'currentSrc', {\n get() {\n return currentSrc;\n },\n });\n\n // Ended\n Object.defineProperty(player.media, 'ended', {\n get() {\n return player.currentTime === player.duration;\n },\n });\n\n // Set aspect ratio based on video size\n Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(dimensions => {\n const ratio = getAspectRatio(dimensions[0], dimensions[1]);\n vimeo.setAspectRatio.call(this, ratio);\n });\n\n // Set autopause\n player.embed.setAutopause(player.config.autopause).then(state => {\n player.config.autopause = state;\n });\n\n // Get title\n player.embed.getVideoTitle().then(title => {\n player.config.title = title;\n ui.setTitle.call(this);\n });\n\n // Get current time\n player.embed.getCurrentTime().then(value => {\n currentTime = value;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n // Get duration\n player.embed.getDuration().then(value => {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n });\n\n // Get captions\n player.embed.getTextTracks().then(tracks => {\n player.media.textTracks = tracks;\n captions.setup.call(player);\n });\n\n player.embed.on('cuechange', ({ cues = [] }) => {\n const strippedCues = cues.map(cue => stripHTML(cue.text));\n captions.updateCues.call(player, strippedCues);\n });\n\n player.embed.on('loaded', () => {\n // Assure state and events are updated on autoplay\n player.embed.getPaused().then(paused => {\n assurePlaybackState.call(player, !paused);\n if (!paused) {\n triggerEvent.call(player, player.media, 'playing');\n }\n });\n\n if (is.element(player.embed.element) && player.supported.ui) {\n const frame = player.embed.element;\n\n // Fix keyboard focus issues\n // https://github.com/sampotts/plyr/issues/317\n frame.setAttribute('tabindex', -1);\n }\n });\n\n player.embed.on('play', () => {\n assurePlaybackState.call(player, true);\n triggerEvent.call(player, player.media, 'playing');\n });\n\n player.embed.on('pause', () => {\n assurePlaybackState.call(player, false);\n });\n\n player.embed.on('timeupdate', data => {\n player.media.seeking = false;\n currentTime = data.seconds;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n player.embed.on('progress', data => {\n player.media.buffered = data.percent;\n triggerEvent.call(player, player.media, 'progress');\n\n // Check all loaded\n if (parseInt(data.percent, 10) === 1) {\n triggerEvent.call(player, player.media, 'canplaythrough');\n }\n\n // Get duration as if we do it before load, it gives an incorrect value\n // https://github.com/sampotts/plyr/issues/891\n player.embed.getDuration().then(value => {\n if (value !== player.media.duration) {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n }\n });\n });\n\n player.embed.on('seeked', () => {\n player.media.seeking = false;\n triggerEvent.call(player, player.media, 'seeked');\n });\n\n player.embed.on('ended', () => {\n player.media.paused = true;\n triggerEvent.call(player, player.media, 'ended');\n });\n\n player.embed.on('error', detail => {\n player.media.error = detail;\n triggerEvent.call(player, player.media, 'error');\n });\n\n // Rebuild UI\n setTimeout(() => ui.build.call(player), 0);\n },\n};\n\nexport default vimeo;\n","// ==========================================================================\n// YouTube plugin\n// ==========================================================================\n\nimport controls from './../controls';\nimport ui from './../ui';\nimport { dedupe } from './../utils/arrays';\nimport { createElement, replaceElement, toggleClass } from './../utils/elements';\nimport { triggerEvent } from './../utils/events';\nimport fetch from './../utils/fetch';\nimport is from './../utils/is';\nimport loadImage from './../utils/loadImage';\nimport loadScript from './../utils/loadScript';\nimport { format, generateId } from './../utils/strings';\n\n// Parse YouTube ID from URL\nfunction parseId(url) {\n if (is.empty(url)) {\n return null;\n }\n\n const regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n return url.match(regex) ? RegExp.$2 : url;\n}\n\n// Standardise YouTube quality unit\nfunction mapQualityUnit(input) {\n const qualities = {\n hd2160: 2160,\n hd1440: 1440,\n hd1080: 1080,\n hd720: 720,\n large: 480,\n medium: 360,\n small: 240,\n tiny: 144,\n };\n\n const entry = Object.entries(qualities).find(entry => entry.includes(input));\n\n if (entry) {\n // Get the match corresponding to the input\n return entry.find(value => value !== input);\n }\n\n return 'default';\n}\n\nfunction mapQualityUnits(levels) {\n if (is.empty(levels)) {\n return levels;\n }\n\n return dedupe(levels.map(level => mapQualityUnit(level)));\n}\n\n// Set playback state and trigger change (only on actual change)\nfunction assurePlaybackState(play) {\n if (play && !this.embed.hasPlayed) {\n this.embed.hasPlayed = true;\n }\n if (this.media.paused === play) {\n this.media.paused = !play;\n triggerEvent.call(this, this.media, play ? 'play' : 'pause');\n }\n}\n\nconst youtube = {\n setup() {\n // Add embed class for responsive\n toggleClass(this.elements.wrapper, this.config.classNames.embed, true);\n\n // Set aspect ratio\n youtube.setAspectRatio.call(this);\n\n // Setup API\n if (is.object(window.YT) && is.function(window.YT.Player)) {\n youtube.ready.call(this);\n } else {\n // Load the API\n loadScript(this.config.urls.youtube.sdk).catch(error => {\n this.debug.warn('YouTube API failed to load', error);\n });\n\n // Setup callback for the API\n // YouTube has it's own system of course...\n window.onYouTubeReadyCallbacks = window.onYouTubeReadyCallbacks || [];\n\n // Add to queue\n window.onYouTubeReadyCallbacks.push(() => {\n youtube.ready.call(this);\n });\n\n // Set callback to process queue\n window.onYouTubeIframeAPIReady = () => {\n window.onYouTubeReadyCallbacks.forEach(callback => {\n callback();\n });\n };\n }\n },\n\n // Get the media title\n getTitle(videoId) {\n // Try via undocumented API method first\n // This method disappears now and then though...\n // https://github.com/sampotts/plyr/issues/709\n if (is.function(this.embed.getVideoData)) {\n const { title } = this.embed.getVideoData();\n\n if (is.empty(title)) {\n this.config.title = title;\n ui.setTitle.call(this);\n return;\n }\n }\n\n // Or via Google API\n const key = this.config.keys.google;\n if (is.string(key) && !is.empty(key)) {\n const url = format(this.config.urls.youtube.api, videoId, key);\n\n fetch(url)\n .then(result => {\n if (is.object(result)) {\n this.config.title = result.items[0].snippet.title;\n ui.setTitle.call(this);\n }\n })\n .catch(() => {});\n }\n },\n\n // Set aspect ratio\n setAspectRatio() {\n const ratio = this.config.ratio.split(':');\n this.elements.wrapper.style.paddingBottom = `${100 / ratio[0] * ratio[1]}%`;\n },\n\n // API ready\n ready() {\n const player = this;\n\n // Ignore already setup (race condition)\n const currentId = player.media.getAttribute('id');\n if (!is.empty(currentId) && currentId.startsWith('youtube-')) {\n return;\n }\n\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(this.config.attributes.embed.id);\n }\n\n // Replace the