{"version":3,"file":"critical.min.js","sources":["node_modules/lazysizes/lazysizes.js","node_modules/picturefill/dist/picturefill.js","source/js/critical.js"],"sourcesContent":["(function(window, factory) {\n\tvar lazySizes = factory(window, window.document);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, function l(window, document) {\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes, lazySizesCfg;\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\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\tcfg: lazySizesCfg,\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar Date = window.Date;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\tvar addEventListener = window[_addEventListener];\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\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\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\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\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\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\ttry {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} catch(e){\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, 'ls-is-cached');\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\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\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\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\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","/*! picturefill - v3.0.2 - 2016-02-12\n * https://scottjehl.github.io/picturefill/\n * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT\n */\n/*! Gecko-Picture - v1.0\n * https://github.com/scottjehl/picturefill/tree/3.0/src/plugins/gecko-picture\n * Firefox's early picture implementation (prior to FF41) is static and does\n * not react to viewport changes. This tiny module fixes this.\n */\n(function(window) {\n\t/*jshint eqnull:true */\n\tvar ua = navigator.userAgent;\n\n\tif ( window.HTMLPictureElement && ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 < 45) ) {\n\t\taddEventListener(\"resize\", (function() {\n\t\t\tvar timer;\n\n\t\t\tvar dummySrc = document.createElement(\"source\");\n\n\t\t\tvar fixRespimg = function(img) {\n\t\t\t\tvar source, sizes;\n\t\t\t\tvar picture = img.parentNode;\n\n\t\t\t\tif (picture.nodeName.toUpperCase() === \"PICTURE\") {\n\t\t\t\t\tsource = dummySrc.cloneNode();\n\n\t\t\t\t\tpicture.insertBefore(source, picture.firstElementChild);\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tpicture.removeChild(source);\n\t\t\t\t\t});\n\t\t\t\t} else if (!img._pfLastSize || img.offsetWidth > img._pfLastSize) {\n\t\t\t\t\timg._pfLastSize = img.offsetWidth;\n\t\t\t\t\tsizes = img.sizes;\n\t\t\t\t\timg.sizes += \",100vw\";\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\timg.sizes = sizes;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar findPictureImgs = function() {\n\t\t\t\tvar i;\n\t\t\t\tvar imgs = document.querySelectorAll(\"picture > img, img[srcset][sizes]\");\n\t\t\t\tfor (i = 0; i < imgs.length; i++) {\n\t\t\t\t\tfixRespimg(imgs[i]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar onResize = function() {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = setTimeout(findPictureImgs, 99);\n\t\t\t};\n\t\t\tvar mq = window.matchMedia && matchMedia(\"(orientation: landscape)\");\n\t\t\tvar init = function() {\n\t\t\t\tonResize();\n\n\t\t\t\tif (mq && mq.addListener) {\n\t\t\t\t\tmq.addListener(onResize);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdummySrc.srcset = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\n\t\t\tif (/^[c|i]|d$/.test(document.readyState || \"\")) {\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t\t\t}\n\n\t\t\treturn onResize;\n\t\t})());\n\t}\n})(window);\n\n/*! Picturefill - v3.0.2\n * http://scottjehl.github.io/picturefill\n * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt;\n * License: MIT\n */\n\n(function( window, document, undefined ) {\n\t// Enable strict mode\n\t\"use strict\";\n\n\t// HTML shim|v it for old IE (IE9 will still need the HTML video tag workaround)\n\tdocument.createElement( \"picture\" );\n\n\tvar warn, eminpx, alwaysCheckWDescriptor, evalId;\n\t// local object for method references and testing exposure\n\tvar pf = {};\n\tvar isSupportTestReady = false;\n\tvar noop = function() {};\n\tvar image = document.createElement( \"img\" );\n\tvar getImgAttr = image.getAttribute;\n\tvar setImgAttr = image.setAttribute;\n\tvar removeImgAttr = image.removeAttribute;\n\tvar docElem = document.documentElement;\n\tvar types = {};\n\tvar cfg = {\n\t\t//resource selection:\n\t\talgorithm: \"\"\n\t};\n\tvar srcAttr = \"data-pfsrc\";\n\tvar srcsetAttr = srcAttr + \"set\";\n\t// ua sniffing is done for undetectable img loading features,\n\t// to do some non crucial perf optimizations\n\tvar ua = navigator.userAgent;\n\tvar supportAbort = (/rident/).test(ua) || ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 > 35 );\n\tvar curSrcProp = \"currentSrc\";\n\tvar regWDesc = /\\s+\\+?\\d+(e\\d+)?w/;\n\tvar regSize = /(\\([^)]+\\))?\\s*(.+)/;\n\tvar setOptions = window.picturefillCFG;\n\t/**\n\t * Shortcut property for https://w3c.github.io/webappsec/specs/mixedcontent/#restricts-mixed-content ( for easy overriding in tests )\n\t */\n\t// baseStyle also used by getEmValue (i.e.: width: 1em is important)\n\tvar baseStyle = \"position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)\";\n\tvar fsCss = \"font-size:100%!important;\";\n\tvar isVwDirty = true;\n\n\tvar cssCache = {};\n\tvar sizeLengthCache = {};\n\tvar DPR = window.devicePixelRatio;\n\tvar units = {\n\t\tpx: 1,\n\t\t\"in\": 96\n\t};\n\tvar anchor = document.createElement( \"a\" );\n\t/**\n\t * alreadyRun flag used for setOptions. is it true setOptions will reevaluate\n\t * @type {boolean}\n\t */\n\tvar alreadyRun = false;\n\n\t// Reusable, non-\"g\" Regexes\n\n\t// (Don't use \\s, to avoid matching non-breaking space.)\n\tvar regexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t regexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t regexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t regexTrailingCommas = /[,]+$/,\n\t regexNonNegativeInteger = /^\\d+$/,\n\n\t // ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t // Must include at least one digit.\n\t // According to spec tests any decimal point must be followed by a digit.\n\t // No leading plus sign is allowed.)\n\t // https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;\n\n\tvar on = function(obj, evt, fn, capture) {\n\t\tif ( obj.addEventListener ) {\n\t\t\tobj.addEventListener(evt, fn, capture || false);\n\t\t} else if ( obj.attachEvent ) {\n\t\t\tobj.attachEvent( \"on\" + evt, fn);\n\t\t}\n\t};\n\n\t/**\n\t * simple memoize function:\n\t */\n\n\tvar memoize = function(fn) {\n\t\tvar cache = {};\n\t\treturn function(input) {\n\t\t\tif ( !(input in cache) ) {\n\t\t\t\tcache[ input ] = fn(input);\n\t\t\t}\n\t\t\treturn cache[ input ];\n\t\t};\n\t};\n\n\t// UTILITY FUNCTIONS\n\n\t// Manual is faster than RegEx\n\t// http://jsperf.com/whitespace-character/5\n\tfunction isSpace(c) {\n\t\treturn (c === \"\\u0020\" || // space\n\t\t c === \"\\u0009\" || // horizontal tab\n\t\t c === \"\\u000A\" || // new line\n\t\t c === \"\\u000C\" || // form feed\n\t\t c === \"\\u000D\"); // carriage return\n\t}\n\n\t/**\n\t * gets a mediaquery and returns a boolean or gets a css length and returns a number\n\t * @param css mediaqueries or css length\n\t * @returns {boolean|number}\n\t *\n\t * based on: https://gist.github.com/jonathantneal/db4f77009b155f083738\n\t */\n\tvar evalCSS = (function() {\n\n\t\tvar regLength = /^([\\d\\.]+)(em|vw|px)$/;\n\t\tvar replace = function() {\n\t\t\tvar args = arguments, index = 0, string = args[0];\n\t\t\twhile (++index in args) {\n\t\t\t\tstring = string.replace(args[index], args[++index]);\n\t\t\t}\n\t\t\treturn string;\n\t\t};\n\n\t\tvar buildStr = memoize(function(css) {\n\n\t\t\treturn \"return \" + replace((css || \"\").toLowerCase(),\n\t\t\t\t// interpret `and`\n\t\t\t\t/\\band\\b/g, \"&&\",\n\n\t\t\t\t// interpret `,`\n\t\t\t\t/,/g, \"||\",\n\n\t\t\t\t// interpret `min-` as >=\n\t\t\t\t/min-([a-z-\\s]+):/g, \"e.$1>=\",\n\n\t\t\t\t// interpret `max-` as <=\n\t\t\t\t/max-([a-z-\\s]+):/g, \"e.$1<=\",\n\n\t\t\t\t//calc value\n\t\t\t\t/calc([^)]+)/g, \"($1)\",\n\n\t\t\t\t// interpret css values\n\t\t\t\t/(\\d+[\\.]*[\\d]*)([a-z]+)/g, \"($1 * e.$2)\",\n\t\t\t\t//make eval less evil\n\t\t\t\t/^(?!(e.[a-z]|[0-9\\.&=|><\\+\\-\\*\\(\\)\\/])).*/ig, \"\"\n\t\t\t) + \";\";\n\t\t});\n\n\t\treturn function(css, length) {\n\t\t\tvar parsedLength;\n\t\t\tif (!(css in cssCache)) {\n\t\t\t\tcssCache[css] = false;\n\t\t\t\tif (length && (parsedLength = css.match( regLength ))) {\n\t\t\t\t\tcssCache[css] = parsedLength[ 1 ] * units[parsedLength[ 2 ]];\n\t\t\t\t} else {\n\t\t\t\t\t/*jshint evil:true */\n\t\t\t\t\ttry{\n\t\t\t\t\t\tcssCache[css] = new Function(\"e\", buildStr(css))(units);\n\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t/*jshint evil:false */\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cssCache[css];\n\t\t};\n\t})();\n\n\tvar setResolution = function( candidate, sizesattr ) {\n\t\tif ( candidate.w ) { // h = means height: || descriptor.type === 'h' do not handle yet...\n\t\t\tcandidate.cWidth = pf.calcListLength( sizesattr || \"100vw\" );\n\t\t\tcandidate.res = candidate.w / candidate.cWidth ;\n\t\t} else {\n\t\t\tcandidate.res = candidate.d;\n\t\t}\n\t\treturn candidate;\n\t};\n\n\t/**\n\t *\n\t * @param opt\n\t */\n\tvar picturefill = function( opt ) {\n\n\t\tif (!isSupportTestReady) {return;}\n\n\t\tvar elements, i, plen;\n\n\t\tvar options = opt || {};\n\n\t\tif ( options.elements && options.elements.nodeType === 1 ) {\n\t\t\tif ( options.elements.nodeName.toUpperCase() === \"IMG\" ) {\n\t\t\t\toptions.elements = [ options.elements ];\n\t\t\t} else {\n\t\t\t\toptions.context = options.elements;\n\t\t\t\toptions.elements = null;\n\t\t\t}\n\t\t}\n\n\t\telements = options.elements || pf.qsa( (options.context || document), ( options.reevaluate || options.reselect ) ? pf.sel : pf.selShort );\n\n\t\tif ( (plen = elements.length) ) {\n\n\t\t\tpf.setupRun( options );\n\t\t\talreadyRun = true;\n\n\t\t\t// Loop through all elements\n\t\t\tfor ( i = 0; i < plen; i++ ) {\n\t\t\t\tpf.fillImg(elements[ i ], options);\n\t\t\t}\n\n\t\t\tpf.teardownRun( options );\n\t\t}\n\t};\n\n\t/**\n\t * outputs a warning for the developer\n\t * @param {message}\n\t * @type {Function}\n\t */\n\twarn = ( window.console && console.warn ) ?\n\t\tfunction( message ) {\n\t\t\tconsole.warn( message );\n\t\t} :\n\t\tnoop\n\t;\n\n\tif ( !(curSrcProp in image) ) {\n\t\tcurSrcProp = \"src\";\n\t}\n\n\t// Add support for standard mime types.\n\ttypes[ \"image/jpeg\" ] = true;\n\ttypes[ \"image/gif\" ] = true;\n\ttypes[ \"image/png\" ] = true;\n\n\tfunction detectTypeSupport( type, typeUri ) {\n\t\t// based on Modernizr's lossless img-webp test\n\t\t// note: asynchronous\n\t\tvar image = new window.Image();\n\t\timage.onerror = function() {\n\t\t\ttypes[ type ] = false;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.onload = function() {\n\t\t\ttypes[ type ] = image.width === 1;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.src = typeUri;\n\t\treturn \"pending\";\n\t}\n\n\t// test svg support\n\ttypes[ \"image/svg+xml\" ] = document.implementation.hasFeature( \"http://www.w3.org/TR/SVG11/feature#Image\", \"1.1\" );\n\n\t/**\n\t * updates the internal vW property with the current viewport width in px\n\t */\n\tfunction updateMetrics() {\n\n\t\tisVwDirty = false;\n\t\tDPR = window.devicePixelRatio;\n\t\tcssCache = {};\n\t\tsizeLengthCache = {};\n\n\t\tpf.DPR = DPR || 1;\n\n\t\tunits.width = Math.max(window.innerWidth || 0, docElem.clientWidth);\n\t\tunits.height = Math.max(window.innerHeight || 0, docElem.clientHeight);\n\n\t\tunits.vw = units.width / 100;\n\t\tunits.vh = units.height / 100;\n\n\t\tevalId = [ units.height, units.width, DPR ].join(\"-\");\n\n\t\tunits.em = pf.getEmValue();\n\t\tunits.rem = units.em;\n\t}\n\n\tfunction chooseLowRes( lowerValue, higherValue, dprValue, isCached ) {\n\t\tvar bonusFactor, tooMuch, bonus, meanDensity;\n\n\t\t//experimental\n\t\tif (cfg.algorithm === \"saveData\" ){\n\t\t\tif ( lowerValue > 2.7 ) {\n\t\t\t\tmeanDensity = dprValue + 1;\n\t\t\t} else {\n\t\t\t\ttooMuch = higherValue - dprValue;\n\t\t\t\tbonusFactor = Math.pow(lowerValue - 0.6, 1.5);\n\n\t\t\t\tbonus = tooMuch * bonusFactor;\n\n\t\t\t\tif (isCached) {\n\t\t\t\t\tbonus += 0.1 * bonusFactor;\n\t\t\t\t}\n\n\t\t\t\tmeanDensity = lowerValue + bonus;\n\t\t\t}\n\t\t} else {\n\t\t\tmeanDensity = (dprValue > 1) ?\n\t\t\t\tMath.sqrt(lowerValue * higherValue) :\n\t\t\t\tlowerValue;\n\t\t}\n\n\t\treturn meanDensity > dprValue;\n\t}\n\n\tfunction applyBestCandidate( img ) {\n\t\tvar srcSetCandidates;\n\t\tvar matchingSet = pf.getSet( img );\n\t\tvar evaluated = false;\n\t\tif ( matchingSet !== \"pending\" ) {\n\t\t\tevaluated = evalId;\n\t\t\tif ( matchingSet ) {\n\t\t\t\tsrcSetCandidates = pf.setRes( matchingSet );\n\t\t\t\tpf.applySetCandidate( srcSetCandidates, img );\n\t\t\t}\n\t\t}\n\t\timg[ pf.ns ].evaled = evaluated;\n\t}\n\n\tfunction ascendingSort( a, b ) {\n\t\treturn a.res - b.res;\n\t}\n\n\tfunction setSrcToCur( img, src, set ) {\n\t\tvar candidate;\n\t\tif ( !set && src ) {\n\t\t\tset = img[ pf.ns ].sets;\n\t\t\tset = set && set[set.length - 1];\n\t\t}\n\n\t\tcandidate = getCandidateForSrc(src, set);\n\n\t\tif ( candidate ) {\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\timg[ pf.ns ].curSrc = src;\n\t\t\timg[ pf.ns ].curCan = candidate;\n\n\t\t\tif ( !candidate.res ) {\n\t\t\t\tsetResolution( candidate, candidate.set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getCandidateForSrc( src, set ) {\n\t\tvar i, candidate, candidates;\n\t\tif ( src && set ) {\n\t\t\tcandidates = pf.parseSet( set );\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\tfor ( i = 0; i < candidates.length; i++ ) {\n\t\t\t\tif ( src === pf.makeUrl(candidates[ i ].url) ) {\n\t\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getAllSourceElements( picture, candidates ) {\n\t\tvar i, len, source, srcset;\n\n\t\t// SPEC mismatch intended for size and perf:\n\t\t// actually only source elements preceding the img should be used\n\t\t// also note: don't use qsa here, because IE8 sometimes doesn't like source as the key part in a selector\n\t\tvar sources = picture.getElementsByTagName( \"source\" );\n\n\t\tfor ( i = 0, len = sources.length; i < len; i++ ) {\n\t\t\tsource = sources[ i ];\n\t\t\tsource[ pf.ns ] = true;\n\t\t\tsrcset = source.getAttribute( \"srcset\" );\n\n\t\t\t// if source does not have a srcset attribute, skip\n\t\t\tif ( srcset ) {\n\t\t\t\tcandidates.push( {\n\t\t\t\t\tsrcset: srcset,\n\t\t\t\t\tmedia: source.getAttribute( \"media\" ),\n\t\t\t\t\ttype: source.getAttribute( \"type\" ),\n\t\t\t\t\tsizes: source.getAttribute( \"sizes\" )\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Srcset Parser\n\t * By Alex Bell | MIT License\n\t *\n\t * @returns Array [{url: _, d: _, w: _, h:_, set:_(????)}, ...]\n\t *\n\t * Based super duper closely on the reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n\t */\n\n\t// 1. Let input be the value passed to this algorithm.\n\t// (TO-DO : Explain what \"set\" argument is here. Maybe choose a more\n\t// descriptive & more searchable name. Since passing the \"set\" in really has\n\t// nothing to do with parsing proper, I would prefer this assignment eventually\n\t// go in an external fn.)\n\tfunction parseSrcset(input, set) {\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t match = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\t\t url,\n\t\t descriptors,\n\t\t currentDescriptor,\n\t\t state,\n\t\t c,\n\n\t\t // 2. Let position be a pointer into input, initially pointing at the start\n\t\t // of the string.\n\t\t pos = 0,\n\n\t\t // 3. Let candidates be an initially empty source set.\n\t\t candidates = [];\n\n\t\t/**\n\t\t* Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t* @return undefined\n\t\t*/\n\t\t// (Declared outside of the while loop so that it's only created once.\n\t\t// (This fn is defined before it is used, in order to pass JSHINT.\n\t\t// Unfortunately this breaks the sequencing of the spec comments. :/ )\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t// 10. Let width be absent.\n\t\t\t// 11. Let density be absent.\n\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t w, d, h, i,\n\t\t\t candidate = {},\n\t\t\t desc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tif (!h && !d && !w) {candidate.d = 1;}\n\t\t\t\tif (candidate.d === 1) {set.has1x = true;}\n\t\t\t\tcandidate.set = set;\n\n\t\t\t\tcandidates.push(candidate);\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t\t/**\n\t\t* Tokenizes descriptor properties prior to parsing\n\t\t* Returns undefined.\n\t\t* (Again, this fn is defined before it is used, in order to pass JSHINT.\n\t\t* Unfortunately this breaks the logical sequencing of the spec comments. :/ )\n\t\t*/\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t // Space character\n\t\t\t\t // If current descriptor is not empty, append current descriptor to\n\t\t\t\t // descriptors and let current descriptor be the empty string.\n\t\t\t\t // Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\t}\n\n\t/*\n\t * Sizes Parser\n\t *\n\t * By Alex Bell | MIT License\n\t *\n\t * Non-strict but accurate and lightweight JS Parser for the string value \n\t *\n\t * Reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-sizes-attribute\n\t *\n\t * Most comments are copied in directly from the spec\n\t * (except for comments in parens).\n\t *\n\t * Grammar is:\n\t * = # [ , ]? | \n\t * = \n\t * = \n\t * http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-img-sizes\n\t *\n\t * E.g. \"(max-width: 30em) 100vw, (max-width: 50em) 70vw, 100vw\"\n\t * or \"(min-width: 30em), calc(30vw - 15px)\" or just \"30vw\"\n\t *\n\t * Returns the first valid with a media condition that evaluates to true,\n\t * or \"100vw\" if all valid media conditions evaluate to false.\n\t *\n\t */\n\n\tfunction parseSizes(strValue) {\n\n\t\t// (Percentage CSS lengths are not allowed in this case, to avoid confusion:\n\t\t// https://html.spec.whatwg.org/multipage/embedded-content.html#valid-source-size-list\n\t\t// CSS allows a single optional plus or minus sign:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#numbers\n\t\t// CSS is ASCII case-insensitive:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#characters )\n\t\t// Spec allows exponential notation for type:\n\t\t// http://dev.w3.org/csswg/css-values/#numbers\n\t\tvar regexCssLengthWithUnits = /^(?:[+-]?[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i;\n\n\t\t// (This is a quick and lenient test. Because of optional unlimited-depth internal\n\t\t// grouping parens and strict spacing rules, this could get very complicated.)\n\t\tvar regexCssCalc = /^calc\\((?:[0-9a-z \\.\\+\\-\\*\\/\\(\\)]+)\\)$/i;\n\n\t\tvar i;\n\t\tvar unparsedSizesList;\n\t\tvar unparsedSizesListLength;\n\t\tvar unparsedSize;\n\t\tvar lastComponentValue;\n\t\tvar size;\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// (Toy CSS parser. The goals here are:\n\t\t// 1) expansive test coverage without the weight of a full CSS parser.\n\t\t// 2) Avoiding regex wherever convenient.\n\t\t// Quick tests: http://jsfiddle.net/gtntL4gr/3/\n\t\t// Returns an array of arrays.)\n\t\tfunction parseComponentValues(str) {\n\t\t\tvar chrctr;\n\t\t\tvar component = \"\";\n\t\t\tvar componentArray = [];\n\t\t\tvar listArray = [];\n\t\t\tvar parenDepth = 0;\n\t\t\tvar pos = 0;\n\t\t\tvar inComment = false;\n\n\t\t\tfunction pushComponent() {\n\t\t\t\tif (component) {\n\t\t\t\t\tcomponentArray.push(component);\n\t\t\t\t\tcomponent = \"\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction pushComponentArray() {\n\t\t\t\tif (componentArray[0]) {\n\t\t\t\t\tlistArray.push(componentArray);\n\t\t\t\t\tcomponentArray = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// (Loop forwards from the beginning of the string.)\n\t\t\twhile (true) {\n\t\t\t\tchrctr = str.charAt(pos);\n\n\t\t\t\tif (chrctr === \"\") { // ( End of string reached.)\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\treturn listArray;\n\t\t\t\t} else if (inComment) {\n\t\t\t\t\tif ((chrctr === \"*\") && (str[pos + 1] === \"/\")) { // (At end of a comment.)\n\t\t\t\t\t\tinComment = false;\n\t\t\t\t\t\tpos += 2;\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpos += 1; // (Skip all characters inside comments.)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (isSpace(chrctr)) {\n\t\t\t\t\t// (If previous character in loop was also a space, or if\n\t\t\t\t\t// at the beginning of the string, do not add space char to\n\t\t\t\t\t// component.)\n\t\t\t\t\tif ( (str.charAt(pos - 1) && isSpace( str.charAt(pos - 1) ) ) || !component ) {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (parenDepth === 0) {\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tpos +=1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// (Replace any space character with a plain space for legibility.)\n\t\t\t\t\t\tchrctr = \" \";\n\t\t\t\t\t}\n\t\t\t\t} else if (chrctr === \"(\") {\n\t\t\t\t\tparenDepth += 1;\n\t\t\t\t} else if (chrctr === \")\") {\n\t\t\t\t\tparenDepth -= 1;\n\t\t\t\t} else if (chrctr === \",\") {\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if ( (chrctr === \"/\") && (str.charAt(pos + 1) === \"*\") ) {\n\t\t\t\t\tinComment = true;\n\t\t\t\t\tpos += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcomponent = component + chrctr;\n\t\t\t\tpos += 1;\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNonNegativeSourceSizeValue(s) {\n\t\t\tif (regexCssLengthWithUnits.test(s) && (parseFloat(s) >= 0)) {return true;}\n\t\t\tif (regexCssCalc.test(s)) {return true;}\n\t\t\t// ( http://www.w3.org/TR/CSS2/syndata.html#numbers says:\n\t\t\t// \"-0 is equivalent to 0 and is not a negative number.\" which means that\n\t\t\t// unitless zero and unitless negative zero must be accepted as special cases.)\n\t\t\tif ((s === \"0\") || (s === \"-0\") || (s === \"+0\")) {return true;}\n\t\t\treturn false;\n\t\t}\n\n\t\t// When asked to parse a sizes attribute from an element, parse a\n\t\t// comma-separated list of component values from the value of the element's\n\t\t// sizes attribute (or the empty string, if the attribute is absent), and let\n\t\t// unparsed sizes list be the result.\n\t\t// http://dev.w3.org/csswg/css-syntax/#parse-comma-separated-list-of-component-values\n\n\t\tunparsedSizesList = parseComponentValues(strValue);\n\t\tunparsedSizesListLength = unparsedSizesList.length;\n\n\t\t// For each unparsed size in unparsed sizes list:\n\t\tfor (i = 0; i < unparsedSizesListLength; i++) {\n\t\t\tunparsedSize = unparsedSizesList[i];\n\n\t\t\t// 1. Remove all consecutive s from the end of unparsed size.\n\t\t\t// ( parseComponentValues() already omits spaces outside of parens. )\n\n\t\t\t// If unparsed size is now empty, that is a parse error; continue to the next\n\t\t\t// iteration of this algorithm.\n\t\t\t// ( parseComponentValues() won't push an empty array. )\n\n\t\t\t// 2. If the last component value in unparsed size is a valid non-negative\n\t\t\t// , let size be its value and remove the component value\n\t\t\t// from unparsed size. Any CSS function other than the calc() function is\n\t\t\t// invalid. Otherwise, there is a parse error; continue to the next iteration\n\t\t\t// of this algorithm.\n\t\t\t// http://dev.w3.org/csswg/css-syntax/#parse-component-value\n\t\t\tlastComponentValue = unparsedSize[unparsedSize.length - 1];\n\n\t\t\tif (isValidNonNegativeSourceSizeValue(lastComponentValue)) {\n\t\t\t\tsize = lastComponentValue;\n\t\t\t\tunparsedSize.pop();\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 3. Remove all consecutive s from the end of unparsed\n\t\t\t// size. If unparsed size is now empty, return size and exit this algorithm.\n\t\t\t// If this was not the last item in unparsed sizes list, that is a parse error.\n\t\t\tif (unparsedSize.length === 0) {\n\t\t\t\treturn size;\n\t\t\t}\n\n\t\t\t// 4. Parse the remaining component values in unparsed size as a\n\t\t\t// . If it does not parse correctly, or it does parse\n\t\t\t// correctly but the evaluates to false, continue to the\n\t\t\t// next iteration of this algorithm.\n\t\t\t// (Parsing all possible compound media conditions in JS is heavy, complicated,\n\t\t\t// and the payoff is unclear. Is there ever an situation where the\n\t\t\t// media condition parses incorrectly but still somehow evaluates to true?\n\t\t\t// Can we just rely on the browser/polyfill to do it?)\n\t\t\tunparsedSize = unparsedSize.join(\" \");\n\t\t\tif (!(pf.matchesMedia( unparsedSize ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 5. Return size and exit this algorithm.\n\t\t\treturn size;\n\t\t}\n\n\t\t// If the above algorithm exhausts unparsed sizes list without returning a\n\t\t// size value, return 100vw.\n\t\treturn \"100vw\";\n\t}\n\n\t// namespace\n\tpf.ns = (\"pf\" + new Date().getTime()).substr(0, 9);\n\n\t// srcset support test\n\tpf.supSrcset = \"srcset\" in image;\n\tpf.supSizes = \"sizes\" in image;\n\tpf.supPicture = !!window.HTMLPictureElement;\n\n\t// UC browser does claim to support srcset and picture, but not sizes,\n\t// this extended test reveals the browser does support nothing\n\tif (pf.supSrcset && pf.supPicture && !pf.supSizes) {\n\t\t(function(image2) {\n\t\t\timage.srcset = \"data:,a\";\n\t\t\timage2.src = \"data:,a\";\n\t\t\tpf.supSrcset = image.complete === image2.complete;\n\t\t\tpf.supPicture = pf.supSrcset && pf.supPicture;\n\t\t})(document.createElement(\"img\"));\n\t}\n\n\t// Safari9 has basic support for sizes, but does't expose the `sizes` idl attribute\n\tif (pf.supSrcset && !pf.supSizes) {\n\n\t\t(function() {\n\t\t\tvar width2 = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\";\n\t\t\tvar width1 = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\t\t\tvar img = document.createElement(\"img\");\n\t\t\tvar test = function() {\n\t\t\t\tvar width = img.width;\n\n\t\t\t\tif (width === 2) {\n\t\t\t\t\tpf.supSizes = true;\n\t\t\t\t}\n\n\t\t\t\talwaysCheckWDescriptor = pf.supSrcset && !pf.supSizes;\n\n\t\t\t\tisSupportTestReady = true;\n\t\t\t\t// force async\n\t\t\t\tsetTimeout(picturefill);\n\t\t\t};\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\t\t\timg.setAttribute(\"sizes\", \"9px\");\n\n\t\t\timg.srcset = width1 + \" 1w,\" + width2 + \" 9w\";\n\t\t\timg.src = width1;\n\t\t})();\n\n\t} else {\n\t\tisSupportTestReady = true;\n\t}\n\n\t// using pf.qsa instead of dom traversing does scale much better,\n\t// especially on sites mixing responsive and non-responsive images\n\tpf.selShort = \"picture>img,img[srcset]\";\n\tpf.sel = pf.selShort;\n\tpf.cfg = cfg;\n\n\t/**\n\t * Shortcut property for `devicePixelRatio` ( for easy overriding in tests )\n\t */\n\tpf.DPR = (DPR || 1 );\n\tpf.u = units;\n\n\t// container of supported mime types that one might need to qualify before using\n\tpf.types = types;\n\n\tpf.setSize = noop;\n\n\t/**\n\t * Gets a string and returns the absolute URL\n\t * @param src\n\t * @returns {String} absolute URL\n\t */\n\n\tpf.makeUrl = memoize(function(src) {\n\t\tanchor.href = src;\n\t\treturn anchor.href;\n\t});\n\n\t/**\n\t * Gets a DOM element or document and a selctor and returns the found matches\n\t * Can be extended with jQuery/Sizzle for IE7 support\n\t * @param context\n\t * @param sel\n\t * @returns {NodeList|Array}\n\t */\n\tpf.qsa = function(context, sel) {\n\t\treturn ( \"querySelector\" in context ) ? context.querySelectorAll(sel) : [];\n\t};\n\n\t/**\n\t * Shortcut method for matchMedia ( for easy overriding in tests )\n\t * wether native or pf.mMQ is used will be decided lazy on first call\n\t * @returns {boolean}\n\t */\n\tpf.matchesMedia = function() {\n\t\tif ( window.matchMedia && (matchMedia( \"(min-width: 0.1em)\" ) || {}).matches ) {\n\t\t\tpf.matchesMedia = function( media ) {\n\t\t\t\treturn !media || ( matchMedia( media ).matches );\n\t\t\t};\n\t\t} else {\n\t\t\tpf.matchesMedia = pf.mMQ;\n\t\t}\n\n\t\treturn pf.matchesMedia.apply( this, arguments );\n\t};\n\n\t/**\n\t * A simplified matchMedia implementation for IE8 and IE9\n\t * handles only min-width/max-width with px or em values\n\t * @param media\n\t * @returns {boolean}\n\t */\n\tpf.mMQ = function( media ) {\n\t\treturn media ? evalCSS(media) : true;\n\t};\n\n\t/**\n\t * Returns the calculated length in css pixel from the given sourceSizeValue\n\t * http://dev.w3.org/csswg/css-values-3/#length-value\n\t * intended Spec mismatches:\n\t * * Does not check for invalid use of CSS functions\n\t * * Does handle a computed length of 0 the same as a negative and therefore invalid value\n\t * @param sourceSizeValue\n\t * @returns {Number}\n\t */\n\tpf.calcLength = function( sourceSizeValue ) {\n\n\t\tvar value = evalCSS(sourceSizeValue, true) || false;\n\t\tif (value < 0) {\n\t\t\tvalue = false;\n\t\t}\n\n\t\treturn value;\n\t};\n\n\t/**\n\t * Takes a type string and checks if its supported\n\t */\n\n\tpf.supportsType = function( type ) {\n\t\treturn ( type ) ? types[ type ] : true;\n\t};\n\n\t/**\n\t * Parses a sourceSize into mediaCondition (media) and sourceSizeValue (length)\n\t * @param sourceSizeStr\n\t * @returns {*}\n\t */\n\tpf.parseSize = memoize(function( sourceSizeStr ) {\n\t\tvar match = ( sourceSizeStr || \"\" ).match(regSize);\n\t\treturn {\n\t\t\tmedia: match && match[1],\n\t\t\tlength: match && match[2]\n\t\t};\n\t});\n\n\tpf.parseSet = function( set ) {\n\t\tif ( !set.cands ) {\n\t\t\tset.cands = parseSrcset(set.srcset, set);\n\t\t}\n\t\treturn set.cands;\n\t};\n\n\t/**\n\t * returns 1em in css px for html/body default size\n\t * function taken from respondjs\n\t * @returns {*|number}\n\t */\n\tpf.getEmValue = function() {\n\t\tvar body;\n\t\tif ( !eminpx && (body = document.body) ) {\n\t\t\tvar div = document.createElement( \"div\" ),\n\t\t\t\toriginalHTMLCSS = docElem.style.cssText,\n\t\t\t\toriginalBodyCSS = body.style.cssText;\n\n\t\t\tdiv.style.cssText = baseStyle;\n\n\t\t\t// 1em in a media query is the value of the default font size of the browser\n\t\t\t// reset docElem and body to ensure the correct value is returned\n\t\t\tdocElem.style.cssText = fsCss;\n\t\t\tbody.style.cssText = fsCss;\n\n\t\t\tbody.appendChild( div );\n\t\t\teminpx = div.offsetWidth;\n\t\t\tbody.removeChild( div );\n\n\t\t\t//also update eminpx before returning\n\t\t\teminpx = parseFloat( eminpx, 10 );\n\n\t\t\t// restore the original values\n\t\t\tdocElem.style.cssText = originalHTMLCSS;\n\t\t\tbody.style.cssText = originalBodyCSS;\n\n\t\t}\n\t\treturn eminpx || 16;\n\t};\n\n\t/**\n\t * Takes a string of sizes and returns the width in pixels as a number\n\t */\n\tpf.calcListLength = function( sourceSizeListStr ) {\n\t\t// Split up source size list, ie ( max-width: 30em ) 100%, ( max-width: 50em ) 50%, 33%\n\t\t//\n\t\t// or (min-width:30em) calc(30% - 15px)\n\t\tif ( !(sourceSizeListStr in sizeLengthCache) || cfg.uT ) {\n\t\t\tvar winningLength = pf.calcLength( parseSizes( sourceSizeListStr ) );\n\n\t\t\tsizeLengthCache[ sourceSizeListStr ] = !winningLength ? units.width : winningLength;\n\t\t}\n\n\t\treturn sizeLengthCache[ sourceSizeListStr ];\n\t};\n\n\t/**\n\t * Takes a candidate object with a srcset property in the form of url/\n\t * ex. \"images/pic-medium.png 1x, images/pic-medium-2x.png 2x\" or\n\t * \"images/pic-medium.png 400w, images/pic-medium-2x.png 800w\" or\n\t * \"images/pic-small.png\"\n\t * Get an array of image candidates in the form of\n\t * {url: \"/foo/bar.png\", resolution: 1}\n\t * where resolution is http://dev.w3.org/csswg/css-values-3/#resolution-value\n\t * If sizes is specified, res is calculated\n\t */\n\tpf.setRes = function( set ) {\n\t\tvar candidates;\n\t\tif ( set ) {\n\n\t\t\tcandidates = pf.parseSet( set );\n\n\t\t\tfor ( var i = 0, len = candidates.length; i < len; i++ ) {\n\t\t\t\tsetResolution( candidates[ i ], set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidates;\n\t};\n\n\tpf.setRes.res = setResolution;\n\n\tpf.applySetCandidate = function( candidates, img ) {\n\t\tif ( !candidates.length ) {return;}\n\t\tvar candidate,\n\t\t\ti,\n\t\t\tj,\n\t\t\tlength,\n\t\t\tbestCandidate,\n\t\t\tcurSrc,\n\t\t\tcurCan,\n\t\t\tcandidateSrc,\n\t\t\tabortCurSrc;\n\n\t\tvar imageData = img[ pf.ns ];\n\t\tvar dpr = pf.DPR;\n\n\t\tcurSrc = imageData.curSrc || img[curSrcProp];\n\n\t\tcurCan = imageData.curCan || setSrcToCur(img, curSrc, candidates[0].set);\n\n\t\t// if we have a current source, we might either become lazy or give this source some advantage\n\t\tif ( curCan && curCan.set === candidates[ 0 ].set ) {\n\n\t\t\t// if browser can abort image request and the image has a higher pixel density than needed\n\t\t\t// and this image isn't downloaded yet, we skip next part and try to save bandwidth\n\t\t\tabortCurSrc = (supportAbort && !img.complete && curCan.res - 0.1 > dpr);\n\n\t\t\tif ( !abortCurSrc ) {\n\t\t\t\tcurCan.cached = true;\n\n\t\t\t\t// if current candidate is \"best\", \"better\" or \"okay\",\n\t\t\t\t// set it to bestCandidate\n\t\t\t\tif ( curCan.res >= dpr ) {\n\t\t\t\t\tbestCandidate = curCan;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( !bestCandidate ) {\n\n\t\t\tcandidates.sort( ascendingSort );\n\n\t\t\tlength = candidates.length;\n\t\t\tbestCandidate = candidates[ length - 1 ];\n\n\t\t\tfor ( i = 0; i < length; i++ ) {\n\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\tif ( candidate.res >= dpr ) {\n\t\t\t\t\tj = i - 1;\n\n\t\t\t\t\t// we have found the perfect candidate,\n\t\t\t\t\t// but let's improve this a little bit with some assumptions ;-)\n\t\t\t\t\tif (candidates[ j ] &&\n\t\t\t\t\t\t(abortCurSrc || curSrc !== pf.makeUrl( candidate.url )) &&\n\t\t\t\t\t\tchooseLowRes(candidates[ j ].res, candidate.res, dpr, candidates[ j ].cached)) {\n\n\t\t\t\t\t\tbestCandidate = candidates[ j ];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbestCandidate = candidate;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( bestCandidate ) {\n\n\t\t\tcandidateSrc = pf.makeUrl( bestCandidate.url );\n\n\t\t\timageData.curSrc = candidateSrc;\n\t\t\timageData.curCan = bestCandidate;\n\n\t\t\tif ( candidateSrc !== curSrc ) {\n\t\t\t\tpf.setSrc( img, bestCandidate );\n\t\t\t}\n\t\t\tpf.setSize( img );\n\t\t}\n\t};\n\n\tpf.setSrc = function( img, bestCandidate ) {\n\t\tvar origWidth;\n\t\timg.src = bestCandidate.url;\n\n\t\t// although this is a specific Safari issue, we don't want to take too much different code paths\n\t\tif ( bestCandidate.set.type === \"image/svg+xml\" ) {\n\t\t\torigWidth = img.style.width;\n\t\t\timg.style.width = (img.offsetWidth + 1) + \"px\";\n\n\t\t\t// next line only should trigger a repaint\n\t\t\t// if... is only done to trick dead code removal\n\t\t\tif ( img.offsetWidth + 1 ) {\n\t\t\t\timg.style.width = origWidth;\n\t\t\t}\n\t\t}\n\t};\n\n\tpf.getSet = function( img ) {\n\t\tvar i, set, supportsType;\n\t\tvar match = false;\n\t\tvar sets = img [ pf.ns ].sets;\n\n\t\tfor ( i = 0; i < sets.length && !match; i++ ) {\n\t\t\tset = sets[i];\n\n\t\t\tif ( !set.srcset || !pf.matchesMedia( set.media ) || !(supportsType = pf.supportsType( set.type )) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( supportsType === \"pending\" ) {\n\t\t\t\tset = supportsType;\n\t\t\t}\n\n\t\t\tmatch = set;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn match;\n\t};\n\n\tpf.parseSets = function( element, parent, options ) {\n\t\tvar srcsetAttribute, imageSet, isWDescripor, srcsetParsed;\n\n\t\tvar hasPicture = parent && parent.nodeName.toUpperCase() === \"PICTURE\";\n\t\tvar imageData = element[ pf.ns ];\n\n\t\tif ( imageData.src === undefined || options.src ) {\n\t\t\timageData.src = getImgAttr.call( element, \"src\" );\n\t\t\tif ( imageData.src ) {\n\t\t\t\tsetImgAttr.call( element, srcAttr, imageData.src );\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcAttr );\n\t\t\t}\n\t\t}\n\n\t\tif ( imageData.srcset === undefined || options.srcset || !pf.supSrcset || element.srcset ) {\n\t\t\tsrcsetAttribute = getImgAttr.call( element, \"srcset\" );\n\t\t\timageData.srcset = srcsetAttribute;\n\t\t\tsrcsetParsed = true;\n\t\t}\n\n\t\timageData.sets = [];\n\n\t\tif ( hasPicture ) {\n\t\t\timageData.pic = true;\n\t\t\tgetAllSourceElements( parent, imageData.sets );\n\t\t}\n\n\t\tif ( imageData.srcset ) {\n\t\t\timageSet = {\n\t\t\t\tsrcset: imageData.srcset,\n\t\t\t\tsizes: getImgAttr.call( element, \"sizes\" )\n\t\t\t};\n\n\t\t\timageData.sets.push( imageSet );\n\n\t\t\tisWDescripor = (alwaysCheckWDescriptor || imageData.src) && regWDesc.test(imageData.srcset || \"\");\n\n\t\t\t// add normal src as candidate, if source has no w descriptor\n\t\t\tif ( !isWDescripor && imageData.src && !getCandidateForSrc(imageData.src, imageSet) && !imageSet.has1x ) {\n\t\t\t\timageSet.srcset += \", \" + imageData.src;\n\t\t\t\timageSet.cands.push({\n\t\t\t\t\turl: imageData.src,\n\t\t\t\t\td: 1,\n\t\t\t\t\tset: imageSet\n\t\t\t\t});\n\t\t\t}\n\n\t\t} else if ( imageData.src ) {\n\t\t\timageData.sets.push( {\n\t\t\t\tsrcset: imageData.src,\n\t\t\t\tsizes: null\n\t\t\t} );\n\t\t}\n\n\t\timageData.curCan = null;\n\t\timageData.curSrc = undefined;\n\n\t\t// if img has picture or the srcset was removed or has a srcset and does not support srcset at all\n\t\t// or has a w descriptor (and does not support sizes) set support to false to evaluate\n\t\timageData.supported = !( hasPicture || ( imageSet && !pf.supSrcset ) || (isWDescripor && !pf.supSizes) );\n\n\t\tif ( srcsetParsed && pf.supSrcset && !imageData.supported ) {\n\t\t\tif ( srcsetAttribute ) {\n\t\t\t\tsetImgAttr.call( element, srcsetAttr, srcsetAttribute );\n\t\t\t\telement.srcset = \"\";\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcsetAttr );\n\t\t\t}\n\t\t}\n\n\t\tif (imageData.supported && !imageData.srcset && ((!imageData.src && element.src) || element.src !== pf.makeUrl(imageData.src))) {\n\t\t\tif (imageData.src === null) {\n\t\t\t\telement.removeAttribute(\"src\");\n\t\t\t} else {\n\t\t\t\telement.src = imageData.src;\n\t\t\t}\n\t\t}\n\n\t\timageData.parsed = true;\n\t};\n\n\tpf.fillImg = function(element, options) {\n\t\tvar imageData;\n\t\tvar extreme = options.reselect || options.reevaluate;\n\n\t\t// expando for caching data on the img\n\t\tif ( !element[ pf.ns ] ) {\n\t\t\telement[ pf.ns ] = {};\n\t\t}\n\n\t\timageData = element[ pf.ns ];\n\n\t\t// if the element has already been evaluated, skip it\n\t\t// unless `options.reevaluate` is set to true ( this, for example,\n\t\t// is set to true when running `picturefill` on `resize` ).\n\t\tif ( !extreme && imageData.evaled === evalId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !imageData.parsed || options.reevaluate ) {\n\t\t\tpf.parseSets( element, element.parentNode, options );\n\t\t}\n\n\t\tif ( !imageData.supported ) {\n\t\t\tapplyBestCandidate( element );\n\t\t} else {\n\t\t\timageData.evaled = evalId;\n\t\t}\n\t};\n\n\tpf.setupRun = function() {\n\t\tif ( !alreadyRun || isVwDirty || (DPR !== window.devicePixelRatio) ) {\n\t\t\tupdateMetrics();\n\t\t}\n\t};\n\n\t// If picture is supported, well, that's awesome.\n\tif ( pf.supPicture ) {\n\t\tpicturefill = noop;\n\t\tpf.fillImg = noop;\n\t} else {\n\n\t\t // Set up picture polyfill by polling the document\n\t\t(function() {\n\t\t\tvar isDomReady;\n\t\t\tvar regReady = window.attachEvent ? /d$|^c/ : /d$|^c|^i/;\n\n\t\t\tvar run = function() {\n\t\t\t\tvar readyState = document.readyState || \"\";\n\n\t\t\t\ttimerId = setTimeout(run, readyState === \"loading\" ? 200 : 999);\n\t\t\t\tif ( document.body ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t\tisDomReady = isDomReady || regReady.test(readyState);\n\t\t\t\t\tif ( isDomReady ) {\n\t\t\t\t\t\tclearTimeout( timerId );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar timerId = setTimeout(run, document.body ? 9 : 99);\n\n\t\t\t// Also attach picturefill on resize and readystatechange\n\t\t\t// http://modernjavascript.blogspot.com/2013/08/building-better-debounce.html\n\t\t\tvar debounce = function(func, wait) {\n\t\t\t\tvar timeout, timestamp;\n\t\t\t\tvar later = function() {\n\t\t\t\t\tvar last = (new Date()) - timestamp;\n\n\t\t\t\t\tif (last < wait) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait - last);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimeout = null;\n\t\t\t\t\t\tfunc();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function() {\n\t\t\t\t\ttimestamp = new Date();\n\n\t\t\t\t\tif (!timeout) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t\tvar lastClientWidth = docElem.clientHeight;\n\t\t\tvar onResize = function() {\n\t\t\t\tisVwDirty = Math.max(window.innerWidth || 0, docElem.clientWidth) !== units.width || docElem.clientHeight !== lastClientWidth;\n\t\t\t\tlastClientWidth = docElem.clientHeight;\n\t\t\t\tif ( isVwDirty ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\ton( window, \"resize\", debounce(onResize, 99 ) );\n\t\t\ton( document, \"readystatechange\", run );\n\t\t})();\n\t}\n\n\tpf.picturefill = picturefill;\n\t//use this internally for easy monkey patching/performance testing\n\tpf.fillImgs = picturefill;\n\tpf.teardownRun = noop;\n\n\t/* expose methods for testing */\n\tpicturefill._ = pf;\n\n\twindow.picturefillCFG = {\n\t\tpf: pf,\n\t\tpush: function(args) {\n\t\t\tvar name = args.shift();\n\t\t\tif (typeof pf[name] === \"function\") {\n\t\t\t\tpf[name].apply(pf, args);\n\t\t\t} else {\n\t\t\t\tcfg[name] = args[0];\n\t\t\t\tif (alreadyRun) {\n\t\t\t\t\tpf.fillImgs( { reselect: true } );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\twhile (setOptions && setOptions.length) {\n\t\twindow.picturefillCFG.push(setOptions.shift());\n\t}\n\n\t/* expose picturefill */\n\twindow.picturefill = picturefill;\n\n\t/* expose picturefill */\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// CommonJS, just export\n\t\tmodule.exports = picturefill;\n\t} else if ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD support\n\t\tdefine( \"picturefill\", function() { return picturefill; } );\n\t}\n\n\t// IE8 evals this sync, so it must be the last thing we do\n\tif ( !pf.supPicture ) {\n\t\ttypes[ \"image/webp\" ] = detectTypeSupport(\"image/webp\", \"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\" );\n\t}\n\n} )( window, document );\n","import 'lazysizes';\nimport 'picturefill';\n\n\n(($) => {\n $('document').ready(() => {\n \n \n });\n})(jQuery);"],"names":["window","factory","lazySizes","document","module","exports","l","lazysizes","lazySizesCfg","prop","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","srcAttr","srcsetAttr","sizesAttr","minSize","customMedia","init","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazySizesConfig","lazysizesConfig","getElementsByClassName","cfg","noSupport","docElem","documentElement","Date","supportPicture","HTMLPictureElement","_addEventListener","_getAttribute","addEventListener","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","running","waiting","firstFns","secondFns","fns","run","runFns","length","shift","rafBatch","queue","apply","arguments","push","hidden","_lsFlush","rAFIt","simple","that","args","throttle","lastTime","gDelay","rICTimeout","now","idleCallback","timeout","isPriority","delay","debounce","func","timestamp","wait","later","last","loader","preloadElems","isCompleted","resetPreloadingTimer","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","isBodyHidden","regImg","regIframe","supportScroll","navigator","userAgent","shrinkExpand","currentExpand","isLoading","lowRuns","resetPreloading","e","target","isVisible","body","isNestedVisible","elemExpand","outerRect","visible","offsetParent","getBoundingClientRect","left","right","top","bottom","checkElements","eLlen","i","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","_lazyRace","prematureUnveil","unveilElement","expand","clientHeight","clientWidth","_defEx","innerWidth","innerHeight","preloadAfterLoad","throttledCheckElements","switchLoadingClass","_lazyCache","rafSwitchLoadingClass","rafedSwitchLoadingClass","changeIframeSrc","contentWindow","location","handleSources","source","sourceSrcset","lazyUnveil","isAuto","sizes","isImg","srcset","isPicture","firesLoad","defaultPrevented","nodeName","clearTimeout","call","getElementsByTagName","isLoaded","complete","naturalWidth","loading","autoSizer","updateElem","afterScroll","altLoadmodeScrollListner","onload","_","MutationObserver","observe","childList","subtree","attributes","setInterval","readyState","checkElems","unveil","_aLSL","autosizesElems","sizeElement","sources","len","dataAttr","getSizeElement","updateElementsSizes","debouncedUpdateElementsSizes","uP","aC","rC","hC","fire","gW","ua","match","$1","timer","dummySrc","createElement","fixRespimg","img","picture","toUpperCase","cloneNode","insertBefore","firstElementChild","removeChild","_pfLastSize","findPictureImgs","imgs","querySelectorAll","onResize","mq","matchMedia","addListener","undefined","eminpx","alwaysCheckWDescriptor","evalId","isSupportTestReady","noop","image","getImgAttr","getAttribute","setImgAttr","removeImgAttr","removeAttribute","types","algorithm","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","baseStyle","fsCss","isVwDirty","cssCache","sizeLengthCache","DPR","devicePixelRatio","units","px","anchor","alreadyRun","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","on","obj","capture","attachEvent","memoize","cache","input","isSpace","c","evalCSS","regLength","index","string","buildStr","css","toLowerCase","parsedLength","Function","setResolution","candidate","sizesattr","w","cWidth","calcListLength","res","d","opt","plen","options","nodeType","context","qsa","reselect","sel","selShort","setupRun","fillImg","teardownRun","warn","console","message","detectTypeSupport","type","typeUri","Image","onerror","implementation","hasFeature","updateMetrics","Math","max","height","vw","vh","join","em","getEmValue","rem","chooseLowRes","lowerValue","higherValue","dprValue","isCached","bonusFactor","tooMuch","bonus","meanDensity","pow","sqrt","applyBestCandidate","srcSetCandidates","matchingSet","getSet","evaluated","setRes","applySetCandidate","ns","evaled","ascendingSort","a","b","setSrcToCur","set","sets","getCandidateForSrc","makeUrl","curSrc","curCan","candidates","parseSet","url","getAllSourceElements","media","parseSrcset","collectCharacters","regEx","chars","exec","substring","pos","inputLength","descriptors","currentDescriptor","state","parseDescriptors","pError","h","desc","lastChar","value","intVal","floatVal","parseInt","parseFloat","has1x","tokenize","charAt","slice","parseSizes","strValue","regexCssLengthWithUnits","regexCssCalc","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","size","parseComponentValues","str","chrctr","component","componentArray","listArray","parenDepth","inComment","pushComponent","pushComponentArray","isValidNonNegativeSourceSizeValue","s","pop","matchesMedia","getTime","substr","supSrcset","supSizes","supPicture","image2","width2","width1","u","setSize","href","matches","mMQ","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","div","originalHTMLCSS","cssText","originalBodyCSS","appendChild","sourceSizeListStr","uT","winningLength","j","bestCandidate","candidateSrc","abortCurSrc","imageData","dpr","cached","sort","setSrc","origWidth","parseSets","element","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","supported","parsed","extreme","isDomReady","regReady","timerId","fillImgs","lastClientWidth","$","ready","jQuery"],"mappings":"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"}