{"version":3,"sources":["webpack:///index-6db9b7.js","webpack:///webpack/bootstrap 6db9b7be2b420cd7f559","webpack:///./~/define-properties/index.js","webpack:///./~/es-abstract/es6.js","webpack:///./src/shared/index.css","webpack:///./~/has/src/index.js","webpack:///./src/shared/stylesheets/video.css","webpack:///./~/@nrk/serum-imagecrop-utils/lib/index.js","webpack:///./~/es-abstract/GetIntrinsic.js","webpack:///./~/function-bind/index.js","webpack:///./~/is-callable/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./src/client/sections/polopoly-image/index.js","webpack:///./src/shared/stylesheets/background.css","webpack:///./~/array-includes/implementation.js","webpack:///./~/array-includes/polyfill.js","webpack:///./~/array.from/implementation.js","webpack:///./~/array.from/polyfill.js","webpack:///./~/array.prototype.find/implementation.js","webpack:///./~/array.prototype.find/polyfill.js","webpack:///./~/es-abstract/helpers/assertRecord.js","webpack:///./~/es-abstract/helpers/isFinite.js","webpack:///./~/es-abstract/helpers/isNaN.js","webpack:///./~/es-abstract/helpers/mod.js","webpack:///./~/es-abstract/helpers/sign.js","webpack:///./~/es-to-primitive/helpers/isPrimitive.js","webpack:///./~/object-keys/index.js","webpack:///./~/object-keys/isArguments.js","webpack:///./src/client/utils/alignment-classes.js","webpack:///./src/client/utils/googleAnalytics.js","webpack:///./src/client/utils/muteButtons.js","webpack:///./config/polyfills.js","webpack:///./src/client/index.js","webpack:///./~/array-includes/index.js","webpack:///./~/array-includes/shim.js","webpack:///./~/array.from/index.js","webpack:///./~/array.from/shim.js","webpack:///./~/array.prototype.find/index.js","webpack:///./~/array.prototype.find/shim.js","webpack:///./~/es-abstract/es2015.js","webpack:///./~/es-abstract/es5.js","webpack:///./~/es-abstract/helpers/assign.js","webpack:///./~/es-abstract/helpers/isPrimitive.js","webpack:///./~/es-to-primitive/es2015.js","webpack:///./~/es-to-primitive/es5.js","webpack:///./~/es-to-primitive/es6.js","webpack:///./~/es6-promise/dist/es6-promise.js","webpack:///./~/function-bind/implementation.js","webpack:///./~/has-symbols/index.js","webpack:///./~/has-symbols/shams.js","webpack:///./~/intersection-observer/intersection-observer.js","webpack:///./~/is-date-object/index.js","webpack:///./~/is-regex/index.js","webpack:///./~/is-symbol/index.js","webpack:///./~/object-keys/implementation.js","webpack:///./~/process/browser.js","webpack:///./src/client/intersection.js","webpack:///./src/client/sections/byline/index.js","webpack:///./src/client/sections/fullscreen-video/index.js","webpack:///./src/client/sections/image/index.js","webpack:///./src/client/sections/index.js","webpack:///./src/client/sections/map/index.js","webpack:///./src/client/sections/map/svg-transition-manager.js","webpack:///./src/client/sections/video/index.js","webpack:///./src/client/sections/video/subtitles.js","webpack:///./src/client/utils/getLogo.js","webpack:///./src/client/utils/getShareButtons.js","webpack:///./src/shared/sections/section8_byline.js","webpack:///./src/shared/stylesheets/alignment/index.css","webpack:///./src/shared/stylesheets/byline.css","webpack:///./src/shared/stylesheets/map.css"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","_typeof","Symbol","iterator","obj","constructor","keys","require","hasSymbols","toStr","toString","concat","Array","origDefineProperty","isFunction","fn","supportsDescriptors","_","x","e","predicate","writable","defineProperties","map","predicates","arguments","length","props","getOwnPropertySymbols","sections","section","sectionAfterStandup","sectionBeforeStandup","standup","introBlock","headingBlock","block","block__right","block__left","block__spaceAfter","block__lessPadding","block__map","block__mapHeadingBlock","block__mapNoMarginBottom","block__noMarginBottom","block__lastBlock","super","super__content","blurred","overlay","darkedout","NRKlogo","shareButtonGroup","visible","shareButton","to-top","introBlockArrow","fadeIn","arrowBlink","bind","Function","video","fullscreen--video","fullscreen--video--container","video-mute-button","video-mute-svg-muted-hover","video-mute-svg-unmuted-hover","subtitlescontainer","subtitles","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","global","factory","define","undefined","apply","isPolopolyId","id","isPolopolyIdRegex","test","createUrl","_ref","ratio","width","quality","url","_baseUrl","queryString","createQueryString","_ref2","replace","getClosestNumber","goal","targets","isValidGoal","Error","isValidTargets","reduce","prev","curr","Math","abs","isValid","isValidRatio","supportedRatios","isArray","includes","isValidQuality","supportedQualities","createImageUrl","options","polopolyId","args","hasOption","ratios","qualities","isNumber","errorMessage","isSupportedWidth","widths","closestWidth","option","number","Number","isInteger","generator","asyncGen","ThrowTypeError","getOwnPropertyDescriptor","TypeError","getProto","getPrototypeOf","__proto__","generatorFunction","asyncGenFunction","asyncGenIterator","TypedArray","Uint8Array","INTRINSICS","$ %Array%","$ %ArrayBuffer%","ArrayBuffer","$ %ArrayBufferPrototype%","$ %ArrayIteratorPrototype%","$ %ArrayPrototype%","$ %ArrayProto_entries%","entries","$ %ArrayProto_forEach%","forEach","$ %ArrayProto_keys%","$ %ArrayProto_values%","values","$ %AsyncFromSyncIteratorPrototype%","$ %AsyncFunction%","$ %AsyncFunctionPrototype%","$ %AsyncGenerator%","$ %AsyncGeneratorFunction%","$ %AsyncGeneratorPrototype%","$ %AsyncIteratorPrototype%","asyncIterator","$ %Atomics%","Atomics","$ %Boolean%","Boolean","$ %BooleanPrototype%","$ %DataView%","DataView","$ %DataViewPrototype%","$ %Date%","Date","$ %DatePrototype%","$ %decodeURI%","decodeURI","$ %decodeURIComponent%","decodeURIComponent","$ %encodeURI%","encodeURI","$ %encodeURIComponent%","encodeURIComponent","$ %Error%","$ %ErrorPrototype%","$ %eval%","eval","$ %EvalError%","EvalError","$ %EvalErrorPrototype%","$ %Float32Array%","Float32Array","$ %Float32ArrayPrototype%","$ %Float64Array%","Float64Array","$ %Float64ArrayPrototype%","$ %Function%","$ %FunctionPrototype%","$ %Generator%","$ %GeneratorFunction%","$ %GeneratorPrototype%","$ %Int8Array%","Int8Array","$ %Int8ArrayPrototype%","$ %Int16Array%","Int16Array","$ %Int16ArrayPrototype%","$ %Int32Array%","Int32Array","$ %Int32ArrayPrototype%","$ %isFinite%","isFinite","$ %isNaN%","isNaN","$ %IteratorPrototype%","$ %JSON%","JSON","$ %JSONParse%","parse","$ %Map%","Map","$ %MapIteratorPrototype%","$ %MapPrototype%","$ %Math%","$ %Number%","$ %NumberPrototype%","$ %Object%","$ %ObjectPrototype%","$ %ObjProto_toString%","$ %ObjProto_valueOf%","valueOf","$ %parseFloat%","parseFloat","$ %parseInt%","parseInt","$ %Promise%","Promise","$ %PromisePrototype%","$ %PromiseProto_then%","then","$ %Promise_all%","all","$ %Promise_reject%","reject","$ %Promise_resolve%","resolve","$ %Proxy%","Proxy","$ %RangeError%","RangeError","$ %RangeErrorPrototype%","$ %ReferenceError%","ReferenceError","$ %ReferenceErrorPrototype%","$ %Reflect%","Reflect","$ %RegExp%","RegExp","$ %RegExpPrototype%","$ %Set%","Set","$ %SetIteratorPrototype%","$ %SetPrototype%","$ %SharedArrayBuffer%","SharedArrayBuffer","$ %SharedArrayBufferPrototype%","$ %String%","String","$ %StringIteratorPrototype%","$ %StringPrototype%","$ %Symbol%","$ %SymbolPrototype%","$ %SyntaxError%","SyntaxError","$ %SyntaxErrorPrototype%","$ %ThrowTypeError%","$ %TypedArray%","$ %TypedArrayPrototype%","$ %TypeError%","$ %TypeErrorPrototype%","$ %Uint8Array%","$ %Uint8ArrayPrototype%","$ %Uint8ClampedArray%","Uint8ClampedArray","$ %Uint8ClampedArrayPrototype%","$ %Uint16Array%","Uint16Array","$ %Uint16ArrayPrototype%","$ %Uint32Array%","Uint32Array","$ %Uint32ArrayPrototype%","$ %URIError%","URIError","$ %URIErrorPrototype%","$ %WeakMap%","WeakMap","$ %WeakMapPrototype%","$ %WeakSet%","WeakSet","$ %WeakSetPrototype%","allowMissing","key","implementation","fnToStr","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","hasToStringTag","toStringTag","strClass","g","this","window","createSrcSet","imageId","supportedWidths","_serumImagecropUtils","join","polopolyIdHandler","load","card","getAttribute","elem","document","createElement","defaultUrl","desktopSourceSet","mobileSourceSet","imgStyle","innerHTML","backgrounds","background","superoverlay","backgroundGradient","ES","$isNaN","a","$isFinite","indexOf","searchElement","fromIndex","ToInteger","O","ToObject","ToLength","k","max","SameValueZero","arrayLike","descriptor","C","mapFn","T","items","IsCallable","kValue","mappedValue","len","A","Call","tryCall","from","Infinity","list","thisArg","find","GetIntrinsic","$TypeError","$SyntaxError","has","Property Descriptor","Desc","Type","allowed","[[Configurable]]","[[Enumerable]]","[[Get]]","[[Set]]","[[Value]]","[[Writable]]","isData","IsAccessor","recordType","argumentName","console","log","modulo","remain","floor","slice","isArgs","origKeys","keysShim","originalKeys","shim","str","callee","getPositionClasses","_index","_index2","default","getClasses","param","prefix","alignmentStyles","desktopString","mobileString","desktopStringArray","split","desktopXAxis","desktopYAxis","desktopClasses","mobileStringArray","gaInitialize","trackingEnabled","isTrackingEnabled","trackAction","action","label","sendToGoogleAnalytics","category","ga","getUnmutedButton","getMutedButton","getInitialMuteButton","_video","_video2","videoStyles","polyfill","_interopRequireDefault","_toConsumableArray","arr","arr2","_classCallCheck","instance","Constructor","_createClass","target","protoProps","staticProps","_background","_index3","_intersection","_muteButtons","_googleAnalytics","App","params","container","_this","setSectionId","sectionId","error","muted","videoElements","toggleMuteVideo","gaInitialized","initializeGoogleAnalytic","render","mountListeners","body","stringify","videoes","querySelectorAll","v","pause","sectionEls","styles","shareButtons","querySelector","observer","muteButton","unmountListeners","addEventListener","renderError","backgroundContainer","overlayContainer","sectionElements","loadSections","offset","reverse","filter","content","style","display","transform","offsetHeight","stack","stopPropagation","parentElement","getPolyfill","boundIncludesShim","array","RequireObjectCoercible","boundFromShim","boundFindShim","toPrimitive","$Array","$String","$Object","$Number","$Symbol","$RegExp","assertRecord","MAX_SAFE_INTEGER","pow","assign","sign","mod","isPrimitive","parseInteger","arraySlice","strSlice","isBinary","isOctal","regexExec","exec","nonWS","nonWSregex","hasNonWS","invalidHexLiteral","isInvalidHexLiteral","$charCodeAt","charCodeAt","$NumberValueOf","$BooleanValueOf","$StringValueOf","$DateValueOf","$floor","$abs","$ObjectCreate","create","$gOPD","$isExtensible","isExtensible","$defineProperty","ws","trimRegex","trim","ES5","hasRegExpMatcher","ES6","F","V","ToPrimitive","ToNumber","argument","NaN","trimmed","ToInt16","int16bit","ToUint16","ToInt8","int8bit","ToUint8","posInt","ToUint8Clamp","f","ToString","ToPropertyKey","CanonicalNumericIndexString","SameValue","CheckObjectCoercible","IsArray","IsConstructor","IsExtensible","preventExtensions","IsInteger","IsPropertyKey","IsRegExp","isRegExp","match","ToBoolean","y","GetV","P","GetMethod","func","Get","SpeciesConstructor","defaultConstructor","S","species","CompletePropertyDescriptor","IsGenericDescriptor","IsDataDescriptor","Throw","HasOwnProperty","HasProperty","IsConcatSpreadable","isConcatSpreadable","spreadable","Invoke","argumentsList","GetIterator","method","actualMethod","IteratorNext","result","IteratorComplete","iterResult","IteratorValue","IteratorStep","IteratorClose","completion","completionThunk","iteratorReturn","completionRecord","innerResult","CreateIterResultObject","done","RegExpExec","R","ArraySpeciesCreate","originalArray","CreateDataProperty","oldDesc","extensible","CreateDataPropertyOrThrow","success","ObjectCreate","proto","internalSlotsList","AdvanceStringIndex","index","unicode","first","second","CreateMethodProperty","DefinePropertyOrThrow","desc","DeletePropertyOrThrow","EnumerableOwnNames","thisNumberValue","thisBooleanValue","thisStringValue","thisTimeValue","ToInt32","ToUint32","optMessage","IsPropertyDescriptor","IsAccessorDescriptor","FromPropertyDescriptor","set","ToPropertyDescriptor","Obj","setter","$assign","source","isCallable","isDate","isSymbol","ordinaryToPrimitive","hint","methodNames","input","exoticToPrim","ES5internalSlots","[[DefaultValue]]","actualHint","methods","process","objectOrFunction","type","setScheduler","scheduleFn","customSchedulerFn","setAsap","asapFn","asap","useVertxTimer","vertxNext","flush","useSetTimeout","globalSetTimeout","setTimeout","callback","queue","onFulfillment","onRejection","parent","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","promise","selfFulfillment","cannotReturnOwn","getThen","TRY_CATCH_ERROR","tryThen","then$$1","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","reason","_label","handleOwnThenable","FULFILLED","REJECTED","handleMaybeThenable","maybeThenable","publishRejection","_onerror","publish","PENDING","_subscribers","subscribers","settled","detail","tryCatch","hasCallback","succeeded","failed","initializePromise","resolver","nextId","validationError","Enumerator","race","reject$1","needsResolver","needsNew","local","self","promiseToString","cast","Promise$1","_isArray","arg","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","importScripts","MessageChannel","nextTick","iterations","node","createTextNode","observe","characterData","data","channel","port1","onmessage","port2","postMessage","vertx","runOnLoop","runOnContext","random","substring","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","_settledAt","_willSettleAt","state","enumerator","catch","finally","_setScheduler","_setAsap","_asap","that","bound","binder","boundLength","boundArgs","push","Empty","origSymbol","hasSymbolSham","sym","symObj","getOwnPropertyNames","syms","propertyIsEnumerable","IntersectionObserverEntry","time","rootBounds","boundingClientRect","intersectionRect","getEmptyRect","isIntersecting","targetRect","targetArea","height","intersectionArea","intersectionRatio","IntersectionObserver","opt_options","root","nodeType","_checkForIntersections","throttle","THROTTLE_TIMEOUT","_callback","_observationTargets","_queuedEntries","_rootMarginValues","_parseRootMargin","rootMargin","thresholds","_initThresholds","threshold","margin","unit","now","performance","timeout","timer","addEvent","event","opt_useCapture","attachEvent","removeEvent","removeEventListener","detatchEvent","computeRectIntersection","rect1","rect2","top","bottom","min","left","right","getBoundingClientRect","el","rect","err","containsDeep","getParentNode","parentNode","host","registry","POLL_INTERVAL","some","item","element","_registerInstance","_monitorIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","disconnect","takeRecords","records","opt_threshold","sort","t","opt_rootMargin","marginString","margins","parts","_monitoringIntersections","_monitoringInterval","setInterval","_domObserver","attributes","childList","subtree","clearInterval","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","newEntry","_hasCrossedThreshold","getComputedStyle","atRoot","parentRect","parentComputedStyle","documentElement","overflow","html","clientWidth","clientHeight","_expandRectByRootMargin","newRect","oldRatio","newRatio","splice","getDay","tryDateObject","gOPD","tryRegexExecCall","lastIndex","symToStr","symStringRegex","isSymbolObject","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","isObject","isArguments","isString","theKeys","skipProto","j","skipConstructor","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queueIndex","drainQueue","run","Item","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","_svgTransitionManager","_subtitles","byline","changes","change","backgroundId","backgroundEl","getElementById","classList","add","remove","transitionSvg","bgVideo","fakeSubtitles","play","videoIsPlaying","paused","resetSvg","sectionElement","seeMoreHandler","bylineHandler","setAttribute","fullscreenVideoHandler","_polopolyImage","backgroundImage","imageHandler","idx","handler","sectionHandlers","className","_getShareButtons","getShareButtons","appendChild","init","_getLogo","getLogo","_image","_map","_fullscreenVideo","_byline","mapHandler","videoHandler","_map2","mapSVG","mapEl","mapStyles","mobileMapSVG","pathSVG","svgElement","ex","mapString","_alignmentClasses","videoSrc","poster","mp4","webm","desktopAlignment","mobileAlignment","alignmentClasses","webmElement","mp4Element","videoElement","addSubtitle","track","addTextTrack","addCue","VTTCue","start","end","text","TextTrackCue","standup_homs","subtitleId","subtitle","tracks","textTracks","controls","mode","cues","subtitleContainer","replaceText","hideText","showText","videoLoaded","cue","onenter","onexit","standup_aleppo","standup_maskaneh","bylineSection","_byline2","bylineStyles","seeMore","align-top","align-center","align-left","align-right","align-middle","align-bottom","mobile-align-top","mobile-align-center","mobile-align-left","mobile-align-right","mobile-align-middle","mobile-align-bottom","byline--sharebutton--container","byline--sharebutton--group","byline--sharebutton--item","seemore--block","byline--block","seemore--heading","seemore--heading-link","seemore--link--list--wrapper","seemore--link--list","seemore--link--item","seemore--link--image","byline--credit--list","byline--credit--list--item","byline--credit--list--item--role","byline--credit--list--item--names","damaskus","dot-damaskus","dot-damaskus-blink","blink","damaskus-to-homs","path-damaskus-homs","dot-homs","dot-homs-blink","homs-to-aleppo","path-homs-aleppo","dot-aleppo","dot-aleppo-blink","aleppo-to-maskanah","path-aleppo-maskanah","dot-maskanah","dot-maskanah-blink","mobile-map","desktop-map","mapContainer"],"mappings":"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","file":"index-6db9b7.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 69);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar keys = __webpack_require__(24);\nvar hasSymbols = typeof Symbol === 'function' && _typeof(Symbol('foo')) === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function isFunction(fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function arePropertyDescriptorsSupported() {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) {\n\t\t\t// jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) {\n\t\t/* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function defineProperty(object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function defineProperties(object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(37);\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"sections\":\"nrk-sections\",\"section\":\"nrk-section\",\"sectionAfterStandup\":\"nrk-sectionAfterStandup\",\"sectionBeforeStandup\":\"nrk-sectionBeforeStandup\",\"standup\":\"nrk-standup\",\"introBlock\":\"nrk-introBlock\",\"headingBlock\":\"nrk-headingBlock\",\"block\":\"nrk-block\",\"block__right\":\"nrk-block__right\",\"block__left\":\"nrk-block__left\",\"block__spaceAfter\":\"nrk-block__spaceAfter\",\"block__lessPadding\":\"nrk-block__lessPadding\",\"block__map\":\"nrk-block__map\",\"block__mapHeadingBlock\":\"nrk-block__mapHeadingBlock\",\"block__mapNoMarginBottom\":\"nrk-block__mapNoMarginBottom\",\"block__noMarginBottom\":\"nrk-block__noMarginBottom\",\"block__lastBlock\":\"nrk-block__lastBlock\",\"super\":\"nrk-super\",\"super__content\":\"nrk-super__content\",\"blurred\":\"nrk-blurred\",\"overlay\":\"nrk-overlay\",\"darkedout\":\"nrk-darkedout\",\"NRKlogo\":\"nrk-NRKlogo\",\"shareButtonGroup\":\"nrk-shareButtonGroup\",\"visible\":\"nrk-visible\",\"shareButton\":\"nrk-shareButton\",\"to-top\":\"nrk-to-top\",\"introBlockArrow\":\"nrk-introBlockArrow\",\"fadeIn\":\"nrk-fadeIn\",\"arrowBlink\":\"nrk-arrowBlink\"};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bind = __webpack_require__(7);\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"video\":\"nrk-video\",\"darkedout\":\"nrk-darkedout\",\"fullscreen--video\":\"nrk-fullscreen--video\",\"fullscreen--video--container\":\"nrk-fullscreen--video--container\",\"video-mute-button\":\"nrk-video-mute-button\",\"video-mute-svg-muted-hover\":\"nrk-video-mute-svg-muted-hover\",\"video-mute-svg-unmuted-hover\":\"nrk-video-mute-svg-unmuted-hover\",\"visible\":\"nrk-visible\",\"subtitlescontainer\":\"nrk-subtitlescontainer\",\"subtitles\":\"nrk-subtitles\"};\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n(function (global, factory) {\n ( false ? 'undefined' : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? factory(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : factory(global.nrkSerumImagecropUtils = {});\n})(undefined, function (exports) {\n 'use strict';\n\n var isPolopolyIdRegex = /^[1-9]{1,2}\\.\\d+$/;\n\n function isPolopolyId(id) {\n if (!id) {\n return false;\n }\n return isPolopolyIdRegex.test(id);\n }\n\n // prettier-ignore\n var widths = [100, 120, 150, 174, 200, 206, 225, 244, 250, 252, 300, 320, 350, 400, 450, 452, 460, 462, 500, 600, 650, 665, 682, 700, 734, 768, 900, 974, 1200, 1280, 1360, 1450, 1550, 1600, 1700, 1800, 1920, 2000, 2100, 2200, 2300, 2400];\n\n // prettier-ignore\n var ratios = ['1:1', '11', '16:9', '169', '16:3', '163', '3:4', '34'];\n\n // prettier-ignore\n var qualities = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0];\n\n var _baseUrl = 'https://nrk.no/serum/api/imagecrop/';\n\n function createUrl(_ref) {\n var id = _ref.id,\n ratio = _ref.ratio,\n width = _ref.width,\n quality = _ref.quality;\n\n var url = '' + _baseUrl + id;\n var queryString = createQueryString({ ratio: ratio, width: width, quality: quality });\n if (queryString) {\n url += '?' + queryString;\n }\n return url;\n }\n\n function createQueryString(_ref2) {\n var ratio = _ref2.ratio,\n width = _ref2.width,\n quality = _ref2.quality;\n\n if (!ratio && !width) {\n return quality ? 'quality=' + quality : '';\n }\n var ratioPart = ratio ? 'f' + ratio.replace(':', '') : '';\n var widthPart = width ? 'w' + width : '';\n var qualityPart = quality ? '&quality=' + quality : '';\n return 'cropid=' + ratioPart + widthPart + qualityPart;\n }\n\n function getClosestNumber(goal, targets) {\n if (!isValidGoal(goal)) {\n throw new Error('\\n getClosestNumber(goal, targets): passing a goal of ' + goal + '\\n is not supported. Pass a number');\n }\n if (!isValidTargets(targets)) {\n throw new Error('\\n getClosestNumber(goal, targets): targets ' + targets.toString() + ' is invald.\\n Pass an array of numbers');\n }\n if (!targets.length) {\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n return targets.reduce(function (prev, curr) {\n return Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev;\n });\n }\n\n function isValidGoal(goal) {\n return typeof goal === 'number';\n }\n\n function isValidTargets(targets) {\n if (!targets) {\n return false;\n }\n var isValid = true;\n for (var i = 0; i < targets.length; i++) {\n if (typeof targets[i] !== 'number') {\n isValid = false;\n break;\n }\n }\n // return targets.some((target) => {\n // return (typeof target !== 'number')\n // })\n return isValid;\n }\n\n function isValidRatio(ratio, supportedRatios) {\n if (!Array.isArray(supportedRatios)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\"isValidRatio(ratio, supportedRatios): supportedRatios '\" + supportedRatios + \"' is not supported. Pass an array of supported ratios\");\n }\n if (!ratio) {\n return false;\n }\n return supportedRatios.includes(ratio);\n }\n\n function isValidQuality(quality, supportedQualities) {\n if (!Array.isArray(supportedQualities)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\"isValidQuality(quality, supportedQualities): supportedQualities '\" + supportedQualities + \"' is not supported. Pass an array of supported qualities\");\n }\n if (!quality) {\n return false;\n }\n return supportedQualities.includes(quality);\n }\n\n function createImageUrl(options) {\n var polopolyId = options.id,\n width = options.width,\n ratio = options.ratio,\n quality = options.quality;\n\n if (!isPolopolyId(polopolyId)) {\n throw new Error('createSerumImageUrl(): invalid polopolyId. Got ' + polopolyId);\n }\n\n var args = {\n id: polopolyId,\n ratio: null,\n quality: 0.8,\n width: 0\n\n // If a ratio is provided, ensure that it is valid\n };if (hasOption(ratio)) {\n if (!isValidRatio(ratio, ratios)) {\n throw new Error('\\n createSerumImageUrl(): ratio ' + ratio + ' is not supported.\\n Supported ratios are ' + ratios.toString());\n }\n args.ratio = ratio;\n }\n\n // If a quality is provided, ensure that it is valid\n if (hasOption(quality)) {\n if (!isValidQuality(quality, qualities)) {\n throw new Error('\\n createSerumImageUrl(): quality ' + quality + ' is not supported.\\n Supported qualities are ' + qualities.toString());\n }\n args.quality = quality;\n }\n\n // If a width is provided, ensure that is is a positive integer\n if (hasOption(width)) {\n if (!isNumber(width) || width <= 0) {\n var errorMessage = 'createSerumImageUrl(): width must be a positive integer, got ' + width;\n throw new Error(errorMessage);\n }\n var isSupportedWidth = widths.includes(width);\n var closestWidth = getClosestNumber(width, widths);\n if (typeof closestWidth !== 'undefined' && closestWidth) {\n args.width = isSupportedWidth ? width : closestWidth;\n }\n }\n\n return createUrl(args);\n }\n\n function hasOption(option) {\n return typeof option !== 'undefined' && option;\n }\n\n function isNumber(number) {\n return Number.isInteger(number);\n }\n\n exports.createImageUrl = createImageUrl;\n exports.ratios = ratios;\n exports.widths = widths;\n exports.qualities = qualities;\n exports.isPolopolyId = isPolopolyId;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n});\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* globals\n\tSet,\n\tMap,\n\tWeakSet,\n\tWeakMap,\n\n\tPromise,\n\n\tSymbol,\n\tProxy,\n\n\tAtomics,\n\tSharedArrayBuffer,\n\n\tArrayBuffer,\n\tDataView,\n\tUint8Array,\n\tFloat32Array,\n\tFloat64Array,\n\tInt8Array,\n\tInt16Array,\n\tInt32Array,\n\tUint8ClampedArray,\n\tUint16Array,\n\tUint32Array,\n*/\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar undefined; // eslint-disable-line no-shadow-restricted-names\n\nvar ThrowTypeError = Object.getOwnPropertyDescriptor ? function () {\n\treturn Object.getOwnPropertyDescriptor(arguments, 'callee').get;\n}() : function () {\n\tthrow new TypeError();\n};\n\nvar hasSymbols = typeof Symbol === 'function' && _typeof(Symbol.iterator) === 'symbol';\n\nvar getProto = Object.getPrototypeOf || function (x) {\n\treturn x.__proto__;\n}; // eslint-disable-line no-proto\n\nvar generator; // = function * () {};\nvar generatorFunction = generator ? getProto(generator) : undefined;\nvar asyncFn; // async function() {};\nvar asyncFunction = asyncFn ? asyncFn.constructor : undefined;\nvar asyncGen; // async function * () {};\nvar asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\nvar asyncGenIterator = asyncGen ? asyncGen() : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'$ %Array%': Array,\n\t'$ %ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'$ %ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n\t'$ %ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'$ %ArrayPrototype%': Array.prototype,\n\t'$ %ArrayProto_entries%': Array.prototype.entries,\n\t'$ %ArrayProto_forEach%': Array.prototype.forEach,\n\t'$ %ArrayProto_keys%': Array.prototype.keys,\n\t'$ %ArrayProto_values%': Array.prototype.values,\n\t'$ %AsyncFromSyncIteratorPrototype%': undefined,\n\t'$ %AsyncFunction%': asyncFunction,\n\t'$ %AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n\t'$ %AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n\t'$ %AsyncGeneratorFunction%': asyncGenFunction,\n\t'$ %AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n\t'$ %AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n\t'$ %Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'$ %Boolean%': Boolean,\n\t'$ %BooleanPrototype%': Boolean.prototype,\n\t'$ %DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'$ %DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n\t'$ %Date%': Date,\n\t'$ %DatePrototype%': Date.prototype,\n\t'$ %decodeURI%': decodeURI,\n\t'$ %decodeURIComponent%': decodeURIComponent,\n\t'$ %encodeURI%': encodeURI,\n\t'$ %encodeURIComponent%': encodeURIComponent,\n\t'$ %Error%': Error,\n\t'$ %ErrorPrototype%': Error.prototype,\n\t'$ %eval%': eval, // eslint-disable-line no-eval\n\t'$ %EvalError%': EvalError,\n\t'$ %EvalErrorPrototype%': EvalError.prototype,\n\t'$ %Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'$ %Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n\t'$ %Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'$ %Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n\t'$ %Function%': Function,\n\t'$ %FunctionPrototype%': Function.prototype,\n\t'$ %Generator%': generator ? getProto(generator()) : undefined,\n\t'$ %GeneratorFunction%': generatorFunction,\n\t'$ %GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n\t'$ %Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'$ %Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'$ %Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'$ %Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'$ %Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'$ %Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n\t'$ %isFinite%': isFinite,\n\t'$ %isNaN%': isNaN,\n\t'$ %IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'$ %JSON%': JSON,\n\t'$ %JSONParse%': JSON.parse,\n\t'$ %Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'$ %MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'$ %MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n\t'$ %Math%': Math,\n\t'$ %Number%': Number,\n\t'$ %NumberPrototype%': Number.prototype,\n\t'$ %Object%': Object,\n\t'$ %ObjectPrototype%': Object.prototype,\n\t'$ %ObjProto_toString%': Object.prototype.toString,\n\t'$ %ObjProto_valueOf%': Object.prototype.valueOf,\n\t'$ %parseFloat%': parseFloat,\n\t'$ %parseInt%': parseInt,\n\t'$ %Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'$ %PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n\t'$ %PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n\t'$ %Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n\t'$ %Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n\t'$ %Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n\t'$ %Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'$ %RangeError%': RangeError,\n\t'$ %RangeErrorPrototype%': RangeError.prototype,\n\t'$ %ReferenceError%': ReferenceError,\n\t'$ %ReferenceErrorPrototype%': ReferenceError.prototype,\n\t'$ %Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'$ %RegExp%': RegExp,\n\t'$ %RegExpPrototype%': RegExp.prototype,\n\t'$ %Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'$ %SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'$ %SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n\t'$ %SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'$ %SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n\t'$ %String%': String,\n\t'$ %StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'$ %StringPrototype%': String.prototype,\n\t'$ %Symbol%': hasSymbols ? Symbol : undefined,\n\t'$ %SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n\t'$ %SyntaxError%': SyntaxError,\n\t'$ %SyntaxErrorPrototype%': SyntaxError.prototype,\n\t'$ %ThrowTypeError%': ThrowTypeError,\n\t'$ %TypedArray%': TypedArray,\n\t'$ %TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n\t'$ %TypeError%': TypeError,\n\t'$ %TypeErrorPrototype%': TypeError.prototype,\n\t'$ %Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'$ %Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n\t'$ %Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'$ %Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n\t'$ %Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'$ %Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n\t'$ %Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'$ %Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n\t'$ %URIError%': URIError,\n\t'$ %URIErrorPrototype%': URIError.prototype,\n\t'$ %WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'$ %WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n\t'$ %WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\t'$ %WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar key = '$ ' + name;\n\tif (!(key in INTRINSICS)) {\n\t\tthrow new SyntaxError('intrinsic ' + name + ' does not exist!');\n\t}\n\n\t// istanbul ignore if // hopefully this is impossible to test :-)\n\tif (typeof INTRINSICS[key] === 'undefined' && !allowMissing) {\n\t\tthrow new TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t}\n\treturn INTRINSICS[key];\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(45);\n\nmodule.exports = Function.prototype.bind || implementation;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar fnToStr = Function.prototype.toString;\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) {\n\t\t\treturn false;\n\t\t}\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && _typeof(Symbol.toStringTag) === 'symbol';\n\nmodule.exports = function isCallable(value) {\n\tif (!value) {\n\t\treturn false;\n\t}\n\tif (typeof value !== 'function' && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') {\n\t\treturn false;\n\t}\n\tif (typeof value === 'function' && !value.prototype) {\n\t\treturn true;\n\t}\n\tif (hasToStringTag) {\n\t\treturn tryFunctionObject(value);\n\t}\n\tif (isES6ClassFn(value)) {\n\t\treturn false;\n\t}\n\tvar strClass = toStr.call(value);\n\treturn strClass === fnClass || strClass === genClass;\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar g;\n\n// This works in non-strict mode\ng = function () {\n\treturn this;\n}();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.polopolyIdHandler = undefined;\nexports.createSrcSet = createSrcSet;\n\nvar _serumImagecropUtils = __webpack_require__(5);\n\nvar _alignmentClasses = __webpack_require__(26);\n\nfunction createSrcSet(imageId, ratio, supportedWidths) {\n return supportedWidths.map(function (width) {\n var imageUrl = (0, _serumImagecropUtils.createImageUrl)({ id: imageId, width: width, ratio: ratio });\n return imageUrl + ' ' + width + 'w';\n }).join(', ');\n}\n\nvar polopolyIdHandler = exports.polopolyIdHandler = {\n property: 'data-background-polopoly-id',\n load: function load(card) {\n var polopolyId = card.getAttribute('data-background-polopoly-id');\n\n var elem = document.createElement('div');\n var defaultUrl = (0, _serumImagecropUtils.createImageUrl)({ id: polopolyId, width: 1600, ratio: '1:1' });\n var desktopSourceSet = createSrcSet(polopolyId, '1:1', _serumImagecropUtils.widths);\n var mobileSourceSet = createSrcSet(polopolyId, '3:4', _serumImagecropUtils.widths);\n\n var imgStyle = card.getAttribute('data-align-top') ? \"min-width: 100%; min-height: 100%; position: relative; left: 50%; transform: translate3d(-50%, 0%, 0); top: 0%;\" : \"min-width: 100%; min-height: 100%; position: relative; left: 50%; transform: translate3d(-50%, -50%, 0); top: 50%;\";\n\n elem.innerHTML = '\\n \\n \\n \\n \\n ';\n elem.id = card.getAttribute('data-background-id');\n\n return elem;\n }\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"backgrounds\":\"nrk-backgrounds\",\"background\":\"nrk-background\",\"visible\":\"nrk-visible\",\"superoverlay\":\"nrk-superoverlay\",\"backgroundGradient\":\"nrk-backgroundGradient\"};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\nvar ES = __webpack_require__(1);\nvar $isNaN = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\nvar $isFinite = Number.isFinite || function isFinite(n) {\n\treturn typeof n === 'number' && global.isFinite(n);\n};\nvar indexOf = Array.prototype.indexOf;\n\nmodule.exports = function includes(searchElement) {\n\tvar fromIndex = arguments.length > 1 ? ES.ToInteger(arguments[1]) : 0;\n\tif (indexOf && !$isNaN(searchElement) && $isFinite(fromIndex) && typeof searchElement !== 'undefined') {\n\t\treturn indexOf.apply(this, arguments) > -1;\n\t}\n\n\tvar O = ES.ToObject(this);\n\tvar length = ES.ToLength(O.length);\n\tif (length === 0) {\n\t\treturn false;\n\t}\n\tvar k = fromIndex >= 0 ? fromIndex : Math.max(0, length + fromIndex);\n\twhile (k < length) {\n\t\tif (ES.SameValueZero(searchElement, O[k])) {\n\t\t\treturn true;\n\t\t}\n\t\tk += 1;\n\t}\n\treturn false;\n};\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9)))\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(12);\n\nmodule.exports = function getPolyfill() {\n\treturn Array.prototype.includes || implementation;\n};\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ES = __webpack_require__(1);\nvar supportsDescriptors = __webpack_require__(0).supportsDescriptors;\n\n/*! https://mths.be/array-from v0.2.0 by @mathias */\nmodule.exports = function from(arrayLike) {\n\tvar defineProperty = supportsDescriptors ? Object.defineProperty : function put(object, key, descriptor) {\n\t\tobject[key] = descriptor.value;\n\t};\n\tvar C = this;\n\tif (arrayLike === null || typeof arrayLike === 'undefined') {\n\t\tthrow new TypeError('`Array.from` requires an array-like object, not `null` or `undefined`');\n\t}\n\tvar items = ES.ToObject(arrayLike);\n\n\tvar mapFn, T;\n\tif (typeof arguments[1] !== 'undefined') {\n\t\tmapFn = arguments[1];\n\t\tif (!ES.IsCallable(mapFn)) {\n\t\t\tthrow new TypeError('When provided, the second argument to `Array.from` must be a function');\n\t\t}\n\t\tif (arguments.length > 2) {\n\t\t\tT = arguments[2];\n\t\t}\n\t}\n\n\tvar len = ES.ToLength(items.length);\n\tvar A = ES.IsCallable(C) ? ES.ToObject(new C(len)) : new Array(len);\n\tvar k = 0;\n\tvar kValue, mappedValue;\n\twhile (k < len) {\n\t\tkValue = items[k];\n\t\tif (mapFn) {\n\t\t\tmappedValue = typeof T === 'undefined' ? mapFn(kValue, k) : ES.Call(mapFn, T, [kValue, k]);\n\t\t} else {\n\t\t\tmappedValue = kValue;\n\t\t}\n\t\tdefineProperty(A, k, {\n\t\t\t'configurable': true,\n\t\t\t'enumerable': true,\n\t\t\t'value': mappedValue,\n\t\t\t'writable': true\n\t\t});\n\t\tk += 1;\n\t}\n\tA.length = len;\n\treturn A;\n};\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ES = __webpack_require__(1);\nvar implementation = __webpack_require__(14);\n\nvar tryCall = function tryCall(fn) {\n\ttry {\n\t\tfn();\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nmodule.exports = function getPolyfill() {\n\tvar implemented = ES.IsCallable(Array.from) && tryCall(function () {\n\t\tArray.from({ 'length': -Infinity });\n\t}) && !tryCall(function () {\n\t\tArray.from([], undefined);\n\t});\n\n\treturn implemented ? Array.from : implementation;\n};\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ES = __webpack_require__(1);\n\nmodule.exports = function find(predicate) {\n\tvar list = ES.ToObject(this);\n\tvar length = ES.ToInteger(ES.ToLength(list.length));\n\tif (!ES.IsCallable(predicate)) {\n\t\tthrow new TypeError('Array#find: predicate must be a function');\n\t}\n\tif (length === 0) {\n\t\treturn undefined;\n\t}\n\tvar thisArg = arguments[1];\n\tfor (var i = 0, value; i < length; i++) {\n\t\tvalue = list[i];\n\t\tif (ES.Call(predicate, thisArg, [value, i, list])) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function getPolyfill() {\n\t// Detect if an implementation exists\n\t// Detect early implementations which skipped holes in sparse arrays\n\t// eslint-disable-next-line no-sparse-arrays\n\tvar implemented = Array.prototype.find && [, 1].find(function () {\n\t\treturn true;\n\t}) !== 1;\n\n\t// eslint-disable-next-line global-require\n\treturn implemented ? Array.prototype.find : __webpack_require__(16);\n};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(6);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\n\nvar has = __webpack_require__(3);\n\nvar predicates = {\n // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n 'Property Descriptor': function isPropertyDescriptor(ES, Desc) {\n if (ES.Type(Desc) !== 'Object') {\n return false;\n }\n var allowed = {\n '[[Configurable]]': true,\n '[[Enumerable]]': true,\n '[[Get]]': true,\n '[[Set]]': true,\n '[[Value]]': true,\n '[[Writable]]': true\n };\n\n for (var key in Desc) {\n // eslint-disable-line\n if (has(Desc, key) && !allowed[key]) {\n return false;\n }\n }\n\n var isData = has(Desc, '[[Value]]');\n var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n if (isData && IsAccessor) {\n throw new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n }\n return true;\n }\n};\n\nmodule.exports = function assertRecord(ES, recordType, argumentName, value) {\n var predicate = predicates[recordType];\n if (typeof predicate !== 'function') {\n throw new $SyntaxError('unknown record type: ' + recordType);\n }\n if (!predicate(ES, value)) {\n throw new $TypeError(argumentName + ' must be a ' + recordType);\n }\n console.log(predicate(ES, value), value);\n};\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar $isNaN = Number.isNaN || function (a) {\n return a !== a;\n};\n\nmodule.exports = Number.isFinite || function (x) {\n return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity;\n};\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function mod(number, modulo) {\n\tvar remain = number % modulo;\n\treturn Math.floor(remain >= 0 ? remain : remain + modulo);\n};\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function sign(number) {\n\treturn number >= 0 ? 1 : -1;\n};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nmodule.exports = function isPrimitive(value) {\n\treturn value === null || typeof value !== 'function' && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object';\n};\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar slice = Array.prototype.slice;\nvar isArgs = __webpack_require__(25);\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) {\n\treturn origKeys(o);\n} : __webpack_require__(52);\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2);\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\t// eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' && value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && typeof value.length === 'number' && value.length >= 0 && toStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getPositionClasses = undefined;\n\nvar _index = __webpack_require__(66);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar getClasses = function getClasses(param, prefix) {\n switch (param) {\n case 'top':\n return _index2.default[(prefix ? prefix + '-' : '') + 'align-top'];\n case 'bottom':\n return _index2.default[(prefix ? prefix + '-' : '') + 'align-bottom'];\n case 'middle':\n return _index2.default[(prefix ? prefix + '-' : '') + 'align-middle'];\n case 'left':\n return _index2.default[(prefix ? prefix + '-' : '') + 'align-left'];\n case 'right':\n return _index2.default[(prefix ? prefix + '-' : '') + 'align-right'];\n case 'center':\n return _index2.default[(prefix ? prefix + '-' : '') + 'align-center'];\n default:\n return '';\n }\n};\n\nvar getPositionClasses = exports.getPositionClasses = function getPositionClasses() {\n var desktopString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'middle center';\n var mobileString = arguments[1];\n\n\n var desktopStringArray = desktopString.split(' ');\n var desktopXAxis = getClasses(desktopStringArray[0]);\n var desktopYAxis = getClasses(desktopStringArray[1]);\n\n var desktopClasses = desktopXAxis + ' ' + desktopYAxis;\n if (!mobileString) {\n return desktopClasses;\n }\n var mobileStringArray = mobileString.split(' ');\n var mobileXAxis = getClasses(mobileStringArray[0], 'mobile');\n var mobileYAxis = getClasses(mobileStringArray[1], 'mobile');\n var mobileClasses = mobileXAxis + ' ' + mobileYAxis;\n\n return desktopClasses + ' ' + mobileClasses;\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.gaInitialize = gaInitialize;\nexports.trackAction = trackAction;\nvar isTrackingEnabled = false;\n// let label = null\n\nfunction gaInitialize(trackingEnabled) {\n isTrackingEnabled = trackingEnabled;\n // label = name\n}\n\nfunction trackAction(action, label) {\n sendToGoogleAnalytics({\n category: 'dh-french-moland-kart',\n action: action,\n label: label\n });\n}\n\nfunction sendToGoogleAnalytics(_ref) {\n var category = _ref.category,\n action = _ref.action,\n label = _ref.label;\n\n if (window.ga && isTrackingEnabled) {\n window.ga('send', 'event', category, action, label);\n } else {\n if (typeof console !== 'undefined') {\n console.log(category, action, label);\n }\n }\n}\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getUnmutedButton = exports.getMutedButton = exports.getInitialMuteButton = undefined;\n\nvar _video = __webpack_require__(4);\n\nvar _video2 = _interopRequireDefault(_video);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar getInitialMuteButton = exports.getInitialMuteButton = function getInitialMuteButton() {\n return '\\n \\n ';\n};\n\nvar getMutedButton = exports.getMutedButton = function getMutedButton() {\n return '\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ';\n};\n\nvar getUnmutedButton = exports.getUnmutedButton = function getUnmutedButton() {\n return '\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ';\n};\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* eslint-disable global-require */\n\n__webpack_require__(35).shim();\n__webpack_require__(33).shim();\n__webpack_require__(31).shim();\n\n__webpack_require__(48);\n\n// Object.assign() is commonly used.\n// This polyfill use the native implementation if it's present and isn't buggy.\n// Object.assign = require('object-assign')\n\nif (typeof Promise === 'undefined') {\n __webpack_require__(44).polyfill();\n}\n\nNumber.isInteger = Number.isInteger || function (value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n};\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* global __NAMESPACE__ */\n/* eslint-disable max-params */\n\nvar _index = __webpack_require__(2);\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _background = __webpack_require__(11);\n\nvar _video = __webpack_require__(4);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _index3 = __webpack_require__(58);\n\nvar _intersection = __webpack_require__(54);\n\nvar _muteButtons = __webpack_require__(28);\n\nvar _googleAnalytics = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar App = function () {\n function App(params, container) {\n var _this = this;\n\n _classCallCheck(this, App);\n\n this.setSectionId = function (id) {\n _this.sectionId = id;\n };\n\n this.params = params;\n this.container = container;\n this.error = null;\n this.muted = true;\n this.videoElements = [];\n\n this.toggleMuteVideo = this.toggleMuteVideo.bind(this);\n\n this.gaInitialized = false;\n this.sectionId = 0;\n }\n\n _createClass(App, [{\n key: 'mount',\n value: function mount() {\n try {\n this.initializeGoogleAnalytic();\n this.render();\n this.mountListeners();\n } catch (error) {\n document.body.innerHTML = '' + JSON.stringify(error);\n }\n\n var videoes = [].concat(_toConsumableArray(document.querySelectorAll('video')));\n this.videoElements = videoes;\n videoes.forEach(function (v) {\n return v.pause();\n });\n\n var sectionEls = [].concat(_toConsumableArray(document.querySelectorAll('.' + _index2.default.section)));\n\n var shareButtons = document.querySelector('.' + _index2.default.shareButtonGroup);\n this.shareButtons = shareButtons;\n\n //initiallyVisible(sectionEls)\n (0, _intersection.observer)(sectionEls, this.videoElements, this.muteButton, this.shareButtons, this.setSectionId);\n }\n }, {\n key: 'initializeGoogleAnalytic',\n value: function initializeGoogleAnalytic() {\n if (!this.gaInitialized) {\n (0, _googleAnalytics.gaInitialize)(this.container.getAttribute('data-tracking'));\n }\n this.gaInitialized = true;\n }\n }, {\n key: 'unmount',\n value: function unmount() {\n this.unmountListeners();\n this.container.innerHTML = '';\n }\n }, {\n key: 'mountListeners',\n value: function mountListeners() {\n // Implement `addEventListener` here\n var muteButton = document.querySelector('.' + _video2.default[\"video-mute-button\"]);\n this.muteButton = muteButton;\n\n this.muteButton.addEventListener('click', this.toggleMuteVideo, false);\n }\n }, {\n key: 'unmountListeners',\n value: function unmountListeners() {\n // Implement `removeEventListener` here\n }\n }, {\n key: 'render',\n value: function render() {\n if (this.error) {\n this.renderError();\n return;\n }\n\n var backgroundContainer = document.querySelector('.' + _background.backgrounds);\n var overlayContainer = document.querySelector('.' + _background.superoverlay);\n var sectionElements = Array.prototype.slice.call(document.querySelectorAll('.' + _index2.default.section));\n\n (0, _index3.loadSections)(sectionElements, backgroundContainer, overlayContainer);\n }\n }, {\n key: 'updateSuperOffest',\n value: function updateSuperOffest() {\n var offset = 0;\n\n [].concat(_toConsumableArray(document.querySelectorAll('.' + _index2.default.super__content))).reverse().filter(function (content) {\n return content.style.display === 'block';\n }).forEach(function (content) {\n content.style.transform = 'translateY(-' + offset + 'px)';\n offset += content.offsetHeight;\n });\n }\n }, {\n key: 'renderError',\n value: function renderError() {\n this.container.innerHTML = '
' + this.error.stack + '
';\n }\n }, {\n key: 'toggleMuteVideo',\n value: function toggleMuteVideo(e) {\n e.stopPropagation();\n var parentElement = e.target.parentElement;\n var videoElement = parentElement.querySelector('video');\n\n if (this.muted) {\n this.videoElements.forEach(function (v) {\n return v.muted = false;\n });\n this.muteButton.innerHTML = (0, _muteButtons.getUnmutedButton)();\n this.muted = false;\n (0, _googleAnalytics.trackAction)('UNMUTE/' + this.sectionId);\n return;\n } else {\n this.videoElements.forEach(function (v) {\n return v.muted = true;\n });\n this.muteButton.innerHTML = (0, _muteButtons.getMutedButton)();\n this.muted = true;\n (0, _googleAnalytics.trackAction)('MUTE/' + this.sectionId);\n return;\n }\n }\n }]);\n\n return App;\n}();\n\nexports.default = App;\n\n\nwindow.App = App;\n\n//picturefill()\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(0);\nvar ES = __webpack_require__(1);\n\nvar implementation = __webpack_require__(12);\nvar getPolyfill = __webpack_require__(13);\nvar polyfill = getPolyfill();\nvar shim = __webpack_require__(32);\n\nvar slice = Array.prototype.slice;\n\n/* eslint-disable no-unused-vars */\nvar boundIncludesShim = function includes(array, searchElement) {\n\t/* eslint-enable no-unused-vars */\n\tES.RequireObjectCoercible(array);\n\treturn polyfill.apply(array, slice.call(arguments, 1));\n};\ndefine(boundIncludesShim, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundIncludesShim;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(0);\nvar getPolyfill = __webpack_require__(13);\n\nmodule.exports = function shimArrayPrototypeIncludes() {\n\tvar polyfill = getPolyfill();\n\tdefine(Array.prototype, { includes: polyfill }, { includes: function includes() {\n\t\t\treturn Array.prototype.includes !== polyfill;\n\t\t} });\n\treturn polyfill;\n};\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(0);\n\nvar implementation = __webpack_require__(14);\nvar getPolyfill = __webpack_require__(15);\nvar shim = __webpack_require__(34);\n\n// eslint-disable-next-line no-unused-vars\nvar boundFromShim = function from(array) {\n\t// eslint-disable-next-line no-invalid-this\n\treturn implementation.apply(this || Array, arguments);\n};\n\ndefine(boundFromShim, {\n\t'getPolyfill': getPolyfill,\n\t'implementation': implementation,\n\t'shim': shim\n});\n\nmodule.exports = boundFromShim;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(0);\nvar getPolyfill = __webpack_require__(15);\n\nmodule.exports = function shimArrayFrom() {\n\tvar polyfill = getPolyfill();\n\n\tdefine(Array, { 'from': polyfill }, {\n\t\t'from': function from() {\n\t\t\treturn Array.from !== polyfill;\n\t\t}\n\t});\n\n\treturn polyfill;\n};\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(0);\nvar ES = __webpack_require__(1);\n\nvar implementation = __webpack_require__(16);\nvar getPolyfill = __webpack_require__(17);\nvar shim = __webpack_require__(36);\n\nvar slice = Array.prototype.slice;\n\nvar polyfill = getPolyfill();\n\nvar boundFindShim = function find(array, predicate) {\n\t// eslint-disable-line no-unused-vars\n\tES.RequireObjectCoercible(array);\n\tvar args = slice.call(arguments, 1);\n\treturn polyfill.apply(array, args);\n};\n\ndefine(boundFindShim, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundFindShim;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(0);\nvar getPolyfill = __webpack_require__(17);\n\nmodule.exports = function shimArrayPrototypeFind() {\n\tvar polyfill = getPolyfill();\n\n\tdefine(Array.prototype, { find: polyfill }, {\n\t\tfind: function find() {\n\t\t\treturn Array.prototype.find !== polyfill;\n\t\t}\n\t});\n\n\treturn polyfill;\n};\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar has = __webpack_require__(3);\nvar toPrimitive = __webpack_require__(43);\nvar keys = __webpack_require__(24);\n\nvar GetIntrinsic = __webpack_require__(6);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\nvar $Array = GetIntrinsic('%Array%');\nvar $String = GetIntrinsic('%String%');\nvar $Object = GetIntrinsic('%Object%');\nvar $Number = GetIntrinsic('%Number%');\nvar $Symbol = GetIntrinsic('%Symbol%', true);\nvar $RegExp = GetIntrinsic('%RegExp%');\n\nvar hasSymbols = !!$Symbol;\n\nvar assertRecord = __webpack_require__(18);\nvar $isNaN = __webpack_require__(20);\nvar $isFinite = __webpack_require__(19);\nvar MAX_SAFE_INTEGER = $Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar assign = __webpack_require__(39);\nvar sign = __webpack_require__(22);\nvar mod = __webpack_require__(21);\nvar isPrimitive = __webpack_require__(40);\nvar parseInteger = parseInt;\nvar bind = __webpack_require__(7);\nvar arraySlice = bind.call(Function.call, $Array.prototype.slice);\nvar strSlice = bind.call(Function.call, $String.prototype.slice);\nvar isBinary = bind.call(Function.call, $RegExp.prototype.test, /^0b[01]+$/i);\nvar isOctal = bind.call(Function.call, $RegExp.prototype.test, /^0o[0-7]+$/i);\nvar regexExec = bind.call(Function.call, $RegExp.prototype.exec);\nvar nonWS = ['\\x85', '\\u200B', '\\uFFFE'].join('');\nvar nonWSregex = new $RegExp('[' + nonWS + ']', 'g');\nvar hasNonWS = bind.call(Function.call, $RegExp.prototype.test, nonWSregex);\nvar invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i;\nvar isInvalidHexLiteral = bind.call(Function.call, $RegExp.prototype.test, invalidHexLiteral);\nvar $charCodeAt = bind.call(Function.call, $String.prototype.charCodeAt);\n\nvar toStr = bind.call(Function.call, Object.prototype.toString);\n\nvar $NumberValueOf = bind.call(Function.call, GetIntrinsic('%NumberPrototype%').valueOf);\nvar $BooleanValueOf = bind.call(Function.call, GetIntrinsic('%BooleanPrototype%').valueOf);\nvar $StringValueOf = bind.call(Function.call, GetIntrinsic('%StringPrototype%').valueOf);\nvar $DateValueOf = bind.call(Function.call, GetIntrinsic('%DatePrototype%').valueOf);\n\nvar $floor = Math.floor;\nvar $abs = Math.abs;\n\nvar $ObjectCreate = Object.create;\nvar $gOPD = $Object.getOwnPropertyDescriptor;\n\nvar $isExtensible = $Object.isExtensible;\n\nvar $defineProperty = $Object.defineProperty;\n\n// whitespace from: http://es5.github.io/#x15.5.4.20\n// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\nvar ws = ['\\t\\n\\x0B\\f\\r \\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003', '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028', '\\u2029\\uFEFF'].join('');\nvar trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\nvar replace = bind.call(Function.call, $String.prototype.replace);\nvar trim = function trim(value) {\n\treturn replace(value, trimRegex, '');\n};\n\nvar ES5 = __webpack_require__(38);\n\nvar hasRegExpMatcher = __webpack_require__(50);\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations\nvar ES6 = assign(assign({}, ES5), {\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args\n\tCall: function Call(F, V) {\n\t\tvar args = arguments.length > 2 ? arguments[2] : [];\n\t\tif (!this.IsCallable(F)) {\n\t\t\tthrow new $TypeError(F + ' is not a function');\n\t\t}\n\t\treturn F.apply(V, args);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive\n\tToPrimitive: toPrimitive,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean\n\t// ToBoolean: ES5.ToBoolean,\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-tonumber\n\tToNumber: function ToNumber(argument) {\n\t\tvar value = isPrimitive(argument) ? argument : toPrimitive(argument, $Number);\n\t\tif ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'symbol') {\n\t\t\tthrow new $TypeError('Cannot convert a Symbol value to a number');\n\t\t}\n\t\tif (typeof value === 'string') {\n\t\t\tif (isBinary(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 2));\n\t\t\t} else if (isOctal(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 8));\n\t\t\t} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {\n\t\t\t\treturn NaN;\n\t\t\t} else {\n\t\t\t\tvar trimmed = trim(value);\n\t\t\t\tif (trimmed !== value) {\n\t\t\t\t\treturn this.ToNumber(trimmed);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn $Number(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger\n\t// ToInteger: ES5.ToNumber,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32\n\t// ToInt32: ES5.ToInt32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32\n\t// ToUint32: ES5.ToUint32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16\n\tToInt16: function ToInt16(argument) {\n\t\tvar int16bit = this.ToUint16(argument);\n\t\treturn int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16\n\t// ToUint16: ES5.ToUint16,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8\n\tToInt8: function ToInt8(argument) {\n\t\tvar int8bit = this.ToUint8(argument);\n\t\treturn int8bit >= 0x80 ? int8bit - 0x100 : int8bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8\n\tToUint8: function ToUint8(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) {\n\t\t\treturn 0;\n\t\t}\n\t\tvar posInt = sign(number) * $floor($abs(number));\n\t\treturn mod(posInt, 0x100);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp\n\tToUint8Clamp: function ToUint8Clamp(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number <= 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (number >= 0xFF) {\n\t\t\treturn 0xFF;\n\t\t}\n\t\tvar f = $floor(argument);\n\t\tif (f + 0.5 < number) {\n\t\t\treturn f + 1;\n\t\t}\n\t\tif (number < f + 0.5) {\n\t\t\treturn f;\n\t\t}\n\t\tif (f % 2 !== 0) {\n\t\t\treturn f + 1;\n\t\t}\n\t\treturn f;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring\n\tToString: function ToString(argument) {\n\t\tif ((typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol') {\n\t\t\tthrow new $TypeError('Cannot convert a Symbol value to a string');\n\t\t}\n\t\treturn $String(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject\n\tToObject: function ToObject(value) {\n\t\tthis.RequireObjectCoercible(value);\n\t\treturn $Object(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey\n\tToPropertyKey: function ToPropertyKey(argument) {\n\t\tvar key = this.ToPrimitive(argument, $String);\n\t\treturn (typeof key === 'undefined' ? 'undefined' : _typeof(key)) === 'symbol' ? key : this.ToString(key);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n\tToLength: function ToLength(argument) {\n\t\tvar len = this.ToInteger(argument);\n\t\tif (len <= 0) {\n\t\t\treturn 0;\n\t\t} // includes converting -0 to +0\n\t\tif (len > MAX_SAFE_INTEGER) {\n\t\t\treturn MAX_SAFE_INTEGER;\n\t\t}\n\t\treturn len;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring\n\tCanonicalNumericIndexString: function CanonicalNumericIndexString(argument) {\n\t\tif (toStr(argument) !== '[object String]') {\n\t\t\tthrow new $TypeError('must be a string');\n\t\t}\n\t\tif (argument === '-0') {\n\t\t\treturn -0;\n\t\t}\n\t\tvar n = this.ToNumber(argument);\n\t\tif (this.SameValue(this.ToString(n), argument)) {\n\t\t\treturn n;\n\t\t}\n\t\treturn void 0;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible\n\tRequireObjectCoercible: ES5.CheckObjectCoercible,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray\n\tIsArray: $Array.isArray || function IsArray(argument) {\n\t\treturn toStr(argument) === '[object Array]';\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable\n\t// IsCallable: ES5.IsCallable,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor\n\tIsConstructor: function IsConstructor(argument) {\n\t\treturn typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument`\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o\n\tIsExtensible: Object.preventExtensions ? function IsExtensible(obj) {\n\t\tif (isPrimitive(obj)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn $isExtensible(obj);\n\t} : function isExtensible(obj) {\n\t\treturn true;\n\t}, // eslint-disable-line no-unused-vars\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger\n\tIsInteger: function IsInteger(argument) {\n\t\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n\t\t\treturn false;\n\t\t}\n\t\tvar abs = $abs(argument);\n\t\treturn $floor(abs) === abs;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey\n\tIsPropertyKey: function IsPropertyKey(argument) {\n\t\treturn typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-isregexp\n\tIsRegExp: function IsRegExp(argument) {\n\t\tif (!argument || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols) {\n\t\t\tvar isRegExp = argument[$Symbol.match];\n\t\t\tif (typeof isRegExp !== 'undefined') {\n\t\t\t\treturn ES5.ToBoolean(isRegExp);\n\t\t\t}\n\t\t}\n\t\treturn hasRegExpMatcher(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue\n\t// SameValue: ES5.SameValue,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero\n\tSameValueZero: function SameValueZero(x, y) {\n\t\treturn x === y || $isNaN(x) && $isNaN(y);\n\t},\n\n\t/**\n * 7.3.2 GetV (V, P)\n * 1. Assert: IsPropertyKey(P) is true.\n * 2. Let O be ToObject(V).\n * 3. ReturnIfAbrupt(O).\n * 4. Return O.[[Get]](P, V).\n */\n\tGetV: function GetV(V, P) {\n\t\t// 7.3.2.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.2.2-3\n\t\tvar O = this.ToObject(V);\n\n\t\t// 7.3.2.4\n\t\treturn O[P];\n\t},\n\n\t/**\n * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod\n * 1. Assert: IsPropertyKey(P) is true.\n * 2. Let func be GetV(O, P).\n * 3. ReturnIfAbrupt(func).\n * 4. If func is either undefined or null, return undefined.\n * 5. If IsCallable(func) is false, throw a TypeError exception.\n * 6. Return func.\n */\n\tGetMethod: function GetMethod(O, P) {\n\t\t// 7.3.9.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.9.2\n\t\tvar func = this.GetV(O, P);\n\n\t\t// 7.3.9.4\n\t\tif (func == null) {\n\t\t\treturn void 0;\n\t\t}\n\n\t\t// 7.3.9.5\n\t\tif (!this.IsCallable(func)) {\n\t\t\tthrow new $TypeError(P + 'is not a function');\n\t\t}\n\n\t\t// 7.3.9.6\n\t\treturn func;\n\t},\n\n\t/**\n * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p\n * 1. Assert: Type(O) is Object.\n * 2. Assert: IsPropertyKey(P) is true.\n * 3. Return O.[[Get]](P, O).\n */\n\tGet: function Get(O, P) {\n\t\t// 7.3.1.1\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\t// 7.3.1.2\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\t// 7.3.1.3\n\t\treturn O[P];\n\t},\n\n\tType: function Type(x) {\n\t\tif ((typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'symbol') {\n\t\t\treturn 'Symbol';\n\t\t}\n\t\treturn ES5.Type(x);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor\n\tSpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tvar C = O.constructor;\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.Type(C) !== 'Object') {\n\t\t\tthrow new $TypeError('O.constructor is not an Object');\n\t\t}\n\t\tvar S = hasSymbols && $Symbol.species ? C[$Symbol.species] : void 0;\n\t\tif (S == null) {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.IsConstructor(S)) {\n\t\t\treturn S;\n\t\t}\n\t\tthrow new $TypeError('no constructor found');\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor\n\tCompletePropertyDescriptor: function CompletePropertyDescriptor(Desc) {\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) {\n\t\t\tif (!has(Desc, '[[Value]]')) {\n\t\t\t\tDesc['[[Value]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Writable]]')) {\n\t\t\t\tDesc['[[Writable]]'] = false;\n\t\t\t}\n\t\t} else {\n\t\t\tif (!has(Desc, '[[Get]]')) {\n\t\t\t\tDesc['[[Get]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Set]]')) {\n\t\t\t\tDesc['[[Set]]'] = void 0;\n\t\t\t}\n\t\t}\n\t\tif (!has(Desc, '[[Enumerable]]')) {\n\t\t\tDesc['[[Enumerable]]'] = false;\n\t\t}\n\t\tif (!has(Desc, '[[Configurable]]')) {\n\t\t\tDesc['[[Configurable]]'] = false;\n\t\t}\n\t\treturn Desc;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw\n\tSet: function Set(O, P, V, Throw) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\tif (this.Type(Throw) !== 'Boolean') {\n\t\t\tthrow new $TypeError('Throw must be a Boolean');\n\t\t}\n\t\tif (Throw) {\n\t\t\tO[P] = V;\n\t\t\treturn true;\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tO[P] = V;\n\t\t\t} catch (e) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty\n\tHasOwnProperty: function HasOwnProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\treturn has(O, P);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty\n\tHasProperty: function HasProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\treturn P in O;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable\n\tIsConcatSpreadable: function IsConcatSpreadable(O) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols && _typeof($Symbol.isConcatSpreadable) === 'symbol') {\n\t\t\tvar spreadable = this.Get(O, Symbol.isConcatSpreadable);\n\t\t\tif (typeof spreadable !== 'undefined') {\n\t\t\t\treturn this.ToBoolean(spreadable);\n\t\t\t}\n\t\t}\n\t\treturn this.IsArray(O);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-invoke\n\tInvoke: function Invoke(O, P) {\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\tvar argumentsList = arraySlice(arguments, 2);\n\t\tvar func = this.GetV(O, P);\n\t\treturn this.Call(func, O, argumentsList);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-getiterator\n\tGetIterator: function GetIterator(obj, method) {\n\t\tif (!hasSymbols) {\n\t\t\tthrow new SyntaxError('ES.GetIterator depends on native iterator support.');\n\t\t}\n\n\t\tvar actualMethod = method;\n\t\tif (arguments.length < 2) {\n\t\t\tactualMethod = this.GetMethod(obj, $Symbol.iterator);\n\t\t}\n\t\tvar iterator = this.Call(actualMethod, obj);\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new $TypeError('iterator must return an object');\n\t\t}\n\n\t\treturn iterator;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext\n\tIteratorNext: function IteratorNext(iterator, value) {\n\t\tvar result = this.Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);\n\t\tif (this.Type(result) !== 'Object') {\n\t\t\tthrow new $TypeError('iterator next must return an object');\n\t\t}\n\t\treturn result;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete\n\tIteratorComplete: function IteratorComplete(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.ToBoolean(this.Get(iterResult, 'done'));\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue\n\tIteratorValue: function IteratorValue(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.Get(iterResult, 'value');\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep\n\tIteratorStep: function IteratorStep(iterator) {\n\t\tvar result = this.IteratorNext(iterator);\n\t\tvar done = this.IteratorComplete(result);\n\t\treturn done === true ? false : result;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose\n\tIteratorClose: function IteratorClose(iterator, completion) {\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(iterator) is not Object');\n\t\t}\n\t\tif (!this.IsCallable(completion)) {\n\t\t\tthrow new $TypeError('Assertion failed: completion is not a thunk for a Completion Record');\n\t\t}\n\t\tvar completionThunk = completion;\n\n\t\tvar iteratorReturn = this.GetMethod(iterator, 'return');\n\n\t\tif (typeof iteratorReturn === 'undefined') {\n\t\t\treturn completionThunk();\n\t\t}\n\n\t\tvar completionRecord;\n\t\ttry {\n\t\t\tvar innerResult = this.Call(iteratorReturn, iterator, []);\n\t\t} catch (e) {\n\t\t\t// if we hit here, then \"e\" is the innerResult completion that needs re-throwing\n\n\t\t\t// if the completion is of type \"throw\", this will throw.\n\t\t\tcompletionRecord = completionThunk();\n\t\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\t\t// if not, then return the innerResult completion\n\t\t\tthrow e;\n\t\t}\n\t\tcompletionRecord = completionThunk(); // if innerResult worked, then throw if the completion does\n\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\tif (this.Type(innerResult) !== 'Object') {\n\t\t\tthrow new $TypeError('iterator .return must return an object');\n\t\t}\n\n\t\treturn completionRecord;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject\n\tCreateIterResultObject: function CreateIterResultObject(value, done) {\n\t\tif (this.Type(done) !== 'Boolean') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(done) is not Boolean');\n\t\t}\n\t\treturn {\n\t\t\tvalue: value,\n\t\t\tdone: done\n\t\t};\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec\n\tRegExpExec: function RegExpExec(R, S) {\n\t\tif (this.Type(R) !== 'Object') {\n\t\t\tthrow new $TypeError('R must be an Object');\n\t\t}\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new $TypeError('S must be a String');\n\t\t}\n\t\tvar exec = this.Get(R, 'exec');\n\t\tif (this.IsCallable(exec)) {\n\t\t\tvar result = this.Call(exec, R, [S]);\n\t\t\tif (result === null || this.Type(result) === 'Object') {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tthrow new $TypeError('\"exec\" method must return `null` or an Object');\n\t\t}\n\t\treturn regexExec(R, S);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate\n\tArraySpeciesCreate: function ArraySpeciesCreate(originalArray, length) {\n\t\tif (!this.IsInteger(length) || length < 0) {\n\t\t\tthrow new $TypeError('Assertion failed: length must be an integer >= 0');\n\t\t}\n\t\tvar len = length === 0 ? 0 : length;\n\t\tvar C;\n\t\tvar isArray = this.IsArray(originalArray);\n\t\tif (isArray) {\n\t\t\tC = this.Get(originalArray, 'constructor');\n\t\t\t// TODO: figure out how to make a cross-realm normal Array, a same-realm Array\n\t\t\t// if (this.IsConstructor(C)) {\n\t\t\t// \tif C is another realm's Array, C = undefined\n\t\t\t// \tObject.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?\n\t\t\t// }\n\t\t\tif (this.Type(C) === 'Object' && hasSymbols && $Symbol.species) {\n\t\t\t\tC = this.Get(C, $Symbol.species);\n\t\t\t\tif (C === null) {\n\t\t\t\t\tC = void 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn $Array(len);\n\t\t}\n\t\tif (!this.IsConstructor(C)) {\n\t\t\tthrow new $TypeError('C must be a constructor');\n\t\t}\n\t\treturn new C(len); // this.Construct(C, len);\n\t},\n\n\tCreateDataProperty: function CreateDataProperty(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar oldDesc = $gOPD(O, P);\n\t\tvar extensible = oldDesc || typeof $isExtensible !== 'function' || $isExtensible(O);\n\t\tvar immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable);\n\t\tif (immutable || !extensible) {\n\t\t\treturn false;\n\t\t}\n\t\tvar newDesc = {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tvalue: V,\n\t\t\twritable: true\n\t\t};\n\t\t$defineProperty(O, P, newDesc);\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow\n\tCreateDataPropertyOrThrow: function CreateDataPropertyOrThrow(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar success = this.CreateDataProperty(O, P, V);\n\t\tif (!success) {\n\t\t\tthrow new $TypeError('unable to create data property');\n\t\t}\n\t\treturn success;\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate\n\tObjectCreate: function ObjectCreate(proto, internalSlotsList) {\n\t\tif (proto !== null && this.Type(proto) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: proto must be null or an object');\n\t\t}\n\t\tvar slots = arguments.length < 2 ? [] : internalSlotsList;\n\t\tif (slots.length > 0) {\n\t\t\tthrow new $SyntaxError('es-abstract does not yet support internal slots');\n\t\t}\n\n\t\tif (proto === null && !$ObjectCreate) {\n\t\t\tthrow new $SyntaxError('native Object.create support is required to create null objects');\n\t\t}\n\n\t\treturn $ObjectCreate(proto);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex\n\tAdvanceStringIndex: function AdvanceStringIndex(S, index, unicode) {\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new $TypeError('S must be a String');\n\t\t}\n\t\tif (!this.IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) {\n\t\t\tthrow new $TypeError('Assertion failed: length must be an integer >= 0 and <= 2**53');\n\t\t}\n\t\tif (this.Type(unicode) !== 'Boolean') {\n\t\t\tthrow new $TypeError('Assertion failed: unicode must be a Boolean');\n\t\t}\n\t\tif (!unicode) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar length = S.length;\n\t\tif (index + 1 >= length) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar first = $charCodeAt(S, index);\n\t\tif (first < 0xD800 || first > 0xDBFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar second = $charCodeAt(S, index + 1);\n\t\tif (second < 0xDC00 || second > 0xDFFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\treturn index + 2;\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty\n\tCreateMethodProperty: function CreateMethodProperty(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\tvar newDesc = {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: V,\n\t\t\twritable: true\n\t\t};\n\t\treturn !!$defineProperty(O, P, newDesc);\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow\n\tDefinePropertyOrThrow: function DefinePropertyOrThrow(O, P, desc) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\treturn !!$defineProperty(O, P, desc);\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow\n\tDeletePropertyOrThrow: function DeletePropertyOrThrow(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\tvar success = delete O[P];\n\t\tif (!success) {\n\t\t\tthrow new TypeError('Attempt to delete property failed.');\n\t\t}\n\t\treturn success;\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-enumerableownnames\n\tEnumerableOwnNames: function EnumerableOwnNames(O) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\n\t\treturn keys(O);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object\n\tthisNumberValue: function thisNumberValue(value) {\n\t\tif (this.Type(value) === 'Number') {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn $NumberValueOf(value);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object\n\tthisBooleanValue: function thisBooleanValue(value) {\n\t\tif (this.Type(value) === 'Boolean') {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn $BooleanValueOf(value);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object\n\tthisStringValue: function thisStringValue(value) {\n\t\tif (this.Type(value) === 'String') {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn $StringValueOf(value);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object\n\tthisTimeValue: function thisTimeValue(value) {\n\t\treturn $DateValueOf(value);\n\t}\n});\n\ndelete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible\n\nmodule.exports = ES6;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar GetIntrinsic = __webpack_require__(6);\n\nvar $Object = GetIntrinsic('%Object%');\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $String = GetIntrinsic('%String%');\n\nvar assertRecord = __webpack_require__(18);\nvar $isNaN = __webpack_require__(20);\nvar $isFinite = __webpack_require__(19);\n\nvar sign = __webpack_require__(22);\nvar mod = __webpack_require__(21);\n\nvar IsCallable = __webpack_require__(8);\nvar toPrimitive = __webpack_require__(42);\n\nvar has = __webpack_require__(3);\n\n// https://es5.github.io/#x9\nvar ES5 = {\n\tToPrimitive: toPrimitive,\n\n\tToBoolean: function ToBoolean(value) {\n\t\treturn !!value;\n\t},\n\tToNumber: function ToNumber(value) {\n\t\treturn +value; // eslint-disable-line no-implicit-coercion\n\t},\n\tToInteger: function ToInteger(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number)) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (number === 0 || !$isFinite(number)) {\n\t\t\treturn number;\n\t\t}\n\t\treturn sign(number) * Math.floor(Math.abs(number));\n\t},\n\tToInt32: function ToInt32(x) {\n\t\treturn this.ToNumber(x) >> 0;\n\t},\n\tToUint32: function ToUint32(x) {\n\t\treturn this.ToNumber(x) >>> 0;\n\t},\n\tToUint16: function ToUint16(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) {\n\t\t\treturn 0;\n\t\t}\n\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n\t\treturn mod(posInt, 0x10000);\n\t},\n\tToString: function ToString(value) {\n\t\treturn $String(value);\n\t},\n\tToObject: function ToObject(value) {\n\t\tthis.CheckObjectCoercible(value);\n\t\treturn $Object(value);\n\t},\n\tCheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {\n\t\t/* jshint eqnull:true */\n\t\tif (value == null) {\n\t\t\tthrow new $TypeError(optMessage || 'Cannot call method on ' + value);\n\t\t}\n\t\treturn value;\n\t},\n\tIsCallable: IsCallable,\n\tSameValue: function SameValue(x, y) {\n\t\tif (x === y) {\n\t\t\t// 0 === -0, but they are not identical.\n\t\t\tif (x === 0) {\n\t\t\t\treturn 1 / x === 1 / y;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn $isNaN(x) && $isNaN(y);\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/5.1/#sec-8\n\tType: function Type(x) {\n\t\tif (x === null) {\n\t\t\treturn 'Null';\n\t\t}\n\t\tif (typeof x === 'undefined') {\n\t\t\treturn 'Undefined';\n\t\t}\n\t\tif (typeof x === 'function' || (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object') {\n\t\t\treturn 'Object';\n\t\t}\n\t\tif (typeof x === 'number') {\n\t\t\treturn 'Number';\n\t\t}\n\t\tif (typeof x === 'boolean') {\n\t\t\treturn 'Boolean';\n\t\t}\n\t\tif (typeof x === 'string') {\n\t\t\treturn 'String';\n\t\t}\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n\tIsPropertyDescriptor: function IsPropertyDescriptor(Desc) {\n\t\tif (this.Type(Desc) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tvar allowed = {\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Get]]': true,\n\t\t\t'[[Set]]': true,\n\t\t\t'[[Value]]': true,\n\t\t\t'[[Writable]]': true\n\t\t};\n\n\t\tfor (var key in Desc) {\n\t\t\t// eslint-disable-line\n\t\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tvar isData = has(Desc, '[[Value]]');\n\t\tvar IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\t\tif (isData && IsAccessor) {\n\t\t\tthrow new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t\t}\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.1\n\tIsAccessorDescriptor: function IsAccessorDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.2\n\tIsDataDescriptor: function IsDataDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.3\n\tIsGenericDescriptor: function IsGenericDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.4\n\tFromPropertyDescriptor: function FromPropertyDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn Desc;\n\t\t}\n\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (this.IsDataDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tvalue: Desc['[[Value]]'],\n\t\t\t\twritable: !!Desc['[[Writable]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else if (this.IsAccessorDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tget: Desc['[[Get]]'],\n\t\t\t\tset: Desc['[[Set]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else {\n\t\t\tthrow new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor');\n\t\t}\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5\n\tToPropertyDescriptor: function ToPropertyDescriptor(Obj) {\n\t\tif (this.Type(Obj) !== 'Object') {\n\t\t\tthrow new $TypeError('ToPropertyDescriptor requires an object');\n\t\t}\n\n\t\tvar desc = {};\n\t\tif (has(Obj, 'enumerable')) {\n\t\t\tdesc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable);\n\t\t}\n\t\tif (has(Obj, 'configurable')) {\n\t\t\tdesc['[[Configurable]]'] = this.ToBoolean(Obj.configurable);\n\t\t}\n\t\tif (has(Obj, 'value')) {\n\t\t\tdesc['[[Value]]'] = Obj.value;\n\t\t}\n\t\tif (has(Obj, 'writable')) {\n\t\t\tdesc['[[Writable]]'] = this.ToBoolean(Obj.writable);\n\t\t}\n\t\tif (has(Obj, 'get')) {\n\t\t\tvar getter = Obj.get;\n\t\t\tif (typeof getter !== 'undefined' && !this.IsCallable(getter)) {\n\t\t\t\tthrow new TypeError('getter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Get]]'] = getter;\n\t\t}\n\t\tif (has(Obj, 'set')) {\n\t\t\tvar setter = Obj.set;\n\t\t\tif (typeof setter !== 'undefined' && !this.IsCallable(setter)) {\n\t\t\t\tthrow new $TypeError('setter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Set]]'] = setter;\n\t\t}\n\n\t\tif ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n\t\t\tthrow new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n\t\t}\n\t\treturn desc;\n\t}\n};\n\nmodule.exports = ES5;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bind = __webpack_require__(7);\nvar has = bind.call(Function.call, Object.prototype.hasOwnProperty);\n\nvar $assign = Object.assign;\n\nmodule.exports = function assign(target, source) {\n\tif ($assign) {\n\t\treturn $assign(target, source);\n\t}\n\n\tfor (var key in source) {\n\t\tif (has(source, key)) {\n\t\t\ttarget[key] = source[key];\n\t\t}\n\t}\n\treturn target;\n};\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nmodule.exports = function isPrimitive(value) {\n\treturn value === null || typeof value !== 'function' && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object';\n};\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar hasSymbols = typeof Symbol === 'function' && _typeof(Symbol.iterator) === 'symbol';\n\nvar isPrimitive = __webpack_require__(23);\nvar isCallable = __webpack_require__(8);\nvar isDate = __webpack_require__(49);\nvar isSymbol = __webpack_require__(51);\n\nvar ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n\tif (typeof O === 'undefined' || O === null) {\n\t\tthrow new TypeError('Cannot call method on ' + O);\n\t}\n\tif (typeof hint !== 'string' || hint !== 'number' && hint !== 'string') {\n\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n\t}\n\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\tvar method, result, i;\n\tfor (i = 0; i < methodNames.length; ++i) {\n\t\tmethod = O[methodNames[i]];\n\t\tif (isCallable(method)) {\n\t\t\tresult = method.call(O);\n\t\t\tif (isPrimitive(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError('No default value');\n};\n\nvar GetMethod = function GetMethod(O, P) {\n\tvar func = O[P];\n\tif (func !== null && typeof func !== 'undefined') {\n\t\tif (!isCallable(func)) {\n\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n\t\t}\n\t\treturn func;\n\t}\n\treturn void 0;\n};\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\nmodule.exports = function ToPrimitive(input) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tvar hint = 'default';\n\tif (arguments.length > 1) {\n\t\tif (arguments[1] === String) {\n\t\t\thint = 'string';\n\t\t} else if (arguments[1] === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t}\n\n\tvar exoticToPrim;\n\tif (hasSymbols) {\n\t\tif (Symbol.toPrimitive) {\n\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n\t\t} else if (isSymbol(input)) {\n\t\t\texoticToPrim = Symbol.prototype.valueOf;\n\t\t}\n\t}\n\tif (typeof exoticToPrim !== 'undefined') {\n\t\tvar result = exoticToPrim.call(input, hint);\n\t\tif (isPrimitive(result)) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new TypeError('unable to convert exotic object to primitive');\n\t}\n\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n\t\thint = 'string';\n\t}\n\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar toStr = Object.prototype.toString;\n\nvar isPrimitive = __webpack_require__(23);\n\nvar isCallable = __webpack_require__(8);\n\n// http://ecma-international.org/ecma-262/5.1/#sec-8.12.8\nvar ES5internalSlots = {\n\t'[[DefaultValue]]': function DefaultValue(O) {\n\t\tvar actualHint;\n\t\tif (arguments.length > 1) {\n\t\t\tactualHint = arguments[1];\n\t\t} else {\n\t\t\tactualHint = toStr.call(O) === '[object Date]' ? String : Number;\n\t\t}\n\n\t\tif (actualHint === String || actualHint === Number) {\n\t\t\tvar methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\t\t\tvar value, i;\n\t\t\tfor (i = 0; i < methods.length; ++i) {\n\t\t\t\tif (isCallable(O[methods[i]])) {\n\t\t\t\t\tvalue = O[methods[i]]();\n\t\t\t\t\tif (isPrimitive(value)) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new TypeError('No default value');\n\t\t}\n\t\tthrow new TypeError('invalid [[DefaultValue]] hint supplied');\n\t}\n};\n\n// http://ecma-international.org/ecma-262/5.1/#sec-9.1\nmodule.exports = function ToPrimitive(input) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tif (arguments.length > 1) {\n\t\treturn ES5internalSlots['[[DefaultValue]]'](input, arguments[1]);\n\t}\n\treturn ES5internalSlots['[[DefaultValue]]'](input);\n};\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(41);\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process, global) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.6+9869a4bc\n */\n\n(function (global, factory) {\n ( false ? 'undefined' : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : global.ES6Promise = factory();\n})(undefined, function () {\n 'use strict';\n\n function objectOrFunction(x) {\n var type = typeof x === 'undefined' ? 'undefined' : _typeof(x);\n return x !== null && (type === 'object' || type === 'function');\n }\n\n function isFunction(x) {\n return typeof x === 'function';\n }\n\n var _isArray = void 0;\n if (Array.isArray) {\n _isArray = Array.isArray;\n } else {\n _isArray = function _isArray(x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n }\n\n var isArray = _isArray;\n\n var len = 0;\n var vertxNext = void 0;\n var customSchedulerFn = void 0;\n\n var asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n };\n\n function setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n }\n\n function setAsap(asapFn) {\n asap = asapFn;\n }\n\n var browserWindow = typeof window !== 'undefined' ? window : undefined;\n var browserGlobal = browserWindow || {};\n var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\n var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n // node\n function useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n }\n\n // vertx\n function useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n }\n\n function useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n }\n\n // web worker\n function useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n }\n\n function useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n }\n\n var queue = new Array(1000);\n function flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n }\n\n function attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n }\n\n var scheduleFlush = void 0;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (isNode) {\n scheduleFlush = useNextTick();\n } else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n } else if (isWorker) {\n scheduleFlush = useMessageChannel();\n } else if (browserWindow === undefined && \"function\" === 'function') {\n scheduleFlush = attemptVertx();\n } else {\n scheduleFlush = useSetTimeout();\n }\n\n function then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n\n /**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n \n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n \n promise.then(function(value){\n // value === 1\n });\n ```\n \n Instead of writing the above, your code now simply becomes the following:\n \n ```javascript\n let promise = Promise.resolve(1);\n \n promise.then(function(value){\n // value === 1\n });\n ```\n \n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n */\n function resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n }\n\n var PROMISE_ID = Math.random().toString(36).substring(2);\n\n function noop() {}\n\n var PENDING = void 0;\n var FULFILLED = 1;\n var REJECTED = 2;\n\n var TRY_CATCH_ERROR = { error: null };\n\n function selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n TRY_CATCH_ERROR.error = error;\n return TRY_CATCH_ERROR;\n }\n }\n\n function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n }\n\n function handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n }\n\n function handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n }\n\n function handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === TRY_CATCH_ERROR) {\n reject(promise, TRY_CATCH_ERROR.error);\n TRY_CATCH_ERROR.error = null;\n } else if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n }\n\n function resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n }\n\n function publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n }\n\n function fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n }\n\n function reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n }\n\n function subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n }\n\n function publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n }\n\n function invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = void 0,\n failed = void 0;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n\n function initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n }\n\n var id = 0;\n function nextId() {\n return id++;\n }\n\n function makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n }\n\n function validationError() {\n return new Error('Array Methods must be provided an Array');\n }\n\n var Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n if (resolve$$1 === resolve$1) {\n var _then = getThen(entry);\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n }();\n\n /**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n \n Example:\n \n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n \n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n \n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n \n Example:\n \n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n \n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n \n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n */\n function all(entries) {\n return new Enumerator(this, entries).promise;\n }\n\n /**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n \n Example:\n \n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n \n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n \n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n \n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n \n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n \n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n \n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n \n An example real-world use case is implementing timeouts:\n \n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n \n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n */\n function race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n }\n\n /**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n \n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n \n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n \n Instead of writing the above, your code now simply becomes the following:\n \n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n \n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n \n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n */\n function reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n }\n\n function needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n \n Terminology\n -----------\n \n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n \n A promise can be in one of three states: pending, fulfilled, or rejected.\n \n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n \n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n \n \n Basic Usage:\n ------------\n \n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n \n // on failure\n reject(reason);\n });\n \n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n \n Advanced Usage:\n ---------------\n \n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n \n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n \n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n \n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n \n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n \n Unlike callbacks, promises are great composable primitives.\n \n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n \n return values;\n });\n ```\n \n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n */\n\n var Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n }();\n\n Promise$1.prototype.then = then;\n Promise$1.all = all;\n Promise$1.race = race;\n Promise$1.resolve = resolve$1;\n Promise$1.reject = reject$1;\n Promise$1._setScheduler = setScheduler;\n Promise$1._setAsap = setAsap;\n Promise$1._asap = asap;\n\n /*global self*/\n function polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n }\n\n // Strange compat..\n Promise$1.polyfill = polyfill;\n Promise$1.Promise = Promise$1;\n\n return Promise$1;\n});\n\n//# sourceMappingURL=es6-promise.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(53), __webpack_require__(9)))\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function binder() {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(that, args.concat(slice.call(arguments)));\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = __webpack_require__(47);\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') {\n\t\treturn false;\n\t}\n\tif (typeof Symbol !== 'function') {\n\t\treturn false;\n\t}\n\tif (_typeof(origSymbol('foo')) !== 'symbol') {\n\t\treturn false;\n\t}\n\tif (_typeof(Symbol('bar')) !== 'symbol') {\n\t\treturn false;\n\t}\n\n\treturn hasSymbolSham();\n};\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9)))\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* eslint complexity: [2, 17], max-statements: [2, 33] */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') {\n\t\treturn false;\n\t}\n\tif (_typeof(Symbol.iterator) === 'symbol') {\n\t\treturn true;\n\t}\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') {\n\t\treturn false;\n\t}\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') {\n\t\treturn false;\n\t}\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') {\n\t\treturn false;\n\t}\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) {\n\t\treturn false;\n\t} // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) {\n\t\treturn false;\n\t}\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) {\n\t\treturn false;\n\t}\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) {\n\t\treturn false;\n\t}\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n\t\treturn false;\n\t}\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n};\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * \n */\n\n(function (window, document) {\n 'use strict';\n\n // Exits early if all IntersectionObserver and IntersectionObserverEntry\n // features are natively supported.\n\n if ('IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\n get: function get() {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n }\n\n /**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observering a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\n var registry = [];\n\n /**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\n function IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n this.intersectionRatio = intersectionArea / targetArea;\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n }\n\n /**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\n function IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function (margin) {\n return margin.value + margin.unit;\n }).join(' ');\n }\n\n /**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\n IntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n /**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\n IntersectionObserver.prototype.POLL_INTERVAL = null;\n\n /**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\n IntersectionObserver.prototype.observe = function (target) {\n // If the target is already being observed, do nothing.\n if (this._observationTargets.some(function (item) {\n return item.element == target;\n })) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({ element: target, entry: null });\n this._monitorIntersections();\n this._checkForIntersections();\n };\n\n /**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\n IntersectionObserver.prototype.unobserve = function (target) {\n this._observationTargets = this._observationTargets.filter(function (item) {\n\n return item.element != target;\n });\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n this._unregisterInstance();\n }\n };\n\n /**\n * Stops observing all target elements for intersection changes.\n */\n IntersectionObserver.prototype.disconnect = function () {\n this._observationTargets = [];\n this._unmonitorIntersections();\n this._unregisterInstance();\n };\n\n /**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\n IntersectionObserver.prototype.takeRecords = function () {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n };\n\n /**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\n IntersectionObserver.prototype._initThresholds = function (opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function (t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n };\n\n /**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\n IntersectionObserver.prototype._parseRootMargin = function (opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function (margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return { value: parseFloat(parts[1]), unit: parts[2] };\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n };\n\n /**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibilty state is visible.\n * @private\n */\n IntersectionObserver.prototype._monitorIntersections = function () {\n if (!this._monitoringIntersections) {\n this._monitoringIntersections = true;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n this._monitoringInterval = setInterval(this._checkForIntersections, this.POLL_INTERVAL);\n } else {\n addEvent(window, 'resize', this._checkForIntersections, true);\n addEvent(document, 'scroll', this._checkForIntersections, true);\n\n if ('MutationObserver' in window) {\n this._domObserver = new MutationObserver(this._checkForIntersections);\n this._domObserver.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n }\n };\n\n /**\n * Stops polling for intersection changes.\n * @private\n */\n IntersectionObserver.prototype._unmonitorIntersections = function () {\n if (this._monitoringIntersections) {\n this._monitoringIntersections = false;\n\n clearInterval(this._monitoringInterval);\n this._monitoringInterval = null;\n\n removeEvent(window, 'resize', this._checkForIntersections, true);\n removeEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this._domObserver) {\n this._domObserver.disconnect();\n this._domObserver = null;\n }\n }\n };\n\n /**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\n IntersectionObserver.prototype._checkForIntersections = function () {\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function (item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget && this._computeTargetAndRootIntersection(target, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n };\n\n /**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\n IntersectionObserver.prototype._computeTargetAndRootIntersection = function (target, rootRect) {\n\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var targetRect = getBoundingClientRect(target);\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ? window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return;\n\n if (parent == this.root || parent == document) {\n atRoot = true;\n parentRect = rootRect;\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n if (parent != document.body && parent != document.documentElement && parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n\n if (!intersectionRect) break;\n }\n parent = getParentNode(parent);\n }\n return intersectionRect;\n };\n\n /**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {Object} The expanded root rect.\n * @private\n */\n IntersectionObserver.prototype._getRootRect = function () {\n var rootRect;\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n };\n\n /**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {Object} rect The rect object to expand.\n * @return {Object} The expanded rect.\n * @private\n */\n IntersectionObserver.prototype._expandRectByRootMargin = function (rect) {\n var margins = this._rootMarginValues.map(function (margin, i) {\n return margin.unit == 'px' ? margin.value : margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n };\n\n /**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\n IntersectionObserver.prototype._hasCrossedThreshold = function (oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ? oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ? newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio || threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n };\n\n /**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\n IntersectionObserver.prototype._rootIsInDom = function () {\n return !this.root || containsDeep(document, this.root);\n };\n\n /**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\n IntersectionObserver.prototype._rootContainsTarget = function (target) {\n return containsDeep(this.root || document, target);\n };\n\n /**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\n IntersectionObserver.prototype._registerInstance = function () {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n };\n\n /**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\n IntersectionObserver.prototype._unregisterInstance = function () {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n };\n\n /**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\n function now() {\n return window.performance && performance.now && performance.now();\n }\n\n /**\n * Throttles a function and delays its executiong, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\n function throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function () {\n fn();\n timer = null;\n }, timeout);\n }\n };\n }\n\n /**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\n function addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n }\n\n /**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\n function removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n }\n\n /**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object} The intersection rect or undefined if no intersection\n * is found.\n */\n function computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return width >= 0 && height >= 0 && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n }\n\n /**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {Object} The (possibly shimmed) rect of the element.\n */\n function getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n }\n\n /**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {Object} The empty rect.\n */\n function getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n }\n\n /**\n * Checks to see if a parent element contains a child elemnt (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\n function containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n }\n\n /**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\n function getParentNode(node) {\n var parent = node.parentNode;\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n return parent;\n }\n\n // Exposes the constructors globally.\n window.IntersectionObserver = IntersectionObserver;\n window.IntersectionObserverEntry = IntersectionObserverEntry;\n})(window, document);\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateObject(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && _typeof(Symbol.toStringTag) === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar has = __webpack_require__(3);\nvar regexExec = RegExp.prototype.exec;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar tryRegexExecCall = function tryRegexExec(value) {\n\ttry {\n\t\tvar lastIndex = value.lastIndex;\n\t\tvalue.lastIndex = 0;\n\n\t\tregexExec.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\tvalue.lastIndex = lastIndex;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar regexClass = '[object RegExp]';\nvar hasToStringTag = typeof Symbol === 'function' && _typeof(Symbol.toStringTag) === 'symbol';\n\nmodule.exports = function isRegex(value) {\n\tif (!value || (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') {\n\t\treturn false;\n\t}\n\tif (!hasToStringTag) {\n\t\treturn toStr.call(value) === regexClass;\n\t}\n\n\tvar descriptor = gOPD(value, 'lastIndex');\n\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\tif (!hasLastIndexDataProperty) {\n\t\treturn false;\n\t}\n\n\treturn tryRegexExecCall(value);\n};\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = __webpack_require__(46)();\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isRealSymbolObject(value) {\n\t\tif (_typeof(value.valueOf()) !== 'symbol') {\n\t\t\treturn false;\n\t\t}\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\n\tmodule.exports = function isSymbol(value) {\n\t\tif ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'symbol') {\n\t\t\treturn true;\n\t\t}\n\t\tif (toStr.call(value) !== '[object Symbol]') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false && value;\n\t};\n}\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = __webpack_require__(25); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];\n\tvar equalsConstructorPrototype = function equalsConstructorPrototype(o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && _typeof(window[k]) === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}();\n\tvar equalsConstructorPrototypeIfNotBuggy = function equalsConstructorPrototypeIfNotBuggy(o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.observer = undefined;\n\nvar _background = __webpack_require__(11);\n\nvar _svgTransitionManager = __webpack_require__(60);\n\nvar _subtitles = __webpack_require__(62);\n\nvar _googleAnalytics = __webpack_require__(27);\n\nvar observer = exports.observer = function observer(sectionElements, videoElements, muteButton, shareButtons, setSectionId, byline) {\n var options = {\n threshold: [0]\n //rootMargin: `-98% 0px -2% 0px`\n };\n\n var callback = function callback(changes) {\n changes.forEach(function (change, i) {\n var target = change.target,\n isIntersecting = change.isIntersecting,\n intersectionRatio = change.intersectionRatio;\n\n\n var backgroundId = target.getAttribute('data-background-id');\n var backgroundEl = document.getElementById(backgroundId);\n\n if (isIntersecting) {\n setSectionId(backgroundId);\n (0, _googleAnalytics.trackAction)('LOAD_SUCCESS/' + backgroundId);\n backgroundEl.classList.add(_background.visible);\n\n if (target.getAttribute('data-share')) {\n shareButtons.classList.add(_background.visible);\n } else {\n shareButtons.classList.remove(_background.visible);\n }\n\n if (target.getAttribute('data-video-has-sound')) {\n muteButton.classList.add(_background.visible);\n } else {\n muteButton.classList.remove(_background.visible);\n }\n\n if (target.getAttribute('data-map-element')) {\n (0, _svgTransitionManager.transitionSvg)(target);\n }\n if (target.getAttribute('data-video-element')) {\n var bgVideo = backgroundEl.querySelector('video');\n if (target.getAttribute('data-video-subtitles') && !target.getAttribute('data-already-subtitled')) {\n (0, _subtitles.fakeSubtitles)(bgVideo, target.getAttribute('data-video-subtitles'));\n }\n //fakeSubtitles(bgVideo)\n\n bgVideo.play();\n var videoIsPlaying = !bgVideo.paused;\n if (videoIsPlaying) {\n (0, _googleAnalytics.trackAction)('VIDEO_PLAYING/' + backgroundId);\n }\n } else if (target.getAttribute('data-background-byline')) {\n //byline.classList.add(visible)\n }\n } else {\n backgroundEl.classList.remove(_background.visible);\n if (target.getAttribute('data-map-element')) {\n (0, _svgTransitionManager.resetSvg)(target);\n }\n if (target.getAttribute('data-video-element')) {\n var _bgVideo = backgroundEl.querySelector('video');\n _bgVideo.pause();\n }\n }\n });\n };\n var observer = new IntersectionObserver(callback, options);\n observer.POLL_INTERVAL = 500;\n sectionElements.forEach(function (sectionElement) {\n return observer.observe(sectionElement);\n });\n};\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.seeMoreHandler = exports.bylineHandler = undefined;\n\nvar _section8_byline = __webpack_require__(65);\n\nvar bylineHandler = exports.bylineHandler = {\n property: 'data-background-byline',\n load: function load(card) {\n var elem = document.createElement('div');\n\n elem.setAttribute('style', 'background-color: #06090a; background-size: cover; background-position-x: center;');\n elem.id = card.getAttribute('data-background-id');\n //elem.innerHTML = renderSeeMoreContent()\n return elem;\n }\n};\n\nvar seeMoreHandler = exports.seeMoreHandler = {\n property: 'data-background-see-more',\n load: function load(card) {\n var elem = document.createElement('div');\n\n elem.setAttribute('style', 'background-color: #06090a; background-size: cover; background-position-x: center;');\n elem.id = card.getAttribute('data-background-id');\n //elem.innerHTML = renderBylineContent()\n return elem;\n }\n};\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fullscreenVideoHandler = undefined;\n\nvar _polopolyImage = __webpack_require__(10);\n\nvar _serumImagecropUtils = __webpack_require__(5);\n\nvar _index = __webpack_require__(2);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fullscreenVideoHandler = exports.fullscreenVideoHandler = {\n property: 'data-fullscreen-video-element',\n load: function load(card) {\n var elem = document.createElement('div');\n var id = card.getAttribute('data-background-id');\n elem.id = id;\n\n var polopolyId = card.getAttribute('data-background-polopoly-id');\n\n var defaultUrl = (0, _serumImagecropUtils.createImageUrl)({ id: polopolyId, width: 1600, ratio: '1:1' });\n var desktopSourceSet = (0, _polopolyImage.createSrcSet)(polopolyId, '1:1', _serumImagecropUtils.widths);\n var mobileSourceSet = (0, _polopolyImage.createSrcSet)(polopolyId, '3:4', _serumImagecropUtils.widths);\n var backgroundImage = '\\n \\n \\n \\n \\n
\\n ';\n\n // const backgroundImage = card.getAttribute('data-background-image')\n // elem.setAttribute('style', `background-image: url(${backgroundImage}); background-size: cover; background-position-x: center;`)\n elem.innerHTML = backgroundImage;\n return elem;\n }\n};\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar imageHandler = exports.imageHandler = {\n property: 'data-background-image',\n load: function load(card) {\n var elem = document.createElement('div');\n\n var backgroundImage = card.getAttribute('data-background-image');\n elem.setAttribute('style', 'background-image: url(' + backgroundImage + '); background-size: cover; background-position-x: center;');\n elem.id = card.getAttribute('data-background-id');\n\n return elem;\n }\n};\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.loadSections = loadSections;\n\nvar _background = __webpack_require__(11);\n\nvar _image = __webpack_require__(57);\n\nvar _video = __webpack_require__(61);\n\nvar _map = __webpack_require__(59);\n\nvar _polopolyImage = __webpack_require__(10);\n\nvar _fullscreenVideo = __webpack_require__(56);\n\nvar _byline = __webpack_require__(55);\n\nvar _getLogo = __webpack_require__(63);\n\nvar _getShareButtons = __webpack_require__(64);\n\nvar _muteButtons = __webpack_require__(28);\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar sectionHandlers = [_fullscreenVideo.fullscreenVideoHandler, _map.mapHandler, _image.imageHandler, _polopolyImage.polopolyIdHandler, _video.videoHandler, _byline.bylineHandler, _byline.seeMoreHandler];\n\nfunction loadSections(sectionElements, backgroundContainer, overlayContainer) {\n [].concat(_toConsumableArray(sectionElements)).forEach(function (card, idx) {\n var handler = sectionHandlers.find(function (handler) {\n return !!card.getAttribute(handler.property);\n });\n\n var elem = handler.load(card);\n elem.className = _background.background;\n (0, _getShareButtons.getShareButtons)();\n\n backgroundContainer.appendChild(elem);\n backgroundContainer.setAttribute('aria-hidden', 'true');\n\n if (handler.init) {\n try {\n handler.init(card, elem);\n } catch (e) {\n console.error('Error initializing background', e);\n }\n }\n\n if (idx === 0) {\n elem.className = _background.background + ' ' + _background.visible;\n }\n if (card.getAttribute('data-background-gradient')) {\n elem.classList.add(_background.backgroundGradient);\n }\n });\n\n overlayContainer.innerHTML += (0, _getLogo.getLogo)() + ' ' + (0, _getShareButtons.getShareButtons)() + ' ' + (0, _muteButtons.getInitialMuteButton)();\n}\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mapHandler = undefined;\n\nvar _polopolyImage = __webpack_require__(10);\n\nvar _serumImagecropUtils = __webpack_require__(5);\n\nvar _index = __webpack_require__(2);\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _map = __webpack_require__(68);\n\nvar _map2 = _interopRequireDefault(_map);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mapHandler = exports.mapHandler = {\n property: 'data-map-element',\n load: function load(card) {\n var elem = document.createElement('div');\n var id = card.getAttribute('data-background-id');\n elem.id = id;\n\n var polopolyId = card.getAttribute('data-background-polopoly-id');\n\n var defaultUrl = (0, _serumImagecropUtils.createImageUrl)({\n id: polopolyId,\n width: 1600,\n ratio: '1:1'\n });\n var desktopSourceSet = (0, _polopolyImage.createSrcSet)(polopolyId, '1:1', _serumImagecropUtils.widths);\n var mobileSourceSet = (0, _polopolyImage.createSrcSet)(polopolyId, '3:4', _serumImagecropUtils.widths);\n\n var mapEl = '\\n
\\n ' + mapSVG(id) + '\\n ' + mobileMapSVG(id) + '\\n ' + pathSVG(id) + '\\n
\\n ';\n elem.innerHTML = mapEl;\n return elem;\n }\n};\n\nvar mapSVG = function mapSVG(id) {\n return '\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ';\n};\n\nvar mobileMapSVG = function mobileMapSVG(id) {\n\n return '\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ';\n};\n\nvar pathSVG = function pathSVG(id) {\n return '\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ';\n};\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar resetSvg = exports.resetSvg = function resetSvg(element) {\n var id = element.getAttribute('data-background-id');\n var mapString = element.getAttribute('data-map-string');\n var svgElement = document.getElementById('svg-path-background-' + id);\n try {\n svgElement.setAttribute('class', '');\n } catch (ex) {\n console.error(ex);\n }\n};\n\nvar transitionSvg = exports.transitionSvg = function transitionSvg(element) {\n var id = element.getAttribute('data-background-id');\n var mapString = element.getAttribute('data-map-string');\n var svgElement = document.getElementById('svg-path-background-' + id);\n try {\n svgElement.setAttribute('class', mapString);\n } catch (ex) {\n console.error(ex, svgElement, mapString);\n }\n};\n\nvar getAnimation = function getAnimation(mapString, id) {\n switch (mapString) {\n case 'to-damaskus':\n return toDamaskus(id);\n case 'from-damaskus-to-homs':\n return fromDamaskusToHoms(id);\n case 'from-homs-to-aleppo':\n return fromHomsToAleppo(id);\n default:\n return toDamaskus(id);\n }\n};\n\nvar toDamaskus = function toDamaskus(id) {\n return [{\n id: id + '-svg-dot-damaskus',\n style: 'transition: 1s all ease; opacity: 1'\n }, {\n id: id + '-svg-text-damaskus',\n style: 'transition: 1s 1s all ease; opacity: 1'\n }];\n};\n\nvar fromDamaskusToHoms = function fromDamaskusToHoms(id) {\n return [\n /**\n * Her skal størrelsen på teksten endres\n */\n {\n id: id + '-svg-from-damaskus-to-homs',\n style: 'transition: 2s .5s all ease; stroke-dashoffset: 0;'\n }, {\n id: id + '-svg-dot-homs',\n style: 'transition: 2s 2.5s all ease; opacity: 1'\n }, {\n id: id + '-svg-text-homs',\n style: 'transition: 2s 4s all ease; opacity: 1'\n }];\n};\n\nvar fromHomsToAleppo = function fromHomsToAleppo(id) {\n return [\n /**\n * Her skal størrelsen på teksten endres\n */\n {\n id: id + '-svg-from-homs-to-aleppo',\n style: 'transition: 2s .5s all ease; stroke-dashoffset: 0;'\n }, {\n id: id + '-svg-dot-aleppo',\n style: 'transition: 2s 2.5s all ease; opacity: 1'\n }, {\n id: id + '-svg-text-aleppo',\n style: 'transition: 2s 4s all ease; opacity: 1'\n }];\n};\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.videoHandler = undefined;\n\nvar _video = __webpack_require__(4);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _alignmentClasses = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// import { getInitialMuteButton } from './muteButtons'\n\nvar videoHandler = exports.videoHandler = {\n property: 'data-video-element',\n load: function load(card) {\n var elem = document.createElement('div');\n elem.id = card.getAttribute('data-background-id');\n\n var videoSrc = {\n poster: card.getAttribute('data-video-poster-image') || '',\n mp4: card.getAttribute('data-video-mp4') || '',\n webm: card.getAttribute('data-video-webm') || '',\n subtitles: card.getAttribute('data-video-subtitles') || ''\n };\n\n var desktopAlignment = card.getAttribute('data-background-align') || '';\n var mobileAlignment = card.getAttribute('data-background-align-mobile') || '';\n\n var alignmentClasses = '';\n if (desktopAlignment || mobileAlignment) {\n alignmentClasses = (0, _alignmentClasses.getPositionClasses)(desktopAlignment, mobileAlignment);\n }\n\n var webmElement = videoSrc.webm ? '' : '';\n var mp4Element = videoSrc.mp4 ? '' : '';\n\n var trackElement = videoSrc.subtitles ? '' : '';\n\n var videoElement = '\\n \\n ' + webmElement + '\\n ' + mp4Element + '\\n Your browser does not support the video tag. We suggest you upgrade your browser.\\n \\n
\\n ';\n elem.innerHTML = videoElement;\n\n return elem;\n }\n};\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fakeSubtitles = undefined;\n\nvar _video = __webpack_require__(4);\n\nvar fakeSubtitles = exports.fakeSubtitles = function fakeSubtitles(videoElement, subtitleId) {\n var subtitleArray = subtitle[subtitleId];\n addSubtitle(videoElement, subtitleArray);\n videoElement.setAttribute('data-already-subtitled', true);\n var tracks = videoElement.textTracks[0];\n\n if (!tracks) {\n return;\n }\n\n videoElement.controls = false;\n tracks.mode = 'hidden';\n var cues = tracks.cues;\n\n var subtitleContainer = videoElement.parentElement.querySelector('.' + _video.subtitlescontainer);\n\n var replaceText = function replaceText(text) {\n subtitleContainer.innerHTML = '' + text + '';\n };\n var hideText = function hideText() {\n subtitleContainer.style.display = 'none';\n };\n\n var showText = function showText() {\n subtitleContainer.style.display = 'block';\n };\n\n var cueEnter = function cueEnter(text) {\n replaceText('text');\n showText();\n };\n\n var cueExit = function cueExit() {\n hideText();\n };\n var videoLoaded = function videoLoaded(e) {\n var _loop = function _loop(i) {\n var cue = cues[i];\n try {\n cue.onenter = function () {\n replaceText(cue.text);\n showText();\n };\n cue.onexit = hideText;\n } catch (ex) {\n // hehe\n }\n };\n\n for (var i in cues) {\n _loop(i);\n }\n };\n videoElement.addEventListener('play', videoLoaded);\n};\n\nfunction addSubtitle(videoElement, arr) {\n var track = videoElement.addTextTrack('subtitles', 'Norsk', 'no');\n try {\n arr.forEach(function (a) {\n return track.addCue(new VTTCue(a.start, a.end, a.text));\n });\n } catch (ex) {\n arr.forEach(function (a) {\n return track.addCue(new TextTrackCue(a.start, a.end, a.text));\n });\n }\n}\n\nvar standup_homs = [{\n start: 1,\n end: 3,\n text: 'Her var syriske opprørsstyrker inntil nylig.'\n}, {\n start: 4,\n end: 8,\n text: 'I dette huset på frontlinjen hadde de sine skarpskytterposisjoner.'\n}, {\n start: 9,\n end: 12,\n text: 'Nå er de blitt drevet ut av den syriske regjeringshæren,'\n}, {\n start: 13,\n end: 17,\n text: 'og dette er det siste nabolaget i Homs by som de mistet.'\n}];\n\nvar standup_aleppo = [{\n start: 0.5,\n end: 5.5,\n text: 'Gamlebyen i Aleppo var en av de mest atmosfæriske byene i hele midtøsten.'\n}, {\n start: 5.5,\n end: 9.5,\n text: 'Her var det masse butikker og masse folk.'\n}, {\n start: 9.5,\n end: 14.5,\n text: 'Nå er det nesten ingenting igjen. Det er ikke et menneske i denne gaten.'\n}, {\n start: 16.5,\n end: 20,\n text: 'Det føles nesten som å bevege seg gjennom en spøkelsesby.'\n}];\n\nvar standup_maskaneh = [{\n start: 1,\n end: 6.5,\n text: 'Her var IS inntil nylig. Dette er rester av et av deres skilt.'\n}, {\n start: 6.5,\n end: 10.5,\n text: 'Nå har den syriske hæren drevet dem tilbake i dette området.'\n}, {\n start: 10.5,\n end: 14,\n text: 'De blir presset tilbake i hele Syria.'\n}];\n\nvar subtitle = {\n standup_homs: standup_homs,\n standup_aleppo: standup_aleppo,\n standup_maskaneh: standup_maskaneh\n};\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLogo = undefined;\n\nvar _index = __webpack_require__(2);\n\nvar getLogo = exports.getLogo = function getLogo() {\n return '\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ';\n};\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getShareButtons = undefined;\n\nvar _index = __webpack_require__(2);\n\nvar getShareButtons = exports.getShareButtons = function getShareButtons() {\n return '\\n \\n ';\n};\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bylineSection = undefined;\n\nvar _index = __webpack_require__(2);\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _byline = __webpack_require__(67);\n\nvar _byline2 = _interopRequireDefault(_byline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar shareButtons = function shareButtons() {\n return '\\n \\n';\n};\n\nvar seeMore = function seeMore() {\n return '\\n
\\n

L\\xE6r og forst\\xE5 mer om Syria

\\n \\n Alt om borgerkrigen i Syria\\n \\n \\n \\n \\n
\\n \\n
\\n
\\n ';\n};\n\nvar byline = function byline() {\n return '\\n
\\n
    \\n\\n
  • \\n

    Journalist

    \\n

    Kristin Solberg

    \\n

  • \\n\\n
  • \\n

    Digital historieutvikling

    \\n

    Ragnar Aasen Rognstad, Kari Anne Gisestad Andersen og Johannes Odland

    \\n
  • \\n\\n
  • \\n

    Nyhetsredakt\\xF8r

    \\n

    Alexandra Beverfjord

    \\n
  • \\n\\n
  • \\n

    Ansvarlig redakt\\xF8r

    \\n

    Thor Gjermund Eriksen

    \\n
  • \\n\\n
  • \\n

    Nettsjef

    \\n

    Hildegunn Soldal

    \\n
  • \\n\\n
  • \\n

    \\n Publisert 27.08.2017\\n

    \\n
  • \\n
\\n
\\n ';\n};\n\nvar bylineSection = exports.bylineSection = function bylineSection(id) {\n\n return '\\n \\n ' + shareButtons() + '\\n ' + seeMore() + '\\n ' + byline() + '\\n \\n ';\n};\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"align-top\":\"nrk-align-top\",\"align-center\":\"nrk-align-center\",\"align-left\":\"nrk-align-left\",\"align-right\":\"nrk-align-right\",\"align-middle\":\"nrk-align-middle\",\"align-bottom\":\"nrk-align-bottom\",\"mobile-align-top\":\"nrk-mobile-align-top\",\"mobile-align-center\":\"nrk-mobile-align-center\",\"mobile-align-left\":\"nrk-mobile-align-left\",\"mobile-align-right\":\"nrk-mobile-align-right\",\"mobile-align-middle\":\"nrk-mobile-align-middle\",\"mobile-align-bottom\":\"nrk-mobile-align-bottom\"};\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"bylineSection\":\"nrk-bylineSection\",\"byline--sharebutton--container\":\"nrk-byline--sharebutton--container\",\"byline--sharebutton--group\":\"nrk-byline--sharebutton--group\",\"byline--sharebutton--item\":\"nrk-byline--sharebutton--item\",\"seemore--block\":\"nrk-seemore--block\",\"byline--block\":\"nrk-byline--block\",\"seemore--heading\":\"nrk-seemore--heading\",\"seemore--heading-link\":\"nrk-seemore--heading-link\",\"seemore--link--list--wrapper\":\"nrk-seemore--link--list--wrapper\",\"seemore--link--list\":\"nrk-seemore--link--list\",\"seemore--link--item\":\"nrk-seemore--link--item\",\"seemore--link--image\":\"nrk-seemore--link--image\",\"byline--credit--list\":\"nrk-byline--credit--list\",\"byline--credit--list--item\":\"nrk-byline--credit--list--item\",\"byline--credit--list--item--role\":\"nrk-byline--credit--list--item--role\",\"byline--credit--list--item--names\":\"nrk-byline--credit--list--item--names\"};\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"damaskus\":\"nrk-damaskus\",\"dot-damaskus\":\"nrk-dot-damaskus\",\"dot-damaskus-blink\":\"nrk-dot-damaskus-blink\",\"blink\":\"nrk-blink\",\"damaskus-to-homs\":\"nrk-damaskus-to-homs\",\"path-damaskus-homs\":\"nrk-path-damaskus-homs\",\"dot-homs\":\"nrk-dot-homs\",\"dot-homs-blink\":\"nrk-dot-homs-blink\",\"homs-to-aleppo\":\"nrk-homs-to-aleppo\",\"path-homs-aleppo\":\"nrk-path-homs-aleppo\",\"dot-aleppo\":\"nrk-dot-aleppo\",\"dot-aleppo-blink\":\"nrk-dot-aleppo-blink\",\"aleppo-to-maskanah\":\"nrk-aleppo-to-maskanah\",\"path-aleppo-maskanah\":\"nrk-path-aleppo-maskanah\",\"dot-maskanah\":\"nrk-dot-maskanah\",\"dot-maskanah-blink\":\"nrk-dot-maskanah-blink\",\"mobile-map\":\"nrk-mobile-map\",\"desktop-map\":\"nrk-desktop-map\",\"mapContainer\":\"nrk-mapContainer\"};\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(29);\nmodule.exports = __webpack_require__(30);\n\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// index-6db9b7.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 69);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 6db9b7be2b420cd7f559","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n\n\n\n// WEBPACK FOOTER //\n// ./~/define-properties/index.js","'use strict';\n\nmodule.exports = require('./es2015');\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-abstract/es6.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"sections\":\"nrk-sections\",\"section\":\"nrk-section\",\"sectionAfterStandup\":\"nrk-sectionAfterStandup\",\"sectionBeforeStandup\":\"nrk-sectionBeforeStandup\",\"standup\":\"nrk-standup\",\"introBlock\":\"nrk-introBlock\",\"headingBlock\":\"nrk-headingBlock\",\"block\":\"nrk-block\",\"block__right\":\"nrk-block__right\",\"block__left\":\"nrk-block__left\",\"block__spaceAfter\":\"nrk-block__spaceAfter\",\"block__lessPadding\":\"nrk-block__lessPadding\",\"block__map\":\"nrk-block__map\",\"block__mapHeadingBlock\":\"nrk-block__mapHeadingBlock\",\"block__mapNoMarginBottom\":\"nrk-block__mapNoMarginBottom\",\"block__noMarginBottom\":\"nrk-block__noMarginBottom\",\"block__lastBlock\":\"nrk-block__lastBlock\",\"super\":\"nrk-super\",\"super__content\":\"nrk-super__content\",\"blurred\":\"nrk-blurred\",\"overlay\":\"nrk-overlay\",\"darkedout\":\"nrk-darkedout\",\"NRKlogo\":\"nrk-NRKlogo\",\"shareButtonGroup\":\"nrk-shareButtonGroup\",\"visible\":\"nrk-visible\",\"shareButton\":\"nrk-shareButton\",\"to-top\":\"nrk-to-top\",\"introBlockArrow\":\"nrk-introBlockArrow\",\"fadeIn\":\"nrk-fadeIn\",\"arrowBlink\":\"nrk-arrowBlink\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/shared/index.css\n// module id = 2\n// module chunks = 0","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n\n\n\n// WEBPACK FOOTER //\n// ./~/has/src/index.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"video\":\"nrk-video\",\"darkedout\":\"nrk-darkedout\",\"fullscreen--video\":\"nrk-fullscreen--video\",\"fullscreen--video--container\":\"nrk-fullscreen--video--container\",\"video-mute-button\":\"nrk-video-mute-button\",\"video-mute-svg-muted-hover\":\"nrk-video-mute-svg-muted-hover\",\"video-mute-svg-unmuted-hover\":\"nrk-video-mute-svg-unmuted-hover\",\"visible\":\"nrk-visible\",\"subtitlescontainer\":\"nrk-subtitlescontainer\",\"subtitles\":\"nrk-subtitles\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/shared/stylesheets/video.css\n// module id = 4\n// module chunks = 0","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.nrkSerumImagecropUtils = {})));\n}(this, (function (exports) { 'use strict';\n\n var isPolopolyIdRegex = /^[1-9]{1,2}\\.\\d+$/;\n\n function isPolopolyId(id) {\n if (!id) {\n return false;\n }\n return isPolopolyIdRegex.test(id);\n }\n\n // prettier-ignore\n var widths = [100, 120, 150, 174, 200, 206, 225, 244, 250, 252, 300, 320, 350, 400, 450, 452, 460, 462, 500, 600, 650, 665, 682, 700, 734, 768, 900, 974, 1200, 1280, 1360, 1450, 1550, 1600, 1700, 1800, 1920, 2000, 2100, 2200, 2300, 2400];\n\n // prettier-ignore\n var ratios = ['1:1', '11', '16:9', '169', '16:3', '163', '3:4', '34'];\n\n // prettier-ignore\n var qualities = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0];\n\n var _baseUrl = 'https://nrk.no/serum/api/imagecrop/';\n\n function createUrl(_ref) {\n var id = _ref.id,\n ratio = _ref.ratio,\n width = _ref.width,\n quality = _ref.quality;\n\n var url = '' + _baseUrl + id;\n var queryString = createQueryString({ ratio: ratio, width: width, quality: quality });\n if (queryString) {\n url += '?' + queryString;\n }\n return url;\n }\n\n function createQueryString(_ref2) {\n var ratio = _ref2.ratio,\n width = _ref2.width,\n quality = _ref2.quality;\n\n if (!ratio && !width) {\n return quality ? 'quality=' + quality : '';\n }\n var ratioPart = ratio ? 'f' + ratio.replace(':', '') : '';\n var widthPart = width ? 'w' + width : '';\n var qualityPart = quality ? '&quality=' + quality : '';\n return 'cropid=' + ratioPart + widthPart + qualityPart;\n }\n\n function getClosestNumber(goal, targets) {\n if (!isValidGoal(goal)) {\n throw new Error('\\n getClosestNumber(goal, targets): passing a goal of ' + goal + '\\n is not supported. Pass a number');\n }\n if (!isValidTargets(targets)) {\n throw new Error('\\n getClosestNumber(goal, targets): targets ' + targets.toString() + ' is invald.\\n Pass an array of numbers');\n }\n if (!targets.length) {\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n return targets.reduce(function (prev, curr) {\n return Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev;\n });\n }\n\n function isValidGoal(goal) {\n return typeof goal === 'number';\n }\n\n function isValidTargets(targets) {\n if (!targets) {\n return false;\n }\n var isValid = true;\n for (var i = 0; i < targets.length; i++) {\n if (typeof targets[i] !== 'number') {\n isValid = false;\n break;\n }\n }\n // return targets.some((target) => {\n // return (typeof target !== 'number')\n // })\n return isValid;\n }\n\n function isValidRatio(ratio, supportedRatios) {\n if (!Array.isArray(supportedRatios)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\"isValidRatio(ratio, supportedRatios): supportedRatios '\" + supportedRatios + \"' is not supported. Pass an array of supported ratios\");\n }\n if (!ratio) {\n return false;\n }\n return supportedRatios.includes(ratio);\n }\n\n function isValidQuality(quality, supportedQualities) {\n if (!Array.isArray(supportedQualities)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\"isValidQuality(quality, supportedQualities): supportedQualities '\" + supportedQualities + \"' is not supported. Pass an array of supported qualities\");\n }\n if (!quality) {\n return false;\n }\n return supportedQualities.includes(quality);\n }\n\n function createImageUrl(options) {\n var polopolyId = options.id,\n width = options.width,\n ratio = options.ratio,\n quality = options.quality;\n\n\n if (!isPolopolyId(polopolyId)) {\n throw new Error('createSerumImageUrl(): invalid polopolyId. Got ' + polopolyId);\n }\n\n var args = {\n id: polopolyId,\n ratio: null,\n quality: 0.8,\n width: 0\n\n // If a ratio is provided, ensure that it is valid\n };if (hasOption(ratio)) {\n if (!isValidRatio(ratio, ratios)) {\n throw new Error('\\n createSerumImageUrl(): ratio ' + ratio + ' is not supported.\\n Supported ratios are ' + ratios.toString());\n }\n args.ratio = ratio;\n }\n\n // If a quality is provided, ensure that it is valid\n if (hasOption(quality)) {\n if (!isValidQuality(quality, qualities)) {\n throw new Error('\\n createSerumImageUrl(): quality ' + quality + ' is not supported.\\n Supported qualities are ' + qualities.toString());\n }\n args.quality = quality;\n }\n\n // If a width is provided, ensure that is is a positive integer\n if (hasOption(width)) {\n if (!isNumber(width) || width <= 0) {\n var errorMessage = 'createSerumImageUrl(): width must be a positive integer, got ' + width;\n throw new Error(errorMessage);\n }\n var isSupportedWidth = widths.includes(width);\n var closestWidth = getClosestNumber(width, widths);\n if (typeof closestWidth !== 'undefined' && closestWidth) {\n args.width = isSupportedWidth ? width : closestWidth;\n }\n }\n\n return createUrl(args);\n }\n\n function hasOption(option) {\n return typeof option !== 'undefined' && option;\n }\n\n function isNumber(number) {\n return Number.isInteger(number);\n }\n\n exports.createImageUrl = createImageUrl;\n exports.ratios = ratios;\n exports.widths = widths;\n exports.qualities = qualities;\n exports.isPolopolyId = isPolopolyId;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n// WEBPACK FOOTER //\n// ./~/@nrk/serum-imagecrop-utils/lib/index.js","'use strict';\n\n/* globals\n\tSet,\n\tMap,\n\tWeakSet,\n\tWeakMap,\n\n\tPromise,\n\n\tSymbol,\n\tProxy,\n\n\tAtomics,\n\tSharedArrayBuffer,\n\n\tArrayBuffer,\n\tDataView,\n\tUint8Array,\n\tFloat32Array,\n\tFloat64Array,\n\tInt8Array,\n\tInt16Array,\n\tInt32Array,\n\tUint8ClampedArray,\n\tUint16Array,\n\tUint32Array,\n*/\n\nvar undefined; // eslint-disable-line no-shadow-restricted-names\n\nvar ThrowTypeError = Object.getOwnPropertyDescriptor\n\t? (function () { return Object.getOwnPropertyDescriptor(arguments, 'callee').get; }())\n\t: function () { throw new TypeError(); };\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar generator; // = function * () {};\nvar generatorFunction = generator ? getProto(generator) : undefined;\nvar asyncFn; // async function() {};\nvar asyncFunction = asyncFn ? asyncFn.constructor : undefined;\nvar asyncGen; // async function * () {};\nvar asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\nvar asyncGenIterator = asyncGen ? asyncGen() : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'$ %Array%': Array,\n\t'$ %ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'$ %ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n\t'$ %ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'$ %ArrayPrototype%': Array.prototype,\n\t'$ %ArrayProto_entries%': Array.prototype.entries,\n\t'$ %ArrayProto_forEach%': Array.prototype.forEach,\n\t'$ %ArrayProto_keys%': Array.prototype.keys,\n\t'$ %ArrayProto_values%': Array.prototype.values,\n\t'$ %AsyncFromSyncIteratorPrototype%': undefined,\n\t'$ %AsyncFunction%': asyncFunction,\n\t'$ %AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n\t'$ %AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n\t'$ %AsyncGeneratorFunction%': asyncGenFunction,\n\t'$ %AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n\t'$ %AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n\t'$ %Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'$ %Boolean%': Boolean,\n\t'$ %BooleanPrototype%': Boolean.prototype,\n\t'$ %DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'$ %DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n\t'$ %Date%': Date,\n\t'$ %DatePrototype%': Date.prototype,\n\t'$ %decodeURI%': decodeURI,\n\t'$ %decodeURIComponent%': decodeURIComponent,\n\t'$ %encodeURI%': encodeURI,\n\t'$ %encodeURIComponent%': encodeURIComponent,\n\t'$ %Error%': Error,\n\t'$ %ErrorPrototype%': Error.prototype,\n\t'$ %eval%': eval, // eslint-disable-line no-eval\n\t'$ %EvalError%': EvalError,\n\t'$ %EvalErrorPrototype%': EvalError.prototype,\n\t'$ %Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'$ %Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n\t'$ %Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'$ %Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n\t'$ %Function%': Function,\n\t'$ %FunctionPrototype%': Function.prototype,\n\t'$ %Generator%': generator ? getProto(generator()) : undefined,\n\t'$ %GeneratorFunction%': generatorFunction,\n\t'$ %GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n\t'$ %Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'$ %Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'$ %Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'$ %Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'$ %Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'$ %Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n\t'$ %isFinite%': isFinite,\n\t'$ %isNaN%': isNaN,\n\t'$ %IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'$ %JSON%': JSON,\n\t'$ %JSONParse%': JSON.parse,\n\t'$ %Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'$ %MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'$ %MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n\t'$ %Math%': Math,\n\t'$ %Number%': Number,\n\t'$ %NumberPrototype%': Number.prototype,\n\t'$ %Object%': Object,\n\t'$ %ObjectPrototype%': Object.prototype,\n\t'$ %ObjProto_toString%': Object.prototype.toString,\n\t'$ %ObjProto_valueOf%': Object.prototype.valueOf,\n\t'$ %parseFloat%': parseFloat,\n\t'$ %parseInt%': parseInt,\n\t'$ %Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'$ %PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n\t'$ %PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n\t'$ %Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n\t'$ %Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n\t'$ %Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n\t'$ %Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'$ %RangeError%': RangeError,\n\t'$ %RangeErrorPrototype%': RangeError.prototype,\n\t'$ %ReferenceError%': ReferenceError,\n\t'$ %ReferenceErrorPrototype%': ReferenceError.prototype,\n\t'$ %Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'$ %RegExp%': RegExp,\n\t'$ %RegExpPrototype%': RegExp.prototype,\n\t'$ %Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'$ %SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'$ %SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n\t'$ %SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'$ %SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n\t'$ %String%': String,\n\t'$ %StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'$ %StringPrototype%': String.prototype,\n\t'$ %Symbol%': hasSymbols ? Symbol : undefined,\n\t'$ %SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n\t'$ %SyntaxError%': SyntaxError,\n\t'$ %SyntaxErrorPrototype%': SyntaxError.prototype,\n\t'$ %ThrowTypeError%': ThrowTypeError,\n\t'$ %TypedArray%': TypedArray,\n\t'$ %TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n\t'$ %TypeError%': TypeError,\n\t'$ %TypeErrorPrototype%': TypeError.prototype,\n\t'$ %Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'$ %Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n\t'$ %Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'$ %Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n\t'$ %Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'$ %Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n\t'$ %Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'$ %Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n\t'$ %URIError%': URIError,\n\t'$ %URIErrorPrototype%': URIError.prototype,\n\t'$ %WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'$ %WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n\t'$ %WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\t'$ %WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar key = '$ ' + name;\n\tif (!(key in INTRINSICS)) {\n\t\tthrow new SyntaxError('intrinsic ' + name + ' does not exist!');\n\t}\n\n\t// istanbul ignore if // hopefully this is impossible to test :-)\n\tif (typeof INTRINSICS[key] === 'undefined' && !allowMissing) {\n\t\tthrow new TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t}\n\treturn INTRINSICS[key];\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-abstract/GetIntrinsic.js","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n\n\n\n// WEBPACK FOOTER //\n// ./~/function-bind/index.js","'use strict';\n\nvar fnToStr = Function.prototype.toString;\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isCallable(value) {\n\tif (!value) { return false; }\n\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\tif (typeof value === 'function' && !value.prototype) { return true; }\n\tif (hasToStringTag) { return tryFunctionObject(value); }\n\tif (isES6ClassFn(value)) { return false; }\n\tvar strClass = toStr.call(value);\n\treturn strClass === fnClass || strClass === genClass;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/is-callable/index.js","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n// WEBPACK FOOTER //\n// (webpack)/buildin/global.js","import {\n widths as supportedWidths,\n createImageUrl\n} from '@nrk/serum-imagecrop-utils'\nimport { getPositionClasses } from '../../utils/alignment-classes'\n\nexport function createSrcSet(imageId, ratio, supportedWidths) {\n return supportedWidths.map((width) => {\n const imageUrl = createImageUrl({id: imageId, width, ratio})\n return `${imageUrl} ${width}w`\n }).join(', ')\n}\n\nexport const polopolyIdHandler = {\n property: 'data-background-polopoly-id',\n load: (card) => {\n const polopolyId = card.getAttribute('data-background-polopoly-id')\n\n const elem = document.createElement('div')\n const defaultUrl = createImageUrl({id: polopolyId, width: 1600, ratio: '1:1'})\n const desktopSourceSet = createSrcSet(polopolyId, '1:1', supportedWidths)\n const mobileSourceSet = createSrcSet(polopolyId, '3:4', supportedWidths)\n\n \n const imgStyle = card.getAttribute('data-align-top') ? \n \"min-width: 100%; min-height: 100%; position: relative; left: 50%; transform: translate3d(-50%, 0%, 0); top: 0%;\" : \n \"min-width: 100%; min-height: 100%; position: relative; left: 50%; transform: translate3d(-50%, -50%, 0); top: 50%;\"\n\n\n elem.innerHTML = `\n \n \n \n \n `\n elem.id = card.getAttribute('data-background-id')\n\n return elem\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/sections/polopoly-image/index.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"backgrounds\":\"nrk-backgrounds\",\"background\":\"nrk-background\",\"visible\":\"nrk-visible\",\"superoverlay\":\"nrk-superoverlay\",\"backgroundGradient\":\"nrk-backgroundGradient\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/shared/stylesheets/background.css\n// module id = 11\n// module chunks = 0","'use strict';\n\nvar ES = require('es-abstract/es6');\nvar $isNaN = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\nvar $isFinite = Number.isFinite || function isFinite(n) {\n\treturn typeof n === 'number' && global.isFinite(n);\n};\nvar indexOf = Array.prototype.indexOf;\n\nmodule.exports = function includes(searchElement) {\n\tvar fromIndex = arguments.length > 1 ? ES.ToInteger(arguments[1]) : 0;\n\tif (indexOf && !$isNaN(searchElement) && $isFinite(fromIndex) && typeof searchElement !== 'undefined') {\n\t\treturn indexOf.apply(this, arguments) > -1;\n\t}\n\n\tvar O = ES.ToObject(this);\n\tvar length = ES.ToLength(O.length);\n\tif (length === 0) {\n\t\treturn false;\n\t}\n\tvar k = fromIndex >= 0 ? fromIndex : Math.max(0, length + fromIndex);\n\twhile (k < length) {\n\t\tif (ES.SameValueZero(searchElement, O[k])) {\n\t\t\treturn true;\n\t\t}\n\t\tk += 1;\n\t}\n\treturn false;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/array-includes/implementation.js","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn Array.prototype.includes || implementation;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/array-includes/polyfill.js","'use strict';\nvar ES = require('es-abstract/es6');\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\n/*! https://mths.be/array-from v0.2.0 by @mathias */\nmodule.exports = function from(arrayLike) {\n\tvar defineProperty = supportsDescriptors ? Object.defineProperty : function put(object, key, descriptor) {\n\t\tobject[key] = descriptor.value;\n\t};\n\tvar C = this;\n\tif (arrayLike === null || typeof arrayLike === 'undefined') {\n\t\tthrow new TypeError('`Array.from` requires an array-like object, not `null` or `undefined`');\n\t}\n\tvar items = ES.ToObject(arrayLike);\n\n\tvar mapFn, T;\n\tif (typeof arguments[1] !== 'undefined') {\n\t\tmapFn = arguments[1];\n\t\tif (!ES.IsCallable(mapFn)) {\n\t\t\tthrow new TypeError('When provided, the second argument to `Array.from` must be a function');\n\t\t}\n\t\tif (arguments.length > 2) {\n\t\t\tT = arguments[2];\n\t\t}\n\t}\n\n\tvar len = ES.ToLength(items.length);\n\tvar A = ES.IsCallable(C) ? ES.ToObject(new C(len)) : new Array(len);\n\tvar k = 0;\n\tvar kValue, mappedValue;\n\twhile (k < len) {\n\t\tkValue = items[k];\n\t\tif (mapFn) {\n\t\t\tmappedValue = typeof T === 'undefined' ? mapFn(kValue, k) : ES.Call(mapFn, T, [kValue, k]);\n\t\t} else {\n\t\t\tmappedValue = kValue;\n\t\t}\n\t\tdefineProperty(A, k, {\n\t\t\t'configurable': true,\n\t\t\t'enumerable': true,\n\t\t\t'value': mappedValue,\n\t\t\t'writable': true\n\t\t});\n\t\tk += 1;\n\t}\n\tA.length = len;\n\treturn A;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/array.from/implementation.js","'use strict';\n\nvar ES = require('es-abstract/es6');\nvar implementation = require('./implementation');\n\nvar tryCall = function (fn) {\n\ttry {\n\t\tfn();\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nmodule.exports = function getPolyfill() {\n\tvar implemented = ES.IsCallable(Array.from)\n\t\t&& tryCall(function () { Array.from({ 'length': -Infinity }); })\n\t\t&& !tryCall(function () { Array.from([], undefined); });\n\n\treturn implemented ? Array.from : implementation;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/array.from/polyfill.js","'use strict';\n\nvar ES = require('es-abstract/es6');\n\nmodule.exports = function find(predicate) {\n\tvar list = ES.ToObject(this);\n\tvar length = ES.ToInteger(ES.ToLength(list.length));\n\tif (!ES.IsCallable(predicate)) {\n\t\tthrow new TypeError('Array#find: predicate must be a function');\n\t}\n\tif (length === 0) {\n\t\treturn undefined;\n\t}\n\tvar thisArg = arguments[1];\n\tfor (var i = 0, value; i < length; i++) {\n\t\tvalue = list[i];\n\t\tif (ES.Call(predicate, thisArg, [value, i, list])) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/array.prototype.find/implementation.js","'use strict';\n\nmodule.exports = function getPolyfill() {\n\t// Detect if an implementation exists\n\t// Detect early implementations which skipped holes in sparse arrays\n // eslint-disable-next-line no-sparse-arrays\n\tvar implemented = Array.prototype.find && [, 1].find(function () {\n\t\treturn true;\n\t}) !== 1;\n\n // eslint-disable-next-line global-require\n\treturn implemented ? Array.prototype.find : require('./implementation');\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/array.prototype.find/polyfill.js","'use strict';\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\n\nvar has = require('has');\n\nvar predicates = {\n // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n 'Property Descriptor': function isPropertyDescriptor(ES, Desc) {\n if (ES.Type(Desc) !== 'Object') {\n return false;\n }\n var allowed = {\n '[[Configurable]]': true,\n '[[Enumerable]]': true,\n '[[Get]]': true,\n '[[Set]]': true,\n '[[Value]]': true,\n '[[Writable]]': true\n };\n\n for (var key in Desc) { // eslint-disable-line\n if (has(Desc, key) && !allowed[key]) {\n return false;\n }\n }\n\n var isData = has(Desc, '[[Value]]');\n var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n if (isData && IsAccessor) {\n throw new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n }\n return true;\n }\n};\n\nmodule.exports = function assertRecord(ES, recordType, argumentName, value) {\n var predicate = predicates[recordType];\n if (typeof predicate !== 'function') {\n throw new $SyntaxError('unknown record type: ' + recordType);\n }\n if (!predicate(ES, value)) {\n throw new $TypeError(argumentName + ' must be a ' + recordType);\n }\n console.log(predicate(ES, value), value);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-abstract/helpers/assertRecord.js","var $isNaN = Number.isNaN || function (a) { return a !== a; };\n\nmodule.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-abstract/helpers/isFinite.js","module.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-abstract/helpers/isNaN.js","module.exports = function mod(number, modulo) {\n\tvar remain = number % modulo;\n\treturn Math.floor(remain >= 0 ? remain : remain + modulo);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-abstract/helpers/mod.js","module.exports = function sign(number) {\n\treturn number >= 0 ? 1 : -1;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-abstract/helpers/sign.js","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-to-primitive/helpers/isPrimitive.js","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n\n\n\n// WEBPACK FOOTER //\n// ./~/object-keys/index.js","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/object-keys/isArguments.js","import alignmentStyles from './../../shared/stylesheets/alignment/index.css'\n\nconst getClasses = (param, prefix) => {\n switch (param) {\n case 'top':\n return alignmentStyles[`${prefix ? prefix + '-' : ''}align-top`]\n case 'bottom':\n return alignmentStyles[`${prefix ? prefix + '-' : ''}align-bottom`]\n case 'middle':\n return alignmentStyles[`${prefix ? prefix + '-' : ''}align-middle`]\n case 'left':\n return alignmentStyles[`${prefix ? prefix + '-' : ''}align-left`]\n case 'right':\n return alignmentStyles[`${prefix ? prefix + '-' : ''}align-right`]\n case 'center':\n return alignmentStyles[`${prefix ? prefix + '-' : ''}align-center`]\n default:\n return ''\n }\n}\n\nexport const getPositionClasses = (desktopString = 'middle center', mobileString) => {\n \n const desktopStringArray = desktopString.split(' ')\n const desktopXAxis = getClasses(desktopStringArray[0])\n const desktopYAxis = getClasses(desktopStringArray[1])\n\n const desktopClasses = `${desktopXAxis} ${desktopYAxis}`\n if (!mobileString) {\n return desktopClasses\n }\n const mobileStringArray = mobileString.split(' ')\n const mobileXAxis = getClasses(mobileStringArray[0], 'mobile')\n const mobileYAxis = getClasses(mobileStringArray[1], 'mobile')\n const mobileClasses = `${mobileXAxis} ${mobileYAxis}`\n\n return `${desktopClasses} ${mobileClasses}`\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/utils/alignment-classes.js","let isTrackingEnabled = false\n// let label = null\n\nexport function gaInitialize (trackingEnabled) {\n isTrackingEnabled = trackingEnabled\n // label = name\n}\n\nexport function trackAction (action, label) {\n sendToGoogleAnalytics({\n category: 'dh-french-moland-kart',\n action,\n label\n })\n}\n\nfunction sendToGoogleAnalytics ({ category, action, label }) {\n if (window.ga && isTrackingEnabled) {\n window.ga('send', 'event', category, action, label)\n } else {\n if (typeof console !== 'undefined') {\n console.log(category, action, label)\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/utils/googleAnalytics.js","import videoStyles from '../../shared/stylesheets/video.css'\n\nexport const getInitialMuteButton = () => {\n return `\n \n ` \n}\n\nexport const getMutedButton = () => {\n return `\n \n \n \n \n \n \n \n \n \n \n \n \n ` \n}\n\nexport const getUnmutedButton = () => {\n return `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ` \n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/utils/muteButtons.js","/* eslint-disable global-require */\n\nrequire('array.prototype.find').shim()\nrequire('array.from').shim()\nrequire('array-includes').shim()\n\nrequire('intersection-observer')\n\n// Object.assign() is commonly used.\n// This polyfill use the native implementation if it's present and isn't buggy.\n// Object.assign = require('object-assign')\n\nif (typeof Promise === 'undefined') {\n require('es6-promise').polyfill()\n}\n\nNumber.isInteger = Number.isInteger || function(value) {\n return typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value\n}\n\n\n\n// WEBPACK FOOTER //\n// ./config/polyfills.js","/* global __NAMESPACE__ */\n/* eslint-disable max-params */\n\nimport styles from '../shared/index.css'\nimport {\n backgrounds,\n visible,\n superoverlay\n} from '../shared/stylesheets/background.css'\nimport videoStyles from '../shared/stylesheets/video.css'\nimport {\n loadSections\n} from './sections/index'\nimport {\n observer\n} from './intersection'\nimport {\n getMutedButton,\n getUnmutedButton\n} from './utils/muteButtons'\nimport {\n gaInitialize,\n trackAction\n} from \"./utils/googleAnalytics\";\n\nexport default class App {\n constructor(params, container) {\n this.params = params\n this.container = container\n this.error = null\n this.muted = true\n this.videoElements = []\n\n this.toggleMuteVideo = this.toggleMuteVideo.bind(this)\n\n this.gaInitialized = false\n this.sectionId = 0\n }\n\n setSectionId = (id) => {\n this.sectionId = id\n }\n\n mount() {\n try {\n this.initializeGoogleAnalytic()\n this.render()\n this.mountListeners()\n } catch (error) {\n document.body.innerHTML = `${JSON.stringify(error)}`\n }\n\n\n const videoes = [...document.querySelectorAll('video')]\n this.videoElements = videoes\n videoes.forEach(v => v.pause())\n\n const sectionEls = [...document.querySelectorAll(`.${styles.section}`)]\n\n const shareButtons = document.querySelector(`.${styles.shareButtonGroup}`)\n this.shareButtons = shareButtons\n\n //initiallyVisible(sectionEls)\n observer(sectionEls, this.videoElements, this.muteButton, this.shareButtons, this.setSectionId)\n }\n\n initializeGoogleAnalytic() {\n if (!this.gaInitialized) {\n gaInitialize(this.container.getAttribute('data-tracking'))\n }\n this.gaInitialized = true\n }\n\n unmount() {\n this.unmountListeners()\n this.container.innerHTML = ''\n }\n\n mountListeners() {\n // Implement `addEventListener` here\n const muteButton = document.querySelector(`.${videoStyles[\"video-mute-button\"]}`)\n this.muteButton = muteButton\n\n this.muteButton.addEventListener('click', this.toggleMuteVideo, false)\n }\n\n unmountListeners() {\n // Implement `removeEventListener` here\n }\n\n render() {\n if (this.error) {\n this.renderError()\n return\n }\n\n const backgroundContainer = document.querySelector(`.${backgrounds}`)\n const overlayContainer = document.querySelector(`.${superoverlay}`)\n const sectionElements = Array.prototype.slice.call(document.querySelectorAll(`.${styles.section}`))\n\n loadSections(sectionElements, backgroundContainer, overlayContainer)\n\n }\n\n updateSuperOffest() {\n let offset = 0;\n\n [...document.querySelectorAll(`.${styles.super__content}`)]\n .reverse()\n .filter((content) => content.style.display === 'block')\n .forEach((content) => {\n content.style.transform = `translateY(-${offset}px)`\n offset += content.offsetHeight\n })\n }\n\n renderError() {\n this.container.innerHTML = (\n `
${this.error.stack}
`\n )\n }\n toggleMuteVideo(e) {\n e.stopPropagation()\n const parentElement = e.target.parentElement\n const videoElement = parentElement.querySelector('video')\n\n if (this.muted) {\n this.videoElements.forEach(v => v.muted = false)\n this.muteButton.innerHTML = getUnmutedButton()\n this.muted = false\n trackAction(`UNMUTE/${this.sectionId}`)\n return\n } else {\n this.videoElements.forEach(v => v.muted = true)\n this.muteButton.innerHTML = getMutedButton()\n this.muted = true\n trackAction(`MUTE/${this.sectionId}`)\n return\n }\n }\n}\n\n\n\nwindow.App = App\n\n\n\n\n\n\n\n//picturefill()\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/index.js","'use strict';\n\nvar define = require('define-properties');\nvar ES = require('es-abstract/es6');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar polyfill = getPolyfill();\nvar shim = require('./shim');\n\nvar slice = Array.prototype.slice;\n\n/* eslint-disable no-unused-vars */\nvar boundIncludesShim = function includes(array, searchElement) {\n/* eslint-enable no-unused-vars */\n\tES.RequireObjectCoercible(array);\n\treturn polyfill.apply(array, slice.call(arguments, 1));\n};\ndefine(boundIncludesShim, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundIncludesShim;\n\n\n\n// WEBPACK FOOTER //\n// ./~/array-includes/index.js","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimArrayPrototypeIncludes() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tArray.prototype,\n\t\t{ includes: polyfill },\n\t\t{ includes: function () { return Array.prototype.includes !== polyfill; } }\n\t);\n\treturn polyfill;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/array-includes/shim.js","'use strict';\n\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\n// eslint-disable-next-line no-unused-vars\nvar boundFromShim = function from(array) {\n // eslint-disable-next-line no-invalid-this\n\treturn implementation.apply(this || Array, arguments);\n};\n\ndefine(boundFromShim, {\n\t'getPolyfill': getPolyfill,\n\t'implementation': implementation,\n\t'shim': shim\n});\n\nmodule.exports = boundFromShim;\n\n\n\n// WEBPACK FOOTER //\n// ./~/array.from/index.js","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimArrayFrom() {\n\tvar polyfill = getPolyfill();\n\n\tdefine(Array, { 'from': polyfill }, {\n\t\t'from': function () {\n\t\t\treturn Array.from !== polyfill;\n\t\t}\n\t});\n\n\treturn polyfill;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/array.from/shim.js","'use strict';\n\nvar define = require('define-properties');\nvar ES = require('es-abstract/es6');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar slice = Array.prototype.slice;\n\nvar polyfill = getPolyfill();\n\nvar boundFindShim = function find(array, predicate) { // eslint-disable-line no-unused-vars\n\tES.RequireObjectCoercible(array);\n\tvar args = slice.call(arguments, 1);\n\treturn polyfill.apply(array, args);\n};\n\ndefine(boundFindShim, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundFindShim;\n\n\n\n// WEBPACK FOOTER //\n// ./~/array.prototype.find/index.js","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimArrayPrototypeFind() {\n\tvar polyfill = getPolyfill();\n\n\tdefine(Array.prototype, { find: polyfill }, {\n\t\tfind: function () {\n\t\t\treturn Array.prototype.find !== polyfill;\n\t\t}\n\t});\n\n\treturn polyfill;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/array.prototype.find/shim.js","'use strict';\n\nvar has = require('has');\nvar toPrimitive = require('es-to-primitive/es6');\nvar keys = require('object-keys');\n\nvar GetIntrinsic = require('./GetIntrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\nvar $Array = GetIntrinsic('%Array%');\nvar $String = GetIntrinsic('%String%');\nvar $Object = GetIntrinsic('%Object%');\nvar $Number = GetIntrinsic('%Number%');\nvar $Symbol = GetIntrinsic('%Symbol%', true);\nvar $RegExp = GetIntrinsic('%RegExp%');\n\nvar hasSymbols = !!$Symbol;\n\nvar assertRecord = require('./helpers/assertRecord');\nvar $isNaN = require('./helpers/isNaN');\nvar $isFinite = require('./helpers/isFinite');\nvar MAX_SAFE_INTEGER = $Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar assign = require('./helpers/assign');\nvar sign = require('./helpers/sign');\nvar mod = require('./helpers/mod');\nvar isPrimitive = require('./helpers/isPrimitive');\nvar parseInteger = parseInt;\nvar bind = require('function-bind');\nvar arraySlice = bind.call(Function.call, $Array.prototype.slice);\nvar strSlice = bind.call(Function.call, $String.prototype.slice);\nvar isBinary = bind.call(Function.call, $RegExp.prototype.test, /^0b[01]+$/i);\nvar isOctal = bind.call(Function.call, $RegExp.prototype.test, /^0o[0-7]+$/i);\nvar regexExec = bind.call(Function.call, $RegExp.prototype.exec);\nvar nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\nvar nonWSregex = new $RegExp('[' + nonWS + ']', 'g');\nvar hasNonWS = bind.call(Function.call, $RegExp.prototype.test, nonWSregex);\nvar invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i;\nvar isInvalidHexLiteral = bind.call(Function.call, $RegExp.prototype.test, invalidHexLiteral);\nvar $charCodeAt = bind.call(Function.call, $String.prototype.charCodeAt);\n\nvar toStr = bind.call(Function.call, Object.prototype.toString);\n\nvar $NumberValueOf = bind.call(Function.call, GetIntrinsic('%NumberPrototype%').valueOf);\nvar $BooleanValueOf = bind.call(Function.call, GetIntrinsic('%BooleanPrototype%').valueOf);\nvar $StringValueOf = bind.call(Function.call, GetIntrinsic('%StringPrototype%').valueOf);\nvar $DateValueOf = bind.call(Function.call, GetIntrinsic('%DatePrototype%').valueOf);\n\nvar $floor = Math.floor;\nvar $abs = Math.abs;\n\nvar $ObjectCreate = Object.create;\nvar $gOPD = $Object.getOwnPropertyDescriptor;\n\nvar $isExtensible = $Object.isExtensible;\n\nvar $defineProperty = $Object.defineProperty;\n\n// whitespace from: http://es5.github.io/#x15.5.4.20\n// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\nvar ws = [\n\t'\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n\t'\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n\t'\\u2029\\uFEFF'\n].join('');\nvar trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\nvar replace = bind.call(Function.call, $String.prototype.replace);\nvar trim = function (value) {\n\treturn replace(value, trimRegex, '');\n};\n\nvar ES5 = require('./es5');\n\nvar hasRegExpMatcher = require('is-regex');\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations\nvar ES6 = assign(assign({}, ES5), {\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args\n\tCall: function Call(F, V) {\n\t\tvar args = arguments.length > 2 ? arguments[2] : [];\n\t\tif (!this.IsCallable(F)) {\n\t\t\tthrow new $TypeError(F + ' is not a function');\n\t\t}\n\t\treturn F.apply(V, args);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive\n\tToPrimitive: toPrimitive,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean\n\t// ToBoolean: ES5.ToBoolean,\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-tonumber\n\tToNumber: function ToNumber(argument) {\n\t\tvar value = isPrimitive(argument) ? argument : toPrimitive(argument, $Number);\n\t\tif (typeof value === 'symbol') {\n\t\t\tthrow new $TypeError('Cannot convert a Symbol value to a number');\n\t\t}\n\t\tif (typeof value === 'string') {\n\t\t\tif (isBinary(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 2));\n\t\t\t} else if (isOctal(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 8));\n\t\t\t} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {\n\t\t\t\treturn NaN;\n\t\t\t} else {\n\t\t\t\tvar trimmed = trim(value);\n\t\t\t\tif (trimmed !== value) {\n\t\t\t\t\treturn this.ToNumber(trimmed);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn $Number(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger\n\t// ToInteger: ES5.ToNumber,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32\n\t// ToInt32: ES5.ToInt32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32\n\t// ToUint32: ES5.ToUint32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16\n\tToInt16: function ToInt16(argument) {\n\t\tvar int16bit = this.ToUint16(argument);\n\t\treturn int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16\n\t// ToUint16: ES5.ToUint16,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8\n\tToInt8: function ToInt8(argument) {\n\t\tvar int8bit = this.ToUint8(argument);\n\t\treturn int8bit >= 0x80 ? int8bit - 0x100 : int8bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8\n\tToUint8: function ToUint8(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * $floor($abs(number));\n\t\treturn mod(posInt, 0x100);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp\n\tToUint8Clamp: function ToUint8Clamp(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number <= 0) { return 0; }\n\t\tif (number >= 0xFF) { return 0xFF; }\n\t\tvar f = $floor(argument);\n\t\tif (f + 0.5 < number) { return f + 1; }\n\t\tif (number < f + 0.5) { return f; }\n\t\tif (f % 2 !== 0) { return f + 1; }\n\t\treturn f;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring\n\tToString: function ToString(argument) {\n\t\tif (typeof argument === 'symbol') {\n\t\t\tthrow new $TypeError('Cannot convert a Symbol value to a string');\n\t\t}\n\t\treturn $String(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject\n\tToObject: function ToObject(value) {\n\t\tthis.RequireObjectCoercible(value);\n\t\treturn $Object(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey\n\tToPropertyKey: function ToPropertyKey(argument) {\n\t\tvar key = this.ToPrimitive(argument, $String);\n\t\treturn typeof key === 'symbol' ? key : this.ToString(key);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n\tToLength: function ToLength(argument) {\n\t\tvar len = this.ToInteger(argument);\n\t\tif (len <= 0) { return 0; } // includes converting -0 to +0\n\t\tif (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }\n\t\treturn len;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring\n\tCanonicalNumericIndexString: function CanonicalNumericIndexString(argument) {\n\t\tif (toStr(argument) !== '[object String]') {\n\t\t\tthrow new $TypeError('must be a string');\n\t\t}\n\t\tif (argument === '-0') { return -0; }\n\t\tvar n = this.ToNumber(argument);\n\t\tif (this.SameValue(this.ToString(n), argument)) { return n; }\n\t\treturn void 0;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible\n\tRequireObjectCoercible: ES5.CheckObjectCoercible,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray\n\tIsArray: $Array.isArray || function IsArray(argument) {\n\t\treturn toStr(argument) === '[object Array]';\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable\n\t// IsCallable: ES5.IsCallable,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor\n\tIsConstructor: function IsConstructor(argument) {\n\t\treturn typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument`\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o\n\tIsExtensible: Object.preventExtensions\n\t\t? function IsExtensible(obj) {\n\t\t\tif (isPrimitive(obj)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn $isExtensible(obj);\n\t\t}\n\t\t: function isExtensible(obj) { return true; }, // eslint-disable-line no-unused-vars\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger\n\tIsInteger: function IsInteger(argument) {\n\t\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n\t\t\treturn false;\n\t\t}\n\t\tvar abs = $abs(argument);\n\t\treturn $floor(abs) === abs;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey\n\tIsPropertyKey: function IsPropertyKey(argument) {\n\t\treturn typeof argument === 'string' || typeof argument === 'symbol';\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-isregexp\n\tIsRegExp: function IsRegExp(argument) {\n\t\tif (!argument || typeof argument !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols) {\n\t\t\tvar isRegExp = argument[$Symbol.match];\n\t\t\tif (typeof isRegExp !== 'undefined') {\n\t\t\t\treturn ES5.ToBoolean(isRegExp);\n\t\t\t}\n\t\t}\n\t\treturn hasRegExpMatcher(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue\n\t// SameValue: ES5.SameValue,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero\n\tSameValueZero: function SameValueZero(x, y) {\n\t\treturn (x === y) || ($isNaN(x) && $isNaN(y));\n\t},\n\n\t/**\n\t * 7.3.2 GetV (V, P)\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let O be ToObject(V).\n\t * 3. ReturnIfAbrupt(O).\n\t * 4. Return O.[[Get]](P, V).\n\t */\n\tGetV: function GetV(V, P) {\n\t\t// 7.3.2.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.2.2-3\n\t\tvar O = this.ToObject(V);\n\n\t\t// 7.3.2.4\n\t\treturn O[P];\n\t},\n\n\t/**\n\t * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let func be GetV(O, P).\n\t * 3. ReturnIfAbrupt(func).\n\t * 4. If func is either undefined or null, return undefined.\n\t * 5. If IsCallable(func) is false, throw a TypeError exception.\n\t * 6. Return func.\n\t */\n\tGetMethod: function GetMethod(O, P) {\n\t\t// 7.3.9.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.9.2\n\t\tvar func = this.GetV(O, P);\n\n\t\t// 7.3.9.4\n\t\tif (func == null) {\n\t\t\treturn void 0;\n\t\t}\n\n\t\t// 7.3.9.5\n\t\tif (!this.IsCallable(func)) {\n\t\t\tthrow new $TypeError(P + 'is not a function');\n\t\t}\n\n\t\t// 7.3.9.6\n\t\treturn func;\n\t},\n\n\t/**\n\t * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p\n\t * 1. Assert: Type(O) is Object.\n\t * 2. Assert: IsPropertyKey(P) is true.\n\t * 3. Return O.[[Get]](P, O).\n\t */\n\tGet: function Get(O, P) {\n\t\t// 7.3.1.1\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\t// 7.3.1.2\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\t// 7.3.1.3\n\t\treturn O[P];\n\t},\n\n\tType: function Type(x) {\n\t\tif (typeof x === 'symbol') {\n\t\t\treturn 'Symbol';\n\t\t}\n\t\treturn ES5.Type(x);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor\n\tSpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tvar C = O.constructor;\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.Type(C) !== 'Object') {\n\t\t\tthrow new $TypeError('O.constructor is not an Object');\n\t\t}\n\t\tvar S = hasSymbols && $Symbol.species ? C[$Symbol.species] : void 0;\n\t\tif (S == null) {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.IsConstructor(S)) {\n\t\t\treturn S;\n\t\t}\n\t\tthrow new $TypeError('no constructor found');\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor\n\tCompletePropertyDescriptor: function CompletePropertyDescriptor(Desc) {\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) {\n\t\t\tif (!has(Desc, '[[Value]]')) {\n\t\t\t\tDesc['[[Value]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Writable]]')) {\n\t\t\t\tDesc['[[Writable]]'] = false;\n\t\t\t}\n\t\t} else {\n\t\t\tif (!has(Desc, '[[Get]]')) {\n\t\t\t\tDesc['[[Get]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Set]]')) {\n\t\t\t\tDesc['[[Set]]'] = void 0;\n\t\t\t}\n\t\t}\n\t\tif (!has(Desc, '[[Enumerable]]')) {\n\t\t\tDesc['[[Enumerable]]'] = false;\n\t\t}\n\t\tif (!has(Desc, '[[Configurable]]')) {\n\t\t\tDesc['[[Configurable]]'] = false;\n\t\t}\n\t\treturn Desc;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw\n\tSet: function Set(O, P, V, Throw) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\tif (this.Type(Throw) !== 'Boolean') {\n\t\t\tthrow new $TypeError('Throw must be a Boolean');\n\t\t}\n\t\tif (Throw) {\n\t\t\tO[P] = V;\n\t\t\treturn true;\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tO[P] = V;\n\t\t\t} catch (e) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty\n\tHasOwnProperty: function HasOwnProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\treturn has(O, P);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty\n\tHasProperty: function HasProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\treturn P in O;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable\n\tIsConcatSpreadable: function IsConcatSpreadable(O) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols && typeof $Symbol.isConcatSpreadable === 'symbol') {\n\t\t\tvar spreadable = this.Get(O, Symbol.isConcatSpreadable);\n\t\t\tif (typeof spreadable !== 'undefined') {\n\t\t\t\treturn this.ToBoolean(spreadable);\n\t\t\t}\n\t\t}\n\t\treturn this.IsArray(O);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-invoke\n\tInvoke: function Invoke(O, P) {\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\tvar argumentsList = arraySlice(arguments, 2);\n\t\tvar func = this.GetV(O, P);\n\t\treturn this.Call(func, O, argumentsList);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-getiterator\n\tGetIterator: function GetIterator(obj, method) {\n\t\tif (!hasSymbols) {\n\t\t\tthrow new SyntaxError('ES.GetIterator depends on native iterator support.');\n\t\t}\n\n\t\tvar actualMethod = method;\n\t\tif (arguments.length < 2) {\n\t\t\tactualMethod = this.GetMethod(obj, $Symbol.iterator);\n\t\t}\n\t\tvar iterator = this.Call(actualMethod, obj);\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new $TypeError('iterator must return an object');\n\t\t}\n\n\t\treturn iterator;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext\n\tIteratorNext: function IteratorNext(iterator, value) {\n\t\tvar result = this.Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);\n\t\tif (this.Type(result) !== 'Object') {\n\t\t\tthrow new $TypeError('iterator next must return an object');\n\t\t}\n\t\treturn result;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete\n\tIteratorComplete: function IteratorComplete(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.ToBoolean(this.Get(iterResult, 'done'));\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue\n\tIteratorValue: function IteratorValue(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.Get(iterResult, 'value');\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep\n\tIteratorStep: function IteratorStep(iterator) {\n\t\tvar result = this.IteratorNext(iterator);\n\t\tvar done = this.IteratorComplete(result);\n\t\treturn done === true ? false : result;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose\n\tIteratorClose: function IteratorClose(iterator, completion) {\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(iterator) is not Object');\n\t\t}\n\t\tif (!this.IsCallable(completion)) {\n\t\t\tthrow new $TypeError('Assertion failed: completion is not a thunk for a Completion Record');\n\t\t}\n\t\tvar completionThunk = completion;\n\n\t\tvar iteratorReturn = this.GetMethod(iterator, 'return');\n\n\t\tif (typeof iteratorReturn === 'undefined') {\n\t\t\treturn completionThunk();\n\t\t}\n\n\t\tvar completionRecord;\n\t\ttry {\n\t\t\tvar innerResult = this.Call(iteratorReturn, iterator, []);\n\t\t} catch (e) {\n\t\t\t// if we hit here, then \"e\" is the innerResult completion that needs re-throwing\n\n\t\t\t// if the completion is of type \"throw\", this will throw.\n\t\t\tcompletionRecord = completionThunk();\n\t\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\t\t// if not, then return the innerResult completion\n\t\t\tthrow e;\n\t\t}\n\t\tcompletionRecord = completionThunk(); // if innerResult worked, then throw if the completion does\n\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\tif (this.Type(innerResult) !== 'Object') {\n\t\t\tthrow new $TypeError('iterator .return must return an object');\n\t\t}\n\n\t\treturn completionRecord;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject\n\tCreateIterResultObject: function CreateIterResultObject(value, done) {\n\t\tif (this.Type(done) !== 'Boolean') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(done) is not Boolean');\n\t\t}\n\t\treturn {\n\t\t\tvalue: value,\n\t\t\tdone: done\n\t\t};\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec\n\tRegExpExec: function RegExpExec(R, S) {\n\t\tif (this.Type(R) !== 'Object') {\n\t\t\tthrow new $TypeError('R must be an Object');\n\t\t}\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new $TypeError('S must be a String');\n\t\t}\n\t\tvar exec = this.Get(R, 'exec');\n\t\tif (this.IsCallable(exec)) {\n\t\t\tvar result = this.Call(exec, R, [S]);\n\t\t\tif (result === null || this.Type(result) === 'Object') {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tthrow new $TypeError('\"exec\" method must return `null` or an Object');\n\t\t}\n\t\treturn regexExec(R, S);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate\n\tArraySpeciesCreate: function ArraySpeciesCreate(originalArray, length) {\n\t\tif (!this.IsInteger(length) || length < 0) {\n\t\t\tthrow new $TypeError('Assertion failed: length must be an integer >= 0');\n\t\t}\n\t\tvar len = length === 0 ? 0 : length;\n\t\tvar C;\n\t\tvar isArray = this.IsArray(originalArray);\n\t\tif (isArray) {\n\t\t\tC = this.Get(originalArray, 'constructor');\n\t\t\t// TODO: figure out how to make a cross-realm normal Array, a same-realm Array\n\t\t\t// if (this.IsConstructor(C)) {\n\t\t\t// \tif C is another realm's Array, C = undefined\n\t\t\t// \tObject.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?\n\t\t\t// }\n\t\t\tif (this.Type(C) === 'Object' && hasSymbols && $Symbol.species) {\n\t\t\t\tC = this.Get(C, $Symbol.species);\n\t\t\t\tif (C === null) {\n\t\t\t\t\tC = void 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn $Array(len);\n\t\t}\n\t\tif (!this.IsConstructor(C)) {\n\t\t\tthrow new $TypeError('C must be a constructor');\n\t\t}\n\t\treturn new C(len); // this.Construct(C, len);\n\t},\n\n\tCreateDataProperty: function CreateDataProperty(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar oldDesc = $gOPD(O, P);\n\t\tvar extensible = oldDesc || (typeof $isExtensible !== 'function' || $isExtensible(O));\n\t\tvar immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable);\n\t\tif (immutable || !extensible) {\n\t\t\treturn false;\n\t\t}\n\t\tvar newDesc = {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tvalue: V,\n\t\t\twritable: true\n\t\t};\n\t\t$defineProperty(O, P, newDesc);\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow\n\tCreateDataPropertyOrThrow: function CreateDataPropertyOrThrow(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar success = this.CreateDataProperty(O, P, V);\n\t\tif (!success) {\n\t\t\tthrow new $TypeError('unable to create data property');\n\t\t}\n\t\treturn success;\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate\n\tObjectCreate: function ObjectCreate(proto, internalSlotsList) {\n\t\tif (proto !== null && this.Type(proto) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: proto must be null or an object');\n\t\t}\n\t\tvar slots = arguments.length < 2 ? [] : internalSlotsList;\n\t\tif (slots.length > 0) {\n\t\t\tthrow new $SyntaxError('es-abstract does not yet support internal slots');\n\t\t}\n\n\t\tif (proto === null && !$ObjectCreate) {\n\t\t\tthrow new $SyntaxError('native Object.create support is required to create null objects');\n\t\t}\n\n\t\treturn $ObjectCreate(proto);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex\n\tAdvanceStringIndex: function AdvanceStringIndex(S, index, unicode) {\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new $TypeError('S must be a String');\n\t\t}\n\t\tif (!this.IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) {\n\t\t\tthrow new $TypeError('Assertion failed: length must be an integer >= 0 and <= 2**53');\n\t\t}\n\t\tif (this.Type(unicode) !== 'Boolean') {\n\t\t\tthrow new $TypeError('Assertion failed: unicode must be a Boolean');\n\t\t}\n\t\tif (!unicode) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar length = S.length;\n\t\tif ((index + 1) >= length) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar first = $charCodeAt(S, index);\n\t\tif (first < 0xD800 || first > 0xDBFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar second = $charCodeAt(S, index + 1);\n\t\tif (second < 0xDC00 || second > 0xDFFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\treturn index + 2;\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty\n\tCreateMethodProperty: function CreateMethodProperty(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\tvar newDesc = {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: V,\n\t\t\twritable: true\n\t\t};\n\t\treturn !!$defineProperty(O, P, newDesc);\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow\n\tDefinePropertyOrThrow: function DefinePropertyOrThrow(O, P, desc) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\treturn !!$defineProperty(O, P, desc);\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow\n\tDeletePropertyOrThrow: function DeletePropertyOrThrow(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\tvar success = delete O[P];\n\t\tif (!success) {\n\t\t\tthrow new TypeError('Attempt to delete property failed.');\n\t\t}\n\t\treturn success;\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-enumerableownnames\n\tEnumerableOwnNames: function EnumerableOwnNames(O) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\n\t\treturn keys(O);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object\n\tthisNumberValue: function thisNumberValue(value) {\n\t\tif (this.Type(value) === 'Number') {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn $NumberValueOf(value);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object\n\tthisBooleanValue: function thisBooleanValue(value) {\n\t\tif (this.Type(value) === 'Boolean') {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn $BooleanValueOf(value);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object\n\tthisStringValue: function thisStringValue(value) {\n\t\tif (this.Type(value) === 'String') {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn $StringValueOf(value);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object\n\tthisTimeValue: function thisTimeValue(value) {\n\t\treturn $DateValueOf(value);\n\t}\n});\n\ndelete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible\n\nmodule.exports = ES6;\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-abstract/es2015.js","'use strict';\n\nvar GetIntrinsic = require('./GetIntrinsic');\n\nvar $Object = GetIntrinsic('%Object%');\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $String = GetIntrinsic('%String%');\n\nvar assertRecord = require('./helpers/assertRecord');\nvar $isNaN = require('./helpers/isNaN');\nvar $isFinite = require('./helpers/isFinite');\n\nvar sign = require('./helpers/sign');\nvar mod = require('./helpers/mod');\n\nvar IsCallable = require('is-callable');\nvar toPrimitive = require('es-to-primitive/es5');\n\nvar has = require('has');\n\n// https://es5.github.io/#x9\nvar ES5 = {\n\tToPrimitive: toPrimitive,\n\n\tToBoolean: function ToBoolean(value) {\n\t\treturn !!value;\n\t},\n\tToNumber: function ToNumber(value) {\n\t\treturn +value; // eslint-disable-line no-implicit-coercion\n\t},\n\tToInteger: function ToInteger(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number)) { return 0; }\n\t\tif (number === 0 || !$isFinite(number)) { return number; }\n\t\treturn sign(number) * Math.floor(Math.abs(number));\n\t},\n\tToInt32: function ToInt32(x) {\n\t\treturn this.ToNumber(x) >> 0;\n\t},\n\tToUint32: function ToUint32(x) {\n\t\treturn this.ToNumber(x) >>> 0;\n\t},\n\tToUint16: function ToUint16(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n\t\treturn mod(posInt, 0x10000);\n\t},\n\tToString: function ToString(value) {\n\t\treturn $String(value);\n\t},\n\tToObject: function ToObject(value) {\n\t\tthis.CheckObjectCoercible(value);\n\t\treturn $Object(value);\n\t},\n\tCheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {\n\t\t/* jshint eqnull:true */\n\t\tif (value == null) {\n\t\t\tthrow new $TypeError(optMessage || 'Cannot call method on ' + value);\n\t\t}\n\t\treturn value;\n\t},\n\tIsCallable: IsCallable,\n\tSameValue: function SameValue(x, y) {\n\t\tif (x === y) { // 0 === -0, but they are not identical.\n\t\t\tif (x === 0) { return 1 / x === 1 / y; }\n\t\t\treturn true;\n\t\t}\n\t\treturn $isNaN(x) && $isNaN(y);\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/5.1/#sec-8\n\tType: function Type(x) {\n\t\tif (x === null) {\n\t\t\treturn 'Null';\n\t\t}\n\t\tif (typeof x === 'undefined') {\n\t\t\treturn 'Undefined';\n\t\t}\n\t\tif (typeof x === 'function' || typeof x === 'object') {\n\t\t\treturn 'Object';\n\t\t}\n\t\tif (typeof x === 'number') {\n\t\t\treturn 'Number';\n\t\t}\n\t\tif (typeof x === 'boolean') {\n\t\t\treturn 'Boolean';\n\t\t}\n\t\tif (typeof x === 'string') {\n\t\t\treturn 'String';\n\t\t}\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n\tIsPropertyDescriptor: function IsPropertyDescriptor(Desc) {\n\t\tif (this.Type(Desc) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tvar allowed = {\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Get]]': true,\n\t\t\t'[[Set]]': true,\n\t\t\t'[[Value]]': true,\n\t\t\t'[[Writable]]': true\n\t\t};\n\n\t\tfor (var key in Desc) { // eslint-disable-line\n\t\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tvar isData = has(Desc, '[[Value]]');\n\t\tvar IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\t\tif (isData && IsAccessor) {\n\t\t\tthrow new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t\t}\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.1\n\tIsAccessorDescriptor: function IsAccessorDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.2\n\tIsDataDescriptor: function IsDataDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.3\n\tIsGenericDescriptor: function IsGenericDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.4\n\tFromPropertyDescriptor: function FromPropertyDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn Desc;\n\t\t}\n\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (this.IsDataDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tvalue: Desc['[[Value]]'],\n\t\t\t\twritable: !!Desc['[[Writable]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else if (this.IsAccessorDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tget: Desc['[[Get]]'],\n\t\t\t\tset: Desc['[[Set]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else {\n\t\t\tthrow new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor');\n\t\t}\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5\n\tToPropertyDescriptor: function ToPropertyDescriptor(Obj) {\n\t\tif (this.Type(Obj) !== 'Object') {\n\t\t\tthrow new $TypeError('ToPropertyDescriptor requires an object');\n\t\t}\n\n\t\tvar desc = {};\n\t\tif (has(Obj, 'enumerable')) {\n\t\t\tdesc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable);\n\t\t}\n\t\tif (has(Obj, 'configurable')) {\n\t\t\tdesc['[[Configurable]]'] = this.ToBoolean(Obj.configurable);\n\t\t}\n\t\tif (has(Obj, 'value')) {\n\t\t\tdesc['[[Value]]'] = Obj.value;\n\t\t}\n\t\tif (has(Obj, 'writable')) {\n\t\t\tdesc['[[Writable]]'] = this.ToBoolean(Obj.writable);\n\t\t}\n\t\tif (has(Obj, 'get')) {\n\t\t\tvar getter = Obj.get;\n\t\t\tif (typeof getter !== 'undefined' && !this.IsCallable(getter)) {\n\t\t\t\tthrow new TypeError('getter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Get]]'] = getter;\n\t\t}\n\t\tif (has(Obj, 'set')) {\n\t\t\tvar setter = Obj.set;\n\t\t\tif (typeof setter !== 'undefined' && !this.IsCallable(setter)) {\n\t\t\t\tthrow new $TypeError('setter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Set]]'] = setter;\n\t\t}\n\n\t\tif ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n\t\t\tthrow new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n\t\t}\n\t\treturn desc;\n\t}\n};\n\nmodule.exports = ES5;\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-abstract/es5.js","var bind = require('function-bind');\nvar has = bind.call(Function.call, Object.prototype.hasOwnProperty);\n\nvar $assign = Object.assign;\n\nmodule.exports = function assign(target, source) {\n\tif ($assign) {\n\t\treturn $assign(target, source);\n\t}\n\n\tfor (var key in source) {\n\t\tif (has(source, key)) {\n\t\t\ttarget[key] = source[key];\n\t\t}\n\t}\n\treturn target;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-abstract/helpers/assign.js","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-abstract/helpers/isPrimitive.js","'use strict';\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar isPrimitive = require('./helpers/isPrimitive');\nvar isCallable = require('is-callable');\nvar isDate = require('is-date-object');\nvar isSymbol = require('is-symbol');\n\nvar ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n\tif (typeof O === 'undefined' || O === null) {\n\t\tthrow new TypeError('Cannot call method on ' + O);\n\t}\n\tif (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {\n\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n\t}\n\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\tvar method, result, i;\n\tfor (i = 0; i < methodNames.length; ++i) {\n\t\tmethod = O[methodNames[i]];\n\t\tif (isCallable(method)) {\n\t\t\tresult = method.call(O);\n\t\t\tif (isPrimitive(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError('No default value');\n};\n\nvar GetMethod = function GetMethod(O, P) {\n\tvar func = O[P];\n\tif (func !== null && typeof func !== 'undefined') {\n\t\tif (!isCallable(func)) {\n\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n\t\t}\n\t\treturn func;\n\t}\n\treturn void 0;\n};\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\nmodule.exports = function ToPrimitive(input) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tvar hint = 'default';\n\tif (arguments.length > 1) {\n\t\tif (arguments[1] === String) {\n\t\t\thint = 'string';\n\t\t} else if (arguments[1] === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t}\n\n\tvar exoticToPrim;\n\tif (hasSymbols) {\n\t\tif (Symbol.toPrimitive) {\n\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n\t\t} else if (isSymbol(input)) {\n\t\t\texoticToPrim = Symbol.prototype.valueOf;\n\t\t}\n\t}\n\tif (typeof exoticToPrim !== 'undefined') {\n\t\tvar result = exoticToPrim.call(input, hint);\n\t\tif (isPrimitive(result)) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new TypeError('unable to convert exotic object to primitive');\n\t}\n\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n\t\thint = 'string';\n\t}\n\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-to-primitive/es2015.js","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nvar isPrimitive = require('./helpers/isPrimitive');\n\nvar isCallable = require('is-callable');\n\n// http://ecma-international.org/ecma-262/5.1/#sec-8.12.8\nvar ES5internalSlots = {\n\t'[[DefaultValue]]': function (O) {\n\t\tvar actualHint;\n\t\tif (arguments.length > 1) {\n\t\t\tactualHint = arguments[1];\n\t\t} else {\n\t\t\tactualHint = toStr.call(O) === '[object Date]' ? String : Number;\n\t\t}\n\n\t\tif (actualHint === String || actualHint === Number) {\n\t\t\tvar methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\t\t\tvar value, i;\n\t\t\tfor (i = 0; i < methods.length; ++i) {\n\t\t\t\tif (isCallable(O[methods[i]])) {\n\t\t\t\t\tvalue = O[methods[i]]();\n\t\t\t\t\tif (isPrimitive(value)) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new TypeError('No default value');\n\t\t}\n\t\tthrow new TypeError('invalid [[DefaultValue]] hint supplied');\n\t}\n};\n\n// http://ecma-international.org/ecma-262/5.1/#sec-9.1\nmodule.exports = function ToPrimitive(input) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tif (arguments.length > 1) {\n\t\treturn ES5internalSlots['[[DefaultValue]]'](input, arguments[1]);\n\t}\n\treturn ES5internalSlots['[[DefaultValue]]'](input);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-to-primitive/es5.js","'use strict';\n\nmodule.exports = require('./es2015');\n\n\n\n// WEBPACK FOOTER //\n// ./~/es-to-primitive/es6.js","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.6+9869a4bc\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar TRY_CATCH_ERROR = { error: null };\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n TRY_CATCH_ERROR.error = error;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === TRY_CATCH_ERROR) {\n reject(promise, TRY_CATCH_ERROR.error);\n TRY_CATCH_ERROR.error = null;\n } else if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = void 0,\n failed = void 0;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = getThen(entry);\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n\n\n\n// WEBPACK FOOTER //\n// ./~/es6-promise/dist/es6-promise.js","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/function-bind/implementation.js","'use strict';\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/has-symbols/index.js","'use strict';\n\n/* eslint complexity: [2, 17], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/has-symbols/shams.js","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * \n */\n\n(function(window, document) {\n'use strict';\n\n\n// Exits early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observering a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n this.intersectionRatio = intersectionArea / targetArea;\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n // If the target is already being observed, do nothing.\n if (this._observationTargets.some(function(item) {\n return item.element == target;\n })) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections();\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n\n return item.element != target;\n });\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibilty state is visible.\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function() {\n if (!this._monitoringIntersections) {\n this._monitoringIntersections = true;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n this._monitoringInterval = setInterval(\n this._checkForIntersections, this.POLL_INTERVAL);\n }\n else {\n addEvent(window, 'resize', this._checkForIntersections, true);\n addEvent(document, 'scroll', this._checkForIntersections, true);\n\n if ('MutationObserver' in window) {\n this._domObserver = new MutationObserver(this._checkForIntersections);\n this._domObserver.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function() {\n if (this._monitoringIntersections) {\n this._monitoringIntersections = false;\n\n clearInterval(this._monitoringInterval);\n this._monitoringInterval = null;\n\n removeEvent(window, 'resize', this._checkForIntersections, true);\n removeEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this._domObserver) {\n this._domObserver.disconnect();\n this._domObserver = null;\n }\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, rootRect) {\n\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var targetRect = getBoundingClientRect(target);\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return;\n\n if (parent == this.root || parent == document) {\n atRoot = true;\n parentRect = rootRect;\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n if (parent != document.body &&\n parent != document.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n\n if (!intersectionRect) break;\n }\n parent = getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {Object} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {Object} rect The rect object to expand.\n * @return {Object} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n return containsDeep(this.root || document, target);\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its executiong, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object} The intersection rect or undefined if no intersection\n * is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {Object} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {Object} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n/**\n * Checks to see if a parent element contains a child elemnt (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n return parent;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}(window, document));\n\n\n\n// WEBPACK FOOTER //\n// ./~/intersection-observer/intersection-observer.js","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateObject(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) { return false; }\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/is-date-object/index.js","'use strict';\n\nvar has = require('has');\nvar regexExec = RegExp.prototype.exec;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar tryRegexExecCall = function tryRegexExec(value) {\n\ttry {\n\t\tvar lastIndex = value.lastIndex;\n\t\tvalue.lastIndex = 0;\n\n\t\tregexExec.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\tvalue.lastIndex = lastIndex;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar regexClass = '[object RegExp]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isRegex(value) {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\tif (!hasToStringTag) {\n\t\treturn toStr.call(value) === regexClass;\n\t}\n\n\tvar descriptor = gOPD(value, 'lastIndex');\n\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\tif (!hasLastIndexDataProperty) {\n\t\treturn false;\n\t}\n\n\treturn tryRegexExecCall(value);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/is-regex/index.js","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = require('has-symbols')();\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isRealSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') {\n\t\t\treturn false;\n\t\t}\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') {\n\t\t\treturn true;\n\t\t}\n\t\tif (toStr.call(value) !== '[object Symbol]') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false && value;\n\t};\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/is-symbol/index.js","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n\n\n\n// WEBPACK FOOTER //\n// ./~/object-keys/implementation.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n// WEBPACK FOOTER //\n// ./~/process/browser.js","import {\n visible\n} from '../shared/stylesheets/background.css'\nimport {\n transitionSvg,\n resetSvg\n} from './sections/map/svg-transition-manager'\nimport { fakeSubtitles } from './sections/video/subtitles'\nimport { trackAction } from \"./utils/googleAnalytics\"\n\nexport const observer = (sectionElements, videoElements, muteButton, shareButtons, setSectionId, byline) => {\n const options = {\n threshold: [0],\n //rootMargin: `-98% 0px -2% 0px`\n }\n\n const callback = (changes) => {\n changes.forEach((change, i) => {\n const {\n target,\n isIntersecting,\n intersectionRatio\n } = change\n\n const backgroundId = target.getAttribute('data-background-id')\n const backgroundEl = document.getElementById(backgroundId)\n\n if (isIntersecting) {\n setSectionId(backgroundId)\n trackAction(`LOAD_SUCCESS/${backgroundId}`)\n backgroundEl.classList.add(visible)\n\n if (target.getAttribute('data-share')) {\n shareButtons.classList.add(visible)\n } else {\n shareButtons.classList.remove(visible)\n }\n\n if (target.getAttribute('data-video-has-sound')) {\n muteButton.classList.add(visible)\n\n } else {\n muteButton.classList.remove(visible)\n }\n\n if (target.getAttribute('data-map-element')) {\n transitionSvg(target)\n }\n if (target.getAttribute('data-video-element')) {\n const bgVideo = backgroundEl.querySelector('video')\n if (target.getAttribute('data-video-subtitles') && !target.getAttribute('data-already-subtitled')) {\n fakeSubtitles(bgVideo, target.getAttribute('data-video-subtitles'))\n }\n //fakeSubtitles(bgVideo)\n\n bgVideo.play()\n const videoIsPlaying = !bgVideo.paused\n if (videoIsPlaying) {\n trackAction(`VIDEO_PLAYING/${backgroundId}`)\n }\n } else if (target.getAttribute('data-background-byline')) {\n //byline.classList.add(visible)\n }\n\n } else {\n backgroundEl.classList.remove(visible)\n if (target.getAttribute('data-map-element')) {\n resetSvg(target)\n }\n if (target.getAttribute('data-video-element')) {\n const bgVideo = backgroundEl.querySelector('video')\n bgVideo.pause()\n }\n }\n })\n }\n const observer = new IntersectionObserver(callback, options)\n observer.POLL_INTERVAL = 500\n sectionElements.forEach(sectionElement => observer.observe(sectionElement))\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/intersection.js","import { renderBylineContent, renderSeeMoreContent } from '../../../shared/sections/section8_byline.js'\n\nexport const bylineHandler = {\n property: 'data-background-byline',\n load: (card) => {\n const elem = document.createElement('div')\n\n elem.setAttribute('style', `background-color: #06090a; background-size: cover; background-position-x: center;`)\n elem.id = card.getAttribute('data-background-id')\n //elem.innerHTML = renderSeeMoreContent()\n return elem\n }\n}\n\nexport const seeMoreHandler = {\n property: 'data-background-see-more',\n load: (card) => {\n const elem = document.createElement('div')\n\n elem.setAttribute('style', `background-color: #06090a; background-size: cover; background-position-x: center;`)\n elem.id = card.getAttribute('data-background-id')\n //elem.innerHTML = renderBylineContent()\n return elem\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/sections/byline/index.js","\nimport {  polopolyIdHandler, createSrcSet } from '../polopoly-image/'\nimport {\n widths as supportedWidths,\n createImageUrl\n} from '@nrk/serum-imagecrop-utils'\n\nimport styles from '../../../shared/index.css'\n\nexport const fullscreenVideoHandler = {\n property: 'data-fullscreen-video-element',\n load: (card) => {\n const elem = document.createElement('div')\n const id = card.getAttribute('data-background-id')\n elem.id = id\n\n const polopolyId = card.getAttribute('data-background-polopoly-id')\n\n const defaultUrl = createImageUrl({id: polopolyId, width: 1600, ratio: '1:1'})\n const desktopSourceSet = createSrcSet(polopolyId, '1:1', supportedWidths)\n const mobileSourceSet = createSrcSet(polopolyId, '3:4', supportedWidths)\n const backgroundImage = `\n \n \n \n \n
\n `\n\n // const backgroundImage = card.getAttribute('data-background-image')\n // elem.setAttribute('style', `background-image: url(${backgroundImage}); background-size: cover; background-position-x: center;`)\n elem.innerHTML = backgroundImage\n return elem\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/client/sections/fullscreen-video/index.js","\nexport const imageHandler = {\n property: 'data-background-image',\n load: (card) => {\n const elem = document.createElement('div')\n\n const backgroundImage = card.getAttribute('data-background-image')\n elem.setAttribute('style', `background-image: url(${backgroundImage}); background-size: cover; background-position-x: center;`)\n elem.id = card.getAttribute('data-background-id')\n\n return elem\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/sections/image/index.js","import { background, visible, backgroundGradient } from '../../shared/stylesheets/background.css'\nimport { imageHandler } from './image'\nimport { videoHandler } from './video'\nimport { mapHandler } from './map'\nimport { polopolyIdHandler } from './polopoly-image'\nimport { fullscreenVideoHandler } from './fullscreen-video'\nimport { bylineHandler, seeMoreHandler } from './byline'\nimport { getLogo } from '../utils/getLogo'\nimport { getShareButtons } from '../utils/getShareButtons'\nimport { getInitialMuteButton } from '../utils/muteButtons'\n\nconst sectionHandlers = [fullscreenVideoHandler, mapHandler, imageHandler, polopolyIdHandler, videoHandler, bylineHandler, seeMoreHandler]\n\nexport function loadSections(sectionElements, backgroundContainer, overlayContainer) {\n [...sectionElements]\n .forEach((card, idx) => {\n const handler = sectionHandlers.find((handler) => !!card.getAttribute(handler.property))\n\n const elem = handler.load(card)\n elem.className = background\n getShareButtons()\n\n backgroundContainer.appendChild(elem)\n backgroundContainer.setAttribute('aria-hidden', 'true')\n\n if (handler.init) {\n try {\n handler.init(card, elem)\n } catch (e) {\n console.error('Error initializing background', e)\n }\n }\n\n if (idx === 0) {\n elem.className = `${background} ${visible}`\n }\n if (card.getAttribute('data-background-gradient')) {\n elem.classList.add(backgroundGradient)\n }\n })\n\n\n\n overlayContainer.innerHTML += `${getLogo()} ${getShareButtons()} ${getInitialMuteButton()}`\n }\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/sections/index.js","import { \n polopolyIdHandler,\n createSrcSet\n} from '../polopoly-image/'\nimport {\n widths as supportedWidths,\n createImageUrl\n} from '@nrk/serum-imagecrop-utils'\n\nimport styles from '../../../shared/index.css'\nimport mapStyles from '../../../shared/stylesheets/map.css'\n\nexport const mapHandler = {\n property: 'data-map-element',\n load: (card) => {\n const elem = document.createElement('div')\n const id = card.getAttribute('data-background-id')\n elem.id = id\n\n const polopolyId = card.getAttribute('data-background-polopoly-id')\n\n const defaultUrl = createImageUrl({\n id: polopolyId,\n width: 1600,\n ratio: '1:1'\n })\n const desktopSourceSet = createSrcSet(polopolyId, '1:1', supportedWidths)\n const mobileSourceSet = createSrcSet(polopolyId, '3:4', supportedWidths)\n \n const mapEl = `\n
\n ${mapSVG(id)}\n ${mobileMapSVG(id)}\n ${pathSVG(id)}\n
\n `\n elem.innerHTML = mapEl\n return elem\n }\n}\n\n\nconst mapSVG = (id) => {\n return `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n}\n\nconst mobileMapSVG = (id) => {\n\n return `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n}\n\nconst pathSVG = (id) => {\n return `\n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/sections/map/index.js","export const resetSvg = (element) => {\n const id = element.getAttribute('data-background-id')\n const mapString = element.getAttribute('data-map-string')\n const svgElement = document.getElementById(`svg-path-background-${id}`);\n try {\n svgElement.setAttribute('class', '')\n } catch(ex) {\n console.error(ex)\n }\n}\n\nexport const transitionSvg = (element) => {\n const id = element.getAttribute('data-background-id')\n const mapString = element.getAttribute('data-map-string')\n const svgElement = document.getElementById(`svg-path-background-${id}`);\n try {\n svgElement.setAttribute('class', mapString)\n } catch (ex) {\n console.error(ex, svgElement, mapString)\n }\n}\n\nconst getAnimation = (mapString, id) => {\n switch (mapString) {\n case 'to-damaskus':\n return toDamaskus(id)\n case 'from-damaskus-to-homs':\n return fromDamaskusToHoms(id)\n case 'from-homs-to-aleppo':\n return fromHomsToAleppo(id)\n default:\n return toDamaskus(id)\n }\n}\n\n\nconst toDamaskus = (id) => {\n return [\n {\n id: `${id}-svg-dot-damaskus`,\n style: 'transition: 1s all ease; opacity: 1'\n },\n {\n id: `${id}-svg-text-damaskus`,\n style: 'transition: 1s 1s all ease; opacity: 1'\n }\n ]\n}\n\nconst fromDamaskusToHoms = (id) => {\n return [\n /**\n * Her skal størrelsen på teksten endres\n */\n {\n id: `${id}-svg-from-damaskus-to-homs`,\n style: 'transition: 2s .5s all ease; stroke-dashoffset: 0;'\n },\n {\n id: `${id}-svg-dot-homs`,\n style: 'transition: 2s 2.5s all ease; opacity: 1'\n },\n {\n id: `${id}-svg-text-homs`,\n style: 'transition: 2s 4s all ease; opacity: 1'\n }\n ]\n}\n\nconst fromHomsToAleppo = (id) => {\n return [\n /**\n * Her skal størrelsen på teksten endres\n */\n {\n id: `${id}-svg-from-homs-to-aleppo`,\n style: 'transition: 2s .5s all ease; stroke-dashoffset: 0;'\n },\n {\n id: `${id}-svg-dot-aleppo`,\n style: 'transition: 2s 2.5s all ease; opacity: 1'\n },\n {\n id: `${id}-svg-text-aleppo`,\n style: 'transition: 2s 4s all ease; opacity: 1'\n }\n ]\n}\n\n\n\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/sections/map/svg-transition-manager.js","\nimport videoStyles from '../../../shared/stylesheets/video.css'\nimport { getPositionClasses } from '../../utils/alignment-classes'\n// import { getInitialMuteButton } from './muteButtons'\n\nexport const videoHandler = {\n property: 'data-video-element',\n load: (card) => {\n const elem = document.createElement('div')\n elem.id = card.getAttribute('data-background-id')\n\n const videoSrc = {\n poster: card.getAttribute('data-video-poster-image') || '',\n mp4: card.getAttribute('data-video-mp4') ||  '',\n webm: card.getAttribute('data-video-webm') ||  '',\n subtitles: card.getAttribute('data-video-subtitles') || ''\n }\n\n const desktopAlignment = card.getAttribute('data-background-align') ||  ''\n const mobileAlignment = card.getAttribute('data-background-align-mobile') ||  ''\n\n let alignmentClasses = '';\n if (desktopAlignment || mobileAlignment) {\n alignmentClasses = getPositionClasses(desktopAlignment, mobileAlignment)\n }\n\n const webmElement = videoSrc.webm ? `` : ''\n const mp4Element = videoSrc.mp4 ? `` : ''\n\n const trackElement = videoSrc.subtitles ? `` : ''\n\n\n const videoElement = `\n \n ${webmElement}\n ${mp4Element}\n Your browser does not support the video tag. We suggest you upgrade your browser.\n \n
\n `\n elem.innerHTML = videoElement\n\n\n return elem\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/sections/video/index.js","import {\n subtitlescontainer, subtitles\n} from '../../../shared/stylesheets/video.css'\n\nexport const fakeSubtitles = (videoElement, subtitleId) => {\n const subtitleArray = subtitle[subtitleId]\n addSubtitle(videoElement, subtitleArray)\n videoElement.setAttribute('data-already-subtitled', true)\n let tracks = videoElement.textTracks[0]\n\n if (!tracks) {\n return\n }\n\n videoElement.controls = false;\n tracks.mode = 'hidden'\n let cues = tracks.cues\n\n let subtitleContainer = videoElement.parentElement.querySelector(`.${subtitlescontainer}`)\n\n const replaceText = (text) => {\n subtitleContainer.innerHTML = `${text}`\n }\n const hideText = () => {\n subtitleContainer.style.display = 'none'\n }\n\n const showText = () => {\n subtitleContainer.style.display = 'block'\n }\n\n const cueEnter = (text) => {\n replaceText('text');\n showText();\n }\n\n const cueExit = () => {\n hideText();\n }\n const videoLoaded = (e) => {\n for (let i in cues) {\n let cue = cues[i];\n try {\n cue.onenter = () => {\n replaceText(cue.text);\n showText();\n }\n cue.onexit = hideText\n } catch (ex) {\n // hehe\n }\n\n }\n }\n videoElement.addEventListener('play', videoLoaded)\n\n\n}\n\n\nfunction addSubtitle(videoElement, arr) {\n const track = videoElement.addTextTrack('subtitles', 'Norsk', 'no');\n try {\n arr.forEach(a => track.addCue(new VTTCue(a.start, a.end, a.text)))\n } catch (ex) {\n arr.forEach(a => track.addCue(new TextTrackCue(a.start, a.end, a.text)))\n }\n\n}\n\nconst standup_homs = [\n {\n start: 1,\n end: 3,\n text: 'Her var syriske opprørsstyrker inntil nylig.'\n },\n {\n start: 4,\n end: 8,\n text: 'I dette huset på frontlinjen hadde de sine skarpskytterposisjoner.'\n },\n {\n start: 9,\n end: 12,\n text: 'Nå er de blitt drevet ut av den syriske regjeringshæren,'\n },\n {\n start: 13,\n end: 17,\n text: 'og dette er det siste nabolaget i Homs by som de mistet.'\n },\n]\n\nconst standup_aleppo = [\n {\n start: 0.5,\n end: 5.5,\n text: 'Gamlebyen i Aleppo var en av de mest atmosfæriske byene i hele midtøsten.'\n },\n {\n start: 5.5,\n end: 9.5,\n text: 'Her var det masse butikker og masse folk.'\n },\n {\n start: 9.5,\n end: 14.5,\n text: 'Nå er det nesten ingenting igjen. Det er ikke et menneske i denne gaten.'\n },\n {\n start: 16.5,\n end: 20,\n text: 'Det føles nesten som å bevege seg gjennom en spøkelsesby.'\n },\n]\n\nconst standup_maskaneh = [\n {\n start: 1,\n end: 6.5,\n text: 'Her var IS inntil nylig. Dette er rester av et av deres skilt.'\n },\n {\n start: 6.5,\n end: 10.5,\n text: 'Nå har den syriske hæren drevet dem tilbake i dette området.'\n },\n {\n start: 10.5,\n end: 14,\n text: 'De blir presset tilbake i hele Syria.'\n },\n]\n\nconst subtitle = {\n standup_homs,\n standup_aleppo,\n standup_maskaneh\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/sections/video/subtitles.js","import { NRKlogo } from '../../shared/index.css'\n\nexport const getLogo = () => {\n return `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n}\n\n\n// WEBPACK FOOTER //\n// ./src/client/utils/getLogo.js","import { shareButton, shareButtonGroup } from '../../shared/index.css'\n\nexport const getShareButtons = () => {\n return `\n \n `\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/client/utils/getShareButtons.js","\nimport styles from '../index.css'\nimport bylineStyles from '../stylesheets/byline.css'\n\nconst shareButtons = () => `\n \n`\n\nconst seeMore = () => {\n return `\n
\n

Lær og forstå mer om Syria

\n \n Alt om borgerkrigen i Syria\n \n \n \n \n \n
\n `\n}\n\nconst byline = () => {\n return `\n
\n
    \n\n
  • \n

    Journalist

    \n

    Kristin Solberg

    \n

  • \n\n
  • \n

    Digital historieutvikling

    \n

    Ragnar Aasen Rognstad, Kari Anne Gisestad Andersen og Johannes Odland

    \n
  • \n\n
  • \n

    Nyhetsredaktør

    \n

    Alexandra Beverfjord

    \n
  • \n\n
  • \n

    Ansvarlig redaktør

    \n

    Thor Gjermund Eriksen

    \n
  • \n\n
  • \n

    Nettsjef

    \n

    Hildegunn Soldal

    \n
  • \n\n
  • \n

    \n Publisert 27.08.2017\n

    \n
  • \n
\n
\n `\n}\n\nexport const bylineSection = (id) => {\n\n return `\n \n ${shareButtons()}\n ${seeMore()}\n ${byline()}\n \n `\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/sections/section8_byline.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"align-top\":\"nrk-align-top\",\"align-center\":\"nrk-align-center\",\"align-left\":\"nrk-align-left\",\"align-right\":\"nrk-align-right\",\"align-middle\":\"nrk-align-middle\",\"align-bottom\":\"nrk-align-bottom\",\"mobile-align-top\":\"nrk-mobile-align-top\",\"mobile-align-center\":\"nrk-mobile-align-center\",\"mobile-align-left\":\"nrk-mobile-align-left\",\"mobile-align-right\":\"nrk-mobile-align-right\",\"mobile-align-middle\":\"nrk-mobile-align-middle\",\"mobile-align-bottom\":\"nrk-mobile-align-bottom\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/shared/stylesheets/alignment/index.css\n// module id = 66\n// module chunks = 0","// removed by extract-text-webpack-plugin\nmodule.exports = {\"bylineSection\":\"nrk-bylineSection\",\"byline--sharebutton--container\":\"nrk-byline--sharebutton--container\",\"byline--sharebutton--group\":\"nrk-byline--sharebutton--group\",\"byline--sharebutton--item\":\"nrk-byline--sharebutton--item\",\"seemore--block\":\"nrk-seemore--block\",\"byline--block\":\"nrk-byline--block\",\"seemore--heading\":\"nrk-seemore--heading\",\"seemore--heading-link\":\"nrk-seemore--heading-link\",\"seemore--link--list--wrapper\":\"nrk-seemore--link--list--wrapper\",\"seemore--link--list\":\"nrk-seemore--link--list\",\"seemore--link--item\":\"nrk-seemore--link--item\",\"seemore--link--image\":\"nrk-seemore--link--image\",\"byline--credit--list\":\"nrk-byline--credit--list\",\"byline--credit--list--item\":\"nrk-byline--credit--list--item\",\"byline--credit--list--item--role\":\"nrk-byline--credit--list--item--role\",\"byline--credit--list--item--names\":\"nrk-byline--credit--list--item--names\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/shared/stylesheets/byline.css\n// module id = 67\n// module chunks = 0","// removed by extract-text-webpack-plugin\nmodule.exports = {\"damaskus\":\"nrk-damaskus\",\"dot-damaskus\":\"nrk-dot-damaskus\",\"dot-damaskus-blink\":\"nrk-dot-damaskus-blink\",\"blink\":\"nrk-blink\",\"damaskus-to-homs\":\"nrk-damaskus-to-homs\",\"path-damaskus-homs\":\"nrk-path-damaskus-homs\",\"dot-homs\":\"nrk-dot-homs\",\"dot-homs-blink\":\"nrk-dot-homs-blink\",\"homs-to-aleppo\":\"nrk-homs-to-aleppo\",\"path-homs-aleppo\":\"nrk-path-homs-aleppo\",\"dot-aleppo\":\"nrk-dot-aleppo\",\"dot-aleppo-blink\":\"nrk-dot-aleppo-blink\",\"aleppo-to-maskanah\":\"nrk-aleppo-to-maskanah\",\"path-aleppo-maskanah\":\"nrk-path-aleppo-maskanah\",\"dot-maskanah\":\"nrk-dot-maskanah\",\"dot-maskanah-blink\":\"nrk-dot-maskanah-blink\",\"mobile-map\":\"nrk-mobile-map\",\"desktop-map\":\"nrk-desktop-map\",\"mapContainer\":\"nrk-mapContainer\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/shared/stylesheets/map.css\n// module id = 68\n// module chunks = 0"],"sourceRoot":""}