{"version":3,"sources":["webpack://fair-labour/./node_modules/lazysizes/lazysizes.js","webpack://fair-labour/./node_modules/lazysizes/plugins/object-fit/ls.object-fit.js","webpack://fair-labour/./node_modules/lazysizes/plugins/parent-fit/ls.parent-fit.js","webpack://fair-labour/./node_modules/lazysizes/plugins/respimg/ls.respimg.js"],"names":["window","factory","lazySizes","document","Date","lazysizes","lazySizesCfg","prop","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","fastLoadedClass","iframeLoadMode","srcAttr","srcsetAttr","sizesAttr","minSize","customMedia","init","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazySizesConfig","lazysizesConfig","getElementsByClassName","cfg","noSupport","autosizesElems","sizeElement","getSizeElement","debouncedUpdateElementsSizes","preloadElems","isCompleted","resetPreloadingTimer","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","isBodyHidden","regImg","regIframe","supportScroll","currentExpand","isLoading","lowRuns","resetPreloading","isVisible","isNestedVisible","checkElements","throttledCheckElements","switchLoadingClass","rafedSwitchLoadingClass","rafSwitchLoadingClass","changeIframeSrc","handleSources","lazyUnveil","unveilElement","afterScroll","altLoadmodeScrollListner","onload","running","waiting","firstFns","secondFns","fns","run","rafBatch","docElem","documentElement","supportPicture","HTMLPictureElement","_addEventListener","_getAttribute","addEventListener","bind","setTimeout","requestAnimationFrame","requestIdleCallback","regPicture","loadEvents","regClassCache","forEach","Array","prototype","hasClass","ele","cls","RegExp","test","addClass","setAttribute","trim","removeClass","reg","replace","addRemoveLoadEvents","dom","fn","add","action","evt","triggerEvent","elem","name","detail","noBubbles","noCancelable","event","createEvent","instance","initEvent","dispatchEvent","updatePolyfill","el","full","polyfill","picturefill","pf","src","reevaluate","elements","getCSS","style","getComputedStyle","getWidth","parent","width","offsetWidth","_lazysizesWidth","parentNode","rAF","queue","apply","this","arguments","push","hidden","_lsFlush","runFns","length","shift","rAFIt","simple","that","args","debounce","func","timeout","timestamp","later","last","now","loader","navigator","userAgent","e","target","body","elemExpand","outerRect","visible","offsetParent","getBoundingClientRect","left","right","top","bottom","lastTime","gDelay","rICTimeout","idleCallback","isPriority","delay","throttle","eLlen","i","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","_lazyRace","prematureUnveil","expand","clientHeight","clientWidth","_defEx","innerWidth","innerHeight","preloadAfterLoad","_lazyCache","getAttribute","contentWindow","location","source","sourceSrcset","isAuto","sizes","isImg","srcset","isPicture","firesLoad","defaultPrevented","nodeName","clearTimeout","call","getElementsByTagName","isLoaded","complete","naturalWidth","loading","autoSizer","updateElem","_","persisted","loadingElements","querySelectorAll","img","MutationObserver","observe","childList","subtree","attributes","setInterval","readyState","checkElems","unveil","_aLSL","sources","len","dataAttr","uP","aC","rC","hC","fire","gW","module","exports","initialEvent","cloneElementClass","createElement","fitSupport","regCssFit","regCssPosition","blankSrc","regBgUrlEscape","positionDefaults","center","onRead","element","obj","content","fontFamily","objectFit","match","objectPosition","fit","position","getObject","config","switchClassesAdded","addedSrc","styleElement","styleElementStyle","lazysizesCfg","onChange","currentSrc","backgroundImage","JSON","stringify","rafedOnChange","_lazysizesParentFit","hideElement","container","toUpperCase","prev","previousElementSibling","removeChild","visibility","removePrevClone","objectFitClass","querySelector","appendChild","generateStyleClass","cloneNode","curSrc","attr","removeAttribute","backgroundRepeat","backgroundPosition","backgroundSize","_objectFitPolyfilledDisplay","insertBefore","initFix","regDescriptors","regCssObject","parentFit","getParent","parentSel","closest","jQuery","getFit","tmpMatch","parentObj","css","_lazysizesParentContainer","getImageRatio","media","ratio","height","_lsMedia","matchMedia","matches","parseFloat","calculateSize","displayRatio","imageRatio","retWidth","fitObj","fitElem","candidates","regWCandidates","regMultiple","addCandidate","ascendingSort","regPxLength","parseWsrcset","runMatchMedia","createSrcset","matchesMedia","getCandidate","p","sels","supportSrcset","regHDesc","fixEdgeHDescriptor","removeHDescriptors","handler","picture","removeEventListener","onerror","supportsType","type","hasHDescriptorFix","msElementsFromPoint","options","a","b","w","candidate","url","wDescriptor","c","u","timer","matchMediaElems","isImage","parsedSet","srcSet","_lazypolyfill","_set","Object","defineProperty","value","writable","srces","parseInt","d","dpr","devicePixelRatio","optimum","getX","Math","min","lowerCandidate","bonusFactor","cached","pow","reduceCandidate","sort","cur","parse","input","sel","join"],"mappings":"iGAAC,SAASA,EAAQC,GACjB,IAAIC,EAWL,SAAWF,EAAQG,EAAUC,GAC5B,aAGA,IAAIC,EAIHC,EAuCD,GArCA,WACC,IAAIC,EAEAC,EAAoB,CACvBC,UAAW,WACXC,YAAa,aACbC,aAAc,cACdC,aAAc,cACdC,WAAY,YAEZC,eAAgB,gBAChBC,gBAAiB,eACjBC,eAAgB,EAChBC,QAAS,WACTC,WAAY,cACZC,UAAW,aAEXC,QAAS,GACTC,YAAa,CAAC,EACdC,MAAM,EACNC,UAAW,IACXC,KAAM,GACNC,SAAU,EACVC,YAAY,EACZC,WAAY,EACZC,cAAe,KAKhB,IAAIrB,KAFJD,EAAeN,EAAO6B,iBAAmB7B,EAAO8B,iBAAmB,CAAC,EAExDtB,EACND,KAAQD,IACZA,EAAaC,GAAQC,EAAkBD,GAGzC,CAnCD,IAqCKJ,IAAaA,EAAS4B,uBAC1B,MAAO,CACNT,KAAM,WAAa,EAInBU,IAAK1B,EAIL2B,WAAW,GAIb,IA+nBKC,EAEAC,EAwBAC,EA8BAC,EAlbAC,EAAcC,EAAaC,EAAsBf,EAAUgB,EAE3DC,EAAMC,EAAMC,EAAOC,EAAQC,EAASC,EAAUC,EAE9CC,EACAC,EAEAC,EAGAC,EAEAC,EACAC,EAEAC,EAOAC,EAQAC,EA0BAC,EA2EAC,EAEAC,EAcAC,EACAC,EAIAC,EAWAC,EAcAC,EAmFAC,EAwBAC,EAKAC,EAOAC,EA3aAC,EAASC,EACTC,EACAC,EACAC,EAEAC,EAeAC,EAtJDC,EAAU1E,EAAS2E,gBAEnBC,EAAiB/E,EAAOgF,mBAExBC,EAAoB,mBAEpBC,EAAgB,eAMhBC,EAAmBnF,EAAOiF,GAAmBG,KAAKpF,GAElDqF,GAAarF,EAAOqF,WAEpBC,GAAwBtF,EAAOsF,uBAAyBD,GAExDE,GAAsBvF,EAAOuF,oBAE7BC,GAAa,aAEbC,GAAa,CAAC,OAAQ,QAAS,eAAgB,eAE/CC,GAAgB,CAAC,EAEjBC,GAAUC,MAAMC,UAAUF,QAM1BG,GAAW,SAASC,EAAKC,GAI5B,OAHIN,GAAcM,KACjBN,GAAcM,GAAO,IAAIC,OAAO,UAAUD,EAAI,YAExCN,GAAcM,GAAKE,KAAKH,EAAIb,GAAe,UAAY,KAAOQ,GAAcM,EACpF,EAMIG,GAAW,SAASJ,EAAKC,GACvBF,GAASC,EAAKC,IAClBD,EAAIK,aAAa,SAAUL,EAAIb,GAAe,UAAY,IAAImB,OAAS,IAAML,EAE/E,EAMIM,GAAc,SAASP,EAAKC,GAC/B,IAAIO,GACCA,EAAMT,GAASC,EAAIC,KACvBD,EAAIK,aAAa,SAAUL,EAAIb,GAAe,UAAY,IAAIsB,QAAQD,EAAK,KAE7E,EAEIE,GAAsB,SAASC,EAAKC,EAAIC,GAC3C,IAAIC,EAASD,EAAM3B,EAAoB,sBACpC2B,GACFH,GAAoBC,EAAKC,GAE1BlB,GAAWE,SAAQ,SAASmB,GAC3BJ,EAAIG,GAAQC,EAAKH,EAClB,GACD,EAUII,GAAe,SAASC,EAAMC,EAAMC,EAAQC,EAAWC,GAC1D,IAAIC,EAAQlH,EAASmH,YAAY,SAajC,OAXIJ,IACHA,EAAS,CAAC,GAGXA,EAAOK,SAAWlH,EAElBgH,EAAMG,UAAUP,GAAOE,GAAYC,GAEnCC,EAAMH,OAASA,EAEfF,EAAKS,cAAcJ,GACZA,CACR,EAEIK,GAAiB,SAAUC,EAAIC,GAClC,IAAIC,GACC9C,IAAoB8C,EAAY7H,EAAO8H,aAAexH,EAAayH,KACpEH,GAAQA,EAAKI,MAAQL,EAAGzC,GAAe,WACzCyC,EAAGvB,aAAa,SAAUwB,EAAKI,KAEhCH,EAAS,CAACI,YAAY,EAAMC,SAAU,CAACP,MAC9BC,GAAQA,EAAKI,MACtBL,EAAGK,IAAMJ,EAAKI,IAEhB,EAEIG,GAAS,SAAUnB,EAAMoB,GAC5B,OAAQC,iBAAiBrB,EAAM,OAAS,CAAC,GAAGoB,EAC7C,EASIE,GAAW,SAAStB,EAAMuB,EAAQC,GAGrC,IAFAA,EAAQA,GAASxB,EAAKyB,YAEhBD,EAAQlI,EAAac,SAAWmH,IAAWvB,EAAK0B,iBACrDF,EAASD,EAAOE,YAChBF,EAASA,EAAOI,WAGjB,OAAOH,CACR,EAEII,IAGCnE,EAAY,GACZC,EAFAF,EAAW,GAmBXI,EAAW,SAAS+B,EAAIkC,GACxBvE,IAAYuE,EACdlC,EAAGmC,MAAMC,KAAMC,YAEftE,EAAIuE,KAAKtC,GAELpC,IACHA,GAAU,GACTpE,EAAS+I,OAAS7D,GAAaC,IAAuBX,IAG1D,EAEAC,EAASuE,SA5BLxE,EAAM,WACT,IAAIyE,EAAS1E,EAOb,IALAA,EAAMF,EAAS6E,OAAS5E,EAAYD,EAEpCF,GAAU,EACVC,GAAU,EAEJ6E,EAAOC,QACZD,EAAOE,OAAPF,GAGD9E,GAAU,CACX,EAiBOM,GAGJ2E,GAAQ,SAAS5C,EAAI6C,GACxB,OAAOA,EACN,WACCZ,GAAIjC,EACL,EACA,WACC,IAAI8C,EAAOV,KACPW,EAAOV,UACXJ,IAAI,WACHjC,EAAGmC,MAAMW,EAAMC,EAChB,GACD,CAEF,EAqDIC,GAAW,SAASC,GACvB,IAAIC,EAASC,EAETnF,EAAM,WACTkF,EAAU,KACVD,GACD,EACIG,EAAQ,WACX,IAAIC,EAAO5J,EAAK6J,MAAQH,EAEpBE,EARM,GAST3E,GAAW0E,EATF,GASgBC,IAExBzE,IAAuBZ,GAAKA,EAE/B,EAEA,OAAO,WACNmF,EAAY1J,EAAK6J,MAEZJ,IACJA,EAAUxE,GAAW0E,EAnBZ,IAqBX,CACD,EAEIG,IAKCjH,EAAS,SACTC,EAAY,YAEZC,EAAiB,aAAcnD,IAAa,eAAekG,KAAKiE,UAAUC,WAG1EhH,EAAgB,EAEhBC,EAAY,EACZC,GAAW,EAEXC,EAAkB,SAAS8G,GAC9BhH,MACIgH,GAAKhH,EAAY,IAAMgH,EAAEC,UAC5BjH,EAAY,EAEd,EAEIG,EAAY,SAAUwD,GAKzB,OAJoB,MAAhBhE,IACHA,EAAsD,UAAvCmF,GAAOhI,EAASoK,KAAM,eAG/BvH,KAA2D,UAAzCmF,GAAOnB,EAAK2B,WAAY,eAA2D,UAA9BR,GAAOnB,EAAM,cAC5F,EAEIvD,EAAkB,SAASuD,EAAMwD,GACpC,IAAIC,EACAlC,EAASvB,EACT0D,EAAUlH,EAAUwD,GAOxB,IALApE,GAAS4H,EACTzH,GAAYyH,EACZ3H,GAAU2H,EACV1H,GAAW0H,EAELE,IAAYnC,EAASA,EAAOoC,eAAiBpC,GAAUpI,EAASoK,MAAQhC,GAAU1D,IACvF6F,GAAYvC,GAAOI,EAAQ,YAAc,GAAK,IAEF,WAA9BJ,GAAOI,EAAQ,cAC5BkC,EAAYlC,EAAOqC,wBACnBF,EAAU5H,EAAU2H,EAAUI,MAC7BhI,EAAS4H,EAAUK,OACnB/H,EAAW0H,EAAUM,IAAM,GAC3BnI,EAAQ6H,EAAUO,OAAS,GAK9B,OAAON,CACR,EA6EI/G,EAjNU,SAASgD,GACvB,IAAIrC,EACA2G,EAAW,EACXC,EAAS5K,EAAasB,cACtBuJ,EAAa7K,EAAaqB,WAC1BgD,EAAM,WACTL,GAAU,EACV2G,EAAW7K,EAAK6J,MAChBtD,GACD,EACIyE,EAAe7F,IAAuB4F,EAAa,GACtD,WACC5F,GAAoBZ,EAAK,CAACkF,QAASsB,IAEhCA,IAAe7K,EAAaqB,aAC9BwJ,EAAa7K,EAAaqB,WAE5B,EACA4H,IAAM,WACLlE,GAAWV,EACZ,IAAG,GAGJ,OAAO,SAAS0G,GACf,IAAIC,GAEAD,GAA4B,IAAfA,KAChBF,EAAa,IAGX7G,IAIHA,GAAW,GAEXgH,EAAQJ,GAAU9K,EAAK6J,MAAQgB,IAEpB,IACVK,EAAQ,GAGND,GAAcC,EAAQ,EACxBF,IAEA/F,GAAW+F,EAAcE,GAE3B,CACD,CAiK8BC,CA3EzB7H,EAAgB,WACnB,IAAI8H,EAAOC,EAAGC,EAAMC,EAAcC,EAAiBpB,EAAYqB,EAAoBC,EAClFC,EAAiBC,EAAeC,EAAezK,EAC5C0K,EAAgB7L,EAAU6H,SAE9B,IAAIzG,EAAWnB,EAAamB,WAAa4B,EAAY,IAAMmI,EAAQU,EAAc7C,QAAQ,CAMxF,IAJAoC,EAAI,EAEJnI,IAEMmI,EAAID,EAAOC,IAEhB,GAAIS,EAAcT,KAAMS,EAAcT,GAAGU,UAEzC,IAAIhJ,GAAkB9C,EAAU+L,iBAAmB/L,EAAU+L,gBAAgBF,EAAcT,IAAMvH,EAAcgI,EAAcT,SAoC7H,IAlCKK,EAAgBI,EAAcT,GAAGvG,GAAe,kBAAqBsF,EAA6B,EAAhBsB,KACtFtB,EAAapH,GAGT4I,IACJA,GAAkB1L,EAAa+L,QAAU/L,EAAa+L,OAAS,EAC9DxH,EAAQyH,aAAe,KAAOzH,EAAQ0H,YAAc,IAAM,IAAM,IAChEjM,EAAa+L,OAEdhM,EAAUmM,OAASR,EAEnBC,EAAgBD,EAAgB1L,EAAaiB,UAC7CC,EAAOlB,EAAakB,KACpBwB,EAAe,KAEZI,EAAgB6I,GAAiB5I,EAAY,GAAKC,EAAU,GAAK7B,EAAW,IAAMtB,EAAS+I,QAC7F9F,EAAgB6I,EAChB3I,EAAU,GAEVF,EADS3B,EAAW,GAAK6B,EAAU,GAAKD,EAAY,EACpC2I,EAnFF,GAyFbD,IAAoBvB,IACtB9H,EAAO+J,WAAcjC,EAAahJ,EAClCmB,EAAO+J,YAAclC,EACrBqB,GAAmC,EAAdrB,EACrBuB,EAAkBvB,GAGnBkB,EAAOQ,EAAcT,GAAGb,yBAEnB7H,EAAW2I,EAAKV,SAAWa,IAC9BjJ,EAAQ8I,EAAKX,MAAQpI,IACrBG,EAAU4I,EAAKZ,QAAUe,EAAqBrK,IAC9CqB,EAAS6I,EAAKb,OAASnI,IACvBK,GAAYD,GAAWD,GAAUD,KACjCtC,EAAaoB,YAAc8B,EAAU0I,EAAcT,OAClDlJ,GAAec,EAAY,IAAMyI,IAAkBrK,EAAW,GAAK6B,EAAU,IAAOG,EAAgByI,EAAcT,GAAIjB,KAGxH,GAFAtG,EAAcgI,EAAcT,IAC5BG,GAAkB,EACfvI,EAAY,EAAG,WACRuI,GAAmBrJ,IAAgBoJ,GAC7CtI,EAAY,GAAKC,EAAU,GAAK7B,EAAW,IAC1Ca,EAAa,IAAMhC,EAAaqM,oBAChCrK,EAAa,KAAQwJ,IAAmB/I,GAAYD,GAAWD,GAAUD,GAAqE,QAA3DsJ,EAAcT,GAAGvG,GAAe5E,EAAaa,eACjIwK,EAAerJ,EAAa,IAAM4J,EAAcT,IAI/CE,IAAiBC,GACnB1H,EAAcyH,EAEhB,CACD,GAkBI9H,EAA0B0F,GAd1B3F,EAAqB,SAASyG,GACjC,IAAIrD,EAAOqD,EAAEC,OAETtD,EAAK4F,kBACD5F,EAAK4F,YAIbrJ,EAAgB8G,GAChBlE,GAASa,EAAM1G,EAAaI,aAC5B4F,GAAYU,EAAM1G,EAAaK,cAC/B8F,GAAoBO,EAAMlD,GAC1BiD,GAAaC,EAAM,cACpB,GAEIlD,EAAwB,SAASuG,GACpCxG,EAAwB,CAACyG,OAAQD,EAAEC,QACpC,EAEIvG,EAAkB,SAASiD,EAAMgB,GACpC,IAAIvG,EAAWuF,EAAK6F,aAAa,mBAAqBvM,EAAaU,eAGnD,GAAZS,EACHuF,EAAK8F,cAAcC,SAASvG,QAAQwB,GACd,GAAZvG,IACVuF,EAAKgB,IAAMA,EAEb,EAEIhE,EAAgB,SAASgJ,GAC5B,IAAI3L,EAEA4L,EAAeD,EAAO9H,GAAe5E,EAAaY,aAEjDG,EAAcf,EAAae,YAAY2L,EAAO9H,GAAe,eAAiB8H,EAAO9H,GAAe,YACxG8H,EAAO5G,aAAa,QAAS/E,GAG3B4L,GACFD,EAAO5G,aAAa,SAAU6G,EAEhC,EAEIhJ,EAAasF,IAAM,SAAUvC,EAAME,EAAQgG,EAAQC,EAAOC,GAC7D,IAAIpF,EAAKqF,EAAQ9E,EAAQ+E,EAAWjG,EAAOkG,GAEtClG,EAAQN,GAAaC,EAAM,mBAAoBE,IAASsG,mBAEzDL,IACCD,EACF/G,GAASa,EAAM1G,EAAaQ,gBAE5BkG,EAAKZ,aAAa,QAAS+G,IAI7BE,EAASrG,EAAK9B,GAAe5E,EAAaY,YAC1C8G,EAAMhB,EAAK9B,GAAe5E,EAAaW,SAEpCmM,IAEFE,GADA/E,EAASvB,EAAK2B,aACQnD,GAAWU,KAAKqC,EAAOkF,UAAY,KAG1DF,EAAYrG,EAAOqG,WAAe,QAASvG,IAAUqG,GAAUrF,GAAOsF,GAEtEjG,EAAQ,CAACiD,OAAQtD,GAEjBb,GAASa,EAAM1G,EAAaK,cAEzB4M,IACFG,aAAalL,GACbA,EAAuB6C,GAAW9B,EAAiB,MACnDkD,GAAoBO,EAAMlD,GAAuB,IAG/CwJ,GACF3H,GAAQgI,KAAKpF,EAAOqF,qBAAqB,UAAW5J,GAGlDqJ,EACFrG,EAAKZ,aAAa,SAAUiH,GACnBrF,IAAQsF,IACdpK,EAAUgD,KAAKc,EAAKyG,UACtB1J,EAAgBiD,EAAMgB,GAEtBhB,EAAKgB,IAAMA,GAIVoF,IAAUC,GAAUC,IACtB5F,GAAeV,EAAM,CAACgB,IAAKA,KAI1BhB,EAAKmF,kBACAnF,EAAKmF,UAEb7F,GAAYU,EAAM1G,EAAaG,WAE/BmI,IAAI,WAEH,IAAIiF,EAAW7G,EAAK8G,UAAY9G,EAAK+G,aAAe,EAE/CR,IAAaM,IACbA,GACH1H,GAASa,EAAM1G,EAAaS,iBAE7B6C,EAAmByD,GACnBL,EAAK4F,YAAa,EAClBvH,IAAW,WACN,eAAgB2B,UACZA,EAAK4F,UAEd,GAAG,IAEgB,QAAhB5F,EAAKgH,SACR3K,GAEF,IAAG,EACJ,IAMIa,EAAgB,SAAU8C,GAC7B,IAAIA,EAAKmF,UAAT,CACA,IAAIjF,EAEAkG,EAAQnK,EAAOiD,KAAKc,EAAKyG,UAGzBN,EAAQC,IAAUpG,EAAK9B,GAAe5E,EAAaa,YAAc6F,EAAK9B,GAAe,UACrFgI,EAAkB,QAATC,IAERD,GAAW3K,IAAgB6K,IAAUpG,EAAK9B,GAAe,SAAU8B,EAAKqG,QAAYrG,EAAK8G,UAAahI,GAASkB,EAAM1G,EAAaO,cAAeiF,GAASkB,EAAM1G,EAAaG,cAElLyG,EAASH,GAAaC,EAAM,kBAAkBE,OAE3CgG,GACDe,GAAUC,WAAWlH,GAAM,EAAMA,EAAKyB,aAGxCzB,EAAKmF,WAAY,EACjB9I,IAEAY,EAAW+C,EAAME,EAAQgG,EAAQC,EAAOC,GApBZ,CAqB7B,EAEIjJ,EAAcwF,IAAS,WAC1BrJ,EAAamB,SAAW,EACxBkC,GACD,IASIU,EAAS,WACT9B,IACAnC,EAAK6J,MAAQxH,EAAU,IACzB4C,GAAWhB,EAAQ,MAKpB9B,GAAc,EAEdjC,EAAamB,SAAW,EAExBkC,IAEAwB,EAAiB,SAAUf,GAA0B,IACtD,EAEO,CACN+J,EAAG,WACF1L,EAAUrC,EAAK6J,MAEf5J,EAAU6H,SAAW/H,EAAS4B,uBAAuBzB,EAAaG,WAClE6B,EAAenC,EAAS4B,uBAAuBzB,EAAaG,UAAY,IAAMH,EAAaM,cAE3FuE,EAAiB,SAAUxB,GAAwB,GAEnDwB,EAAiB,SAAUxB,GAAwB,GAEnDwB,EAAiB,YAAY,SAAUkF,GACtC,GAAIA,EAAE+D,UAAW,CAChB,IAAIC,EAAkBlO,EAASmO,iBAAiB,IAAMhO,EAAaK,cAE/D0N,EAAgBhF,QAAUgF,EAAgB1I,SAC7CL,IAAsB,WACrB+I,EAAgB1I,SAAS,SAAU4I,GAC9BA,EAAIT,UACP5J,EAAcqK,EAEhB,GACD,GAEF,CACD,IAEGvO,EAAOwO,iBACT,IAAIA,iBAAkB7K,GAAyB8K,QAAS5J,EAAS,CAAC6J,WAAW,EAAMC,SAAS,EAAMC,YAAY,KAE9G/J,EAAQI,GAAmB,kBAAmBtB,GAAwB,GACtEkB,EAAQI,GAAmB,kBAAmBtB,GAAwB,GACtEkL,YAAYlL,EAAwB,MAGrCwB,EAAiB,aAAcxB,GAAwB,GAGvD,CAAC,QAAS,YAAa,QAAS,OAAQ,gBAAiB,gBAAgBgC,SAAQ,SAASsB,GACzF9G,EAAS8E,GAAmBgC,EAAMtD,GAAwB,EAC3D,IAEI,QAAQuC,KAAK/F,EAAS2O,YACzBzK,KAEAc,EAAiB,OAAQd,GACzBlE,EAAS8E,GAAmB,mBAAoBtB,GAChD0B,GAAWhB,EAAQ,MAGjBhE,EAAU6H,SAASmB,QACrB3F,IACAkF,GAAIO,YAEJxF,GAEF,EACAoL,WAAYpL,EACZqL,OAAQ9K,EACR+K,MAnFG7K,EAA2B,WACF,GAAzB9D,EAAamB,WACfnB,EAAamB,SAAW,GAEzB0C,GACD,IAmFG8J,IAGC9L,EAAcoH,IAAM,SAASvC,EAAMuB,EAAQlB,EAAOmB,GACrD,IAAI0G,EAASzD,EAAG0D,EAMhB,GALAnI,EAAK0B,gBAAkBF,EACvBA,GAAS,KAETxB,EAAKZ,aAAa,QAASoC,GAExBhD,GAAWU,KAAKqC,EAAOkF,UAAY,IAErC,IAAIhC,EAAI,EAAG0D,GADXD,EAAU3G,EAAOqF,qBAAqB,WACbvE,OAAQoC,EAAI0D,EAAK1D,IACzCyD,EAAQzD,GAAGrF,aAAa,QAASoC,GAI/BnB,EAAMH,OAAOkI,UAChB1H,GAAeV,EAAMK,EAAMH,OAE7B,IAOI9E,EAAiB,SAAU4E,EAAMoI,EAAU5G,GAC9C,IAAInB,EACAkB,EAASvB,EAAK2B,WAEfJ,IACFC,EAAQF,GAAStB,EAAMuB,EAAQC,IAC/BnB,EAAQN,GAAaC,EAAM,kBAAmB,CAACwB,MAAOA,EAAO4G,WAAYA,KAE/D5B,mBACThF,EAAQnB,EAAMH,OAAOsB,QAETA,IAAUxB,EAAK0B,iBAC1BvG,EAAY6E,EAAMuB,EAAQlB,EAAOmB,GAIrC,EAgBO,CACN2F,EAAG,WACFjM,EAAiB/B,EAAS4B,uBAAuBzB,EAAaQ,gBAC9DqE,EAAiB,SAAU9C,EAC5B,EACA0M,WAPG1M,EAA+BsH,IAZT,WACzB,IAAI8B,EACA0D,EAAMjN,EAAemH,OACzB,GAAG8F,EAGF,IAFA1D,EAAI,EAEEA,EAAI0D,EAAK1D,IACdrJ,EAAeF,EAAeuJ,GAGjC,IAUCyC,WAAY9L,IAIVd,GAAO,YACNA,GAAKmK,GAAKtL,EAAS4B,yBACtBT,GAAKmK,GAAI,EACTwC,GAAUE,IACVjE,GAAOiE,IAET,EAyBA,OAvBA9I,IAAW,WACP/E,EAAagB,MACfA,IAEF,IAEAjB,EAAY,CAIX2B,IAAK1B,EACL2N,UAAWA,GACX/D,OAAQA,GACR5I,KAAMA,GACN+N,GAAI3H,GACJ4H,GAAInJ,GACJoJ,GAAIjJ,GACJkJ,GAAI1J,GACJ2J,KAAM1I,GACN2I,GAAIpH,GACJM,IAAKA,GAIP,CA3yBiB3I,CAAQD,EAAQA,EAAOG,SAAUC,MACjDJ,EAAOE,UAAYA,EACayP,EAAOC,UACtCD,EAAOC,QAAU1P,EAEnB,CANA,CAMmB,oBAAVF,OACHA,OAAS,CAAC,E,wBCPhB,yBACKA,IAMJC,EAAUA,EAAQmF,KAAK,KAAMpF,EAAQA,EAAOG,UAEZwP,EAAOC,QACtC3P,EAAQ,EAAQ,SAEhB,EAAO,CAAC,eAAqB,0BAAP,EAAF,GAAS,gCAM/B,CAlBA,CAkBmB,oBAAVD,OACRA,OAAS,GAAG,SAASA,EAAQG,EAAUD,EAAW2P,GAClD,aACA,IAAIC,EACA1H,EAAQjI,EAAS4P,cAAc,KAAK3H,MACpC4H,EAAa,cAAe5H,EAE5B6H,EAAY,6CACZC,EAAiB,uDACjBC,EAAW,6EACXC,EAAiB,UACjBC,EAAmB,CACtBC,OAAQ,SACR,UAAW,UAyIZ,IAAIN,IAhJkBA,KAAc,mBAAoB5H,GAgJrB,CAClC,IAAImI,EAAS,SAASlG,GACrB,GAAGA,EAAEnD,OAAOK,UAAYrH,EAAxB,CAEA,IAAIsQ,EAAUnG,EAAEC,OACZmG,EA3IN,SAAmBD,GAClB,IACIE,GADOrI,iBAAiBmI,EAAS,OAAS,CAAC,GAC7BG,YAAc,GAC5BC,EAAYF,EAAQG,MAAMZ,IAAc,GACxCa,EAAiBF,GAAaF,EAAQG,MAAMX,IAAmB,GAMnE,OAJGY,IACFA,EAAiBA,EAAe,IAG1B,CACNC,IAAKH,GAAaA,EAAU,IAAM,GAClCI,SAAUX,EAAiBS,IAAmBA,GAAkB,SAElE,CA6HYG,CAAUT,GAEpB,SAAGC,EAAIM,KAASf,GAA+B,UAAhBS,EAAIO,WAvGrC,SAAiBR,EAASU,GACzB,IAAIC,EAAoBC,EAAUC,EAAcC,EAC5CC,EAAerR,EAAU8B,IAEzBwP,EAAW,WACd,IAAIxJ,EAAMwI,EAAQiB,YAAcjB,EAAQxI,IAErCA,GAAOoJ,IAAapJ,IACtBoJ,EAAWpJ,EACXsJ,EAAkBI,gBAAkB,QAAUtB,EAAelK,KAAK8B,GAAO2J,KAAKC,UAAU5J,GAAOA,GAAQ,IAEnGmJ,IACHA,GAAqB,EACrBjR,EAAUqP,GAAG8B,EAAcE,EAAa5Q,cACxCT,EAAUoP,GAAG+B,EAAcE,EAAa7Q,cAG3C,EACImR,EAAgB,WACnB3R,EAAU0I,IAAI4I,EACf,EAEAhB,EAAQsB,oBAAsBZ,EAAOH,IAErCP,EAAQrL,iBAAiB,aAAc0M,GAAe,GACtDrB,EAAQrL,iBAAiB,OAAQ0M,GAAe,GAEhD3R,EAAU0I,KAAI,WAEb,IAAImJ,EAAcvB,EACdwB,EAAYxB,EAAQ7H,WAEe,WAApCqJ,EAAUvE,SAASwE,gBACrBF,EAAcC,EACdA,EAAYA,EAAUrJ,YA5CzB,SAAyB6H,GACxB,IAAI0B,EAAO1B,EAAQ2B,uBAEfD,GAAQhS,EAAUsP,GAAG0C,EAAMpC,KAC9BoC,EAAKvJ,WAAWyJ,YAAYF,GAC5B1B,EAAQpI,MAAM4I,SAAWkB,EAAKrF,aAAa,kBAAoB,GAC/D2D,EAAQpI,MAAMiK,WAAaH,EAAKrF,aAAa,oBAAsB,GAErE,CAuCEyF,CAAgBP,GAEXjC,GA7DP,WACC,IAAIA,EAAJ,CAIA,IAAIuB,EAAelR,EAAS4P,cAAc,SAE1CD,EAAoB5P,EAAU8B,IAAIuQ,gBAAkB,0BAEpDpS,EAASqS,cAAc,QAAQC,YAAYpB,EAN3C,CAOD,CAoDGqB,GAGDrB,EAAeb,EAAQmC,WAAU,GACjCrB,EAAoBD,EAAajJ,MAEjCiJ,EAAalM,iBAAiB,QAAQ,WACrC,IAAIyN,EAASvB,EAAaI,YAAcJ,EAAarJ,IAElD4K,GAAUA,GAAUzC,IACtBkB,EAAarJ,IAAMmI,EACnBkB,EAAahE,OAAS,GAExB,IAEAnN,EAAUqP,GAAG8B,EAAcE,EAAa7Q,aACxCR,EAAUqP,GAAG8B,EAAcE,EAAa9Q,WACxCP,EAAUqP,GAAG8B,EAAcE,EAAazQ,gBACxCZ,EAAUoP,GAAG+B,EAAcE,EAAa5Q,cACxCT,EAAUoP,GAAG+B,EAAcvB,GAE3B,CAAC,kBAAmB,wBAAyB,6BAC5CyB,EAAarQ,WAAYqQ,EAAatQ,SAAS0E,SAAQ,SAASkN,GAChExB,EAAayB,gBAAgBD,EAC9B,IAEAxB,EAAarJ,IAAMmI,EACnBkB,EAAahE,OAAS,GAEtBiE,EAAkByB,iBAAmB,YACrCzB,EAAkB0B,mBAAqB9B,EAAOF,SAC9CM,EAAkB2B,eAAiB/B,EAAOH,IAE1CM,EAAajL,aAAa,gBAAiB2L,EAAY3J,MAAM4I,UAC7DK,EAAajL,aAAa,kBAAmB2L,EAAY3J,MAAMiK,YAE/DN,EAAY3J,MAAMiK,WAAa,SAC/BN,EAAY3J,MAAM4I,SAAW,WAE7BR,EAAQpK,aAAa,kBAAmB8K,EAAOH,KAC/CP,EAAQpK,aAAa,wBAAyB,QAC9CoK,EAAQpK,aAAa,6BAA8B,IACnDoK,EAAQ0C,4BAA8B7B,EAEtCW,EAAUmB,aAAa9B,EAAcU,GAElCvB,EAAQsB,4BACHtB,EAAQsB,oBAGbtB,EAAQ1C,UACV0D,GAEF,GACD,CAUG4B,CAAQ5C,EAASC,GACV,GAPkC,CAW3C,EAEAzQ,EAAOmF,iBAAiB,mBAAmB,SAASkF,GACnD,GAAGA,EAAEnD,OAAOK,UAAYrH,EAAxB,CACA,IAAIsQ,EAAUnG,EAAEC,OAE0C,MAAtDkG,EAAQ3D,aAAa,+BAA0C2D,EAAQ0C,6BACtE3C,EAAOlG,IACVnK,EAAU0I,KAAI,WACb4H,EAAQsC,gBAAgB,6BACzB,GAPwC,CAU3C,IACA9S,EAAOmF,iBAAiB,iBAAkBoL,GAAQ,GAE/CV,GAAgBA,EAAa3I,QAC/BqJ,EAAOV,EAET,CACD,G,wBCzMA,yBACK7P,IAMJC,EAAUA,EAAQmF,KAAK,KAAMpF,EAAQA,EAAOG,UAEZwP,EAAOC,QACtC3P,EAAQ,EAAQ,SAEhB,EAAO,CAAC,eAAqB,0BAAP,EAAF,GAAS,gCAM/B,CAlBA,CAkBmB,oBAAVD,OACRA,OAAS,GAAG,SAASA,EAAQG,EAAUD,GACvC,aAEA,GAAIF,EAAOmF,iBAAX,CAEA,IAAIkO,EAAiB,6BACjBpD,EAAY,mDACZqD,EAAe,2DACf9N,EAAa,aACbxD,EAAM9B,EAAU8B,IAMhBuR,EAAY,CAEfC,UAAW,SAAShD,EAASiD,GAC5B,IAAIlL,EAASiI,EACT7H,EAAa6H,EAAQ7H,WAoBzB,OAlBK8K,GAA0B,QAAbA,IAAwB9K,IAAcnD,EAAWU,KAAKyC,EAAW8E,UAAY,MAC9F9E,EAAaA,EAAWA,YAGT,QAAb8K,IAEDlL,EADe,QAAbkL,EACOjD,EAAQ2B,uBACRsB,IAAc9K,EAAW+K,SAAW1T,EAAO2T,UAC1ChL,EAAW+K,QACnB/K,EAAW+K,QAAQD,GACnBE,OAAOhL,GAAY+K,QAAQD,GAAW,KAI/B9K,GAIJJ,CACR,EAEAqL,OAAQ,SAASpD,GAChB,IAAIqD,EAAUC,EACVC,EAhCG1L,iBAgCUmI,EAhCa,OAAS,CAAC,EAiCpCE,EAAUqD,EAAIrD,SAAWqD,EAAIpD,WAC7BF,EAAM,CACTM,IAAKP,EAAQsB,qBAAuBtB,EAAQ3D,aAAa,oBAqB1D,OAlBI4D,EAAIM,KAAOL,IAAYmD,EAAWnD,EAAQG,MAAMZ,MACnDQ,EAAIM,IAAM8C,EAAS,IAGjBpD,EAAIM,OACN+C,EAAYtD,EAAQwD,2BAA6BxD,EAAQ3D,aAAa,2BAErD6D,IAAYmD,EAAWnD,EAAQG,MAAMyC,MACrDQ,EAAYD,EAAS,IAGtBpD,EAAIlI,OAASgL,EAAUC,UAAUhD,EAASsD,IAI1CrD,EAAIM,IAAMgD,EAAInD,UAGRH,CACR,EAEAwD,cAAe,SAASzD,GACvB,IAAI/E,EAAG4B,EAAQ6G,EAAOC,EAAOtD,EAAOrI,EAAO4L,EACvC7L,EAASiI,EAAQ7H,WACjBT,EAAWK,GAAU/C,EAAWU,KAAKqC,EAAOkF,UAAY,IAC1DlF,EAAO+F,iBAAiB,eACxB,CAACkC,GAGH,IAAI/E,EAAI,EAAGA,EAAIvD,EAASmB,OAAQoC,IAM/B,GAJA4B,GADAmD,EAAUtI,EAASuD,IACFoB,aAAa7K,EAAId,aAAesP,EAAQ3D,aAAa,WAAa2D,EAAQ3D,aAAa,kBAAoB2D,EAAQ3D,aAAa,kBAAoB,GACrKqH,EAAQ1D,EAAQ6D,UAAY7D,EAAQ3D,aAAa,SACjDqH,EAAQlS,EAAIX,YAAYmP,EAAQ3D,aAAa,eAAiBqH,IAAUA,EAErE7G,KAAY6G,IAAUlU,EAAOsU,YAAcA,WAAWJ,IAAU,CAAC,GAAGK,SAAU,EAChFJ,EAAQK,WAAWhE,EAAQ3D,aAAa,yBAGvCgE,EAAQxD,EAAOwD,MAAMwC,IAGL,KAAZxC,EAAM,IACRrI,EAAQqI,EAAM,GACduD,EAASvD,EAAM,KAEfrI,EAAQqI,EAAM,GACduD,EAASvD,EAAM,KAGhBrI,EAAQgI,EAAQ3D,aAAa,SAC7BuH,EAAS5D,EAAQ3D,aAAa,WAG/BsH,EAAQ3L,EAAQ4L,GAGjB,KACD,CAGD,OAAOD,CACR,EAEAM,cAAe,SAASjE,EAAShI,GAChC,IAAIkM,EAAsBC,EAAYC,EAClCC,EAAS9L,KAAK6K,OAAOpD,GACrBO,EAAM8D,EAAO9D,IACb+D,EAAUD,EAAOtM,OAErB,MAAU,SAAPwI,IAA2B,WAAPA,GAA2B,SAAPA,KAAqB4D,EAAa5L,KAAKkL,cAAczD,KAI7FsE,EACFtM,EAAQsM,EAAQvI,YAEhBuI,EAAUtE,EAGXoE,EAAWpM,EAED,SAAPuI,EACF6D,EAAWpM,GAIPkM,EAAgBlM,EAFXsM,EAAQxI,gBAE+B,SAAPyE,GAAkB2D,EAAeC,GAAuB,WAAP5D,GAAoB2D,EAAeC,KAC5HC,EAAWpM,GAASmM,EAAaD,IAI5BE,GArBCpM,CAsBT,GAGDtI,EAAUqT,UAAYA,EAEtBpT,EAASgF,iBAAiB,mBAAmB,SAASkF,GACrD,IAAGA,EAAEmD,kBAAoBnD,EAAEnD,OAAOK,UAAYrH,EAA9C,CAEA,IAAIsQ,EAAUnG,EAAEC,OAChBD,EAAEnD,OAAOsB,MAAQ+K,EAAUkB,cAAcjE,EAASnG,EAAEnD,OAAOsB,MAHK,CAIjE,GAtJoC,CAuJrC,G,wBC7KA,yBACKxI,IAMJC,EAAUA,EAAQmF,KAAK,KAAMpF,EAAQA,EAAOG,UAEZwP,EAAOC,QACtC3P,EAAQ,EAAQ,SAEhB,EAAO,CAAC,eAAqB,0BAAP,EAAF,GAAS,gCAM/B,CAlBA,CAkBmB,oBAAVD,OACRA,OAAS,GAAG,SAASA,EAAQG,EAAUD,GAEvC,aACA,IAAI2H,EAMCwL,EACA1N,EAgHCoP,EACAC,EACAC,EACAC,EAtCDC,EAGAC,EA+BAC,EAgCAC,EAqBAC,EAuCAC,EAYAC,EAoCAC,EAmBCC,EApRFrV,EAAeJ,EAAU8B,IACzBuM,EAAMpO,EAAS4P,cAAc,OAC7B6F,EAAiB,UAAWrH,GAAS,WAAYA,EACjDsH,EAAW,WACXC,GACCzC,EAAiB,6BACjB1N,EAAUC,MAAMC,UAAUF,QAEvB,WACN,IAAI4I,EAAMpO,EAAS4P,cAAc,OAC7BgG,EAAqB,SAAS/I,GACjC,IAAImH,EAAOtD,EACPxD,EAASL,EAAOH,aAAavM,EAAaY,YAC3CmM,IACEwD,EAAQxD,EAAOwD,MAAMwC,OAEvBc,EADc,KAAZtD,EAAM,GACAA,EAAM,GAAKA,EAAM,GAEjBA,EAAM,GAAKA,EAAM,KAIzB7D,EAAO5G,aAAa,mBAAoB+N,GAEzCnH,EAAO5G,aAAa9F,EAAaY,WAAYmM,EAAO7G,QAAQqP,EAAU,KAGzE,EACIG,EAAU,SAAS3L,GACtB,GAAGA,EAAEnD,OAAOK,UAAYrH,EAAxB,CACA,IAAI+V,EAAU5L,EAAEC,OAAO3B,WAEpBsN,GAA+B,WAApBA,EAAQxI,UACrB9H,EAAQgI,KAAKsI,EAAQrI,qBAAqB,UAAWmI,GAEtDA,EAAmB1L,EAAEC,OANqB,CAO3C,EAEIpE,EAAO,WACLqI,EAAIkD,YACRtR,EAAS+V,oBAAoB,mBAAoBF,EAEnD,EAEA7V,EAASgF,iBAAiB,mBAAoB6Q,GAE9CzH,EAAIlK,OAAS6B,EACbqI,EAAI4H,QAAUjQ,EAEdqI,EAAIlB,OAAS,gBAEVkB,EAAIT,UACN5H,GAEF,GAGG5F,EAAa8V,eAChB9V,EAAa8V,aAAe,SAASC,GACpC,OAAQA,CACT,GAGGrW,EAAOgF,oBAAsB4Q,GAC5B1V,EAAUoW,mBAAqBnW,EAASoW,sBAC3CrW,EAAUoW,mBAAoB,EAC9BR,KAKC9V,EAAO8H,aAAexH,EAAayH,KAEtCzH,EAAayH,GAAK,SAASyO,GAC1B,IAAI/K,EAAG0D,EACP,IAAGnP,EAAO8H,YACV,IAAI2D,EAAI,EAAG0D,EAAMqH,EAAQtO,SAASmB,OAAQoC,EAAI0D,EAAK1D,IAClD5D,EAAS2O,EAAQtO,SAASuD,GAE5B,EAIK0J,EAAgB,SAAUsB,EAAGC,GAChC,OAAOD,EAAEE,EAAID,EAAEC,CAChB,EACIvB,EAAc,sBAiCbJ,EAAiB,8BACjBC,EAAc,KACdC,EAAe,SAASrE,EAAO+F,EAAWC,EAAKC,GAClD/B,EAAW9L,KAAK,CACf8N,EAAGH,EACHI,EAAGH,EACHF,EAAiB,EAAdG,GAEL,EAsBGxB,EAAgB,WAIQ,IACtB2B,EACAC,EACAvS,EANF2Q,EAAchU,OAEjBgU,EAAchU,MAAO,EACrB6D,iBAAiB,UAEZ+R,EAAkB/W,EAAS4B,uBAAuB,kBAClD4C,EAAM,WACT,IAAI8G,EAAG0D,EACP,IAAI1D,EAAI,EAAG0D,EAAM+H,EAAgB7N,OAAQoC,EAAI0D,EAAK1D,IACjD5D,EAASqP,EAAgBzL,GAE3B,EAEO,WACNiC,aAAauJ,GACbA,EAAQ5R,WAAWV,EAAK,GACzB,IAEF,EAEI4Q,EAAe,SAASvO,EAAMmQ,GACjC,IAAIC,EACAC,EAASrQ,EAAK6F,aAAa,WAAa7F,EAAK6F,aAAavM,EAAaY,aAEvEmW,GAAUF,IACbE,EAAUrQ,EAAKsQ,cAEdtQ,EAAKsQ,cAAcC,KADlBvQ,EAAK6F,aAAavM,EAAaW,UAAY+F,EAAK6F,aAAa,QAK5D7F,EAAKsQ,eAAiBtQ,EAAKsQ,cAAcC,MAAQF,IAEpDD,EAAY/B,EAAcgC,GAAU,IACjCF,GAAWnQ,EAAK2B,aAClByO,EAAU9J,UAAsD,WAA1CtG,EAAK2B,WAAW8E,SAASwE,cAE5CmF,EAAU9J,WACTtN,EAAOsU,aACTpU,EAAUoP,GAAGtI,EAAM,kBACnBsO,MAKH8B,EAAUG,KAAOF,EACjBG,OAAOC,eAAezQ,EAAM,gBAAiB,CAC5C0Q,MAAON,EACPO,UAAU,IAGb,EAQInC,EAAe,SAAStB,GAC3B,OAAGlU,EAAOsU,YACTkB,EAAe,SAAStB,GACvB,OAAQA,IAAUI,WAAWJ,IAAU,CAAC,GAAGK,OAC5C,EAKMiB,EAAatB,KAHXA,CAIV,EAEIuB,EAAe,SAASzO,GAC3B,IAAIkI,EAASzD,EAAG0D,EAAYnC,EAAQ4K,EAAO5P,EAAKQ,EAMhD,GAHA+M,EADAvI,EAAShG,GACY,IACrB4Q,EAAQ5K,EAAOsK,eAENhK,UACR,IAAI7B,EAAI,EAA6D0D,GAA1DD,EAAUlI,EAAK2B,WAAWiF,qBAAqB,WAAyBvE,OAAQoC,EAAI0D,EAAK1D,IACnG,GAAInL,EAAa8V,aAAalH,EAAQzD,GAAGoB,aAAa,QAAS7F,IAASwO,EAActG,EAAQzD,GAAGoB,aAAa,UAAW,CACxHG,EAASkC,EAAQzD,GACjB8J,EAAavI,GACb4K,EAAQ5K,EAAOsK,cACf,KACD,CAmBF,OAfGM,EAAMvO,OAAS,GACjBb,EAAQwE,EAAOH,aAAa,UAAY,GACxCrE,EAAQ4M,EAAYlP,KAAKsC,IAAUqP,SAASrP,EAAO,KAAOtI,EAAUwP,GAAG1I,EAAMA,EAAK2B,YAClFiP,EAAME,EAvCG,SAAS9Q,GACnB,IAAI+Q,EAAM/X,EAAOgY,kBAAoB,EACjCC,EAAU/X,EAAUgY,MAAQhY,EAAUgY,KAAKlR,GAC/C,OAAOmR,KAAKC,IAAIH,GAAWF,EAAK,IAAKA,EACtC,CAmCYG,CAAKlR,IACX4Q,EAAM5P,MAAQ4P,EAAMjB,GAAKiB,EAAMjB,EAAInO,GACtCoP,EAAMjB,EAAInO,EACVR,EA9JmB,SAAU4P,GAM/B,IALA,IAAIS,EAAgBC,EAChBnJ,EAAMyI,EAAMvO,OACZuN,EAAYgB,EAAMzI,EAAK,GACvB1D,EAAI,EAEDA,EAAI0D,EAAI1D,IAId,IAHAmL,EAAYgB,EAAMnM,IACRqM,EAAIlB,EAAUD,EAAIiB,EAAMjB,EAE/BC,EAAUkB,GAAKF,EAAME,EAAE,EACrBlB,EAAU2B,SAAWF,EAAiBT,EAAMnM,EAAI,KACnD4M,EAAeP,EAAIF,EAAME,EAAK,IAAOK,KAAKK,IAAIZ,EAAME,EAAG,OAEvDQ,EAAcH,KAAKK,IAAIH,EAAeP,EAAI,GAAK,KAE5CO,EAAeE,SACjBF,EAAeP,GAAK,IAAOQ,GAGzBD,EAAeP,GAAMlB,EAAUkB,EAAIF,EAAME,GAAKQ,EAAeV,EAAME,IACrElB,EAAYyB,IAGd,KACD,CAED,OAAOzB,CACR,CAkIS6B,CAAgBb,EAAMc,KAAKvD,IACjCyC,EAAM5P,IAAMA,GAEZA,EAAM4P,EAAM5P,KAGbA,EAAM4P,EAAM,GAGN5P,CACR,GAEI0N,EAAI,SAAS1O,GAChB,IAAG4O,IAAiB5O,EAAK2B,YAAwD,WAA1C3B,EAAK2B,WAAW8E,SAASwE,cAAhE,CACA,IAAI2E,EAAYnB,EAAazO,GAE1B4P,GAAaA,EAAUI,GAAKhQ,EAAKsQ,cAAcqB,KAAO/B,EAAUI,IAClEhQ,EAAKsQ,cAAcqB,IAAM/B,EAAUI,EACnCJ,EAAU2B,QAAS,EACnBvR,EAAKZ,aAAa9F,EAAaW,QAAS2V,EAAUI,GAClDhQ,EAAKZ,aAAa,MAAOwQ,EAAUI,GAP+D,CASpG,GAEE4B,MAxJEvD,EAYI,SAASwD,GAgBf,OAfA9D,EAAa,IACb8D,EAAQA,EAAMxS,QAEZG,QAAQqP,EAAU,IAClBrP,QAAQwO,EAAgBE,GAGtBH,EAAW1L,SAAUwP,GAAU5D,EAAY/O,KAAK2S,IACnD9D,EAAW9L,KAAK,CACf8N,EAAG8B,EACH7B,EAAG6B,EACHlC,EAAG,KAIE5B,CACR,EAhEFlN,EA6LQ6N,EAGLpV,EAAaI,aAAeJ,EAAaK,eAEtCgV,EAAO,GACX,CAAC,4BAA6B,gCAAgChQ,SAAQ,SAASmT,GAC9EnD,EAAK1M,KAAK6P,EAAMxY,EAAaI,aAC7BiV,EAAK1M,KAAK6P,EAAMxY,EAAaK,aAC9B,IACAL,EAAayH,GAAG,CACfG,SAAU/H,EAASmO,iBAAiBqH,EAAKoD,KAAK,UAKlD,G","file":"4093.204d506819e00077373c.js","sourcesContent":["(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, \n/**\n * import(\"./types/global\")\n * @typedef { import(\"./types/lazysizes-config\").LazySizesConfigPartial } LazySizesConfigPartial\n */\nfunction l(window, document, Date) { // Pass in the window Date function also for SSR because the Date class can be lost\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes,\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tlazySizesCfg;\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tfastLoadedClass: 'ls-is-cached',\n\t\t\tiframeLoadMode: 0,\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesCfg)){\n\t\t\t\tlazySizesCfg[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tif (!document || !document.getElementsByClassName) {\n\t\treturn {\n\t\t\tinit: function () {},\n\t\t\t/**\n\t\t\t * @type { LazySizesConfigPartial }\n\t\t\t */\n\t\t\tcfg: lazySizesCfg,\n\t\t\t/**\n\t\t\t * @type { true }\n\t\t\t */\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\t/**\n\t * Update to bind to window because 'this' becomes null during SSR\n\t * builds.\n\t */\n\tvar addEventListener = window[_addEventListener].bind(window);\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\t/**\n\t * @param elem { Element }\n\t * @param name { string }\n\t * @param detail { any }\n\t * @param noBubbles { boolean }\n\t * @param noCancelable { boolean }\n\t * @returns { CustomEvent }\n\t */\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\t/**\n\t *\n\t * @param elem { Element }\n\t * @param parent { Element }\n\t * @param [width] {number}\n\t * @returns {number}\n\t */\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesCfg.throttleDelay;\n\t\tvar rICTimeout = lazySizesCfg.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\tvar loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode;\n\n\t\t\t// loadMode can be also a string!\n\t\t\tif (loadMode == 0) {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} else if (loadMode == 1) {\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.fastLoadedClass);\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\t/**\n\t\t *\n\t\t * @param elem { Element }\n\t\t */\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\t/**\n\t\t *\n\t\t * @param elem {Element}\n\t\t * @param dataAttr\n\t\t * @param [width] { number }\n\t\t */\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","(function(window, factory) {\n\tif(!window) {return;}\n\tvar globalInstall = function(initialEvent){\n\t\tfactory(window.lazySizes, initialEvent);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(typeof window != 'undefined' ?\n\twindow : 0, function(window, document, lazySizes, initialEvent) {\n\t'use strict';\n\tvar cloneElementClass;\n\tvar style = document.createElement('a').style;\n\tvar fitSupport = 'objectFit' in style;\n\tvar positionSupport = fitSupport && 'objectPosition' in style;\n\tvar regCssFit = /object-fit[\"']*\\s*:\\s*[\"']*(contain|cover)/;\n\tvar regCssPosition = /object-position[\"']*\\s*:\\s*[\"']*(.+?)(?=($|,|'|\"|;))/;\n\tvar blankSrc = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n\tvar regBgUrlEscape = /\\(|\\)|'/;\n\tvar positionDefaults = {\n\t\tcenter: 'center',\n\t\t'50% 50%': 'center',\n\t};\n\n\tfunction getObject(element){\n\t\tvar css = (getComputedStyle(element, null) || {});\n\t\tvar content = css.fontFamily || '';\n\t\tvar objectFit = content.match(regCssFit) || '';\n\t\tvar objectPosition = objectFit && content.match(regCssPosition) || '';\n\n\t\tif(objectPosition){\n\t\t\tobjectPosition = objectPosition[1];\n\t\t}\n\n\t\treturn {\n\t\t\tfit: objectFit && objectFit[1] || '',\n\t\t\tposition: positionDefaults[objectPosition] || objectPosition || 'center',\n\t\t};\n\t}\n\n\tfunction generateStyleClass() {\n\t\tif (cloneElementClass) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar styleElement = document.createElement('style');\n\n\t\tcloneElementClass = lazySizes.cfg.objectFitClass || 'lazysizes-display-clone';\n\n\t\tdocument.querySelector('head').appendChild(styleElement);\n\t}\n\n\tfunction removePrevClone(element) {\n\t\tvar prev = element.previousElementSibling;\n\n\t\tif (prev && lazySizes.hC(prev, cloneElementClass)) {\n\t\t\tprev.parentNode.removeChild(prev);\n\t\t\telement.style.position = prev.getAttribute('data-position') || '';\n\t\t\telement.style.visibility = prev.getAttribute('data-visibility') || '';\n\t\t}\n\t}\n\n\tfunction initFix(element, config){\n\t\tvar switchClassesAdded, addedSrc, styleElement, styleElementStyle;\n\t\tvar lazysizesCfg = lazySizes.cfg;\n\n\t\tvar onChange = function(){\n\t\t\tvar src = element.currentSrc || element.src;\n\n\t\t\tif(src && addedSrc !== src){\n\t\t\t\taddedSrc = src;\n\t\t\t\tstyleElementStyle.backgroundImage = 'url(' + (regBgUrlEscape.test(src) ? JSON.stringify(src) : src ) + ')';\n\n\t\t\t\tif(!switchClassesAdded){\n\t\t\t\t\tswitchClassesAdded = true;\n\t\t\t\t\tlazySizes.rC(styleElement, lazysizesCfg.loadingClass);\n\t\t\t\t\tlazySizes.aC(styleElement, lazysizesCfg.loadedClass);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tvar rafedOnChange = function(){\n\t\t\tlazySizes.rAF(onChange);\n\t\t};\n\n\t\telement._lazysizesParentFit = config.fit;\n\n\t\telement.addEventListener('lazyloaded', rafedOnChange, true);\n\t\telement.addEventListener('load', rafedOnChange, true);\n\n\t\tlazySizes.rAF(function(){\n\n\t\t\tvar hideElement = element;\n\t\t\tvar container = element.parentNode;\n\n\t\t\tif(container.nodeName.toUpperCase() == 'PICTURE'){\n\t\t\t\thideElement = container;\n\t\t\t\tcontainer = container.parentNode;\n\t\t\t}\n\n\t\t\tremovePrevClone(hideElement);\n\n\t\t\tif (!cloneElementClass) {\n\t\t\t\tgenerateStyleClass();\n\t\t\t}\n\n\t\t\tstyleElement = element.cloneNode(false);\n\t\t\tstyleElementStyle = styleElement.style;\n\n\t\t\tstyleElement.addEventListener('load', function(){\n\t\t\t\tvar curSrc = styleElement.currentSrc || styleElement.src;\n\n\t\t\t\tif(curSrc && curSrc != blankSrc){\n\t\t\t\t\tstyleElement.src = blankSrc;\n\t\t\t\t\tstyleElement.srcset = '';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tlazySizes.rC(styleElement, lazysizesCfg.loadedClass);\n\t\t\tlazySizes.rC(styleElement, lazysizesCfg.lazyClass);\n\t\t\tlazySizes.rC(styleElement, lazysizesCfg.autosizesClass);\n\t\t\tlazySizes.aC(styleElement, lazysizesCfg.loadingClass);\n\t\t\tlazySizes.aC(styleElement, cloneElementClass);\n\n\t\t\t['data-parent-fit', 'data-parent-container', 'data-object-fit-polyfilled',\n\t\t\t\tlazysizesCfg.srcsetAttr, lazysizesCfg.srcAttr].forEach(function(attr) {\n\t\t\t\tstyleElement.removeAttribute(attr);\n\t\t\t});\n\n\t\t\tstyleElement.src = blankSrc;\n\t\t\tstyleElement.srcset = '';\n\n\t\t\tstyleElementStyle.backgroundRepeat = 'no-repeat';\n\t\t\tstyleElementStyle.backgroundPosition = config.position;\n\t\t\tstyleElementStyle.backgroundSize = config.fit;\n\n\t\t\tstyleElement.setAttribute('data-position', hideElement.style.position);\n\t\t\tstyleElement.setAttribute('data-visibility', hideElement.style.visibility);\n\n\t\t\thideElement.style.visibility = 'hidden';\n\t\t\thideElement.style.position = 'absolute';\n\n\t\t\telement.setAttribute('data-parent-fit', config.fit);\n\t\t\telement.setAttribute('data-parent-container', 'prev');\n\t\t\telement.setAttribute('data-object-fit-polyfilled', '');\n\t\t\telement._objectFitPolyfilledDisplay = styleElement;\n\n\t\t\tcontainer.insertBefore(styleElement, hideElement);\n\n\t\t\tif(element._lazysizesParentFit){\n\t\t\t\tdelete element._lazysizesParentFit;\n\t\t\t}\n\n\t\t\tif(element.complete){\n\t\t\t\tonChange();\n\t\t\t}\n\t\t});\n\t}\n\n\tif(!fitSupport || !positionSupport){\n\t\tvar onRead = function(e){\n\t\t\tif(e.detail.instance != lazySizes){return;}\n\n\t\t\tvar element = e.target;\n\t\t\tvar obj = getObject(element);\n\n\t\t\tif(obj.fit && (!fitSupport || (obj.position != 'center'))){\n\t\t\t\tinitFix(element, obj);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t};\n\n\t\twindow.addEventListener('lazybeforesizes', function(e) {\n\t\t\tif(e.detail.instance != lazySizes){return;}\n\t\t\tvar element = e.target;\n\n\t\t\tif (element.getAttribute('data-object-fit-polyfilled') != null && !element._objectFitPolyfilledDisplay) {\n\t\t\t\tif(!onRead(e)){\n\t\t\t\t\tlazySizes.rAF(function () {\n\t\t\t\t\t\telement.removeAttribute('data-object-fit-polyfilled');\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('lazyunveilread', onRead, true);\n\n\t\tif(initialEvent && initialEvent.detail){\n\t\t\tonRead(initialEvent);\n\t\t}\n\t}\n}));\n","(function(window, factory) {\n\tif(!window) {return;}\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(typeof window != 'undefined' ?\n\twindow : 0, function(window, document, lazySizes) {\n\t'use strict';\n\n\tif(!window.addEventListener){return;}\n\n\tvar regDescriptors = /\\s+(\\d+)(w|h)\\s+(\\d+)(w|h)/;\n\tvar regCssFit = /parent-fit[\"']*\\s*:\\s*[\"']*(contain|cover|width)/;\n\tvar regCssObject = /parent-container[\"']*\\s*:\\s*[\"']*(.+?)(?=(\\s|$|,|'|\"|;))/;\n\tvar regPicture = /^picture$/i;\n\tvar cfg = lazySizes.cfg;\n\n\tvar getCSS = function (elem){\n\t\treturn (getComputedStyle(elem, null) || {});\n\t};\n\n\tvar parentFit = {\n\n\t\tgetParent: function(element, parentSel){\n\t\t\tvar parent = element;\n\t\t\tvar parentNode = element.parentNode;\n\n\t\t\tif((!parentSel || parentSel == 'prev') && parentNode && regPicture.test(parentNode.nodeName || '')){\n\t\t\t\tparentNode = parentNode.parentNode;\n\t\t\t}\n\n\t\t\tif(parentSel != 'self'){\n\t\t\t\tif(parentSel == 'prev'){\n\t\t\t\t\tparent = element.previousElementSibling;\n\t\t\t\t} else if(parentSel && (parentNode.closest || window.jQuery)){\n\t\t\t\t\tparent = (parentNode.closest ?\n\t\t\t\t\t\t\tparentNode.closest(parentSel) :\n\t\t\t\t\t\t\tjQuery(parentNode).closest(parentSel)[0]) ||\n\t\t\t\t\t\tparentNode\n\t\t\t\t\t;\n\t\t\t\t} else {\n\t\t\t\t\tparent = parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn parent;\n\t\t},\n\n\t\tgetFit: function(element){\n\t\t\tvar tmpMatch, parentObj;\n\t\t\tvar css = getCSS(element);\n\t\t\tvar content = css.content || css.fontFamily;\n\t\t\tvar obj = {\n\t\t\t\tfit: element._lazysizesParentFit || element.getAttribute('data-parent-fit')\n\t\t\t};\n\n\t\t\tif(!obj.fit && content && (tmpMatch = content.match(regCssFit))){\n\t\t\t\tobj.fit = tmpMatch[1];\n\t\t\t}\n\n\t\t\tif(obj.fit){\n\t\t\t\tparentObj = element._lazysizesParentContainer || element.getAttribute('data-parent-container');\n\n\t\t\t\tif(!parentObj && content && (tmpMatch = content.match(regCssObject))){\n\t\t\t\t\tparentObj = tmpMatch[1];\n\t\t\t\t}\n\n\t\t\t\tobj.parent = parentFit.getParent(element, parentObj);\n\n\n\t\t\t} else {\n\t\t\t\tobj.fit = css.objectFit;\n\t\t\t}\n\n\t\t\treturn obj;\n\t\t},\n\n\t\tgetImageRatio: function(element){\n\t\t\tvar i, srcset, media, ratio, match, width, height;\n\t\t\tvar parent = element.parentNode;\n\t\t\tvar elements = parent && regPicture.test(parent.nodeName || '') ?\n\t\t\t\t\tparent.querySelectorAll('source, img') :\n\t\t\t\t\t[element]\n\t\t\t\t;\n\n\t\t\tfor(i = 0; i < elements.length; i++){\n\t\t\t\telement = elements[i];\n\t\t\t\tsrcset = element.getAttribute(cfg.srcsetAttr) || element.getAttribute('srcset') || element.getAttribute('data-pfsrcset') || element.getAttribute('data-risrcset') || '';\n\t\t\t\tmedia = element._lsMedia || element.getAttribute('media');\n\t\t\t\tmedia = cfg.customMedia[element.getAttribute('data-media') || media] || media;\n\n\t\t\t\tif(srcset && (!media || (window.matchMedia && matchMedia(media) || {}).matches )){\n\t\t\t\t\tratio = parseFloat(element.getAttribute('data-aspectratio'));\n\n\t\t\t\t\tif (!ratio) {\n\t\t\t\t\t\tmatch = srcset.match(regDescriptors);\n\n\t\t\t\t\t\tif (match) {\n\t\t\t\t\t\t\tif(match[2] == 'w'){\n\t\t\t\t\t\t\t\twidth = match[1];\n\t\t\t\t\t\t\t\theight = match[3];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twidth = match[3];\n\t\t\t\t\t\t\t\theight = match[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twidth = element.getAttribute('width');\n\t\t\t\t\t\t\theight = element.getAttribute('height');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tratio = width / height;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ratio;\n\t\t},\n\n\t\tcalculateSize: function(element, width){\n\t\t\tvar displayRatio, height, imageRatio, retWidth;\n\t\t\tvar fitObj = this.getFit(element);\n\t\t\tvar fit = fitObj.fit;\n\t\t\tvar fitElem = fitObj.parent;\n\n\t\t\tif(fit != 'width' && ((fit != 'contain' && fit != 'cover') || !(imageRatio = this.getImageRatio(element)))){\n\t\t\t\treturn width;\n\t\t\t}\n\n\t\t\tif(fitElem){\n\t\t\t\twidth = fitElem.clientWidth;\n\t\t\t} else {\n\t\t\t\tfitElem = element;\n\t\t\t}\n\n\t\t\tretWidth = width;\n\n\t\t\tif(fit == 'width'){\n\t\t\t\tretWidth = width;\n\t\t\t} else {\n\t\t\t\theight = fitElem.clientHeight;\n\n\t\t\t\tif((displayRatio = width / height) && ((fit == 'cover' && displayRatio < imageRatio) || (fit == 'contain' && displayRatio > imageRatio))){\n\t\t\t\t\tretWidth = width * (imageRatio / displayRatio);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn retWidth;\n\t\t}\n\t};\n\n\tlazySizes.parentFit = parentFit;\n\n\tdocument.addEventListener('lazybeforesizes', function(e){\n\t\tif(e.defaultPrevented || e.detail.instance != lazySizes){return;}\n\n\t\tvar element = e.target;\n\t\te.detail.width = parentFit.calculateSize(element, e.detail.width);\n\t});\n}));\n","(function(window, factory) {\n\tif(!window) {return;}\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(typeof window != 'undefined' ?\n\twindow : 0, function(window, document, lazySizes) {\n\t/*jshint eqnull:true */\n\t'use strict';\n\tvar polyfill;\n\tvar lazySizesCfg = lazySizes.cfg;\n\tvar img = document.createElement('img');\n\tvar supportSrcset = ('sizes' in img) && ('srcset' in img);\n\tvar regHDesc = /\\s+\\d+h/g;\n\tvar fixEdgeHDescriptor = (function(){\n\t\tvar regDescriptors = /\\s+(\\d+)(w|h)\\s+(\\d+)(w|h)/;\n\t\tvar forEach = Array.prototype.forEach;\n\n\t\treturn function(){\n\t\t\tvar img = document.createElement('img');\n\t\t\tvar removeHDescriptors = function(source){\n\t\t\t\tvar ratio, match;\n\t\t\t\tvar srcset = source.getAttribute(lazySizesCfg.srcsetAttr);\n\t\t\t\tif(srcset){\n\t\t\t\t\tif((match = srcset.match(regDescriptors))){\n\t\t\t\t\t\tif(match[2] == 'w'){\n\t\t\t\t\t\t\tratio = match[1] / match[3];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tratio = match[3] / match[1];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(ratio){\n\t\t\t\t\t\t\tsource.setAttribute('data-aspectratio', ratio);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsource.setAttribute(lazySizesCfg.srcsetAttr, srcset.replace(regHDesc, ''));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar handler = function(e){\n\t\t\t\tif(e.detail.instance != lazySizes){return;}\n\t\t\t\tvar picture = e.target.parentNode;\n\n\t\t\t\tif(picture && picture.nodeName == 'PICTURE'){\n\t\t\t\t\tforEach.call(picture.getElementsByTagName('source'), removeHDescriptors);\n\t\t\t\t}\n\t\t\t\tremoveHDescriptors(e.target);\n\t\t\t};\n\n\t\t\tvar test = function(){\n\t\t\t\tif(!!img.currentSrc){\n\t\t\t\t\tdocument.removeEventListener('lazybeforeunveil', handler);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdocument.addEventListener('lazybeforeunveil', handler);\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\n\t\t\timg.srcset = 'data:,a 1w 1h';\n\n\t\t\tif(img.complete){\n\t\t\t\ttest();\n\t\t\t}\n\t\t};\n\t})();\n\n\tif(!lazySizesCfg.supportsType){\n\t\tlazySizesCfg.supportsType = function(type/*, elem*/){\n\t\t\treturn !type;\n\t\t};\n\t}\n\n\tif (window.HTMLPictureElement && supportSrcset) {\n\t\tif(!lazySizes.hasHDescriptorFix && document.msElementsFromPoint){\n\t\t\tlazySizes.hasHDescriptorFix = true;\n\t\t\tfixEdgeHDescriptor();\n\t\t}\n\t\treturn;\n\t}\n\n\tif(window.picturefill || lazySizesCfg.pf){return;}\n\n\tlazySizesCfg.pf = function(options){\n\t\tvar i, len;\n\t\tif(window.picturefill){return;}\n\t\tfor(i = 0, len = options.elements.length; i < len; i++){\n\t\t\tpolyfill(options.elements[i]);\n\t\t}\n\t};\n\n\t// partial polyfill\n\tpolyfill = (function(){\n\t\tvar ascendingSort = function( a, b ) {\n\t\t\treturn a.w - b.w;\n\t\t};\n\t\tvar regPxLength = /^\\s*\\d+\\.*\\d*px\\s*$/;\n\t\tvar reduceCandidate = function (srces) {\n\t\t\tvar lowerCandidate, bonusFactor;\n\t\t\tvar len = srces.length;\n\t\t\tvar candidate = srces[len -1];\n\t\t\tvar i = 0;\n\n\t\t\tfor(i; i < len;i++){\n\t\t\t\tcandidate = srces[i];\n\t\t\t\tcandidate.d = candidate.w / srces.w;\n\n\t\t\t\tif(candidate.d >= srces.d){\n\t\t\t\t\tif(!candidate.cached && (lowerCandidate = srces[i - 1]) &&\n\t\t\t\t\t\tlowerCandidate.d > srces.d - (0.13 * Math.pow(srces.d, 2.2))){\n\n\t\t\t\t\t\tbonusFactor = Math.pow(lowerCandidate.d - 0.6, 1.6);\n\n\t\t\t\t\t\tif(lowerCandidate.cached) {\n\t\t\t\t\t\t\tlowerCandidate.d += 0.15 * bonusFactor;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(lowerCandidate.d + ((candidate.d - srces.d) * bonusFactor) > srces.d){\n\t\t\t\t\t\t\tcandidate = lowerCandidate;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn candidate;\n\t\t};\n\n\t\tvar parseWsrcset = (function(){\n\t\t\tvar candidates;\n\t\t\tvar regWCandidates = /(([^,\\s].[^\\s]+)\\s+(\\d+)w)/g;\n\t\t\tvar regMultiple = /\\s/;\n\t\t\tvar addCandidate = function(match, candidate, url, wDescriptor){\n\t\t\t\tcandidates.push({\n\t\t\t\t\tc: candidate,\n\t\t\t\t\tu: url,\n\t\t\t\t\tw: wDescriptor * 1\n\t\t\t\t});\n\t\t\t};\n\n\t\t\treturn function(input){\n\t\t\t\tcandidates = [];\n\t\t\t\tinput = input.trim();\n\t\t\t\tinput\n\t\t\t\t\t.replace(regHDesc, '')\n\t\t\t\t\t.replace(regWCandidates, addCandidate)\n\t\t\t\t;\n\n\t\t\t\tif(!candidates.length && input && !regMultiple.test(input)){\n\t\t\t\t\tcandidates.push({\n\t\t\t\t\t\tc: input,\n\t\t\t\t\t\tu: input,\n\t\t\t\t\t\tw: 99\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn candidates;\n\t\t\t};\n\t\t})();\n\n\t\tvar runMatchMedia = function(){\n\t\t\tif(runMatchMedia.init){return;}\n\n\t\t\trunMatchMedia.init = true;\n\t\t\taddEventListener('resize', (function(){\n\t\t\t\tvar timer;\n\t\t\t\tvar matchMediaElems = document.getElementsByClassName('lazymatchmedia');\n\t\t\t\tvar run = function(){\n\t\t\t\t\tvar i, len;\n\t\t\t\t\tfor(i = 0, len = matchMediaElems.length; i < len; i++){\n\t\t\t\t\t\tpolyfill(matchMediaElems[i]);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function(){\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\ttimer = setTimeout(run, 66);\n\t\t\t\t};\n\t\t\t})());\n\t\t};\n\n\t\tvar createSrcset = function(elem, isImage){\n\t\t\tvar parsedSet;\n\t\t\tvar srcSet = elem.getAttribute('srcset') || elem.getAttribute(lazySizesCfg.srcsetAttr);\n\n\t\t\tif(!srcSet && isImage){\n\t\t\t\tsrcSet = !elem._lazypolyfill ?\n\t\t\t\t\t(elem.getAttribute(lazySizesCfg.srcAttr) || elem.getAttribute('src')) :\n\t\t\t\t\telem._lazypolyfill._set\n\t\t\t\t;\n\t\t\t}\n\n\t\t\tif(!elem._lazypolyfill || elem._lazypolyfill._set != srcSet){\n\n\t\t\t\tparsedSet = parseWsrcset( srcSet || '' );\n\t\t\t\tif(isImage && elem.parentNode){\n\t\t\t\t\tparsedSet.isPicture = elem.parentNode.nodeName.toUpperCase() == 'PICTURE';\n\n\t\t\t\t\tif(parsedSet.isPicture){\n\t\t\t\t\t\tif(window.matchMedia){\n\t\t\t\t\t\t\tlazySizes.aC(elem, 'lazymatchmedia');\n\t\t\t\t\t\t\trunMatchMedia();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tparsedSet._set = srcSet;\n\t\t\t\tObject.defineProperty(elem, '_lazypolyfill', {\n\t\t\t\t\tvalue: parsedSet,\n\t\t\t\t\twritable: true\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tvar getX = function(elem){\n\t\t\tvar dpr = window.devicePixelRatio || 1;\n\t\t\tvar optimum = lazySizes.getX && lazySizes.getX(elem);\n\t\t\treturn Math.min(optimum || dpr, 2.5, dpr);\n\t\t};\n\n\t\tvar matchesMedia = function(media){\n\t\t\tif(window.matchMedia){\n\t\t\t\tmatchesMedia = function(media){\n\t\t\t\t\treturn !media || (matchMedia(media) || {}).matches;\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\treturn !media;\n\t\t\t}\n\n\t\t\treturn matchesMedia(media);\n\t\t};\n\n\t\tvar getCandidate = function(elem){\n\t\t\tvar sources, i, len, media, source, srces, src, width;\n\n\t\t\tsource = elem;\n\t\t\tcreateSrcset(source, true);\n\t\t\tsrces = source._lazypolyfill;\n\n\t\t\tif(srces.isPicture){\n\t\t\t\tfor(i = 0, sources = elem.parentNode.getElementsByTagName('source'), len = sources.length; i < len; i++){\n\t\t\t\t\tif( lazySizesCfg.supportsType(sources[i].getAttribute('type'), elem) && matchesMedia( sources[i].getAttribute('media')) ){\n\t\t\t\t\t\tsource = sources[i];\n\t\t\t\t\t\tcreateSrcset(source);\n\t\t\t\t\t\tsrces = source._lazypolyfill;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(srces.length > 1){\n\t\t\t\twidth = source.getAttribute('sizes') || '';\n\t\t\t\twidth = regPxLength.test(width) && parseInt(width, 10) || lazySizes.gW(elem, elem.parentNode);\n\t\t\t\tsrces.d = getX(elem);\n\t\t\t\tif(!srces.src || !srces.w || srces.w < width){\n\t\t\t\t\tsrces.w = width;\n\t\t\t\t\tsrc = reduceCandidate(srces.sort(ascendingSort));\n\t\t\t\t\tsrces.src = src;\n\t\t\t\t} else {\n\t\t\t\t\tsrc = srces.src;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsrc = srces[0];\n\t\t\t}\n\n\t\t\treturn src;\n\t\t};\n\n\t\tvar p = function(elem){\n\t\t\tif(supportSrcset && elem.parentNode && elem.parentNode.nodeName.toUpperCase() != 'PICTURE'){return;}\n\t\t\tvar candidate = getCandidate(elem);\n\n\t\t\tif(candidate && candidate.u && elem._lazypolyfill.cur != candidate.u){\n\t\t\t\telem._lazypolyfill.cur = candidate.u;\n\t\t\t\tcandidate.cached = true;\n\t\t\t\telem.setAttribute(lazySizesCfg.srcAttr, candidate.u);\n\t\t\t\telem.setAttribute('src', candidate.u);\n\t\t\t}\n\t\t};\n\n\t\tp.parse = parseWsrcset;\n\n\t\treturn p;\n\t})();\n\n\tif(lazySizesCfg.loadedClass && lazySizesCfg.loadingClass){\n\t\t(function(){\n\t\t\tvar sels = [];\n\t\t\t['img[sizes$=\"px\"][srcset].', 'picture > img:not([srcset]).'].forEach(function(sel){\n\t\t\t\tsels.push(sel + lazySizesCfg.loadedClass);\n\t\t\t\tsels.push(sel + lazySizesCfg.loadingClass);\n\t\t\t});\n\t\t\tlazySizesCfg.pf({\n\t\t\t\telements: document.querySelectorAll(sels.join(', '))\n\t\t\t});\n\t\t})();\n\n\t}\n}));\n"],"sourceRoot":""}