{"version":3,"sources":["webpack:///v1-bundle-71c60c12d82226f2cdaf.js","webpack:///webpack/bootstrap c1aa4644d2011a36dcc5","webpack:///./node_modules/preact/dist/preact.mjs","webpack:///./node_modules/has/src/index.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/is-callable/index.js","webpack:///./node_modules/define-properties/index.js","webpack:///./node_modules/es-abstract/es6.js","webpack:///./node_modules/es-to-primitive/helpers/isPrimitive.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/es-abstract/GetIntrinsic.js","webpack:///./node_modules/es-abstract/helpers/isNaN.js","webpack:///./node_modules/es-abstract/helpers/isFinite.js","webpack:///./node_modules/es-abstract/helpers/sign.js","webpack:///./node_modules/es-abstract/helpers/mod.js","webpack:///./node_modules/array-includes/implementation.js","webpack:///./node_modules/array-includes/polyfill.js","webpack:///./src/v1/components/App.css","webpack:///./src/lib/provider.js","webpack:///./node_modules/@nrk/serum-imagecrop-utils/lib/index.js","webpack:///./src/v1/client.polyfill.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./node_modules/array-includes/index.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/es-abstract/es2015.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/es-to-primitive/es6.js","webpack:///./node_modules/es-to-primitive/es2015.js","webpack:///./node_modules/is-date-object/index.js","webpack:///./node_modules/is-symbol/index.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/es-abstract/helpers/assign.js","webpack:///./node_modules/es-abstract/helpers/isPrimitive.js","webpack:///./node_modules/es-abstract/es5.js","webpack:///./node_modules/es-to-primitive/es5.js","webpack:///./node_modules/is-regex/index.js","webpack:///./node_modules/array-includes/shim.js","webpack:///./src/v1/client.js","webpack:///./node_modules/@nrk/feature-tests/dist/feature-tests.module.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/index.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/array.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/bem.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/scroll.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/string.js","webpack:///./src/lib/errorReporting.js","webpack:///./node_modules/@nrk/dh-simple-error-report/dist/simple-error-report.min.js","webpack:///./src/v1/components/App.js","webpack:///./src/lib/bem.js","webpack:///./src/v1/components/MaxViewportRect.js","webpack:///./node_modules/@nrk/max-viewport-observable/dist/max-viewport-observable.module.js","webpack:///./src/v1/components/Background.js","webpack:///./src/v1/components/Background.css","webpack:///./src/v1/components/Map.js","webpack:///./src/v1/components/Map.css","webpack:///external \"mapboxgl\"","webpack:///./src/v1/components/chapters.js","webpack:///./src/lib/array.js","webpack:///./src/v1/components/PolopolyPicture.js","webpack:///./src/lib/image.js","webpack:///./src/lib/googleAnalytic.js","webpack:///./node_modules/@nrk/dh-analytics-utils/dist/dh-analytics-utils.min.js","webpack:///./src/lib/getContextId.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","h","nodeName","attributes","lastSimple","child","simple","children","EMPTY_CHILDREN","arguments","length","stack","push","pop","undefined","String","VNode","key","options","vnode","extend","obj","props","cloneElement","slice","enqueueRender","component","_dirty","items","debounceRendering","defer","rerender","list","renderComponent","isSameNodeType","node","hydrating","splitText","_componentConstructor","isNamedNode","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","createNode","isSvg","document","createElementNS","createElement","removeNode","parentNode","removeChild","setAccessor","old","value","style","cssText","IS_NON_DIMENSIONAL","test","innerHTML","__html","useCapture","replace","substring","addEventListener","eventProxy","removeEventListener","_listeners","e","removeAttribute","ns","removeAttributeNS","setAttributeNS","setAttribute","className","this","type","event","flushMounts","mounts","afterMount","componentDidMount","diff","dom","context","mountAll","parent","componentRoot","diffLevel","isSvgMode","ownerSVGElement","ret","idiff","appendChild","out","prevSvgMode","_component","nodeValue","createTextNode","replaceChild","recollectNodeTree","vnodeName","buildComponentFromVNode","firstChild","fc","vchildren","a","nextSibling","innerDiffNode","dangerouslySetInnerHTML","diffAttributes","isHydrating","j","f","vchild","originalChildren","childNodes","keyed","keyedLen","min","len","childrenLen","vlen","_child","__key","trim","insertBefore","unmountOnly","unmountComponent","ref","removeChildren","lastChild","next","previousSibling","attrs","createComponent","Ctor","inst","recyclerComponents","render","Component","constructor","doRender","nextBase","splice","state","setComponentProps","renderMode","_disable","__ref","getDerivedStateFromProps","base","componentWillMount","componentWillReceiveProps","prevContext","prevProps","syncComponentUpdates","isChild","rendered","cbase","previousProps","previousState","prevState","previousContext","isUpdate","initialBase","initialChildComponent","skip","snapshot","shouldComponentUpdate","componentWillUpdate","getChildContext","getSnapshotBeforeUpdate","toUnmount","childComponent","childProps","_parentComponent","baseParent","componentRef","t","unshift","componentDidUpdate","afterUpdate","_renderCallbacks","originalComponent","oldDom","isDirectOwner","isOwner","beforeUnmount","componentWillUnmount","inner","merge","Promise","resolve","then","bind","setTimeout","setState","callback","forceUpdate","preact","require","Function","implementation","_typeof","Symbol","iterator","fnToStr","toString","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","toStr","hasToStringTag","toStringTag","strClass","keys","hasSymbols","concat","Array","origDefineProperty","isFunction","fn","supportsDescriptors","_","x","predicate","writable","defineProperties","map","predicates","getOwnPropertySymbols","g","eval","window","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%","Error","$ %ErrorPrototype%","$ %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%","Math","$ %Number%","Number","$ %NumberPrototype%","$ %Object%","$ %ObjectPrototype%","$ %ObjProto_toString%","$ %ObjProto_valueOf%","valueOf","$ %parseFloat%","parseFloat","$ %parseInt%","parseInt","$ %Promise%","$ %PromisePrototype%","$ %PromiseProto_then%","$ %Promise_all%","all","$ %Promise_reject%","reject","$ %Promise_resolve%","$ %Proxy%","Proxy","$ %RangeError%","RangeError","$ %RangeErrorPrototype%","$ %ReferenceError%","ReferenceError","$ %ReferenceErrorPrototype%","$ %Reflect%","Reflect","$ %RegExp%","RegExp","$ %RegExpPrototype%","$ %Set%","Set","$ %SetIteratorPrototype%","$ %SetPrototype%","$ %SharedArrayBuffer%","SharedArrayBuffer","$ %SharedArrayBufferPrototype%","$ %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","$isNaN","Infinity","number","modulo","remain","floor","global","ES","$isFinite","indexOf","searchElement","fromIndex","ToInteger","apply","O","ToObject","ToLength","k","max","SameValueZero","includes","root","app","root--js","app--visible","root--noJs","app__mediaContainer","app__mediaFallback","app__itemContainer","textSection","textSection__card","textSection__card--left","textSection__card--right","_objectWithoutProperties","target","_classCallCheck","instance","Constructor","_possibleConstructorReturn","self","_inherits","subClass","superClass","create","setPrototypeOf","connect","mapContextToProps","wrappedComponent","Connected","_Component2","_ref","_temp","_this2","_ret","_len","args","_key","ctx","_createClass","_preact","_extends","displayName","Provider","assign","source","descriptor","protoProps","staticProps","_Component","_props","__CTX__","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","factory","define","isPolopolyId","id","isPolopolyIdRegex","createUrl","ratio","width","quality","url","_baseUrl","queryString","createQueryString","_ref2","getClosestNumber","goal","targets","isValidGoal","isValidTargets","reduce","prev","curr","abs","isValid","isValidRatio","supportedRatios","isArray","isValidQuality","supportedQualities","createImageUrl","polopolyId","hasOption","ratios","qualities","isNumber","errorMessage","isSupportedWidth","widths","closestWidth","option","isInteger","shim","IntersectionObserverEntry","entry","time","rootBounds","boundingClientRect","intersectionRect","getEmptyRect","isIntersecting","targetRect","targetArea","height","intersectionArea","intersectionRatio","toFixed","IntersectionObserver","opt_options","nodeType","_checkForIntersections","throttle","THROTTLE_TIMEOUT","_callback","_observationTargets","_queuedEntries","_rootMarginValues","_parseRootMargin","rootMargin","thresholds","_initThresholds","threshold","margin","unit","join","now","performance","timeout","timer","addEvent","opt_useCapture","attachEvent","removeEvent","detatchEvent","computeRectIntersection","rect1","rect2","top","bottom","left","right","getBoundingClientRect","el","rect","err","containsDeep","getParentNode","host","registry","POLL_INTERVAL","USE_MUTATION_OBSERVER","observe","some","item","element","_registerInstance","_monitorIntersections","unobserve","filter","_unmonitorIntersections","_unregisterInstance","disconnect","takeRecords","records","opt_threshold","sort","opt_rootMargin","marginString","margins","split","parts","exec","_monitoringIntersections","_monitoringInterval","setInterval","_domObserver","MutationObserver","childList","characterData","subtree","clearInterval","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","newEntry","_hasCrossedThreshold","getComputedStyle","display","atRoot","parentRect","parentComputedStyle","body","documentElement","overflow","html","clientWidth","clientHeight","_expandRectByRootMargin","newRect","oldRatio","newRatio","index","getPolyfill","polyfill","boundIncludesShim","array","RequireObjectCoercible","has","isArgs","isEnumerable","propertyIsEnumerable","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","keysShim","isObject","isArguments","isString","theKeys","skipProto","skipConstructor","originalKeys","str","callee","toPrimitive","GetIntrinsic","$TypeError","$SyntaxError","$Array","$String","$Object","$Number","$Symbol","$RegExp","MAX_SAFE_INTEGER","pow","sign","mod","isPrimitive","parseInteger","arraySlice","strSlice","isBinary","isOctal","regexExec","nonWS","nonWSregex","hasNonWS","invalidHexLiteral","isInvalidHexLiteral","$charCodeAt","charCodeAt","$floor","$abs","$ObjectCreate","$gOPD","$isExtensible","isExtensible","ws","trimRegex","ES5","hasRegExpMatcher","ES6","Call","F","V","IsCallable","ToPrimitive","ToNumber","argument","NaN","trimmed","ToInt16","int16bit","ToUint16","ToInt8","int8bit","ToUint8","posInt","ToUint8Clamp","ToString","ToPropertyKey","CanonicalNumericIndexString","SameValue","CheckObjectCoercible","IsArray","IsConstructor","IsExtensible","preventExtensions","IsInteger","IsPropertyKey","IsRegExp","isRegExp","match","ToBoolean","y","GetV","P","GetMethod","func","Get","Type","SpeciesConstructor","defaultConstructor","C","S","species","CompletePropertyDescriptor","Desc","IsPropertyDescriptor","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","newDesc","CreateDataPropertyOrThrow","success","ObjectCreate","proto","internalSlotsList","AdvanceStringIndex","unicode","first","second","that","bound","binder","boundLength","boundArgs","Empty","isCallable","isDate","isSymbol","ordinaryToPrimitive","hint","methodNames","input","exoticToPrim","getDay","tryDateObject","symToStr","symStringRegex","isSymbolObject","origSymbol","hasSymbolSham","sym","symObj","getOwnPropertyNames","syms","$assign","ToInt32","ToUint32","optMessage","allowed","[[Configurable]]","[[Enumerable]]","[[Get]]","[[Set]]","[[Value]]","[[Writable]]","isData","IsAccessor","IsAccessorDescriptor","FromPropertyDescriptor","set","ToPropertyDescriptor","Obj","desc","setter","ES5internalSlots","[[DefaultValue]]","actualHint","methods","gOPD","tryRegexExecCall","lastIndex","init","mapboxgl","findElements","rootElementClassName","_dhUtils","createUniqueId","getAttribute","preloadedState","errorTrackingEnabled","simpleErrorReport","_errorReporting","createErrorReporter","listenAndCatch","gaPropertyId","metadata","title","selfId","published","googleAnalyticsTracker","_dhAnalyticsUtils","createGoogleAnalyticsTracker","publishedDate","_getContextId","getContextId","location","href","sendError","message","sendErrorReport","sendGaEvent","eventObj","sendEvent","category","_featureTests","testPositionSticky","supported","_provider","_App","App","toArray","getElementsByClassName","isInitialized","_App2","initSporingDyreparken","testEventPassiveListener","hasSupportCache","opts","testJs","testJs$1","objectFit","position","testVideoAutoPlay","videoAutoPlayCache","videoElm","isPlaying","canPlayType","src","load","playPromise","play","catch","oncanplay","onplay","testReducedMotion","matchMedia","matches","testObjectFit","default","getScrollTop","getScrollLeft","bem","_array","_bem","_bem2","_scroll","_string","nodeList","_toConsumableArray","arr","arr2","from","toStrings","blockName","modifiers","strings","modifier","objects","objectString","b","pageXOffset","scrollLeft","pageYOffset","scrollTop","prefix","random","substr","isErrorReportingEnabled","SimpleErrorReport","dryRun","_dhSimpleErrorReport","r","register","u","parseStack","errorRegister","filename","lineno","colno","line","column","error","stackTrace","reason","console","log","stringify","isInRegisterWithinRange","addErrorToRegister","XMLHttpRequest","open","setRequestHeader","send","_interopRequireDefault","_App3","_MaxViewportRect","_MaxViewportRect2","_Background","_chapters","_PolopolyPicture","_PolopolyPicture2","_googleAnalytic","trackingName","_this","handleViewportChange","viewport","viewportHeight","visible","trackedInitial","chapters","createChapters","sectionElements","triggerElements","insersectionObserver","elm","setVisiblity","setIndex","triggerElm","_this3","trackAction","_this4","_state","mediaContainerInlineStyle","textSectionInlineStyle","paddingBottom","styles","onViewportChange","Background","chapterIndex","background","chapter","idx","imageId","fallbackPicture","section","textAlign","text","image","alt","link","verticalAlign","aria-hidden","xlinkHref","connector","_maxViewportObservable","_maxViewportObservable2","MaxViewportRect","viewport$","MaxViewportObservable","dispose","subscribe","inlineStyle","getRect","Element","innerWidth","innerHeight","observer","isDynamicViewport","isTouching","listeners","orientationchange","resize","prevRect","scroll","touchstart","touchend","unsubscribe","_Background2","mapboxChapters","mapbox","mapElement","nextProps","setActiveChapter","media--active","_mapboxgl","_mapboxgl2","mapEl","mapReady","addedPoints","startTime","progress","framesPerSecond","initialOpacity","opacity","initialRadius","radius","maxRadius","firstSymbolId","activeIndex","lineNames","animatedLineNames","polygonNames","multiPolygonNames","labelNames","animationLine","geometry","coordinates","fokusKlamme","animationProgress","currentLine","currentLineId","lineGeometries","accessToken","container","interactive","renderWorldCopies","attributionControl","on","setMaxZoom","loadImage","addImage","addSource","data","addLayer","layout","icon-image","icon-size","chapterConfig","camera","cameraForBounds","bounds","zoom","center","lng","lat","point","getLayer","setPaintProperty","addPoint","addLine","greatCircle","addGreatCircle","mapColor","polygon","addPolygon","multiPolygon","addMultiPolygon","label","addLabel","labels","removePoint","removeLine","removeGreatCircle","polygonId","multiPolygonId","duration","addChapter","fadeOutChapter","fadeInChapter","removeChapter","activeChapter","adaptChapterConfigBounds","jumpTo","bbox","fitBounds","padding","animate","flyTo","getSource","setData","showFocus","timestamp","requestAnimationFrame","animateMarker","getZoom","currentPointName","_this5","animateLine","fill-color","fill-opacity","fill-outline-color","fill-pattern","labelId","symbol-placement","text-font","text-field","properties","text-size","paint","text-color","text-halo-color","text-halo-width","lineId","line-cap","line-join","line-color","line-width","line-opacity","toPaint","pointId","lon","circle-radius","circle-radius-transition","circle-opacity-transition","circle-color","circle-opacity","removeLayer","removeSource","startStop","features","line-dasharray","gdocId","pitch","bearing","pointCluster","_serumImagecropUtils","_image","Picture","parsedQuality","getQualityFromString","defaultUrl","desktopSourceSet","createSrcSet","supportedWidths","mobileSourceSet","media","srcSet","_ref$quality","qualityString","string","initialize","trackingEnabled","isTrackingEnabled","action","sendToGoogleAnalytics","ga","w","referrer","dimension1","dimension2","dimension3","getFullYear","dimension4","getMonth","dimension5","getDate","dimension6","dimension7","dimension10","v","trackingId","cookieDomain","eventCategory","eventAction","eventLabel","eventValue","nonInteraction","fieldsObject","shift","extractPolopolyIdFromString","POLOPOLY_ID_REGEX"],"mappings":"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","file":"v1-bundle-71c60c12d82226f2cdaf.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// 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 = \"https://dh-static.mesos.nrk.no/dh-karthistorie-sporing-dyreparken/static/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 18);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return h; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return h; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cloneElement\", function() { return cloneElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Component\", function() { return Component; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rerender\", function() { return rerender; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"options\", function() { return options; });\nvar VNode = function VNode() {};\n\nvar options = {};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p,\n\t list = items;\n\titems = [];\n\twhile (p = list.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\nfunction isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\treturn node.splitText !== undefined;\n\t}\n\tif (typeof vnode.nodeName === 'string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor === vnode.nodeName;\n}\n\nfunction isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\nfunction getNodeProps(vnode) {\n\tvar props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tvar defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps !== undefined) {\n\t\tfor (var i in defaultProps) {\n\t\t\tif (props[i] === undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {} else if (name === 'ref') {\n\t\tif (old) old(null);\n\t\tif (value) value(node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\ttry {\n\t\t\tnode[name] = value == null ? '' : value;\n\t\t} catch (e) {}\n\t\tif ((value == null || value === false) && name != 'spellcheck') node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nvar mounts = [];\n\nvar diffLevel = 0;\n\nvar isSvgMode = false;\n\nvar hydrating = false;\n\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.pop()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\tif (!diffLevel++) {\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t}\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t} else if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\tdiffAttributes(out, vnode.attributes, props);\n\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t} else if (min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\tunmountComponent(component);\n\t} else {\n\t\tif (node['__preactattr_'] != null && node['__preactattr_'].ref) node['__preactattr_'].ref(null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\nvar recyclerComponents = [];\n\nfunction createComponent(Ctor, props, context) {\n\tvar inst,\n\t i = recyclerComponents.length;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\twhile (i--) {\n\t\tif (recyclerComponents[i].constructor === Ctor) {\n\t\t\tinst.nextBase = recyclerComponents[i].nextBase;\n\t\t\trecyclerComponents.splice(i, 1);\n\t\t\treturn inst;\n\t\t}\n\t}\n\n\treturn inst;\n}\n\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\nfunction setComponentProps(component, props, renderMode, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tcomponent.__ref = props.ref;\n\tcomponent.__key = props.key;\n\tdelete props.ref;\n\tdelete props.key;\n\n\tif (typeof component.constructor.getDerivedStateFromProps === 'undefined') {\n\t\tif (!component.base || mountAll) {\n\t\t\tif (component.componentWillMount) component.componentWillMount();\n\t\t} else if (component.componentWillReceiveProps) {\n\t\t\tcomponent.componentWillReceiveProps(props, context);\n\t\t}\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (renderMode !== 0) {\n\t\tif (renderMode === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tif (component.__ref) component.__ref(component);\n}\n\nfunction renderComponent(component, renderMode, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t snapshot = previousContext,\n\t rendered,\n\t inst,\n\t cbase;\n\n\tif (component.constructor.getDerivedStateFromProps) {\n\t\tstate = extend(extend({}, state), component.constructor.getDerivedStateFromProps(props, state));\n\t\tcomponent.state = state;\n\t}\n\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (renderMode !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tif (isUpdate && component.getSnapshotBeforeUpdate) {\n\t\t\tsnapshot = component.getSnapshotBeforeUpdate(previousProps, previousState);\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || renderMode === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.unshift(component);\n\t} else if (!skip) {\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, snapshot);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\twhile (component._renderCallbacks.length) {\n\t\tcomponent._renderCallbacks.pop().call(component);\n\t}if (!diffLevel && !isChild) flushMounts();\n}\n\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] && base['__preactattr_'].ref) base['__preactattr_'].ref(null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\trecyclerComponents.push(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tif (component.__ref) component.__ref(null);\n}\n\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\tthis.context = context;\n\n\tthis.props = props;\n\n\tthis.state = this.state || {};\n\n\tthis._renderCallbacks = [];\n}\n\nextend(Component.prototype, {\n\tsetState: function setState(state, callback) {\n\t\tif (!this.prevState) this.prevState = this.state;\n\t\tthis.state = extend(extend({}, this.state), typeof state === 'function' ? state(this.state, this.props) : state);\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t},\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\trender: function render() {}\n});\n\nfunction render(vnode, parent, merge) {\n return diff(merge, vnode, {}, false, parent, false);\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (preact);\n\n//# sourceMappingURL=preact.mjs.map\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bind = __webpack_require__(2);\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(25);\n\nmodule.exports = Function.prototype.bind || implementation;\n\n/***/ }),\n/* 3 */\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/* 4 */\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__(22);\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/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(24);\n\n/***/ }),\n/* 6 */\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/* 7 */\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/* 8 */\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/* 9 */\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/* 10 */\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/* 11 */\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/* 12 */\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/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\nvar ES = __webpack_require__(5);\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__(7)))\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(13);\n\nmodule.exports = function getPolyfill() {\n\treturn Array.prototype.includes || implementation;\n};\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"root\":\"dh-karthistorie-sporing-dyreparken-root\",\"app\":\"dh-karthistorie-sporing-dyreparken-app\",\"root--js\":\"dh-karthistorie-sporing-dyreparken-root--js\",\"app--visible\":\"dh-karthistorie-sporing-dyreparken-app--visible\",\"root--noJs\":\"dh-karthistorie-sporing-dyreparken-root--noJs\",\"app__mediaContainer\":\"dh-karthistorie-sporing-dyreparken-app__mediaContainer\",\"app__mediaFallback\":\"dh-karthistorie-sporing-dyreparken-app__mediaFallback\",\"app__itemContainer\":\"dh-karthistorie-sporing-dyreparken-app__itemContainer\",\"textSection\":\"dh-karthistorie-sporing-dyreparken-textSection\",\"textSection__card\":\"dh-karthistorie-sporing-dyreparken-textSection__card\",\"textSection__card--left\":\"dh-karthistorie-sporing-dyreparken-textSection__card--left\",\"textSection__card--right\":\"dh-karthistorie-sporing-dyreparken-textSection__card--right\"};\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.connect = exports.Provider = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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; }; }();\n\nvar _preact = __webpack_require__(0);\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n _classCallCheck(this, Provider);\n\n return _possibleConstructorReturn(this, (Provider.__proto__ || Object.getPrototypeOf(Provider)).apply(this, arguments));\n }\n\n _createClass(Provider, [{\n key: 'getChildContext',\n value: function getChildContext() {\n var _props = this.props,\n children = _props.children,\n props = _objectWithoutProperties(_props, ['children']);\n\n return { '__CTX__': props };\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.children[0];\n }\n }]);\n\n return Provider;\n}(_preact.Component);\n\nProvider.displayName = 'Provider';\n\nfunction connect(mapContextToProps) {\n return function (wrappedComponent) {\n var Connected = function (_Component2) {\n _inherits(Connected, _Component2);\n\n function Connected() {\n var _ref;\n\n var _temp, _this2, _ret;\n\n _classCallCheck(this, Connected);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this2 = _possibleConstructorReturn(this, (_ref = Connected.__proto__ || Object.getPrototypeOf(Connected)).call.apply(_ref, [this].concat(args))), _this2), _this2.mapContextToProps = function (ctx) {\n return mapContextToProps ? mapContextToProps(ctx) : ctx;\n }, _temp), _possibleConstructorReturn(_this2, _ret);\n }\n\n _createClass(Connected, [{\n key: 'render',\n value: function render() {\n return (0, _preact.h)(wrappedComponent, _extends({}, this.mapContextToProps(this.context['__CTX__']), this.props));\n }\n }]);\n\n return Connected;\n }(_preact.Component);\n\n Connected.displayName = 'connect(' + (wrappedComponent.displayName || wrappedComponent.name || 'Component') + ')';\n return Connected;\n };\n}\n\nexports.Provider = Provider;\nexports.connect = connect;\n\n/***/ }),\n/* 17 */\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/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(19);\nmodule.exports = __webpack_require__(38);\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(20);\n\n/* eslint-disable */\n\n__webpack_require__(21).shim();\n\nNumber.isInteger = Number.isInteger || function (value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n};\n\n/***/ }),\n/* 20 */\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 observing 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 // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\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 * Use a mutation observer on the root element\n * to detect intersection changes.\n */\n IntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\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 var isTargetAlreadyObserved = this._observationTargets.some(function (item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\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 visibility 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 (this.USE_MUTATION_OBSERVER && '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 execution, 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 element (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/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(4);\nvar ES = __webpack_require__(5);\n\nvar implementation = __webpack_require__(13);\nvar getPolyfill = __webpack_require__(14);\nvar polyfill = getPolyfill();\nvar shim = __webpack_require__(37);\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/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// modified from https://github.com/es-shims/es5-shim\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 = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = __webpack_require__(23);\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\nvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\nvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\nvar dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];\nvar equalsConstructorPrototype = function equalsConstructorPrototype(o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar excludedKeys = {\n\t$applicationCache: true,\n\t$console: true,\n\t$external: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$innerHeight: true,\n\t$innerWidth: true,\n\t$outerHeight: true,\n\t$outerWidth: true,\n\t$pageXOffset: true,\n\t$pageYOffset: true,\n\t$parent: true,\n\t$scrollLeft: true,\n\t$scrollTop: true,\n\t$scrollX: true,\n\t$scrollY: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = function () {\n\t/* global window */\n\tif (typeof window === 'undefined') {\n\t\treturn false;\n\t}\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && _typeof(window[k]) === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}();\nvar equalsConstructorPrototypeIfNotBuggy = function equalsConstructorPrototypeIfNotBuggy(o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\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\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2);\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\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} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\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/* 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\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/* 24 */\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__(1);\nvar toPrimitive = __webpack_require__(26);\n\nvar GetIntrinsic = __webpack_require__(8);\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 $isNaN = __webpack_require__(9);\nvar $isFinite = __webpack_require__(10);\nvar MAX_SAFE_INTEGER = $Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar assign = __webpack_require__(32);\nvar sign = __webpack_require__(11);\nvar mod = __webpack_require__(12);\nvar isPrimitive = __webpack_require__(33);\nvar parseInteger = parseInt;\nvar bind = __webpack_require__(2);\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 $floor = Math.floor;\nvar $abs = Math.abs;\n\nvar $ObjectCreate = Object.create;\nvar $gOPD = $Object.getOwnPropertyDescriptor;\n\nvar $isExtensible = $Object.isExtensible;\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__(34);\n\nvar hasRegExpMatcher = __webpack_require__(36);\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\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\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\tObject.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\ndelete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible\n\nmodule.exports = ES6;\n\n/***/ }),\n/* 25 */\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/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(27);\n\n/***/ }),\n/* 27 */\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__(6);\nvar isCallable = __webpack_require__(3);\nvar isDate = __webpack_require__(28);\nvar isSymbol = __webpack_require__(29);\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/* 28 */\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/* 29 */\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__(30)();\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/* 30 */\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__(31);\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__(7)))\n\n/***/ }),\n/* 31 */\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/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bind = __webpack_require__(2);\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/* 33 */\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/* 34 */\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__(8);\n\nvar $Object = GetIntrinsic('%Object%');\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $String = GetIntrinsic('%String%');\n\nvar $isNaN = __webpack_require__(9);\nvar $isFinite = __webpack_require__(10);\n\nvar sign = __webpack_require__(11);\nvar mod = __webpack_require__(12);\n\nvar IsCallable = __webpack_require__(3);\nvar toPrimitive = __webpack_require__(35);\n\nvar has = __webpack_require__(1);\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\t\t// jscs:disable\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\t\t// jscs:enable\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\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\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\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\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\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\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\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\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/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar toStr = Object.prototype.toString;\n\nvar isPrimitive = __webpack_require__(6);\n\nvar isCallable = __webpack_require__(3);\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/* 36 */\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__(1);\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/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(4);\nvar getPolyfill = __webpack_require__(14);\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/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* global __HOT__ */\n/* eslint-disable import/no-unresolved */\n\n// @jsx h\n\nvar _preact = __webpack_require__(0);\n\nvar _featureTests = __webpack_require__(39);\n\nvar _dhUtils = __webpack_require__(40);\n\nvar _errorReporting = __webpack_require__(45);\n\nvar _App = __webpack_require__(47);\n\nvar _App2 = __webpack_require__(15);\n\nvar _dhAnalyticsUtils = __webpack_require__(61);\n\nvar _getContextId = __webpack_require__(62);\n\nvar _provider = __webpack_require__(16);\n\nwindow[_App2.root] = window[_App2.root] || {};\n\nfunction init(mapboxgl) {\n findElements(_App2.root).forEach(function (el) {\n el.id = (0, _dhUtils.createUniqueId)();\n window[_App2.root][el.id] = true;\n\n // Extract values sent from server\n var name = el.getAttribute('data-name');\n var preloadedState = JSON.parse(el.getAttribute('data-preloaded-state'));\n var errorTrackingEnabled = el.getAttribute('data-error-tracking-enabled') === 'true';\n\n // setup error reporting\n var simpleErrorReport = (0, _errorReporting.createErrorReporter)(name, errorTrackingEnabled);\n simpleErrorReport.listenAndCatch();\n\n // Extract metadata required to create google analytics tracker\n var gaPropertyId = el.getAttribute('data-ga-property-id');\n var metadata = JSON.parse(el.getAttribute('data-metadata'));\n var title = metadata.title,\n selfId = metadata.selfId,\n published = metadata.published;\n\n // create google analytics tracker\n\n var googleAnalyticsTracker = (0, _dhAnalyticsUtils.createGoogleAnalyticsTracker)({\n name: 'dh',\n gaPropertyId: gaPropertyId,\n self: {\n id: selfId,\n title: title,\n publishedDate: published ? new Date(published) : null\n },\n context: {\n id: (0, _getContextId.getContextId)(document.location.href)\n }\n });\n\n var sendError = function sendError(message) {\n simpleErrorReport.sendErrorReport({ message: message });\n };\n\n var sendGaEvent = function sendGaEvent(eventObj) {\n googleAnalyticsTracker.sendEvent(_extends({\n category: 'dh-modul-' + name\n }, eventObj));\n };\n\n // Test if the browser is modern enough\n (0, _featureTests.testPositionSticky)(function (supported) {\n if (!supported) {\n simpleErrorReport.sendErrorReport({ message: 'Warning: This browser does not support `position: sticky`' });\n\n return;\n }\n if (!mapboxgl.supported()) {\n simpleErrorReport.sendErrorReport({ message: 'Warning: This browser does not support mapbox-gl' });\n\n return;\n }\n\n // ... and render with the exact same props\n el.className = el.className.replace('noJs', 'js');\n // render(, el, el.firstChild)\n\n (0, _preact.render)((0, _preact.h)(\n _provider.Provider,\n { sendGaEvent: sendGaEvent, sendError: sendError },\n (0, _preact.h)(_App.App, preloadedState)\n ), el, el.firstChild);\n });\n\n // Enable webpack hot-reloading\n if (false) {\n // Reload and re-render preact application\n module.hot.accept('./client', function () {\n var _require = require('./components/App'),\n App = _require.App;\n\n var _require2 = require('../lib/provider'),\n CustomProvider = _require2.Provider;\n\n (0, _preact.render)((0, _preact.h)(\n CustomProvider,\n { sendGaEvent: sendGaEvent, sendError: sendError },\n (0, _preact.h)(App, preloadedState)\n ), el, el.firstChild);\n });\n }\n });\n}\n\nif (false) {\n require('preact/debug');\n}\n\nfunction findElements(className) {\n return (0, _dhUtils.toArray)(document.getElementsByClassName(className)).filter(function (el) {\n return !isInitialized(el, className);\n });\n}\n\nfunction isInitialized(el, className) {\n return el.id && window[className][el.id];\n}\n\nwindow.initSporingDyreparken = init;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar hasSupportCache = void 0;\n\nfunction testEventPassiveListener(callback) {\n if (hasSupportCache !== undefined) {\n callback(hasSupportCache);\n return;\n }\n\n hasSupportCache = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n hasSupportCache = true;\n }\n });\n\n window.addEventListener('test', null, opts);\n } catch (e) {}\n\n callback(hasSupportCache);\n}\n\nfunction testJs(callback) {\n callback(true);\n}\n\nfunction testJs$1(callback) {\n var el = document.createElement('img');\n\n callback(el.style.objectFit !== undefined);\n}\n\nfunction testPositionSticky(callback) {\n var el = document.createElement('a');\n\n el.style.cssText = 'position: sticky; position: -webkit-sticky; position: -ms-sticky;';\n\n callback(el.style.position.indexOf('sticky') !== -1);\n}\n\nvar videoAutoPlayCache = null;\n\nfunction testVideoAutoPlay(callback) {\n if (typeof window === 'undefined') {\n return callback(false);\n }\n\n if (videoAutoPlayCache !== null) {\n return callback(videoAutoPlayCache);\n }\n\n var videoElm = document.createElement('video');\n\n var isPlaying = false;\n\n videoElm.setAttribute('autoplay', '');\n videoElm.setAttribute('muted', '');\n videoElm.setAttribute('webkit-playsinline', 'webkit-playsinline');\n videoElm.setAttribute('playsinline', 'playsinline');\n\n try {\n if (videoElm.canPlayType('video/ogg')) {\n videoElm.src = 'data:video/ogg;base64,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';\n } else if (videoElm.canPlayType('video/mp4')) {\n videoElm.src = 'data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAAs1tZGF0AAACrgYF//+q3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0OCByMjYwMSBhMGNkN2QzIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEwIHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAD2WIhAA3//728P4FNjuZQQAAAu5tb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAAZAABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACGHRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAgAAAAIAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAGQAAAAAAAEAAAAAAZBtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAACgAAAAEAFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAE7bWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAA+3N0YmwAAACXc3RzZAAAAAAAAAABAAAAh2F2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAgACAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAxYXZjQwFkAAr/4QAYZ2QACqzZX4iIhAAAAwAEAAADAFA8SJZYAQAGaOvjyyLAAAAAGHN0dHMAAAAAAAAAAQAAAAEAAAQAAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAABRzdHN6AAAAAAAAAsUAAAABAAAAFHN0Y28AAAAAAAAAAQAAADAAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAAC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU2LjQwLjEwMQ==';\n } else {\n return callback(false);\n }\n } catch (_) {\n return callback(false);\n }\n\n videoElm.load();\n var playPromise = videoElm.play();\n\n if (playPromise) {\n playPromise.catch(function (e) {\n // Do nothing\n });\n }\n\n videoElm.oncanplay = function () {\n videoAutoPlayCache = isPlaying;\n callback(videoAutoPlayCache);\n };\n\n videoElm.onplay = function () {\n isPlaying = true;\n };\n}\n\nfunction testReducedMotion(callback) {\n if (typeof window === 'undefined') {\n if (callback) {\n callback(false);\n }\n return false;\n }\n\n var test = !!window.matchMedia && window.matchMedia('(prefers-reduced-motion)').matches;\n if (callback) {\n callback(test);\n }\n return test;\n}\n\nvar index = {\n testEventPassiveListener: testEventPassiveListener,\n testJs: testJs,\n testObjectFit: testJs$1,\n testPositionSticky: testPositionSticky,\n testVideoAutoPlay: testVideoAutoPlay,\n testReducedMotion: testReducedMotion\n};\n\nexports.default = index;\nexports.testEventPassiveListener = testEventPassiveListener;\nexports.testJs = testJs;\nexports.testObjectFit = testJs$1;\nexports.testPositionSticky = testPositionSticky;\nexports.testVideoAutoPlay = testVideoAutoPlay;\nexports.testReducedMotion = testReducedMotion;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toArray = exports.getScrollTop = exports.getScrollLeft = exports.createUniqueId = exports.bem = undefined;\n\nvar _array = __webpack_require__(41);\n\nvar _bem = __webpack_require__(42);\n\nvar _bem2 = _interopRequireDefault(_bem);\n\nvar _scroll = __webpack_require__(43);\n\nvar _string = __webpack_require__(44);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.bem = _bem2.default;\nexports.createUniqueId = _string.createUniqueId;\nexports.getScrollLeft = _scroll.getScrollLeft;\nexports.getScrollTop = _scroll.getScrollTop;\nexports.toArray = _array.toArray;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toArray = toArray;\nfunction toArray(nodeList) {\n return [].slice.call(nodeList);\n}\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction toStrings(object) {\n return Object.keys(object).filter(function (key) {\n return object[key];\n });\n}\n\nexports.default = function (blockName) {\n for (var _len = arguments.length, modifiers = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n modifiers[_key - 1] = arguments[_key];\n }\n\n var strings = modifiers.filter(function (modifier) {\n return typeof modifier === 'string';\n });\n var objects = modifiers.filter(function (modifier) {\n return (typeof modifier === 'undefined' ? 'undefined' : _typeof(modifier)) === 'object';\n });\n\n var objectString = objects.map(function (object) {\n return toStrings(object);\n }).reduce(function (a, b) {\n return [].concat(_toConsumableArray(a), _toConsumableArray(b));\n }, []);\n\n return [blockName].concat(strings.map(function (modifier) {\n return blockName + '--' + modifier;\n })).concat(objectString.map(function (modifier) {\n return blockName + '--' + modifier;\n })).join(' ');\n};\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getScrollLeft = getScrollLeft;\nexports.getScrollTop = getScrollTop;\nfunction getScrollLeft() {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n return window.pageXOffset || document.documentElement && document.documentElement.scrollLeft || 0;\n}\n\nfunction getScrollTop() {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n return window.pageYOffset || document.documentElement && document.documentElement.scrollTop || 0;\n}\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createUniqueId = createUniqueId;\nfunction createUniqueId() {\n var len = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return '' + prefix + Math.random().toString(36).substr(2, len - prefix.length);\n}\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createErrorReporter = createErrorReporter;\n\nvar _dhSimpleErrorReport = __webpack_require__(46);\n\nfunction createErrorReporter(name, isErrorReportingEnabled) {\n return new _dhSimpleErrorReport.SimpleErrorReport({\n name: name,\n url: 'https://dh-catch.mesos.nrk.no',\n dryRun: !isErrorReportingEnabled\n });\n}\n\n/***/ }),\n/* 46 */\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 (e, n) {\n \"object\" == ( false ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? n(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (n),\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__)) : n(e[\"simple-error-report\"] = {});\n}(undefined, function (e) {\n \"use strict\";\n var n = function () {\n function e(e, n) {\n for (var r = 0; r < n.length; r++) {\n var t = n[r];t.enumerable = t.enumerable || !1, t.configurable = !0, \"value\" in t && (t.writable = !0), Object.defineProperty(e, t.key, t);\n }\n }return function (n, r, t) {\n return r && e(n.prototype, r), t && e(n, t), n;\n };\n }();var r = function () {\n function e() {\n !function (e, n) {\n if (!(e instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.register = [];\n }return n(e, [{ key: \"addErrorToRegister\", value: function value(e) {\n this.register.push({ time: new Date(), message: e });\n } }, { key: \"isInRegisterWithinRange\", value: function value(e, n) {\n return this.register.filter(function (r) {\n return r.message === e && new Date() - r.time < n;\n }).length > 0;\n } }]), e;\n }(),\n t = Object.assign || function (e) {\n for (var n = 1; n < arguments.length; n++) {\n var r = arguments[n];for (var t in r) {\n Object.prototype.hasOwnProperty.call(r, t) && (e[t] = r[t]);\n }\n }return e;\n },\n i = function () {\n function e(e, n) {\n for (var r = 0; r < n.length; r++) {\n var t = n[r];t.enumerable = t.enumerable || !1, t.configurable = !0, \"value\" in t && (t.writable = !0), Object.defineProperty(e, t.key, t);\n }\n }return function (n, r, t) {\n return r && e(n.prototype, r), t && e(n, t), n;\n };\n }();var o = [],\n s = function () {\n function e(n) {\n var t = n.name,\n i = n.url,\n s = n.dryRun,\n a = void 0 === s || s,\n u = n.parseStack;!function (e, n) {\n if (!(e instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.name = t, this.url = i, this.errorRegister = new r(), this.dryRun = a, u && (this.parseStack = u), o.push(this.name);\n }return i(e, [{ key: \"listenAndCatch\", value: function value() {\n var e = this;o.length <= 1 && (window.addEventListener(\"error\", function (n) {\n var r = n.message,\n i = n.filename,\n o = n.lineno,\n s = n.colno,\n a = { message: r };\"\" !== i && (a.url = i), o > 0 && (a.line = o), s > 0 && (a.column = s), n.error && \"function\" == typeof e.parseStack ? e.parseStack(n.error).then(function (n) {\n e.sendErrorReport(t({}, a, { stackTrace: n }));\n }) : e.sendErrorReport(a);\n }), window.addEventListener(\"unhandledrejection\", function (n) {\n e.sendErrorReport({ message: \"Unhandled Promise Rejection: \" + n.reason });\n }));\n } }, { key: \"sendErrorReport\", value: function value(e) {\n var n, r, t;this.dryRun ? \"undefined\" != typeof console && console.log(\"Dry run: \" + JSON.stringify(e)) : this.errorRegister.isInRegisterWithinRange(e.message, 500) || (this.errorRegister.addErrorToRegister(e.message), n = this.url + \"/\" + this.name, r = e, (t = new XMLHttpRequest()).open(\"POST\", n), t.setRequestHeader(\"Content-Type\", \"application/json\"), t.send(JSON.stringify(r)));\n } }]), e;\n }();e.SimpleErrorReport = s, Object.defineProperty(e, \"__esModule\", { value: !0 });\n});\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.App = undefined;\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; }; }();\n\nvar _preact = __webpack_require__(0);\n\nvar _App2 = __webpack_require__(15);\n\nvar _App3 = _interopRequireDefault(_App2);\n\nvar _provider = __webpack_require__(16);\n\nvar _bem = __webpack_require__(48);\n\nvar _MaxViewportRect = __webpack_require__(49);\n\nvar _MaxViewportRect2 = _interopRequireDefault(_MaxViewportRect);\n\nvar _Background = __webpack_require__(51);\n\nvar _chapters = __webpack_require__(56);\n\nvar _array = __webpack_require__(57);\n\nvar _PolopolyPicture = __webpack_require__(58);\n\nvar _PolopolyPicture2 = _interopRequireDefault(_PolopolyPicture);\n\nvar _googleAnalytic = __webpack_require__(60);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/** @jsx h */\n\n/* eslint-disable compat/compat */\n\n// import PolopolyPicture from './PolopolyPicture'\n\n\n// import type { Chapter } from './chapters'\n\nvar trackingName = 'dh-karthistorie-sporing-dyreparken';\n\nvar _App = function (_Component) {\n _inherits(_App, _Component);\n\n /* Example of how to send a click event to google analytics\n handleClick = () => {\n this.props.sendGaEvent({\n action: 'click'\n })\n }\n */\n\n function _App() {\n _classCallCheck(this, _App);\n\n var _this = _possibleConstructorReturn(this, (_App.__proto__ || Object.getPrototypeOf(_App)).call(this));\n\n _this.handleViewportChange = function (viewport) {\n if (_this.state.viewportHeight !== viewport.height) {\n _this.setState({ viewportHeight: viewport.height });\n }\n };\n\n _this.state = {\n visible: false,\n index: -1,\n trackedInitial: false,\n viewportHeight: null\n };\n var chapters = (0, _chapters.createChapters)();\n _this.sectionElements = (0, _array.toArray)(new Array(chapters.length));\n _this.triggerElements = (0, _array.toArray)(new Array(chapters.length));\n return _this;\n }\n\n _createClass(_App, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n this.insersectionObserver = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (entry.target === _this2.elm) {\n _this2.setVisiblity(entry.isIntersecting);\n } else if (entry.isIntersecting) {\n _this2.setIndex(_this2.triggerElements.indexOf(entry.target));\n }\n });\n }, {\n rootMargin: '-10px -10px -10px -10px',\n threshold: [0]\n });\n\n this.triggerElements.forEach(function (triggerElm) {\n return _this2.insersectionObserver.observe(triggerElm);\n });\n this.insersectionObserver.observe(this.elm);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var _this3 = this;\n\n this.triggerElements.forEach(function (triggerElm) {\n return _this3.insersectionObserver.unobserve(triggerElm);\n });\n this.insersectionObserver.unobserve(this.elm);\n this.insersectionObserver.disconnect();\n }\n }, {\n key: 'setIndex',\n value: function setIndex(index) {\n if (this.state.index !== index) {\n this.setState({ index: index });\n }\n }\n }, {\n key: 'setVisiblity',\n value: function setVisiblity(visible) {\n if (!this.state.trackedInitial && visible) {\n (0, _googleAnalytic.trackAction)(visible ? 'SCROLL_IN' : 'SCROLL_OUT', trackingName);\n (0, _googleAnalytic.trackAction)('LOAD_SUCCESS/index:' + this.state.index, trackingName);\n this.setState({ visible: visible, trackedInitial: true });\n } else if (this.state.visible !== visible) {\n (0, _googleAnalytic.trackAction)(visible ? 'SCROLL_IN' : 'SCROLL_OUT', trackingName);\n this.setState({ visible: visible });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _state = this.state,\n visible = _state.visible,\n viewportHeight = _state.viewportHeight;\n\n var chapters = (0, _chapters.createChapters)();\n\n var mediaContainerInlineStyle = {};\n if (viewportHeight !== null) {\n mediaContainerInlineStyle.height = viewportHeight + 'px';\n }\n\n var textSectionInlineStyle = {};\n if (viewportHeight !== null) {\n textSectionInlineStyle.paddingBottom = 'calc(' + viewportHeight + 'px - 20px)';\n }\n return (0, _preact.h)(\n 'div',\n {\n className: (0, _bem.bem)(_App3.default.app, visible && 'visible'),\n ref: function ref(elm) {\n return _this4.elm = elm;\n }\n },\n (0, _preact.h)(_MaxViewportRect2.default, {\n height: '100',\n onViewportChange: this.handleViewportChange\n }),\n (0, _preact.h)(\n 'div',\n {\n className: _App3.default.app__mediaContainer,\n style: mediaContainerInlineStyle\n },\n (0, _preact.h)(_Background.Background, {\n chapters: chapters,\n chapterIndex: this.state.index,\n ref: function ref(elm) {\n _this4.background = elm;\n }\n }),\n chapters.map(function (chapter, idx) {\n return (0, _preact.h)(\n 'div',\n { key: idx, className: _App3.default.app__mediaFallback },\n (0, _preact.h)(_PolopolyPicture2.default, { imageId: chapter.fallbackPicture })\n );\n })\n ),\n (0, _preact.h)(\n 'div',\n { className: _App3.default.app__itemContainer },\n chapters.map(function (section, idx) {\n return (0, _preact.h)(\n 'section',\n {\n key: idx,\n className: _App3.default.textSection,\n style: textSectionInlineStyle,\n ref: function ref(elm) {\n _this4.sectionElements[idx] = elm;\n }\n },\n (0, _preact.h)(\n 'div',\n {\n className: (0, _bem.bem)(_App3.default.textSection__card, section.textAlign),\n ref: function ref(elm) {\n _this4.triggerElements[idx] = elm;\n }\n },\n section.title && (0, _preact.h)(\n 'h2',\n null,\n section.title\n ),\n section.text && (0, _preact.h)('p', { dangerouslySetInnerHTML: { __html: section.text } }),\n section.image && (0, _preact.h)('img', {\n src: section.image,\n style: ' margin-top: 10px; width: 100%;',\n alt: section.alt\n }),\n section.link && section.link.url && (0, _preact.h)(\n 'p',\n null,\n (0, _preact.h)(\n 'a',\n { href: section.link.url },\n section.link.text\n ),\n '\\xA0',\n (0, _preact.h)(\n 'svg',\n {\n style: {\n width: '1.5em',\n height: '1em',\n verticalAlign: 'middle'\n },\n 'aria-hidden': 'true'\n },\n (0, _preact.h)('use', { xlinkHref: '#nrk-arrow-right' })\n )\n )\n )\n );\n })\n )\n );\n }\n }]);\n\n return _App;\n}(_preact.Component);\n\n/*\nconst mapContextToProps = context => ({\n ...context,\n sendCustomGaEvent: () => context.sendEvent({ action: 'my custom event action' })\n})\n*/\n\nvar connector = (0, _provider.connect)();\n// const connector = connect(mapContextToProps)\nvar App = exports.App = connector(_App);\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bem = bem;\nfunction bem(blockName) {\n for (var _len = arguments.length, modifiers = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n modifiers[_key - 1] = arguments[_key];\n }\n\n return [blockName].concat(modifiers.filter(Boolean).map(function (modifier) {\n return blockName + '--' + modifier;\n })).join(' ');\n}\n\n/***/ }),\n/* 49 */\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; }; }();\n\nvar _maxViewportObservable = __webpack_require__(50);\n\nvar _maxViewportObservable2 = _interopRequireDefault(_maxViewportObservable);\n\nvar _preact = __webpack_require__(0);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/** @jsx h */\n\nvar MaxViewportRect = function (_Component) {\n _inherits(MaxViewportRect, _Component);\n\n function MaxViewportRect() {\n _classCallCheck(this, MaxViewportRect);\n\n return _possibleConstructorReturn(this, (MaxViewportRect.__proto__ || Object.getPrototypeOf(MaxViewportRect)).apply(this, arguments));\n }\n\n _createClass(MaxViewportRect, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n this.viewport$ = _maxViewportObservable2.default.create({\n root: this.elm\n });\n\n this.dispose = this.viewport$.subscribe({\n next: function next(viewport) {\n _this2.props.onViewportChange(viewport);\n }\n });\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.dispose();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var height = this.props.height || 100;\n var inlineStyle = { height: height + 'vh', position: 'absolute' };\n return (0, _preact.h)('div', { ref: function ref(elm) {\n return _this3.elm = elm;\n }, style: inlineStyle });\n }\n }]);\n\n return MaxViewportRect;\n}(_preact.Component);\n\nexports.default = MaxViewportRect;\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction create() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var root = opts.root;\n\n var getRect = function getRect() {\n if (root instanceof Element) {\n var rect = root.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height\n };\n }\n\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n };\n\n var subscribe = function subscribe(observer) {\n var isDynamicViewport = false;\n var isTouching = false;\n var rect = { width: -1, height: -1 };\n\n var listeners = {\n orientationchange: function orientationchange() {\n rect = { width: -1, height: -1 };\n },\n resize: function resize() {\n var prevRect = rect;\n\n rect = getRect();\n\n if (isDynamicViewport && rect.height < prevRect.height) {\n rect.height = prevRect.height;\n }\n\n observer.next(rect);\n },\n scroll: function scroll() {\n if (isTouching) {\n isDynamicViewport = true;\n window.removeEventListener('scroll', listeners.scroll);\n }\n },\n touchstart: function touchstart() {\n isTouching = true;\n },\n touchend: function touchend() {\n isTouching = false;\n }\n };\n\n window.addEventListener('orientationchange', listeners.orientationchange);\n window.addEventListener('resize', listeners.resize);\n window.addEventListener('scroll', listeners.scroll);\n window.addEventListener('touchstart', listeners.touchstart);\n window.addEventListener('touchend', listeners.touchend);\n\n // Trigger initial \"resize\"\n listeners.resize();\n\n return {\n unsubscribe: function unsubscribe() {\n window.removeEventListener('orientationchange', listeners.orientationchange);\n window.removeEventListener('resize', listeners.resize);\n window.removeEventListener('scroll', listeners.scroll);\n window.removeEventListener('touchstart', listeners.touchstart);\n window.removeEventListener('touchend', listeners.touchend);\n }\n };\n };\n\n return { subscribe: subscribe };\n}\n\nvar index = { create: create };\n\nexports.create = create;\nexports.default = index;\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Background = undefined;\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; }; }();\n\nvar _preact = __webpack_require__(0);\n\nvar _Background = __webpack_require__(52);\n\nvar _Background2 = _interopRequireDefault(_Background);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n/** @jsx h */\n\n\nvar Background = exports.Background = function (_Component) {\n _inherits(Background, _Component);\n\n function Background() {\n _classCallCheck(this, Background);\n\n return _possibleConstructorReturn(this, (Background.__proto__ || Object.getPrototypeOf(Background)).apply(this, arguments));\n }\n\n _createClass(Background, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var Map = __webpack_require__(53).default;\n var mapboxChapters = this.props.chapters.map(function (chapter) {\n return chapter.mapbox;\n });\n this.map = new Map(this.mapElement, mapboxChapters);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n // eslint-disable-line\n if (Number.isInteger(nextProps.chapterIndex) && nextProps.chapterIndex >= 0) {\n this.map.setActiveChapter(nextProps.chapterIndex);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return (0, _preact.h)(\n 'div',\n { className: _Background2.default.background },\n (0, _preact.h)('div', { ref: function ref(elm) {\n return _this2.mapElement = elm;\n }, className: _Background2.default.map })\n );\n }\n }]);\n\n return Background;\n}(_preact.Component);\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"background\":\"dh-karthistorie-sporing-dyreparken-background\",\"root--noJs\":\"dh-karthistorie-sporing-dyreparken-root--noJs\",\"root--js\":\"dh-karthistorie-sporing-dyreparken-root--js\",\"app--visible\":\"dh-karthistorie-sporing-dyreparken-app--visible\",\"media--active\":\"dh-karthistorie-sporing-dyreparken-media--active\",\"map\":\"dh-karthistorie-sporing-dyreparken-map\"};\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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; }; }();\n\n/* eslint-disable import/no-unresolved */\n\n\n__webpack_require__(54);\n\nvar _mapboxgl = __webpack_require__(55);\n\nvar _mapboxgl2 = _interopRequireDefault(_mapboxgl);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// import greatCircle from '@turf/great-circle'\n// import '../../../static/back-pattern.png'\n\nvar Map = function () {\n function Map(mapEl, chapters) {\n var _this = this;\n\n _classCallCheck(this, Map);\n\n this.mapReady = false;\n this.addedPoints = [];\n this.startTime = 0;\n this.progress = 0;\n this.framesPerSecond = 15;\n this.initialOpacity = 1;\n this.opacity = this.initialOpacity;\n this.initialRadius = 25;\n this.radius = this.initialRadius;\n this.maxRadius = 55;\n this.firstSymbolId = null;\n this.activeIndex = 0;\n this.chapters = chapters;\n this.lineNames = [];\n this.animatedLineNames = [];\n this.polygonNames = [];\n this.multiPolygonNames = [];\n this.labelNames = [];\n this.mapEl = mapEl;\n this.animationLine = {\n type: 'Feature',\n geometry: {\n type: 'LineString',\n coordinates: []\n }\n };\n this.fokusKlamme = {\n type: 'Feature',\n geometry: {\n type: 'Point',\n coordinates: [5.673099, 58.988715]\n }\n };\n this.animationProgress = 0;\n this.currentLine = null;\n this.currentLineId = null;\n this.lineGeometries = [];\n // this.adaptChapterConfigBounds(this.chapters[0])\n\n _mapboxgl2.default.accessToken = 'pk.eyJ1IjoibnJrIiwiYSI6Ii14T3NfSzgifQ.0N5h3SI2b6bemxP_1YESIA';\n this.map = new _mapboxgl2.default.Map(_extends({}, this.chapters[this.activeIndex], {\n container: mapEl,\n // style: 'mapbox://styles/nrk/cjda0mdyv8mwk2spdhnfk8upp',\n // style: 'mapbox://styles/nrk/cj07whxya001b2rr3t3qn875e',\n // style: 'mapbox://styles/nrk/cjd5nkoti4kph2spd13z34tmd', // BLå\n // style: 'mapbox://styles/nrk/cizjr6t96006v2smn4qp3l430', // NRK blue with satellite shading\n // style: 'mapbox://styles/nrk/cj07whxya001b2rr3t3qn875e', // Flybilder\n style: 'mapbox://styles/nrk/ck7n99dx70vv01ipek17fb8nz', // Sporing - flybilder\n interactive: false,\n renderWorldCopies: false,\n attributionControl: false\n }));\n\n this.map.on('load', function () {\n _this.map.setMaxZoom(30);\n /*\n this.map.addLayer({\n id: 'raster-layer',\n type: 'raster',\n source: {\n type: 'raster',\n tiles: ['https://api.mapbox.com/v4/nrk.6gen9l2a/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibnJrIiwiYSI6Ii14T3NfSzgifQ.0N5h3SI2b6bemxP_1YESIA']\n },\n minzoom: 12,\n maxzoom: 22\n }) */\n\n // const layers = this.map.getStyle().layers\n // Find the index of the first symbol layer in the map style\n _this.firstSymbolId = 0; // layers.find(layer => layer.type === 'symbol').id\n // this.map.addControl(new mapboxgl.ScaleControl())\n // this.animateMarker(0)\n // this.animateLine(0)\n _this.mapReady = true;\n _this.setActiveChapter(_this.activeIndex, 0);\n // this.animationLoop(0)\n _this.map.loadImage('https://static.nrk.no/dh/videos/beta/2020/dh-sporing/fokusklamme-02.png', function (error, image) {\n if (error) throw error;\n _this.map.addImage('fokusklamme', image);\n _this.map.addSource('fokusklamme', {\n type: 'geojson',\n data: _this.fokusKlamme\n });\n _this.map.addLayer({\n id: 'points',\n type: 'symbol',\n source: 'fokusklamme',\n layout: {\n 'icon-image': 'fokusklamme',\n 'icon-size': 0.45\n }\n });\n });\n });\n }\n\n _createClass(Map, [{\n key: 'adaptChapterConfigBounds',\n value: function adaptChapterConfigBounds(chapterConfig) {\n var camera = this.map.cameraForBounds(chapterConfig.bounds);\n chapterConfig.zoom = camera.zoom;\n chapterConfig.center = [camera.center.lng, camera.center.lat];\n }\n }, {\n key: 'addChapter',\n value: function addChapter(chapter) {\n var _this2 = this;\n\n if (chapter.point) {\n for (var i = 0; i < this.addedPoints.length; i++) {\n if (this.map.getLayer(this.addedPoints[i]) !== undefined) {\n this.map.setPaintProperty(this.addedPoints[i], 'circle-opacity', 0);\n }\n }\n this.addPoint(chapter.point, chapter.id);\n }\n\n if (chapter.line) {\n this.addLine(chapter.line, chapter.id);\n }\n\n if (chapter.greatCircle) {\n this.addGreatCircle(chapter.greatCircle, chapter.mapColor, chapter.id);\n } else {\n this.currentLineId = null;\n }\n\n if (chapter.polygon) {\n this.addPolygon(chapter.polygon, chapter.mapColor, chapter.id);\n }\n\n if (chapter.multiPolygon) {\n this.addMultiPolygon(chapter.multiPolygon, chapter.mapColor, chapter.id);\n }\n\n if (chapter.label) {\n this.addLabel(chapter.label, chapter.id);\n }\n\n if (chapter.labels) {\n chapter.labels.forEach(function (label, idx) {\n _this2.addLabel(label, chapter.id + '_' + idx);\n });\n }\n }\n }, {\n key: 'removeChapter',\n value: function removeChapter(chapter) {\n if (chapter.point) {\n this.removePoint(chapter.id);\n }\n\n if (chapter.line) {\n this.removeLine(chapter.id);\n }\n\n if (chapter.greatCircle) {\n this.removeGreatCircle(chapter.id);\n }\n }\n }, {\n key: 'fadeOutChapter',\n value: function fadeOutChapter(chapter) {\n if (chapter.polygon) {\n var polygonId = 'polygon-' + chapter.id;\n if (this.map.getLayer(polygonId) !== undefined) {\n this.map.setPaintProperty(polygonId, 'fill-opacity', 0.5);\n }\n }\n if (chapter.multiPolygon) {\n var multiPolygonId = 'multiPolygon-' + chapter.id;\n if (this.map.getLayer(multiPolygonId) !== undefined) {\n this.map.setPaintProperty(multiPolygonId, 'fill-opacity', 0.5);\n }\n }\n }\n }, {\n key: 'fadeInChapter',\n value: function fadeInChapter(chapter) {\n if (chapter.polygon) {\n var polygonId = 'polygon-' + chapter.id;\n if (this.map.getLayer(polygonId) !== undefined) {\n this.map.setPaintProperty(polygonId, 'fill-opacity', 1);\n }\n }\n if (chapter.multiPolygon) {\n var multiPolygonId = 'multiPolygon-' + chapter.id;\n if (this.map.getLayer(multiPolygonId) !== undefined) {\n this.map.setPaintProperty(multiPolygonId, 'fill-opacity', 1);\n }\n }\n }\n }, {\n key: 'setActiveChapter',\n value: function setActiveChapter(chapterIndex, duration) {\n var _this3 = this;\n\n this.activeIndex = chapterIndex;\n if (!this.mapReady) {\n return;\n }\n\n this.chapters.forEach(function (chapter, idx) {\n if (idx < chapterIndex) {\n _this3.addChapter(chapter);\n _this3.fadeOutChapter(chapter);\n } else if (idx === chapterIndex) {\n _this3.addChapter(chapter);\n _this3.fadeInChapter(chapter);\n } else {\n _this3.removeChapter(chapter);\n _this3.fadeOutChapter(chapter);\n }\n });\n\n var activeChapter = this.chapters[chapterIndex];\n if (activeChapter.bounds) {\n this.adaptChapterConfigBounds(activeChapter);\n }\n\n if (duration === 0) {\n this.map.jumpTo(activeChapter);\n } else {\n var data = (activeChapter.polygon || {}).data || (activeChapter.multiPolygon || {}).data;\n if (data && data.bbox) {\n this.map.fitBounds(data.bbox, {\n padding: 20,\n animate: true,\n duration: 2000\n });\n } else {\n this.map.flyTo(activeChapter);\n }\n }\n\n for (var i = 0; i < this.animatedLineNames.length; i++) {\n if (this.animatedLineNames[i] !== this.currentLineId) {\n this.map.getSource(this.animatedLineNames[i]).setData(this.lineGeometries[i]);\n }\n }\n\n if (activeChapter.showFocus) {\n // console.log(activeChapter)\n this.fokusKlamme.geometry.coordinates = activeChapter.center; // this.addedCoordinates[this.activeIndex]\n if (this.map.getSource('fokusklamme')) {\n this.map.getSource('fokusklamme').setData(this.fokusKlamme);\n }\n }\n }\n }, {\n key: 'animateMarker',\n value: function animateMarker(timestamp) {\n var _this4 = this;\n\n setTimeout(function () {\n requestAnimationFrame(_this4.animateMarker.bind(_this4));\n var opacity = _this4.map.getZoom() + 1 - 15;\n if (opacity < 0) {\n opacity = 0;\n } else if (opacity > 1) {\n opacity = 1;\n }\n\n // this.map.setPaintProperty('raster-layer', 'raster-opacity', opacity)\n\n _this4.radius += (_this4.maxRadius - _this4.radius) / _this4.framesPerSecond;\n _this4.opacity -= 0.9 / _this4.framesPerSecond;\n\n if (_this4.opacity <= 0) {\n _this4.radius = _this4.initialRadius;\n _this4.opacity = _this4.initialOpacity;\n }\n\n if (_this4.activeIndex === 7) {\n for (var i = 0; i < _this4.addedPoints.length; i++) {\n if (_this4.map.getLayer(_this4.addedPoints[i]) !== undefined) {\n _this4.map.setPaintProperty(_this4.addedPoints[i], 'circle-radius', _this4.radius);\n _this4.map.setPaintProperty(_this4.addedPoints[i], 'circle-opacity', _this4.opacity);\n }\n }\n } else {\n var currentPointName = 'point-' + _this4.chapters[_this4.activeIndex].id;\n if (_this4.map.getLayer(currentPointName) !== undefined) {\n _this4.map.setPaintProperty(currentPointName, 'circle-radius', _this4.radius);\n _this4.map.setPaintProperty(currentPointName, 'circle-opacity', _this4.opacity);\n }\n }\n }, 500 / this.framesPerSecond);\n }\n }, {\n key: 'animateLine',\n value: function animateLine(timestamp) {\n var _this5 = this;\n\n setTimeout(function () {\n requestAnimationFrame(_this5.animateLine.bind(_this5));\n\n if (_this5.currentLine != null && _this5.currentLineId != null && _this5.animationProgress < _this5.currentLine.geometry.coordinates.length) {\n _this5.animationLine.geometry.coordinates.push(_this5.currentLine.geometry.coordinates[_this5.animationProgress]);\n _this5.map.getSource(_this5.currentLineId).setData(_this5.animationLine);\n _this5.animationProgress += 2;\n }\n }, 5 / this.framesPerSecond);\n }\n }, {\n key: 'toPaint',\n value: function toPaint(mapColor) {\n switch (mapColor) {\n case 'dark':\n return {\n 'fill-color': '#2f0101',\n 'fill-opacity': 0.9,\n 'fill-outline-color': '#2f0101'\n };\n case 'pattern':\n return {\n 'fill-pattern': 'tiny-checkers',\n 'fill-outline-color': '#2f0101'\n };\n default:\n return {\n 'fill-color': '#E1192A',\n 'fill-opacity': 0.9,\n 'fill-outline-color': '#2f0101'\n };\n }\n }\n }, {\n key: 'addLabel',\n value: function addLabel(label, id) {\n var labelId = 'label-' + id;\n if (this.labelNames.indexOf(labelId) === -1) {\n this.map.addLayer({\n id: labelId,\n type: 'symbol',\n source: {\n type: 'geojson',\n data: label.data\n },\n layout: {\n 'symbol-placement': 'point',\n 'text-font': ['Open Sans Regular'],\n 'text-field': label.data.properties.name,\n 'text-size': 18\n },\n paint: {\n 'text-color': '#111',\n 'text-halo-color': '#fff',\n 'text-halo-width': 1\n }\n }, this.firstSymbolId);\n this.labelNames.push(labelId);\n }\n }\n }, {\n key: 'addLine',\n value: function addLine(line, id) {\n // console.log(line)\n var lineId = 'line-' + id;\n if (this.lineNames.indexOf(lineId) === -1) {\n this.map.addLayer({\n id: lineId,\n type: 'line',\n source: {\n type: 'geojson',\n data: line.data\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n paint: {\n 'line-color': '#bb1414',\n 'line-width': 5,\n 'line-opacity': 0.6\n }\n }, this.firstSymbolId);\n\n this.lineNames.push(lineId);\n }\n }\n }, {\n key: 'addPolygon',\n value: function addPolygon(polygon, mapColor, id) {\n var polygonId = 'polygon-' + id;\n if (this.polygonNames.indexOf(polygonId) === -1) {\n this.map.addLayer({\n id: polygonId,\n type: 'fill',\n source: {\n type: 'geojson',\n data: polygon.data\n },\n paint: this.toPaint(mapColor),\n layout: {}\n }, this.firstSymbolId);\n this.polygonNames.push(polygonId);\n }\n }\n }, {\n key: 'addMultiPolygon',\n value: function addMultiPolygon(multiPolygon, mapColor, id) {\n var multiPolygonId = 'multiPolygon-' + id;\n if (this.multiPolygonNames.indexOf(multiPolygonId) === -1) {\n this.map.addLayer({\n id: multiPolygonId,\n type: 'fill',\n source: {\n type: 'geojson',\n data: multiPolygon.data\n },\n paint: this.toPaint(mapColor),\n layout: {}\n }, this.firstSymbolId);\n this.multiPolygonNames.push(multiPolygonId);\n }\n }\n }, {\n key: 'addPoint',\n value: function addPoint(point, id) {\n var pointId = 'point-' + id;\n if (this.addedPoints.indexOf(pointId) === -1) {\n this.map.addSource(pointId, {\n type: 'geojson',\n data: {\n type: 'Point',\n coordinates: [point.lon, point.lat]\n }\n });\n\n this.map.addLayer({\n id: pointId,\n source: pointId,\n type: 'circle',\n paint: {\n 'circle-radius': this.initialRadius,\n 'circle-radius-transition': { duration: 0 },\n 'circle-opacity-transition': { duration: 0 },\n 'circle-color': '#ff8800'\n }\n });\n\n this.map.addLayer({\n id: pointId + '_base',\n source: pointId,\n type: 'circle',\n paint: {\n 'circle-radius': 10,\n 'circle-color': '#ff8800',\n 'circle-opacity': 0.7\n }\n });\n\n this.addedPoints.push(pointId);\n }\n }\n }, {\n key: 'removeLine',\n value: function removeLine(id) {\n var lineId = 'line-' + id;\n if (this.map.getLayer(lineId) !== undefined) {\n this.map.removeLayer(lineId);\n this.map.removeSource(lineId);\n\n this.lineNames.splice(this.lineNames.indexOf(lineId), 1);\n }\n }\n }, {\n key: 'removePoint',\n value: function removePoint(id) {\n var pointId = 'point-' + id;\n if (this.map.getLayer(pointId) !== undefined) {\n this.map.removeLayer(pointId);\n this.map.removeLayer(pointId + '_base');\n this.map.removeSource(pointId);\n\n this.addedPoints.splice(this.addedPoints.indexOf(pointId), 1);\n }\n }\n }, {\n key: 'addGreatCircle',\n value: function addGreatCircle(startStop, mapColor, id) {\n // const start = turf.point([-122, 48])\n // const end = turf.point([-77, 39])\n // console.log('adding')\n this.animationLine.geometry.coordinates = [];\n this.animationProgress = 0;\n // console.log(startStop.data)\n this.currentLine = startStop.data.features[0]; // greatCircle(startStop.start, startStop.stop, { 'name': 'Oslo til New York' })\n\n var lineId = 'line-' + id;\n this.currentLineId = lineId;\n if (this.animatedLineNames.indexOf(lineId) === -1) {\n this.lineGeometries.push(this.currentLine);\n\n this.map.addLayer({\n id: lineId,\n type: 'line',\n source: {\n type: 'geojson',\n data: this.animationLine\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n paint: {\n 'line-color': '#F80',\n 'line-width': 5,\n 'line-opacity': 1,\n 'line-dasharray': [2, 2]\n }\n }, this.firstSymbolId);\n\n this.animatedLineNames.push(lineId);\n }\n }\n }, {\n key: 'removeGreatCircle',\n value: function removeGreatCircle(id) {\n var lineId = 'line-' + id;\n if (this.map.getLayer(lineId) !== undefined) {\n this.map.removeLayer(lineId);\n // this.map.removeLayer(lineId + '_base')\n this.map.removeSource(lineId);\n\n var index = this.animatedLineNames.indexOf(lineId);\n this.animatedLineNames.splice(index, 1);\n this.lineGeometries.splice(index, 1);\n }\n }\n }]);\n\n return Map;\n}();\n\nexports.default = Map;\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"map\":\"dh-karthistorie-sporing-dyreparken-map\"};\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports) {\n\nmodule.exports = mapboxgl;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.createChapters = createChapters;\nvar chapters = exports.chapters = [\n/*\n{\n gdocId: 'stavanger-oversikt',\n title: 'Onsdag 22. mai',\n text: '',\n fallbackPicture: '1.14306106',\n mapbox: {\n id: 'stavanger-oversikt',\n duration: 7000,\n center: [5.673073, 58.988715],\n // bounds: [[2, 40], [12, 65]],\n zoom: 10.5,\n pitch: 0,\n bearing: 0,\n mapColor: 'dark'\n }\n},\n{\n gdocId: 'stavanger-oversikt',\n title: 'Stavanger',\n text: 'Han stod opp rundt kl. 05.57.',\n fallbackPicture: '1.14306106',\n mapbox: {\n id: 'stavanger-oversikt',\n duration: 7000,\n center: [5.673073, 58.978715],\n // bounds: [[2, 40], [12, 65]],\n zoom: 10,\n pitch: 0,\n bearing: 0,\n mapColor: 'dark',\n point: {\n 'name': 'navn3',\n 'lat': 58.988715,\n 'lon': 5.673073\n }\n }\n}, */\n{\n gdocId: 'stavanger-oversikt',\n title: 'Lørdag 22. juni',\n text: 'Dyreparken i Kristiansand',\n fallbackPicture: '1.15006984',\n mapbox: {\n id: 'stavanger-oversikt-linje',\n duration: 5000,\n center: [8.146217, 58.183351],\n // bounds: [[2, 40], [12, 65]],\n zoom: 17,\n pitch: 0,\n bearing: 20,\n mapColor: 'dark',\n // greatCircle: { name: 'benimambasa', data: dag1 },\n point: {\n name: 'navn3',\n lat: 58.891065,\n lon: 5.740115\n },\n showFocus: false\n }\n}, {\n gdocId: 'en',\n title: 'kl. 10:25',\n text: 'Dette er det første stedet NRK finner spor etter Karl inne i Dyreparken – utenfor Soko mat.',\n fallbackPicture: '1.15006986',\n textAlign: 'left',\n mapbox: {\n id: 'durban',\n duration: 5000,\n center: [8.14618, 58.18309],\n bearing: 0,\n zoom: 19,\n pitch: 15,\n showFocus: true\n }\n}, {\n gdocId: 'to',\n title: 'kl. 11:57',\n text: 'Litt senere så familien på apekatter i «Jungelen». Karl tok dette bildet, som NRK har fått i ettertid.',\n image: 'https://static.nrk.no/dh/videos/beta/2020/dh-sporing/apekatt-dyreparken.jpg',\n alt: 'Bildet viser en apekatt på en gren.',\n fallbackPicture: '1.15006987',\n textAlign: 'left',\n mapbox: {\n id: 'tromso',\n duration: 5000,\n center: [8.14298, 58.18377],\n bearing: 0,\n zoom: 18,\n pitch: 0,\n mapColor: 'red',\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.933906,\n lon: 5.597758\n }\n }\n}, {\n gdocId: 'start',\n title: 'kl. 14:39',\n text: 'Familien gikk rundt i området «Båtbasaren» der det selges is og kioskvarer.',\n image: 'https://static.nrk.no/dh/videos/beta/2020/dh-sporing/kiosk-dyreparken.jpg',\n alt: 'Bildet viser en kiosk i dyreparken i Kristiansand.',\n fallbackPicture: '1.15006989',\n textAlign: 'left',\n mapbox: {\n id: 'hentiesbay',\n duration: 5000,\n center: [8.14577, 58.18628],\n // bounds: [[2, 40], [12, 65]],\n zoom: 18,\n bearing: 20,\n pitch: 0,\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.891065,\n lon: 5.740115\n },\n pointCluster: {}\n }\n}, {\n gdocId: 'tre',\n title: 'kl. 14:46',\n text: 'Rundt sju minutter senere gikk de videre mot Kjuttaviga. Her pleier Kaptein Sabeltann å ha store show, men familien så ikke noen forestilling denne dagen.',\n fallbackPicture: '1.15006991',\n textAlign: 'left',\n mapbox: {\n id: 'kristiansand',\n duration: 5000,\n center: [8.14538, 58.18596],\n bearing: 40,\n zoom: 18,\n pitch: 10,\n mapColor: 'red',\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.18596,\n lon: 8.14538\n }\n }\n}, {\n gdocId: 'tre',\n title: 'kl. 14:59',\n text: 'De stoppet utenfor Laumanns lager, en av dyreparkens største souvenirbutikker. Her var de i rundt et kvarter, før de gikk videre.',\n fallbackPicture: '1.15006992',\n textAlign: 'left',\n mapbox: {\n id: 'kristiansand',\n duration: 5000,\n center: [8.14356, 58.18552],\n bearing: 40,\n zoom: 18,\n pitch: 10,\n mapColor: 'red',\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.922023,\n lon: 5.60279\n }\n }\n},\n/*\n{\n gdocId: 'tre',\n title: '14:46',\n text: 'De gikk innover her, og fant seg etter hvert et sted å spise.',\n fallbackPicture: '1.14306131',\n textAlign: 'left',\n mapbox: {\n id: 'kristiansand',\n duration: 5000,\n center: [8.14282, 58.18627],\n bearing: 40,\n zoom: 18,\n pitch: 10,\n mapColor: 'red',\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.18627,\n lon: 8.14282\n }\n }\n}, */\n{\n gdocId: 'tre',\n title: 'kl. 15:59',\n text: 'En time senere var familien her, i «Nordisk villmark». De så på gauper, jerv, ulv, rev og elg.',\n image: 'https://static.nrk.no/dh/videos/beta/2020/dh-sporing/gaupebilde.jpg',\n alt: 'Bildet viser en gaupe som ligger i gress.',\n fallbackPicture: '1.15006995',\n textAlign: 'left',\n mapbox: {\n id: 'kristiansand',\n duration: 7000,\n center: [8.13519, 58.18612],\n bearing: 40,\n zoom: 18,\n pitch: 10,\n mapColor: 'red',\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.922023,\n lon: 5.60279\n }\n }\n}, {\n gdocId: 'start',\n title: 'kl. 18:15',\n text: 'Til slutt gikk familien til bilen. Kort tid senere satte de kurs mot hytta.',\n fallbackPicture: '1.15006996',\n textAlign: 'left',\n mapbox: {\n id: 'hentiesbay',\n duration: 7000,\n center: [8.14996, 58.18488],\n // bounds: [[2, 40], [12, 65]],\n zoom: 18,\n bearing: 20,\n pitch: 0,\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.891065,\n lon: 5.740115\n },\n pointCluster: {}\n }\n}];\n// import dag1 from '../../../static/1-intervjudag-hjemme-til-jobb.json'\n// import dag1_til_intervju from '../../../static/2-intervjudag-jobb-til-intervju.json'\n// import dag1_til_intervju_2 from '../../../static/3-intervjudag-jobb-til-intervju.json'\n\nfunction createChapters() {\n return chapters.map(function (chapter) {\n return _extends({}, chapter);\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});\nexports.toArray = toArray;\nfunction toArray(iterator) {\n return [].slice.call(iterator);\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});\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; }; }();\n\nvar _preact = __webpack_require__(0);\n\nvar _serumImagecropUtils = __webpack_require__(17);\n\nvar _image = __webpack_require__(59);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n/** @jsx h */\n\n\nvar Picture = function (_Component) {\n _inherits(Picture, _Component);\n\n function Picture() {\n _classCallCheck(this, Picture);\n\n return _possibleConstructorReturn(this, (Picture.__proto__ || Object.getPrototypeOf(Picture)).apply(this, arguments));\n }\n\n _createClass(Picture, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n alt = _props.alt,\n imageId = _props.imageId;\n\n var quality = 'medium';\n\n if (!imageId) {\n return (0, _preact.h)(\n 'div',\n null,\n 'Mangler ID'\n );\n }\n\n var parsedQuality = (0, _image.getQualityFromString)(quality);\n var defaultUrl = (0, _serumImagecropUtils.createImageUrl)({\n id: imageId,\n ratio: '16:9',\n width: 1600,\n parsedQuality: parsedQuality\n });\n var desktopSourceSet = (0, _image.createSrcSet)({\n imageId: imageId,\n ratio: '16:9',\n supportedWidths: _image.supportedWidths,\n quality: parsedQuality\n });\n var mobileSourceSet = (0, _image.createSrcSet)({\n imageId: imageId,\n ratio: '3:4',\n supportedWidths: _image.supportedWidths,\n quality: parsedQuality\n });\n\n return (0, _preact.h)(\n 'picture',\n null,\n (0, _preact.h)('source', { media: '(min-aspect-ratio: 3/4)', srcSet: desktopSourceSet }),\n (0, _preact.h)('img', { src: defaultUrl, srcSet: mobileSourceSet, alt: alt })\n );\n }\n }]);\n\n return Picture;\n}(_preact.Component);\n\nexports.default = Picture;\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.supportedWidths = undefined;\nexports.createSrcSet = createSrcSet;\nexports.getQualityFromString = getQualityFromString;\n\nvar _serumImagecropUtils = __webpack_require__(17);\n\nvar supportedWidths = exports.supportedWidths = [320, 450, 650, 768, 900, 1280, 1600, 1920, 2400];\n\nfunction createSrcSet(_ref) {\n var imageId = _ref.imageId,\n ratio = _ref.ratio,\n supportedWidths = _ref.supportedWidths,\n _ref$quality = _ref.quality,\n quality = _ref$quality === undefined ? 0.7 : _ref$quality;\n\n return supportedWidths.map(function (width) {\n var imageUrl = (0, _serumImagecropUtils.createImageUrl)({ id: imageId, width: width, ratio: ratio, quality: quality });\n return imageUrl + ' ' + width + 'w';\n }).join(', ');\n}\n\nfunction getQualityFromString(qualityString) {\n var qualities = [{\n string: 'very-high',\n quality: 0.8\n }, {\n string: 'high',\n quality: 0.6\n }, {\n string: 'medium',\n quality: 0.3\n }, {\n string: 'low',\n quality: 0.2\n }];\n\n var q = qualities.filter(function (quality) {\n return quality.string === qualityString;\n })[0];\n return q.quality;\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});\nexports.initialize = initialize;\nexports.trackAction = trackAction;\nvar isTrackingEnabled = false;\n// let label = null\n\nfunction initialize(trackingEnabled) {\n isTrackingEnabled = trackingEnabled;\n // label = name\n}\n\nfunction trackAction(action, label) {\n sendToGoogleAnalytics({\n category: 'dh-karthistorie-sporing-dyreparken',\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/* 61 */\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 (e, n) {\n \"object\" == ( false ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? n(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (n),\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__)) : n(e[\"dh-analytics-utils\"] = {});\n}(undefined, function (e) {\n \"use strict\";\n function n() {\n return window.ga;\n }var t = Object.assign || function (e) {\n for (var n = 1; n < arguments.length; n++) {\n var t = arguments[n];for (var o in t) {\n Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);\n }\n }return e;\n };e.createGoogleAnalyticsTracker = function (e) {\n var o = [],\n r = e.name,\n a = e.gaPropertyId,\n i = e.self,\n l = e.context;if (!(r && a && i && l)) throw new Error(\"Unable to create google analytics tracker. Please pass an object containing name, gaPropertyId, self and context to createGoogleAnalyticsTracker method\");var c,\n s,\n d,\n u,\n f,\n g,\n p,\n y,\n w = (c = i.id, s = l.id, d = i.title, u = i.publishedDate, f = c === s, g = document.referrer, { dimension1: c ? \"pp:\" + c : null, dimension2: d || null, dimension3: u ? String(u.getFullYear()) : null, dimension4: u ? String(u.getMonth() + 1) : null, dimension5: u ? String(u.getDate()) : null, dimension6: g.replace(/^(https?:\\/\\/)?www./, \"$1\"), dimension7: g.replace(/^(https?:\\/\\/)/, \"\").replace(/^www./, \"\"), dimension10: f ? null : s ? \"pp:\" + s : null }),\n v = (p = o, y = !1, function (e, o, r, a, i) {\n if (!r.category || !r.action) throw new Error(\"Error sending event to google analytics: Event is missing mandatory fields category and/or action\");n() ? (y || (function (e, n) {\n window.ga(\"create\", { trackingId: n, cookieDomain: \"auto\", name: e }), window.ga(e + \".set\", \"anonymizeIp\", !0);\n }(e, o), y = !0), window.ga(e + \".send\", \"event\", function (e, n) {\n var o = {};e.hasOwnProperty(\"category\") && (o.eventCategory = e.category), e.hasOwnProperty(\"action\") && (o.eventAction = e.action), e.hasOwnProperty(\"label\") && (o.eventLabel = e.label), e.hasOwnProperty(\"value\") && (o.eventValue = e.value), o.nonInteraction = e.nonInteraction || !1;var r = t({}, n, e.fieldsObject);return t({}, o, r);\n }(r, a))) : p.push(r);\n }),\n m = setInterval(function () {\n if (n()) for (clearInterval(m); o.length;) {\n var e = o.shift();v(r, a, e, w);\n }\n }, 1e3);return { sendEvent: function sendEvent(e) {\n v(r, a, e, w);\n } };\n }, Object.defineProperty(e, \"__esModule\", { value: !0 });\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.getContextId = getContextId;\nvar POLOPOLY_ID_REGEX = /[1-9]{1,2}\\.\\d+/g;\n\nfunction getContextId(url) {\n return extractPolopolyIdFromString(url);\n}\n\nfunction extractPolopolyIdFromString(str) {\n var matches = str.match(POLOPOLY_ID_REGEX);\n if (matches && matches.length) {\n return matches[0];\n }\n return null;\n}\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// v1-bundle-71c60c12d82226f2cdaf.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// 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 = \"https://dh-static.mesos.nrk.no/dh-karthistorie-sporing-dyreparken/static/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 18);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c1aa4644d2011a36dcc5","var VNode = function VNode() {};\n\nvar options = {};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p,\n\t list = items;\n\titems = [];\n\twhile (p = list.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\nfunction isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\treturn node.splitText !== undefined;\n\t}\n\tif (typeof vnode.nodeName === 'string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor === vnode.nodeName;\n}\n\nfunction isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\nfunction getNodeProps(vnode) {\n\tvar props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tvar defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps !== undefined) {\n\t\tfor (var i in defaultProps) {\n\t\t\tif (props[i] === undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {} else if (name === 'ref') {\n\t\tif (old) old(null);\n\t\tif (value) value(node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\ttry {\n\t\t\tnode[name] = value == null ? '' : value;\n\t\t} catch (e) {}\n\t\tif ((value == null || value === false) && name != 'spellcheck') node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nvar mounts = [];\n\nvar diffLevel = 0;\n\nvar isSvgMode = false;\n\nvar hydrating = false;\n\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.pop()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\tif (!diffLevel++) {\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t}\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t} else if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\tdiffAttributes(out, vnode.attributes, props);\n\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t} else if (min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\tunmountComponent(component);\n\t} else {\n\t\tif (node['__preactattr_'] != null && node['__preactattr_'].ref) node['__preactattr_'].ref(null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\nvar recyclerComponents = [];\n\nfunction createComponent(Ctor, props, context) {\n\tvar inst,\n\t i = recyclerComponents.length;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\twhile (i--) {\n\t\tif (recyclerComponents[i].constructor === Ctor) {\n\t\t\tinst.nextBase = recyclerComponents[i].nextBase;\n\t\t\trecyclerComponents.splice(i, 1);\n\t\t\treturn inst;\n\t\t}\n\t}\n\n\treturn inst;\n}\n\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\nfunction setComponentProps(component, props, renderMode, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tcomponent.__ref = props.ref;\n\tcomponent.__key = props.key;\n\tdelete props.ref;\n\tdelete props.key;\n\n\tif (typeof component.constructor.getDerivedStateFromProps === 'undefined') {\n\t\tif (!component.base || mountAll) {\n\t\t\tif (component.componentWillMount) component.componentWillMount();\n\t\t} else if (component.componentWillReceiveProps) {\n\t\t\tcomponent.componentWillReceiveProps(props, context);\n\t\t}\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (renderMode !== 0) {\n\t\tif (renderMode === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tif (component.__ref) component.__ref(component);\n}\n\nfunction renderComponent(component, renderMode, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t snapshot = previousContext,\n\t rendered,\n\t inst,\n\t cbase;\n\n\tif (component.constructor.getDerivedStateFromProps) {\n\t\tstate = extend(extend({}, state), component.constructor.getDerivedStateFromProps(props, state));\n\t\tcomponent.state = state;\n\t}\n\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (renderMode !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tif (isUpdate && component.getSnapshotBeforeUpdate) {\n\t\t\tsnapshot = component.getSnapshotBeforeUpdate(previousProps, previousState);\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || renderMode === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.unshift(component);\n\t} else if (!skip) {\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, snapshot);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\twhile (component._renderCallbacks.length) {\n\t\tcomponent._renderCallbacks.pop().call(component);\n\t}if (!diffLevel && !isChild) flushMounts();\n}\n\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] && base['__preactattr_'].ref) base['__preactattr_'].ref(null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\trecyclerComponents.push(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tif (component.__ref) component.__ref(null);\n}\n\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\tthis.context = context;\n\n\tthis.props = props;\n\n\tthis.state = this.state || {};\n\n\tthis._renderCallbacks = [];\n}\n\nextend(Component.prototype, {\n\tsetState: function setState(state, callback) {\n\t\tif (!this.prevState) this.prevState = this.state;\n\t\tthis.state = extend(extend({}, this.state), typeof state === 'function' ? state(this.state, this.props) : state);\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t},\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\trender: function render() {}\n});\n\nfunction render(vnode, parent, merge) {\n return diff(merge, vnode, {}, false, parent, false);\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexport default preact;\nexport { h, h as createElement, cloneElement, Component, render, rerender, options };\n//# sourceMappingURL=preact.mjs.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/preact/dist/preact.mjs\n// module id = 0\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// ./node_modules/has/src/index.js","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/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// ./node_modules/is-callable/index.js","'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// ./node_modules/define-properties/index.js","'use strict';\n\nmodule.exports = require('./es2015');\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/es-abstract/es6.js","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/es-to-primitive/helpers/isPrimitive.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","'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// ./node_modules/es-abstract/GetIntrinsic.js","module.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/es-abstract/helpers/isNaN.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// ./node_modules/es-abstract/helpers/isFinite.js","module.exports = function sign(number) {\n\treturn number >= 0 ? 1 : -1;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/es-abstract/helpers/sign.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// ./node_modules/es-abstract/helpers/mod.js","'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// ./node_modules/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// ./node_modules/array-includes/polyfill.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"root\":\"dh-karthistorie-sporing-dyreparken-root\",\"app\":\"dh-karthistorie-sporing-dyreparken-app\",\"root--js\":\"dh-karthistorie-sporing-dyreparken-root--js\",\"app--visible\":\"dh-karthistorie-sporing-dyreparken-app--visible\",\"root--noJs\":\"dh-karthistorie-sporing-dyreparken-root--noJs\",\"app__mediaContainer\":\"dh-karthistorie-sporing-dyreparken-app__mediaContainer\",\"app__mediaFallback\":\"dh-karthistorie-sporing-dyreparken-app__mediaFallback\",\"app__itemContainer\":\"dh-karthistorie-sporing-dyreparken-app__itemContainer\",\"textSection\":\"dh-karthistorie-sporing-dyreparken-textSection\",\"textSection__card\":\"dh-karthistorie-sporing-dyreparken-textSection__card\",\"textSection__card--left\":\"dh-karthistorie-sporing-dyreparken-textSection__card--left\",\"textSection__card--right\":\"dh-karthistorie-sporing-dyreparken-textSection__card--right\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/v1/components/App.css\n// module id = 15\n// module chunks = 0","// @flow @jsx h\nimport { h, Component } from 'preact'\n\nclass Provider extends Component<{ children: Array }, {}> {\n getChildContext () {\n const { children, ...props } = this.props\n return { '__CTX__': props }\n }\n render () {\n return this.props.children[0]\n }\n}\n\nProvider.displayName = 'Provider'\n\ntype MapContextToProps = ({}) => Object\n\nfunction connect (mapContextToProps?: MapContextToProps) {\n return (wrappedComponent: any) => {\n class Connected extends Component<{}, {}> {\n mapContextToProps = (ctx: {}): Object => {\n return mapContextToProps ? mapContextToProps(ctx) : ctx\n }\n render () {\n return h(wrappedComponent, {\n ...this.mapContextToProps(this.context['__CTX__']),\n ...this.props\n })\n }\n }\n Connected.displayName = `connect(${wrappedComponent.displayName ||\n wrappedComponent.name ||\n 'Component'})`\n return Connected\n }\n}\n\nexport { Provider, connect }\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/provider.js","(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// ./node_modules/@nrk/serum-imagecrop-utils/lib/index.js","/* eslint-disable */\n\nrequire('array-includes').shim()\n\nNumber.isInteger = Number.isInteger || function (value) {\n return typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value\n}\n\nimport 'intersection-observer'\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/client.polyfill.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 observing 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 // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\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 * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\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 var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\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 visibility 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 (this.USE_MUTATION_OBSERVER && '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 execution, 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 element (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// ./node_modules/intersection-observer/intersection-observer.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// ./node_modules/array-includes/index.js","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\nvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\nvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar excludedKeys = {\n\t$applicationCache: true,\n\t$console: true,\n\t$external: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$innerHeight: true,\n\t$innerWidth: true,\n\t$outerHeight: true,\n\t$outerWidth: true,\n\t$pageXOffset: true,\n\t$pageYOffset: true,\n\t$parent: true,\n\t$scrollLeft: true,\n\t$scrollTop: true,\n\t$scrollX: true,\n\t$scrollY: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\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\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\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} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\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// ./node_modules/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// ./node_modules/object-keys/isArguments.js","'use strict';\n\nvar has = require('has');\nvar toPrimitive = require('es-to-primitive/es6');\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 $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 $floor = Math.floor;\nvar $abs = Math.abs;\n\nvar $ObjectCreate = Object.create;\nvar $gOPD = $Object.getOwnPropertyDescriptor;\n\nvar $isExtensible = $Object.isExtensible;\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\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\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\tObject.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\ndelete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible\n\nmodule.exports = ES6;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/es-abstract/es2015.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// ./node_modules/function-bind/implementation.js","'use strict';\n\nmodule.exports = require('./es2015');\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/es-to-primitive/es6.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// ./node_modules/es-to-primitive/es2015.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// ./node_modules/is-date-object/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// ./node_modules/is-symbol/index.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// ./node_modules/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// ./node_modules/has-symbols/shams.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// ./node_modules/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// ./node_modules/es-abstract/helpers/isPrimitive.js","'use strict';\n\nvar GetIntrinsic = require('./GetIntrinsic');\n\nvar $Object = GetIntrinsic('%Object%');\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $String = GetIntrinsic('%String%');\n\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\t\t// jscs:disable\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\t\t// jscs:enable\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\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\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\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\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\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\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\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new $TypeError('Desc must be a Property Descriptor');\n\t\t}\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// ./node_modules/es-abstract/es5.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// ./node_modules/es-to-primitive/es5.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// ./node_modules/is-regex/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// ./node_modules/array-includes/shim.js","/* global __HOT__ */\n/* eslint-disable import/no-unresolved */\n\n// @jsx h\n\nimport { h, render } from 'preact'\nimport { testPositionSticky } from '@nrk/feature-tests'\nimport { toArray, createUniqueId } from '@nrk/dh-utils'\nimport { createErrorReporter } from '../lib/errorReporting'\nimport { App } from './components/App'\nimport { root as rootElementClassName } from './components/App.css'\nimport { createGoogleAnalyticsTracker } from '@nrk/dh-analytics-utils'\nimport { getContextId } from '../lib/getContextId'\nimport { Provider as CustomProvider } from '../lib/provider'\n\nwindow[rootElementClassName] = window[rootElementClassName] || {}\n\nfunction init (mapboxgl) {\n findElements(rootElementClassName).forEach(el => {\n el.id = createUniqueId()\n window[rootElementClassName][el.id] = true\n\n // Extract values sent from server\n const name = el.getAttribute('data-name')\n const preloadedState = JSON.parse(el.getAttribute('data-preloaded-state'))\n const errorTrackingEnabled = el.getAttribute('data-error-tracking-enabled') === 'true'\n\n // setup error reporting\n const simpleErrorReport = createErrorReporter(name, errorTrackingEnabled)\n simpleErrorReport.listenAndCatch()\n\n // Extract metadata required to create google analytics tracker\n const gaPropertyId = el.getAttribute('data-ga-property-id')\n const metadata = JSON.parse(el.getAttribute('data-metadata'))\n const { title, selfId, published } = metadata\n\n // create google analytics tracker\n const googleAnalyticsTracker = createGoogleAnalyticsTracker({\n name: 'dh',\n gaPropertyId,\n self: {\n id: selfId,\n title,\n publishedDate: published ? new Date(published) : null\n },\n context: {\n id: getContextId(document.location.href)\n }\n })\n\n const sendError = (message) => {\n simpleErrorReport.sendErrorReport({ message })\n }\n\n const sendGaEvent = (eventObj) => {\n googleAnalyticsTracker.sendEvent({\n category: `dh-modul-${name}`,\n ...eventObj\n })\n }\n\n // Test if the browser is modern enough\n testPositionSticky(supported => {\n if (!supported) {\n simpleErrorReport.sendErrorReport({ message: 'Warning: This browser does not support `position: sticky`' })\n\n return\n }\n if (!mapboxgl.supported()) {\n simpleErrorReport.sendErrorReport({ message: 'Warning: This browser does not support mapbox-gl' })\n\n return\n }\n\n // ... and render with the exact same props\n el.className = el.className.replace('noJs', 'js')\n // render(, el, el.firstChild)\n\n render(\n \n \n , el, el.firstChild\n )\n })\n\n // Enable webpack hot-reloading\n if (__HOT__) {\n // Reload and re-render preact application\n module.hot.accept('./client', () => {\n const { App } = require('./components/App')\n const { Provider: CustomProvider } = require('../lib/provider')\n render(\n \n \n , el, el.firstChild)\n })\n }\n })\n}\n\nif (__HOT__) {\n require('preact/debug')\n}\n\nfunction findElements (className) {\n return toArray(document.getElementsByClassName(className)).filter(el => !isInitialized(el, className))\n}\n\nfunction isInitialized (el, className) {\n return el.id && window[className][el.id]\n}\n\nwindow.initSporingDyreparken = init\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/client.js","var hasSupportCache = void 0;\n\nfunction testEventPassiveListener(callback) {\n if (hasSupportCache !== undefined) {\n callback(hasSupportCache);\n return;\n }\n\n hasSupportCache = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n hasSupportCache = true;\n }\n });\n\n window.addEventListener('test', null, opts);\n } catch (e) {}\n\n callback(hasSupportCache);\n}\n\nfunction testJs(callback) {\n callback(true);\n}\n\nfunction testJs$1(callback) {\n var el = document.createElement('img');\n\n callback(el.style.objectFit !== undefined);\n}\n\nfunction testPositionSticky(callback) {\n var el = document.createElement('a');\n\n el.style.cssText = 'position: sticky; position: -webkit-sticky; position: -ms-sticky;';\n\n callback(el.style.position.indexOf('sticky') !== -1);\n}\n\nvar videoAutoPlayCache = null;\n\nfunction testVideoAutoPlay(callback) {\n if (typeof window === 'undefined') {\n return callback(false);\n }\n\n if (videoAutoPlayCache !== null) {\n return callback(videoAutoPlayCache);\n }\n\n var videoElm = document.createElement('video');\n\n var isPlaying = false;\n\n videoElm.setAttribute('autoplay', '');\n videoElm.setAttribute('muted', '');\n videoElm.setAttribute('webkit-playsinline', 'webkit-playsinline');\n videoElm.setAttribute('playsinline', 'playsinline');\n\n try {\n if (videoElm.canPlayType('video/ogg')) {\n videoElm.src = 'data:video/ogg;base64,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';\n } else if (videoElm.canPlayType('video/mp4')) {\n videoElm.src = 'data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAAs1tZGF0AAACrgYF//+q3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0OCByMjYwMSBhMGNkN2QzIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEwIHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAD2WIhAA3//728P4FNjuZQQAAAu5tb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAAZAABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACGHRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAgAAAAIAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAGQAAAAAAAEAAAAAAZBtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAACgAAAAEAFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAE7bWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAA+3N0YmwAAACXc3RzZAAAAAAAAAABAAAAh2F2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAgACAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAxYXZjQwFkAAr/4QAYZ2QACqzZX4iIhAAAAwAEAAADAFA8SJZYAQAGaOvjyyLAAAAAGHN0dHMAAAAAAAAAAQAAAAEAAAQAAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAABRzdHN6AAAAAAAAAsUAAAABAAAAFHN0Y28AAAAAAAAAAQAAADAAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAAC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU2LjQwLjEwMQ==';\n } else {\n return callback(false);\n }\n } catch (_) {\n return callback(false);\n }\n\n videoElm.load();\n var playPromise = videoElm.play();\n\n if (playPromise) {\n playPromise.catch(function (e) {\n // Do nothing\n });\n }\n\n videoElm.oncanplay = function () {\n videoAutoPlayCache = isPlaying;\n callback(videoAutoPlayCache);\n };\n\n videoElm.onplay = function () {\n isPlaying = true;\n };\n}\n\nfunction testReducedMotion(callback) {\n if (typeof window === 'undefined') {\n if (callback) {\n callback(false);\n }\n return false;\n }\n\n var test = !!window.matchMedia && window.matchMedia('(prefers-reduced-motion)').matches;\n if (callback) {\n callback(test);\n }\n return test;\n}\n\nvar index = {\n testEventPassiveListener: testEventPassiveListener,\n testJs: testJs,\n testObjectFit: testJs$1,\n testPositionSticky: testPositionSticky,\n testVideoAutoPlay: testVideoAutoPlay,\n testReducedMotion: testReducedMotion\n};\n\nexport default index;\nexport { testEventPassiveListener, testJs, testJs$1 as testObjectFit, testPositionSticky, testVideoAutoPlay, testReducedMotion };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/feature-tests/dist/feature-tests.module.js","import { toArray } from './array';\nimport bem from './bem';\nimport { getScrollLeft, getScrollTop } from './scroll';\nimport { createUniqueId } from './string';\n\nexport { bem, createUniqueId, getScrollLeft, getScrollTop, toArray };\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/index.js","export function toArray(nodeList) {\n return [].slice.call(nodeList);\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/array.js","function _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 toStrings(object) {\n return Object.keys(object).filter(function (key) {\n return object[key];\n });\n}\n\nexport default (function (blockName) {\n for (var _len = arguments.length, modifiers = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n modifiers[_key - 1] = arguments[_key];\n }\n\n var strings = modifiers.filter(function (modifier) {\n return typeof modifier === 'string';\n });\n var objects = modifiers.filter(function (modifier) {\n return typeof modifier === 'object';\n });\n\n var objectString = objects.map(function (object) {\n return toStrings(object);\n }).reduce(function (a, b) {\n return [].concat(_toConsumableArray(a), _toConsumableArray(b));\n }, []);\n\n return [blockName].concat(strings.map(function (modifier) {\n return blockName + '--' + modifier;\n })).concat(objectString.map(function (modifier) {\n return blockName + '--' + modifier;\n })).join(' ');\n});\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/bem.js","export function getScrollLeft() {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n return window.pageXOffset || document.documentElement && document.documentElement.scrollLeft || 0;\n}\n\nexport function getScrollTop() {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n return window.pageYOffset || document.documentElement && document.documentElement.scrollTop || 0;\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/scroll.js","export function createUniqueId() {\n var len = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return '' + prefix + Math.random().toString(36).substr(2, len - prefix.length);\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/string.js","// @flow\nimport { SimpleErrorReport } from '@nrk/dh-simple-error-report'\n\nexport function createErrorReporter (name: string, isErrorReportingEnabled: boolean): SimpleErrorReport {\n return new SimpleErrorReport({\n name: name,\n url: 'https://dh-catch.mesos.nrk.no',\n dryRun: !isErrorReportingEnabled\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/errorReporting.js","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],n):n(e[\"simple-error-report\"]={})}(this,function(e){\"use strict\";var n=function(){function e(e,n){for(var r=0;r0}}]),e}(),t=Object.assign||function(e){for(var n=1;n0&&(a.line=o),s>0&&(a.column=s),n.error&&\"function\"==typeof e.parseStack?e.parseStack(n.error).then(function(n){e.sendErrorReport(t({},a,{stackTrace:n}))}):e.sendErrorReport(a)}),window.addEventListener(\"unhandledrejection\",function(n){e.sendErrorReport({message:\"Unhandled Promise Rejection: \"+n.reason})}))}},{key:\"sendErrorReport\",value:function(e){var n,r,t;this.dryRun?\"undefined\"!=typeof console&&console.log(\"Dry run: \"+JSON.stringify(e)):this.errorRegister.isInRegisterWithinRange(e.message,500)||(this.errorRegister.addErrorToRegister(e.message),n=this.url+\"/\"+this.name,r=e,(t=new XMLHttpRequest).open(\"POST\",n),t.setRequestHeader(\"Content-Type\",\"application/json\"),t.send(JSON.stringify(r)))}}]),e}();e.SimpleErrorReport=s,Object.defineProperty(e,\"__esModule\",{value:!0})});\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-simple-error-report/dist/simple-error-report.min.js","// @flow\n\n/** @jsx h */\n\n/* eslint-disable compat/compat */\n\nimport { h, Component } from 'preact'\nimport styles from './App.css'\nimport { connect } from '../../lib/provider'\nimport { bem } from '../../lib/bem'\nimport MaxViewportRect from './MaxViewportRect'\nimport { Background } from './Background'\nimport { createChapters } from './chapters'\nimport { toArray } from '../../lib/array'\nimport PolopolyPicture from './PolopolyPicture'\n// import PolopolyPicture from './PolopolyPicture'\nimport { trackAction } from '../../lib/googleAnalytic'\n// import type { Chapter } from './chapters'\n\ntype Props = {\n sendGaEvent: Object => void\n}\n\ntype State = {\n visible: boolean,\n index: number,\n trackedInitial: boolean,\n viewportHeight: number | null\n}\n\nconst trackingName = 'dh-karthistorie-sporing-dyreparken'\n\nclass _App extends Component {\n /* Example of how to send a click event to google analytics\n handleClick = () => {\n this.props.sendGaEvent({\n action: 'click'\n })\n }\n */\n\n elm: HTMLDivElement\n background: any\n\n constructor () {\n super()\n this.state = {\n visible: false,\n index: -1,\n trackedInitial: false,\n viewportHeight: null\n }\n const chapters = createChapters()\n this.sectionElements = toArray(new Array(chapters.length))\n this.triggerElements = toArray(new Array(chapters.length))\n }\n\n componentDidMount () {\n this.insersectionObserver = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.target === this.elm) {\n this.setVisiblity(entry.isIntersecting)\n } else if (entry.isIntersecting) {\n this.setIndex(this.triggerElements.indexOf(entry.target))\n }\n })\n },\n {\n rootMargin: '-10px -10px -10px -10px',\n threshold: [0]\n }\n )\n\n this.triggerElements.forEach(triggerElm =>\n this.insersectionObserver.observe(triggerElm)\n )\n this.insersectionObserver.observe(this.elm)\n }\n\n componentWillUnmount () {\n this.triggerElements.forEach(triggerElm =>\n this.insersectionObserver.unobserve(triggerElm)\n )\n this.insersectionObserver.unobserve(this.elm)\n this.insersectionObserver.disconnect()\n }\n\n handleViewportChange = (viewport: any) => {\n if (this.state.viewportHeight !== viewport.height) {\n this.setState({ viewportHeight: viewport.height })\n }\n }\n\n setIndex (index: number) {\n if (this.state.index !== index) {\n this.setState({ index })\n }\n }\n\n setVisiblity (visible: boolean) {\n if (!this.state.trackedInitial && visible) {\n trackAction(visible ? 'SCROLL_IN' : 'SCROLL_OUT', trackingName)\n trackAction(`LOAD_SUCCESS/index:${this.state.index}`, trackingName)\n this.setState({ visible, trackedInitial: true })\n } else if (this.state.visible !== visible) {\n trackAction(visible ? 'SCROLL_IN' : 'SCROLL_OUT', trackingName)\n this.setState({ visible })\n }\n }\n\n render () {\n const { visible, viewportHeight } = this.state\n const chapters = createChapters()\n\n const mediaContainerInlineStyle = {}\n if (viewportHeight !== null) {\n mediaContainerInlineStyle.height = `${viewportHeight}px`\n }\n\n const textSectionInlineStyle = {}\n if (viewportHeight !== null) {\n textSectionInlineStyle.paddingBottom = `calc(${viewportHeight}px - 20px)`\n }\n return (\n (this.elm = elm)}\n >\n \n \n {\n this.background = elm\n }}\n />\n {chapters.map((chapter: Chapter, idx) => {\n return (\n
\n \n
\n )\n })}\n \n\n
\n {chapters.map((section, idx) => {\n return (\n {\n this.sectionElements[idx] = elm\n }}\n >\n {\n this.triggerElements[idx] = elm\n }}\n >\n {section.title &&

{section.title}

}\n {section.text && (\n

\n )}\n {section.image && (\n \n )}\n {section.link && section.link.url && (\n

\n {section.link.text}\n  \n

\n )}\n
\n \n )\n })}\n \n \n )\n }\n}\n\n/*\nconst mapContextToProps = context => ({\n ...context,\n sendCustomGaEvent: () => context.sendEvent({ action: 'my custom event action' })\n})\n*/\n\nconst connector = connect()\n// const connector = connect(mapContextToProps)\nexport const App = connector(_App)\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/components/App.js","// @flow\n\nexport function bem (blockName: string, ...modifiers: any[]) {\n return [blockName].concat(modifiers.filter(Boolean).map(modifier => `${blockName}--${modifier}`)).join(' ')\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/bem.js","// @flow\n\n/** @jsx h */\n\nimport MaxViewportObservable from '@nrk/max-viewport-observable'\nimport { Component, h } from 'preact'\n\ntype Props = {\n height?: string,\n onViewportChange: (viewport: any) => void\n}\n\nexport default class MaxViewportRect extends Component {\n dispose: () => void\n elm: HTMLDivElement\n viewport$: any\n\n componentDidMount () {\n this.viewport$ = MaxViewportObservable.create({\n root: this.elm\n })\n\n this.dispose = this.viewport$.subscribe({\n next: (viewport) => {\n this.props.onViewportChange(viewport)\n }\n })\n }\n\n componentWillUnmount () {\n this.dispose()\n }\n\n render () {\n const height = this.props.height || 100\n const inlineStyle = { height: `${height}vh`, position: 'absolute' }\n return
(this.elm = elm)} style={inlineStyle} />\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/components/MaxViewportRect.js","function create() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var root = opts.root;\n\n\n var getRect = function getRect() {\n if (root instanceof Element) {\n var rect = root.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height\n };\n }\n\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n };\n\n var subscribe = function subscribe(observer) {\n var isDynamicViewport = false;\n var isTouching = false;\n var rect = { width: -1, height: -1 };\n\n var listeners = {\n orientationchange: function orientationchange() {\n rect = { width: -1, height: -1 };\n },\n resize: function resize() {\n var prevRect = rect;\n\n rect = getRect();\n\n if (isDynamicViewport && rect.height < prevRect.height) {\n rect.height = prevRect.height;\n }\n\n observer.next(rect);\n },\n scroll: function scroll() {\n if (isTouching) {\n isDynamicViewport = true;\n window.removeEventListener('scroll', listeners.scroll);\n }\n },\n touchstart: function touchstart() {\n isTouching = true;\n },\n touchend: function touchend() {\n isTouching = false;\n }\n };\n\n window.addEventListener('orientationchange', listeners.orientationchange);\n window.addEventListener('resize', listeners.resize);\n window.addEventListener('scroll', listeners.scroll);\n window.addEventListener('touchstart', listeners.touchstart);\n window.addEventListener('touchend', listeners.touchend);\n\n // Trigger initial \"resize\"\n listeners.resize();\n\n return {\n unsubscribe: function unsubscribe() {\n window.removeEventListener('orientationchange', listeners.orientationchange);\n window.removeEventListener('resize', listeners.resize);\n window.removeEventListener('scroll', listeners.scroll);\n window.removeEventListener('touchstart', listeners.touchstart);\n window.removeEventListener('touchend', listeners.touchend);\n }\n };\n };\n\n return { subscribe: subscribe };\n}\n\nvar index = { create: create };\n\nexport { create };\nexport default index;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/max-viewport-observable/dist/max-viewport-observable.module.js","// @flow\n/** @jsx h */\nimport { Component, h } from 'preact'\n\nimport styles from './Background.css'\n\ntype BackgroundProps = {\n chapters: any,\n chapterIndex: number\n}\n\nexport class Background extends Component {\n mapElement: HTMLDivElement\n map: any\n\n componentDidMount () {\n const Map = require('./Map').default\n const mapboxChapters = this.props.chapters.map(chapter => chapter.mapbox)\n this.map = new Map(this.mapElement, mapboxChapters)\n }\n\n componentWillReceiveProps (nextProps: BackgroundProps) { // eslint-disable-line\n if (Number.isInteger(nextProps.chapterIndex) && nextProps.chapterIndex >= 0) {\n this.map.setActiveChapter(nextProps.chapterIndex)\n }\n }\n\n render () {\n return (\n
\n
(this.mapElement = elm)} className={styles.map} />\n
\n )\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/components/Background.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"background\":\"dh-karthistorie-sporing-dyreparken-background\",\"root--noJs\":\"dh-karthistorie-sporing-dyreparken-root--noJs\",\"root--js\":\"dh-karthistorie-sporing-dyreparken-root--js\",\"app--visible\":\"dh-karthistorie-sporing-dyreparken-app--visible\",\"media--active\":\"dh-karthistorie-sporing-dyreparken-media--active\",\"map\":\"dh-karthistorie-sporing-dyreparken-map\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/v1/components/Background.css\n// module id = 52\n// module chunks = 0","// @flow\n\n/* eslint-disable import/no-unresolved */\nimport './Map.css'\nimport mapboxgl from 'mapboxgl'\n// import greatCircle from '@turf/great-circle'\n// import '../../../static/back-pattern.png'\n\nexport default class Map {\n constructor (mapEl, chapters: Array) {\n this.mapReady = false\n this.addedPoints = []\n this.startTime = 0\n this.progress = 0\n this.framesPerSecond = 15\n this.initialOpacity = 1\n this.opacity = this.initialOpacity\n this.initialRadius = 25\n this.radius = this.initialRadius\n this.maxRadius = 55\n this.firstSymbolId = null\n this.activeIndex = 0\n this.chapters = chapters\n this.lineNames = []\n this.animatedLineNames = []\n this.polygonNames = []\n this.multiPolygonNames = []\n this.labelNames = []\n this.mapEl = mapEl\n this.animationLine = {\n type: 'Feature',\n geometry: {\n type: 'LineString',\n coordinates: []\n }\n }\n this.fokusKlamme = {\n type: 'Feature',\n geometry: {\n type: 'Point',\n coordinates: [5.673099, 58.988715]\n }\n }\n this.animationProgress = 0\n this.currentLine = null\n this.currentLineId = null\n this.lineGeometries = []\n // this.adaptChapterConfigBounds(this.chapters[0])\n\n mapboxgl.accessToken =\n 'pk.eyJ1IjoibnJrIiwiYSI6Ii14T3NfSzgifQ.0N5h3SI2b6bemxP_1YESIA'\n this.map = new mapboxgl.Map({\n ...this.chapters[this.activeIndex],\n container: mapEl,\n // style: 'mapbox://styles/nrk/cjda0mdyv8mwk2spdhnfk8upp',\n // style: 'mapbox://styles/nrk/cj07whxya001b2rr3t3qn875e',\n // style: 'mapbox://styles/nrk/cjd5nkoti4kph2spd13z34tmd', // BLå\n // style: 'mapbox://styles/nrk/cizjr6t96006v2smn4qp3l430', // NRK blue with satellite shading\n // style: 'mapbox://styles/nrk/cj07whxya001b2rr3t3qn875e', // Flybilder\n style: 'mapbox://styles/nrk/ck7n99dx70vv01ipek17fb8nz', // Sporing - flybilder\n interactive: false,\n renderWorldCopies: false,\n attributionControl: false\n })\n\n this.map.on('load', () => {\n this.map.setMaxZoom(30)\n /*\n this.map.addLayer({\n id: 'raster-layer',\n type: 'raster',\n source: {\n type: 'raster',\n tiles: ['https://api.mapbox.com/v4/nrk.6gen9l2a/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibnJrIiwiYSI6Ii14T3NfSzgifQ.0N5h3SI2b6bemxP_1YESIA']\n },\n minzoom: 12,\n maxzoom: 22\n }) */\n\n // const layers = this.map.getStyle().layers\n // Find the index of the first symbol layer in the map style\n this.firstSymbolId = 0 // layers.find(layer => layer.type === 'symbol').id\n // this.map.addControl(new mapboxgl.ScaleControl())\n // this.animateMarker(0)\n // this.animateLine(0)\n this.mapReady = true\n this.setActiveChapter(this.activeIndex, 0)\n // this.animationLoop(0)\n this.map.loadImage(\n 'https://static.nrk.no/dh/videos/beta/2020/dh-sporing/fokusklamme-02.png',\n (error, image) => {\n if (error) throw error\n this.map.addImage('fokusklamme', image)\n this.map.addSource('fokusklamme', {\n type: 'geojson',\n data: this.fokusKlamme\n })\n this.map.addLayer({\n id: 'points',\n type: 'symbol',\n source: 'fokusklamme',\n layout: {\n 'icon-image': 'fokusklamme',\n 'icon-size': 0.45\n }\n })\n }\n )\n })\n }\n\n adaptChapterConfigBounds (chapterConfig) {\n const camera = this.map.cameraForBounds(chapterConfig.bounds)\n chapterConfig.zoom = camera.zoom\n chapterConfig.center = [camera.center.lng, camera.center.lat]\n }\n\n addChapter (chapter) {\n if (chapter.point) {\n for (let i = 0; i < this.addedPoints.length; i++) {\n if (this.map.getLayer(this.addedPoints[i]) !== undefined) {\n this.map.setPaintProperty(this.addedPoints[i], 'circle-opacity', 0)\n }\n }\n this.addPoint(chapter.point, chapter.id)\n }\n\n if (chapter.line) {\n this.addLine(chapter.line, chapter.id)\n }\n\n if (chapter.greatCircle) {\n this.addGreatCircle(chapter.greatCircle, chapter.mapColor, chapter.id)\n } else {\n this.currentLineId = null\n }\n\n if (chapter.polygon) {\n this.addPolygon(chapter.polygon, chapter.mapColor, chapter.id)\n }\n\n if (chapter.multiPolygon) {\n this.addMultiPolygon(chapter.multiPolygon, chapter.mapColor, chapter.id)\n }\n\n if (chapter.label) {\n this.addLabel(chapter.label, chapter.id)\n }\n\n if (chapter.labels) {\n chapter.labels.forEach((label, idx) => {\n this.addLabel(label, chapter.id + '_' + idx)\n })\n }\n }\n\n removeChapter (chapter) {\n if (chapter.point) {\n this.removePoint(chapter.id)\n }\n\n if (chapter.line) {\n this.removeLine(chapter.id)\n }\n\n if (chapter.greatCircle) {\n this.removeGreatCircle(chapter.id)\n }\n }\n\n fadeOutChapter (chapter) {\n if (chapter.polygon) {\n const polygonId = `polygon-${chapter.id}`\n if (this.map.getLayer(polygonId) !== undefined) {\n this.map.setPaintProperty(polygonId, 'fill-opacity', 0.5)\n }\n }\n if (chapter.multiPolygon) {\n const multiPolygonId = `multiPolygon-${chapter.id}`\n if (this.map.getLayer(multiPolygonId) !== undefined) {\n this.map.setPaintProperty(multiPolygonId, 'fill-opacity', 0.5)\n }\n }\n }\n\n fadeInChapter (chapter) {\n if (chapter.polygon) {\n const polygonId = `polygon-${chapter.id}`\n if (this.map.getLayer(polygonId) !== undefined) {\n this.map.setPaintProperty(polygonId, 'fill-opacity', 1)\n }\n }\n if (chapter.multiPolygon) {\n const multiPolygonId = `multiPolygon-${chapter.id}`\n if (this.map.getLayer(multiPolygonId) !== undefined) {\n this.map.setPaintProperty(multiPolygonId, 'fill-opacity', 1)\n }\n }\n }\n\n setActiveChapter (chapterIndex: number, duration) {\n this.activeIndex = chapterIndex\n if (!this.mapReady) {\n return\n }\n\n this.chapters.forEach((chapter, idx) => {\n if (idx < chapterIndex) {\n this.addChapter(chapter)\n this.fadeOutChapter(chapter)\n } else if (idx === chapterIndex) {\n this.addChapter(chapter)\n this.fadeInChapter(chapter)\n } else {\n this.removeChapter(chapter)\n this.fadeOutChapter(chapter)\n }\n })\n\n const activeChapter = this.chapters[chapterIndex]\n if (activeChapter.bounds) {\n this.adaptChapterConfigBounds(activeChapter)\n }\n\n if (duration === 0) {\n this.map.jumpTo(activeChapter)\n } else {\n const data =\n (activeChapter.polygon || {}).data ||\n (activeChapter.multiPolygon || {}).data\n if (data && data.bbox) {\n this.map.fitBounds(data.bbox, {\n padding: 20,\n animate: true,\n duration: 2000\n })\n } else {\n this.map.flyTo(activeChapter)\n }\n }\n\n for (var i = 0; i < this.animatedLineNames.length; i++) {\n if (this.animatedLineNames[i] !== this.currentLineId) {\n this.map\n .getSource(this.animatedLineNames[i])\n .setData(this.lineGeometries[i])\n }\n }\n\n if (activeChapter.showFocus) {\n // console.log(activeChapter)\n this.fokusKlamme.geometry.coordinates = activeChapter.center // this.addedCoordinates[this.activeIndex]\n if (this.map.getSource('fokusklamme')) {\n this.map.getSource('fokusklamme').setData(this.fokusKlamme)\n }\n }\n }\n\n animateMarker (timestamp) {\n setTimeout(() => {\n requestAnimationFrame(this.animateMarker.bind(this))\n let opacity = this.map.getZoom() + 1 - 15\n if (opacity < 0) {\n opacity = 0\n } else if (opacity > 1) {\n opacity = 1\n }\n\n // this.map.setPaintProperty('raster-layer', 'raster-opacity', opacity)\n\n this.radius += (this.maxRadius - this.radius) / this.framesPerSecond\n this.opacity -= 0.9 / this.framesPerSecond\n\n if (this.opacity <= 0) {\n this.radius = this.initialRadius\n this.opacity = this.initialOpacity\n }\n\n if (this.activeIndex === 7) {\n for (var i = 0; i < this.addedPoints.length; i++) {\n if (this.map.getLayer(this.addedPoints[i]) !== undefined) {\n this.map.setPaintProperty(\n this.addedPoints[i],\n 'circle-radius',\n this.radius\n )\n this.map.setPaintProperty(\n this.addedPoints[i],\n 'circle-opacity',\n this.opacity\n )\n }\n }\n } else {\n const currentPointName = `point-${this.chapters[this.activeIndex].id}`\n if (this.map.getLayer(currentPointName) !== undefined) {\n this.map.setPaintProperty(\n currentPointName,\n 'circle-radius',\n this.radius\n )\n this.map.setPaintProperty(\n currentPointName,\n 'circle-opacity',\n this.opacity\n )\n }\n }\n }, 500 / this.framesPerSecond)\n }\n\n animateLine (timestamp) {\n setTimeout(() => {\n requestAnimationFrame(this.animateLine.bind(this))\n\n if (\n this.currentLine != null &&\n this.currentLineId != null &&\n this.animationProgress < this.currentLine.geometry.coordinates.length\n ) {\n this.animationLine.geometry.coordinates.push(\n this.currentLine.geometry.coordinates[this.animationProgress]\n )\n this.map.getSource(this.currentLineId).setData(this.animationLine)\n this.animationProgress += 2\n }\n }, 5 / this.framesPerSecond)\n }\n\n toPaint (mapColor) {\n switch (mapColor) {\n case 'dark':\n return {\n 'fill-color': '#2f0101',\n 'fill-opacity': 0.9,\n 'fill-outline-color': '#2f0101'\n }\n case 'pattern':\n return {\n 'fill-pattern': 'tiny-checkers',\n 'fill-outline-color': '#2f0101'\n }\n default:\n return {\n 'fill-color': '#E1192A',\n 'fill-opacity': 0.9,\n 'fill-outline-color': '#2f0101'\n }\n }\n }\n\n addLabel (label, id) {\n const labelId = `label-${id}`\n if (this.labelNames.indexOf(labelId) === -1) {\n this.map.addLayer(\n {\n id: labelId,\n type: 'symbol',\n source: {\n type: 'geojson',\n data: label.data\n },\n layout: {\n 'symbol-placement': 'point',\n 'text-font': ['Open Sans Regular'],\n 'text-field': label.data.properties.name,\n 'text-size': 18\n },\n paint: {\n 'text-color': '#111',\n 'text-halo-color': '#fff',\n 'text-halo-width': 1\n }\n },\n this.firstSymbolId\n )\n this.labelNames.push(labelId)\n }\n }\n\n addLine (line, id) {\n // console.log(line)\n const lineId = `line-${id}`\n if (this.lineNames.indexOf(lineId) === -1) {\n this.map.addLayer(\n {\n id: lineId,\n type: 'line',\n source: {\n type: 'geojson',\n data: line.data\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n paint: {\n 'line-color': '#bb1414',\n 'line-width': 5,\n 'line-opacity': 0.6\n }\n },\n this.firstSymbolId\n )\n\n this.lineNames.push(lineId)\n }\n }\n\n addPolygon (polygon, mapColor, id) {\n const polygonId = `polygon-${id}`\n if (this.polygonNames.indexOf(polygonId) === -1) {\n this.map.addLayer(\n {\n id: polygonId,\n type: 'fill',\n source: {\n type: 'geojson',\n data: polygon.data\n },\n paint: this.toPaint(mapColor),\n layout: {}\n },\n this.firstSymbolId\n )\n this.polygonNames.push(polygonId)\n }\n }\n\n addMultiPolygon (multiPolygon, mapColor, id) {\n const multiPolygonId = `multiPolygon-${id}`\n if (this.multiPolygonNames.indexOf(multiPolygonId) === -1) {\n this.map.addLayer(\n {\n id: multiPolygonId,\n type: 'fill',\n source: {\n type: 'geojson',\n data: multiPolygon.data\n },\n paint: this.toPaint(mapColor),\n layout: {}\n },\n this.firstSymbolId\n )\n this.multiPolygonNames.push(multiPolygonId)\n }\n }\n\n addPoint (point, id) {\n const pointId = `point-${id}`\n if (this.addedPoints.indexOf(pointId) === -1) {\n this.map.addSource(pointId, {\n type: 'geojson',\n data: {\n type: 'Point',\n coordinates: [point.lon, point.lat]\n }\n })\n\n this.map.addLayer({\n id: pointId,\n source: pointId,\n type: 'circle',\n paint: {\n 'circle-radius': this.initialRadius,\n 'circle-radius-transition': { duration: 0 },\n 'circle-opacity-transition': { duration: 0 },\n 'circle-color': '#ff8800'\n }\n })\n\n this.map.addLayer({\n id: pointId + '_base',\n source: pointId,\n type: 'circle',\n paint: {\n 'circle-radius': 10,\n 'circle-color': '#ff8800',\n 'circle-opacity': 0.7\n }\n })\n\n this.addedPoints.push(pointId)\n }\n }\n\n removeLine (id) {\n const lineId = `line-${id}`\n if (this.map.getLayer(lineId) !== undefined) {\n this.map.removeLayer(lineId)\n this.map.removeSource(lineId)\n\n this.lineNames.splice(this.lineNames.indexOf(lineId), 1)\n }\n }\n\n removePoint (id) {\n const pointId = `point-${id}`\n if (this.map.getLayer(pointId) !== undefined) {\n this.map.removeLayer(pointId)\n this.map.removeLayer(pointId + '_base')\n this.map.removeSource(pointId)\n\n this.addedPoints.splice(this.addedPoints.indexOf(pointId), 1)\n }\n }\n\n addGreatCircle (startStop, mapColor, id) {\n // const start = turf.point([-122, 48])\n // const end = turf.point([-77, 39])\n // console.log('adding')\n this.animationLine.geometry.coordinates = []\n this.animationProgress = 0\n // console.log(startStop.data)\n this.currentLine = startStop.data.features[0] // greatCircle(startStop.start, startStop.stop, { 'name': 'Oslo til New York' })\n\n const lineId = `line-${id}`\n this.currentLineId = lineId\n if (this.animatedLineNames.indexOf(lineId) === -1) {\n this.lineGeometries.push(this.currentLine)\n\n this.map.addLayer(\n {\n id: lineId,\n type: 'line',\n source: {\n type: 'geojson',\n data: this.animationLine\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n paint: {\n 'line-color': '#F80',\n 'line-width': 5,\n 'line-opacity': 1,\n 'line-dasharray': [2, 2]\n }\n },\n this.firstSymbolId\n )\n\n this.animatedLineNames.push(lineId)\n }\n }\n\n removeGreatCircle (id) {\n const lineId = `line-${id}`\n if (this.map.getLayer(lineId) !== undefined) {\n this.map.removeLayer(lineId)\n // this.map.removeLayer(lineId + '_base')\n this.map.removeSource(lineId)\n\n const index = this.animatedLineNames.indexOf(lineId)\n this.animatedLineNames.splice(index, 1)\n this.lineGeometries.splice(index, 1)\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/components/Map.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"map\":\"dh-karthistorie-sporing-dyreparken-map\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/v1/components/Map.css\n// module id = 54\n// module chunks = 0","module.exports = mapboxgl;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"mapboxgl\"\n// module id = 55\n// module chunks = 0","// @flow\n// import dag1 from '../../../static/1-intervjudag-hjemme-til-jobb.json'\n// import dag1_til_intervju from '../../../static/2-intervjudag-jobb-til-intervju.json'\n// import dag1_til_intervju_2 from '../../../static/3-intervjudag-jobb-til-intervju.json'\n\nexport type Chapter = {\n title: string,\n text: string,\n mapbox: any\n}\n\nexport const chapters: Array = [\n /*\n {\n gdocId: 'stavanger-oversikt',\n title: 'Onsdag 22. mai',\n text: '',\n fallbackPicture: '1.14306106',\n mapbox: {\n id: 'stavanger-oversikt',\n duration: 7000,\n center: [5.673073, 58.988715],\n // bounds: [[2, 40], [12, 65]],\n zoom: 10.5,\n pitch: 0,\n bearing: 0,\n mapColor: 'dark'\n }\n },\n {\n gdocId: 'stavanger-oversikt',\n title: 'Stavanger',\n text: 'Han stod opp rundt kl. 05.57.',\n fallbackPicture: '1.14306106',\n mapbox: {\n id: 'stavanger-oversikt',\n duration: 7000,\n center: [5.673073, 58.978715],\n // bounds: [[2, 40], [12, 65]],\n zoom: 10,\n pitch: 0,\n bearing: 0,\n mapColor: 'dark',\n point: {\n 'name': 'navn3',\n 'lat': 58.988715,\n 'lon': 5.673073\n }\n }\n }, */\n {\n gdocId: 'stavanger-oversikt',\n title: 'Lørdag 22. juni',\n text: 'Dyreparken i Kristiansand',\n fallbackPicture: '1.15006984',\n mapbox: {\n id: 'stavanger-oversikt-linje',\n duration: 5000,\n center: [8.146217, 58.183351],\n // bounds: [[2, 40], [12, 65]],\n zoom: 17,\n pitch: 0,\n bearing: 20,\n mapColor: 'dark',\n // greatCircle: { name: 'benimambasa', data: dag1 },\n point: {\n name: 'navn3',\n lat: 58.891065,\n lon: 5.740115\n },\n showFocus: false\n }\n },\n {\n gdocId: 'en',\n title: 'kl. 10:25',\n text:\n 'Dette er det første stedet NRK finner spor etter Karl inne i Dyreparken – utenfor Soko mat.',\n fallbackPicture: '1.15006986',\n textAlign: 'left',\n mapbox: {\n id: 'durban',\n duration: 5000,\n center: [8.14618, 58.18309],\n bearing: 0,\n zoom: 19,\n pitch: 15,\n showFocus: true\n }\n },\n {\n gdocId: 'to',\n title: 'kl. 11:57',\n text:\n 'Litt senere så familien på apekatter i «Jungelen». Karl tok dette bildet, som NRK har fått i ettertid.',\n image:\n 'https://static.nrk.no/dh/videos/beta/2020/dh-sporing/apekatt-dyreparken.jpg',\n alt: 'Bildet viser en apekatt på en gren.',\n fallbackPicture: '1.15006987',\n textAlign: 'left',\n mapbox: {\n id: 'tromso',\n duration: 5000,\n center: [8.14298, 58.18377],\n bearing: 0,\n zoom: 18,\n pitch: 0,\n mapColor: 'red',\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.933906,\n lon: 5.597758\n }\n }\n },\n {\n gdocId: 'start',\n title: 'kl. 14:39',\n text:\n 'Familien gikk rundt i området «Båtbasaren» der det selges is og kioskvarer.',\n image:\n 'https://static.nrk.no/dh/videos/beta/2020/dh-sporing/kiosk-dyreparken.jpg',\n alt: 'Bildet viser en kiosk i dyreparken i Kristiansand.',\n fallbackPicture: '1.15006989',\n textAlign: 'left',\n mapbox: {\n id: 'hentiesbay',\n duration: 5000,\n center: [8.14577, 58.18628],\n // bounds: [[2, 40], [12, 65]],\n zoom: 18,\n bearing: 20,\n pitch: 0,\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.891065,\n lon: 5.740115\n },\n pointCluster: {}\n }\n },\n {\n gdocId: 'tre',\n title: 'kl. 14:46',\n text:\n 'Rundt sju minutter senere gikk de videre mot Kjuttaviga. Her pleier Kaptein Sabeltann å ha store show, men familien så ikke noen forestilling denne dagen.',\n fallbackPicture: '1.15006991',\n textAlign: 'left',\n mapbox: {\n id: 'kristiansand',\n duration: 5000,\n center: [8.14538, 58.18596],\n bearing: 40,\n zoom: 18,\n pitch: 10,\n mapColor: 'red',\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.18596,\n lon: 8.14538\n }\n }\n },\n {\n gdocId: 'tre',\n title: 'kl. 14:59',\n text:\n 'De stoppet utenfor Laumanns lager, en av dyreparkens største souvenirbutikker. Her var de i rundt et kvarter, før de gikk videre.',\n fallbackPicture: '1.15006992',\n textAlign: 'left',\n mapbox: {\n id: 'kristiansand',\n duration: 5000,\n center: [8.14356, 58.18552],\n bearing: 40,\n zoom: 18,\n pitch: 10,\n mapColor: 'red',\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.922023,\n lon: 5.60279\n }\n }\n },\n /*\n {\n gdocId: 'tre',\n title: '14:46',\n text: 'De gikk innover her, og fant seg etter hvert et sted å spise.',\n fallbackPicture: '1.14306131',\n textAlign: 'left',\n mapbox: {\n id: 'kristiansand',\n duration: 5000,\n center: [8.14282, 58.18627],\n bearing: 40,\n zoom: 18,\n pitch: 10,\n mapColor: 'red',\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.18627,\n lon: 8.14282\n }\n }\n }, */\n {\n gdocId: 'tre',\n title: 'kl. 15:59',\n text:\n 'En time senere var familien her, i «Nordisk villmark». De så på gauper, jerv, ulv, rev og elg.',\n image:\n 'https://static.nrk.no/dh/videos/beta/2020/dh-sporing/gaupebilde.jpg',\n alt: 'Bildet viser en gaupe som ligger i gress.',\n fallbackPicture: '1.15006995',\n textAlign: 'left',\n mapbox: {\n id: 'kristiansand',\n duration: 7000,\n center: [8.13519, 58.18612],\n bearing: 40,\n zoom: 18,\n pitch: 10,\n mapColor: 'red',\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.922023,\n lon: 5.60279\n }\n }\n },\n {\n gdocId: 'start',\n title: 'kl. 18:15',\n text:\n 'Til slutt gikk familien til bilen. Kort tid senere satte de kurs mot hytta.',\n fallbackPicture: '1.15006996',\n textAlign: 'left',\n mapbox: {\n id: 'hentiesbay',\n duration: 7000,\n center: [8.14996, 58.18488],\n // bounds: [[2, 40], [12, 65]],\n zoom: 18,\n bearing: 20,\n pitch: 0,\n showFocus: true,\n point: {\n name: 'navn3',\n lat: 58.891065,\n lon: 5.740115\n },\n pointCluster: {}\n }\n }\n]\n\nexport function createChapters (): Array {\n return chapters.map(chapter => {\n return { ...chapter }\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/components/chapters.js","export function toArray (iterator) {\n return [].slice.call(iterator)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/array.js","// @flow\n/** @jsx h */\nimport { Component, h } from 'preact'\nimport { createImageUrl } from '@nrk/serum-imagecrop-utils'\nimport {\n createSrcSet,\n getQualityFromString,\n supportedWidths\n} from '../../lib/image'\n\ntype Props = {\n alt: string,\n imageId: string\n}\n\nclass Picture extends Component {\n render () {\n const { alt, imageId } = this.props\n const quality = 'medium'\n\n if (!imageId) {\n return
Mangler ID
\n }\n\n const parsedQuality = getQualityFromString(quality)\n const defaultUrl = createImageUrl({\n id: imageId,\n ratio: '16:9',\n width: 1600,\n parsedQuality\n })\n const desktopSourceSet = createSrcSet({\n imageId,\n ratio: '16:9',\n supportedWidths,\n quality: parsedQuality\n })\n const mobileSourceSet = createSrcSet({\n imageId,\n ratio: '3:4',\n supportedWidths,\n quality: parsedQuality\n })\n\n return (\n \n \n {alt}\n \n )\n }\n}\n\nexport default Picture\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/components/PolopolyPicture.js","import { createImageUrl } from '@nrk/serum-imagecrop-utils'\n\nexport const supportedWidths = [320, 450, 650, 768, 900, 1280, 1600, 1920, 2400]\n\nexport function createSrcSet ({ imageId, ratio, supportedWidths, quality = 0.7 }) {\n return supportedWidths\n .map(width => {\n const imageUrl = createImageUrl({ id: imageId, width, ratio, quality })\n return `${imageUrl} ${width}w`\n })\n .join(', ')\n}\n\nexport function getQualityFromString (qualityString) {\n const qualities = [\n {\n string: 'very-high',\n quality: 0.8\n },\n {\n string: 'high',\n quality: 0.6\n },\n {\n string: 'medium',\n quality: 0.3\n },\n {\n string: 'low',\n quality: 0.2\n }\n ]\n\n const q = qualities.filter(quality => quality.string === qualityString)[0]\n return q.quality\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/image.js","let isTrackingEnabled = false\n// let label = null\n\nexport function initialize (trackingEnabled) {\n isTrackingEnabled = trackingEnabled\n // label = name\n}\n\nexport function trackAction (action, label) {\n sendToGoogleAnalytics({\n category: 'dh-karthistorie-sporing-dyreparken',\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/lib/googleAnalytic.js","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],n):n(e[\"dh-analytics-utils\"]={})}(this,function(e){\"use strict\";function n(){return window.ga}var t=Object.assign||function(e){for(var n=1;n